NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: lib/45796
The following reply was made to PR lib/45796; it has been noted by GNATS.
From: Evgeniy Ivanov <lolkaantimat%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: lib/45796
Date: Sat, 7 Jan 2012 17:37:47 +0400
--00235433305a59eca204b5f0459e
Content-Type: text/plain; charset=ISO-8859-1
Here're the patches.
--
Evgeniy
--00235433305a59eca204b5f0459e
Content-Type: text/x-patch; charset=US-ASCII;
name="0001-MINIX-3-subpartitions-support.patch"
Content-Disposition: attachment;
filename="0001-MINIX-3-subpartitions-support.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gx4ohiri0
RnJvbSA3ZDdmMmIyOTc1MWNlY2NmYzFhZGRjZTI5OWNiNTEzMWU5ZjdiMWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
bT4KRGF0ZTogTW9uLCA1IERlYyAyMDExIDE5OjQ0OjMzICswNDAwClN1YmplY3Q6IFtQQVRDSCAx
LzRdIE1JTklYIDMgc3VicGFydGl0aW9ucyBzdXBwb3J0LgoKLSBSZWFkIE1GUyBzdWJwYXJ0aXRp
b25zLCB3aGVuIG5lY2Nlc3Nhcmx5LgotIEFkZCBNRlMgdG8gdGhlIHN1cHBvcnRlZCBGU2VzIGxp
c3QuCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2xpYi9saWJ1dGlsL2dldGZzdHlwZW5hbWUuYyBiL2Nv
bW1vbi9saWIvbGlidXRpbC9nZXRmc3R5cGVuYW1lLmMKaW5kZXggNzllYTE1NC4uMjZmZTNhMyAx
MDA2NDQKLS0tIGEvY29tbW9uL2xpYi9saWJ1dGlsL2dldGZzdHlwZW5hbWUuYworKysgYi9jb21t
b24vbGliL2xpYnV0aWwvZ2V0ZnN0eXBlbmFtZS5jCkBAIC0xMjEsNiArMTIxLDggQEAgZ2V0ZnN0
eXBlbmFtZShpbnQgZnN0eXBlKQogCQlyZXR1cm4gREtXX1BUWVBFX0NHRDsKIAljYXNlIEZTTUFY
VFlQRVM6CiAJCXJldHVybiBES1dfUFRZUEVfVU5LTk9XTjsKKwljYXNlIEZTX01JTklYRlMzOgor
CQlyZXR1cm4gREtXX1BUWVBFX01JTklYRlMzOwogCX0KIAkvKiBTdHVwaWQgZ2NjLCBzaG91bGQg
a25vdyBpdCBpcyBpbXBvc3NpYmxlIHRvIGdldCBoZXJlICovCiAJcmV0dXJuIERLV19QVFlQRV9V
TktOT1dOOwpkaWZmIC0tZ2l0IGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9saWIvYmlvc2Rpc2suYyBi
L3N5cy9hcmNoL2kzODYvc3RhbmQvbGliL2Jpb3NkaXNrLmMKaW5kZXggZGRkZmRmOS4uMTM3MDFj
NyAxMDA2NDQKLS0tIGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9saWIvYmlvc2Rpc2suYworKysgYi9z
eXMvYXJjaC9pMzg2L3N0YW5kL2xpYi9iaW9zZGlzay5jCkBAIC00MDQsNiArNDA0LDQwIEBAIGNo
ZWNrX2xhYmVsKHN0cnVjdCBiaW9zZGlzayAqZCwgZGFkZHJfdCBzZWN0b3IpCiB9CiAKIHN0YXRp
YyBpbnQKK3JlYWRfbWluaXhfc3VicChzdHJ1Y3QgYmlvc2Rpc2sgKmQsIHN0cnVjdCBkaXNrbGFi
ZWwqIGRmbHRfbGJsLAorCQkJaW50IHRoaXNfZXh0LCBkYWRkcl90IHNlY3RvcikKK3sKKwlzdHJ1
Y3QgbWJyX3BhcnRpdGlvbiBtYnJbTUJSX1BBUlRfQ09VTlRdOworCWludCBpOworCWludCB0eXA7
CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKworCWlmIChyZWFkc2VjdHMoJmQtPmxsLCBzZWN0b3Is
IDEsIGQtPmJ1ZiwgMCkpIHsKKyNpZmRlZiBESVNLX0RFQlVHCisJCXByaW50ZigiRXJyb3IgcmVh
ZGluZyBNRlMgc2VjdG9yICVkXG4iLCBzZWN0b3IpOworI2VuZGlmCisJCXJldHVybiBFSU87CisJ
fQorCWlmICgodWludDhfdClkLT5idWZbNTEwXSAhPSAweDU1IHx8ICh1aW50OF90KWQtPmJ1Zls1
MTFdICE9IDB4QUEpIHsKKwkJcmV0dXJuIC0xOworCX0KKwltZW1jcHkoJm1iciwgKChzdHJ1Y3Qg
bWJyX3NlY3RvciAqKWQtPmJ1ZiktPm1icl9wYXJ0cywgc2l6ZW9mKG1icikpOworCWZvciAoaSA9
IDA7IGkgPCBNQlJfUEFSVF9DT1VOVDsgaSsrKSB7CisJCXR5cCA9IG1icltpXS5tYnJwX3R5cGU7
CisJCWlmICh0eXAgPT0gMCkKKwkJCWNvbnRpbnVlOworCQlzZWN0b3IgPSB0aGlzX2V4dCArIG1i
cltpXS5tYnJwX3N0YXJ0OworCQlpZiAoZGZsdF9sYmwtPmRfbnBhcnRpdGlvbnMgPj0gTUFYUEFS
VElUSU9OUykKKwkJCWNvbnRpbnVlOworCQlwID0gJmRmbHRfbGJsLT5kX3BhcnRpdGlvbnNbZGZs
dF9sYmwtPmRfbnBhcnRpdGlvbnMrK107CisJCXAtPnBfb2Zmc2V0ID0gc2VjdG9yOworCQlwLT5w
X3NpemUgPSBtYnJbaV0ubWJycF9zaXplOworCQlwLT5wX2ZzdHlwZSA9IHhsYXRfbWJyX2ZzdHlw
ZSh0eXApOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAogcmVhZF9sYWJlbChzdHJ1
Y3QgYmlvc2Rpc2sgKmQpCiB7CiAJc3RydWN0IGRpc2tsYWJlbCBkZmx0X2xibDsKQEAgLTQ1Miw2
ICs0ODYsMTMgQEAgcmVhZF9sYWJlbChzdHJ1Y3QgYmlvc2Rpc2sgKmQpCiAjaWZkZWYgRElTS19E
RUJVRwogCQkJcHJpbnRmKCJwdG4gdHlwZSAlZCBpbiBzZWN0b3IgJWRcbiIsIHR5cCwgc2VjdG9y
KTsKICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cCA9PSBNQlJfUFRZUEVf
TUlOSVhfMTRCKSB7CisJCQkJaWYgKCFyZWFkX21pbml4X3N1YnAoZCwgJmRmbHRfbGJsLAorCQkJ
CQkJICAgdGhpc19leHQsIHNlY3RvcikpIHsKKwkJCQkJLyogRG9uJ3QgYWRkICJjb250YWluZXIi
IHBhcnRpdGlvbiAqLworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQl9CiAJCQlpZiAodHlwID09
IE1CUl9QVFlQRV9ORVRCU0QpIHsKIAkJCQllcnJvciA9IGNoZWNrX2xhYmVsKGQsIHNlY3Rvcik7
CiAJCQkJaWYgKGVycm9yID49IDApCmRpZmYgLS1naXQgYS9zeXMvbGliL2xpYmtlcm4veGxhdF9t
YnJfZnN0eXBlLmMgYi9zeXMvbGliL2xpYmtlcm4veGxhdF9tYnJfZnN0eXBlLmMKaW5kZXggNjE4
YzU1YS4uNDE1MTc3MCAxMDA2NDQKLS0tIGEvc3lzL2xpYi9saWJrZXJuL3hsYXRfbWJyX2ZzdHlw
ZS5jCisrKyBiL3N5cy9saWIvbGlia2Vybi94bGF0X21icl9mc3R5cGUuYwpAQCAtNTUsNiArNTUs
NyBAQCB4bGF0X21icl9mc3R5cGUoaW50IG1icl90eXBlKQogCQl7IE1CUl9QVFlQRV9MTlhTV0FQ
LAlGU19TV0FQIH0sCiAJCXsgTUJSX1BUWVBFX05FVEJTRCwJRlNfQlNERkZTIH0sCiAJCXsgTUJS
X1BUWVBFX05URlMsCUZTX05URlMgfSwKKwkJeyBNQlJfUFRZUEVfTUlOSVhfMTRCLAlGU19NSU5J
WEZTMyB9LAogCQl7IDAsCQkJRlNfT1RIRVIgfQogCX07CiAJY29uc3Qgc3RydWN0IHB0bl90eXBl
cyAqcHQ7CmRpZmYgLS1naXQgYS9zeXMvc3lzL2Rpc2suaCBiL3N5cy9zeXMvZGlzay5oCmluZGV4
IDk4NWY4ZTcuLjJjNTU0NmEgMTAwNjQ0Ci0tLSBhL3N5cy9zeXMvZGlzay5oCisrKyBiL3N5cy9z
eXMvZGlzay5oCkBAIC0yNDUsNiArMjQ1LDcgQEAgX19saW5rX3NldF9hZGRfZGF0YShka3dlZGdl
X21ldGhvZHMsIG5hbWUgIyMgX2RkbSkKICNkZWZpbmUJREtXX1BUWVBFX0VGUwkJImVmcyIKICNk
ZWZpbmUJREtXX1BUWVBFX05JTEZTCQkibmlsZnMiCiAjZGVmaW5lCURLV19QVFlQRV9DR0QJCSJj
Z2QiCisjZGVmaW5lCURLV19QVFlQRV9NSU5JWEZTMwkibWluaXhmczMiCiAKIC8qCiAgKiBEaXNr
IGdlb21ldHJ5IGRpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9zeXMvc3lzL2Rpc2tsYWJlbC5oIGIv
c3lzL3N5cy9kaXNrbGFiZWwuaAppbmRleCBmZjQyNGVhLi42OWY3OWMzIDEwMDY0NAotLS0gYS9z
eXMvc3lzL2Rpc2tsYWJlbC5oCisrKyBiL3N5cy9zeXMvZGlza2xhYmVsLmgKQEAgLTM1Nyw3ICsz
NTcsOCBAQCB4KFVERiwgICAgIDI0LCAiVURGIiwgICAgICAgIE5VTEwsICAgInVkZiIpICAgLyog
VURGICovIFwKIHgoU1lTVkJGUywgMjUsICJTeXNWQkZTIiwgICAgTlVMTCwgICJzeXN2YmZzIikv
KiBTeXN0ZW0gViBib290IGZpbGUgc3lzdGVtICovIFwKIHgoRUZTLCAgICAgMjYsICJFRlMiLCAg
ICAgICAgTlVMTCwgICAiZWZzIikgICAvKiBTR0kncyBFeHRlbnQgRmlsZXN5c3RlbSAqLyBcCiB4
KE5JTEZTLCAgIDI3LCAiTmlMRlMiLCAgICAgIE5VTEwsICAgIm5pbGZzIikgLyogTlRUJ3MgTmlM
RlMoMikgKi8gXAoteChDR0QsICAgICAyOCwgImNnZCIsCSAgICAgTlVMTCwgICBOVUxMKSAgICAv
KiBDcnlwdG9ncmFwaGljIGRpc2sgKi8KK3goQ0dELCAgICAgMjgsICJjZ2QiLAkgICAgIE5VTEws
ICAgTlVMTCkgICAgLyogQ3J5cHRvZ3JhcGhpYyBkaXNrICovIFwKK3goTUlOSVhGUzMsMjksICJN
SU5JWCBGU3YzIiwgTlVMTCwgICBOVUxMKSAgICAvKiBNSU5JWCBmaWxlIHN5c3RlbSB2MyAqLwog
CiAKICNpZm5kZWYgX0xPQ09SRQotLSAKMS43LjMuNAoK
--00235433305a59eca204b5f0459e
Content-Type: text/x-patch; charset=US-ASCII;
name="0002-MINIX-File-System-v3-support-for-libsa.patch"
Content-Disposition: attachment;
filename="0002-MINIX-File-System-v3-support-for-libsa.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gx4ohzeq1
RnJvbSA4YzFiNjdmMjI2ZDk1ZTI5YTZhZGFjNzc4YjRmNDlhMDViMjg2NzYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
bT4KRGF0ZTogU3VuLCAxOCBEZWMgMjAxMSAxNTowNDoxNiArMDQwMApTdWJqZWN0OiBbUEFUQ0gg
Mi80XSBNSU5JWCBGaWxlIFN5c3RlbSB2MyBzdXBwb3J0IGZvciBsaWJzYS4KCgpkaWZmIC0tZ2l0
IGEvc3lzL2xpYi9saWJzYS9NYWtlZmlsZSBiL3N5cy9saWIvbGlic2EvTWFrZWZpbGUKaW5kZXgg
NGQwZDk1MS4uMGViOTlhNyAxMDA2NDQKLS0tIGEvc3lzL2xpYi9saWJzYS9NYWtlZmlsZQorKysg
Yi9zeXMvbGliL2xpYnNhL01ha2VmaWxlCkBAIC03NSw2ICs3NSw3IEBAIFNSQ1MrPQljZDk2NjAu
YwogU1JDUys9CXVzdGFyZnMuYwogU1JDUys9CWRvc2ZzLmMKIFNSQ1MrPQlleHQyZnMuYworU1JD
Uys9CW1pbml4ZnMzLmMKICMgZm9yIGhpc3RvcmljIGNvbXBhdGliaWxpdHkgdWZzID09IGZmc3Yx
CiBTUkNTKz0JdWZzLmMKIApkaWZmIC0tZ2l0IGEvc3lzL2xpYi9saWJzYS9taW5peGZzMy5jIGIv
c3lzL2xpYi9saWJzYS9taW5peGZzMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE3MjIxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGliL2xpYnNhL21pbml4ZnMzLmMK
QEAgLTAsMCArMSw5OTEgQEAKKy8qCSROZXRCU0QkICovCisKKy8qLQorICogQ29weXJpZ2h0IChj
KSAyMDEyCisgKglWcmlqZSBVbml2ZXJzaXRlaXQsIEFtc3RlcmRhbSwgVGhlIE5ldGhlcmxhbmRz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEF1dGhvcjogRXZnZW5peSBJdmFub3YgKGJh
c2VkIG9uIGxpYnNhL2V4dDJmcy5jKS4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9t
IHNyYy9zeXMvbGliL2xpYnNhL2V4dDJmcy5jIGNvbnRyaWJ1dGVkIHRvIAorICogVGhlIE5ldEJT
RCBGb3VuZGF0aW9uLCBzZWUgY29weXJpZ2h0cyBiZWxvdy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTIGBgQVMKKyAqIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZPVU5EQVRJT04g
T1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
KgorICogQ29weXJpZ2h0IChjKSAxOTk3IE1hbnVlbCBCb3V5ZXIuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5Z
IEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKy8qLQorICogQ29weXJpZ2h0IChjKSAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUg
VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5
IGJ5CisgKiBUaGUgTWFjaCBPcGVyYXRpbmcgU3lzdGVtIHByb2plY3QgYXQgQ2FybmVnaWUtTWVs
bG9uIFVuaXZlcnNpdHkuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBV
bml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNv
ZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqCisg
KiBDb3B5cmlnaHQgKGMpIDE5OTAsIDE5OTEgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkKKyAq
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogQXV0aG9yOiBEYXZpZCBHb2x1YgorICoKKyAq
IFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnkgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
d2FyZSBhbmQgaXRzCisgKiBkb2N1bWVudGF0aW9uIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRl
ZCB0aGF0IGJvdGggdGhlIGNvcHlyaWdodAorICogbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
bm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIG9mIHRoZQorICogc29mdHdhcmUsIGRlcml2YXRp
dmUgd29ya3Mgb3IgbW9kaWZpZWQgdmVyc2lvbnMsIGFuZCBhbnkgcG9ydGlvbnMKKyAqIHRoZXJl
b2YsIGFuZCB0aGF0IGJvdGggbm90aWNlcyBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0
aW9uLgorICoKKyAqIENBUk5FR0lFIE1FTExPTiBBTExPV1MgRlJFRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSBJTiBJVFMgIkFTIElTIgorICogQ09ORElUSU9OLiAgQ0FSTkVHSUUgTUVMTE9OIERJU0NM
QUlNUyBBTlkgTElBQklMSVRZIE9GIEFOWSBLSU5EIEZPUgorICogQU5ZIERBTUFHRVMgV0hBVFNP
RVZFUiBSRVNVTFRJTkcgRlJPTSBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUuCisgKgorICogQ2Fy
bmVnaWUgTWVsbG9uIHJlcXVlc3RzIHVzZXJzIG9mIHRoaXMgc29mdHdhcmUgdG8gcmV0dXJuIHRv
CisgKgorICogIFNvZnR3YXJlIERpc3RyaWJ1dGlvbiBDb29yZGluYXRvciAgb3IgIFNvZnR3YXJl
LkRpc3RyaWJ1dGlvbkBDUy5DTVUuRURVCisgKiAgU2Nob29sIG9mIENvbXB1dGVyIFNjaWVuY2UK
KyAqICBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQorICogIFBpdHRzYnVyZ2ggUEEgMTUyMTMt
Mzg5MAorICoKKyAqIGFueSBpbXByb3ZlbWVudHMgb3IgZXh0ZW5zaW9ucyB0aGF0IHRoZXkgbWFr
ZSBhbmQgZ3JhbnQgQ2FybmVnaWUgdGhlCisgKiByaWdodHMgdG8gcmVkaXN0cmlidXRlIHRoZXNl
IGNoYW5nZXMuCisgKi8KKworLyoKKyAqCVN0YW5kLWFsb25lIGZpbGUgcmVhZGluZyBwYWNrYWdl
IGZvciBNRlMgZmlsZSBzeXN0ZW0uCisgKi8KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2lu
Y2x1ZGUgPHN5cy90aW1lLmg+CisjaWZkZWYgX1NUQU5EQUxPTkUKKyNpbmNsdWRlIDxsaWIvbGli
a2Vybi9saWJrZXJuLmg+CisjZWxzZQorI2luY2x1ZGUgPHN0cmluZy5oPgorI2VuZGlmCisKKyNp
bmNsdWRlICJzdGFuZC5oIgorI2luY2x1ZGUgIm1pbml4ZnMzLmgiCisKKyNpZiBkZWZpbmVkKExJ
QlNBX0ZTX1NJTkdMRUNPTVBPTkVOVCkgJiYgIWRlZmluZWQoTElCU0FfTk9fRlNfU1lNTElOSykK
KyNkZWZpbmUgTElCU0FfTk9fRlNfU1lNTElOSworI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlNB
X05PX1RXSURETEUpCisjZGVmaW5lIHR3aWRkbGUoKQorI2VuZGlmCisKK3R5cGVkZWYgdWludDMy
X3QJaW5vMzJfdDsKKyNpZm5kZWYgRlNCVE9EQgorI2RlZmluZSBGU0JUT0RCKGZzLCBpbmRwKSBm
c2J0b2RiKGZzLCBpbmRwKQorI2VuZGlmCisKKy8qCisgKiBUbyBhdm9pZCBoYXZpbmcgYSBsb3Qg
b2YgZmlsZXN5c3RlbS1ibG9jayBzaXplZCBidWZmZXJzIGx1cmtpbmcgKHdoaWNoCisgKiBjb3Vs
ZCBiZSAzMmspIHdlIG9ubHkga2VlcCBhIGZldyBlbnRyaWVzIG9mIHRoZSBpbmRpcmVjdCBibG9j
ayBtYXAuCisgKiBXaXRoIDhrIGJsb2NrcywgMl44IGJsb2NrcyBpcyB+NTAwayBzbyB3ZSByZXJl
YWQgdGhlIGluZGlyZWN0IGJsb2NrCisgKiB+MTMgdGltZXMgcHVsbGluZyBpbiBhIDZNIGtlcm5l
bC4KKyAqIFRoZSBjYWNoZSBzaXplIG11c3QgYmUgc21hbGxlciB0aGFuIHRoZSBzbWFsbGVzdCBm
aWxlc3lzdGVtIGJsb2NrLAorICogc28gTE4yX0lORF9DQUNIRV9TWiA8PSA5IChVRlMyIGFuZCA0
ayBibG9ja3MpLgorICovCisjZGVmaW5lIExOMl9JTkRfQ0FDSEVfU1oJNgorI2RlZmluZSBJTkRf
Q0FDSEVfU1oJCSgxIDw8IExOMl9JTkRfQ0FDSEVfU1opCisjZGVmaW5lIElORF9DQUNIRV9NQVNL
CQkoSU5EX0NBQ0hFX1NaIC0gMSkKKworLyoKKyAqIEluLWNvcmUgb3BlbiBmaWxlLgorICovCitz
dHJ1Y3QgZmlsZSB7CisJb2ZmX3QJCWZfc2Vla3A7CS8qIHNlZWsgcG9pbnRlciAqLworCXN0cnVj
dCBtZnNfc2Jsb2NrICAqZl9mczsJLyogcG9pbnRlciB0byBzdXBlci1ibG9jayAqLworCXN0cnVj
dCBtZnNfZGlub2RlICBmX2RpOwkvKiBjb3B5IG9mIG9uLWRpc2sgaW5vZGUgKi8KKwl1aW50CQlm
X25pc2hpZnQ7CS8qIGZvciBibG9ja3MgaW4gaW5kaXJlY3QgYmxvY2sgKi8KKwlibG9ja190CQlm
X2luZF9jYWNoZV9ibG9jazsKKwlibG9ja190CQlmX2luZF9jYWNoZVtJTkRfQ0FDSEVfU1pdOwor
CisJY2hhcgkJKmZfYnVmOwkJLyogYnVmZmVyIGZvciBkYXRhIGJsb2NrICovCisJc2l6ZV90CQlm
X2J1Zl9zaXplOwkvKiBzaXplIG9mIGRhdGEgYmxvY2sgKi8KKwlkYWRkcl90CQlmX2J1Zl9ibGtu
bzsJLyogYmxvY2sgbnVtYmVyIG9mIGRhdGEgYmxvY2sgKi8KK307CisKKyNpZiBkZWZpbmVkKExJ
QlNBX0VOQUJMRV9MU19PUCkKKworI2RlZmluZSBORUxFTSh4KSAoc2l6ZW9mICh4KSAvIHNpemVv
ZigqeCkpCisKK3R5cGVkZWYgc3RydWN0IGVudHJ5X3QgZW50cnlfdDsKK3N0cnVjdCBlbnRyeV90
IHsKKwllbnRyeV90CSplX25leHQ7CisJaW5vMzJfdAllX2lubzsKKwljaGFyCWVfbmFtZVsxXTsK
K307CisKK3N0YXRpYyBpbnQKK2ZuX21hdGNoKGNvbnN0IGNoYXIgKmZuYW1lLCBjb25zdCBjaGFy
ICpwYXR0ZXJuKQoreworCWNoYXIgZmMsIHBjOworCisJZG8geworCQlmYyA9ICpmbmFtZSsrOwor
CQlwYyA9ICpwYXR0ZXJuKys7CisJCWlmICghZmMgJiYgIXBjKQorCQkJcmV0dXJuIDE7CisJCWlm
IChwYyA9PSAnPycgJiYgZmMpCisJCQlwYyA9IGZjOworCX0gd2hpbGUgKGZjID09IHBjKTsKKwor
CWlmIChwYyAhPSAnKicpCisJCXJldHVybiAwOworCS8qCisJICogVG9vIGhhcmQgKGFuZCB1bm5l
Y2Vzc2FyeSByZWFsbHkpIHRvbyBjaGVjayBmb3IgIio/bmFtZSIgZXRjLi4uLgorCSAqICIqKiIg
d2lsbCBsb29rIGZvciBhICcqJyBhbmQgIio/IiBhICc/JworCSAqLworCXBjID0gKnBhdHRlcm4r
KzsKKwlpZiAoIXBjKQorCQlyZXR1cm4gMTsKKwl3aGlsZSAoKGZuYW1lID0gc3RyY2hyKGZuYW1l
LCBwYykpKQorCQlpZiAoZm5fbWF0Y2goKytmbmFtZSwgcGF0dGVybikpCisJCQlyZXR1cm4gMTsK
KwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBMSUJTQV9FTkFCTEVfTFNfT1AgKi8KKworCitzdGF0
aWMgaW50IHJlYWRfaW5vZGUoaW5vMzJfdCwgc3RydWN0IG9wZW5fZmlsZSAqKTsKK3N0YXRpYyBp
bnQgYmxvY2tfbWFwKHN0cnVjdCBvcGVuX2ZpbGUgKiwgYmxvY2tfdCwgYmxvY2tfdCAqKTsKK3N0
YXRpYyBpbnQgYnVmX3JlYWRfZmlsZShzdHJ1Y3Qgb3Blbl9maWxlICosIGNoYXIgKiosIHNpemVf
dCAqKTsKK3N0YXRpYyBpbnQgc2VhcmNoX2RpcmVjdG9yeShjb25zdCBjaGFyICosIGludCwgc3Ry
dWN0IG9wZW5fZmlsZSAqLCBpbm8zMl90ICopOworc3RhdGljIGludCByZWFkX3NibG9jayhzdHJ1
Y3Qgb3Blbl9maWxlICosIHN0cnVjdCBtZnNfc2Jsb2NrICopOworCisvKgorICogUmVhZCBhIG5l
dyBpbm9kZSBpbnRvIGEgZmlsZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyBpbnQKK3JlYWRfaW5v
ZGUoaW5vMzJfdCBpbnVtYmVyLCBzdHJ1Y3Qgb3Blbl9maWxlICpmKQoreworCXN0cnVjdCBmaWxl
ICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZfZnNkYXRhOworCXN0cnVjdCBtZnNfc2Jsb2NrICpm
cyA9IGZwLT5mX2ZzOworCWNoYXIgKmJ1ZjsKKwlzaXplX3QgcnNpemU7CisJaW50IHJjOworCWRh
ZGRyX3QgaW5vZGVfc2VjdG9yOworCXN0cnVjdCBtZnNfZGlub2RlICpkaXA7CisKKwlpbm9kZV9z
ZWN0b3IgPSBGU0JUT0RCKGZzLCBpbm9fdG9fZnNiYShmcywgaW51bWJlcikpOworCisJLyoKKwkg
KiBSZWFkIGlub2RlIGFuZCBzYXZlIGl0LgorCSAqLworCWJ1ZiA9IGZwLT5mX2J1ZjsKKwl0d2lk
ZGxlKCk7CisJcmMgPSBERVZfU1RSQVRFR1koZi0+Zl9kZXYpKGYtPmZfZGV2ZGF0YSwgRl9SRUFE
LAorCSAgICBpbm9kZV9zZWN0b3IsIGZzLT5tZnNfYmxvY2tfc2l6ZSwgYnVmLCAmcnNpemUpOwor
CWlmIChyYykKKwkJcmV0dXJuIHJjOworCWlmIChyc2l6ZSAhPSBmcy0+bWZzX2Jsb2NrX3NpemUp
CisJCXJldHVybiBFSU87CisKKwlkaXAgPSAoc3RydWN0IG1mc19kaW5vZGUgKikoYnVmICsKKwkg
ICAgSU5PREVfU0laRSAqIGlub190b19mc2JvKGZzLCBpbnVtYmVyKSk7CisJbWZzX2lsb2FkKGRp
cCwgJmZwLT5mX2RpKTsKKworCS8qCisJICogQ2xlYXIgb3V0IHRoZSBvbGQgYnVmZmVycworCSAq
LworCWZwLT5mX2luZF9jYWNoZV9ibG9jayA9IH4wOworCWZwLT5mX2J1Zl9ibGtubyA9IC0xOwor
CXJldHVybiByYzsKK30KKworLyoKKyAqIEdpdmVuIGFuIG9mZnNldCBpbiBhIGZpbGUsIGZpbmQg
dGhlIGRpc2sgYmxvY2sgbnVtYmVyIChub3Qgem9uZSEpCisgKiB0aGF0IGNvbnRhaW5zIHRoYXQg
YmxvY2suCisgKi8KK3N0YXRpYyBpbnQKK2Jsb2NrX21hcChzdHJ1Y3Qgb3Blbl9maWxlICpmLCBi
bG9ja190IGZpbGVfYmxvY2ssIGJsb2NrX3QgKmRpc2tfYmxvY2tfcCkKK3sKKwlzdHJ1Y3QgZmls
ZSAqZnAgPSAoc3RydWN0IGZpbGUgKilmLT5mX2ZzZGF0YTsKKwlzdHJ1Y3QgbWZzX3NibG9jayAq
ZnMgPSBmcC0+Zl9mczsKKwl1aW50IGxldmVsOworCWJsb2NrX3QgaW5kX2NhY2hlOworCWJsb2Nr
X3QgaW5kX2Jsb2NrX251bTsKKwl6b25lX3Qgem9uZTsKKwlzaXplX3QgcnNpemU7CisJaW50IHJj
OworCWludCBib2ZmOworCWludCBzY2FsZSA9IGZzLT5tZnNfbG9nX3pvbmVfc2l6ZTsgLyogZm9y
IGJsb2NrLXpvbmUgY29udmVyc2lvbiAqLworCWJsb2NrX3QgKmJ1ZiA9ICh2b2lkICopZnAtPmZf
YnVmOworCisJLyoKKwkgKiBJbmRleCBzdHJ1Y3R1cmUgb2YgYW4gaW5vZGU6CisJICoKKwkgKiBt
ZGlfYmxvY2tzWzAuLk5SX0RaT05FUy0xXQorCSAqCQkJaG9sZCB6b25lIG51bWJlcnMgZm9yIHpv
bmVzCisJICoJCQkwLi5OUl9EWk9ORVMtMQorCSAqCisJICogbWRpX2Jsb2Nrc1tOUl9EWk9ORVMr
MF0KKwkgKgkJCWJsb2NrIE5EQUREUiswIGlzIHRoZSBzaW5nbGUgaW5kaXJlY3QgYmxvY2sKKwkg
KgkJCWhvbGRzIHpvbmUgbnVtYmVycyBmb3Igem9uZXMKKwkgKgkJCU5SX0RaT05FUyAuLiBOUl9E
Wk9ORVMgKyBOSU5ESVIoZnMpLTEKKwkgKgorCSAqIG1kaV9ibG9ja3NbTlJfRFpPTkVTKzFdCisJ
ICoJCQlibG9jayBOREFERFIrMSBpcyB0aGUgZG91YmxlIGluZGlyZWN0IGJsb2NrCisJICoJCQlo
b2xkcyB6b25lIG51bWJlcnMgZm9yIElOREVYIGJsb2NrcyBmb3Igem9uZXMKKwkgKgkJCU5SX0Ra
T05FUyArIE5JTkRJUihmcykgLi4KKwkgKgkJCU5SX1RaT05FUyArIE5JTkRJUihmcykgKyBOSU5E
SVIoZnMpKioyIC0gMQorCSAqLworCisJem9uZSA9IGZpbGVfYmxvY2sgPj4gc2NhbGU7CisJYm9m
ZiA9IChpbnQpIChmaWxlX2Jsb2NrIC0gKHpvbmUgPDwgc2NhbGUpICk7IC8qIHJlbGF0aXZlIGJs
ayBpbiB6b25lICovCisKKwlpZiAoem9uZSA8IE5SX0RaT05FUykgeworCQkvKiBEaXJlY3Qgem9u
ZSAqLworCQl6b25lX3QgeiA9IGZzMmgzMihmcC0+Zl9kaS5tZGlfem9uZVt6b25lXSk7CisJCWlm
ICh6ID09IE5PX1pPTkUpIHsKKwkJCSpkaXNrX2Jsb2NrX3AgPSBOT19CTE9DSzsKKwkJCXJldHVy
biAwOworCQl9CisJCSpkaXNrX2Jsb2NrX3AgPSAoYmxvY2tfdCkgKCh6IDw8IHNjYWxlKSArIGJv
ZmYpOworCQlyZXR1cm4gMDsKKwl9CisKKwl6b25lIC09IE5SX0RaT05FUzsKKworCWluZF9jYWNo
ZSA9IHpvbmUgPj4gTE4yX0lORF9DQUNIRV9TWjsKKwlpZiAoaW5kX2NhY2hlID09IGZwLT5mX2lu
ZF9jYWNoZV9ibG9jaykgeworCQkqZGlza19ibG9ja19wID0KKwkJICAgIGZzMmgzMihmcC0+Zl9p
bmRfY2FjaGVbem9uZSAmIElORF9DQUNIRV9NQVNLXSk7CisJCXJldHVybiAwOworCX0KKworCWZv
ciAobGV2ZWwgPSAwOzspIHsKKwkJbGV2ZWwgKz0gZnAtPmZfbmlzaGlmdDsKKworCQlpZiAoem9u
ZSA8IChibG9ja190KTEgPDwgbGV2ZWwpCisJCQlicmVhazsKKwkJaWYgKGxldmVsID4gTklBRERS
ICogZnAtPmZfbmlzaGlmdCkKKwkJCS8qIFpvbmUgbnVtYmVyIHRvbyBoaWdoICovCisJCQlyZXR1
cm4gRUZCSUc7CisJCXpvbmUgLT0gKGJsb2NrX3QpMSA8PCBsZXZlbDsKKwl9CisKKwlpbmRfYmxv
Y2tfbnVtID0KKwkgICAgZnMyaDMyKGZwLT5mX2RpLm1kaV96b25lW05SX0RaT05FUyArIChsZXZl
bCAvIGZwLT5mX25pc2hpZnQgLSAxKV0pOworCisJZm9yICg7OykgeworCQlsZXZlbCAtPSBmcC0+
Zl9uaXNoaWZ0OworCQlpZiAoaW5kX2Jsb2NrX251bSA9PSAwKSB7CisJCQkqZGlza19ibG9ja19w
ID0gTk9fQkxPQ0s7CS8qIG1pc3NpbmcgKi8KKwkJCXJldHVybiAwOworCQl9CisKKwkJdHdpZGRs
ZSgpOworCQkvKgorCQkgKiBJZiB3ZSB3ZXJlIGZlZWxpbmcgYnJhdmUsIHdlIGNvdWxkIHdvcmsg
b3V0IHRoZSBudW1iZXIKKwkJICogb2YgdGhlIGRpc2sgc2VjdG9yIGFuZCByZWFkIGEgc2luZ2xl
IGRpc2sgc2VjdG9yIGluc3RlYWQKKwkJICogb2YgYSBmaWxlc3lzdGVtIGJsb2NrLgorCQkgKiBI
b3dldmVyIHdlIGRvbid0IGRvIHRoaXMgdmVyeSBvZnRlbiBhbnl3YXkuLi4KKwkJICovCisJCXJj
ID0gREVWX1NUUkFURUdZKGYtPmZfZGV2KShmLT5mX2RldmRhdGEsIEZfUkVBRCwKKwkJCUZTQlRP
REIoZnMsIGluZF9ibG9ja19udW0pLCBmcy0+bWZzX2Jsb2NrX3NpemUsCisJCQlidWYsICZyc2l6
ZSk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJaWYgKHJzaXplICE9IGZzLT5tZnNfYmxv
Y2tfc2l6ZSkKKwkJCXJldHVybiBFSU87CisKKwkJaW5kX2Jsb2NrX251bSA9IGZzMmgzMihidWZb
em9uZSA+PiBsZXZlbF0pOworCQlpZiAobGV2ZWwgPT0gMCkKKwkJCWJyZWFrOworCQl6b25lICY9
ICgxIDw8IGxldmVsKSAtIDE7CisJfQorCisJLyogU2F2ZSB0aGUgcGFydCBvZiB0aGUgYmxvY2sg
dGhhdCBjb250YWlucyB0aGlzIHNlY3RvciAqLworCW1lbWNweShmcC0+Zl9pbmRfY2FjaGUsICZi
dWZbem9uZSAmIH5JTkRfQ0FDSEVfTUFTS10sCisJICAgIElORF9DQUNIRV9TWiAqIHNpemVvZiBm
cC0+Zl9pbmRfY2FjaGVbMF0pOworCWZwLT5mX2luZF9jYWNoZV9ibG9jayA9IGluZF9jYWNoZTsK
KworCXpvbmUgPSAoem9uZV90KWluZF9ibG9ja19udW07CisJKmRpc2tfYmxvY2tfcCA9IChibG9j
a190KSgoem9uZSA8PCBzY2FsZSkgKyBib2ZmKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFJl
YWQgYSBwb3J0aW9uIG9mIGEgZmlsZSBpbnRvIGFuIGludGVybmFsIGJ1ZmZlci4KKyAqIFJldHVy
biB0aGUgbG9jYXRpb24gaW4gdGhlIGJ1ZmZlciBhbmQgdGhlIGFtb3VudCBpbiB0aGUgYnVmZmVy
LgorICovCitzdGF0aWMgaW50CitidWZfcmVhZF9maWxlKHN0cnVjdCBvcGVuX2ZpbGUgKmYsIGNo
YXIgKipidWZfcCwgc2l6ZV90ICpzaXplX3ApCit7CisJc3RydWN0IGZpbGUgKmZwID0gKHN0cnVj
dCBmaWxlICopZi0+Zl9mc2RhdGE7CisJc3RydWN0IG1mc19zYmxvY2sgKmZzID0gZnAtPmZfZnM7
CisJbG9uZyBvZmY7CisJYmxvY2tfdCBmaWxlX2Jsb2NrOworCWJsb2NrX3QgZGlza19ibG9jazsK
KwlzaXplX3QgYmxvY2tfc2l6ZTsKKwlpbnQgcmM7CisKKwlvZmYgPSBibGtvZmYoZnMsIGZwLT5m
X3NlZWtwKTsKKwlmaWxlX2Jsb2NrID0gbGJsa25vKGZzLCBmcC0+Zl9zZWVrcCk7CisJYmxvY2tf
c2l6ZSA9IGZzLT5tZnNfYmxvY2tfc2l6ZTsKKworCWlmIChmaWxlX2Jsb2NrICE9IGZwLT5mX2J1
Zl9ibGtubykgeworCQlyYyA9IGJsb2NrX21hcChmLCBmaWxlX2Jsb2NrLCAmZGlza19ibG9jayk7
CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKworCQlpZiAoZGlza19ibG9jayA9PSAwKSB7CisJ
CQltZW1zZXQoZnAtPmZfYnVmLCAwLCBibG9ja19zaXplKTsKKwkJCWZwLT5mX2J1Zl9zaXplID0g
YmxvY2tfc2l6ZTsKKwkJfSBlbHNlIHsKKwkJCXR3aWRkbGUoKTsKKwkJCXJjID0gREVWX1NUUkFU
RUdZKGYtPmZfZGV2KShmLT5mX2RldmRhdGEsIEZfUkVBRCwKKwkJCQlGU0JUT0RCKGZzLCBkaXNr
X2Jsb2NrKSwKKwkJCQlibG9ja19zaXplLCBmcC0+Zl9idWYsICZmcC0+Zl9idWZfc2l6ZSk7CisJ
CQlpZiAocmMpCisJCQkJcmV0dXJuIHJjOworCQl9CisKKwkJZnAtPmZfYnVmX2Jsa25vID0gZmls
ZV9ibG9jazsKKwl9CisKKwkvKgorCSAqIFJldHVybiBhZGRyZXNzIG9mIGJ5dGUgaW4gYnVmZmVy
IGNvcnJlc3BvbmRpbmcgdG8KKwkgKiBvZmZzZXQsIGFuZCBzaXplIG9mIHJlbWFpbmRlciBvZiBi
dWZmZXIgYWZ0ZXIgdGhhdAorCSAqIGJ5dGUuCisJICovCisJKmJ1Zl9wID0gZnAtPmZfYnVmICsg
b2ZmOworCSpzaXplX3AgPSBibG9ja19zaXplIC0gb2ZmOworCisJLyoKKwkgKiBCdXQgdHJ1bmNh
dGUgYnVmZmVyIGF0IGVuZCBvZiBmaWxlLgorCSAqLworCWlmICgqc2l6ZV9wID4gZnAtPmZfZGku
bWRpX3NpemUgLSBmcC0+Zl9zZWVrcCkKKwkJKnNpemVfcCA9IGZwLT5mX2RpLm1kaV9zaXplIC0g
ZnAtPmZfc2Vla3A7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlYXJjaCBhIGRpcmVjdG9y
eSBmb3IgYSBuYW1lIGFuZCByZXR1cm4gaXRzCisgKiBpbm9kZSBudW1iZXIuCisgKi8KK3N0YXRp
YyBpbnQKK3NlYXJjaF9kaXJlY3RvcnkoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbmd0aCwgc3Ry
dWN0IG9wZW5fZmlsZSAqZiwKKwlpbm8zMl90ICppbnVtYmVyX3ApCit7CisJc3RydWN0IGZpbGUg
KmZwID0gKHN0cnVjdCBmaWxlICopZi0+Zl9mc2RhdGE7CisJc3RydWN0IG1mc19zYmxvY2sgKmZz
ID0gZnAtPmZfZnM7CisJc3RydWN0IG1mc19kaXJlY3QgKmRwOworCXN0cnVjdCBtZnNfZGlyZWN0
ICpkYnVmOworCXNpemVfdCBidWZfc2l6ZTsKKwlpbnQgbmFtbGVuOworCWludCByYzsKKworCWZw
LT5mX3NlZWtwID0gMDsKKworCXdoaWxlIChmcC0+Zl9zZWVrcCA8IChvZmZfdClmcC0+Zl9kaS5t
ZGlfc2l6ZSkgeworCQlyYyA9IGJ1Zl9yZWFkX2ZpbGUoZiwgKGNoYXIqKikmZGJ1ZiwgJmJ1Zl9z
aXplKTsKKwkJaWYgKHJjKQorCQkJcmV0dXJuIHJjOworCQlpZiAoYnVmX3NpemUgPT0gMCkKKwkJ
CXJldHVybiBFSU87CisKKwkJLyogWFhYIHdlIGFzc3VtZSwgdGhhdCBidWZfcmVhZF9maWxlIHJl
YWRzIGFuIGZzIGJsb2NrIGFuZAorCQkgKiBkb2Vzbid0IHRydW5jYXRlIGJ1ZmZlci4gQ3VycmVu
dGx5IGlfc2l6ZSBpbiBNRlMgZG9lc24ndAorCQkgKiB0aGUgc2FtZSBhcyBzaXplIG9mIGFsbG9j
YXRlZCBibG9ja3MsIGl0IG1ha2VzIGJ1Zl9yZWFkX2ZpbGUKKwkJICogdG8gdHJ1bmNhdGUgYnVm
X3NpemUuCisJCSAqLworCQlpZiAoYnVmX3NpemUgPCBmcy0+bWZzX2Jsb2NrX3NpemUpCisJCQli
dWZfc2l6ZSA9IGZzLT5tZnNfYmxvY2tfc2l6ZTsKKworCQlmb3IgKGRwID0gZGJ1ZjsgZHAgPCAm
ZGJ1ZltOUl9ESVJfRU5UUklFUyhmcyldOyBkcCsrKSB7CisJCQljaGFyICpjcDsKKwkJCWlmIChm
czJoMzIoZHAtPm1mc2RfaW5vKSA9PSAoaW5vMzJfdCkgMCkKKwkJCQljb250aW51ZTsKKwkJCS8q
IENvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSAqLworCQkJY3AgPSBtZW1jaHIoZHAtPm1m
c2RfbmFtZSwgJ1wwJywgc2l6ZW9mKGRwLT5tZnNkX25hbWUpKTsKKwkJCWlmIChjcCA9PSBOVUxM
KQorCQkJCW5hbWxlbiA9IHNpemVvZihkcC0+bWZzZF9uYW1lKTsKKwkJCWVsc2UKKwkJCQluYW1s
ZW4gPSBjcCAtIChkcC0+bWZzZF9uYW1lKTsKKworCQkJaWYgKG5hbWxlbiA9PSBsZW5ndGggJiYK
KwkJCSAgICAhbWVtY21wKG5hbWUsIGRwLT5tZnNkX25hbWUsIGxlbmd0aCkpIHsKKwkJCQkvKiBm
b3VuZCBlbnRyeSAqLworCQkJCSppbnVtYmVyX3AgPSBmczJoMzIoZHAtPm1mc2RfaW5vKTsKKwkJ
CQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCQlmcC0+Zl9zZWVrcCArPSBidWZfc2l6ZTsKKwl9CisJ
cmV0dXJuIEVOT0VOVDsKK30KKworaW50CityZWFkX3NibG9jayhzdHJ1Y3Qgb3Blbl9maWxlICpm
LCBzdHJ1Y3QgbWZzX3NibG9jayAqZnMpCit7CisJc3RhdGljIHVpbnQ4X3Qgc2JidWZbTUlOQlNJ
WkVdOworCXNpemVfdCBidWZfc2l6ZTsKKwlpbnQgcmM7CisKKwkvKiBXZSBtdXN0IHJlYWQgYW1v
dW50IG11bHRpcGxlIG9mIHNlY3RvciBzaXplLCBoZW5jZSB3ZSBjYW4ndAorCSAqIHJlYWQgU0JT
SVpFIGFuZCByZWFkIE1JTkJTSVpFLgorCSAqLworCWlmIChTQlNJWkUgPiBNSU5CU0laRSkKKwkJ
cmV0dXJuIEVJTlZBTDsKKworCXJjID0gREVWX1NUUkFURUdZKGYtPmZfZGV2KShmLT5mX2RldmRh
dGEsIEZfUkVBRCwKKwkgICAgU1VQRVJfQkxPQ0tfT0ZGIC8gREVWX0JTSVpFLCBNSU5CU0laRSwg
c2JidWYsICZidWZfc2l6ZSk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlpZiAoYnVmX3Np
emUgIT0gTUlOQlNJWkUpCisJCXJldHVybiBFSU87CisKKwltZnNfc2Jsb2FkKCh2b2lkICopc2Ji
dWYsIGZzKTsKKworCWlmIChmcy0+bWZzX21hZ2ljICE9IFNVUEVSX01BR0lDKQorCQlyZXR1cm4g
RUlOVkFMOworCWlmIChmcy0+bWZzX2Jsb2NrX3NpemUgPCBNSU5CU0laRSkKKwkJcmV0dXJuIEVJ
TlZBTDsKKwlpZiAoKGZzLT5tZnNfYmxvY2tfc2l6ZSAlIDUxMikgIT0gMCkKKwkJcmV0dXJuIEVJ
TlZBTDsKKwlpZiAoU0JTSVpFID4gZnMtPm1mc19ibG9ja19zaXplKQorCQlyZXR1cm4gRUlOVkFM
OworCWlmICgoZnMtPm1mc19ibG9ja19zaXplICUgSU5PREVfU0laRSkgIT0gMCkKKwkJcmV0dXJu
IEVJTlZBTDsKKworCS8qIEZvciBldmVuIGxhcmdlciBkaXNrcywgYSBzaW1pbGFyIHByb2JsZW0g
b2NjdXJzIHdpdGggc19maXJzdGRhdGF6b25lLgorCSAqIElmIHRoZSBvbi1kaXNrIGZpZWxkIGNv
bnRhaW5zIHplcm8sIHdlIGFzc3VtZSB0aGF0IHRoZSB2YWx1ZSB3YXMgdG9vCisJICogbGFyZ2Ug
dG8gZml0LCBhbmQgY29tcHV0ZSBpdCBvbiB0aGUgZmx5LgorCSAqLworCWlmIChmcy0+bWZzX2Zp
cnN0ZGF0YXpvbmVfb2xkID09IDApIHsKKwkJYmxvY2tfdCBvZmZzZXQ7CisJCW9mZnNldCA9IFNU
QVJUX0JMT0NLICsgZnMtPm1mc19pbWFwX2Jsb2NrcyArIGZzLT5tZnNfem1hcF9ibG9ja3M7CisJ
CW9mZnNldCArPSAoZnMtPm1mc19uaW5vZGVzICsgZnMtPm1mc19pbm9kZXNfcGVyX2Jsb2NrIC0g
MSkgLworCQkJCWZzLT5tZnNfaW5vZGVzX3Blcl9ibG9jazsKKworCQlmcy0+bWZzX2ZpcnN0ZGF0
YXpvbmUgPQorCQkJKG9mZnNldCArICgxIDw8IGZzLT5tZnNfbG9nX3pvbmVfc2l6ZSkgLSAxKSA+
PgorCQkJCWZzLT5tZnNfbG9nX3pvbmVfc2l6ZTsKKwl9IGVsc2UgeworCQlmcy0+bWZzX2ZpcnN0
ZGF0YXpvbmUgPSAoem9uZV90KSBmcy0+bWZzX2ZpcnN0ZGF0YXpvbmVfb2xkOworCX0KKworCWlm
IChmcy0+bWZzX2ltYXBfYmxvY2tzIDwgMSB8fCBmcy0+bWZzX3ptYXBfYmxvY2tzIDwgMQorCQkJ
fHwgZnMtPm1mc19uaW5vZGVzIDwgMSB8fCBmcy0+bWZzX3pvbmVzIDwgMQorCQkJfHwgZnMtPm1m
c19maXJzdGRhdGF6b25lIDw9IDQKKwkJCXx8IGZzLT5tZnNfZmlyc3RkYXRhem9uZSA+PSBmcy0+
bWZzX3pvbmVzCisJCQl8fCAodW5zaWduZWQpIGZzLT5tZnNfbG9nX3pvbmVfc2l6ZSA+IDQpCisJ
CXJldHVybiBFSU5WQUw7CisKKwkvKiBjb21wdXRlIGluLW1lbW9yeSBtZnNfc2Jsb2NrIHZhbHVl
cyAqLworCWZzLT5tZnNfaW5vZGVzX3Blcl9ibG9jayA9IGZzLT5tZnNfYmxvY2tfc2l6ZSAvIElO
T0RFX1NJWkU7CisKKworCXsKKwkJaW50MzJfdCBtdWx0ID0gZnMtPm1mc19ibG9ja19zaXplID4+
IExPR19NSU5CU0laRTsKKwkJaW50IGxuMiA9IExPR19NSU5CU0laRTsKKworCQlmb3IgKDsgbXVs
dCAhPSAxOyBsbjIrKykKKwkJCW11bHQgPj49IDE7CisKKwkJZnMtPm1mc19ic2hpZnQgPSBsbjI7
CisJCS8qIFhYWCBhc3N1bWUgaHcgYnNpemUgPSA1MTIgKi8KKwkJZnMtPm1mc19mc2J0b2RiID0g
bG4yIC0gTE9HX01JTkJTSVpFICsgMTsKKwl9CisKKwlmcy0+bWZzX3FibWFzayA9IGZzLT5tZnNf
YmxvY2tfc2l6ZSAtIDE7CisJZnMtPm1mc19ibWFzayA9IH5mcy0+bWZzX3FibWFzazsKKworCXJl
dHVybiAwOworfQorCisvKgorICogT3BlbiBhIGZpbGUuCisgKi8KK19fY29tcGFjdGNhbGwgaW50
CittaW5peGZzM19vcGVuKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBvcGVuX2ZpbGUgKmYpCit7
CisjaWZuZGVmIExJQlNBX0ZTX1NJTkdMRUNPTVBPTkVOVAorCWNvbnN0IGNoYXIgKmNwLCAqbmNw
OworCWludCBjOworI2VuZGlmCisJaW5vMzJfdCBpbnVtYmVyOworCXN0cnVjdCBmaWxlICpmcDsK
KwlzdHJ1Y3QgbWZzX3NibG9jayAqZnM7CisJaW50IHJjOworI2lmbmRlZiBMSUJTQV9OT19GU19T
WU1MSU5LCisJaW5vMzJfdCBwYXJlbnRfaW51bWJlcjsKKwlpbnQgbmxpbmtzID0gMDsKKwljaGFy
IG5hbWVidWZbTUFYUEFUSExFTisxXTsKKwljaGFyICpidWY7CisjZW5kaWYKKworCS8qIGFsbG9j
YXRlIGZpbGUgc3lzdGVtIHNwZWNpZmljIGRhdGEgc3RydWN0dXJlICovCisJZnAgPSBhbGxvYyhz
aXplb2Yoc3RydWN0IGZpbGUpKTsKKwltZW1zZXQoZnAsIDAsIHNpemVvZihzdHJ1Y3QgZmlsZSkp
OworCWYtPmZfZnNkYXRhID0gKHZvaWQgKilmcDsKKworCS8qIGFsbG9jYXRlIHNwYWNlIGFuZCBy
ZWFkIHN1cGVyIGJsb2NrICovCisJZnMgPSBhbGxvYyhzaXplb2YoKmZzKSk7CisJbWVtc2V0KGZz
LCAwLCBzaXplb2YoKmZzKSk7CisJZnAtPmZfZnMgPSBmczsKKwl0d2lkZGxlKCk7CisKKwlyYyA9
IHJlYWRfc2Jsb2NrKGYsIGZzKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCisJLyogYWxsb2Mg
YSBibG9jayBzaXplZCBidWZmZXIgdXNlZCBmb3IgYWxsIGZzIHRyYW5zZmVycyAqLworCWZwLT5m
X2J1ZiA9IGFsbG9jKGZzLT5tZnNfYmxvY2tfc2l6ZSk7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBp
bmRpcmVjdCBibG9jayBsZXZlbHMuCisJICovCisJeworCQlpbnQzMl90IG11bHQ7CisJCWludCBs
bjI7CisKKwkJLyoKKwkJICogV2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgaW5kaXJlY3QgYmxv
Y2tzIGlzIGFsd2F5cworCQkgKiBhIHBvd2VyIG9mIDIuICBUaGlzIGxldHMgdXMgdXNlIHNoaWZ0
cyBhbmQgbWFza3MgaW5zdGVhZAorCQkgKiBvZiBkaXZpZGUgYW5kIHJlbWFpbmRlciBhbmQgYXZv
aW5kcyBwdWxsaW5nIGluIHRoZQorCQkgKiA2NGJpdCBkaXZpc2lvbiByb3V0aW5lIGludG8gdGhl
IGJvb3QgY29kZS4KKwkJICovCisJCW11bHQgPSBOSU5ESVIoZnMpOworI2lmZGVmIERFQlVHCisJ
CWlmICghcG93ZXJvZjIobXVsdCkpIHsKKwkJCS8qIEh1bW1tIHdhcyd0IGEgcG93ZXIgb2YgMiAq
LworCQkJcmMgPSBFSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorI2VuZGlmCisJCWZvciAobG4y
ID0gMDsgbXVsdCAhPSAxOyBsbjIrKykKKwkJCW11bHQgPj49IDE7CisKKwkJZnAtPmZfbmlzaGlm
dCA9IGxuMjsKKwl9CisKKwlpbnVtYmVyID0gUk9PVF9JTk9ERTsKKwlpZiAoKHJjID0gcmVhZF9p
bm9kZShpbnVtYmVyLCBmKSkgIT0gMCkKKwkJZ290byBvdXQ7CisKKyNpZm5kZWYgTElCU0FfRlNf
U0lOR0xFQ09NUE9ORU5UCisJY3AgPSBwYXRoOworCXdoaWxlICgqY3ApIHsKKworCQkvKgorCQkg
KiBSZW1vdmUgZXh0cmEgc2VwYXJhdG9ycworCQkgKi8KKwkJd2hpbGUgKCpjcCA9PSAnLycpCisJ
CQljcCsrOworCQlpZiAoKmNwID09ICdcMCcpCisJCQlicmVhazsKKworCQkvKgorCQkgKiBDaGVj
ayB0aGF0IGN1cnJlbnQgbm9kZSBpcyBhIGRpcmVjdG9yeS4KKwkJICovCisJCWlmICgoZnAtPmZf
ZGkubWRpX21vZGUgJiBJX1RZUEUpICE9IElfRElSRUNUT1JZKSB7CisJCQlyYyA9IEVOT1RESVI7
CisJCQlnb3RvIG91dDsKKwkJfQorCisJCS8qCisJCSAqIEdldCBuZXh0IGNvbXBvbmVudCBvZiBw
YXRoIG5hbWUuCisJCSAqLworCQluY3AgPSBjcDsKKwkJd2hpbGUgKChjID0gKmNwKSAhPSAnXDAn
ICYmIGMgIT0gJy8nKQorCQkJY3ArKzsKKworCQkvKgorCQkgKiBMb29rIHVwIGNvbXBvbmVudCBp
biBjdXJyZW50IGRpcmVjdG9yeS4KKwkJICogU2F2ZSBkaXJlY3RvcnkgaW51bWJlciBpbiBjYXNl
IHdlIGZpbmQgYQorCQkgKiBzeW1ib2xpYyBsaW5rLgorCQkgKi8KKyNpZm5kZWYgTElCU0FfTk9f
RlNfU1lNTElOSworCQlwYXJlbnRfaW51bWJlciA9IGludW1iZXI7CisjZW5kaWYKKwkJcmMgPSBz
ZWFyY2hfZGlyZWN0b3J5KG5jcCwgY3AgLSBuY3AsIGYsICZpbnVtYmVyKTsKKwkJaWYgKHJjKQor
CQkJZ290byBvdXQ7CisKKwkJLyoKKwkJICogT3BlbiBuZXh0IGNvbXBvbmVudC4KKwkJICovCisJ
CWlmICgocmMgPSByZWFkX2lub2RlKGludW1iZXIsIGYpKSAhPSAwKQorCQkJZ290byBvdXQ7CisK
KyNpZm5kZWYgTElCU0FfTk9fRlNfU1lNTElOSworCQkvKgorCQkgKiBDaGVjayBmb3Igc3ltYm9s
aWMgbGluay4KKwkJICovCisJCWlmICgoZnAtPmZfZGkubWRpX21vZGUgJiBJX1RZUEUpID09IElf
U1lNQk9MSUNfTElOSykgeworCQkJaW50IGxpbmtfbGVuID0gZnAtPmZfZGkubWRpX3NpemU7CisJ
CQlpbnQgbGVuOworCQkJc2l6ZV90IGJ1Zl9zaXplOworCQkJYmxvY2tfdAlkaXNrX2Jsb2NrOwor
CisJCQlsZW4gPSBzdHJsZW4oY3ApOworCisJCQlpZiAobGlua19sZW4gKyBsZW4gPiBNQVhQQVRI
TEVOIHx8CisJCQkgICAgKytubGlua3MgPiBNQVhTWU1MSU5LUykgeworCQkJCXJjID0gRU5PRU5U
OworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQltZW1tb3ZlKCZuYW1lYnVmW2xpbmtfbGVuXSwg
Y3AsIGxlbiArIDEpOworCisJCQkvKgorCQkJICogUmVhZCBmaWxlIGZvciBzeW1ib2xpYyBsaW5r
CisJCQkgKi8KKwkJCWJ1ZiA9IGZwLT5mX2J1ZjsKKwkJCXJjID0gYmxvY2tfbWFwKGYsIChibG9j
a190KTAsICZkaXNrX2Jsb2NrKTsKKwkJCWlmIChyYykKKwkJCQlnb3RvIG91dDsKKworCQkJdHdp
ZGRsZSgpOworCQkJcmMgPSBERVZfU1RSQVRFR1koZi0+Zl9kZXYpKGYtPmZfZGV2ZGF0YSwKKwkJ
CQkJRl9SRUFELCBGU0JUT0RCKGZzLCBkaXNrX2Jsb2NrKSwKKwkJCQkJZnMtPm1mc19ibG9ja19z
aXplLCBidWYsICZidWZfc2l6ZSk7CisJCQlpZiAocmMpCisJCQkJZ290byBvdXQ7CisKKwkJCW1l
bWNweShuYW1lYnVmLCBidWYsIGxpbmtfbGVuKTsKKworCQkJLyoKKwkJCSAqIElmIHJlbGF0aXZl
IHBhdGhuYW1lLCByZXN0YXJ0IGF0IHBhcmVudCBkaXJlY3RvcnkuCisJCQkgKiBJZiBhYnNvbHV0
ZSBwYXRobmFtZSwgcmVzdGFydCBhdCByb290LgorCQkJICovCisJCQljcCA9IG5hbWVidWY7CisJ
CQlpZiAoKmNwICE9ICcvJykKKwkJCQlpbnVtYmVyID0gcGFyZW50X2ludW1iZXI7CisJCQllbHNl
CisJCQkJaW51bWJlciA9IChpbm8zMl90KSBST09UX0lOT0RFOworCisJCQlpZiAoKHJjID0gcmVh
ZF9pbm9kZShpbnVtYmVyLCBmKSkgIT0gMCkKKwkJCQlnb3RvIG91dDsKKwkJfQorI2VuZGlmCS8q
ICFMSUJTQV9OT19GU19TWU1MSU5LICovCisJfQorCisJLyoKKwkgKiBGb3VuZCB0ZXJtaW5hbCBj
b21wb25lbnQuCisJICovCisJcmMgPSAwOworCisjZWxzZSAvKiAhTElCU0FfRlNfU0lOR0xFQ09N
UE9ORU5UICovCisKKwkvKiBsb29rIHVwIGNvbXBvbmVudCBpbiB0aGUgY3VycmVudCAocm9vdCkg
ZGlyZWN0b3J5ICovCisJcmMgPSBzZWFyY2hfZGlyZWN0b3J5KHBhdGgsIHN0cmxlbihwYXRoKSwg
ZiwgJmludW1iZXIpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisKKwkvKiBvcGVuIGl0ICovCisJ
cmMgPSByZWFkX2lub2RlKGludW1iZXIsIGYpOworCisjZW5kaWYgLyogIUxJQlNBX0ZTX1NJTkdM
RUNPTVBPTkVOVCAqLworCisJZnAtPmZfc2Vla3AgPSAwOwkJLyogcmVzZXQgc2VlayBwb2ludGVy
ICovCisKK291dDoKKwlpZiAocmMpCisJCW1pbml4ZnMzX2Nsb3NlKGYpOworCisJcmV0dXJuIHJj
OworfQorCitfX2NvbXBhY3RjYWxsIGludAorbWluaXhmczNfY2xvc2Uoc3RydWN0IG9wZW5fZmls
ZSAqZikKK3sKKwlzdHJ1Y3QgZmlsZSAqZnAgPSAoc3RydWN0IGZpbGUgKilmLT5mX2ZzZGF0YTsK
KworCWYtPmZfZnNkYXRhID0gTlVMTDsKKwlpZiAoZnAgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisK
KwlpZiAoZnAtPmZfYnVmKQorCQlkZWFsbG9jKGZwLT5mX2J1ZiwgZnAtPmZfZnMtPm1mc19ibG9j
a19zaXplKTsKKwlkZWFsbG9jKGZwLT5mX2ZzLCBzaXplb2YoKmZwLT5mX2ZzKSk7CisJZGVhbGxv
YyhmcCwgc2l6ZW9mKHN0cnVjdCBmaWxlKSk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDb3B5
IGEgcG9ydGlvbiBvZiBhIGZpbGUgaW50byBrZXJuZWwgbWVtb3J5LgorICogQ3Jvc3MgYmxvY2sg
Ym91bmRhcmllcyB3aGVuIG5lY2Vzc2FyeS4KKyAqLworX19jb21wYWN0Y2FsbCBpbnQKK21pbml4
ZnMzX3JlYWQoc3RydWN0IG9wZW5fZmlsZSAqZiwgdm9pZCAqc3RhcnQsIHNpemVfdCBzaXplLCBz
aXplX3QgKnJlc2lkKQoreworCXN0cnVjdCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZf
ZnNkYXRhOworCXNpemVfdCBjc2l6ZTsKKwljaGFyICpidWY7CisJc2l6ZV90IGJ1Zl9zaXplOwor
CWludCByYyA9IDA7CisJY2hhciAqYWRkciA9IHN0YXJ0OworCisJd2hpbGUgKHNpemUgIT0gMCkg
eworCQlpZiAoZnAtPmZfc2Vla3AgPj0gKG9mZl90KWZwLT5mX2RpLm1kaV9zaXplKQorCQkJYnJl
YWs7CisKKwkJcmMgPSBidWZfcmVhZF9maWxlKGYsICZidWYsICZidWZfc2l6ZSk7CisJCWlmIChy
YykKKwkJCWJyZWFrOworCisJCWNzaXplID0gc2l6ZTsKKwkJaWYgKGNzaXplID4gYnVmX3NpemUp
CisJCQljc2l6ZSA9IGJ1Zl9zaXplOworCisJCW1lbWNweShhZGRyLCBidWYsIGNzaXplKTsKKwor
CQlmcC0+Zl9zZWVrcCArPSBjc2l6ZTsKKwkJYWRkciArPSBjc2l6ZTsKKwkJc2l6ZSAtPSBjc2l6
ZTsKKwl9CisKKwlpZiAocmVzaWQpCisJCSpyZXNpZCA9IHNpemU7CisJcmV0dXJuIHJjOworfQor
CisvKgorICogTm90IGltcGxlbWVudGVkLgorICovCisjaWZuZGVmIExJQlNBX05PX0ZTX1dSSVRF
CitfX2NvbXBhY3RjYWxsIGludAorbWluaXhmczNfd3JpdGUoc3RydWN0IG9wZW5fZmlsZSAqZiwg
dm9pZCAqc3RhcnQsIHNpemVfdCBzaXplLCBzaXplX3QgKnJlc2lkKQoreworCisJcmV0dXJuIEVS
T0ZTOworfQorI2VuZGlmIC8qICFMSUJTQV9OT19GU19XUklURSAqLworCisjaWZuZGVmIExJQlNB
X05PX0ZTX1NFRUsKK19fY29tcGFjdGNhbGwgb2ZmX3QKK21pbml4ZnMzX3NlZWsoc3RydWN0IG9w
ZW5fZmlsZSAqZiwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlcmUpCit7CisJc3RydWN0IGZpbGUgKmZw
ID0gKHN0cnVjdCBmaWxlICopZi0+Zl9mc2RhdGE7CisKKwlzd2l0Y2ggKHdoZXJlKSB7CisJY2Fz
ZSBTRUVLX1NFVDoKKwkJZnAtPmZfc2Vla3AgPSBvZmZzZXQ7CisJCWJyZWFrOworCWNhc2UgU0VF
S19DVVI6CisJCWZwLT5mX3NlZWtwICs9IG9mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBTRUVLX0VO
RDoKKwkJZnAtPmZfc2Vla3AgPSBmcC0+Zl9kaS5tZGlfc2l6ZSAtIG9mZnNldDsKKwkJYnJlYWs7
CisJZGVmYXVsdDoKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gZnAtPmZfc2Vla3A7Cit9Cisj
ZW5kaWYgLyogIUxJQlNBX05PX0ZTX1NFRUsgKi8KKworX19jb21wYWN0Y2FsbCBpbnQKK21pbml4
ZnMzX3N0YXQoc3RydWN0IG9wZW5fZmlsZSAqZiwgc3RydWN0IHN0YXQgKnNiKQoreworCXN0cnVj
dCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZfZnNkYXRhOworCisJLyogb25seSBpbXBv
cnRhbnQgc3R1ZmYgKi8KKwltZW1zZXQoc2IsIDAsIHNpemVvZiAqc2IpOworCXNiLT5zdF9tb2Rl
ID0gZnAtPmZfZGkubWRpX21vZGU7CisJc2ItPnN0X3VpZCA9IGZwLT5mX2RpLm1kaV91aWQ7CisJ
c2ItPnN0X2dpZCA9IGZwLT5mX2RpLm1kaV9naWQ7CisJc2ItPnN0X3NpemUgPSBmcC0+Zl9kaS5t
ZGlfc2l6ZTsKKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTElCU0FfRU5BQkxFX0xTX09Q
KQorX19jb21wYWN0Y2FsbCB2b2lkCittaW5peGZzM19scyhzdHJ1Y3Qgb3Blbl9maWxlICpmLCBj
b25zdCBjaGFyICpwYXR0ZXJuKQoreworCXN0cnVjdCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAq
KWYtPmZfZnNkYXRhOworCXN0cnVjdCBtZnNfc2Jsb2NrICpmcyA9IGZwLT5mX2ZzOworCXN0cnVj
dCBtZnNfZGlyZWN0ICpkcDsKKwlzdHJ1Y3QgbWZzX2RpcmVjdCAqZGJ1ZjsKKwlzaXplX3QgYnVm
X3NpemU7CisJZW50cnlfdAkqbmFtZXMgPSAwLCAqbiwgKipucDsKKworCWZwLT5mX3NlZWtwID0g
MDsKKwl3aGlsZSAoZnAtPmZfc2Vla3AgPCAob2ZmX3QpZnAtPmZfZGkubWRpX3NpemUpIHsKKwkJ
aW50IHJjID0gYnVmX3JlYWRfZmlsZShmLCAoY2hhcioqKSZkYnVmLCAmYnVmX3NpemUpOworCQlp
ZiAocmMpCisJCQlnb3RvIG91dDsKKworCQkvKiBYWFggd2UgYXNzdW1lLCB0aGF0IGJ1Zl9yZWFk
X2ZpbGUgcmVhZHMgYW4gZnMgYmxvY2sgYW5kCisJCSAqIGRvZXNuJ3QgdHJ1bmNhdGUgYnVmZmVy
LiBDdXJyZW50bHkgaV9zaXplIGluIE1GUyBkb2Vzbid0CisJCSAqIHRoZSBzYW1lIGFzIHNpemUg
b2YgYWxsb2NhdGVkIGJsb2NrcywgaXQgbWFrZXMgYnVmX3JlYWRfZmlsZQorCQkgKiB0byB0cnVu
Y2F0ZSBidWZfc2l6ZS4KKwkJICovCisJCWlmIChidWZfc2l6ZSA8IGZzLT5tZnNfYmxvY2tfc2l6
ZSkKKwkJCWJ1Zl9zaXplID0gZnMtPm1mc19ibG9ja19zaXplOworCisJCWZvciAoZHAgPSBkYnVm
OyBkcCA8ICZkYnVmW05SX0RJUl9FTlRSSUVTKGZzKV07IGRwKyspIHsKKwkJCWNoYXIgKmNwOwor
CQkJaW50IG5hbWxlbjsKKworCQkJaWYgKGZzMmgzMihkcC0+bWZzZF9pbm8pID09IDApCisJCQkJ
Y29udGludWU7CisKKwkJCWlmIChwYXR0ZXJuICYmICFmbl9tYXRjaChkcC0+bWZzZF9uYW1lLCBw
YXR0ZXJuKSkKKwkJCQljb250aW51ZTsKKworCQkJLyogQ29tcHV0ZSB0aGUgbGVuZ3RoIG9mIHRo
ZSBuYW1lLAorCQkJICogV2UgZG9uJ3QgdXNlIHN0cmxlbiBhbmQgc3RyY3B5LCBiZWNhdXNlIG9y
aWdpbmFsIE1GUworCQkJICogY29kZSBkb2Vzbid0LgorCQkJICovCisJCQljcCA9IG1lbWNocihk
cC0+bWZzZF9uYW1lLCAnXDAnLCBzaXplb2YoZHAtPm1mc2RfbmFtZSkpOworCQkJaWYgKGNwID09
IE5VTEwpCisJCQkJbmFtbGVuID0gc2l6ZW9mKGRwLT5tZnNkX25hbWUpOworCQkJZWxzZQorCQkJ
CW5hbWxlbiA9IGNwIC0gKGRwLT5tZnNkX25hbWUpOworCisJCQluID0gYWxsb2Moc2l6ZW9mICpu
ICsgbmFtbGVuKTsKKwkJCWlmICghbikgeworCQkJCXByaW50ZigiJWQ6ICVzXG4iLAorCQkJCQlm
czJoMzIoZHAtPm1mc2RfaW5vKSwgZHAtPm1mc2RfbmFtZSk7CisJCQkJY29udGludWU7CisJCQl9
CisJCQluLT5lX2lubyA9IGZzMmgzMihkcC0+bWZzZF9pbm8pOworCQkJc3RybmNweShuLT5lX25h
bWUsIGRwLT5tZnNkX25hbWUsIG5hbWxlbik7CisJCQluLT5lX25hbWVbbmFtbGVuXSA9ICdcMCc7
CisJCQlmb3IgKG5wID0gJm5hbWVzOyAqbnA7IG5wID0gJigqbnApLT5lX25leHQpIHsKKwkJCQlp
ZiAoc3RyY21wKG4tPmVfbmFtZSwgKCpucCktPmVfbmFtZSkgPCAwKQorCQkJCQlicmVhazsKKwkJ
CX0KKwkJCW4tPmVfbmV4dCA9ICpucDsKKwkJCSpucCA9IG47CisJCX0KKwkJZnAtPmZfc2Vla3Ag
Kz0gYnVmX3NpemU7CisJfQorCisJaWYgKG5hbWVzKSB7CisJCWVudHJ5X3QgKnBfbmFtZXMgPSBu
YW1lczsKKwkJZG8geworCQkJbiA9IHBfbmFtZXM7CisJCQlwcmludGYoIiVkOiAlc1xuIiwKKwkJ
CQluLT5lX2lubywgbi0+ZV9uYW1lKTsKKwkJCXBfbmFtZXMgPSBuLT5lX25leHQ7CisJCX0gd2hp
bGUgKHBfbmFtZXMpOworCX0gZWxzZSB7CisJCXByaW50Zigibm90IGZvdW5kXG4iKTsKKwl9Citv
dXQ6CisJaWYgKG5hbWVzKSB7CisJCWRvIHsKKwkJCW4gPSBuYW1lczsKKwkJCW5hbWVzID0gbi0+
ZV9uZXh0OworCQkJZGVhbGxvYyhuLCAwKTsKKwkJfSB3aGlsZSAobmFtZXMpOworCX0KKwlyZXR1
cm47Cit9CisjZW5kaWYKKworLyoKKyAqIGJ5dGUgc3dhcCBmdW5jdGlvbnMgZm9yIGJpZyBlbmRp
YW4gbWFjaGluZXMKKyAqIChtZnMgaXMgYWx3YXlzIGxpdHRsZSBlbmRpYW4pCisgKi8KKworLyog
VGhlc2UgZnVuY3Rpb25zIGFyZSBvbmx5IG5lZWRlZCBpZiBuYXRpdmUgYnl0ZSBvcmRlciBpcyBu
b3QgYmlnIGVuZGlhbiAqLworI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElBTgordm9pZAorbWlu
aXhmczNfc2JfYnN3YXAoc3RydWN0IG1mc19zYmxvY2sgKm9sZCwgc3RydWN0IG1mc19zYmxvY2sg
Km5ldykKK3sKKwluZXctPm1mc19uaW5vZGVzCT0JYnN3YXAzMihvbGQtPm1mc19uaW5vZGVzKTsK
KwluZXctPm1mc19uem9uZXMJCT0JYnN3YXAxNihvbGQtPm1mc19uem9uZXMpOworCW5ldy0+bWZz
X2ltYXBfYmxvY2tzCT0JYnN3YXAxNihvbGQtPm1mc19pbWFwX2Jsb2Nrcyk7CisJbmV3LT5tZnNf
em1hcF9ibG9ja3MJPQlic3dhcDE2KG9sZC0+bWZzX3ptYXBfYmxvY2tzKTsKKwluZXctPm1mc19m
aXJzdGRhdGF6b25lX29sZCA9CWJzd2FwMTYob2xkLT5tZnNfZmlyc3RkYXRhem9uZV9vbGQpOwor
CW5ldy0+bWZzX2xvZ196b25lX3NpemUJPQlic3dhcDE2KG9sZC0+bWZzX2xvZ196b25lX3NpemUp
OworCW5ldy0+bWZzX21heF9zaXplCT0JYnN3YXAzMihvbGQtPm1mc19tYXhfc2l6ZSk7CisJbmV3
LT5tZnNfem9uZXMJCT0JYnN3YXAzMihvbGQtPm1mc196b25lcyk7CisJbmV3LT5tZnNfbWFnaWMJ
CT0JYnN3YXAxNihvbGQtPm1mc19tYWdpYyk7CisJbmV3LT5tZnNfYmxvY2tfc2l6ZQk9CWJzd2Fw
MTYob2xkLT5tZnNfYmxvY2tfc2l6ZSk7CisJbmV3LT5tZnNfZGlza192ZXJzaW9uCT0Jb2xkLT5t
ZnNfZGlza192ZXJzaW9uOworfQorCit2b2lkIG1pbml4ZnMzX2lfYnN3YXAoc3RydWN0IG1mc19k
aW5vZGUgKm9sZCwgc3RydWN0IG1mc19kaW5vZGUgKm5ldykKK3sKKwlpbnQgaTsKKworCW5ldy0+
bWRpX21vZGUJCT0JYnN3YXAxNihvbGQtPm1kaV9tb2RlKTsKKwluZXctPm1kaV9ubGlua3MJCT0J
YnN3YXAxNihvbGQtPm1kaV9ubGlua3MpOworCW5ldy0+bWRpX3VpZAkJPQlic3dhcDE2KG9sZC0+
bWRpX3VpZCk7CisJbmV3LT5tZGlfZ2lkCQk9CWJzd2FwMTYob2xkLT5tZGlfZ2lkKTsKKwluZXct
Pm1kaV9zaXplCQk9CWJzd2FwMzIob2xkLT5tZGlfc2l6ZSk7CisJbmV3LT5tZGlfYXRpbWUJCT0J
YnN3YXAzMihvbGQtPm1kaV9hdGltZSk7CisJbmV3LT5tZGlfbXRpbWUJCT0JYnN3YXAzMihvbGQt
Pm1kaV9tdGltZSk7CisJbmV3LT5tZGlfY3RpbWUJCT0JYnN3YXAzMihvbGQtPm1kaV9jdGltZSk7
CisKKwkvKiBXZSBkb24ndCBzd2FwIGhlcmUsIGJlY2F1c2UgaW5kaXJlY3RzIG11c3QgYmUgc3dh
cHBlZCBsYXRlcgorCSAqIGFueXdheSwgaGVuY2UgZXZlcnl0aGluZyBpcyBkb25lIGJ5IGJsb2Nr
X21hcCgpLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBOUl9UWk9ORVM7IGkrKykKKwkJbmV3LT5t
ZGlfem9uZVtpXSA9IG9sZC0+bWRpX3pvbmVbaV07Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5
cy9saWIvbGlic2EvbWluaXhmczMuaCBiL3N5cy9saWIvbGlic2EvbWluaXhmczMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWY4YTU0Ci0tLSAvZGV2L251bGwKKysrIGIv
c3lzL2xpYi9saWJzYS9taW5peGZzMy5oCkBAIC0wLDAgKzEsMTc2IEBACisvKgkkTmV0QlNEJCAq
LworCisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAxMgorICoJVnJpamUgVW5pdmVyc2l0ZWl0LCBB
bXN0ZXJkYW0sIFRoZSBOZXRoZXJsYW5kcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBB
dXRob3I6IEV2Z2VuaXkgSXZhbm92CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBgYEFTCisg
KiBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBGT1VOREFUSU9OIE9SIENPTlRSSUJVVE9S
UyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNSU5JWF9G
U18zX0gKKyNkZWZpbmUgTUlOSVhfRlNfM19ICisKK0ZTX0RFRihtaW5peGZzMyk7CisKK3R5cGVk
ZWYgdWludDMyX3Qgem9uZV90OwordHlwZWRlZiB1aW50MTZfdCB6b25lMV90OwordHlwZWRlZiB1
aW50MzJfdCBibG9ja190OworCisjZGVmaW5lIE5SX0RaT05FUwk3CS8qICMgZGlyZWN0IHpvbmUg
bnVtYmVycyBpbiBhbiBpbm9kZSAqLworI2RlZmluZSBOUl9UWk9ORVMJMTAJLyogdG90YWwgIyB6
b25lIG51bWJlcnMgaW4gYW4gaW5vZGUgKi8KKyNkZWZpbmUgTklBRERSCQkyICAgICAgIC8qIElu
ZGlyZWN0IGFkZHJlc3NlcyBpbiBpbm9kZSAqLworCitzdHJ1Y3QgbWZzX2Rpbm9kZSB7CisJdWlu
dDE2X3QgIG1kaV9tb2RlOwkvKiBmaWxlIHR5cGUsIHByb3RlY3Rpb24sIGV0Yy4gKi8KKwl1aW50
MTZfdCAgbWRpX25saW5rczsJLyogaG93IG1hbnkgbGlua3MgdG8gdGhpcyBmaWxlICovCisJaW50
MTZfdCAgIG1kaV91aWQ7CS8qIHVzZXIgaWQgb2YgdGhlIGZpbGUncyBvd25lciAqLworCXVpbnQx
Nl90ICBtZGlfZ2lkOwkvKiBncm91cCBudW1iZXIgKi8KKwl1aW50MzJfdCAgbWRpX3NpemU7CS8q
IGN1cnJlbnQgZmlsZSBzaXplIGluIGJ5dGVzICovCisJdWludDMyX3QgIG1kaV9hdGltZTsJLyog
dGltZSBvZiBsYXN0IGFjY2VzcyAqLworCXVpbnQzMl90ICBtZGlfbXRpbWU7CS8qIHdoZW4gd2Fz
IGZpbGUgZGF0YSBsYXN0IGNoYW5nZWQgKi8KKwl1aW50MzJfdCAgbWRpX2N0aW1lOwkvKiB3aGVu
IHdhcyBpbm9kZSBpdHNlbGYgY2hhbmdlZCAqLworCXpvbmVfdCAgICBtZGlfem9uZVtOUl9UWk9O
RVNdOyAvKiB6b25lIG51bWJlcnMgZm9yIGRpcmVjdCwgaW5kLCBhbmQKKwkJCQkJCWRibCBpbmQg
Ki8KK307CisKKy8qIE1heGltdW0gTWluaXggTUZTIG9uLWRpc2sgZGlyZWN0b3J5IGZpbGVuYW1l
LgorICogTUZTIHVzZXMgJ3N0cnVjdCBkaXJlY3QnIHRvIHdyaXRlIGFuZCBwYXJzZQorICogZGly
ZWN0b3J5IGVudHJpZXMsIHNvIHRoaXMgY2FuJ3QgYmUgY2hhbmdlZAorICogd2l0aG91dCBicmVh
a2luZyBmaWxlc3lzdGVtcy4KKyAqLworI2RlZmluZSBNRlNfRElSU0laCTYwCisKK3N0cnVjdCBt
ZnNfZGlyZWN0IHsKKwl1aW50MzJfdCAgbWZzZF9pbm87CisJY2hhciAgICAgIG1mc2RfbmFtZVtN
RlNfRElSU0laXTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBtZnNfc2Jsb2NrIHsKKwl1aW50MzJf
dCAgbWZzX25pbm9kZXM7CQkvKiAjIHVzYWJsZSBpbm9kZXMgb24gdGhlIG1pbm9yIGRldmljZSAq
LworCXpvbmUxX3QgICBtZnNfbnpvbmVzOwkJLyogdG90YWwgZGV2aWNlIHNpemUsIGluY2x1ZGlu
ZyBiaXQgbWFwcyBldGMgKi8KKwlpbnQxNl90ICAgbWZzX2ltYXBfYmxvY2tzOwkvKiAjIG9mIGJs
b2NrcyB1c2VkIGJ5IGlub2RlIGJpdCBtYXAgKi8KKwlpbnQxNl90ICAgbWZzX3ptYXBfYmxvY2tz
OwkvKiAjIG9mIGJsb2NrcyB1c2VkIGJ5IHpvbmUgYml0IG1hcCAqLworCXpvbmUxX3QgICBtZnNf
Zmlyc3RkYXRhem9uZV9vbGQ7LyogbnVtYmVyIG9mIGZpcnN0IGRhdGEgem9uZSAoc21hbGwpICov
CisJaW50MTZfdCAgIG1mc19sb2dfem9uZV9zaXplOwkvKiBsb2cyIG9mIGJsb2Nrcy96b25lICov
CisJaW50MTZfdCAgIG1mc19wYWQ7CQkvKiB0cnkgdG8gYXZvaWQgY29tcGlsZXItZGVwZW5kZW50
IHBhZGRpbmcgKi8KKwlpbnQzMl90ICAgbWZzX21heF9zaXplOwkJLyogbWF4aW11bSBmaWxlIHNp
emUgb24gdGhpcyBkZXZpY2UgKi8KKwl6b25lX3QgICAgbWZzX3pvbmVzOwkJLyogbnVtYmVyIG9m
IHpvbmVzIChyZXBsYWNlcyBzX256b25lcyBpbiBWMikgKi8KKwlpbnQxNl90ICAgbWZzX21hZ2lj
OwkJLyogbWFnaWMgbnVtYmVyIHRvIHJlY29nbml6ZSBzdXBlci1ibG9ja3MgKi8KKwlpbnQxNl90
ICAgbWZzX3BhZDI7CQkvKiB0cnkgdG8gYXZvaWQgY29tcGlsZXItZGVwZW5kZW50IHBhZGRpbmcg
Ki8KKwl1aW50MTZfdCAgbWZzX2Jsb2NrX3NpemU7CS8qIGJsb2NrIHNpemUgaW4gYnl0ZXMuICov
CisJY2hhciAgICAgIG1mc19kaXNrX3ZlcnNpb247CS8qIGZpbGVzeXN0ZW0gZm9ybWF0IHN1Yi12
ZXJzaW9uICovCisKKyAgLyogVGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgb25seSB1c2VkIHdoZW4g
dGhlIHN1cGVyX2Jsb2NrIGlzIGluIG1lbW9yeSwKKyAgICogbWZzX2lub2Rlc19wZXJfYmxvY2sg
bXVzdCBiZSB0aGUgZmlycyBvbmUgKHNlZSBTQlNJWkUpCisgICAqLworCXVuc2lnbmVkIG1mc19p
bm9kZXNfcGVyX2Jsb2NrOwkvKiBwcmVjYWxjdWxhdGVkIGZyb20gbWFnaWMgbnVtYmVyICovCisJ
em9uZV90ICAgbWZzX2ZpcnN0ZGF0YXpvbmU7CS8qIG51bWJlciBvZiBmaXJzdCBkYXRhIHpvbmUg
KGJpZykgKi8KKwlpbnQzMl90ICBtZnNfYnNoaWZ0OwkJLyogYGBsYmxrbm8nJyBjYWxjIG9mIGxv
Z2ljYWwgYmxrbm8gKi8KKwlpbnQzMl90ICBtZnNfYm1hc2s7CQkvKiBgYGJsa29mZicnIGNhbGMg
b2YgYmxrIG9mZnNldHMgKi8KKwlpbnQ2NF90ICBtZnNfcWJtYXNrOwkJLyogfmZzX2JtYXNrIC0g
Zm9yIHVzZSB3aXRoIHF1YWQgc2l6ZSAqLworCWludDMyX3QgIG1mc19mc2J0b2RiOwkJLyogZnNi
dG9kYiBhbmQgZGJ0b2ZzYiBzaGlmdCBjb25zdGFudCAqLworfTsKKworI2RlZmluZSBMT0dfTUlO
QlNJWkUJMTAKKyNkZWZpbmUgTUlOQlNJWkUJKDEgPDwgTE9HX01JTkJTSVpFKQorCisjZGVmaW5l
IFNVUEVSX01BR0lDCTB4NGQ1YQkvKiBtYWdpYyAjIGZvciBNRlN2MyBmaWxlIHN5c3RlbXMgKi8K
KworI2RlZmluZSBST09UX0lOT0RFCSgodWludDMyX3QpIDEpCS8qIGlub2RlIG51bWJlciBmb3Ig
cm9vdCBkaXJlY3RvcnkgKi8KKyNkZWZpbmUgU1VQRVJfQkxPQ0tfT0ZGICgxMDI0KQkJLyogYnl0
ZXMgb2Zmc2V0ICovCisjZGVmaW5lIFNUQVJUX0JMT0NLCSgoYmxvY2tfdCkgMikJLyogZmlyc3Qg
ZnMgYmxvY2sgKG5vdCBjb3VudGluZyBTQikgKi8KKworLyogIyBieXRlcy9kaXIgZW50cnkgKi8K
KyNkZWZpbmUgRElSX0VOVFJZX1NJWkUJCXNpemVvZihzdHJ1Y3QgbWZzX2RpcmVjdCkKKy8qICMg
ZGlyIGVudHJpZXMvYmxrICovCisjZGVmaW5lIE5SX0RJUl9FTlRSSUVTKGZzKQkoKGZzKS0+bWZz
X2Jsb2NrX3NpemUvRElSX0VOVFJZX1NJWkUpCisvKiBtZnNfc2Jsb2NrIG9uLWRpc2sgcGFydCBz
aXplICovCisjZGVmaW5lIFNCU0laRQkJCW9mZnNldG9mKHN0cnVjdCBtZnNfc2Jsb2NrLCBtZnNf
aW5vZGVzX3Blcl9ibG9jaykKKworI2RlZmluZSBaT05FX05VTV9TSVpFCQlzaXplb2Yoem9uZV90
KSAvKiAjIGJ5dGVzIGluIHpvbmUgICovCisjZGVmaW5lIElOT0RFX1NJWkUJCXNpemVvZihzdHJ1
Y3QgbWZzX2Rpbm9kZSkgLyogYnl0ZXMgaW4gZHNrIGlubyAqLworLyogIyB6b25lcy9pbmRpciBi
bG9jayAqLworI2RlZmluZSBOSU5ESVIoZnMpCQkoKGZzKS0+bWZzX2Jsb2NrX3NpemUvWk9ORV9O
VU1fU0laRSkKKworI2RlZmluZSBOT19aT05FCQkJKCh6b25lX3QpIDApCS8qIGFic2VuY2Ugb2Yg
YSB6b25lIG51bWJlciAqLworI2RlZmluZSBOT19CTE9DSwkJKChibG9ja190KSAwKQkvKiBhYnNl
bmNlIG9mIGEgYmxvY2sgbnVtYmVyICovCisKKy8qIFR1cm4gZmlsZSBzeXN0ZW0gYmxvY2sgbnVt
YmVycyBpbnRvIGRpc2sgYmxvY2sgYWRkcmVzc2VzICovCisjZGVmaW5lIGZzYnRvZGIoZnMsIGIp
CSgoYikgPDwgKGZzKS0+bWZzX2ZzYnRvZGIpCisKKyNkZWZpbmUJaW5vX3RvX2ZzYmEoZnMsIHgp
CQkJCQkJXAorCSgoKHgpIC0gMSkgLyAoZnMpLT5tZnNfaW5vZGVzX3Blcl9ibG9jayArCQkJXAor
CVNUQVJUX0JMT0NLICsgKGZzKS0+bWZzX2ltYXBfYmxvY2tzICsgKGZzKS0+bWZzX3ptYXBfYmxv
Y2tzKQorI2RlZmluZQlpbm9fdG9fZnNibyhmcywgeCkJKCgoeCkgLSAxKSAlIChmcyktPm1mc19p
bm9kZXNfcGVyX2Jsb2NrKQorCisvKgorICogTUZTIG1ldGFkYXRhcyBhcmUgc3RvcmVkIGluIGxp
dHRsZS1lbmRpYW4gYnl0ZSBvcmRlci4gVGhlc2UgbWFjcm9zCisgKiBoZWxwcyByZWFkaW5nIHRo
ZXNlcyBtZXRhZGF0YXMuCisgKi8KKyNpZiBCWVRFX09SREVSID09IExJVFRMRV9FTkRJQU4KKyMJ
ZGVmaW5lIGZzMmgxNih4KSAoeCkKKyMJZGVmaW5lIGZzMmgzMih4KSAoeCkKKyMJZGVmaW5lIG1m
c19zYmxvYWQob2xkLCBuZXcpCVwKKwkJbWVtY3B5KChuZXcpLCAob2xkKSwgU0JTSVpFKTsKKyMJ
ZGVmaW5lIG1mc19pbG9hZChvbGQsIG5ldykJXAorCQltZW1jcHkoKG5ldyksKG9sZCksc2l6ZW9m
KHN0cnVjdCBtZnNfZGlub2RlKSkKKyNlbHNlCit2b2lkIG1pbml4ZnMzX3NiX2Jzd2FwKHN0cnVj
dCBtZnNfc2Jsb2NrICosIHN0cnVjdCBtZnNfc2Jsb2NrICopOwordm9pZCBtaW5peGZzM19pX2Jz
d2FwKHN0cnVjdCBtZnNfZGlub2RlICosIHN0cnVjdCBtZnNfZGlub2RlICopOworIwlkZWZpbmUg
ZnMyaDE2KHgpIGJzd2FwMTYoeCkKKyMJZGVmaW5lIGZzMmgzMih4KSBic3dhcDMyKHgpCisjCWRl
ZmluZSBtZnNfc2Jsb2FkKG9sZCwgbmV3KSBtaW5peGZzM19zYl9ic3dhcCgob2xkKSwgKG5ldykp
CisjCWRlZmluZSBtZnNfaWxvYWQob2xkLCBuZXcpIG1pbml4ZnMzX2lfYnN3YXAoKG9sZCksIChu
ZXcpKQorI2VuZGlmIC8qIEJZVEVfT1JERVIgPT0gTElUVExFX0VORElBTiAqLworCisvKgorICog
VGhlIGZvbGxvd2luZyBtYWNyb3Mgb3B0aW1pemUgY2VydGFpbiBmcmVxdWVudGx5IGNhbGN1bGF0
ZWQKKyAqIHF1YW50aXRpZXMgYnkgdXNpbmcgc2hpZnRzIGFuZCBtYXNrcyBpbiBwbGFjZSBvZiBk
aXZpc2lvbnMKKyAqIG1vZHVsb3MgYW5kIG11bHRpcGxpY2F0aW9ucy4KKyAqLworI2RlZmluZSBi
bGtvZmYoZnMsIGxvYykJCS8qIGNhbGN1bGF0ZXMgKGxvYyAlIGZzLT5tZnNfYnNpemUpICovIFwK
KwkoKGxvYykgJiAoZnMpLT5tZnNfcWJtYXNrKQorI2RlZmluZSBsYmxrbm8oZnMsIGxvYykJCS8q
IGNhbGN1bGF0ZXMgKGxvYyAvIGZzLT5tZnNfYnNpemUpICovIFwKKwkoKGxvYykgPj4gKGZzKS0+
bWZzX2JzaGlmdCkKKworLyogRmxhZyBiaXRzIGZvciBpX21vZGUgaW4gdGhlIGlub2RlLiAqLwor
I2RlZmluZSBJX1RZUEUgICAgICAgICAgMDE3MDAwMCAvKiB0aGlzIGZpZWxkIGdpdmVzIGlub2Rl
IHR5cGUgKi8KKyNkZWZpbmUgSV9VTklYX1NPQ0tFVCAgIDAxNDAwMDAgLyogdW5peCBkb21haW4g
c29ja2V0ICovCisjZGVmaW5lIElfU1lNQk9MSUNfTElOSyAwMTIwMDAwIC8qIGZpbGUgaXMgYSBz
eW1ib2xpYyBsaW5rICovCisjZGVmaW5lIElfUkVHVUxBUiAgICAgICAwMTAwMDAwIC8qIHJlZ3Vs
YXIgZmlsZSwgbm90IGRpciBvciBzcGVjaWFsICovCisjZGVmaW5lIElfQkxPQ0tfU1BFQ0lBTCAw
MDYwMDAwIC8qIGJsb2NrIHNwZWNpYWwgZmlsZSAqLworI2RlZmluZSBJX0RJUkVDVE9SWSAgICAg
MDA0MDAwMCAvKiBmaWxlIGlzIGEgZGlyZWN0b3J5ICovCisjZGVmaW5lIElfQ0hBUl9TUEVDSUFM
ICAwMDIwMDAwIC8qIGNoYXJhY3RlciBzcGVjaWFsIGZpbGUgKi8KKyNkZWZpbmUgSV9OQU1FRF9Q
SVBFICAgIDAwMTAwMDAgLyogbmFtZWQgcGlwZSAoRklGTykgKi8KKyNkZWZpbmUgSV9TRVRfVUlE
X0JJVCAgIDAwMDQwMDAgLyogc2V0IGVmZmVjdGl2ZSB1aWRfdCBvbiBleGVjICovCisjZGVmaW5l
IElfU0VUX0dJRF9CSVQgICAwMDAyMDAwIC8qIHNldCBlZmZlY3RpdmUgZ2lkX3Qgb24gZXhlYyAq
LworI2RlZmluZSBJX1NFVF9TVENLWV9CSVQgMDAwMTAwMCAvKiBzdGlja3kgYml0ICovCisjZGVm
aW5lIEFMTF9NT0RFUyAgICAgICAwMDA3Nzc3IC8qIGFsbCBiaXRzIGZvciB1c2VyLCBncm91cCBh
bmQgb3RoZXJzICovCisjZGVmaW5lIFJXWF9NT0RFUyAgICAgICAwMDAwNzc3IC8qIG1vZGUgYml0
cyBmb3IgUldYIG9ubHkgKi8KKyNkZWZpbmUgUl9CSVQgICAgICAgICAgIDAwMDAwMDQgLyogUnd4
IHByb3RlY3Rpb24gYml0ICovCisjZGVmaW5lIFdfQklUICAgICAgICAgICAwMDAwMDAyIC8qIHJX
eCBwcm90ZWN0aW9uIGJpdCAqLworI2RlZmluZSBYX0JJVCAgICAgICAgICAgMDAwMDAwMSAvKiBy
d1ggcHJvdGVjdGlvbiBiaXQgKi8KKyNkZWZpbmUgSV9OT1RfQUxMT0MgICAgIDAwMDAwMDAgLyog
dGhpcyBpbm9kZSBpcyBmcmVlICovCisKKyNlbmRpZiAvKiBNSU5JWF9GU18zX0ggKi8KLS0gCjEu
Ny4zLjQKCg==
--00235433305a59eca204b5f0459e
Content-Type: text/x-patch; charset=US-ASCII;
name="0003-i386-boot2-MINIX-FS-support.patch"
Content-Disposition: attachment;
filename="0003-i386-boot2-MINIX-FS-support.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gx4oi1v52
RnJvbSA5ZGI1N2EwMzViN2MzYzY0Mzc0NjdiZGFlZTY3Yjc5NWVhZjY4YTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
bT4KRGF0ZTogU3VuLCAxOCBEZWMgMjAxMSAxNTo1NDowMyArMDQwMApTdWJqZWN0OiBbUEFUQ0gg
My80XSBpMzg2IGJvb3QyIE1JTklYIEZTIHN1cHBvcnQuCgpCeSBkZWZhdWx0IE1JTklYIEZTIHN1
cHBvcnQgaXMgZGlzYWJsZWQuCgpkaWZmIC0tZ2l0IGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9ib290
L01ha2VmaWxlLmJvb3QgYi9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvTWFrZWZpbGUuYm9vdApp
bmRleCA3OGI5OTc0Li4xOGIzZWI4IDEwMDY0NAotLS0gYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jv
b3QvTWFrZWZpbGUuYm9vdAorKysgYi9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvTWFrZWZpbGUu
Ym9vdApAQCAtNzAsNiArNzAsNyBAQCBDUFBGTEFHUys9IC1EU1VQUE9SVF9DRDk2NjAKIENQUEZM
QUdTKz0gLURTVVBQT1JUX1VTVEFSRlMKIENQUEZMQUdTKz0gLURTVVBQT1JUX0RPU0ZTCiBDUFBG
TEFHUys9IC1EU1VQUE9SVF9FWFQyRlMKKyNDUFBGTEFHUys9IC1EU1VQUE9SVF9NSU5JWEZTMwog
Q1BQRkxBR1MrPSAtRFBBU1NfQklPU0dFT00KIENQUEZMQUdTKz0gLURQQVNTX01FTU1BUAogI0NQ
UEZMQUdTKz0gLURCT09UUEFTU1dECmRpZmYgLS1naXQgYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jv
b3QvY29uZi5jIGIvc3lzL2FyY2gvaTM4Ni9zdGFuZC9ib290L2NvbmYuYwppbmRleCBkYjkyYTA4
Li5mYTQ1YWMyIDEwMDY0NAotLS0gYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvY29uZi5jCisr
KyBiL3N5cy9hcmNoL2kzODYvc3RhbmQvYm9vdC9jb25mLmMKQEAgLTM2LDYgKzM2LDkgQEAKICNp
ZmRlZiBTVVBQT1JUX0VYVDJGUwogI2luY2x1ZGUgPGxpYi9saWJzYS9leHQyZnMuaD4KICNlbmRp
ZgorI2lmZGVmIFNVUFBPUlRfTUlOSVhGUzMKKyNpbmNsdWRlIDxsaWIvbGlic2EvbWluaXhmczMu
aD4KKyNlbmRpZgogI2lmZGVmIFNVUFBPUlRfVVNUQVJGUwogI2luY2x1ZGUgPGxpYi9saWJzYS91
c3RhcmZzLmg+CiAjZW5kaWYKQEAgLTY2LDYgKzY5LDkgQEAgc3RydWN0IGZzX29wcyBmaWxlX3N5
c3RlbVtdID0gewogI2lmZGVmIFNVUFBPUlRfRVhUMkZTCiAJRlNfT1BTKGV4dDJmcyksCiAjZW5k
aWYKKyNpZmRlZiBTVVBQT1JUX01JTklYRlMzCisJRlNfT1BTKG1pbml4ZnMzKSwKKyNlbmRpZgog
I2lmZGVmIFNVUFBPUlRfRE9TRlMKIAlGU19PUFMoZG9zZnMpLAogI2VuZGlmCi0tIAoxLjcuMy40
Cgo=
--00235433305a59eca204b5f0459e--
Home |
Main Index |
Thread Index |
Old Index