pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/42345 ([PATCH] sysutils/pftop on DragonFly BSD)
The following reply was made to PR pkg/42345; it has been noted by GNATS.
From: Rumko <rumcic%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/42345 ([PATCH] sysutils/pftop on DragonFly BSD)
Date: Sat, 28 Nov 2009 17:35:42 +0100
--nextPart1639093.Q3v5CpiS2o
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit
reed%NetBSD.org@localhost wrote:
> Synopsis: [PATCH] sysutils/pftop on DragonFly BSD
>
> Responsible-Changed-From-To: pkg-manager->peter
> Responsible-Changed-By: reed%NetBSD.org@localhost
> Responsible-Changed-When: Thu, 19 Nov 2009 01:23:07 +0000
> Responsible-Changed-Why:
> Assigned to maintainer.
> This should probably be sent upstream and have conditionals based on
> features instead of a specific operating system.
Something like this?
--nextPart1639093.Q3v5CpiS2o
Content-Type: application/mbox;
name="0001-Make-pftop-compile-on-DragonFly.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="0001-Make-pftop-compile-on-DragonFly.patch"
RnJvbSBlMmI0Y2ZhM2M3N2JlNTQ4MTdhYjBhZTMxYzA2MzcxMTBiNGI0OTg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSdW1rbyA8cnVtY2ljQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAx
NyBOb3YgMjAwOSAwMTo0MToyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIE1ha2UgcGZ0b3AgY29t
cGlsZSBvbiBEcmFnb25GbHkuCgpTb21lIGNoYW5nZXMgdGFrZW4gZnJvbSBGcmVlQlNEJ3MgcG9y
dHMuCi0tLQogc3lzdXRpbHMvcGZ0b3AvZGlzdGluZm8gICAgICAgICB8ICAgMTAgKy0KIHN5c3V0
aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWEgfCAgIDEwICstCiBzeXN1dGlscy9wZnRvcC9wYXRj
aGVzL3BhdGNoLWFkIHwgICA0MCArKy0tCiBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFn
IHwgICA5OCArKysrKystCiBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFoIHwgICAyNSAr
Ky0KIHN5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWogfCAgIDM2ICsrKwogc3lzdXRpbHMv
cGZ0b3AvcGF0Y2hlcy9wYXRjaC1hayB8ICA1MzIgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDcwNyBpbnNlcnRpb25zKCspLCA0NCBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNo
LWFqCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hawoK
ZGlmZiAtLWdpdCBhL3N5c3V0aWxzL3BmdG9wL2Rpc3RpbmZvIGIvc3lzdXRpbHMvcGZ0b3AvZGlz
dGluZm8KaW5kZXggZjc2NmU1Ni4uNjRjYTE5MyAxMDA2NDQKLS0tIGEvc3lzdXRpbHMvcGZ0b3Av
ZGlzdGluZm8KKysrIGIvc3lzdXRpbHMvcGZ0b3AvZGlzdGluZm8KQEAgLTMsMTIgKzMsMTQgQEAg
JE5ldEJTRDogZGlzdGluZm8sdiAxLjYgMjAwOC8wNi8xNSAxNDowOTowMyBwZXRlciBFeHAgJAog
U0hBMSAocGZ0b3AtMC43LnRhci5neikgPSA2NTFhZmE1MzJjZmM4Y2Y1OWMzNTk4NzA0ZGViOWJm
Mzc4OGFjOWU5CiBSTUQxNjAgKHBmdG9wLTAuNy50YXIuZ3opID0gMGUwYzA5ZTVmZWViMDdkZWJh
OGI1NDAyMzNkY2I5NDZiYTBiNDUwOAogU2l6ZSAocGZ0b3AtMC43LnRhci5neikgPSA1OTc2NSBi
eXRlcwotU0hBMSAocGF0Y2gtYWEpID0gZmZhZTlhNWFiOTViNzkzZmE4YjY3N2E1OGEyYjY5NjQ0
ZGEzN2RlMgorU0hBMSAocGF0Y2gtYWEpID0gZmY1YzUyMjIyMzQ3MjE4ODkzM2E2Y2NiZTk3MjUx
OTBkYzhlYzFiNQogU0hBMSAocGF0Y2gtYWIpID0gOWU1NGY3ZDZmNmU2YzRjNTRmOTI0Yjg2MDgw
MzU5ZWZlYTliYTM2OQogU0hBMSAocGF0Y2gtYWMpID0gNGQ1ZmZjMzU0MjU4ZmIzOWMwYTQ2NTU0
NTdiMGM3OGU0ZjU3MDljYgotU0hBMSAocGF0Y2gtYWQpID0gNjU4YzI2Y2VmMzg2YzMxZmJlZDk5
YTEzOGJlMGE5NGJjOWNhMTI3OAorU0hBMSAocGF0Y2gtYWQpID0gY2EyMGE2Y2QxZGQ2MWFhYjVi
NDFlNmVlMjJiMDhkZWU3NzQxYTU0MgogU0hBMSAocGF0Y2gtYWUpID0gNTQ2MTliODQ2ODk5YTdj
NGYyNjAxOTFhNzcyZTQxZTFjMDdjMTc4YwogU0hBMSAocGF0Y2gtYWYpID0gNTliOTA3YjIwZmEy
MTViM2YwYTFlNjkwYzljNzFkMmY3MDc3ZTMyMgotU0hBMSAocGF0Y2gtYWcpID0gZWE2M2I3ZTdh
MGVjMDc4YTAzNjliNmE0MTZhNzkwNTM4ZmEwYTg3ZAotU0hBMSAocGF0Y2gtYWgpID0gYjYzNGQ1
OTFiMGZlZmRiZjI3Mjk3MDI1M2ViMjc4OWE2ZDFjZDZjMgorU0hBMSAocGF0Y2gtYWcpID0gN2Iz
YjBhOWQ3YWM3M2RmOWMyNThhZTI3YThjNzVlNjU1NjU3NGVlOAorU0hBMSAocGF0Y2gtYWgpID0g
MTY1NDBhOGEyM2JlNmJkOTRiMzU3NThiYThjOWE2YzA4MDliMjY4OAogU0hBMSAocGF0Y2gtYWkp
ID0gNjI5YzE2NjhlYWIwZDgxOWU1OTBmYjYyYjdhZmE2Yzg1NzA5ZmQxNQorU0hBMSAocGF0Y2gt
YWopID0gYTJmMDM3MDdiNTljYTM5MGVkNDYwYWI3YmUwYWU4Mjk5NTI2YjY1NQorU0hBMSAocGF0
Y2gtYWspID0gNGIzZDk0MDE5ODllMDU5MWQzYmFmM2MxY2E3NDRlYTZmNTdmZWU2YwpkaWZmIC0t
Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hYSBiL3N5c3V0aWxzL3BmdG9wL3Bh
dGNoZXMvcGF0Y2gtYWEKaW5kZXggYjQ0OTlhZi4uM2ViYjJiYSAxMDA2NDQKLS0tIGEvc3lzdXRp
bHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hYQorKysgYi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3Bh
dGNoLWFhCkBAIC0xLDIwICsxLDIyIEBACiAkTmV0QlNEOiBwYXRjaC1hYSx2IDEuMiAyMDA4LzA2
LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAKLS0tLSBNYWtlZmlsZS5vbGQJMjAwNy0xMS0wNyAw
NzozNDoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBNYWtlZmlsZQkyMDA4LTA2LTE1IDAwOjQzOjQx
LjAwMDAwMDAwMCArMDIwMAorLS0tIE1ha2VmaWxlLm9yaWcJMjAwNy0xMS0wNyAwNzozNDoxOCAr
MDEwMAorKysrIE1ha2VmaWxlCTIwMDktMTEtMTcgMDA6NTk6MjYgKzAxMDAKIEBAIC02LDE3ICs2
LDIxIEBACiAgCiAgUFJPRz0JcGZ0b3AKICBTUkNTPQlwZnRvcC5jIGNhY2hlLmMgZW5naW5lLmMK
IC1TUkNTKz0Jc2YtZ2VuY29kZS5jIHNmLWdyYW1tZXIueSBzZi1zY2FubmVyLmwgcGNhcC1uYW1l
dG9hZGRyLmMKKy1TUkNTKz0gIGJwZl9vcHRpbWl6ZS5jIGJwZl9maWx0ZXIuYyBicGZfZHVtcC5j
IGJwZl9pbWFnZS5jCiArU1JDUys9CXNmLWdlbmNvZGUuYyBzZi1ncmFtbWVyLmMgc2Ytc2Nhbm5l
ci5sIHBjYXAtbmFtZXRvYWRkci5jCi0gU1JDUys9ICBicGZfb3B0aW1pemUuYyBicGZfZmlsdGVy
LmMgYnBmX2R1bXAuYyBicGZfaW1hZ2UuYworK1NSQ1MrPSAgYnBmX29wdGltaXplLmMKICBNQU49
CXBmdG9wLjgKICAKICtDTEVBTkZJTEVTKz0gc2YtZ3JhbW1lci5jCiArCiAgQ0ZMQUdTKz0gLVdh
bGwgLURPU19MRVZFTD0ke09TTEVWRUx9Ci0gTERBREQrPSAtbGN1cnNlcworLUxEQUREKz0gLWxj
dXJzZXMKKytMREFERCs9IC1sY3Vyc2VzIC1scGNhcAogIAogK05PR0NDRVJST1I9eWVzCiArCmRp
ZmYgLS1naXQgYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFkIGIvc3lzdXRpbHMvcGZ0
b3AvcGF0Y2hlcy9wYXRjaC1hZAppbmRleCAxMDNiYWMwLi4zY2ExZjYyIDEwMDY0NAotLS0gYS9z
eXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFkCisrKyBiL3N5c3V0aWxzL3BmdG9wL3BhdGNo
ZXMvcGF0Y2gtYWQKQEAgLTEsOCArMSwxNiBAQAogJE5ldEJTRDogcGF0Y2gtYWQsdiAxLjEgMjAw
OC8wNi8xNSAxNDowOTowMyBwZXRlciBFeHAgJAogCi0tLS0gZW5naW5lLmMub2xkCTIwMDgtMDYt
MTQgMTc6Mzg6NTUuMDAwMDAwMDAwICswMjAwCi0rKysgZW5naW5lLmMJMjAwOC0wNi0xNSAxMjo0
MTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMiw3ICsyMiwxMCBAQAorLS0tIGVuZ2luZS5jLm9y
aWcJMjAwNy0xMS0wNyAwNzozNTo0NCArMDEwMAorKysrIGVuZ2luZS5jCTIwMDktMTEtMTcgMDA6
MzE6NDYgKzAxMDAKK0BAIC0xOCwxMSArMTgsMTggQEAKKyAKKyAKKyAjaW5jbHVkZSA8c3lzL3R5
cGVzLmg+CisrI2lmZGVmIF9fRHJhZ29uRmx5X18KKysjaW5jbHVkZSAicXVldWUuaCIKKysjZWxz
ZQorICNpbmNsdWRlIDxzeXMvcXVldWUuaD4KKysjZW5kaWYKICAKICAjaW5jbHVkZSA8Y3R5cGUu
aD4KICAjaW5jbHVkZSA8Y3Vyc2VzLmg+CkBAIC0xMyw3ICsyMSw3IEBAICROZXRCU0Q6IHBhdGNo
LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAgI2luY2x1ZGUgPHN0cmluZy5oPgogICNpbmNsdWRlIDx1bmlzdGQuaD4KLUBAIC0z
Myw2ICszNiwxMCBAQAorQEAgLTMzLDYgKzQwLDEwIEBACiAgI2RlZmluZSBNSU4oYSxiKSAoKChh
KTwoYikpPyhhKTooYikpCiAgI2VuZGlmCiAgCkBAIC0yNCw3ICszMiw3IEBAICROZXRCU0Q6IHBh
dGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAvKiBjaXJjdWxh
ciBsaW5rZWQgbGlzdCBvZiB2aWV3cyAqLwogIENJUkNMRVFfSEVBRCh2aWV3X2xpc3QsIHZpZXdf
ZW50KSB2aWV3X2hlYWQgPQogIAkJCQkgIENJUkNMRVFfSEVBRF9JTklUSUFMSVpFUih2aWV3X2hl
YWQpOwotQEAgLTU1LDkgKzYyLDYgQEAKK0BAIC01NSw5ICs2Niw2IEBACiAgCiAgdm9sYXRpbGUg
c2lnX2F0b21pY190IGdvdHNpZ19jbG9zZSA9IDA7CiAgdm9sYXRpbGUgc2lnX2F0b21pY190IGdv
dHNpZ19yZXNpemUgPSAwOwpAQCAtMzQsNyArNDIsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEu
MSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCiAgU0NSRUVOICpzY3JlZW47CiAg
Ci1AQCAtMTA1LDcgKzEwOSw2IEBACitAQCAtMTA1LDcgKzExMyw2IEBACiAgCiAgaW50CiAgdGJw
cmludGYoY2hhciAqZm9ybWF0LCAuLi4pCkBAIC00Miw3ICs1MCw3IEBAICROZXRCU0Q6IHBhdGNo
LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICB7CiAgCWludCBsZW47
CiAgCXZhX2xpc3QgYXJnOwotQEAgLTQ4Miw3ICs0ODUsNiBAQAorQEAgLTQ4Miw3ICs0ODksNiBA
QAogIAl2ID0gdmUtPnZpZXc7CiAgCQogIAlpZiAoKGN1cnJfdmlldyAhPSBOVUxMKSAmJiAoY3Vy
cl9tZ3IgIT0gdi0+bWdyKSkgewpAQCAtNTAsNyArNTgsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2
IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCQlpZiAodi0+bWdyICE9IE5V
TEwgJiYgdi0+bWdyLT5zZWxlY3RfZm4gIT0gTlVMTCkKICAJCQl2LT5tZ3ItPnNlbGVjdF9mbigp
OwogIAl9Ci1AQCAtNDkxLDcgKzQ5Myw2IEBACitAQCAtNDkxLDcgKzQ5Nyw2IEBACiAgCWN1cnJf
dmlldyA9IHY7CiAgCWN1cnJfbWdyID0gdi0+bWdyOwogIAlmaWVsZF9zZXR1cCgpOwpAQCAtNTgs
NyArNjYsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBl
dGVyIEV4cCAkCiAgfQogIAogIHZvaWQKLUBAIC05MDUsMTIgKzkwNiw2IEBACitAQCAtOTA1LDEy
ICs5MTAsNiBAQAogIH0KICAKICB2b2lkCkBAIC03MSw3ICs3OSw3IEBAICROZXRCU0Q6IHBhdGNo
LWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICBzZXR1cF90ZXJtKGlu
dCBkbWF4KQogIHsKICAJbWF4X2Rpc3AgPSBkbWF4OwotQEAgLTk0MSw4ICs5MzYsOSBAQAorQEAg
LTk0MSw4ICs5NDAsOSBAQAogIAkJa2V5cGFkKHN0ZHNjciwgVFJVRSk7CiAgCQlpbnRyZmx1c2go
c3Rkc2NyLCBGQUxTRSk7CiAgCkBAIC04Miw3ICs5MCw3IEBAICROZXRCU0Q6IHBhdGNoLWFkLHYg
MS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJfQogIAogIAlpZiAoZG1heCA9
PSAwKQotQEAgLTk3MCw3ICs5NjYsNiBAQAorQEAgLTk3MCw3ICs5NzAsNiBAQAogIAl9CiAgCWN1
cnJfbWVzc2FnZSA9IE5VTEw7CiAgCWN1cnJfY21kID0gY21kOwpAQCAtOTAsNyArOTgsNyBAQCAk
TmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAg
CXJldHVybiBwcmV2OwogIH0KICAKLUBAIC05ODcsNyArOTgyLDYgQEAKK0BAIC05ODcsNyArOTg2
LDYgQEAKICAKICBpbnQKICBtc2dwcmludGYoY2hhciAqZm9ybWF0LCAuLi4pCkBAIC05OCw3ICsx
MDYsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjAzIHBldGVy
IEV4cCAkCiAgewogIAlzdGF0aWMgY2hhciBidWZbMTAyNF07CiAgCWludCBsZW47Ci1AQCAtMTA4
NSwyOCArMTA3OSwyMSBAQAorQEAgLTEwODUsMjggKzEwODMsMjEgQEAKICAJaWYgKGN1cnJfbWVz
c2FnZSAhPSBOVUxMKSB7CiAgCQlpZiAoY2ggPiAwKSB7CiAgCQkJY3Vycl9tZXNzYWdlID0gTlVM
TDsKQEAgLTEyNyw3ICsxMzUsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZCx2IDEuMSAyMDA4LzA2LzE1
IDE0OjA5OjAzIHBldGVyIEV4cCAkCiAgCQlicmVhazsKICAJY2FzZSAndic6CiAgCQkvKiBGQUxM
VEhST1VHSCAqLwotQEAgLTExMjQsNDkgKzExMTEsNDAgQEAKK0BAIC0xMTI0LDQ5ICsxMTE1LDQw
IEBACiAgCQkvKiBGQUxMVEhST1VHSCAqLwogIAljYXNlIENUUkxfTjoKICAJCWRpc3BzdGFydCsr
OwpAQCAtMTc4LDcgKzE4Niw3IEBAICROZXRCU0Q6IHBhdGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUg
MTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJCXNldF92aWV3X2hvdGtleShjaCk7CiAgfQogIAotQEAg
LTExNzcsNDMgKzExNTUsMTUgQEAKK0BAIC0xMTc3LDQzICsxMTU5LDE1IEBACiAgCXNpZ25hbChT
SUdJTlQsIHNpZ19jbG9zZSk7CiAgCXNpZ25hbChTSUdRVUlULCBzaWdfY2xvc2UpOwogIAlzaWdu
YWwoU0lHV0lOQ0gsIHNpZ19yZXNpemUpOwpAQCAtMjIzLDcgKzIzMSw3IEBAICROZXRCU0Q6IHBh
dGNoLWFkLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDMgcGV0ZXIgRXhwICQKICAJCWlmIChnb3Rz
aWdfY2xvc2UpCiAgCQkJYnJlYWs7CiAgCQlpZiAoZ290c2lnX3Jlc2l6ZSkgewotQEAgLTEyMjEs
MTMgKzExNzEsMzEgQEAKK0BAIC0xMjIxLDEzICsxMTc1LDMxIEBACiAgCQkJCWVuZHdpbigpOwog
IAkJCXNldHVwX3Rlcm0obWF4X2Rpc3ApOwogIAkJCWdvdHNpZ19yZXNpemUgPSAwOwpkaWZmIC0t
Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hZyBiL3N5c3V0aWxzL3BmdG9wL3Bh
dGNoZXMvcGF0Y2gtYWcKaW5kZXggMGI5YTZkNi4uZDc0Mzk4YiAxMDA2NDQKLS0tIGEvc3lzdXRp
bHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1hZworKysgYi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3Bh
dGNoLWFnCkBAIC0xLDggKzEsOCBAQAogJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8x
NSAxNDowOTowNCBwZXRlciBFeHAgJAogCi0tLS0gcGZ0b3AuYy5vbGQJMjAwOC0wNi0xNCAxNzo0
MTowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBwZnRvcC5jCTIwMDgtMDYtMTUgMTI6NDI6MDYuMDAw
MDAwMDAwICswMjAwCi1AQCAtNDAsNyArNDAsMTEgQEAKKy0tLSBwZnRvcC5jLm9yaWcJMjAwNy0x
MS0wNyAwNzozNjo0NiArMDEwMAorKysrIHBmdG9wLmMJMjAwOS0xMS0xNiAyMzozNzowMyArMDEw
MAorQEAgLTQwLDIxICs0MCw0MSBAQAogICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAgI2RlZmlu
ZSBUQ1BTVEFURVMKICAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfZnNtLmg+CkBAIC0xNCw3ICsxNCwy
OSBAQCAkTmV0QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4
cCAkCiAgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogIAogICNpZmRlZiBIQVZFX0FMVFEKLUBAIC01
NSw2ICs1OSw3IEBACisrI2lmZGVmIF9fRHJhZ29uRmx5X18KKysjaW5jbHVkZSA8bmV0L2FsdHEv
YWx0cS5oPgorKyNpbmNsdWRlIDxuZXQvYWx0cS9hbHRxX2NicS5oPgorKyNpbmNsdWRlIDxuZXQv
YWx0cS9hbHRxX3ByaXEuaD4KKysjaW5jbHVkZSA8bmV0L2FsdHEvYWx0cV9oZnNjLmg+CisrI2Vs
c2UKKyAjaW5jbHVkZSA8YWx0cS9hbHRxLmg+CisgI2luY2x1ZGUgPGFsdHEvYWx0cV9jYnEuaD4K
KyAjaW5jbHVkZSA8YWx0cS9hbHRxX3ByaXEuaD4KKyAjaW5jbHVkZSA8YWx0cS9hbHRxX2hmc2Mu
aD4KKyAjZW5kaWYKKyAKKysjaWZkZWYgQUxUUVRfRkFJUlEKKysjaWZkZWYgX19EcmFnb25GbHlf
XworKyNpbmNsdWRlIDxuZXQvYWx0cS9hbHRxX2ZhaXJxLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8
YWx0cS9hbHRxX2ZhaXJxLmg+CisrI2VuZGlmCisrI2VuZGlmCisrI2VuZGlmCisrCisgI2luY2x1
ZGUgPGN0eXBlLmg+CisgI2luY2x1ZGUgPGN1cnNlcy5oPgogICNpbmNsdWRlIDxlcnIuaD4KICAj
aW5jbHVkZSA8ZXJybm8uaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTIyLDcgKzQ0LDE3IEBA
ICROZXRCU0Q6IHBhdGNoLWFnLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQK
ICAjaW5jbHVkZSA8bmV0ZGIuaD4KICAjaW5jbHVkZSA8c2lnbmFsLmg+CiAgI2luY2x1ZGUgPHN0
ZGlvLmg+Ci1AQCAtNzM2LDcgKzc0MSw3IEBACitAQCAtMzcxLDYgKzM5MSw5IEBACisgCWNsYXNz
X3N0YXRzX3QJCWNicV9zdGF0czsKKyAJc3RydWN0IHByaXFfY2xhc3NzdGF0cwlwcmlxX3N0YXRz
OworIAlzdHJ1Y3QgaGZzY19jbGFzc3N0YXRzCWhmc2Nfc3RhdHM7CisrI2lmZGVmIEFMVFFUX0ZB
SVJRCisrCXN0cnVjdCBmYWlycV9jbGFzc3N0YXRzIGZhaXJxX3N0YXRzOworKyNlbmRpZgorIH07
CisgCisgc3RydWN0IHF1ZXVlX3N0YXRzIHsKK0BAIC03MzYsNyArNzU5LDcgQEAKICAJfSBlbHNl
IHsKICAJCW51bV9zdGF0ZXMgPSAwOwogIAkJZm9yIChuID0gMDsgbjxudW1fc3RhdGVzX2FsbDsg
bisrKQpAQCAtMzEsNyArNjMsNyBAQCAkTmV0QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1
IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCQkJICAgIHNpemVvZihwZl9zdGF0ZV90KSwgc2l6ZW9m
KHBmX3N0YXRlX3QpKSA+IDApCiAgCQkJCXN0YXRlX29yZFtudW1fc3RhdGVzKytdID0gbjsKICAJ
fQotQEAgLTgyOCw3ICs4MzMsNyBAQAorQEAgLTgyOCw3ICs4NTEsNyBAQAogIAkJdGJwcmludGYo
IiBQQVVTRUQiKTsKICAKICAJaWYgKHJhd21vZGUpCkBAIC00MCw3ICs3Miw3IEBAICROZXRCU0Q6
IHBhdGNoLWFnLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAJZWxzZQog
IAkJbXZwcmludHcoMCwgMCwgIiVzIiwgdG1wX2J1Zik7CiAgCi1AQCAtODQzLDcgKzg0OCwxMCBA
QAorQEAgLTg0Myw3ICs4NjYsMTAgQEAKICAJCWxlbiA9IGNvbHVtbnMgLSBzdHJsZW4odG1wX2J1
Zik7CiAgCQlpZiAobGVuIDwgMCkKICAJCQlsZW4gPSAwOwpAQCAtNTIsNyArODQsNyBAQCAkTmV0
QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCX0K
ICAKICAJdGJfZW5kKCk7Ci1AQCAtMTI0NCw3ICsxMjUyLDYgQEAKK0BAIC0xMjQ0LDcgKzEyNzAs
NiBAQAogIAkJRkxEX0FOQ0hPUi0+bWF4X3dpZHRoID0gbXg7CiAgCQlGTERfQU5DSE9SLT5ub3Jt
X3dpZHRoID0gbng7CiAgCQlmaWVsZF9zZXR1cCgpOwpAQCAtNjAsNyArOTIsNyBAQCAkTmV0QlNE
OiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCX0KICB9
CiAgI2VuZGlmCi1AQCAtMTI3OSw3ICsxMjg2LDYgQEAKK0BAIC0xMjc5LDcgKzEzMDQsNiBAQAog
IAkJCUZMRF9MQUJFTC0+bm9ybV93aWR0aCA9IG53OwogIAkJCUZMRF9MQUJFTC0+bWF4X3dpZHRo
ID0gbXc7CiAgCQkJZmllbGRfc2V0dXAoKTsKQEAgLTY4LDcgKzEwMCw0NSBAQCAkTmV0QlNEOiBw
YXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgCQl9CiAgCX0K
ICAjZW5kaWYKLUBAIC0yMDQxLDExICsyMDQ3LDkgQEAKK0BAIC0xOTI0LDYgKzE5NDgsMTAgQEAK
KyAJICAgIG5vZGUtPmFsdHEuc2NoZWR1bGVyID09IEFMVFFUX0hGU0MKKyAJCSkKKyAJCXByaW50
X2ZsZF9idyhGTERfQkFORFcsIChkb3VibGUpbm9kZS0+YWx0cS5iYW5kd2lkdGgpOworKyNpZmRl
ZiBBTFRRVF9GQUlSUQorKwlpZiAobm9kZS0+YWx0cS5zY2hlZHVsZXIgPT0gQUxUUVRfRkFJUlEp
CisrCQlwcmludF9mbGRfYncoRkxEX0JBTkRXLCAoZG91YmxlKW5vZGUtPmFsdHEuYmFuZHdpZHRo
KTsKKysjZW5kaWYKKyAJCisgCWlmIChub2RlLT5hbHRxLnByaW9yaXR5ICE9IERFRkFVTFRfUFJJ
T1JJVFkpCisgCQlwcmludF9mbGRfdWludChGTERfUFJJTywKK0BAIC0xOTkyLDYgKzIwMjAsMjYg
QEAKKyAJCQkJCW5vZGUtPnFzdGF0c19sYXN0LmRhdGEuaGZzY19zdGF0cy54bWl0X2NudC5ieXRl
cywgaW50ZXJ2YWwpOworIAkJfQorIAkJYnJlYWs7CisrI2lmZGVmIEFMVFFUX0ZBSVJRCisrCWNh
c2UgQUxUUVRfRkFJUlE6CisrCQlwcmludF9mbGRfc3RyKEZMRF9TQ0hFRCwgImZhaXJxIik7Cisr
CQlwcmludF9mbGRfc2l6ZShGTERfUEtUUywKKysJCQkJbm9kZS0+cXN0YXRzLmRhdGEuZmFpcnFf
c3RhdHMueG1pdF9jbnQucGFja2V0cyk7CisrCQlwcmludF9mbGRfc2l6ZShGTERfQllURVMsCisr
CQkJCW5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLnhtaXRfY250LmJ5dGVzKTsKKysJCXBy
aW50X2ZsZF9zaXplKEZMRF9EUk9QUCwKKysJCQkJbm9kZS0+cXN0YXRzLmRhdGEuZmFpcnFfc3Rh
dHMuZHJvcF9jbnQucGFja2V0cyk7CisrCQlwcmludF9mbGRfc2l6ZShGTERfRFJPUEIsCisrCQkJ
CW5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLmRyb3BfY250LmJ5dGVzKTsKKysJCXByaW50
X2ZsZF9zaXplKEZMRF9RTEVOLCBub2RlLT5xc3RhdHMuZGF0YS5mYWlycV9zdGF0cy5xbGVuZ3Ro
KTsKKysJCWlmIChpbnRlcnZhbCA+IDApIHsKKysJCQlwcHMgPSBjYWxjX3Bwcyhub2RlLT5xc3Rh
dHMuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5wYWNrZXRzLAorKwkJCQkJbm9kZS0+cXN0YXRz
X2xhc3QuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5wYWNrZXRzLCBpbnRlcnZhbCk7CisrCQkJ
YnBzID0gY2FsY19yYXRlKG5vZGUtPnFzdGF0cy5kYXRhLmZhaXJxX3N0YXRzLnhtaXRfY250LmJ5
dGVzLAorKwkJCQkJbm9kZS0+cXN0YXRzX2xhc3QuZGF0YS5mYWlycV9zdGF0cy54bWl0X2NudC5i
eXRlcywgaW50ZXJ2YWwpOworKwkJfQorKwkJYnJlYWs7CisrI2VuZGlmCisgCX0KKyAKKyAJLyog
aWYgKG5vZGUtPmFsdHEuc2NoZWR1bGVyICE9IEFMVFFUX0hGU0MgJiYgaW50ZXJ2YWwgPiAwKSB7
ICovCitAQCAtMjA0MSwxMSArMjA4OSw5IEBACiAgCWlmIChjYWNoZXN0YXRlcykgewogIAkJc2hv
d19maWVsZChGTERfU0kpOwogIAkJc2hvd19maWVsZChGTERfU1ApOwpAQCAtODAsNyArMTUwLDcg
QEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8xNSAxNDowOTowNCBwZXRlciBFeHAg
JAogIAl9CiAgCWZpZWxkX3NldHVwKCk7CiAgfQotQEAgLTIxMDUsOCArMjEwOSwxMCBAQAorQEAg
LTIxMDUsOCArMjE1MSwxMCBAQAogIAlsaW5lKys7CiAgCW12cHJpbnR3KGxpbmUrKywgNiwgInBy
ZXNzIGFueSBrZXkgdG8gY29udGludWUgLi4uIik7CiAgCkBAIC05Myw3ICsxNjMsNyBAQCAkTmV0
QlNEOiBwYXRjaC1hZyx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVyIEV4cCAkCiAgfQog
IAogIAotQEAgLTIxNDIsNyArMjE0OCw2IEBACitAQCAtMjE0Miw3ICsyMTkwLDYgQEAKICAJZGVs
ID0gYXRvaShjbWRidWYpOwogIAlpZiAoZGVsID4gMCkgewogIAkJZGVsYXkgPSBkZWw7CkBAIC0x
MDEsNyArMTcxLDcgQEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAwOC8wNi8xNSAxNDowOTow
NCBwZXRlciBFeHAgJAogIAl9CiAgfQogIAotQEAgLTIxNzUsNyArMjE4MCw2IEBACitAQCAtMjE3
NSw3ICsyMjIyLDYgQEAKICAJCS8qIEZBTExUSFJPVUdIICovCiAgCWNhc2UgJ2gnOgogIAkJc2hv
d19oZWxwKCk7CkBAIC0xMDksNyArMTc5LDcgQEAgJE5ldEJTRDogcGF0Y2gtYWcsdiAxLjEgMjAw
OC8wNi8xNSAxNDowOTowNCBwZXRlciBFeHAgJAogIAkJYnJlYWs7CiAgCWNhc2UgJ24nOgogIAkJ
Y29tbWFuZF9zZXQoJmNtX2NvdW50LCBOVUxMKTsKLUBAIC0yMzQ5LDggKzIzNTMsNiBAQAorQEAg
LTIzNDksOCArMjM5NSw2IEBACiAgCWlmIChyYXdtb2RlICYmIGNvdW50bWF4ID09IDApCiAgCQlj
b3VudG1heCA9IDE7CiAgCmRpZmYgLS1naXQgYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNo
LWFoIGIvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1haAppbmRleCBlZGZhMjQwLi5hODQ1
YjcyIDEwMDY0NAotLS0gYS9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFoCisrKyBiL3N5
c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWgKQEAgLTEsMTMgKzEsMTQgQEAKICROZXRCU0Q6
IHBhdGNoLWFoLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKIAotLS0tIHNm
LWdlbmNvZGUuYy5vbGQJMjAwOC0wNi0xNCAxNzo0NDo1Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBz
Zi1nZW5jb2RlLmMJMjAwOC0wNi0xNSAwMToxOTo0My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zMiw4
ICszMiwxMSBAQAorLS0tIHNmLWdlbmNvZGUuYy5vcmlnCTIwMDctMTEtMDcgMDc6MzQ6MTggKzAx
MDAKKysrKyBzZi1nZW5jb2RlLmMJMjAwOS0xMS0xNyAwMTowMzo0NSArMDEwMAorQEAgLTMyLDgg
KzMyLDEyIEBACiAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAjaW5jbHVkZSA8bmV0aW5ldC9p
Zl9ldGhlci5oPgogIAogLSNpbmNsdWRlIDxuZXQvaWZfcGZsb2cuaD4KICsjaWZkZWYgX19EcmFn
b25GbHlfXworKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICsjaW5jbHVkZSA8bmV0L3BmL3BmdmFy
Lmg+CiArI2Vsc2UKICAjaW5jbHVkZSA8bmV0L3BmdmFyLmg+CkBAIC0xNSw3ICsxNiw3IEBAICRO
ZXRCU0Q6IHBhdGNoLWFoLHYgMS4xIDIwMDgvMDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAK
ICAjaW5jbHVkZSA8bmV0ZGIuaD4KICAjaW5jbHVkZSA8c3RkbGliLmg+Ci1AQCAtNDQsNyArNDcs
NyBAQAorQEAgLTQ0LDcgKzQ4LDcgQEAKICAKICAjZGVmaW5lIElORVQ2CiAgCkBAIC0yNCw3ICsy
NSwxOSBAQCAkTmV0QlNEOiBwYXRjaC1haCx2IDEuMSAyMDA4LzA2LzE1IDE0OjA5OjA0IHBldGVy
IEV4cCAkCiAgI2luY2x1ZGUgPHBjYXAtbmFtZWRiLmg+CiAgI2luY2x1ZGUgInNmLWdlbmNvZGUu
aCIKICAKLUBAIC03MzMsMTMgKzczNiwxNyBAQAorQEAgLTYwLDcgKzY0LDExIEBACisgc3RhdGlj
IGNoYXIgc2ZfZXJyYnVmW1BGVE9QX0VSUkJVRl9TSVpFXTsKKyAKKyAvKiBWQVJBUkdTICovCisr
I2lmZGVmIF9fRHJhZ29uRmx5X18KKyt2b2lkCisrI2Vsc2UKKyBfX2RlYWQgdm9pZAorKyNlbmRp
ZgorIHNmX2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorIHsKKyAJdmFfbGlzdCBhcDsKK0BA
IC03MzMsMTMgKzc0MSwxNyBAQAogIAkJYjEgPSBnZW5fcHJvdG8oSVBQUk9UT19FU1ApOwogIAkJ
YnJlYWs7CiAgCkBAIC00Miw3ICs1NSw3IEBAICROZXRCU0Q6IHBhdGNoLWFoLHYgMS4xIDIwMDgv
MDYvMTUgMTQ6MDk6MDQgcGV0ZXIgRXhwICQKICAKICAJZGVmYXVsdDoKICAJCXNmX2Vycm9yKCJV
bmtub3duIHByb3RvY29sIGFiYnJldmlhdGlvbiIpOwotQEAgLTE1NjAsNyArMTU2Nyw3IEBACitA
QCAtMTU2MCw3ICsxNTcyLDcgQEAKICAJCS8qIE5PVFJFQUNIRUQgKi8KICAJfQogIApkaWZmIC0t
Z2l0IGEvc3lzdXRpbHMvcGZ0b3AvcGF0Y2hlcy9wYXRjaC1haiBiL3N5c3V0aWxzL3BmdG9wL3Bh
dGNoZXMvcGF0Y2gtYWoKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1Njhk
ZgotLS0gL2Rldi9udWxsCisrKyBiL3N5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWoKQEAg
LTAsMCArMSwzNiBAQAorLS0tIHNmLWdlbmNvZGUuaC5vcmlnCTIwMDktMTEtMTYgMjM6NDc6NDIg
KzAxMDAKKysrKyBzZi1nZW5jb2RlLmgJMjAwOS0xMS0xNiAyMzo0Nzo1NCArMDEwMAorQEAgLTE2
OSw4ICsxNjksMTMgQEAKKyBzdHJ1Y3QgYXJ0aCAgKmdlbl9sb2FkZXhwaXJlKHZvaWQpOworIAor
IHZvaWQgYnBmX29wdGltaXplKHN0cnVjdCBibG9jayAqKik7CisrI2lmZGVmIF9fRHJhZ29uRmx5
X18KKyt2b2lkIGJwZl9lcnJvcihjb25zdCBjaGFyICosIC4uLikKKysgICAgX19hdHRyaWJ1dGVf
Xygodm9sYXRpbGUsIF9fZm9ybWF0X18gKHByaW50ZiwgMSwgMikpKTsKKysjZWxzZQorIF9fZGVh
ZCB2b2lkIGJwZl9lcnJvcihjb25zdCBjaGFyICosIC4uLikKKyAgICAgX19hdHRyaWJ1dGVfXygo
dm9sYXRpbGUsIF9fZm9ybWF0X18gKHByaW50ZiwgMSwgMikpKTsKKysjZW5kaWYKKyAKKyB2b2lk
IGZpbmlzaF9wYXJzZShzdHJ1Y3QgYmxvY2sgKik7CisgY2hhciAqc2R1cChjb25zdCBjaGFyICop
OworQEAgLTE4NCwxMSArMTg5LDE5IEBACisgI2RlZmluZSBKVChiKSAgKChiKS0+ZXQuc3VjYykK
KyAjZGVmaW5lIEpGKGIpICAoKGIpLT5lZi5zdWNjKQorIAorKyNpZmRlZiBfX0RyYWdvbkZseV9f
Cisrdm9pZCBzZl9lcnJvcihjb25zdCBjaGFyICpmbXQsIC4uLik7CisrI2Vsc2UKKyBfX2RlYWQg
dm9pZCBzZl9lcnJvcihjb25zdCBjaGFyICpmbXQsIC4uLik7CisrI2VuZGlmCisgY29uc3QgY2hh
ciAqc2ZfZ2V0X2Vycm9yKHZvaWQpOworIGludCBzZl9jb21waWxlKHN0cnVjdCBicGZfcHJvZ3Jh
bSAqLCBjaGFyICosIGludCwgYnBmX3VfaW50MzIpOworIHZvaWQgc2ZfZnJlZWNvZGUoc3RydWN0
IGJwZl9wcm9ncmFtICopOworKyNpZmRlZiBfX0RyYWdvbkZseV9fCisrdm9pZCBicGZfZHVtcChj
b25zdCBzdHJ1Y3QgYnBmX3Byb2dyYW0gKiwgaW50KTsKKysjZWxzZQorIHZvaWQgYnBmX2R1bXAo
c3RydWN0IGJwZl9wcm9ncmFtICosIGludCk7CisrI2VuZGlmCisgCisgZXh0ZXJuIGludCBub19v
cHRpbWl6ZTsKKyAKZGlmZiAtLWdpdCBhL3N5c3V0aWxzL3BmdG9wL3BhdGNoZXMvcGF0Y2gtYWsg
Yi9zeXN1dGlscy9wZnRvcC9wYXRjaGVzL3BhdGNoLWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmExMmM0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9zeXN1dGlscy9wZnRvcC9w
YXRjaGVzL3BhdGNoLWFrCkBAIC0wLDAgKzEsNTMyIEBACitUYWtlbiBmcm9tIEZyZWVCU0QgcG9y
dHMuCisKKy0tLSAvZGV2L251bGwJMjAwOS0xMS0xNyAwMDozMDoxMSArMDEwMAorKysrIHF1ZXVl
LmgJMjAwOS0xMS0xNyAwMDozMTozMiArMDEwMAorQEAgLTAsMCArMSw1MjcgQEAKKysvKgkkT3Bl
bkJTRDogcXVldWUuaCx2IDEuMzIgMjAwNy8wNC8zMCAxODo0MjozNCBwZWRybyBFeHAgJAkqLwor
Ky8qCSROZXRCU0Q6IHF1ZXVlLmgsdiAxLjExIDE5OTYvMDUvMTYgMDU6MTc6MTQgbXljcm9mdCBF
eHAgJAkqLworKworKy8qCisrICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkzCisrICoJVGhlIFJl
Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisrICoKKysgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKysgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKysgKiBhcmUgbWV0OgorKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisrICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5p
dmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKysgKiAgICBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m
dHdhcmUKKysgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KysgKgorKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisrICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisrICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UKKysgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdF
TlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorKyAq
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTCisrICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisrICogSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QK
KysgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZCisrICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorKyAqIFNVQ0ggREFNQUdF
LgorKyAqCisrICoJQCgjKXF1ZXVlLmgJOC41IChCZXJrZWxleSkgOC8yMC85NAorKyAqLworKwor
KyNpZm5kZWYJX1FVRVVFX0hfCisrI2RlZmluZQlfUVVFVUVfSF8KKysKKysvKgorKyAqIFRoaXMg
ZmlsZSBkZWZpbmVzIGZpdmUgdHlwZXMgb2YgZGF0YSBzdHJ1Y3R1cmVzOiBzaW5nbHktbGlua2Vk
IGxpc3RzLCAKKysgKiBsaXN0cywgc2ltcGxlIHF1ZXVlcywgdGFpbCBxdWV1ZXMsIGFuZCBjaXJj
dWxhciBxdWV1ZXMuCisrICoKKysgKgorKyAqIEEgc2luZ2x5LWxpbmtlZCBsaXN0IGlzIGhlYWRl
ZCBieSBhIHNpbmdsZSBmb3J3YXJkIHBvaW50ZXIuIFRoZSBlbGVtZW50cworKyAqIGFyZSBzaW5n
bHkgbGlua2VkIGZvciBtaW5pbXVtIHNwYWNlIGFuZCBwb2ludGVyIG1hbmlwdWxhdGlvbiBvdmVy
aGVhZCBhdAorKyAqIHRoZSBleHBlbnNlIG9mIE8obikgcmVtb3ZhbCBmb3IgYXJiaXRyYXJ5IGVs
ZW1lbnRzLiBOZXcgZWxlbWVudHMgY2FuIGJlCisrICogYWRkZWQgdG8gdGhlIGxpc3QgYWZ0ZXIg
YW4gZXhpc3RpbmcgZWxlbWVudCBvciBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KKysgKiBFbGVt
ZW50cyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGhlYWQgb2YgdGhlIGxpc3Qgc2hvdWxkIHVzZSB0
aGUgZXhwbGljaXQKKysgKiBtYWNybyBmb3IgdGhpcyBwdXJwb3NlIGZvciBvcHRpbXVtIGVmZmlj
aWVuY3kuIEEgc2luZ2x5LWxpbmtlZCBsaXN0IG1heQorKyAqIG9ubHkgYmUgdHJhdmVyc2VkIGlu
IHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4gIFNpbmdseS1saW5rZWQgbGlzdHMgYXJlIGlkZWFsCisr
ICogZm9yIGFwcGxpY2F0aW9ucyB3aXRoIGxhcmdlIGRhdGFzZXRzIGFuZCBmZXcgb3Igbm8gcmVt
b3ZhbHMgb3IgZm9yCisrICogaW1wbGVtZW50aW5nIGEgTElGTyBxdWV1ZS4KKysgKgorKyAqIEEg
bGlzdCBpcyBoZWFkZWQgYnkgYSBzaW5nbGUgZm9yd2FyZCBwb2ludGVyIChvciBhbiBhcnJheSBv
ZiBmb3J3YXJkCisrICogcG9pbnRlcnMgZm9yIGEgaGFzaCB0YWJsZSBoZWFkZXIpLiBUaGUgZWxl
bWVudHMgYXJlIGRvdWJseSBsaW5rZWQKKysgKiBzbyB0aGF0IGFuIGFyYml0cmFyeSBlbGVtZW50
IGNhbiBiZSByZW1vdmVkIHdpdGhvdXQgYSBuZWVkIHRvCisrICogdHJhdmVyc2UgdGhlIGxpc3Qu
IE5ldyBlbGVtZW50cyBjYW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlCisrICogb3IgYWZ0
ZXIgYW4gZXhpc3RpbmcgZWxlbWVudCBvciBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4gQSBsaXN0
CisrICogbWF5IG9ubHkgYmUgdHJhdmVyc2VkIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbi4KKysg
KgorKyAqIEEgc2ltcGxlIHF1ZXVlIGlzIGhlYWRlZCBieSBhIHBhaXIgb2YgcG9pbnRlcnMsIG9u
ZSB0aGUgaGVhZCBvZiB0aGUKKysgKiBsaXN0IGFuZCB0aGUgb3RoZXIgdG8gdGhlIHRhaWwgb2Yg
dGhlIGxpc3QuIFRoZSBlbGVtZW50cyBhcmUgc2luZ2x5CisrICogbGlua2VkIHRvIHNhdmUgc3Bh
Y2UsIHNvIGVsZW1lbnRzIGNhbiBvbmx5IGJlIHJlbW92ZWQgZnJvbSB0aGUKKysgKiBoZWFkIG9m
IHRoZSBsaXN0LiBOZXcgZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGJlZm9yZSBv
ciBhZnRlcgorKyAqIGFuIGV4aXN0aW5nIGVsZW1lbnQsIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0
LCBvciBhdCB0aGUgZW5kIG9mIHRoZQorKyAqIGxpc3QuIEEgc2ltcGxlIHF1ZXVlIG1heSBvbmx5
IGJlIHRyYXZlcnNlZCBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24uCisrICoKKysgKiBBIHRhaWwg
cXVldWUgaXMgaGVhZGVkIGJ5IGEgcGFpciBvZiBwb2ludGVycywgb25lIHRvIHRoZSBoZWFkIG9m
IHRoZQorKyAqIGxpc3QgYW5kIHRoZSBvdGhlciB0byB0aGUgdGFpbCBvZiB0aGUgbGlzdC4gVGhl
IGVsZW1lbnRzIGFyZSBkb3VibHkKKysgKiBsaW5rZWQgc28gdGhhdCBhbiBhcmJpdHJhcnkgZWxl
bWVudCBjYW4gYmUgcmVtb3ZlZCB3aXRob3V0IGEgbmVlZCB0bworKyAqIHRyYXZlcnNlIHRoZSBs
aXN0LiBOZXcgZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGJlZm9yZSBvcgorKyAq
IGFmdGVyIGFuIGV4aXN0aW5nIGVsZW1lbnQsIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0LCBvciBh
dCB0aGUgZW5kIG9mCisrICogdGhlIGxpc3QuIEEgdGFpbCBxdWV1ZSBtYXkgYmUgdHJhdmVyc2Vk
IGluIGVpdGhlciBkaXJlY3Rpb24uCisrICoKKysgKiBBIGNpcmNsZSBxdWV1ZSBpcyBoZWFkZWQg
YnkgYSBwYWlyIG9mIHBvaW50ZXJzLCBvbmUgdG8gdGhlIGhlYWQgb2YgdGhlCisrICogbGlzdCBh
bmQgdGhlIG90aGVyIHRvIHRoZSB0YWlsIG9mIHRoZSBsaXN0LiBUaGUgZWxlbWVudHMgYXJlIGRv
dWJseQorKyAqIGxpbmtlZCBzbyB0aGF0IGFuIGFyYml0cmFyeSBlbGVtZW50IGNhbiBiZSByZW1v
dmVkIHdpdGhvdXQgYSBuZWVkIHRvCisrICogdHJhdmVyc2UgdGhlIGxpc3QuIE5ldyBlbGVtZW50
cyBjYW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlIG9yIGFmdGVyCisrICogYW4gZXhpc3Rp
bmcgZWxlbWVudCwgYXQgdGhlIGhlYWQgb2YgdGhlIGxpc3QsIG9yIGF0IHRoZSBlbmQgb2YgdGhl
IGxpc3QuCisrICogQSBjaXJjbGUgcXVldWUgbWF5IGJlIHRyYXZlcnNlZCBpbiBlaXRoZXIgZGly
ZWN0aW9uLCBidXQgaGFzIGEgbW9yZQorKyAqIGNvbXBsZXggZW5kIG9mIGxpc3QgZGV0ZWN0aW9u
LgorKyAqCisrICogRm9yIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGVzZSBtYWNyb3MsIHNlZSB0
aGUgcXVldWUoMykgbWFudWFsIHBhZ2UuCisrICovCisrCisrI2lmIGRlZmluZWQoUVVFVUVfTUFD
Uk9fREVCVUcpIHx8IChkZWZpbmVkKF9LRVJORUwpICYmIGRlZmluZWQoRElBR05PU1RJQykpCisr
I2RlZmluZSBfUV9JTlZBTElEQVRFKGEpIChhKSA9ICgodm9pZCAqKS0xKQorKyNlbHNlCisrI2Rl
ZmluZSBfUV9JTlZBTElEQVRFKGEpCisrI2VuZGlmCisrCisrLyoKKysgKiBTaW5nbHktbGlua2Vk
IExpc3QgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBTTElTVF9IRUFEKG5hbWUsIHR5cGUp
CQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNsaF9maXJz
dDsJLyogZmlyc3QgZWxlbWVudCAqLwkJCVwKKyt9CisrIAorKyNkZWZpbmUJU0xJU1RfSEVBRF9J
TklUSUFMSVpFUihoZWFkKQkJCQkJXAorKwl7IE5VTEwgfQorKyAKKysjZGVmaW5lIFNMSVNUX0VO
VFJZKHR5cGUpCQkJCQkJXAorK3N0cnVjdCB7CQkJCQkJCQlcCisrCXN0cnVjdCB0eXBlICpzbGVf
bmV4dDsJLyogbmV4dCBlbGVtZW50ICovCQkJXAorK30KKysgCisrLyoKKysgKiBTaW5nbHktbGlu
a2VkIExpc3QgYWNjZXNzIG1ldGhvZHMuCisrICovCisrI2RlZmluZQlTTElTVF9GSVJTVChoZWFk
KQkoKGhlYWQpLT5zbGhfZmlyc3QpCisrI2RlZmluZQlTTElTVF9FTkQoaGVhZCkJCU5VTEwKKysj
ZGVmaW5lCVNMSVNUX0VNUFRZKGhlYWQpCShTTElTVF9GSVJTVChoZWFkKSA9PSBTTElTVF9FTkQo
aGVhZCkpCisrI2RlZmluZQlTTElTVF9ORVhUKGVsbSwgZmllbGQpCSgoZWxtKS0+ZmllbGQuc2xl
X25leHQpCisrCisrI2RlZmluZQlTTElTVF9GT1JFQUNIKHZhciwgaGVhZCwgZmllbGQpCQkJCQlc
CisrCWZvcigodmFyKSA9IFNMSVNUX0ZJUlNUKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgIT0g
U0xJU1RfRU5EKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgPSBTTElTVF9ORVhUKHZhciwgZmll
bGQpKQorKworKyNkZWZpbmUJU0xJU1RfRk9SRUFDSF9QUkVWUFRSKHZhciwgdmFycCwgaGVhZCwg
ZmllbGQpCQkJXAorKwlmb3IgKCh2YXJwKSA9ICZTTElTVF9GSVJTVCgoaGVhZCkpOwkJCQlcCisr
CSAgICAoKHZhcikgPSAqKHZhcnApKSAhPSBTTElTVF9FTkQoaGVhZCk7CQkJXAorKwkgICAgKHZh
cnApID0gJlNMSVNUX05FWFQoKHZhciksIGZpZWxkKSkKKysKKysvKgorKyAqIFNpbmdseS1saW5r
ZWQgTGlzdCBmdW5jdGlvbnMuCisrICovCisrI2RlZmluZQlTTElTVF9JTklUKGhlYWQpIHsJCQkJ
CQlcCisrCVNMSVNUX0ZJUlNUKGhlYWQpID0gU0xJU1RfRU5EKGhlYWQpOwkJCQlcCisrfQorKwor
KyNkZWZpbmUJU0xJU1RfSU5TRVJUX0FGVEVSKHNsaXN0ZWxtLCBlbG0sIGZpZWxkKSBkbyB7CQkJ
XAorKwkoZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoc2xpc3RlbG0pLT5maWVsZC5zbGVfbmV4dDsJ
CVwKKysJKHNsaXN0ZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoZWxtKTsJCQkJXAorK30gd2hpbGUg
KDApCisrCisrI2RlZmluZQlTTElTVF9JTlNFUlRfSEVBRChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7
CQkJXAorKwkoZWxtKS0+ZmllbGQuc2xlX25leHQgPSAoaGVhZCktPnNsaF9maXJzdDsJCQlcCisr
CShoZWFkKS0+c2xoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVm
aW5lCVNMSVNUX1JFTU9WRV9ORVhUKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0p
LT5maWVsZC5zbGVfbmV4dCA9IChlbG0pLT5maWVsZC5zbGVfbmV4dC0+ZmllbGQuc2xlX25leHQ7
CVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUJU0xJU1RfUkVNT1ZFX0hFQUQoaGVhZCwgZmll
bGQpIGRvIHsJCQkJXAorKwkoaGVhZCktPnNsaF9maXJzdCA9IChoZWFkKS0+c2xoX2ZpcnN0LT5m
aWVsZC5zbGVfbmV4dDsJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0xJU1RfUkVNT1ZF
KGhlYWQsIGVsbSwgdHlwZSwgZmllbGQpIGRvIHsJCQlcCisrCWlmICgoaGVhZCktPnNsaF9maXJz
dCA9PSAoZWxtKSkgewkJCQlcCisrCQlTTElTVF9SRU1PVkVfSEVBRCgoaGVhZCksIGZpZWxkKTsJ
CQlcCisrCX0gZWxzZSB7CQkJCQkJCVwKKysJCXN0cnVjdCB0eXBlICpjdXJlbG0gPSAoaGVhZCkt
PnNsaF9maXJzdDsJCVwKKysJCQkJCQkJCQlcCisrCQl3aGlsZSAoY3VyZWxtLT5maWVsZC5zbGVf
bmV4dCAhPSAoZWxtKSkJCQlcCisrCQkJY3VyZWxtID0gY3VyZWxtLT5maWVsZC5zbGVfbmV4dDsJ
CVwKKysJCWN1cmVsbS0+ZmllbGQuc2xlX25leHQgPQkJCQlcCisrCQkgICAgY3VyZWxtLT5maWVs
ZC5zbGVfbmV4dC0+ZmllbGQuc2xlX25leHQ7CQlcCisrCQlfUV9JTlZBTElEQVRFKChlbG0pLT5m
aWVsZC5zbGVfbmV4dCk7CQkJXAorKwl9CQkJCQkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysvKgor
KyAqIExpc3QgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBMSVNUX0hFQUQobmFtZSwgdHlw
ZSkJCQkJCQlcCisrc3RydWN0IG5hbWUgewkJCQkJCQkJXAorKwlzdHJ1Y3QgdHlwZSAqbGhfZmly
c3Q7CS8qIGZpcnN0IGVsZW1lbnQgKi8JCQlcCisrfQorKworKyNkZWZpbmUgTElTVF9IRUFEX0lO
SVRJQUxJWkVSKGhlYWQpCQkJCQlcCisrCXsgTlVMTCB9CisrCisrI2RlZmluZSBMSVNUX0VOVFJZ
KHR5cGUpCQkJCQkJXAorK3N0cnVjdCB7CQkJCQkJCQlcCisrCXN0cnVjdCB0eXBlICpsZV9uZXh0
OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlcCisrCXN0cnVjdCB0eXBlICoqbGVfcHJldjsJLyogYWRk
cmVzcyBvZiBwcmV2aW91cyBuZXh0IGVsZW1lbnQgKi8JXAorK30KKysKKysvKgorKyAqIExpc3Qg
YWNjZXNzIG1ldGhvZHMKKysgKi8KKysjZGVmaW5lCUxJU1RfRklSU1QoaGVhZCkJCSgoaGVhZCkt
PmxoX2ZpcnN0KQorKyNkZWZpbmUJTElTVF9FTkQoaGVhZCkJCQlOVUxMCisrI2RlZmluZQlMSVNU
X0VNUFRZKGhlYWQpCQkoTElTVF9GSVJTVChoZWFkKSA9PSBMSVNUX0VORChoZWFkKSkKKysjZGVm
aW5lCUxJU1RfTkVYVChlbG0sIGZpZWxkKQkJKChlbG0pLT5maWVsZC5sZV9uZXh0KQorKworKyNk
ZWZpbmUgTElTVF9GT1JFQUNIKHZhciwgaGVhZCwgZmllbGQpCQkJCQlcCisrCWZvcigodmFyKSA9
IExJU1RfRklSU1QoaGVhZCk7CQkJCQlcCisrCSAgICAodmFyKSE9IExJU1RfRU5EKGhlYWQpOwkJ
CQkJXAorKwkgICAgKHZhcikgPSBMSVNUX05FWFQodmFyLCBmaWVsZCkpCisrCisrLyoKKysgKiBM
aXN0IGZ1bmN0aW9ucy4KKysgKi8KKysjZGVmaW5lCUxJU1RfSU5JVChoZWFkKSBkbyB7CQkJCQkJ
XAorKwlMSVNUX0ZJUlNUKGhlYWQpID0gTElTVF9FTkQoaGVhZCk7CQkJCVwKKyt9IHdoaWxlICgw
KQorKworKyNkZWZpbmUgTElTVF9JTlNFUlRfQUZURVIobGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8g
ewkJCVwKKysJaWYgKCgoZWxtKS0+ZmllbGQubGVfbmV4dCA9IChsaXN0ZWxtKS0+ZmllbGQubGVf
bmV4dCkgIT0gTlVMTCkJXAorKwkJKGxpc3RlbG0pLT5maWVsZC5sZV9uZXh0LT5maWVsZC5sZV9w
cmV2ID0JCVwKKysJCSAgICAmKGVsbSktPmZpZWxkLmxlX25leHQ7CQkJCVwKKysJKGxpc3RlbG0p
LT5maWVsZC5sZV9uZXh0ID0gKGVsbSk7CQkJCVwKKysJKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAm
KGxpc3RlbG0pLT5maWVsZC5sZV9uZXh0OwkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZQlM
SVNUX0lOU0VSVF9CRUZPUkUobGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8gewkJCVwKKysJKGVsbSkt
PmZpZWxkLmxlX3ByZXYgPSAobGlzdGVsbSktPmZpZWxkLmxlX3ByZXY7CQlcCisrCShlbG0pLT5m
aWVsZC5sZV9uZXh0ID0gKGxpc3RlbG0pOwkJCQlcCisrCSoobGlzdGVsbSktPmZpZWxkLmxlX3By
ZXYgPSAoZWxtKTsJCQkJXAorKwkobGlzdGVsbSktPmZpZWxkLmxlX3ByZXYgPSAmKGVsbSktPmZp
ZWxkLmxlX25leHQ7CQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIExJU1RfSU5TRVJUX0hF
QUQoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJCQlcCisrCWlmICgoKGVsbSktPmZpZWxkLmxlX25l
eHQgPSAoaGVhZCktPmxoX2ZpcnN0KSAhPSBOVUxMKQkJXAorKwkJKGhlYWQpLT5saF9maXJzdC0+
ZmllbGQubGVfcHJldiA9ICYoZWxtKS0+ZmllbGQubGVfbmV4dDtcCisrCShoZWFkKS0+bGhfZmly
c3QgPSAoZWxtKTsJCQkJCVwKKysJKGVsbSktPmZpZWxkLmxlX3ByZXYgPSAmKGhlYWQpLT5saF9m
aXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIExJU1RfUkVNT1ZFKGVsbSwgZmll
bGQpIGRvIHsJCQkJCVwKKysJaWYgKChlbG0pLT5maWVsZC5sZV9uZXh0ICE9IE5VTEwpCQkJCVwK
KysJCShlbG0pLT5maWVsZC5sZV9uZXh0LT5maWVsZC5sZV9wcmV2ID0JCQlcCisrCQkgICAgKGVs
bSktPmZpZWxkLmxlX3ByZXY7CQkJCVwKKysJKihlbG0pLT5maWVsZC5sZV9wcmV2ID0gKGVsbSkt
PmZpZWxkLmxlX25leHQ7CQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC5sZV9wcmV2
KTsJCQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC5sZV9uZXh0KTsJCQkJXAorK30g
d2hpbGUgKDApCisrCisrI2RlZmluZSBMSVNUX1JFUExBQ0UoZWxtLCBlbG0yLCBmaWVsZCkgZG8g
ewkJCQlcCisrCWlmICgoKGVsbTIpLT5maWVsZC5sZV9uZXh0ID0gKGVsbSktPmZpZWxkLmxlX25l
eHQpICE9IE5VTEwpCVwKKysJCShlbG0yKS0+ZmllbGQubGVfbmV4dC0+ZmllbGQubGVfcHJldiA9
CQkJXAorKwkJICAgICYoZWxtMiktPmZpZWxkLmxlX25leHQ7CQkJCVwKKysJKGVsbTIpLT5maWVs
ZC5sZV9wcmV2ID0gKGVsbSktPmZpZWxkLmxlX3ByZXY7CQkJXAorKwkqKGVsbTIpLT5maWVsZC5s
ZV9wcmV2ID0gKGVsbTIpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmxlX3By
ZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmxlX25leHQpOwkJCQlcCisr
fSB3aGlsZSAoMCkKKysKKysvKgorKyAqIFNpbXBsZSBxdWV1ZSBkZWZpbml0aW9ucy4KKysgKi8K
KysjZGVmaW5lIFNJTVBMRVFfSEVBRChuYW1lLCB0eXBlKQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJ
CQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNxaF9maXJzdDsJLyogZmlyc3QgZWxlbWVudCAqLwkJ
CVwKKysJc3RydWN0IHR5cGUgKipzcWhfbGFzdDsJLyogYWRkciBvZiBsYXN0IG5leHQgZWxlbWVu
dCAqLwkJXAorK30KKysKKysjZGVmaW5lIFNJTVBMRVFfSEVBRF9JTklUSUFMSVpFUihoZWFkKQkJ
CQkJXAorKwl7IE5VTEwsICYoaGVhZCkuc3FoX2ZpcnN0IH0KKysKKysjZGVmaW5lIFNJTVBMRVFf
RU5UUlkodHlwZSkJCQkJCQlcCisrc3RydWN0IHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnNx
ZV9uZXh0OwkvKiBuZXh0IGVsZW1lbnQgKi8JCQlcCisrfQorKworKy8qCisrICogU2ltcGxlIHF1
ZXVlIGFjY2VzcyBtZXRob2RzLgorKyAqLworKyNkZWZpbmUJU0lNUExFUV9GSVJTVChoZWFkKQkg
ICAgKChoZWFkKS0+c3FoX2ZpcnN0KQorKyNkZWZpbmUJU0lNUExFUV9FTkQoaGVhZCkJICAgIE5V
TEwKKysjZGVmaW5lCVNJTVBMRVFfRU1QVFkoaGVhZCkJICAgIChTSU1QTEVRX0ZJUlNUKGhlYWQp
ID09IFNJTVBMRVFfRU5EKGhlYWQpKQorKyNkZWZpbmUJU0lNUExFUV9ORVhUKGVsbSwgZmllbGQp
ICAgICgoZWxtKS0+ZmllbGQuc3FlX25leHQpCisrCisrI2RlZmluZSBTSU1QTEVRX0ZPUkVBQ0go
dmFyLCBoZWFkLCBmaWVsZCkJCQkJXAorKwlmb3IoKHZhcikgPSBTSU1QTEVRX0ZJUlNUKGhlYWQp
OwkJCQlcCisrCSAgICAodmFyKSAhPSBTSU1QTEVRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2
YXIpID0gU0lNUExFUV9ORVhUKHZhciwgZmllbGQpKQorKworKy8qCisrICogU2ltcGxlIHF1ZXVl
IGZ1bmN0aW9ucy4KKysgKi8KKysjZGVmaW5lCVNJTVBMRVFfSU5JVChoZWFkKSBkbyB7CQkJCQkJ
XAorKwkoaGVhZCktPnNxaF9maXJzdCA9IE5VTEw7CQkJCQlcCisrCShoZWFkKS0+c3FoX2xhc3Qg
PSAmKGhlYWQpLT5zcWhfZmlyc3Q7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lN
UExFUV9JTlNFUlRfSEVBRChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXAorKwlpZiAoKChlbG0p
LT5maWVsZC5zcWVfbmV4dCA9IChoZWFkKS0+c3FoX2ZpcnN0KSA9PSBOVUxMKQlcCisrCQkoaGVh
ZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsJCVwKKysJKGhlYWQpLT5zcWhf
Zmlyc3QgPSAoZWxtKTsJCQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lNUExFUV9J
TlNFUlRfVEFJTChoZWFkLCBlbG0sIGZpZWxkKSBkbyB7CQkJXAorKwkoZWxtKS0+ZmllbGQuc3Fl
X25leHQgPSBOVUxMOwkJCQkJXAorKwkqKGhlYWQpLT5zcWhfbGFzdCA9IChlbG0pOwkJCQkJXAor
KwkoaGVhZCktPnNxaF9sYXN0ID0gJihlbG0pLT5maWVsZC5zcWVfbmV4dDsJCQlcCisrfSB3aGls
ZSAoMCkKKysKKysjZGVmaW5lIFNJTVBMRVFfSU5TRVJUX0FGVEVSKGhlYWQsIGxpc3RlbG0sIGVs
bSwgZmllbGQpIGRvIHsJCVwKKysJaWYgKCgoZWxtKS0+ZmllbGQuc3FlX25leHQgPSAobGlzdGVs
bSktPmZpZWxkLnNxZV9uZXh0KSA9PSBOVUxMKVwKKysJCShoZWFkKS0+c3FoX2xhc3QgPSAmKGVs
bSktPmZpZWxkLnNxZV9uZXh0OwkJXAorKwkobGlzdGVsbSktPmZpZWxkLnNxZV9uZXh0ID0gKGVs
bSk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgU0lNUExFUV9SRU1PVkVfSEVBRCho
ZWFkLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoaGVhZCktPnNxaF9maXJzdCA9IChoZWFkKS0+
c3FoX2ZpcnN0LT5maWVsZC5zcWVfbmV4dCkgPT0gTlVMTCkgXAorKwkJKGhlYWQpLT5zcWhfbGFz
dCA9ICYoaGVhZCktPnNxaF9maXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysvKgorKyAqIFRh
aWwgcXVldWUgZGVmaW5pdGlvbnMuCisrICovCisrI2RlZmluZSBUQUlMUV9IRUFEKG5hbWUsIHR5
cGUpCQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5cGUgKnRxaF9m
aXJzdDsJLyogZmlyc3QgZWxlbWVudCAqLwkJCVwKKysJc3RydWN0IHR5cGUgKip0cWhfbGFzdDsJ
LyogYWRkciBvZiBsYXN0IG5leHQgZWxlbWVudCAqLwkJXAorK30KKysKKysjZGVmaW5lIFRBSUxR
X0hFQURfSU5JVElBTElaRVIoaGVhZCkJCQkJCVwKKysJeyBOVUxMLCAmKGhlYWQpLnRxaF9maXJz
dCB9CisrCisrI2RlZmluZSBUQUlMUV9FTlRSWSh0eXBlKQkJCQkJCVwKKytzdHJ1Y3QgewkJCQkJ
CQkJXAorKwlzdHJ1Y3QgdHlwZSAqdHFlX25leHQ7CS8qIG5leHQgZWxlbWVudCAqLwkJCVwKKysJ
c3RydWN0IHR5cGUgKip0cWVfcHJldjsJLyogYWRkcmVzcyBvZiBwcmV2aW91cyBuZXh0IGVsZW1l
bnQgKi8JXAorK30KKysKKysvKiAKKysgKiB0YWlsIHF1ZXVlIGFjY2VzcyBtZXRob2RzIAorKyAq
LworKyNkZWZpbmUJVEFJTFFfRklSU1QoaGVhZCkJCSgoaGVhZCktPnRxaF9maXJzdCkKKysjZGVm
aW5lCVRBSUxRX0VORChoZWFkKQkJCU5VTEwKKysjZGVmaW5lCVRBSUxRX05FWFQoZWxtLCBmaWVs
ZCkJCSgoZWxtKS0+ZmllbGQudHFlX25leHQpCisrI2RlZmluZSBUQUlMUV9MQVNUKGhlYWQsIGhl
YWRuYW1lKQkJCQkJXAorKwkoKigoKHN0cnVjdCBoZWFkbmFtZSAqKSgoaGVhZCktPnRxaF9sYXN0
KSktPnRxaF9sYXN0KSkKKysvKiBYWFggKi8KKysjZGVmaW5lIFRBSUxRX1BSRVYoZWxtLCBoZWFk
bmFtZSwgZmllbGQpCQkJCVwKKysJKCooKChzdHJ1Y3QgaGVhZG5hbWUgKikoKGVsbSktPmZpZWxk
LnRxZV9wcmV2KSktPnRxaF9sYXN0KSkKKysjZGVmaW5lCVRBSUxRX0VNUFRZKGhlYWQpCQkJCQkJ
XAorKwkoVEFJTFFfRklSU1QoaGVhZCkgPT0gVEFJTFFfRU5EKGhlYWQpKQorKworKyNkZWZpbmUg
VEFJTFFfRk9SRUFDSCh2YXIsIGhlYWQsIGZpZWxkKQkJCQkJXAorKwlmb3IoKHZhcikgPSBUQUlM
UV9GSVJTVChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpICE9IFRBSUxRX0VORChoZWFkKTsJCQkJ
CVwKKysJICAgICh2YXIpID0gVEFJTFFfTkVYVCh2YXIsIGZpZWxkKSkKKysKKysjZGVmaW5lIFRB
SUxRX0ZPUkVBQ0hfUkVWRVJTRSh2YXIsIGhlYWQsIGhlYWRuYW1lLCBmaWVsZCkJCVwKKysJZm9y
KCh2YXIpID0gVEFJTFFfTEFTVChoZWFkLCBoZWFkbmFtZSk7CQkJCVwKKysJICAgICh2YXIpICE9
IFRBSUxRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpID0gVEFJTFFfUFJFVih2YXIsIGhl
YWRuYW1lLCBmaWVsZCkpCisrCisrLyoKKysgKiBUYWlsIHF1ZXVlIGZ1bmN0aW9ucy4KKysgKi8K
KysjZGVmaW5lCVRBSUxRX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwKKysJKGhlYWQpLT50cWhfZmly
c3QgPSBOVUxMOwkJCQkJXAorKwkoaGVhZCktPnRxaF9sYXN0ID0gJihoZWFkKS0+dHFoX2ZpcnN0
OwkJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX0lOU0VSVF9IRUFEKGhlYWQs
IGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGhl
YWQpLT50cWhfZmlyc3QpICE9IE5VTEwpCVwKKysJCShoZWFkKS0+dHFoX2ZpcnN0LT5maWVsZC50
cWVfcHJldiA9CQkJXAorKwkJICAgICYoZWxtKS0+ZmllbGQudHFlX25leHQ7CQkJCVwKKysJZWxz
ZQkJCQkJCQkJXAorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtKS0+ZmllbGQudHFlX25leHQ7
CQlcCisrCShoZWFkKS0+dHFoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrCShlbG0pLT5maWVsZC50
cWVfcHJldiA9ICYoaGVhZCktPnRxaF9maXJzdDsJCQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVm
aW5lIFRBSUxRX0lOU0VSVF9UQUlMKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0p
LT5maWVsZC50cWVfbmV4dCA9IE5VTEw7CQkJCQlcCisrCShlbG0pLT5maWVsZC50cWVfcHJldiA9
IChoZWFkKS0+dHFoX2xhc3Q7CQkJXAorKwkqKGhlYWQpLT50cWhfbGFzdCA9IChlbG0pOwkJCQkJ
XAorKwkoaGVhZCktPnRxaF9sYXN0ID0gJihlbG0pLT5maWVsZC50cWVfbmV4dDsJCQlcCisrfSB3
aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX0lOU0VSVF9BRlRFUihoZWFkLCBsaXN0ZWxtLCBl
bG0sIGZpZWxkKSBkbyB7CQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0ID0gKGxpc3Rl
bG0pLT5maWVsZC50cWVfbmV4dCkgIT0gTlVMTClcCisrCQkoZWxtKS0+ZmllbGQudHFlX25leHQt
PmZpZWxkLnRxZV9wcmV2ID0JCQlcCisrCQkgICAgJihlbG0pLT5maWVsZC50cWVfbmV4dDsJCQkJ
XAorKwllbHNlCQkJCQkJCQlcCisrCQkoaGVhZCktPnRxaF9sYXN0ID0gJihlbG0pLT5maWVsZC50
cWVfbmV4dDsJCVwKKysJKGxpc3RlbG0pLT5maWVsZC50cWVfbmV4dCA9IChlbG0pOwkJCQlcCisr
CShlbG0pLT5maWVsZC50cWVfcHJldiA9ICYobGlzdGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJXAor
K30gd2hpbGUgKDApCisrCisrI2RlZmluZQlUQUlMUV9JTlNFUlRfQkVGT1JFKGxpc3RlbG0sIGVs
bSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0pLT5maWVsZC50cWVfcHJldiA9IChsaXN0ZWxtKS0+
ZmllbGQudHFlX3ByZXY7CQlcCisrCShlbG0pLT5maWVsZC50cWVfbmV4dCA9IChsaXN0ZWxtKTsJ
CQkJXAorKwkqKGxpc3RlbG0pLT5maWVsZC50cWVfcHJldiA9IChlbG0pOwkJCQlcCisrCShsaXN0
ZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAmKGVsbSktPmZpZWxkLnRxZV9uZXh0OwkJXAorK30gd2hp
bGUgKDApCisrCisrI2RlZmluZSBUQUlMUV9SRU1PVkUoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJ
CQlcCisrCWlmICgoKGVsbSktPmZpZWxkLnRxZV9uZXh0KSAhPSBOVUxMKQkJCQlcCisrCQkoZWxt
KS0+ZmllbGQudHFlX25leHQtPmZpZWxkLnRxZV9wcmV2ID0JCQlcCisrCQkgICAgKGVsbSktPmZp
ZWxkLnRxZV9wcmV2OwkJCQlcCisrCWVsc2UJCQkJCQkJCVwKKysJCShoZWFkKS0+dHFoX2xhc3Qg
PSAoZWxtKS0+ZmllbGQudHFlX3ByZXY7CQlcCisrCSooZWxtKS0+ZmllbGQudHFlX3ByZXYgPSAo
ZWxtKS0+ZmllbGQudHFlX25leHQ7CQkJXAorKwlfUV9JTlZBTElEQVRFKChlbG0pLT5maWVsZC50
cWVfcHJldik7CQkJCVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+ZmllbGQudHFlX25leHQpOwkJ
CQlcCisrfSB3aGlsZSAoMCkKKysKKysjZGVmaW5lIFRBSUxRX1JFUExBQ0UoaGVhZCwgZWxtLCBl
bG0yLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoZWxtMiktPmZpZWxkLnRxZV9uZXh0ID0gKGVs
bSktPmZpZWxkLnRxZV9uZXh0KSAhPSBOVUxMKQlcCisrCQkoZWxtMiktPmZpZWxkLnRxZV9uZXh0
LT5maWVsZC50cWVfcHJldiA9CQlcCisrCQkgICAgJihlbG0yKS0+ZmllbGQudHFlX25leHQ7CQkJ
CVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT50cWhfbGFzdCA9ICYoZWxtMiktPmZpZWxk
LnRxZV9uZXh0OwkJXAorKwkoZWxtMiktPmZpZWxkLnRxZV9wcmV2ID0gKGVsbSktPmZpZWxkLnRx
ZV9wcmV2OwkJCVwKKysJKihlbG0yKS0+ZmllbGQudHFlX3ByZXYgPSAoZWxtMik7CQkJCVwKKysJ
X1FfSU5WQUxJREFURSgoZWxtKS0+ZmllbGQudHFlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURB
VEUoKGVsbSktPmZpZWxkLnRxZV9uZXh0KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrLyoKKysg
KiBDaXJjdWxhciBxdWV1ZSBkZWZpbml0aW9ucy4KKysgKi8KKysjZGVmaW5lIENJUkNMRVFfSEVB
RChuYW1lLCB0eXBlKQkJCQkJXAorK3N0cnVjdCBuYW1lIHsJCQkJCQkJCVwKKysJc3RydWN0IHR5
cGUgKmNxaF9maXJzdDsJCS8qIGZpcnN0IGVsZW1lbnQgKi8JCVwKKysJc3RydWN0IHR5cGUgKmNx
aF9sYXN0OwkJLyogbGFzdCBlbGVtZW50ICovCQlcCisrfQorKworKyNkZWZpbmUgQ0lSQ0xFUV9I
RUFEX0lOSVRJQUxJWkVSKGhlYWQpCQkJCQlcCisrCXsgQ0lSQ0xFUV9FTkQoJmhlYWQpLCBDSVJD
TEVRX0VORCgmaGVhZCkgfQorKworKyNkZWZpbmUgQ0lSQ0xFUV9FTlRSWSh0eXBlKQkJCQkJCVwK
KytzdHJ1Y3QgewkJCQkJCQkJXAorKwlzdHJ1Y3QgdHlwZSAqY3FlX25leHQ7CQkvKiBuZXh0IGVs
ZW1lbnQgKi8JCVwKKysJc3RydWN0IHR5cGUgKmNxZV9wcmV2OwkJLyogcHJldmlvdXMgZWxlbWVu
dCAqLwkJXAorK30KKysKKysvKgorKyAqIENpcmN1bGFyIHF1ZXVlIGFjY2VzcyBtZXRob2RzIAor
KyAqLworKyNkZWZpbmUJQ0lSQ0xFUV9GSVJTVChoZWFkKQkJKChoZWFkKS0+Y3FoX2ZpcnN0KQor
KyNkZWZpbmUJQ0lSQ0xFUV9MQVNUKGhlYWQpCQkoKGhlYWQpLT5jcWhfbGFzdCkKKysjZGVmaW5l
CUNJUkNMRVFfRU5EKGhlYWQpCQkoKHZvaWQgKikoaGVhZCkpCisrI2RlZmluZQlDSVJDTEVRX05F
WFQoZWxtLCBmaWVsZCkJKChlbG0pLT5maWVsZC5jcWVfbmV4dCkKKysjZGVmaW5lCUNJUkNMRVFf
UFJFVihlbG0sIGZpZWxkKQkoKGVsbSktPmZpZWxkLmNxZV9wcmV2KQorKyNkZWZpbmUJQ0lSQ0xF
UV9FTVBUWShoZWFkKQkJCQkJCVwKKysJKENJUkNMRVFfRklSU1QoaGVhZCkgPT0gQ0lSQ0xFUV9F
TkQoaGVhZCkpCisrCisrI2RlZmluZSBDSVJDTEVRX0ZPUkVBQ0godmFyLCBoZWFkLCBmaWVsZCkJ
CQkJXAorKwlmb3IoKHZhcikgPSBDSVJDTEVRX0ZJUlNUKGhlYWQpOwkJCQlcCisrCSAgICAodmFy
KSAhPSBDSVJDTEVRX0VORChoZWFkKTsJCQkJCVwKKysJICAgICh2YXIpID0gQ0lSQ0xFUV9ORVhU
KHZhciwgZmllbGQpKQorKworKyNkZWZpbmUgQ0lSQ0xFUV9GT1JFQUNIX1JFVkVSU0UodmFyLCBo
ZWFkLCBmaWVsZCkJCQlcCisrCWZvcigodmFyKSA9IENJUkNMRVFfTEFTVChoZWFkKTsJCQkJCVwK
KysJICAgICh2YXIpICE9IENJUkNMRVFfRU5EKGhlYWQpOwkJCQkJXAorKwkgICAgKHZhcikgPSBD
SVJDTEVRX1BSRVYodmFyLCBmaWVsZCkpCisrCisrLyoKKysgKiBDaXJjdWxhciBxdWV1ZSBmdW5j
dGlvbnMuCisrICovCisrI2RlZmluZQlDSVJDTEVRX0lOSVQoaGVhZCkgZG8gewkJCQkJCVwKKysJ
KGhlYWQpLT5jcWhfZmlyc3QgPSBDSVJDTEVRX0VORChoZWFkKTsJCQkJXAorKwkoaGVhZCktPmNx
aF9sYXN0ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZp
bmUgQ0lSQ0xFUV9JTlNFUlRfQUZURVIoaGVhZCwgbGlzdGVsbSwgZWxtLCBmaWVsZCkgZG8gewkJ
XAorKwkoZWxtKS0+ZmllbGQuY3FlX25leHQgPSAobGlzdGVsbSktPmZpZWxkLmNxZV9uZXh0OwkJ
XAorKwkoZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAobGlzdGVsbSk7CQkJCVwKKysJaWYgKChsaXN0
ZWxtKS0+ZmllbGQuY3FlX25leHQgPT0gQ0lSQ0xFUV9FTkQoaGVhZCkpCQlcCisrCQkoaGVhZCkt
PmNxaF9sYXN0ID0gKGVsbSk7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGxpc3RlbG0pLT5m
aWVsZC5jcWVfbmV4dC0+ZmllbGQuY3FlX3ByZXYgPSAoZWxtKTsJXAorKwkobGlzdGVsbSktPmZp
ZWxkLmNxZV9uZXh0ID0gKGVsbSk7CQkJCVwKKyt9IHdoaWxlICgwKQorKworKyNkZWZpbmUgQ0lS
Q0xFUV9JTlNFUlRfQkVGT1JFKGhlYWQsIGxpc3RlbG0sIGVsbSwgZmllbGQpIGRvIHsJCVwKKysJ
KGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gKGxpc3RlbG0pOwkJCQlcCisrCShlbG0pLT5maWVsZC5j
cWVfcHJldiA9IChsaXN0ZWxtKS0+ZmllbGQuY3FlX3ByZXY7CQlcCisrCWlmICgobGlzdGVsbSkt
PmZpZWxkLmNxZV9wcmV2ID09IENJUkNMRVFfRU5EKGhlYWQpKQkJXAorKwkJKGhlYWQpLT5jcWhf
Zmlyc3QgPSAoZWxtKTsJCQkJXAorKwllbHNlCQkJCQkJCQlcCisrCQkobGlzdGVsbSktPmZpZWxk
LmNxZV9wcmV2LT5maWVsZC5jcWVfbmV4dCA9IChlbG0pOwlcCisrCShsaXN0ZWxtKS0+ZmllbGQu
Y3FlX3ByZXYgPSAoZWxtKTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZSBDSVJDTEVR
X0lOU0VSVF9IRUFEKGhlYWQsIGVsbSwgZmllbGQpIGRvIHsJCQlcCisrCShlbG0pLT5maWVsZC5j
cWVfbmV4dCA9IChoZWFkKS0+Y3FoX2ZpcnN0OwkJCVwKKysJKGVsbSktPmZpZWxkLmNxZV9wcmV2
ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJXAorKwlpZiAoKGhlYWQpLT5jcWhfbGFzdCA9PSBDSVJD
TEVRX0VORChoZWFkKSkJCQlcCisrCQkoaGVhZCktPmNxaF9sYXN0ID0gKGVsbSk7CQkJCVwKKysJ
ZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT5jcWhfZmlyc3QtPmZpZWxkLmNxZV9wcmV2ID0gKGVs
bSk7CQlcCisrCShoZWFkKS0+Y3FoX2ZpcnN0ID0gKGVsbSk7CQkJCQlcCisrfSB3aGlsZSAoMCkK
KysKKysjZGVmaW5lIENJUkNMRVFfSU5TRVJUX1RBSUwoaGVhZCwgZWxtLCBmaWVsZCkgZG8gewkJ
CVwKKysJKGVsbSktPmZpZWxkLmNxZV9uZXh0ID0gQ0lSQ0xFUV9FTkQoaGVhZCk7CQkJXAorKwko
ZWxtKS0+ZmllbGQuY3FlX3ByZXYgPSAoaGVhZCktPmNxaF9sYXN0OwkJCVwKKysJaWYgKChoZWFk
KS0+Y3FoX2ZpcnN0ID09IENJUkNMRVFfRU5EKGhlYWQpKQkJCVwKKysJCShoZWFkKS0+Y3FoX2Zp
cnN0ID0gKGVsbSk7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGhlYWQpLT5jcWhfbGFzdC0+
ZmllbGQuY3FlX25leHQgPSAoZWxtKTsJCVwKKysJKGhlYWQpLT5jcWhfbGFzdCA9IChlbG0pOwkJ
CQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZQlDSVJDTEVRX1JFTU9WRShoZWFkLCBlbG0s
IGZpZWxkKSBkbyB7CQkJCVwKKysJaWYgKChlbG0pLT5maWVsZC5jcWVfbmV4dCA9PSBDSVJDTEVR
X0VORChoZWFkKSkJCQlcCisrCQkoaGVhZCktPmNxaF9sYXN0ID0gKGVsbSktPmZpZWxkLmNxZV9w
cmV2OwkJXAorKwllbHNlCQkJCQkJCQlcCisrCQkoZWxtKS0+ZmllbGQuY3FlX25leHQtPmZpZWxk
LmNxZV9wcmV2ID0JCQlcCisrCQkgICAgKGVsbSktPmZpZWxkLmNxZV9wcmV2OwkJCQlcCisrCWlm
ICgoZWxtKS0+ZmllbGQuY3FlX3ByZXYgPT0gQ0lSQ0xFUV9FTkQoaGVhZCkpCQkJXAorKwkJKGhl
YWQpLT5jcWhfZmlyc3QgPSAoZWxtKS0+ZmllbGQuY3FlX25leHQ7CQlcCisrCWVsc2UJCQkJCQkJ
CVwKKysJCShlbG0pLT5maWVsZC5jcWVfcHJldi0+ZmllbGQuY3FlX25leHQgPQkJCVwKKysJCSAg
ICAoZWxtKS0+ZmllbGQuY3FlX25leHQ7CQkJCVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+Zmll
bGQuY3FlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmNxZV9uZXh0
KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2RlZmluZSBDSVJDTEVRX1JFUExBQ0UoaGVhZCwg
ZWxtLCBlbG0yLCBmaWVsZCkgZG8gewkJCVwKKysJaWYgKCgoZWxtMiktPmZpZWxkLmNxZV9uZXh0
ID0gKGVsbSktPmZpZWxkLmNxZV9uZXh0KSA9PQkJXAorKwkgICAgQ0lSQ0xFUV9FTkQoaGVhZCkp
CQkJCQkJXAorKwkJKGhlYWQpLmNxaF9sYXN0ID0gKGVsbTIpOwkJCQlcCisrCWVsc2UJCQkJCQkJ
CVwKKysJCShlbG0yKS0+ZmllbGQuY3FlX25leHQtPmZpZWxkLmNxZV9wcmV2ID0gKGVsbTIpOwlc
CisrCWlmICgoKGVsbTIpLT5maWVsZC5jcWVfcHJldiA9IChlbG0pLT5maWVsZC5jcWVfcHJldikg
PT0JCVwKKysJICAgIENJUkNMRVFfRU5EKGhlYWQpKQkJCQkJCVwKKysJCShoZWFkKS5jcWhfZmly
c3QgPSAoZWxtMik7CQkJCVwKKysJZWxzZQkJCQkJCQkJXAorKwkJKGVsbTIpLT5maWVsZC5jcWVf
cHJldi0+ZmllbGQuY3FlX25leHQgPSAoZWxtMik7CVwKKysJX1FfSU5WQUxJREFURSgoZWxtKS0+
ZmllbGQuY3FlX3ByZXYpOwkJCQlcCisrCV9RX0lOVkFMSURBVEUoKGVsbSktPmZpZWxkLmNxZV9u
ZXh0KTsJCQkJXAorK30gd2hpbGUgKDApCisrCisrI2VuZGlmCS8qICFfU1lTX1FVRVVFX0hfICov
Ci0tIAoxLjYuNAoK
--nextPart1639093.Q3v5CpiS2o--
Home |
Main Index |
Thread Index |
Old Index