From: davidm@hpl.hp.com
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
Date: Tue, 24 Jul 2001 00:03:41 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590693005891@msgid-missing> (raw)
>Category: optimization
>Synopsis: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
>Confidential: no
>Severity: serious
>Priority: high
>Class: ice-on-legal-code
>Submitter-Id: net
>Originator: davidm@hpl.hp.com
>Release: gcc-3.0
>Environment:
- IA-64 Linux
- gcc -v:
Reading specs from /opt/gcc3/lib/gcc-lib/ia64-hp-linux/3.0/specs
Configured with: ../gcc-3.0/configure --host=ia64-hp-linux --enable-threads=posix --prefix=/opt/gcc3
Thread model: posix
gcc version 3.0
>Description:
gcc3.0 crashes with an internal compiler error on the attached file if -O2 is turned on. With -O, the file compiles fine.
>How-To-Repeat:
$ gcc -O2 -c super.i
gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>Fix:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="super.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="super.i"
IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1ZFUlNJT05fXyAiMy4wIgojIDEgImZzL3Vk
Zi9zdXBlci5jIgojZGVmaW5lIF9fVVNFUl9MQUJFTF9QUkVGSVhfXwojIDEgImZzL3VkZi9zdXBl
ci5jIgojZGVmaW5lIF9fUkVHSVNURVJfUFJFRklYX18KIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX0hBVkVfQlVJTFRJTl9TRVRKTVBfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZp
bmUgX19TSVpFX1RZUEVfXyBsb25nIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgoj
ZGVmaW5lIF9fUFRSRElGRl9UWVBFX18gbG9uZyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX1dDSEFSX1RZUEVfXyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1dJ
TlRfVFlQRV9fIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1RE
Q19fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX0dOVUNfXyAzCiMgMSAiZnMvdWRm
L3N1cGVyLmMiCiNkZWZpbmUgX19HTlVDX01JTk9SX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgoj
ZGVmaW5lIF9fR05VQ19QQVRDSExFVkVMX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5l
IF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18gMQojIDEgImZz
L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVm
aW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xPTkdMT05HIDEK
IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBsaW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi
CiNkZWZpbmUgdW5peCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MUDY0X18gMQoj
IDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fRUxGX18gMQojIDEgImZzL3VkZi9zdXBlci5j
IgojZGVmaW5lIF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18g
MQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBl
ci5jIgojZGVmaW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xP
TkdMT05HIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX2xpbnV4X18gMQojIDEgImZz
L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fdW5peF9fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX0xQNjRfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19FTEZfXyAxCiMg
MSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19saW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi
CiNkZWZpbmUgX191bml4IDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX09QVElNSVpF
X18gMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1REQ19IT1NURURfXyAxCiMgMSAi
ZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MT05HX01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdM
CiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19LRVJORUxfXyAxCiMgMSAiZnMvdWRmL3N1
cGVyLmMiCiNkZWZpbmUgTU9EVUxFIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBNT0RW
RVJTSU9OUyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAxCgojZGVmaW5lIF9MSU5VWF9NT0RWRVJTSU9O
U19ICiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2RzZXR2ZXIuaCIg
MQoKCiNkZWZpbmUgX19TWU1CT0xfVkVSU0lPTih4KSBfX3Zlcl8gIyMgeAojZGVmaW5lIF9fVkVS
U0lPTkVEX1NZTUJPTDIoeCwgdikgeCAjIyBfUiAjIyB2CiNkZWZpbmUgX19WRVJTSU9ORURfU1lN
Qk9MMSh4LCB2KSBfX1ZFUlNJT05FRF9TWU1CT0wyKHgsdikKI2RlZmluZSBfX1ZFUlNJT05FRF9T
WU1CT0woeCkgX19WRVJTSU9ORURfU1lNQk9MMSh4LF9fU1lNQk9MX1ZFUlNJT04oeCkpCgoKI2Rl
ZmluZSBfc2V0X3Zlcih4KSBfX1ZFUlNJT05FRF9TWU1CT0woeCkKIyA0ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvODM5MC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9l
aV9vcGVuIHNtcF9jNjMxYjU1ZAojZGVmaW5lIGVpX29wZW4gX3NldF92ZXIoZWlfb3BlbikKI2Rl
ZmluZSBfX3Zlcl9laV9jbG9zZSBzbXBfM2M0Y2VhMTYKI2RlZmluZSBlaV9jbG9zZSBfc2V0X3Zl
cihlaV9jbG9zZSkKI2RlZmluZSBfX3Zlcl9laV9pbnRlcnJ1cHQgc21wXzMyNjUxOTcxCiNkZWZp
bmUgZWlfaW50ZXJydXB0IF9zZXRfdmVyKGVpX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9laV90
eF90aW1lb3V0IHNtcF85N2ZmMGE5OAojZGVmaW5lIGVpX3R4X3RpbWVvdXQgX3NldF92ZXIoZWlf
dHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ldGhkZXZfaW5pdCBzbXBfMjViOWQ0YTYKI2RlZmlu
ZSBldGhkZXZfaW5pdCBfc2V0X3ZlcihldGhkZXZfaW5pdCkKI2RlZmluZSBfX3Zlcl9OUzgzOTBf
aW5pdCBzbXBfNjMxYzZiZTMKI2RlZmluZSBOUzgzOTBfaW5pdCBfc2V0X3ZlcihOUzgzOTBfaW5p
dCkKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWM5N19j
b2RlYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X3JlYWRfcHJvYyBzbXBfYmFlNGRhNzIKI2Rl
ZmluZSBhYzk3X3JlYWRfcHJvYyBfc2V0X3ZlcihhYzk3X3JlYWRfcHJvYykKI2RlZmluZSBfX3Zl
cl9hYzk3X3Byb2JlX2NvZGVjIHNtcF84MjIzZmU1NgojZGVmaW5lIGFjOTdfcHJvYmVfY29kZWMg
X3NldF92ZXIoYWM5N19wcm9iZV9jb2RlYykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvYWM5Ny52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X2luaXQgc21w
XzI2Y2Y3YzMyCiNkZWZpbmUgYWM5N19pbml0IF9zZXRfdmVyKGFjOTdfaW5pdCkKI2RlZmluZSBf
X3Zlcl9hYzk3X3NldF92YWx1ZXMgc21wXzhmODA1OGYxCiNkZWZpbmUgYWM5N19zZXRfdmFsdWVz
IF9zZXRfdmVyKGFjOTdfc2V0X3ZhbHVlcykKI2RlZmluZSBfX3Zlcl9hYzk3X3NldF9taXhlciBz
bXBfYjA4NzZhZDgKI2RlZmluZSBhYzk3X3NldF9taXhlciBfc2V0X3ZlcihhYzk3X3NldF9taXhl
cikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9yZWdpc3RlciBzbXBfNDc1ZWRlOWMKI2RlZmluZSBh
Yzk3X2dldF9yZWdpc3RlciBfc2V0X3ZlcihhYzk3X2dldF9yZWdpc3RlcikKI2RlZmluZSBfX3Zl
cl9hYzk3X3B1dF9yZWdpc3RlciBzbXBfYzViN2MwMjcKI2RlZmluZSBhYzk3X3B1dF9yZWdpc3Rl
ciBfc2V0X3ZlcihhYzk3X3B1dF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9taXhl
cl9zY2FsZWQgc21wXzIwYmE0MmZiCiNkZWZpbmUgYWM5N19nZXRfbWl4ZXJfc2NhbGVkIF9zZXRf
dmVyKGFjOTdfZ2V0X21peGVyX3NjYWxlZCkKI2RlZmluZSBfX3Zlcl9hYzk3X21peGVyX2lvY3Rs
IHNtcF80ODFmOTJlOAojZGVmaW5lIGFjOTdfbWl4ZXJfaW9jdGwgX3NldF92ZXIoYWM5N19taXhl
cl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9hYzk3X3Jlc2V0IHNtcF84NThlMzVkYQojZGVmaW5lIGFj
OTdfcmVzZXQgX3NldF92ZXIoYWM5N19yZXNldCkKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvYWNpLnZlciIgMQojZGVmaW5lIF9fdmVyX2FjaV9wb3J0IHNt
cF8wZDgyYWRiNgojZGVmaW5lIGFjaV9wb3J0IF9zZXRfdmVyKGFjaV9wb3J0KQojZGVmaW5lIF9f
dmVyX2FjaV9pZGNvZGUgc21wXzJmNGRjZGNlCiNkZWZpbmUgYWNpX2lkY29kZSBfc2V0X3Zlcihh
Y2lfaWRjb2RlKQojZGVmaW5lIF9fdmVyX2FjaV92ZXJzaW9uIHNtcF85MzM1MGM4NwojZGVmaW5l
IGFjaV92ZXJzaW9uIF9zZXRfdmVyKGFjaV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2FjaV9yd19j
bWQgc21wX2NjN2M0Y2Q4CiNkZWZpbmUgYWNpX3J3X2NtZCBfc2V0X3ZlcihhY2lfcndfY21kKQoj
IDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hY3BpX2tzeW1z
LnZlciIgMQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZnJlZSBzbXBfNDNiOWJiYjQKI2RlZmluZSBh
Y3BpX29zX2ZyZWUgX3NldF92ZXIoYWNwaV9vc19mcmVlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nf
YnJlYWtwb2ludCBzbXBfNDQ4NDJkOWQKI2RlZmluZSBhY3BpX29zX2JyZWFrcG9pbnQgX3NldF92
ZXIoYWNwaV9vc19icmVha3BvaW50KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfcHJpbnRmIHNtcF82
ZjU2MTVhZgojZGVmaW5lIGFjcGlfb3NfcHJpbnRmIF9zZXRfdmVyKGFjcGlfb3NfcHJpbnRmKQoj
ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY2FsbG9jYXRlIHNtcF8wYjNhMWUyMQojZGVmaW5lIGFjcGlf
b3NfY2FsbG9jYXRlIF9zZXRfdmVyKGFjcGlfb3NfY2FsbG9jYXRlKQojZGVmaW5lIF9fdmVyX2Fj
cGlfb3Nfc2xlZXAgc21wXzA4MDgwM2M4CiNkZWZpbmUgYWNwaV9vc19zbGVlcCBfc2V0X3Zlcihh
Y3BpX29zX3NsZWVwKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfc2xlZXBfdXNlYyBzbXBfZTQwODU2
NjQKI2RlZmluZSBhY3BpX29zX3NsZWVwX3VzZWMgX3NldF92ZXIoYWNwaV9vc19zbGVlcF91c2Vj
KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW44IHNtcF8wYWJjYzU0ZQojZGVmaW5lIGFjcGlfb3Nf
aW44IF9zZXRfdmVyKGFjcGlfb3NfaW44KQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfb3V0OCBzbXBf
ZDc4MWIyNDIKI2RlZmluZSBhY3BpX29zX291dDggX3NldF92ZXIoYWNwaV9vc19vdXQ4KQojZGVm
aW5lIF9fdmVyX2FjcGlfb3NfcXVldWVfZm9yX2V4ZWN1dGlvbiBzbXBfOGQ1ZmY3MTYKI2RlZmlu
ZSBhY3BpX29zX3F1ZXVlX2Zvcl9leGVjdXRpb24gX3NldF92ZXIoYWNwaV9vc19xdWV1ZV9mb3Jf
ZXhlY3V0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZGJnX2xheWVyIHNtcF9hNDBmZjAxYgojZGVm
aW5lIGFjcGlfZGJnX2xheWVyIF9zZXRfdmVyKGFjcGlfZGJnX2xheWVyKQojZGVmaW5lIF9fdmVy
X2FjcGlfZGJnX2xldmVsIHNtcF9kZGFkNzk1MgojZGVmaW5lIGFjcGlfZGJnX2xldmVsIF9zZXRf
dmVyKGFjcGlfZGJnX2xldmVsKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX2V4aXQgc21wXzQxNThk
MDNjCiNkZWZpbmUgZnVuY3Rpb25fZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl9leGl0KQojZGVmaW5l
IF9fdmVyX2Z1bmN0aW9uX3RyYWNlIHNtcF8xMzE2ZDhhNwojZGVmaW5lIGZ1bmN0aW9uX3RyYWNl
IF9zZXRfdmVyKGZ1bmN0aW9uX3RyYWNlKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3N0YXR1c19l
eGl0IHNtcF84YmVjYjVlZQojZGVmaW5lIGZ1bmN0aW9uX3N0YXR1c19leGl0IF9zZXRfdmVyKGZ1
bmN0aW9uX3N0YXR1c19leGl0KQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3ZhbHVlX2V4aXQgc21w
XzVmNWQ2OWU1CiNkZWZpbmUgZnVuY3Rpb25fdmFsdWVfZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl92
YWx1ZV9leGl0KQojZGVmaW5lIF9fdmVyX2RlYnVnX3ByaW50X3JhdyBzbXBfNDQ3MzMyYjIKI2Rl
ZmluZSBkZWJ1Z19wcmludF9yYXcgX3NldF92ZXIoZGVidWdfcHJpbnRfcmF3KQojZGVmaW5lIF9f
dmVyX2RlYnVnX3ByaW50X3ByZWZpeCBzbXBfNzlmNjQ4MjIKI2RlZmluZSBkZWJ1Z19wcmludF9w
cmVmaXggX3NldF92ZXIoZGVidWdfcHJpbnRfcHJlZml4KQojZGVmaW5lIF9fdmVyX2FjcGlfdXRf
Zm9ybWF0X2V4Y2VwdGlvbiBzbXBfODAwNzlmZjUKI2RlZmluZSBhY3BpX3V0X2Zvcm1hdF9leGNl
cHRpb24gX3NldF92ZXIoYWNwaV91dF9mb3JtYXRfZXhjZXB0aW9uKQojZGVmaW5lIF9fdmVyX2Fj
cGlfZ2V0X2hhbmRsZSBzbXBfNjc2ZjM5Y2MKI2RlZmluZSBhY3BpX2dldF9oYW5kbGUgX3NldF92
ZXIoYWNwaV9nZXRfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3BhcmVudCBzbXBfNWMz
MDg2ODAKI2RlZmluZSBhY3BpX2dldF9wYXJlbnQgX3NldF92ZXIoYWNwaV9nZXRfcGFyZW50KQoj
ZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3R5cGUgc21wX2JmY2NmMzM0CiNkZWZpbmUgYWNwaV9nZXRf
dHlwZSBfc2V0X3ZlcihhY3BpX2dldF90eXBlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X25hbWUg
c21wX2Q5MTNkY2M4CiNkZWZpbmUgYWNwaV9nZXRfbmFtZSBfc2V0X3ZlcihhY3BpX2dldF9uYW1l
KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X29iamVjdF9pbmZvIHNtcF9jZGEwYjg3ZQojZGVmaW5l
IGFjcGlfZ2V0X29iamVjdF9pbmZvIF9zZXRfdmVyKGFjcGlfZ2V0X29iamVjdF9pbmZvKQojZGVm
aW5lIF9fdmVyX2FjcGlfZ2V0X25leHRfb2JqZWN0IHNtcF8xZGMzYjBmNgojZGVmaW5lIGFjcGlf
Z2V0X25leHRfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZ2V0X25leHRfb2JqZWN0KQojZGVmaW5lIF9f
dmVyX2FjcGlfZXZhbHVhdGVfb2JqZWN0IHNtcF8zZjMwMGYwNAojZGVmaW5lIGFjcGlfZXZhbHVh
dGVfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZXZhbHVhdGVfb2JqZWN0KQojZGVmaW5lIF9fdmVyX2Fj
cGlfZ2V0X3RhYmxlIHNtcF8wYjU5NTEyMwojZGVmaW5lIGFjcGlfZ2V0X3RhYmxlIF9zZXRfdmVy
KGFjcGlfZ2V0X3RhYmxlKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9ub3RpZnlfaGFuZGxl
ciBzbXBfY2RhZWMwNWYKI2RlZmluZSBhY3BpX2luc3RhbGxfbm90aWZ5X2hhbmRsZXIgX3NldF92
ZXIoYWNwaV9pbnN0YWxsX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl
X25vdGlmeV9oYW5kbGVyIHNtcF9lMWE3Y2U4YwojZGVmaW5lIGFjcGlfcmVtb3ZlX25vdGlmeV9o
YW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVy
X2FjcGlfaW5zdGFsbF9ncGVfaGFuZGxlciBzbXBfMDU3ZjkyNGYKI2RlZmluZSBhY3BpX2luc3Rh
bGxfZ3BlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9pbnN0YWxsX2dwZV9oYW5kbGVyKQojZGVmaW5l
IF9fdmVyX2FjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyIHNtcF81YTc1MGEwNAojZGVmaW5lIGFjcGlf
cmVtb3ZlX2dwZV9oYW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyKQojZGVm
aW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9hZGRyZXNzX3NwYWNlX2hhbmRsZXIgc21wX2ZjMzdlNjRl
CiNkZWZpbmUgYWNwaV9pbnN0YWxsX2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBfc2V0X3ZlcihhY3Bp
X2luc3RhbGxfYWRkcmVzc19zcGFjZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl
X2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBzbXBfN2Y0OTVlM2YKI2RlZmluZSBhY3BpX3JlbW92ZV9h
ZGRyZXNzX3NwYWNlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9yZW1vdmVfYWRkcmVzc19zcGFjZV9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIHNt
cF81ODVjMzlhMAojZGVmaW5lIGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIF9zZXRf
dmVyKGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlf
cmVtb3ZlX2ZpeGVkX2V2ZW50X2hhbmRsZXIgc21wXzUzZTg4OTA0CiNkZWZpbmUgYWNwaV9yZW1v
dmVfZml4ZWRfZXZlbnRfaGFuZGxlciBfc2V0X3ZlcihhY3BpX3JlbW92ZV9maXhlZF9ldmVudF9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfYWNxdWlyZV9nbG9iYWxfbG9jayBzbXBfZWQxOTA2
NGIKI2RlZmluZSBhY3BpX2FjcXVpcmVfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9hY3F1aXJl
X2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVsZWFzZV9nbG9iYWxfbG9jayBzbXBf
NWYyMjRlNWYKI2RlZmluZSBhY3BpX3JlbGVhc2VfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9y
ZWxlYXNlX2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X2N1cnJlbnRfcmVzb3Vy
Y2VzIHNtcF8wYWIxYTBjZgojZGVmaW5lIGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRf
dmVyKGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3Bv
c3NpYmxlX3Jlc291cmNlcyBzbXBfNDA0OWUwNTAKI2RlZmluZSBhY3BpX2dldF9wb3NzaWJsZV9y
ZXNvdXJjZXMgX3NldF92ZXIoYWNwaV9nZXRfcG9zc2libGVfcmVzb3VyY2VzKQojZGVmaW5lIF9f
dmVyX2FjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2VzIHNtcF81MmUyOWQxOQojZGVmaW5lIGFjcGlf
c2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRfdmVyKGFjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2Vz
KQojZGVmaW5lIF9fdmVyX2FjcGlfZW5hYmxlX2V2ZW50IHNtcF9jMzY3MWQ1ZAojZGVmaW5lIGFj
cGlfZW5hYmxlX2V2ZW50IF9zZXRfdmVyKGFjcGlfZW5hYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVy
X2FjcGlfZGlzYWJsZV9ldmVudCBzbXBfMTkyODg4ODQKI2RlZmluZSBhY3BpX2Rpc2FibGVfZXZl
bnQgX3NldF92ZXIoYWNwaV9kaXNhYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfY2xlYXJf
ZXZlbnQgc21wXzViNmNjNTk5CiNkZWZpbmUgYWNwaV9jbGVhcl9ldmVudCBfc2V0X3ZlcihhY3Bp
X2NsZWFyX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIHNtcF84
OWNjMjliYQojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIF9zZXRfdmVyKGFjcGlfZ2V0
X3RpbWVyX2R1cmF0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyIHNtcF81NzFmNjcw
OAojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyIF9zZXRfdmVyKGFjcGlfZ2V0X3RpbWVyKQojZGVmaW5l
IF9fdmVyX2FjcGlfb3Nfc2lnbmFsX3NlbWFwaG9yZSBzbXBfNjgxMTMwMjYKI2RlZmluZSBhY3Bp
X29zX3NpZ25hbF9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19zaWduYWxfc2VtYXBob3JlKQoj
ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY3JlYXRlX3NlbWFwaG9yZSBzbXBfMzM2ZmE2NzEKI2RlZmlu
ZSBhY3BpX29zX2NyZWF0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19jcmVhdGVfc2VtYXBo
b3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZGVsZXRlX3NlbWFwaG9yZSBzbXBfYjBjOWY5OTAK
I2RlZmluZSBhY3BpX29zX2RlbGV0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19kZWxldGVf
c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfd2FpdF9zZW1hcGhvcmUgc21wXzcwODdk
NTY4CiNkZWZpbmUgYWNwaV9vc193YWl0X3NlbWFwaG9yZSBfc2V0X3ZlcihhY3BpX29zX3dhaXRf
c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW4zMiBzbXBfNWVhOGYxZDgKI2RlZmlu
ZSBhY3BpX29zX2luMzIgX3NldF92ZXIoYWNwaV9vc19pbjMyKQojZGVmaW5lIF9fdmVyX2FjcGlf
b3Nfb3V0MzIgc21wX2I2MzExZjMzCiNkZWZpbmUgYWNwaV9vc19vdXQzMiBfc2V0X3ZlcihhY3Bp
X29zX291dDMyKQojZGVmaW5lIF9fdmVyX2FjcGlfZmFkdCBzbXBfNDEyYzFlMzMKI2RlZmluZSBh
Y3BpX2ZhZHQgX3NldF92ZXIoYWNwaV9mYWR0KQojZGVmaW5lIF9fdmVyX2FjcGlfaHdfcmVnaXN0
ZXJfYml0X2FjY2VzcyBzbXBfNDAxMzAyMGIKI2RlZmluZSBhY3BpX2h3X3JlZ2lzdGVyX2JpdF9h
Y2Nlc3MgX3NldF92ZXIoYWNwaV9od19yZWdpc3Rlcl9iaXRfYWNjZXNzKQojZGVmaW5lIF9fdmVy
X2FjcGlfaHdfb2J0YWluX3NsZWVwX3R5cGVfcmVnaXN0ZXJfZGF0YSBzbXBfYTM2NjA5NTcKI2Rl
ZmluZSBhY3BpX2h3X29idGFpbl9zbGVlcF90eXBlX3JlZ2lzdGVyX2RhdGEgX3NldF92ZXIoYWNw
aV9od19vYnRhaW5fc2xlZXBfdHlwZV9yZWdpc3Rlcl9kYXRhKQojZGVmaW5lIF9fdmVyX2FjcGlf
ZW50ZXJfc2xlZXBfc3RhdGUgc21wX2EzZTliNThkCiNkZWZpbmUgYWNwaV9lbnRlcl9zbGVlcF9z
dGF0ZSBfc2V0X3ZlcihhY3BpX2VudGVyX3NsZWVwX3N0YXRlKQojZGVmaW5lIF9fdmVyX2FjcGlf
Z2V0X3N5c3RlbV9pbmZvIHNtcF9hZWFhNWMyNwojZGVmaW5lIGFjcGlfZ2V0X3N5c3RlbV9pbmZv
IF9zZXRfdmVyKGFjcGlfZ2V0X3N5c3RlbV9pbmZvKQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZDE4NDgudmVyIiAxCiNkZWZpbmUgX192ZXJfYWQxODQ4
X2RldGVjdCBzbXBfM2UwMzU2YWIKI2RlZmluZSBhZDE4NDhfZGV0ZWN0IF9zZXRfdmVyKGFkMTg0
OF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2luaXQgc21wXzcxYTllMTg4CiNkZWZpbmUg
YWQxODQ4X2luaXQgX3NldF92ZXIoYWQxODQ4X2luaXQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X3Vu
bG9hZCBzbXBfOWJmMWNjNjIKI2RlZmluZSBhZDE4NDhfdW5sb2FkIF9zZXRfdmVyKGFkMTg0OF91
bmxvYWQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2NvbnRyb2wgc21wX2MwNGY2ZjY3CiNkZWZpbmUg
YWQxODQ4X2NvbnRyb2wgX3NldF92ZXIoYWQxODQ4X2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfYWRp
bnRyIHNtcF9jY2YzMTY0MAojZGVmaW5lIGFkaW50ciBfc2V0X3ZlcihhZGludHIpCiNkZWZpbmUg
X192ZXJfcHJvYmVfbXNfc291bmQgc21wXzM3NzczYmIwCiNkZWZpbmUgcHJvYmVfbXNfc291bmQg
X3NldF92ZXIocHJvYmVfbXNfc291bmQpCiNkZWZpbmUgX192ZXJfYXR0YWNoX21zX3NvdW5kIHNt
cF9mMmIxNDJlNwojZGVmaW5lIGF0dGFjaF9tc19zb3VuZCBfc2V0X3ZlcihhdHRhY2hfbXNfc291
bmQpCiNkZWZpbmUgX192ZXJfdW5sb2FkX21zX3NvdW5kIHNtcF9iMjlhOTE0OAojZGVmaW5lIHVu
bG9hZF9tc19zb3VuZCBfc2V0X3Zlcih1bmxvYWRfbXNfc291bmQpCiMgMTAgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZGIudmVyIiAxCiNkZWZpbmUgX192ZXJf
YWRiX2NvbnRyb2xsZXIgc21wX2IyMWJkNmVmCiNkZWZpbmUgYWRiX2NvbnRyb2xsZXIgX3NldF92
ZXIoYWRiX2NvbnRyb2xsZXIpCiNkZWZpbmUgX192ZXJfYWRiX2NsaWVudF9saXN0IHNtcF83ZmJi
M2ZmOAojZGVmaW5lIGFkYl9jbGllbnRfbGlzdCBfc2V0X3ZlcihhZGJfY2xpZW50X2xpc3QpCiMg
MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZl9heDI1LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2F4MjVfZW5jYXBzdWxhdGUgc21wXzcxYTA1Y2I0CiNkZWZpbmUg
YXgyNV9lbmNhcHN1bGF0ZSBfc2V0X3ZlcihheDI1X2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVy
X2F4MjVfcmVidWlsZF9oZWFkZXIgc21wXzA5YzRlM2U2CiNkZWZpbmUgYXgyNV9yZWJ1aWxkX2hl
YWRlciBfc2V0X3ZlcihheDI1X3JlYnVpbGRfaGVhZGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfZmlu
ZGJ5dWlkIHNtcF9iNGMyN2U4NgojZGVmaW5lIGF4MjVfZmluZGJ5dWlkIF9zZXRfdmVyKGF4MjVf
ZmluZGJ5dWlkKQojZGVmaW5lIF9fdmVyX2F4MjVfZmluZF9jYiBzbXBfYzhlN2U1ODUKI2RlZmlu
ZSBheDI1X2ZpbmRfY2IgX3NldF92ZXIoYXgyNV9maW5kX2NiKQojZGVmaW5lIF9fdmVyX2F4MjVf
bGlua2ZhaWxfcmVnaXN0ZXIgc21wXzRhMGQ3YzA1CiNkZWZpbmUgYXgyNV9saW5rZmFpbF9yZWdp
c3RlciBfc2V0X3ZlcihheDI1X2xpbmtmYWlsX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVf
bGlua2ZhaWxfcmVsZWFzZSBzbXBfZDA5MzYyYjUKI2RlZmluZSBheDI1X2xpbmtmYWlsX3JlbGVh
c2UgX3NldF92ZXIoYXgyNV9saW5rZmFpbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlz
dGVuX3JlZ2lzdGVyIHNtcF9mZmU5Njc4ZQojZGVmaW5lIGF4MjVfbGlzdGVuX3JlZ2lzdGVyIF9z
ZXRfdmVyKGF4MjVfbGlzdGVuX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlzdGVuX3Jl
bGVhc2Ugc21wXzRkMTIyZTU4CiNkZWZpbmUgYXgyNV9saXN0ZW5fcmVsZWFzZSBfc2V0X3Zlcihh
eDI1X2xpc3Rlbl9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVnaXN0ZXIg
c21wX2QxMWM2YTQ3CiNkZWZpbmUgYXgyNV9wcm90b2NvbF9yZWdpc3RlciBfc2V0X3ZlcihheDI1
X3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVsZWFzZSBz
bXBfOGVkZTllMjYKI2RlZmluZSBheDI1X3Byb3RvY29sX3JlbGVhc2UgX3NldF92ZXIoYXgyNV9w
cm90b2NvbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfc2VuZF9mcmFtZSBzbXBfOTI0OWQx
Y2IKI2RlZmluZSBheDI1X3NlbmRfZnJhbWUgX3NldF92ZXIoYXgyNV9zZW5kX2ZyYW1lKQojZGVm
aW5lIF9fdmVyX2F4MjVfdWlkX3BvbGljeSBzbXBfMjQyODUyYjkKI2RlZmluZSBheDI1X3VpZF9w
b2xpY3kgX3NldF92ZXIoYXgyNV91aWRfcG9saWN5KQojZGVmaW5lIF9fdmVyX2F4MjVjbXAgc21w
XzViNWZlZjQxCiNkZWZpbmUgYXgyNWNtcCBfc2V0X3ZlcihheDI1Y21wKQojZGVmaW5lIF9fdmVy
X2F4MmFzYyBzbXBfOTcxMjM2MDgKI2RlZmluZSBheDJhc2MgX3NldF92ZXIoYXgyYXNjKQojZGVm
aW5lIF9fdmVyX2FzYzJheCBzbXBfNzllNzliMTYKI2RlZmluZSBhc2MyYXggX3NldF92ZXIoYXNj
MmF4KQojZGVmaW5lIF9fdmVyX251bGxfYXgyNV9hZGRyZXNzIHNtcF80MzYyMWUxOAojZGVmaW5l
IG51bGxfYXgyNV9hZGRyZXNzIF9zZXRfdmVyKG51bGxfYXgyNV9hZGRyZXNzKQojZGVmaW5lIF9f
dmVyX2F4MjVfZGlzcGxheV90aW1lciBzbXBfZTE5NjVlMzEKI2RlZmluZSBheDI1X2Rpc3BsYXlf
dGltZXIgX3NldF92ZXIoYXgyNV9kaXNwbGF5X3RpbWVyKQojIDEyICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWZfaXB4LnZlciIgMQojZGVmaW5lIF9fdmVyX2lw
eHJ0cl9yb3V0ZV9za2Igc21wXzNmODY4MDUxCiNkZWZpbmUgaXB4cnRyX3JvdXRlX3NrYiBfc2V0
X3ZlcihpcHhydHJfcm91dGVfc2tiKQojZGVmaW5lIF9fdmVyX2lweF9pZl9vZmZzZXQgc21wXzA4
ZGU0ZjJjCiNkZWZpbmUgaXB4X2lmX29mZnNldCBfc2V0X3ZlcihpcHhfaWZfb2Zmc2V0KQojZGVm
aW5lIF9fdmVyX2lweF9yZW1vdmVfc29ja2V0IHNtcF9iYzMxYmU2MwojZGVmaW5lIGlweF9yZW1v
dmVfc29ja2V0IF9zZXRfdmVyKGlweF9yZW1vdmVfc29ja2V0KQojZGVmaW5lIF9fdmVyX2lweF9y
ZWdpc3Rlcl9zcHggc21wX2EzZjc1ZjFjCiNkZWZpbmUgaXB4X3JlZ2lzdGVyX3NweCBfc2V0X3Zl
cihpcHhfcmVnaXN0ZXJfc3B4KQojZGVmaW5lIF9fdmVyX2lweF91bnJlZ2lzdGVyX3NweCBzbXBf
YjVlMzllNjQKI2RlZmluZSBpcHhfdW5yZWdpc3Rlcl9zcHggX3NldF92ZXIoaXB4X3VucmVnaXN0
ZXJfc3B4KQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp
b25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMv
YWZfbmV0bGluay52ZXIiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL2FmX3NweC52ZXIiIDEKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2FncGdhcnRfYmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWdwX2ZyZWVf
bWVtb3J5IHNtcF8zMDFlYjJmNgojZGVmaW5lIGFncF9mcmVlX21lbW9yeSBfc2V0X3ZlcihhZ3Bf
ZnJlZV9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX2FsbG9jYXRlX21lbW9yeSBzbXBfOTMzZWEx
ODMKI2RlZmluZSBhZ3BfYWxsb2NhdGVfbWVtb3J5IF9zZXRfdmVyKGFncF9hbGxvY2F0ZV9tZW1v
cnkpCiNkZWZpbmUgX192ZXJfYWdwX2NvcHlfaW5mbyBzbXBfYTcxZWU3YTkKI2RlZmluZSBhZ3Bf
Y29weV9pbmZvIF9zZXRfdmVyKGFncF9jb3B5X2luZm8pCiNkZWZpbmUgX192ZXJfYWdwX2JpbmRf
bWVtb3J5IHNtcF9mZjFhNmJlNwojZGVmaW5lIGFncF9iaW5kX21lbW9yeSBfc2V0X3ZlcihhZ3Bf
YmluZF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX3VuYmluZF9tZW1vcnkgc21wX2VhZDU2M2Mx
CiNkZWZpbmUgYWdwX3VuYmluZF9tZW1vcnkgX3NldF92ZXIoYWdwX3VuYmluZF9tZW1vcnkpCiNk
ZWZpbmUgX192ZXJfYWdwX2VuYWJsZSBzbXBfMGQwMjA4NWYKI2RlZmluZSBhZ3BfZW5hYmxlIF9z
ZXRfdmVyKGFncF9lbmFibGUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfYWNxdWlyZSBzbXBf
ZmRhNzE5MDQKI2RlZmluZSBhZ3BfYmFja2VuZF9hY3F1aXJlIF9zZXRfdmVyKGFncF9iYWNrZW5k
X2FjcXVpcmUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfcmVsZWFzZSBzbXBfMGQ0M2ZkZTEK
I2RlZmluZSBhZ3BfYmFja2VuZF9yZWxlYXNlIF9zZXRfdmVyKGFncF9iYWNrZW5kX3JlbGVhc2Up
CiNkZWZpbmUgX192ZXJfYWdwX3JlZ2lzdGVyX21hcCBzbXBfZmIyZDdiZjMKI2RlZmluZSBhZ3Bf
cmVnaXN0ZXJfbWFwIF9zZXRfdmVyKGFncF9yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdw
X3VucmVnaXN0ZXJfbWFwIHNtcF9kNmU1ODcxMwojZGVmaW5lIGFncF91bnJlZ2lzdGVyX21hcCBf
c2V0X3ZlcihhZ3BfdW5yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdwX2lvcmVtYXAgc21w
XzFhYWEwMDdmCiNkZWZpbmUgYWdwX2lvcmVtYXAgX3NldF92ZXIoYWdwX2lvcmVtYXApCiNkZWZp
bmUgX192ZXJfYWdwX2lvdW5tYXAgc21wXzFiYjAxOWZkCiNkZWZpbmUgYWdwX2lvdW5tYXAgX3Nl
dF92ZXIoYWdwX2lvdW5tYXApCiMgMTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9haXJvbmV0NDUwMF9jYXJkLnZlciIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWlyb25ldDQ1MDBfY29yZS52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9iYXBfc2xlZXAgc21wX2M2ZjMxMTlmCiNkZWZpbmUgYmFwX3NsZWVwIF9zZXRfdmVy
KGJhcF9zbGVlcCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYWZ0ZXJfc2V0dXAgc21wXzAwYmVm
NTVhCiNkZWZpbmUgYmFwX3NsZWVwX2FmdGVyX3NldHVwIF9zZXRfdmVyKGJhcF9zbGVlcF9hZnRl
cl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9zbGVlcF9iZWZvcmVfY29tbWFuZCBzbXBfYTMzYTdkMmMK
I2RlZmluZSBzbGVlcF9iZWZvcmVfY29tbWFuZCBfc2V0X3ZlcihzbGVlcF9iZWZvcmVfY29tbWFu
ZCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYmVmb3JlX3dyaXRlIHNtcF8wNGI4MmI3MQojZGVm
aW5lIGJhcF9zbGVlcF9iZWZvcmVfd3JpdGUgX3NldF92ZXIoYmFwX3NsZWVwX2JlZm9yZV93cml0
ZSkKI2RlZmluZSBfX3Zlcl9zbGVlcF9pbl9jb21tYW5kIHNtcF8wMmFhM2U2YgojZGVmaW5lIHNs
ZWVwX2luX2NvbW1hbmQgX3NldF92ZXIoc2xlZXBfaW5fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9i
b3RoX2JhcF9sb2NrIHNtcF9iZmUxZGM3ZQojZGVmaW5lIGJvdGhfYmFwX2xvY2sgX3NldF92ZXIo
Ym90aF9iYXBfbG9jaykKI2RlZmluZSBfX3Zlcl9iYXBfc2V0dXBfc3BpbmxvY2sgc21wXzljNTE1
NWI3CiNkZWZpbmUgYmFwX3NldHVwX3NwaW5sb2NrIF9zZXRfdmVyKGJhcF9zZXR1cF9zcGlubG9j
aykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0dlbmVyYWxfQ29uZmlnIHNt
cF9hN2IzYTdhMAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfR2VuZXJhbF9Db25maWcg
X3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9HZW5lcmFsX0NvbmZpZykKI2RlZmluZSBf
X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBzbXBfZWFiMTJmYWQKI2RlZmlu
ZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBfc2V0X3ZlcihhaXJvbmV0NDUwMF9S
SURfU2VsZWN0X1NTSURfbGlzdCkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0
X0FQX2xpc3Qgc21wXzgyYTM4MGU4CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BUF9s
aXN0IF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBfbGlzdCkKI2RlZmluZSBfX3Zl
cl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0RyaXZlcl9uYW1lIHNtcF9kNDc3YTFlMgojZGVmaW5l
IGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRHJpdmVyX25hbWUgX3NldF92ZXIoYWlyb25ldDQ1MDBf
UklEX1NlbGVjdF9Ecml2ZXJfbmFtZSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2Vs
ZWN0X0VuY2Fwc3VsYXRpb24gc21wX2U3MmRkNGU5CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1Nl
bGVjdF9FbmNhcHN1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRW5jYXBz
dWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls
ZSBzbXBfOTEzYzJiOTIKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls
ZSBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGlsZSkKI2RlZmluZSBf
X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBzbXBfODg0YjY1OWIK
I2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBfc2V0X3Zlcihh
aXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSkKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X01vZHVsYXRpb24gc21wXzA5M2Y3YzkwCiNkZWZpbmUgYWlyb25l
dDQ1MDBfUklEX1NlbGVjdF9Nb2R1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxl
Y3RfTW9kdWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0FjdGl2
ZV9Db25maWcgc21wXzY1MWY5YjEzCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BY3Rp
dmVfQ29uZmlnIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQWN0aXZlX0NvbmZpZykK
I2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBzbXBfYzY0
YTJjY2EKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBfc2V0X3Zl
cihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcykKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X0FQX0luZm8gc21wX2E1OGViMjI0CiNkZWZpbmUgYWlyb25ldDQ1
MDBfUklEX1NlbGVjdF9BUF9JbmZvIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBf
SW5mbykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1JhZGlvX0luZm8gc21w
X2RjZDg2YTRhCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9SYWRpb19JbmZvIF9zZXRf
dmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfUmFkaW9fSW5mbykKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1cyBzbXBfM2FlNDI1ZjkKI2RlZmluZSBhaXJvbmV0NDUw
MF9SSURfU2VsZWN0X1N0YXR1cyBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1
cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2X3N0YXRzIHNtcF9hMDZl
MWU5OAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMTZfc3RhdHMgX3NldF92ZXIoYWly
b25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9S
SURfU2VsZWN0XzE2X3N0YXRzX2RlbHRhIHNtcF8yMGIxMjY5NAojZGVmaW5lIGFpcm9uZXQ0NTAw
X1JJRF9TZWxlY3RfMTZfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVj
dF8xNl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2
X3N0YXRzX2NsZWFyIHNtcF8zNmFlMWJkZQojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3Rf
MTZfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0c19j
bGVhcikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzMyX3N0YXRzIHNtcF8w
YWQyMzhlNAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHMgX3NldF92ZXIo
YWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUw
MF9SSURfU2VsZWN0XzMyX3N0YXRzX2RlbHRhIHNtcF85MTliMTgxZQojZGVmaW5lIGFpcm9uZXQ0
NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1Nl
bGVjdF8zMl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0
XzMyX3N0YXRzX2NsZWFyIHNtcF84Nzg0MjU1NAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxl
Y3RfMzJfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0
c19jbGVhcikKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZCBzbXBfOTVhN2Y2YTAKI2RlZmluZSBh
d2NfcmVhZHJpZCBfc2V0X3Zlcihhd2NfcmVhZHJpZCkKI2RlZmluZSBfX3Zlcl9hd2Nfd3JpdGVy
aWQgc21wXzA1YjJlMzViCiNkZWZpbmUgYXdjX3dyaXRlcmlkIF9zZXRfdmVyKGF3Y193cml0ZXJp
ZCkKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZF9kaXIgc21wXzQ2NDQ5MGMyCiNkZWZpbmUgYXdj
X3JlYWRyaWRfZGlyIF9zZXRfdmVyKGF3Y19yZWFkcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2Nf
d3JpdGVyaWRfZGlyIHNtcF9iNzQ4NTU2YwojZGVmaW5lIGF3Y193cml0ZXJpZF9kaXIgX3NldF92
ZXIoYXdjX3dyaXRlcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2NfZW5hYmxlX01BQyBzbXBfZWVi
NjIyMWUKI2RlZmluZSBhd2NfZW5hYmxlX01BQyBfc2V0X3Zlcihhd2NfZW5hYmxlX01BQykKI2Rl
ZmluZSBfX3Zlcl9hd2NfZGlzYWJsZV9NQUMgc21wX2JhYWNmNThmCiNkZWZpbmUgYXdjX2Rpc2Fi
bGVfTUFDIF9zZXRfdmVyKGF3Y19kaXNhYmxlX01BQykKI2RlZmluZSBfX3Zlcl9hd2NfaW5pdCBz
bXBfZjMzY2RhMjkKI2RlZmluZSBhd2NfaW5pdCBfc2V0X3Zlcihhd2NfaW5pdCkKI2RlZmluZSBf
X3Zlcl9hd2Nfb3BlbiBzbXBfYjAxZDBjODEKI2RlZmluZSBhd2Nfb3BlbiBfc2V0X3Zlcihhd2Nf
b3BlbikKI2RlZmluZSBfX3Zlcl9hd2NfY2xvc2Ugc21wX2YwOTZlYmY2CiNkZWZpbmUgYXdjX2Ns
b3NlIF9zZXRfdmVyKGF3Y19jbG9zZSkKI2RlZmluZSBfX3Zlcl9hd2NfcmVzZXQgc21wXzQzODU3
MGVkCiNkZWZpbmUgYXdjX3Jlc2V0IF9zZXRfdmVyKGF3Y19yZXNldCkKI2RlZmluZSBfX3Zlcl9h
d2NfY29uZmlnIHNtcF81Zjc4YWM2NwojZGVmaW5lIGF3Y19jb25maWcgX3NldF92ZXIoYXdjX2Nv
bmZpZykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9kZXZpY2VzIHNtcF85ZTIwMjQ1ZgojZGVm
aW5lIGFpcm9uZXQ0NTAwX2RldmljZXMgX3NldF92ZXIoYWlyb25ldDQ1MDBfZGV2aWNlcykKI2Rl
ZmluZSBfX3Zlcl9hd2NfZGVidWcgc21wXzk3OWJlOGEyCiNkZWZpbmUgYXdjX2RlYnVnIF9zZXRf
dmVyKGF3Y19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9hd2NfcHJpdmF0ZV9pbml0IHNtcF9lZGI3NmVi
YQojZGVmaW5lIGF3Y19wcml2YXRlX2luaXQgX3NldF92ZXIoYXdjX3ByaXZhdGVfaW5pdCkKI2Rl
ZmluZSBfX3Zlcl9hd2NfdHhfdGltZW91dCBzbXBfMTU4N2FmYjkKI2RlZmluZSBhd2NfdHhfdGlt
ZW91dCBfc2V0X3Zlcihhd2NfdHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9hd2Nfc3RhcnRfeG1p
dCBzbXBfZWQwMDQ0YzIKI2RlZmluZSBhd2Nfc3RhcnRfeG1pdCBfc2V0X3Zlcihhd2Nfc3RhcnRf
eG1pdCkKI2RlZmluZSBfX3Zlcl9hd2NfaW50ZXJydXB0IHNtcF9hNDNjMTc3ZgojZGVmaW5lIGF3
Y19pbnRlcnJ1cHQgX3NldF92ZXIoYXdjX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9hd2NfZ2V0
X3N0YXRzIHNtcF85M2MxM2Q3MAojZGVmaW5lIGF3Y19nZXRfc3RhdHMgX3NldF92ZXIoYXdjX2dl
dF9zdGF0cykKI2RlZmluZSBfX3Zlcl9hd2NfY2hhbmdlX210dSBzbXBfZDhmNzQ2MWEKI2RlZmlu
ZSBhd2NfY2hhbmdlX210dSBfc2V0X3Zlcihhd2NfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9h
d2Nfc2V0X211bHRpY2FzdF9saXN0IHNtcF84ZGFmZjMyYgojZGVmaW5lIGF3Y19zZXRfbXVsdGlj
YXN0X2xpc3QgX3NldF92ZXIoYXdjX3NldF9tdWx0aWNhc3RfbGlzdCkKI2RlZmluZSBfX3Zlcl9h
d2NfcHJvY19zZXRfZnVuIHNtcF8zNTFkZDI5OQojZGVmaW5lIGF3Y19wcm9jX3NldF9mdW4gX3Nl
dF92ZXIoYXdjX3Byb2Nfc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcHJvY191bnNldF9mdW4g
c21wX2EwZWM3OTBjCiNkZWZpbmUgYXdjX3Byb2NfdW5zZXRfZnVuIF9zZXRfdmVyKGF3Y19wcm9j
X3Vuc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcmVnaXN0ZXJfcHJvYyBzbXBfODkyNzJjZWQK
I2RlZmluZSBhd2NfcmVnaXN0ZXJfcHJvYyBfc2V0X3Zlcihhd2NfcmVnaXN0ZXJfcHJvYykKI2Rl
ZmluZSBfX3Zlcl9hd2NfdW5yZWdpc3Rlcl9wcm9jIHNtcF8yMDBhYWRjYQojZGVmaW5lIGF3Y191
bnJlZ2lzdGVyX3Byb2MgX3NldF92ZXIoYXdjX3VucmVnaXN0ZXJfcHJvYykKIyAxOCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Fpcm8udmVyIiAxCiMgMTkgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hbWQ3OTMwLnZlciIgMQoj
IDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYXJjbmV0LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2FyY19wcm90b19tYXAgc21wXzVjMDQzZmVmCiNkZWZpbmUgYXJj
X3Byb3RvX21hcCBfc2V0X3ZlcihhcmNfcHJvdG9fbWFwKQojZGVmaW5lIF9fdmVyX2FyY19wcm90
b19kZWZhdWx0IHNtcF9iMGJmNTY2NAojZGVmaW5lIGFyY19wcm90b19kZWZhdWx0IF9zZXRfdmVy
KGFyY19wcm90b19kZWZhdWx0KQojZGVmaW5lIF9fdmVyX2FyY19iY2FzdF9wcm90byBzbXBfMmRk
NTEzY2MKI2RlZmluZSBhcmNfYmNhc3RfcHJvdG8gX3NldF92ZXIoYXJjX2JjYXN0X3Byb3RvKQoj
ZGVmaW5lIF9fdmVyX2FyY19wcm90b19udWxsIHNtcF9jN2JjMWE1OQojZGVmaW5lIGFyY19wcm90
b19udWxsIF9zZXRfdmVyKGFyY19wcm90b19udWxsKQojZGVmaW5lIF9fdmVyX2FyY25ldF91bnJl
Z2lzdGVyX3Byb3RvIHNtcF8xZmJhYjUzYgojZGVmaW5lIGFyY25ldF91bnJlZ2lzdGVyX3Byb3Rv
IF9zZXRfdmVyKGFyY25ldF91bnJlZ2lzdGVyX3Byb3RvKQojZGVmaW5lIF9fdmVyX2FyY25ldF9k
ZWJ1ZyBzbXBfNjUzNDc5MmEKI2RlZmluZSBhcmNuZXRfZGVidWcgX3NldF92ZXIoYXJjbmV0X2Rl
YnVnKQojZGVmaW5lIF9fdmVyX2FyY2Rldl9zZXR1cCBzbXBfMDEwYmQyNDQKI2RlZmluZSBhcmNk
ZXZfc2V0dXAgX3NldF92ZXIoYXJjZGV2X3NldHVwKQojZGVmaW5lIF9fdmVyX2FyY25ldF9pbnRl
cnJ1cHQgc21wXzA0NWIxZmFjCiNkZWZpbmUgYXJjbmV0X2ludGVycnVwdCBfc2V0X3ZlcihhcmNu
ZXRfaW50ZXJydXB0KQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvYXJsYW4udmVyIiAxCiNkZWZpbmUgX192ZXJfYXJsYW5fZGV2aWNlIHNtcF9jN2I5MTJm
MAojZGVmaW5lIGFybGFuX2RldmljZSBfc2V0X3Zlcihhcmxhbl9kZXZpY2UpCiNkZWZpbmUgX192
ZXJfYXJsYW5fY29uZiBzbXBfNjQ5ODBlMDMKI2RlZmluZSBhcmxhbl9jb25mIF9zZXRfdmVyKGFy
bGFuX2NvbmYpCiNkZWZpbmUgX192ZXJfbGFzdF9hcmxhbiBzbXBfMmVhODM0YTAKI2RlZmluZSBs
YXN0X2FybGFuIF9zZXRfdmVyKGxhc3RfYXJsYW4pCiNkZWZpbmUgX192ZXJfYXJsYW5fY29tbWFu
ZCBzbXBfMzNiZWM3NGMKI2RlZmluZSBhcmxhbl9jb21tYW5kIF9zZXRfdmVyKGFybGFuX2NvbW1h
bmQpCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdG1f
bWlzYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fY2hhcmdlIHNtcF84NmRjZTM1OQojZGVmaW5l
IGF0bV9jaGFyZ2UgX3NldF92ZXIoYXRtX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fYWxsb2Nf
Y2hhcmdlIHNtcF9jMTg2NmY3NQojZGVmaW5lIGF0bV9hbGxvY19jaGFyZ2UgX3NldF92ZXIoYXRt
X2FsbG9jX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fZmluZF9jaSBzbXBfODYyMjM0YTUKI2Rl
ZmluZSBhdG1fZmluZF9jaSBfc2V0X3ZlcihhdG1fZmluZF9jaSkKI2RlZmluZSBfX3Zlcl9hdG1f
cGNyX2dvYWwgc21wXzM3MmZkMTA0CiNkZWZpbmUgYXRtX3Bjcl9nb2FsIF9zZXRfdmVyKGF0bV9w
Y3JfZ29hbCkKI2RlZmluZSBfX3Zlcl9zb25ldF9jb3B5X3N0YXRzIHNtcF85OTM1OWM0NgojZGVm
aW5lIHNvbmV0X2NvcHlfc3RhdHMgX3NldF92ZXIoc29uZXRfY29weV9zdGF0cykKI2RlZmluZSBf
X3Zlcl9zb25ldF9zdWJ0cmFjdF9zdGF0cyBzbXBfZDVmYTJlN2MKI2RlZmluZSBzb25ldF9zdWJ0
cmFjdF9zdGF0cyBfc2V0X3Zlcihzb25ldF9zdWJ0cmFjdF9zdGF0cykKIyAyMyAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1ZGlvX3N5bXMudmVyIiAxCiNkZWZp
bmUgX192ZXJfRE1BYnVmX3N0YXJ0X2RtYSBzbXBfZTA1NmI3MWMKI2RlZmluZSBETUFidWZfc3Rh
cnRfZG1hIF9zZXRfdmVyKERNQWJ1Zl9zdGFydF9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX29w
ZW5fZG1hIHNtcF8wNmIzMDEzZAojZGVmaW5lIERNQWJ1Zl9vcGVuX2RtYSBfc2V0X3ZlcihETUFi
dWZfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX2Nsb3NlX2RtYSBzbXBfYzg4YjQyYWIK
I2RlZmluZSBETUFidWZfY2xvc2VfZG1hIF9zZXRfdmVyKERNQWJ1Zl9jbG9zZV9kbWEpCiNkZWZp
bmUgX192ZXJfRE1BYnVmX2lucHV0aW50ciBzbXBfZWIzMTVkOTkKI2RlZmluZSBETUFidWZfaW5w
dXRpbnRyIF9zZXRfdmVyKERNQWJ1Zl9pbnB1dGludHIpCiNkZWZpbmUgX192ZXJfRE1BYnVmX291
dHB1dGludHIgc21wXzk4N2JjZjEyCiNkZWZpbmUgRE1BYnVmX291dHB1dGludHIgX3NldF92ZXIo
RE1BYnVmX291dHB1dGludHIpCiNkZWZpbmUgX192ZXJfZG1hX2lvY3RsIHNtcF9mYTIxZDY2Mgoj
ZGVmaW5lIGRtYV9pb2N0bCBfc2V0X3ZlcihkbWFfaW9jdGwpCiNkZWZpbmUgX192ZXJfYXVkaW9f
b3BlbiBzbXBfYWRmZjI4NWMKI2RlZmluZSBhdWRpb19vcGVuIF9zZXRfdmVyKGF1ZGlvX29wZW4p
CiNkZWZpbmUgX192ZXJfYXVkaW9fcmVsZWFzZSBzbXBfMDdmNzZlZTgKI2RlZmluZSBhdWRpb19y
ZWxlYXNlIF9zZXRfdmVyKGF1ZGlvX3JlbGVhc2UpCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdWRpby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl
cl9zcGFyY2F1ZGlvX2RyaXZlciBzbXBfZTI2MjFjNTUKI2RlZmluZSByZWdpc3Rlcl9zcGFyY2F1
ZGlvX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9zcGFyY2F1ZGlvX2RyaXZlcikKI2RlZmluZSBf
X3Zlcl91bnJlZ2lzdGVyX3NwYXJjYXVkaW9fZHJpdmVyIHNtcF9lNjM4OGU2MgojZGVmaW5lIHVu
cmVnaXN0ZXJfc3BhcmNhdWRpb19kcml2ZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9zcGFyY2F1ZGlv
X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX291dHB1dF9kb25lIHNtcF9kZGMwM2Vi
MwojZGVmaW5lIHNwYXJjYXVkaW9fb3V0cHV0X2RvbmUgX3NldF92ZXIoc3BhcmNhdWRpb19vdXRw
dXRfZG9uZSkKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX2lucHV0X2RvbmUgc21wXzQ0MGMwNzBj
CiNkZWZpbmUgc3BhcmNhdWRpb19pbnB1dF9kb25lIF9zZXRfdmVyKHNwYXJjYXVkaW9faW5wdXRf
ZG9uZSkKIyAyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9u
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1
dG9faXJxLnZlciIgMQojZGVmaW5lIF9fdmVyX2F1dG9pcnFfc2V0dXAgc21wXzVhNWEyMjgwCiNk
ZWZpbmUgYXV0b2lycV9zZXR1cCBfc2V0X3ZlcihhdXRvaXJxX3NldHVwKQojZGVmaW5lIF9fdmVy
X2F1dG9pcnFfcmVwb3J0IHNtcF84NDUzMGM1MwojZGVmaW5lIGF1dG9pcnFfcmVwb3J0IF9zZXRf
dmVyKGF1dG9pcnFfcmVwb3J0KQojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvYjFkbWEudmVyIiAxCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXQgc21wXzg1
ZjI2ZTg3CiNkZWZpbmUgYjFkbWFfcmVzZXQgX3NldF92ZXIoYjFkbWFfcmVzZXQpCiNkZWZpbmUg
X192ZXJfdDFwY2lfZGV0ZWN0IHNtcF85ZTJjZjY4OQojZGVmaW5lIHQxcGNpX2RldGVjdCBfc2V0
X3Zlcih0MXBjaV9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYjFwY2l2NF9kZXRlY3Qgc21wXzRmMDkw
MjlhCiNkZWZpbmUgYjFwY2l2NF9kZXRlY3QgX3NldF92ZXIoYjFwY2l2NF9kZXRlY3QpCiNkZWZp
bmUgX192ZXJfYjFkbWFfaW50ZXJydXB0IHNtcF9lMzU5MDNhZAojZGVmaW5lIGIxZG1hX2ludGVy
cnVwdCBfc2V0X3ZlcihiMWRtYV9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfYjFkbWFfbG9hZF9m
aXJtd2FyZSBzbXBfZDcwYjQ4NjIKI2RlZmluZSBiMWRtYV9sb2FkX2Zpcm13YXJlIF9zZXRfdmVy
KGIxZG1hX2xvYWRfZmlybXdhcmUpCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXRfY3RyIHNtcF9h
ZDAxYzU3NAojZGVmaW5lIGIxZG1hX3Jlc2V0X2N0ciBfc2V0X3ZlcihiMWRtYV9yZXNldF9jdHIp
CiNkZWZpbmUgX192ZXJfYjFkbWFfcmVnaXN0ZXJfYXBwbCBzbXBfNDI2MTFhZjcKI2RlZmluZSBi
MWRtYV9yZWdpc3Rlcl9hcHBsIF9zZXRfdmVyKGIxZG1hX3JlZ2lzdGVyX2FwcGwpCiNkZWZpbmUg
X192ZXJfYjFkbWFfcmVsZWFzZV9hcHBsIHNtcF81ZTkyZWFhZgojZGVmaW5lIGIxZG1hX3JlbGVh
c2VfYXBwbCBfc2V0X3ZlcihiMWRtYV9yZWxlYXNlX2FwcGwpCiNkZWZpbmUgX192ZXJfYjFkbWFf
c2VuZF9tZXNzYWdlIHNtcF8xYjZjMWMxZAojZGVmaW5lIGIxZG1hX3NlbmRfbWVzc2FnZSBfc2V0
X3ZlcihiMWRtYV9zZW5kX21lc3NhZ2UpCiNkZWZpbmUgX192ZXJfYjFkbWFjdGxfcmVhZF9wcm9j
IHNtcF9iNTk3ZTc1MQojZGVmaW5lIGIxZG1hY3RsX3JlYWRfcHJvYyBfc2V0X3ZlcihiMWRtYWN0
bF9yZWFkX3Byb2MpCiMgMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy9iMXBjbWNpYS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX2IxIHNt
cF9mMTRiZjhiMQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfYjEgX3NldF92ZXIoYjFwY21jaWFf
YWRkY2FyZF9iMSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20xIHNtcF9hZWMzMjQw
ZQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfbTEgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9t
MSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20yIHNtcF9lYTYyMDExNgojZGVmaW5l
IGIxcGNtY2lhX2FkZGNhcmRfbTIgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9tMikKI2RlZmlu
ZSBfX3Zlcl9iMXBjbWNpYV9kZWxjYXJkIHNtcF8yOTU2Mjk5MwojZGVmaW5lIGIxcGNtY2lhX2Rl
bGNhcmQgX3NldF92ZXIoYjFwY21jaWFfZGVsY2FyZCkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2IxLnZlciIgMQojZGVmaW5lIF9fdmVyX2IxX2lycV90
YWJsZSBzbXBfODVmMDk2OTAKI2RlZmluZSBiMV9pcnFfdGFibGUgX3NldF92ZXIoYjFfaXJxX3Rh
YmxlKQojZGVmaW5lIF9fdmVyX2IxX2RldGVjdCBzbXBfZGZkMjgzNzYKI2RlZmluZSBiMV9kZXRl
Y3QgX3NldF92ZXIoYjFfZGV0ZWN0KQojZGVmaW5lIF9fdmVyX2IxX2dldHJldmlzaW9uIHNtcF9k
N2UxY2NmNQojZGVmaW5lIGIxX2dldHJldmlzaW9uIF9zZXRfdmVyKGIxX2dldHJldmlzaW9uKQoj
ZGVmaW5lIF9fdmVyX2IxX2xvYWRfdDRmaWxlIHNtcF9iZGZmNWFkNAojZGVmaW5lIGIxX2xvYWRf
dDRmaWxlIF9zZXRfdmVyKGIxX2xvYWRfdDRmaWxlKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfY29u
ZmlnIHNtcF9lZjUwNjIwZAojZGVmaW5lIGIxX2xvYWRfY29uZmlnIF9zZXRfdmVyKGIxX2xvYWRf
Y29uZmlnKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRlZCBzbXBfOTIwMzEzMGUKI2RlZmluZSBiMV9s
b2FkZWQgX3NldF92ZXIoYjFfbG9hZGVkKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfZmlybXdhcmUg
c21wXzYxMDk3NjZmCiNkZWZpbmUgYjFfbG9hZF9maXJtd2FyZSBfc2V0X3ZlcihiMV9sb2FkX2Zp
cm13YXJlKQojZGVmaW5lIF9fdmVyX2IxX3Jlc2V0X2N0ciBzbXBfNWJlZWMwOGIKI2RlZmluZSBi
MV9yZXNldF9jdHIgX3NldF92ZXIoYjFfcmVzZXRfY3RyKQojZGVmaW5lIF9fdmVyX2IxX3JlZ2lz
dGVyX2FwcGwgc21wXzIwZmUzMDE2CiNkZWZpbmUgYjFfcmVnaXN0ZXJfYXBwbCBfc2V0X3Zlcihi
MV9yZWdpc3Rlcl9hcHBsKQojZGVmaW5lIF9fdmVyX2IxX3JlbGVhc2VfYXBwbCBzbXBfN2UwYmUx
YjYKI2RlZmluZSBiMV9yZWxlYXNlX2FwcGwgX3NldF92ZXIoYjFfcmVsZWFzZV9hcHBsKQojZGVm
aW5lIF9fdmVyX2IxX3NlbmRfbWVzc2FnZSBzbXBfYTk3NzhiOTcKI2RlZmluZSBiMV9zZW5kX21l
c3NhZ2UgX3NldF92ZXIoYjFfc2VuZF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2IxX3BhcnNlX3Zl
cnNpb24gc21wXzY2MjU4MmE0CiNkZWZpbmUgYjFfcGFyc2VfdmVyc2lvbiBfc2V0X3ZlcihiMV9w
YXJzZV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2IxX2hhbmRsZV9pbnRlcnJ1cHQgc21wXzVkMDZk
YTdjCiNkZWZpbmUgYjFfaGFuZGxlX2ludGVycnVwdCBfc2V0X3ZlcihiMV9oYW5kbGVfaW50ZXJy
dXB0KQojZGVmaW5lIF9fdmVyX2IxY3RsX3JlYWRfcHJvYyBzbXBfNTdhZmZkY2UKI2RlZmluZSBi
MWN0bF9yZWFkX3Byb2MgX3NldF92ZXIoYjFjdGxfcmVhZF9wcm9jKQojIDI5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYmFzZS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9kZXZmc19yZWdpc3RlciBzbXBfNjYwZWJjMDcKI2RlZmluZSBkZXZmc19yZWdpc3RlciBfc2V0
X3ZlcihkZXZmc19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyIHNtcF81
YjBjODVlYwojZGVmaW5lIGRldmZzX3VucmVnaXN0ZXIgX3NldF92ZXIoZGV2ZnNfdW5yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl9kZXZmc19ta19zeW1saW5rIHNtcF8zZjZiYjUxMgojZGVmaW5lIGRl
dmZzX21rX3N5bWxpbmsgX3NldF92ZXIoZGV2ZnNfbWtfc3ltbGluaykKI2RlZmluZSBfX3Zlcl9k
ZXZmc19ta19kaXIgc21wX2M3NGVmMzc0CiNkZWZpbmUgZGV2ZnNfbWtfZGlyIF9zZXRfdmVyKGRl
dmZzX21rX2RpcikKI2RlZmluZSBfX3Zlcl9kZXZmc19maW5kX2hhbmRsZSBzbXBfNmE0YWRkNDEK
I2RlZmluZSBkZXZmc19maW5kX2hhbmRsZSBfc2V0X3ZlcihkZXZmc19maW5kX2hhbmRsZSkKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19nZXRfZmxhZ3Mgc21wXzhhNzEzYjVlCiNkZWZpbmUgZGV2ZnNfZ2V0
X2ZsYWdzIF9zZXRfdmVyKGRldmZzX2dldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf
ZmxhZ3Mgc21wXzdjZWM4NTE1CiNkZWZpbmUgZGV2ZnNfc2V0X2ZsYWdzIF9zZXRfdmVyKGRldmZz
X3NldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbWFqX21pbiBzbXBfNjRiMjJiNWQK
I2RlZmluZSBkZXZmc19nZXRfbWFqX21pbiBfc2V0X3ZlcihkZXZmc19nZXRfbWFqX21pbikKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19nZXRfaGFuZGxlX2Zyb21faW5vZGUgc21wXzI1YWM4ZjdkCiNkZWZp
bmUgZGV2ZnNfZ2V0X2hhbmRsZV9mcm9tX2lub2RlIF9zZXRfdmVyKGRldmZzX2dldF9oYW5kbGVf
ZnJvbV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZW5lcmF0ZV9wYXRoIHNtcF9mYTg3MDdi
MQojZGVmaW5lIGRldmZzX2dlbmVyYXRlX3BhdGggX3NldF92ZXIoZGV2ZnNfZ2VuZXJhdGVfcGF0
aCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfb3BzIHNtcF8zNzhkMDdmZAojZGVmaW5lIGRldmZz
X2dldF9vcHMgX3NldF92ZXIoZGV2ZnNfZ2V0X29wcykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf
ZmlsZV9zaXplIHNtcF85NjYzMGM5OAojZGVmaW5lIGRldmZzX3NldF9maWxlX3NpemUgX3NldF92
ZXIoZGV2ZnNfc2V0X2ZpbGVfc2l6ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfaW5mbyBzbXBf
ZTc2NTNmNjAKI2RlZmluZSBkZXZmc19nZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19nZXRfaW5mbykK
I2RlZmluZSBfX3Zlcl9kZXZmc19zZXRfaW5mbyBzbXBfOTY4OTEzY2QKI2RlZmluZSBkZXZmc19z
ZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19zZXRfaW5mbykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRf
cGFyZW50IHNtcF9hYTRiODUzNwojZGVmaW5lIGRldmZzX2dldF9wYXJlbnQgX3NldF92ZXIoZGV2
ZnNfZ2V0X3BhcmVudCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfZmlyc3RfY2hpbGQgc21wX2Zj
YjkyMmI2CiNkZWZpbmUgZGV2ZnNfZ2V0X2ZpcnN0X2NoaWxkIF9zZXRfdmVyKGRldmZzX2dldF9m
aXJzdF9jaGlsZCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmV4dF9zaWJsaW5nIHNtcF8yNzhk
ZGU2NwojZGVmaW5lIGRldmZzX2dldF9uZXh0X3NpYmxpbmcgX3NldF92ZXIoZGV2ZnNfZ2V0X25l
eHRfc2libGluZykKI2RlZmluZSBfX3Zlcl9kZXZmc19hdXRvX3VucmVnaXN0ZXIgc21wXzU4ZDI0
ZWMzCiNkZWZpbmUgZGV2ZnNfYXV0b191bnJlZ2lzdGVyIF9zZXRfdmVyKGRldmZzX2F1dG9fdW5y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBzbXBfYjkx
YThmZjAKI2RlZmluZSBkZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBfc2V0X3ZlcihkZXZmc19n
ZXRfdW5yZWdpc3Rlcl9zbGF2ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmFtZSBzbXBfM2Jh
NGExYzUKI2RlZmluZSBkZXZmc19nZXRfbmFtZSBfc2V0X3ZlcihkZXZmc19nZXRfbmFtZSkKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9jaHJkZXYgc21wX2VlZmEwZjM2CiNkZWZpbmUgZGV2
ZnNfcmVnaXN0ZXJfY2hyZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2NocmRldikKI2RlZmlu
ZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9ibGtkZXYgc21wX2U5M2QzMzkwCiNkZWZpbmUgZGV2ZnNf
cmVnaXN0ZXJfYmxrZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2Jsa2RldikKI2RlZmluZSBf
X3Zlcl9kZXZmc191bnJlZ2lzdGVyX2NocmRldiBzbXBfNzdmM2UwY2UKI2RlZmluZSBkZXZmc191
bnJlZ2lzdGVyX2NocmRldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2NocmRldikKI2RlZmlu
ZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyX2Jsa2RldiBzbXBfNWNhMGYwZjAKI2RlZmluZSBkZXZm
c191bnJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2Jsa2RldikKIyAz
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2JiY19pMmMudmVy
IiAxCiNkZWZpbmUgX192ZXJfYmJjX2kyY19nZXRkZXYgc21wXzQ5NDg0ZjdmCiNkZWZpbmUgYmJj
X2kyY19nZXRkZXYgX3NldF92ZXIoYmJjX2kyY19nZXRkZXYpCiNkZWZpbmUgX192ZXJfYmJjX2ky
Y19hdHRhY2ggc21wXzZmMWI1YWE5CiNkZWZpbmUgYmJjX2kyY19hdHRhY2ggX3NldF92ZXIoYmJj
X2kyY19hdHRhY2gpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19kZXRhY2ggc21wX2E3YjY1NzU2CiNk
ZWZpbmUgYmJjX2kyY19kZXRhY2ggX3NldF92ZXIoYmJjX2kyY19kZXRhY2gpCiNkZWZpbmUgX192
ZXJfYmJjX2kyY193cml0ZWIgc21wX2RkYmIyMmE2CiNkZWZpbmUgYmJjX2kyY193cml0ZWIgX3Nl
dF92ZXIoYmJjX2kyY193cml0ZWIpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19yZWFkYiBzbXBfNjBj
YTYxMzYKI2RlZmluZSBiYmNfaTJjX3JlYWRiIF9zZXRfdmVyKGJiY19pMmNfcmVhZGIpCiNkZWZp
bmUgX192ZXJfYmJjX2kyY193cml0ZV9idWYgc21wX2VmMjZjY2ZkCiNkZWZpbmUgYmJjX2kyY193
cml0ZV9idWYgX3NldF92ZXIoYmJjX2kyY193cml0ZV9idWYpCiNkZWZpbmUgX192ZXJfYmJjX2ky
Y19yZWFkX2J1ZiBzbXBfODU5YjE1ZGYKI2RlZmluZSBiYmNfaTJjX3JlYWRfYnVmIF9zZXRfdmVy
KGJiY19pMmNfcmVhZF9idWYpCiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9ibGtwZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ibGtfaW9jdGwgc21wX2U3ODAw
NDI4CiNkZWZpbmUgYmxrX2lvY3RsIF9zZXRfdmVyKGJsa19pb2N0bCkKIyAzMiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Jvb3RsZHIudmVyIiAxCiNkZWZpbmUg
X192ZXJfcGFyc2VfYm9vdGxkcl9wYXJ0aXRpb25zIHNtcF85YjcyNTAzZAojZGVmaW5lIHBhcnNl
X2Jvb3RsZHJfcGFydGl0aW9ucyBfc2V0X3ZlcihwYXJzZV9ib290bGRyX3BhcnRpdGlvbnMpCiMg
MzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9idHR2LWlmLnZl
ciIgMQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2NhcmRpbmZvIHNtcF80ODMyMDE1OAojZGVmaW5l
IGJ0dHZfZ2V0X2NhcmRpbmZvIF9zZXRfdmVyKGJ0dHZfZ2V0X2NhcmRpbmZvKQojZGVmaW5lIF9f
dmVyX2J0dHZfZ2V0X2lkIHNtcF8yOTRiNTU1MAojZGVmaW5lIGJ0dHZfZ2V0X2lkIF9zZXRfdmVy
KGJ0dHZfZ2V0X2lkKQojZGVmaW5lIF9fdmVyX2J0dHZfZ3Bpb19lbmFibGUgc21wXzExZGM0YjZk
CiNkZWZpbmUgYnR0dl9ncGlvX2VuYWJsZSBfc2V0X3ZlcihidHR2X2dwaW9fZW5hYmxlKQojZGVm
aW5lIF9fdmVyX2J0dHZfcmVhZF9ncGlvIHNtcF9iY2YyZDJmYgojZGVmaW5lIGJ0dHZfcmVhZF9n
cGlvIF9zZXRfdmVyKGJ0dHZfcmVhZF9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfd3JpdGVfZ3Bp
byBzbXBfOGVjZjRhY2MKI2RlZmluZSBidHR2X3dyaXRlX2dwaW8gX3NldF92ZXIoYnR0dl93cml0
ZV9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2dwaW9fcXVldWUgc21wX2E2Nzg4OTY4CiNk
ZWZpbmUgYnR0dl9nZXRfZ3Bpb19xdWV1ZSBfc2V0X3ZlcihidHR2X2dldF9ncGlvX3F1ZXVlKQoj
IDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYnVzbW91c2Uu
dmVyIiAxCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVtZW50YnV0dG9ucyBzbXBfNmM4
ZTE3NTkKI2RlZmluZSBidXNtb3VzZV9hZGRfbW92ZW1lbnRidXR0b25zIF9zZXRfdmVyKGJ1c21v
dXNlX2FkZF9tb3ZlbWVudGJ1dHRvbnMpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVt
ZW50IHNtcF9hOTM0NmE5OAojZGVmaW5lIGJ1c21vdXNlX2FkZF9tb3ZlbWVudCBfc2V0X3Zlcihi
dXNtb3VzZV9hZGRfbW92ZW1lbnQpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX2J1dHRvbnMg
c21wXzQzN2FjMGI4CiNkZWZpbmUgYnVzbW91c2VfYWRkX2J1dHRvbnMgX3NldF92ZXIoYnVzbW91
c2VfYWRkX2J1dHRvbnMpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYnVzbW91c2Ugc21wXzM0NGMy
MGY5CiNkZWZpbmUgcmVnaXN0ZXJfYnVzbW91c2UgX3NldF92ZXIocmVnaXN0ZXJfYnVzbW91c2Up
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9idXNtb3VzZSBzbXBfZTQ5MjY1M2MKI2RlZmluZSB1
bnJlZ2lzdGVyX2J1c21vdXNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfYnVzbW91c2UpCiMgMzUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jYXBpZnMudmVyIiAxCiNk
ZWZpbmUgX192ZXJfY2FwaWZzX25ld19uY2NpIHNtcF81OThmMjcxZAojZGVmaW5lIGNhcGlmc19u
ZXdfbmNjaSBfc2V0X3ZlcihjYXBpZnNfbmV3X25jY2kpCiNkZWZpbmUgX192ZXJfY2FwaWZzX2Zy
ZWVfbmNjaSBzbXBfOThlN2Y0YjcKI2RlZmluZSBjYXBpZnNfZnJlZV9uY2NpIF9zZXRfdmVyKGNh
cGlmc19mcmVlX25jY2kpCiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9jYXBpdXRpbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cybWVzc2FnZSBz
bXBfNTBiMzNjYTQKI2RlZmluZSBjYXBpX2Ntc2cybWVzc2FnZSBfc2V0X3ZlcihjYXBpX2Ntc2cy
bWVzc2FnZSkKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3NhZ2UyY21zZyBzbXBfNjA1N2M2ZjMKI2Rl
ZmluZSBjYXBpX21lc3NhZ2UyY21zZyBfc2V0X3ZlcihjYXBpX21lc3NhZ2UyY21zZykKI2RlZmlu
ZSBfX3Zlcl9jYXBpX2Ntc2dfaGVhZGVyIHNtcF9iNjBlNWU1ZgojZGVmaW5lIGNhcGlfY21zZ19o
ZWFkZXIgX3NldF92ZXIoY2FwaV9jbXNnX2hlYWRlcikKI2RlZmluZSBfX3Zlcl9jYXBpX2NtZDJz
dHIgc21wX2IxOWZkYThkCiNkZWZpbmUgY2FwaV9jbWQyc3RyIF9zZXRfdmVyKGNhcGlfY21kMnN0
cikKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cyc3RyIHNtcF9kNDViNWViNQojZGVmaW5lIGNhcGlf
Y21zZzJzdHIgX3NldF92ZXIoY2FwaV9jbXNnMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3Nh
Z2Uyc3RyIHNtcF9hN2FiYzVlMwojZGVmaW5lIGNhcGlfbWVzc2FnZTJzdHIgX3NldF92ZXIoY2Fw
aV9tZXNzYWdlMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX2luZm8yc3RyIHNtcF80N2QzZmM1MQoj
ZGVmaW5lIGNhcGlfaW5mbzJzdHIgX3NldF92ZXIoY2FwaV9pbmZvMnN0cikKIyAzNyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NiX2VuYWJsZXIudmVyIiAxCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfZHJpdmVyIHNtcF9hODY2NGMyMgojZGVmaW5lIHJlZ2lzdGVy
X2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl
cl9kcml2ZXIgc21wXzllNTRhNWQ4CiNkZWZpbmUgdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIo
dW5yZWdpc3Rlcl9kcml2ZXIpCiMgMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9jZHJvbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfZGlzY19pbmZv
IHNtcF82YmMzZGJkNgojZGVmaW5lIGNkcm9tX2dldF9kaXNjX2luZm8gX3NldF92ZXIoY2Ryb21f
Z2V0X2Rpc2NfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfdHJhY2tfaW5mbyBzbXBfNmQ2
MDA4NjgKI2RlZmluZSBjZHJvbV9nZXRfdHJhY2tfaW5mbyBfc2V0X3ZlcihjZHJvbV9nZXRfdHJh
Y2tfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbmV4dF93cml0YWJsZSBzbXBfMzY5MTRi
YWUKI2RlZmluZSBjZHJvbV9nZXRfbmV4dF93cml0YWJsZSBfc2V0X3ZlcihjZHJvbV9nZXRfbmV4
dF93cml0YWJsZSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbGFzdF93cml0dGVuIHNtcF83ODI2
MzQ2NwojZGVmaW5lIGNkcm9tX2dldF9sYXN0X3dyaXR0ZW4gX3NldF92ZXIoY2Ryb21fZ2V0X2xh
c3Rfd3JpdHRlbikKI2RlZmluZSBfX3Zlcl9jZHJvbV9jb3VudF90cmFja3Mgc21wX2U3NDZhNTNi
CiNkZWZpbmUgY2Ryb21fY291bnRfdHJhY2tzIF9zZXRfdmVyKGNkcm9tX2NvdW50X3RyYWNrcykK
I2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jZHJvbSBzbXBfNWE2MTc0NGYKI2RlZmluZSByZWdpc3Rl
cl9jZHJvbSBfc2V0X3ZlcihyZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy
X2Nkcm9tIHNtcF83MDNkMzU3NQojZGVmaW5lIHVucmVnaXN0ZXJfY2Ryb20gX3NldF92ZXIodW5y
ZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9mb3BzIHNtcF81Y2ZjY2UwNQojZGVm
aW5lIGNkcm9tX2ZvcHMgX3NldF92ZXIoY2Ryb21fZm9wcykKI2RlZmluZSBfX3Zlcl9jZHJvbV9u
dW1iZXJfb2Zfc2xvdHMgc21wXzVkOGYzNjcyCiNkZWZpbmUgY2Ryb21fbnVtYmVyX29mX3Nsb3Rz
IF9zZXRfdmVyKGNkcm9tX251bWJlcl9vZl9zbG90cykKI2RlZmluZSBfX3Zlcl9jZHJvbV9zZWxl
Y3RfZGlzYyBzbXBfOGRjYmYyZmQKI2RlZmluZSBjZHJvbV9zZWxlY3RfZGlzYyBfc2V0X3Zlcihj
ZHJvbV9zZWxlY3RfZGlzYykKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbGVjdCBzbXBfY2Yx
MDIwMTgKI2RlZmluZSBjZHJvbV9tb2RlX3NlbGVjdCBfc2V0X3ZlcihjZHJvbV9tb2RlX3NlbGVj
dCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbnNlIHNtcF80NDFjOTI1MwojZGVmaW5lIGNk
cm9tX21vZGVfc2Vuc2UgX3NldF92ZXIoY2Ryb21fbW9kZV9zZW5zZSkKI2RlZmluZSBfX3Zlcl9p
bml0X2Nkcm9tX2NvbW1hbmQgc21wX2ZhY2RlMWI1CiNkZWZpbmUgaW5pdF9jZHJvbV9jb21tYW5k
IF9zZXRfdmVyKGluaXRfY2Ryb21fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9maW5kX2Rl
dmljZSBzbXBfNTdiYWY3ODgKI2RlZmluZSBjZHJvbV9maW5kX2RldmljZSBfc2V0X3ZlcihjZHJv
bV9maW5kX2RldmljZSkKIyAzOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2NoZWNrLnZlciIgMQojIDQwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvY2hpcHJlZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9tdGRfY2hp
cF9kcml2ZXIgc21wXzRjMmRmMTYwCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX2NoaXBfZHJpdmVyIF9z
ZXRfdmVyKHJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy
X210ZF9jaGlwX2RyaXZlciBzbXBfYzU1M2FlOGYKI2RlZmluZSB1bnJlZ2lzdGVyX210ZF9jaGlw
X2RyaXZlciBfc2V0X3Zlcih1bnJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zl
cl9kb19tYXBfcHJvYmUgc21wX2Y0ZmY0YzMzCiNkZWZpbmUgZG9fbWFwX3Byb2JlIF9zZXRfdmVy
KGRvX21hcF9wcm9iZSkKIyA0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2NtZGxpbmUudmVyIiAxCiNkZWZpbmUgX192ZXJfbWVtcGFyc2Ugc21wXzIzZjJkMzZm
CiNkZWZpbmUgbWVtcGFyc2UgX3NldF92ZXIobWVtcGFyc2UpCiNkZWZpbmUgX192ZXJfZ2V0X29w
dGlvbiBzbXBfYjBlMTA3ODEKI2RlZmluZSBnZXRfb3B0aW9uIF9zZXRfdmVyKGdldF9vcHRpb24p
CiNkZWZpbmUgX192ZXJfZ2V0X29wdGlvbnMgc21wXzBmYmZmOWI5CiNkZWZpbmUgZ2V0X29wdGlv
bnMgX3NldF92ZXIoZ2V0X29wdGlvbnMpCiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9jb20yMDAyMC52ZXIiIDEKIyA0MyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1f
YXN5bmNfcmVsZWFzZV92Y2Mgc21wXzNmNGVjYmJjCiNkZWZpbmUgYXRtX2FzeW5jX3JlbGVhc2Vf
dmNjIF9zZXRfdmVyKGF0bV9hc3luY19yZWxlYXNlX3ZjYykKIyA0NCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbXgudmVyIiAxCiNkZWZpbmUgX192ZXJfY29t
eF9yZWdpc3Rlcl9oYXJkd2FyZSBzbXBfZGIzYjEzNmYKI2RlZmluZSBjb214X3JlZ2lzdGVyX2hh
cmR3YXJlIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192ZXJfY29t
eF91bnJlZ2lzdGVyX2hhcmR3YXJlIHNtcF9lZDE2NmMyNQojZGVmaW5lIGNvbXhfdW5yZWdpc3Rl
cl9oYXJkd2FyZSBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192
ZXJfY29teF9yZWdpc3Rlcl9wcm90b2NvbCBzbXBfMjNiYzA3OTMKI2RlZmluZSBjb214X3JlZ2lz
dGVyX3Byb3RvY29sIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZpbmUgX192
ZXJfY29teF91bnJlZ2lzdGVyX3Byb3RvY29sIHNtcF84MTI5ZjAwMAojZGVmaW5lIGNvbXhfdW5y
ZWdpc3Rlcl9wcm90b2NvbCBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZp
bmUgX192ZXJfY29teF9kZWJ1Z19za2Igc21wXzJjMDQ0ZjhhCiNkZWZpbmUgY29teF9kZWJ1Z19z
a2IgX3NldF92ZXIoY29teF9kZWJ1Z19za2IpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1Z19ieXRl
cyBzbXBfZTg4YzNkNDMKI2RlZmluZSBjb214X2RlYnVnX2J5dGVzIF9zZXRfdmVyKGNvbXhfZGVi
dWdfYnl0ZXMpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1ZyBzbXBfYWE5MzJkZjUKI2RlZmluZSBj
b214X2RlYnVnIF9zZXRfdmVyKGNvbXhfZGVidWcpCiNkZWZpbmUgX192ZXJfY29teF9saW5ldXBf
ZnVuYyBzbXBfNDI4ZGI0N2MKI2RlZmluZSBjb214X2xpbmV1cF9mdW5jIF9zZXRfdmVyKGNvbXhf
bGluZXVwX2Z1bmMpCiNkZWZpbmUgX192ZXJfY29teF9zdGF0dXMgc21wX2UzNTZmMDIzCiNkZWZp
bmUgY29teF9zdGF0dXMgX3NldF92ZXIoY29teF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfY29teF9y
eCBzbXBfNjYyZjVhNjMKI2RlZmluZSBjb214X3J4IF9zZXRfdmVyKGNvbXhfcngpCiNkZWZpbmUg
X192ZXJfY29teF9zdHJjYXNlY21wIHNtcF84NjE4YzAwNwojZGVmaW5lIGNvbXhfc3RyY2FzZWNt
cCBfc2V0X3Zlcihjb214X3N0cmNhc2VjbXApCiNkZWZpbmUgX192ZXJfY29teF9yb290X2RpciBz
bXBfMmUxOWI2Y2MKI2RlZmluZSBjb214X3Jvb3RfZGlyIF9zZXRfdmVyKGNvbXhfcm9vdF9kaXIp
CiMgNDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jb25maWcu
dmVyIiAxCiNkZWZpbmUgX192ZXJfaGlzYXhfaW5pdF9wY21jaWEgc21wXzRhODVmMzE3CiNkZWZp
bmUgaGlzYXhfaW5pdF9wY21jaWEgX3NldF92ZXIoaGlzYXhfaW5pdF9wY21jaWEpCiNkZWZpbmUg
X192ZXJfSGlTYXhfY2xvc2VjYXJkIHNtcF9mYzI3MzAzYgojZGVmaW5lIEhpU2F4X2Nsb3NlY2Fy
ZCBfc2V0X3ZlcihIaVNheF9jbG9zZWNhcmQpCiMgNDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy9jb25zb2xlLnZlciIgMQojZGVmaW5lIF9fdmVyX2NvbG9yX3Rh
YmxlIHNtcF9mNmJiNDcyOQojZGVmaW5lIGNvbG9yX3RhYmxlIF9zZXRfdmVyKGNvbG9yX3RhYmxl
KQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfcmVkIHNtcF8zMTQ3ODU3ZAojZGVmaW5lIGRlZmF1bHRf
cmVkIF9zZXRfdmVyKGRlZmF1bHRfcmVkKQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfZ3JuIHNtcF8w
NmZlM2IxNAojZGVmaW5lIGRlZmF1bHRfZ3JuIF9zZXRfdmVyKGRlZmF1bHRfZ3JuKQojZGVmaW5l
IF9fdmVyX2RlZmF1bHRfYmx1IHNtcF8xMGVlMjBiYgojZGVmaW5lIGRlZmF1bHRfYmx1IF9zZXRf
dmVyKGRlZmF1bHRfYmx1KQojZGVmaW5lIF9fdmVyX3ZpZGVvX2ZvbnRfaGVpZ2h0IHNtcF82NWUy
NDE5OAojZGVmaW5lIHZpZGVvX2ZvbnRfaGVpZ2h0IF9zZXRfdmVyKHZpZGVvX2ZvbnRfaGVpZ2h0
KQojZGVmaW5lIF9fdmVyX3ZpZGVvX3NjYW5fbGluZXMgc21wX2FmYWY1OWRjCiNkZWZpbmUgdmlk
ZW9fc2Nhbl9saW5lcyBfc2V0X3Zlcih2aWRlb19zY2FuX2xpbmVzKQojZGVmaW5lIF9fdmVyX3Zj
X3Jlc2l6ZSBzbXBfMTJlN2VkZmUKI2RlZmluZSB2Y19yZXNpemUgX3NldF92ZXIodmNfcmVzaXpl
KQojZGVmaW5lIF9fdmVyX2ZnX2NvbnNvbGUgc21wXzRlNmU4ZWE3CiNkZWZpbmUgZmdfY29uc29s
ZSBfc2V0X3ZlcihmZ19jb25zb2xlKQojZGVmaW5lIF9fdmVyX2NvbnNvbGVfYmxhbmtfaG9vayBz
bXBfZDI1ZDRmNzQKI2RlZmluZSBjb25zb2xlX2JsYW5rX2hvb2sgX3NldF92ZXIoY29uc29sZV9i
bGFua19ob29rKQojZGVmaW5lIF9fdmVyX3Z0X2NvbnMgc21wXzkwZjE2NTRiCiNkZWZpbmUgdnRf
Y29ucyBfc2V0X3Zlcih2dF9jb25zKQojZGVmaW5lIF9fdmVyX3Rha2Vfb3Zlcl9jb25zb2xlIHNt
cF9mMjk4MzliOQojZGVmaW5lIHRha2Vfb3Zlcl9jb25zb2xlIF9zZXRfdmVyKHRha2Vfb3Zlcl9j
b25zb2xlKQojZGVmaW5lIF9fdmVyX2dpdmVfdXBfY29uc29sZSBzbXBfZDdlMTI1ZTkKI2RlZmlu
ZSBnaXZlX3VwX2NvbnNvbGUgX3NldF92ZXIoZ2l2ZV91cF9jb25zb2xlKQojIDQ3ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvY29udGV4dC52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9zY2hlZHVsZV90YXNrIHNtcF8yZDZjM2QwNAojZGVmaW5lIHNjaGVkdWxlX3Rhc2sg
X3NldF92ZXIoc2NoZWR1bGVfdGFzaykKI2RlZmluZSBfX3Zlcl9mbHVzaF9zY2hlZHVsZWRfdGFz
a3Mgc21wXzdjMzI0MmI0CiNkZWZpbmUgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzIF9zZXRfdmVyKGZs
dXNoX3NjaGVkdWxlZF90YXNrcykKIyA0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R1bGVzL2NwaWEudmVyIiAxCiNkZWZpbmUgX192ZXJfY3BpYV9yZWdpc3Rlcl9jYW1l
cmEgc21wXzFlZjMzNzg4CiNkZWZpbmUgY3BpYV9yZWdpc3Rlcl9jYW1lcmEgX3NldF92ZXIoY3Bp
YV9yZWdpc3Rlcl9jYW1lcmEpCiNkZWZpbmUgX192ZXJfY3BpYV91bnJlZ2lzdGVyX2NhbWVyYSBz
bXBfNGI5NzUwZGQKI2RlZmluZSBjcGlhX3VucmVnaXN0ZXJfY2FtZXJhIF9zZXRfdmVyKGNwaWFf
dW5yZWdpc3Rlcl9jYW1lcmEpCiMgNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY21jaWFfbG9va3VwX2J1cyBzbXBf
NzRkZDVjMGMKI2RlZmluZSBwY21jaWFfbG9va3VwX2J1cyBfc2V0X3ZlcihwY21jaWFfbG9va3Vw
X2J1cykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYWNjZXNzX2NvbmZpZ3VyYXRpb25fcmVnaXN0ZXIg
c21wXzlkZjhmYjkzCiNkZWZpbmUgcGNtY2lhX2FjY2Vzc19jb25maWd1cmF0aW9uX3JlZ2lzdGVy
IF9zZXRfdmVyKHBjbWNpYV9hY2Nlc3NfY29uZmlndXJhdGlvbl9yZWdpc3RlcikKI2RlZmluZSBf
X3Zlcl9wY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8gc21wX2E0NGRkNGQxCiNkZWZpbmUgcGNt
Y2lhX2FkanVzdF9yZXNvdXJjZV9pbmZvIF9zZXRfdmVyKHBjbWNpYV9hZGp1c3RfcmVzb3VyY2Vf
aW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYmluZF9kZXZpY2Ugc21wXzk4MGFjMTFjCiNkZWZp
bmUgcGNtY2lhX2JpbmRfZGV2aWNlIF9zZXRfdmVyKHBjbWNpYV9iaW5kX2RldmljZSkKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfYmluZF9tdGQgc21wXzQ4MzczZGE3CiNkZWZpbmUgcGNtY2lhX2JpbmRf
bXRkIF9zZXRfdmVyKHBjbWNpYV9iaW5kX210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY2hlY2tf
ZXJhc2VfcXVldWUgc21wX2U5ODZiMjY3CiNkZWZpbmUgcGNtY2lhX2NoZWNrX2VyYXNlX3F1ZXVl
IF9zZXRfdmVyKHBjbWNpYV9jaGVja19lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
Y2xvc2VfbWVtb3J5IHNtcF81NmU4MTVlNgojZGVmaW5lIHBjbWNpYV9jbG9zZV9tZW1vcnkgX3Nl
dF92ZXIocGNtY2lhX2Nsb3NlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY29weV9tZW1v
cnkgc21wXzc4Zjk1YWJiCiNkZWZpbmUgcGNtY2lhX2NvcHlfbWVtb3J5IF9zZXRfdmVyKHBjbWNp
YV9jb3B5X21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9jbGllbnQgc21w
X2Y4N2I2OTVhCiNkZWZpbmUgcGNtY2lhX2RlcmVnaXN0ZXJfY2xpZW50IF9zZXRfdmVyKHBjbWNp
YV9kZXJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9lcmFz
ZV9xdWV1ZSBzbXBfNGMzYjA4YWIKI2RlZmluZSBwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1
ZSBfc2V0X3ZlcihwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9w
Y21jaWFfZWplY3RfY2FyZCBzbXBfZDJkMTVmYTMKI2RlZmluZSBwY21jaWFfZWplY3RfY2FyZCBf
c2V0X3ZlcihwY21jaWFfZWplY3RfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0
X2NsaWVudCBzbXBfYTFjYzY4ZmEKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCBfc2V0
X3ZlcihwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2Nh
cmRfc2VydmljZXNfaW5mbyBzbXBfM2MzOWM4NzEKI2RlZmluZSBwY21jaWFfZ2V0X2NhcmRfc2Vy
dmljZXNfaW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NhcmRfc2VydmljZXNfaW5mbykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBzbXBfOWQ2YTFkZmEKI2RlZmlu
ZSBwY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NvbmZp
Z3VyYXRpb25faW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X21lbV9wYWdlIHNtcF80OWJh
NmUyOAojZGVmaW5lIHBjbWNpYV9nZXRfbWVtX3BhZ2UgX3NldF92ZXIocGNtY2lhX2dldF9tZW1f
cGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfY2xpZW50IHNtcF85ODg3MDcwYgoj
ZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9jbGllbnQgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0X2Ns
aWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBzbXBfMThkMjU5YTAK
I2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBfc2V0X3ZlcihwY21jaWFfZ2V0X2ZpcnN0
X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3R1cGxlIHNtcF85OWMzY2E0
NQojZGVmaW5lIHBjbWNpYV9nZXRfZmlyc3RfdHVwbGUgX3NldF92ZXIocGNtY2lhX2dldF9maXJz
dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBzbXBfNDk5NzUy
MzIKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBfc2V0X3ZlcihwY21jaWFfZ2V0X2Zp
cnN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfcmVnaW9uIHNtcF9hZDZm
M2VmMQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9yZWdpb24gX3NldF92ZXIocGNtY2lhX2dldF9u
ZXh0X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfdHVwbGUgc21wXzhlOGZm
MWFmCiNkZWZpbmUgcGNtY2lhX2dldF9uZXh0X3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9nZXRfbmV4
dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfd2luZG93IHNtcF81ZmVhMTUx
NQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF93aW5kb3cgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0
X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X3N0YXR1cyBzbXBfMzczMzQzNDIKI2Rl
ZmluZSBwY21jaWFfZ2V0X3N0YXR1cyBfc2V0X3ZlcihwY21jaWFfZ2V0X3N0YXR1cykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfZ2V0X3R1cGxlX2RhdGEgc21wX2U2YTA1OWNkCiNkZWZpbmUgcGNtY2lh
X2dldF90dXBsZV9kYXRhIF9zZXRfdmVyKHBjbWNpYV9nZXRfdHVwbGVfZGF0YSkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfaW5zZXJ0X2NhcmQgc21wXzQzMTE0YmViCiNkZWZpbmUgcGNtY2lhX2luc2Vy
dF9jYXJkIF9zZXRfdmVyKHBjbWNpYV9pbnNlcnRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
bWFwX21lbV9wYWdlIHNtcF9jNDhkODZkMwojZGVmaW5lIHBjbWNpYV9tYXBfbWVtX3BhZ2UgX3Nl
dF92ZXIocGNtY2lhX21hcF9tZW1fcGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfbW9kaWZ5X2Nv
bmZpZ3VyYXRpb24gc21wXzhjMGRmZTMzCiNkZWZpbmUgcGNtY2lhX21vZGlmeV9jb25maWd1cmF0
aW9uIF9zZXRfdmVyKHBjbWNpYV9tb2RpZnlfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9w
Y21jaWFfbW9kaWZ5X3dpbmRvdyBzbXBfOGFlOWUxYzQKI2RlZmluZSBwY21jaWFfbW9kaWZ5X3dp
bmRvdyBfc2V0X3ZlcihwY21jaWFfbW9kaWZ5X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFf
b3Blbl9tZW1vcnkgc21wX2I3Yjk1NzY3CiNkZWZpbmUgcGNtY2lhX29wZW5fbWVtb3J5IF9zZXRf
dmVyKHBjbWNpYV9vcGVuX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcGFyc2VfdHVwbGUg
c21wXzc1YzgxNjQzCiNkZWZpbmUgcGNtY2lhX3BhcnNlX3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9w
YXJzZV90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVhZF9tZW1vcnkgc21wXzMyYzljZmY0
CiNkZWZpbmUgcGNtY2lhX3JlYWRfbWVtb3J5IF9zZXRfdmVyKHBjbWNpYV9yZWFkX21lbW9yeSkK
I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfY2xpZW50IHNtcF9kNDYzOTkzYwojZGVmaW5l
IHBjbWNpYV9yZWdpc3Rlcl9jbGllbnQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX2NsaWVudCkK
I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfZXJhc2VfcXVldWUgc21wXzM3MDcyZmQzCiNk
ZWZpbmUgcGNtY2lhX3JlZ2lzdGVyX2VyYXNlX3F1ZXVlIF9zZXRfdmVyKHBjbWNpYV9yZWdpc3Rl
cl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfbXRkIHNtcF9iYzE2
OTJmMgojZGVmaW5lIHBjbWNpYV9yZWdpc3Rlcl9tdGQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVy
X210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uIHNtcF81NzM4
NTRmOQojZGVmaW5lIHBjbWNpYV9yZWxlYXNlX2NvbmZpZ3VyYXRpb24gX3NldF92ZXIocGNtY2lh
X3JlbGVhc2VfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pbyBz
bXBfOTY4ZWI2YzAKI2RlZmluZSBwY21jaWFfcmVsZWFzZV9pbyBfc2V0X3ZlcihwY21jaWFfcmVs
ZWFzZV9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pcnEgc21wXzU4YTEzYjc0CiNk
ZWZpbmUgcGNtY2lhX3JlbGVhc2VfaXJxIF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX2lycSkKI2Rl
ZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV93aW5kb3cgc21wXzY4NjU1NTI3CiNkZWZpbmUgcGNt
Y2lhX3JlbGVhc2Vfd2luZG93IF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX3dpbmRvdykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfcmVwbGFjZV9jaXMgc21wX2QzMjMzMzZjCiNkZWZpbmUgcGNtY2lhX3Jl
cGxhY2VfY2lzIF9zZXRfdmVyKHBjbWNpYV9yZXBsYWNlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21j
aWFfcmVwb3J0X2Vycm9yIHNtcF8xOTdmYzA0MgojZGVmaW5lIHBjbWNpYV9yZXBvcnRfZXJyb3Ig
X3NldF92ZXIocGNtY2lhX3JlcG9ydF9lcnJvcikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVz
dF9jb25maWd1cmF0aW9uIHNtcF82ZTg2NDZhNwojZGVmaW5lIHBjbWNpYV9yZXF1ZXN0X2NvbmZp
Z3VyYXRpb24gX3NldF92ZXIocGNtY2lhX3JlcXVlc3RfY29uZmlndXJhdGlvbikKI2RlZmluZSBf
X3Zlcl9wY21jaWFfcmVxdWVzdF9pbyBzbXBfYTc2M2Y1Y2MKI2RlZmluZSBwY21jaWFfcmVxdWVz
dF9pbyBfc2V0X3ZlcihwY21jaWFfcmVxdWVzdF9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVx
dWVzdF9pcnEgc21wXzlkM2RlMGM2CiNkZWZpbmUgcGNtY2lhX3JlcXVlc3RfaXJxIF9zZXRfdmVy
KHBjbWNpYV9yZXF1ZXN0X2lycSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVzdF93aW5kb3cg
c21wXzcyMjcxNWRmCiNkZWZpbmUgcGNtY2lhX3JlcXVlc3Rfd2luZG93IF9zZXRfdmVyKHBjbWNp
YV9yZXF1ZXN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzZXRfY2FyZCBzbXBfNGJj
OGRlZjUKI2RlZmluZSBwY21jaWFfcmVzZXRfY2FyZCBfc2V0X3ZlcihwY21jaWFfcmVzZXRfY2Fy
ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzdW1lX2NhcmQgc21wX2M1MTI1NGFkCiNkZWZpbmUg
cGNtY2lhX3Jlc3VtZV9jYXJkIF9zZXRfdmVyKHBjbWNpYV9yZXN1bWVfY2FyZCkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfc2V0X2V2ZW50X21hc2sgc21wX2I4OWE1MDMxCiNkZWZpbmUgcGNtY2lhX3Nl
dF9ldmVudF9tYXNrIF9zZXRfdmVyKHBjbWNpYV9zZXRfZXZlbnRfbWFzaykKI2RlZmluZSBfX3Zl
cl9wY21jaWFfc3VzcGVuZF9jYXJkIHNtcF8xZTc5NDZkYgojZGVmaW5lIHBjbWNpYV9zdXNwZW5k
X2NhcmQgX3NldF92ZXIocGNtY2lhX3N1c3BlbmRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
dmFsaWRhdGVfY2lzIHNtcF9lZjUxMTgxNwojZGVmaW5lIHBjbWNpYV92YWxpZGF0ZV9jaXMgX3Nl
dF92ZXIocGNtY2lhX3ZhbGlkYXRlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21jaWFfd3JpdGVfbWVt
b3J5IHNtcF9kZDZmNmZhNgojZGVmaW5lIHBjbWNpYV93cml0ZV9tZW1vcnkgX3NldF92ZXIocGNt
Y2lhX3dyaXRlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9kZWFkX3NvY2tldCBzbXBfY2Y5N2YzYmQK
I2RlZmluZSBkZWFkX3NvY2tldCBfc2V0X3ZlcihkZWFkX3NvY2tldCkKI2RlZmluZSBfX3Zlcl9y
ZWdpc3Rlcl9zc19lbnRyeSBzbXBfYTk4MjkyZGUKI2RlZmluZSByZWdpc3Rlcl9zc19lbnRyeSBf
c2V0X3ZlcihyZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NzX2Vu
dHJ5IHNtcF8zZDRmYzEzNQojZGVmaW5lIHVucmVnaXN0ZXJfc3NfZW50cnkgX3NldF92ZXIodW5y
ZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl9DYXJkU2VydmljZXMgc21wX2U0ZWVmMGE0
CiNkZWZpbmUgQ2FyZFNlcnZpY2VzIF9zZXRfdmVyKENhcmRTZXJ2aWNlcykKI2RlZmluZSBfX3Zl
cl9NVERIZWxwZXJFbnRyeSBzbXBfOTIxNTU1ODAKI2RlZmluZSBNVERIZWxwZXJFbnRyeSBfc2V0
X3ZlcihNVERIZWxwZXJFbnRyeSkKI2RlZmluZSBfX3Zlcl9wcm9jX3BjY2FyZCBzbXBfNmI4ZDMx
ZTcKI2RlZmluZSBwcm9jX3BjY2FyZCBfc2V0X3Zlcihwcm9jX3BjY2FyZCkKI2RlZmluZSBfX3Zl
cl9wY21jaWFfcmVnaXN0ZXJfc29ja2V0IHNtcF9mMTJjMjI3YwojZGVmaW5lIHBjbWNpYV9yZWdp
c3Rlcl9zb2NrZXQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX3NvY2tldCkKI2RlZmluZSBfX3Zl
cl9wY21jaWFfdW5yZWdpc3Rlcl9zb2NrZXQgc21wXzZmNzA5ZDU2CiNkZWZpbmUgcGNtY2lhX3Vu
cmVnaXN0ZXJfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCkKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfc3VzcGVuZF9zb2NrZXQgc21wXzkzYTEyMjMxCiNkZWZpbmUgcGNtY2lh
X3N1c3BlbmRfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV9zdXNwZW5kX3NvY2tldCkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfcmVzdW1lX3NvY2tldCBzbXBfZGU5Yjc2MTMKI2RlZmluZSBwY21jaWFfcmVz
dW1lX3NvY2tldCBfc2V0X3ZlcihwY21jaWFfcmVzdW1lX3NvY2tldCkKIyA1MCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2N5YmVyMjAwMGZiLnZlciIgMQojZGVm
aW5lIF9fdmVyX2N5YmVyMjAwMGZiX2F0dGFjaCBzbXBfYjdmOGNhZmQKI2RlZmluZSBjeWJlcjIw
MDBmYl9hdHRhY2ggX3NldF92ZXIoY3liZXIyMDAwZmJfYXR0YWNoKQojZGVmaW5lIF9fdmVyX2N5
YmVyMjAwMGZiX2RldGFjaCBzbXBfMGNjM2VkZTUKI2RlZmluZSBjeWJlcjIwMDBmYl9kZXRhY2gg
X3NldF92ZXIoY3liZXIyMDAwZmJfZGV0YWNoKQojIDUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvY3ljeF9kcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfY3ljeF9z
ZXR1cCBzbXBfMWJiZjMzNTkKI2RlZmluZSBjeWN4X3NldHVwIF9zZXRfdmVyKGN5Y3hfc2V0dXAp
CiNkZWZpbmUgX192ZXJfY3ljeF9kb3duIHNtcF9lOTA2MzI3ZQojZGVmaW5lIGN5Y3hfZG93biBf
c2V0X3ZlcihjeWN4X2Rvd24pCiNkZWZpbmUgX192ZXJfY3ljeF9pbnRlbiBzbXBfNDFjYWU3YjQK
I2RlZmluZSBjeWN4X2ludGVuIF9zZXRfdmVyKGN5Y3hfaW50ZW4pCiNkZWZpbmUgX192ZXJfY3lj
eF9pbnRyIHNtcF9lOWQ2MjcwMAojZGVmaW5lIGN5Y3hfaW50ciBfc2V0X3ZlcihjeWN4X2ludHIp
CiNkZWZpbmUgX192ZXJfY3ljeF9leGVjIHNtcF9hODZjMThiZAojZGVmaW5lIGN5Y3hfZXhlYyBf
c2V0X3ZlcihjeWN4X2V4ZWMpCiNkZWZpbmUgX192ZXJfY3ljeF9wZWVrIHNtcF8wZDU5NWIzZgoj
ZGVmaW5lIGN5Y3hfcGVlayBfc2V0X3ZlcihjeWN4X3BlZWspCiNkZWZpbmUgX192ZXJfY3ljeF9w
b2tlIHNtcF83NzQ0MWZkZQojZGVmaW5lIGN5Y3hfcG9rZSBfc2V0X3ZlcihjeWN4X3Bva2UpCiMg
NTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9EQUM5NjAudmVy
IiAxCiNkZWZpbmUgX192ZXJfREFDOTYwX0tlcm5lbElPQ1RMIHNtcF81MzAxMTQ0OQojZGVmaW5l
IERBQzk2MF9LZXJuZWxJT0NUTCBfc2V0X3ZlcihEQUM5NjBfS2VybmVsSU9DVEwpCiMgNTMgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9kYnJpLnZlciIgMQojIDU0
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZGNhY2hlLnZlciIg
MQojZGVmaW5lIF9fdmVyX2JoX2NhY2hlcCBzbXBfZGNjMGJiMzcKI2RlZmluZSBiaF9jYWNoZXAg
X3NldF92ZXIoYmhfY2FjaGVwKQojIDU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZGRwLnZlciIgMQojIDU2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvRGl2YXNfbW9kLnZlciIgMQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZG1hc291bmRfY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9kbWFzb3VuZCBzbXBfZGFhZTBkYWUKI2RlZmluZSBkbWFzb3VuZCBfc2V0X3ZlcihkbWFzb3Vu
ZCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9pbml0IHNtcF80N2VkZGUyNQojZGVmaW5lIGRtYXNv
dW5kX2luaXQgX3NldF92ZXIoZG1hc291bmRfaW5pdCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF93
cml0ZV9zcSBzbXBfMWZkOTg2MmEKI2RlZmluZSBkbWFzb3VuZF93cml0ZV9zcSBfc2V0X3Zlcihk
bWFzb3VuZF93cml0ZV9zcSkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9jYXRjaFJhZGl1cyBzbXBf
NGI5ZjU3NzAKI2RlZmluZSBkbWFzb3VuZF9jYXRjaFJhZGl1cyBfc2V0X3ZlcihkbWFzb3VuZF9j
YXRjaFJhZGl1cykKIyA1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2RzLnZlciIgMQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgc21wXzcw
MmI4OTUzCiNkZWZpbmUgcmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9w
Y2NhcmRfZHJpdmVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBzbXBf
ZGIzNDhjZDIKI2RlZmluZSB1bnJlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgX3NldF92ZXIodW5yZWdp
c3Rlcl9wY2NhcmRfZHJpdmVyKQojIDU5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZWljb25fbW9kLnZlciIgMQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYXRf
bmV3X2RpciBzbXBfODlhNThiYWUKI2RlZmluZSBmYXRfbmV3X2RpciBfc2V0X3ZlcihmYXRfbmV3
X2RpcikKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2Jsb2NrIHNtcF81ZDM5MTAxMAojZGVmaW5lIGZh
dF9nZXRfYmxvY2sgX3NldF92ZXIoZmF0X2dldF9ibG9jaykKI2RlZmluZSBfX3Zlcl9mYXRfY2xl
YXJfaW5vZGUgc21wXzNhOTg3MmE3CiNkZWZpbmUgZmF0X2NsZWFyX2lub2RlIF9zZXRfdmVyKGZh
dF9jbGVhcl9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfZGF0ZV91bml4MmRvcyBzbXBfODNmYjM2
YTEKI2RlZmluZSBmYXRfZGF0ZV91bml4MmRvcyBfc2V0X3ZlcihmYXRfZGF0ZV91bml4MmRvcykK
I2RlZmluZSBfX3Zlcl9mYXRfZGVsZXRlX2lub2RlIHNtcF9mM2UzMmFlNwojZGVmaW5lIGZhdF9k
ZWxldGVfaW5vZGUgX3NldF92ZXIoZmF0X2RlbGV0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRf
X2dldF9lbnRyeSBzbXBfMTc1OTY5MGMKI2RlZmluZSBmYXRfX2dldF9lbnRyeSBfc2V0X3Zlcihm
YXRfX2dldF9lbnRyeSkKI2RlZmluZSBfX3Zlcl9mYXRfbWFya19idWZmZXJfZGlydHkgc21wXzIw
YjQ1YjAxCiNkZWZpbmUgZmF0X21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKGZhdF9tYXJrX2J1
ZmZlcl9kaXJ0eSkKI2RlZmluZSBfX3Zlcl9mYXRfbm90aWZ5X2NoYW5nZSBzbXBfYjJkYTdkYzIK
I2RlZmluZSBmYXRfbm90aWZ5X2NoYW5nZSBfc2V0X3ZlcihmYXRfbm90aWZ5X2NoYW5nZSkKI2Rl
ZmluZSBfX3Zlcl9mYXRfcGFyZW50X2lubyBzbXBfM2IzY2MzOGIKI2RlZmluZSBmYXRfcGFyZW50
X2lubyBfc2V0X3ZlcihmYXRfcGFyZW50X2lubykKI2RlZmluZSBfX3Zlcl9mYXRfcHV0X3N1cGVy
IHNtcF82MTZkM2Q2NgojZGVmaW5lIGZhdF9wdXRfc3VwZXIgX3NldF92ZXIoZmF0X3B1dF9zdXBl
cikKI2RlZmluZSBfX3Zlcl9mYXRfYXR0YWNoIHNtcF8zNDllMTgyOQojZGVmaW5lIGZhdF9hdHRh
Y2ggX3NldF92ZXIoZmF0X2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9mYXRfZGV0YWNoIHNtcF9kZWE3
Nzg2MQojZGVmaW5lIGZhdF9kZXRhY2ggX3NldF92ZXIoZmF0X2RldGFjaCkKI2RlZmluZSBfX3Zl
cl9mYXRfYnVpbGRfaW5vZGUgc21wX2MyYjg1YzRjCiNkZWZpbmUgZmF0X2J1aWxkX2lub2RlIF9z
ZXRfdmVyKGZhdF9idWlsZF9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfcmVhZF9zdXBlciBzbXBf
YTBmMWMxYzYKI2RlZmluZSBmYXRfcmVhZF9zdXBlciBfc2V0X3ZlcihmYXRfcmVhZF9zdXBlcikK
I2RlZmluZSBfX3Zlcl9mYXRfc2VhcmNoX2xvbmcgc21wX2RiNjlhMzlhCiNkZWZpbmUgZmF0X3Nl
YXJjaF9sb25nIF9zZXRfdmVyKGZhdF9zZWFyY2hfbG9uZykKI2RlZmluZSBfX3Zlcl9mYXRfcmVh
ZGRpciBzbXBfYmZmNWMyNGYKI2RlZmluZSBmYXRfcmVhZGRpciBfc2V0X3ZlcihmYXRfcmVhZGRp
cikKI2RlZmluZSBfX3Zlcl9mYXRfc2NhbiBzbXBfNmY2MDNjOTQKI2RlZmluZSBmYXRfc2NhbiBf
c2V0X3ZlcihmYXRfc2NhbikKI2RlZmluZSBfX3Zlcl9mYXRfc3RhdGZzIHNtcF83MTQ0NWFjNAoj
ZGVmaW5lIGZhdF9zdGF0ZnMgX3NldF92ZXIoZmF0X3N0YXRmcykKI2RlZmluZSBfX3Zlcl9mYXRf
d3JpdGVfaW5vZGUgc21wXzA4ZTRkMjFjCiNkZWZpbmUgZmF0X3dyaXRlX2lub2RlIF9zZXRfdmVy
KGZhdF93cml0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jdmZfZm9ybWF0IHNtcF85
YmM5ZTAxZQojZGVmaW5lIHJlZ2lzdGVyX2N2Zl9mb3JtYXQgX3NldF92ZXIocmVnaXN0ZXJfY3Zm
X2Zvcm1hdCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2N2Zl9mb3JtYXQgc21wXzEwYzBiNjI1
CiNkZWZpbmUgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0IF9zZXRfdmVyKHVucmVnaXN0ZXJfY3ZmX2Zv
cm1hdCkKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2NsdXN0ZXIgc21wX2FjMGZkNDlhCiNkZWZpbmUg
ZmF0X2dldF9jbHVzdGVyIF9zZXRfdmVyKGZhdF9nZXRfY2x1c3RlcikKI2RlZmluZSBfX3Zlcl9m
YXRfZGlyX2lvY3RsIHNtcF8xMGM4MDlhYgojZGVmaW5lIGZhdF9kaXJfaW9jdGwgX3NldF92ZXIo
ZmF0X2Rpcl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9mYXRfYWRkX2VudHJpZXMgc21wXzUxM2IxOTc0
CiNkZWZpbmUgZmF0X2FkZF9lbnRyaWVzIF9zZXRfdmVyKGZhdF9hZGRfZW50cmllcykKI2RlZmlu
ZSBfX3Zlcl9mYXRfZGlyX2VtcHR5IHNtcF9hMzEyMWIwOQojZGVmaW5lIGZhdF9kaXJfZW1wdHkg
X3NldF92ZXIoZmF0X2Rpcl9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mYXRfdHJ1bmNhdGUgc21wXzhk
MzQxY2Q5CiNkZWZpbmUgZmF0X3RydW5jYXRlIF9zZXRfdmVyKGZhdF90cnVuY2F0ZSkKI2RlZmlu
ZSBfX3Zlcl9mYXRfYnJlbHNlIHNtcF9hNmQyYTBjMAojZGVmaW5lIGZhdF9icmVsc2UgX3NldF92
ZXIoZmF0X2JyZWxzZSkKIyA2MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2ZiY21hcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYl9hbGxvY19jbWFwIHNtcF8wN2E4
OTBjOAojZGVmaW5lIGZiX2FsbG9jX2NtYXAgX3NldF92ZXIoZmJfYWxsb2NfY21hcCkKI2RlZmlu
ZSBfX3Zlcl9mYl9jb3B5X2NtYXAgc21wXzNkNjgyNjZjCiNkZWZpbmUgZmJfY29weV9jbWFwIF9z
ZXRfdmVyKGZiX2NvcHlfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9nZXRfY21hcCBzbXBfM2U2OWRl
OGYKI2RlZmluZSBmYl9nZXRfY21hcCBfc2V0X3ZlcihmYl9nZXRfY21hcCkKI2RlZmluZSBfX3Zl
cl9mYl9zZXRfY21hcCBzbXBfODlmZjZkNjYKI2RlZmluZSBmYl9zZXRfY21hcCBfc2V0X3Zlcihm
Yl9zZXRfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9kZWZhdWx0X2NtYXAgc21wX2E1NjU1N2VhCiNk
ZWZpbmUgZmJfZGVmYXVsdF9jbWFwIF9zZXRfdmVyKGZiX2RlZmF1bHRfY21hcCkKI2RlZmluZSBf
X3Zlcl9mYl9pbnZlcnRfY21hcHMgc21wX2YxOTVjNjgyCiNkZWZpbmUgZmJfaW52ZXJ0X2NtYXBz
IF9zZXRfdmVyKGZiX2ludmVydF9jbWFwcykKIyA2MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWFmYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9h
ZmIgc21wXzRkYzU0Y2U0CiNkZWZpbmUgZmJjb25fYWZiIF9zZXRfdmVyKGZiY29uX2FmYikKI2Rl
ZmluZSBfX3Zlcl9mYmNvbl9hZmJfc2V0dXAgc21wX2VkMjk2MzI5CiNkZWZpbmUgZmJjb25fYWZi
X3NldHVwIF9zZXRfdmVyKGZiY29uX2FmYl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJf
Ym1vdmUgc21wXzY2ZDViY2JhCiNkZWZpbmUgZmJjb25fYWZiX2Jtb3ZlIF9zZXRfdmVyKGZiY29u
X2FmYl9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfY2xlYXIgc21wXzZkZTdmOGQwCiNk
ZWZpbmUgZmJjb25fYWZiX2NsZWFyIF9zZXRfdmVyKGZiY29uX2FmYl9jbGVhcikKI2RlZmluZSBf
X3Zlcl9mYmNvbl9hZmJfcHV0YyBzbXBfNTBkMzk1NjMKI2RlZmluZSBmYmNvbl9hZmJfcHV0YyBf
c2V0X3ZlcihmYmNvbl9hZmJfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcHV0Y3Mgc21w
Xzc3ZWY0ZjU1CiNkZWZpbmUgZmJjb25fYWZiX3B1dGNzIF9zZXRfdmVyKGZiY29uX2FmYl9wdXRj
cykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcmV2YyBzbXBfNGJhNmZmMDMKI2RlZmluZSBmYmNv
bl9hZmJfcmV2YyBfc2V0X3ZlcihmYmNvbl9hZmJfcmV2YykKIyA2MyAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWNmYjE2LnZlciIgMQojZGVmaW5lIF9f
dmVyX2ZiY29uX2NmYjE2IHNtcF9lNmZmYmQ5OAojZGVmaW5lIGZiY29uX2NmYjE2IF9zZXRfdmVy
KGZiY29uX2NmYjE2KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3NldHVwIHNtcF85ZmFkZTZl
MwojZGVmaW5lIGZiY29uX2NmYjE2X3NldHVwIF9zZXRfdmVyKGZiY29uX2NmYjE2X3NldHVwKQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X2Jtb3ZlIHNtcF84ZjQ3ZWVhMgojZGVmaW5lIGZiY29u
X2NmYjE2X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2NmYjE2X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjE2X2NsZWFyIHNtcF83ODIxZjk0NwojZGVmaW5lIGZiY29uX2NmYjE2X2NsZWFyIF9z
ZXRfdmVyKGZiY29uX2NmYjE2X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGMg
c21wX2I5NDFjNzdiCiNkZWZpbmUgZmJjb25fY2ZiMTZfcHV0YyBfc2V0X3ZlcihmYmNvbl9jZmIx
Nl9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGNzIHNtcF84NzUwNmIzOQojZGVm
aW5lIGZiY29uX2NmYjE2X3B1dGNzIF9zZXRfdmVyKGZiY29uX2NmYjE2X3B1dGNzKQojZGVmaW5l
IF9fdmVyX2ZiY29uX2NmYjE2X3JldmMgc21wX2RkNDA4ZTFjCiNkZWZpbmUgZmJjb25fY2ZiMTZf
cmV2YyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9yZXZjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2
X2NsZWFyX21hcmdpbnMgc21wXzA2NWI1NWZlCiNkZWZpbmUgZmJjb25fY2ZiMTZfY2xlYXJfbWFy
Z2lucyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9jbGVhcl9tYXJnaW5zKQojIDY0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2ZiMjQudmVyIiAxCiNkZWZp
bmUgX192ZXJfZmJjb25fY2ZiMjQgc21wX2Q2OGY2MTQzCiNkZWZpbmUgZmJjb25fY2ZiMjQgX3Nl
dF92ZXIoZmJjb25fY2ZiMjQpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfc2V0dXAgc21wX2Qz
MDQzNTk2CiNkZWZpbmUgZmJjb25fY2ZiMjRfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMjRfc2V0
dXApCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfYm1vdmUgc21wX2RiNmZlNGQ0CiNkZWZpbmUg
ZmJjb25fY2ZiMjRfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiMjRfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25fY2ZiMjRfY2xlYXIgc21wX2UzZGNjMzAwCiNkZWZpbmUgZmJjb25fY2ZiMjRfY2xl
YXIgX3NldF92ZXIoZmJjb25fY2ZiMjRfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRf
cHV0YyBzbXBfZWQ2OWNkMGQKI2RlZmluZSBmYmNvbl9jZmIyNF9wdXRjIF9zZXRfdmVyKGZiY29u
X2NmYjI0X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcHV0Y3Mgc21wX2NkODE3M2Ez
CiNkZWZpbmUgZmJjb25fY2ZiMjRfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMjRfcHV0Y3MpCiNk
ZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcmV2YyBzbXBfZDAyNmE3ZjIKI2RlZmluZSBmYmNvbl9j
ZmIyNF9yZXZjIF9zZXRfdmVyKGZiY29uX2NmYjI0X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25f
Y2ZiMjRfY2xlYXJfbWFyZ2lucyBzbXBfNzEzOThiNzIKI2RlZmluZSBmYmNvbl9jZmIyNF9jbGVh
cl9tYXJnaW5zIF9zZXRfdmVyKGZiY29uX2NmYjI0X2NsZWFyX21hcmdpbnMpCiMgNjUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmIyLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjIgc21wXzRjNzIwZmRiCiNkZWZpbmUgZmJjb25fY2ZiMiBf
c2V0X3ZlcihmYmNvbl9jZmIyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfc2V0dXAgc21wXzk2
MWZjNDk4CiNkZWZpbmUgZmJjb25fY2ZiMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmIyX3NldHVw
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfYm1vdmUgc21wXzAwZTNmMjk4CiNkZWZpbmUgZmJj
b25fY2ZiMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9jZmIyX2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjJfY2xlYXIgc21wXzMwYmI1ZTgwCiNkZWZpbmUgZmJjb25fY2ZiMl9jbGVhciBfc2V0
X3ZlcihmYmNvbl9jZmIyX2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0YyBzbXBf
MzZlNWRiNDEKI2RlZmluZSBmYmNvbl9jZmIyX3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiMl9wdXRj
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0Y3Mgc21wX2NhZTg2NGE2CiNkZWZpbmUgZmJj
b25fY2ZiMl9wdXRjcyBfc2V0X3ZlcihmYmNvbl9jZmIyX3B1dGNzKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjJfcmV2YyBzbXBfMzIzNjdiNzYKI2RlZmluZSBmYmNvbl9jZmIyX3JldmMgX3NldF92
ZXIoZmJjb25fY2ZiMl9yZXZjKQojIDY2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZmJjb24tY2ZiMzIudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzIg
c21wXzgxMTdhY2YyCiNkZWZpbmUgZmJjb25fY2ZiMzIgX3NldF92ZXIoZmJjb25fY2ZiMzIpCiNk
ZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfc2V0dXAgc21wXzJkMDBmMDU2CiNkZWZpbmUgZmJjb25f
Y2ZiMzJfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMzJfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj
b25fY2ZiMzJfYm1vdmUgc21wXzZlNTZiNDdkCiNkZWZpbmUgZmJjb25fY2ZiMzJfYm1vdmUgX3Nl
dF92ZXIoZmJjb25fY2ZiMzJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXIg
c21wX2JiZmMzOTE1CiNkZWZpbmUgZmJjb25fY2ZiMzJfY2xlYXIgX3NldF92ZXIoZmJjb25fY2Zi
MzJfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfcHV0YyBzbXBfNTg1MDlkYTQKI2Rl
ZmluZSBmYmNvbl9jZmIzMl9wdXRjIF9zZXRfdmVyKGZiY29uX2NmYjMyX3B1dGMpCiNkZWZpbmUg
X192ZXJfZmJjb25fY2ZiMzJfcHV0Y3Mgc21wXzAwMjYxNzg0CiNkZWZpbmUgZmJjb25fY2ZiMzJf
cHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMzJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fY2Zi
MzJfcmV2YyBzbXBfNTgxNDE5MTMKI2RlZmluZSBmYmNvbl9jZmIzMl9yZXZjIF9zZXRfdmVyKGZi
Y29uX2NmYjMyX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXJfbWFyZ2lucyBz
bXBfZjUzOWYxMjkKI2RlZmluZSBmYmNvbl9jZmIzMl9jbGVhcl9tYXJnaW5zIF9zZXRfdmVyKGZi
Y29uX2NmYjMyX2NsZWFyX21hcmdpbnMpCiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmI0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ZiY29uX2Nm
YjQgc21wXzFhMjhhODVkCiNkZWZpbmUgZmJjb25fY2ZiNCBfc2V0X3ZlcihmYmNvbl9jZmI0KQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfc2V0dXAgc21wX2Y5ODA2ZmZmCiNkZWZpbmUgZmJjb25f
Y2ZiNF9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmI0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29u
X2NmYjRfYm1vdmUgc21wXzNjZWUzMzBkCiNkZWZpbmUgZmJjb25fY2ZiNF9ibW92ZSBfc2V0X3Zl
cihmYmNvbl9jZmI0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfY2xlYXIgc21wXzE1
OTI0OWEyCiNkZWZpbmUgZmJjb25fY2ZiNF9jbGVhciBfc2V0X3ZlcihmYmNvbl9jZmI0X2NsZWFy
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcHV0YyBzbXBfMGFlODFhZDQKI2RlZmluZSBmYmNv
bl9jZmI0X3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiNF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29u
X2NmYjRfcHV0Y3Mgc21wXzc1MjY1MjczCiNkZWZpbmUgZmJjb25fY2ZiNF9wdXRjcyBfc2V0X3Zl
cihmYmNvbl9jZmI0X3B1dGNzKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcmV2YyBzbXBfMDY4
NjM2MTMKI2RlZmluZSBmYmNvbl9jZmI0X3JldmMgX3NldF92ZXIoZmJjb25fY2ZiNF9yZXZjKQoj
IDY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2Zi
OC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4IHNtcF9iNjlkZTc1MQojZGVmaW5lIGZi
Y29uX2NmYjggX3NldF92ZXIoZmJjb25fY2ZiOCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3Nl
dHVwIHNtcF8yNmJmMzkzMQojZGVmaW5lIGZiY29uX2NmYjhfc2V0dXAgX3NldF92ZXIoZmJjb25f
Y2ZiOF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Jtb3ZlIHNtcF80NGY1YjAyNwoj
ZGVmaW5lIGZiY29uX2NmYjhfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiOF9ibW92ZSkKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9jZmI4X2NsZWFyIHNtcF81ZmMwNjdlNgojZGVmaW5lIGZiY29uX2NmYjhf
Y2xlYXIgX3NldF92ZXIoZmJjb25fY2ZiOF9jbGVhcikKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4
X3B1dGMgc21wXzcyZjM5OWZlCiNkZWZpbmUgZmJjb25fY2ZiOF9wdXRjIF9zZXRfdmVyKGZiY29u
X2NmYjhfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3B1dGNzIHNtcF9kMWNiMzk5OAoj
ZGVmaW5lIGZiY29uX2NmYjhfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiOF9wdXRjcykKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9jZmI4X3JldmMgc21wXzZmZTZhY2Q5CiNkZWZpbmUgZmJjb25fY2ZiOF9y
ZXZjIF9zZXRfdmVyKGZiY29uX2NmYjhfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Ns
ZWFyX21hcmdpbnMgc21wXzk1MzBmYWRlCiNkZWZpbmUgZmJjb25fY2ZiOF9jbGVhcl9tYXJnaW5z
IF9zZXRfdmVyKGZiY29uX2NmYjhfY2xlYXJfbWFyZ2lucykKIyA2OSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWhnYS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9mYmNvbl9oZ2Egc21wXzFhMjIzYTlhCiNkZWZpbmUgZmJjb25faGdhIF9zZXRfdmVyKGZiY29u
X2hnYSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ffc2V0dXAgc21wX2MyNjg5NWQzCiNkZWZpbmUg
ZmJjb25faGdhX3NldHVwIF9zZXRfdmVyKGZiY29uX2hnYV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9m
YmNvbl9oZ2FfYm1vdmUgc21wXzk3ZmE0MDhiCiNkZWZpbmUgZmJjb25faGdhX2Jtb3ZlIF9zZXRf
dmVyKGZiY29uX2hnYV9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfY2xlYXIgc21wXzdj
ZTg0NjQzCiNkZWZpbmUgZmJjb25faGdhX2NsZWFyIF9zZXRfdmVyKGZiY29uX2hnYV9jbGVhcikK
I2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcHV0YyBzbXBfYTFmYzY5NTIKI2RlZmluZSBmYmNvbl9o
Z2FfcHV0YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ff
cHV0Y3Mgc21wXzE3ODRhNjVjCiNkZWZpbmUgZmJjb25faGdhX3B1dGNzIF9zZXRfdmVyKGZiY29u
X2hnYV9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcmV2YyBzbXBfZDQyNzViOGIKI2Rl
ZmluZSBmYmNvbl9oZ2FfcmV2YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcmV2YykKI2RlZmluZSBfX3Zl
cl9mYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucyBzbXBfOTUwZWVlZjgKI2RlZmluZSBmYmNvbl9oZ2Ff
Y2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucykKIyA3MCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlsYm0udmVyIiAx
CiNkZWZpbmUgX192ZXJfZmJjb25faWxibSBzbXBfNTQ1Y2I2ODUKI2RlZmluZSBmYmNvbl9pbGJt
IF9zZXRfdmVyKGZiY29uX2lsYm0pCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9zZXR1cCBzbXBf
MGJhMzU5YWMKI2RlZmluZSBmYmNvbl9pbGJtX3NldHVwIF9zZXRfdmVyKGZiY29uX2lsYm1fc2V0
dXApCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9ibW92ZSBzbXBfYzU3MWZhMDEKI2RlZmluZSBm
YmNvbl9pbGJtX2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2lsYm1fYm1vdmUpCiNkZWZpbmUgX192ZXJf
ZmJjb25faWxibV9jbGVhciBzbXBfNGNlZDg1NDYKI2RlZmluZSBmYmNvbl9pbGJtX2NsZWFyIF9z
ZXRfdmVyKGZiY29uX2lsYm1fY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjIHNt
cF9mMzc3ZDNkOAojZGVmaW5lIGZiY29uX2lsYm1fcHV0YyBfc2V0X3ZlcihmYmNvbl9pbGJtX3B1
dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjcyBzbXBfZDJkOGM5MGEKI2RlZmluZSBm
YmNvbl9pbGJtX3B1dGNzIF9zZXRfdmVyKGZiY29uX2lsYm1fcHV0Y3MpCiNkZWZpbmUgX192ZXJf
ZmJjb25faWxibV9yZXZjIHNtcF84NDA1ZDIxOAojZGVmaW5lIGZiY29uX2lsYm1fcmV2YyBfc2V0
X3ZlcihmYmNvbl9pbGJtX3JldmMpCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9mYmNvbi1pcGxhbjJwMi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9p
cGxhbjJwMiBzbXBfNzNmZmM5YWIKI2RlZmluZSBmYmNvbl9pcGxhbjJwMiBfc2V0X3ZlcihmYmNv
bl9pcGxhbjJwMikKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9zZXR1cCBzbXBfZDMzNjg3
NTAKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9z
ZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9ibW92ZSBzbXBfZTc1YmQ4MjAKI2Rl
ZmluZSBmYmNvbl9pcGxhbjJwMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9ibW92ZSkK
I2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9jbGVhciBzbXBfZWUwOTQzNDMKI2RlZmluZSBm
YmNvbl9pcGxhbjJwMl9jbGVhciBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9jbGVhcikKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9wdXRjIHNtcF9kMTVkZjFmOQojZGVmaW5lIGZiY29uX2lw
bGFuMnAyX3B1dGMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfcHV0YykKI2RlZmluZSBfX3Zlcl9m
YmNvbl9pcGxhbjJwMl9wdXRjcyBzbXBfODBjYjY2MTcKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9w
dXRjcyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9p
cGxhbjJwMl9yZXZjIHNtcF8xM2ZlZjI5MQojZGVmaW5lIGZiY29uX2lwbGFuMnAyX3JldmMgX3Nl
dF92ZXIoZmJjb25faXBsYW4ycDJfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9j
bGVhcl9tYXJnaW5zIHNtcF82ZmVkNjA3MgojZGVmaW5lIGZiY29uX2lwbGFuMnAyX2NsZWFyX21h
cmdpbnMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfY2xlYXJfbWFyZ2lucykKIyA3MiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlwbGFuMnA0LnZlciIg
MQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0IHNtcF8yNWE1NmUyZAojZGVmaW5lIGZiY29u
X2lwbGFuMnA0IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lw
bGFuMnA0X3NldHVwIHNtcF9iY2E5MmMzNwojZGVmaW5lIGZiY29uX2lwbGFuMnA0X3NldHVwIF9z
ZXRfdmVyKGZiY29uX2lwbGFuMnA0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0
X2Jtb3ZlIHNtcF9kYjU2MTliNQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2Jtb3ZlIF9zZXRfdmVy
KGZiY29uX2lwbGFuMnA0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFy
IHNtcF9jYjIwNTQ2MQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2NsZWFyIF9zZXRfdmVyKGZiY29u
X2lwbGFuMnA0X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGMgc21wX2Vk
NTAzMDZjCiNkZWZpbmUgZmJjb25faXBsYW4ycDRfcHV0YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJw
NF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGNzIHNtcF8zZjA1NTBjMgoj
ZGVmaW5lIGZiY29uX2lwbGFuMnA0X3B1dGNzIF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0X3B1dGNz
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3JldmMgc21wXzI3NGViZmY0CiNkZWZpbmUg
ZmJjb25faXBsYW4ycDRfcmV2YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9yZXZjKQojZGVmaW5l
IF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFyX21hcmdpbnMgc21wXzc3ZTAxZWVhCiNkZWZpbmUg
ZmJjb25faXBsYW4ycDRfY2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9jbGVh
cl9tYXJnaW5zKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl
cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs
ZXMvZmJjb24taXBsYW4ycDgudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDggc21w
Xzg5MTAyMTIxCiNkZWZpbmUgZmJjb25faXBsYW4ycDggX3NldF92ZXIoZmJjb25faXBsYW4ycDgp
CiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfc2V0dXAgc21wXzYzOTY3YWY5CiNkZWZpbmUg
ZmJjb25faXBsYW4ycDhfc2V0dXAgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfc2V0dXApCiNkZWZp
bmUgX192ZXJfZmJjb25faXBsYW4ycDhfYm1vdmUgc21wX2EzNGQ5YTlmCiNkZWZpbmUgZmJjb25f
aXBsYW4ycDhfYm1vdmUgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25faXBsYW4ycDhfY2xlYXIgc21wXzgxNzI3YTI1CiNkZWZpbmUgZmJjb25faXBsYW4y
cDhfY2xlYXIgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJj
b25faXBsYW4ycDhfcHV0YyBzbXBfOTU0YmIzNDYKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9wdXRj
IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA4X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4y
cDhfcHV0Y3Mgc21wXzliZTgzYjI5CiNkZWZpbmUgZmJjb25faXBsYW4ycDhfcHV0Y3MgX3NldF92
ZXIoZmJjb25faXBsYW4ycDhfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfcmV2
YyBzbXBfNGUyZTI1M2UKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9yZXZjIF9zZXRfdmVyKGZiY29u
X2lwbGFuMnA4X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfY2xlYXJfbWFyZ2lu
cyBzbXBfNDdmYWUzZGEKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9jbGVhcl9tYXJnaW5zIF9zZXRf
dmVyKGZiY29uX2lwbGFuMnA4X2NsZWFyX21hcmdpbnMpCiMgNzQgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tYWMudmVyIiAxCiNkZWZpbmUgX192ZXJf
ZmJjb25fbWFjIHNtcF8xYjQ3ZDQ5OAojZGVmaW5lIGZiY29uX21hYyBfc2V0X3ZlcihmYmNvbl9t
YWMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3NldHVwIHNtcF84Nzc4ODdhZQojZGVmaW5lIGZi
Y29uX21hY19zZXR1cCBfc2V0X3ZlcihmYmNvbl9tYWNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj
b25fbWFjX2Jtb3ZlIHNtcF85M2Q4ZmRiYwojZGVmaW5lIGZiY29uX21hY19ibW92ZSBfc2V0X3Zl
cihmYmNvbl9tYWNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX2NsZWFyIHNtcF84MzFi
MzYwNwojZGVmaW5lIGZiY29uX21hY19jbGVhciBfc2V0X3ZlcihmYmNvbl9tYWNfY2xlYXIpCiNk
ZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1dGMgc21wX2E1ZGVkNDY1CiNkZWZpbmUgZmJjb25fbWFj
X3B1dGMgX3NldF92ZXIoZmJjb25fbWFjX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1
dGNzIHNtcF9mYTVmYjQxNgojZGVmaW5lIGZiY29uX21hY19wdXRjcyBfc2V0X3ZlcihmYmNvbl9t
YWNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3JldmMgc21wXzBmNzc5YjUyCiNkZWZp
bmUgZmJjb25fbWFjX3JldmMgX3NldF92ZXIoZmJjb25fbWFjX3JldmMpCiMgNzUgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tZmIudmVyIiAxCiNkZWZp
bmUgX192ZXJfZmJjb25fbWZiIHNtcF8wNzEzZjM1YwojZGVmaW5lIGZiY29uX21mYiBfc2V0X3Zl
cihmYmNvbl9tZmIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3NldHVwIHNtcF8zYTU4YjIxNwoj
ZGVmaW5lIGZiY29uX21mYl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9tZmJfc2V0dXApCiNkZWZpbmUg
X192ZXJfZmJjb25fbWZiX2Jtb3ZlIHNtcF83ZDBmZGExMwojZGVmaW5lIGZiY29uX21mYl9ibW92
ZSBfc2V0X3ZlcihmYmNvbl9tZmJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX2NsZWFy
IHNtcF8yNTI0MzU0YwojZGVmaW5lIGZiY29uX21mYl9jbGVhciBfc2V0X3ZlcihmYmNvbl9tZmJf
Y2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3B1dGMgc21wXzRiMDlmM2NhCiNkZWZpbmUg
ZmJjb25fbWZiX3B1dGMgX3NldF92ZXIoZmJjb25fbWZiX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJj
b25fbWZiX3B1dGNzIHNtcF8xMDA1Nzk0ZgojZGVmaW5lIGZiY29uX21mYl9wdXRjcyBfc2V0X3Zl
cihmYmNvbl9tZmJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3JldmMgc21wXzZhNjlk
M2ZkCiNkZWZpbmUgZmJjb25fbWZiX3JldmMgX3NldF92ZXIoZmJjb25fbWZiX3JldmMpCiNkZWZp
bmUgX192ZXJfZmJjb25fbWZiX2NsZWFyX21hcmdpbnMgc21wXzBjMzJiMzQxCiNkZWZpbmUgZmJj
b25fbWZiX2NsZWFyX21hcmdpbnMgX3NldF92ZXIoZmJjb25fbWZiX2NsZWFyX21hcmdpbnMpCiMg
NzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9mYl9kaXNwbGF5IHNtcF83Yjc5ODk3YgojZGVmaW5lIGZiX2Rpc3Bs
YXkgX3NldF92ZXIoZmJfZGlzcGxheSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfYm1vdmUg
c21wXzNmMjg4NDc5CiNkZWZpbmUgZmJjb25fcmVkcmF3X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX3Jl
ZHJhd19ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfY2xlYXIgc21wXzAxNjAxYzBm
CiNkZWZpbmUgZmJjb25fcmVkcmF3X2NsZWFyIF9zZXRfdmVyKGZiY29uX3JlZHJhd19jbGVhcikK
I2RlZmluZSBfX3Zlcl9mYmNvbl9kdW1teSBzbXBfMmYzMmE3ZWYKI2RlZmluZSBmYmNvbl9kdW1t
eSBfc2V0X3ZlcihmYmNvbl9kdW1teSkKI2RlZmluZSBfX3Zlcl9mYl9jb24gc21wX2E4MGE0MjIz
CiNkZWZpbmUgZmJfY29uIF9zZXRfdmVyKGZiX2NvbikKIyA3NyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLXZnYS1wbGFuZXMudmVyIiAxCiNkZWZpbmUg
X192ZXJfZmJjb25fdmdhX3BsYW5lcyBzbXBfZTNmNWI3NTgKI2RlZmluZSBmYmNvbl92Z2FfcGxh
bmVzIF9zZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19zZXR1cCBzbXBfMDlkNjFiNTQKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3NldHVwIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19ibW92ZSBzbXBfOWFmMjIzNDEKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2Jtb3ZlIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19jbGVhciBzbXBfNThmZjY4NmUKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2NsZWFyIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19wdXRjIHNtcF9hY2Y0MGE5OAojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcHV0YyBfc2V0
X3ZlcihmYmNvbl92Z2FfcGxhbmVzX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l
c19wdXRjcyBzbXBfYjY4ZDM4MDIKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3B1dGNzIF9zZXRf
dmVyKGZiY29uX3ZnYV9wbGFuZXNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l
c19yZXZjIHNtcF9kNTViMDI0YgojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcmV2YyBfc2V0X3Zl
cihmYmNvbl92Z2FfcGxhbmVzX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lcyBz
bXBfZDRlMTE1OTIKI2RlZmluZSBmYmNvbl9lZ2FfcGxhbmVzIF9zZXRfdmVyKGZiY29uX2VnYV9w
bGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjIHNtcF9lOTExMTYxMAoj
ZGVmaW5lIGZiY29uX2VnYV9wbGFuZXNfcHV0YyBfc2V0X3ZlcihmYmNvbl9lZ2FfcGxhbmVzX3B1
dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjcyBzbXBfZGRiNTdiMzEKI2Rl
ZmluZSBmYmNvbl9lZ2FfcGxhbmVzX3B1dGNzIF9zZXRfdmVyKGZiY29uX2VnYV9wbGFuZXNfcHV0
Y3MpCiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNv
bi12Z2EudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhIHNtcF9hYWU0MWEzNgojZGVmaW5l
IGZiY29uX3ZnYSBfc2V0X3ZlcihmYmNvbl92Z2EpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Nl
dHVwIHNtcF9kYzQyZDk3MQojZGVmaW5lIGZiY29uX3ZnYV9zZXR1cCBfc2V0X3ZlcihmYmNvbl92
Z2Ffc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX2Jtb3ZlIHNtcF80MDFiM2RhZAojZGVm
aW5lIGZiY29uX3ZnYV9ibW92ZSBfc2V0X3ZlcihmYmNvbl92Z2FfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25fdmdhX2NsZWFyIHNtcF9jOTBlM2JiNQojZGVmaW5lIGZiY29uX3ZnYV9jbGVhciBf
c2V0X3ZlcihmYmNvbl92Z2FfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGMgc21w
Xzc2MWQxNDc0CiNkZWZpbmUgZmJjb25fdmdhX3B1dGMgX3NldF92ZXIoZmJjb25fdmdhX3B1dGMp
CiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGNzIHNtcF9lYmE1ZDE2NQojZGVmaW5lIGZiY29u
X3ZnYV9wdXRjcyBfc2V0X3ZlcihmYmNvbl92Z2FfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25f
dmdhX3JldmMgc21wXzg3NWU5NDA4CiNkZWZpbmUgZmJjb25fdmdhX3JldmMgX3NldF92ZXIoZmJj
b25fdmdhX3JldmMpCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy9mYm1lbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9mcmFtZWJ1ZmZlciBzbXBf
Y2IxZDYxODUKI2RlZmluZSByZWdpc3Rlcl9mcmFtZWJ1ZmZlciBfc2V0X3ZlcihyZWdpc3Rlcl9m
cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyIHNtcF9jZjc4
YmY4ZgojZGVmaW5lIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9m
cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl9yZWdpc3RlcmVkX2ZiIHNtcF82YzM5NGM1ZAojZGVm
aW5lIHJlZ2lzdGVyZWRfZmIgX3NldF92ZXIocmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9u
dW1fcmVnaXN0ZXJlZF9mYiBzbXBfNmM2MWNlNzAKI2RlZmluZSBudW1fcmVnaXN0ZXJlZF9mYiBf
c2V0X3ZlcihudW1fcmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9HRVRfRkJfSURYIHNtcF81
MjgwYzYzMAojZGVmaW5lIEdFVF9GQl9JRFggX3NldF92ZXIoR0VUX0ZCX0lEWCkKIyA4MCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZibW9uLnZlciIgMQojZGVm
aW5lIF9fdmVyX2ZibW9uX3ZhbGlkX3RpbWluZ3Mgc21wXzcxYTc1ZjY5CiNkZWZpbmUgZmJtb25f
dmFsaWRfdGltaW5ncyBfc2V0X3ZlcihmYm1vbl92YWxpZF90aW1pbmdzKQojIDgxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmNfc3ltcy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9mY3BfaW5pdCBzbXBfMDEyNGMwZWUKI2RlZmluZSBmY3BfaW5pdCBfc2V0X3Zlcihm
Y3BfaW5pdCkKI2RlZmluZSBfX3Zlcl9mY3BfcmVsZWFzZSBzbXBfZGE3M2RjNzAKI2RlZmluZSBm
Y3BfcmVsZWFzZSBfc2V0X3ZlcihmY3BfcmVsZWFzZSkKI2RlZmluZSBfX3Zlcl9mY3BfcXVldWVf
ZW1wdHkgc21wX2JkNjRjZmIwCiNkZWZpbmUgZmNwX3F1ZXVlX2VtcHR5IF9zZXRfdmVyKGZjcF9x
dWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mY3BfcmVjZWl2ZV9zb2xpY2l0ZWQgc21wX2Y0OTk3
M2YzCiNkZWZpbmUgZmNwX3JlY2VpdmVfc29saWNpdGVkIF9zZXRfdmVyKGZjcF9yZWNlaXZlX3Nv
bGljaXRlZCkKI2RlZmluZSBfX3Zlcl9mY19jaGFubmVscyBzbXBfZWU0N2RkNDAKI2RlZmluZSBm
Y19jaGFubmVscyBfc2V0X3ZlcihmY19jaGFubmVscykKI2RlZmluZSBfX3Zlcl9mY3Bfc3RhdGVf
Y2hhbmdlIHNtcF85MTZhNWFjYQojZGVmaW5lIGZjcF9zdGF0ZV9jaGFuZ2UgX3NldF92ZXIoZmNw
X3N0YXRlX2NoYW5nZSkKI2RlZmluZSBfX3Zlcl9mY19kb19wbG9naSBzbXBfZjVhNzYxODAKI2Rl
ZmluZSBmY19kb19wbG9naSBfc2V0X3ZlcihmY19kb19wbG9naSkKI2RlZmluZSBfX3Zlcl9mY19k
b19wcmxpIHNtcF9mYWM5OWQ5NwojZGVmaW5lIGZjX2RvX3BybGkgX3NldF92ZXIoZmNfZG9fcHJs
aSkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9xdWV1ZWNvbW1hbmQgc21wXzZlOWU1Y2Y4CiNkZWZp
bmUgZmNwX3Njc2lfcXVldWVjb21tYW5kIF9zZXRfdmVyKGZjcF9zY3NpX3F1ZXVlY29tbWFuZCkK
I2RlZmluZSBfX3Zlcl9mY3Bfb2xkX2Fib3J0IHNtcF8zMjVjMmNmNwojZGVmaW5lIGZjcF9vbGRf
YWJvcnQgX3NldF92ZXIoZmNwX29sZF9hYm9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9hYm9y
dCBzbXBfOWRjMjAyN2UKI2RlZmluZSBmY3Bfc2NzaV9hYm9ydCBfc2V0X3ZlcihmY3Bfc2NzaV9h
Ym9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9kZXZfcmVzZXQgc21wXzQ0NzY5MWMxCiNkZWZp
bmUgZmNwX3Njc2lfZGV2X3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2Rldl9yZXNldCkKI2RlZmlu
ZSBfX3Zlcl9mY3Bfc2NzaV9idXNfcmVzZXQgc21wXzMzMWJkMDYwCiNkZWZpbmUgZmNwX3Njc2lf
YnVzX3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2J1c19yZXNldCkKI2RlZmluZSBfX3Zlcl9mY3Bf
c2NzaV9ob3N0X3Jlc2V0IHNtcF8xYTQxMmU1NAojZGVmaW5lIGZjcF9zY3NpX2hvc3RfcmVzZXQg
X3NldF92ZXIoZmNwX3Njc2lfaG9zdF9yZXNldCkKIyA4MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2ZmYl9kcnYudmVyIiAxCiMgODMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9maWxlc3lzdGVtcy52ZXIiIDEKIyA4NCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Z0YXBlX3N5bXMudmVyIiAx
CiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgc21wX2ZlZDVhNTNkCiNk
ZWZpbmUgZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgX3NldF92ZXIoZnRhcGVfZ2V0X2JhZF9z
ZWN0b3JfZW50cnkpCiNkZWZpbmUgX192ZXJfZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3Qgc21w
XzQ2NzM4Njg3CiNkZWZpbmUgZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QgX3NldF92ZXIoZnRh
cGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2V0X3N0YXRlIHNt
cF81YjUyZDRiOAojZGVmaW5lIGZ0YXBlX3NldF9zdGF0ZSBfc2V0X3ZlcihmdGFwZV9zZXRfc3Rh
dGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2Vla190b19ib3Qgc21wXzQ4MTVhYzNjCiNkZWZpbmUg
ZnRhcGVfc2Vla190b19ib3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19ib3QpCiNkZWZpbmUgX192
ZXJfZnRhcGVfc2Vla190b19lb3Qgc21wXzM1NjZhYTY0CiNkZWZpbmUgZnRhcGVfc2Vla190b19l
b3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19lb3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfYWJvcnRf
b3BlcmF0aW9uIHNtcF9kOTBkZjUxOQojZGVmaW5lIGZ0YXBlX2Fib3J0X29wZXJhdGlvbiBfc2V0
X3ZlcihmdGFwZV9hYm9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X3N0YXR1
cyBzbXBfNDZmNDcwNzAKI2RlZmluZSBmdGFwZV9nZXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBlX2dl
dF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfZW5hYmxlIHNtcF83ZWMwZDVkNAojZGVmaW5l
IGZ0YXBlX2VuYWJsZSBfc2V0X3ZlcihmdGFwZV9lbmFibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVf
ZGlzYWJsZSBzbXBfN2I1MmYwNGIKI2RlZmluZSBmdGFwZV9kaXNhYmxlIF9zZXRfdmVyKGZ0YXBl
X2Rpc2FibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfbW1hcCBzbXBfMzlhZjUwMTkKI2RlZmluZSBm
dGFwZV9tbWFwIF9zZXRfdmVyKGZ0YXBlX21tYXApCiNkZWZpbmUgX192ZXJfZnRhcGVfY2FsaWJy
YXRlX2RhdGFfcmF0ZSBzbXBfODJiY2Y1MmEKI2RlZmluZSBmdGFwZV9jYWxpYnJhdGVfZGF0YV9y
YXRlIF9zZXRfdmVyKGZ0YXBlX2NhbGlicmF0ZV9kYXRhX3JhdGUpCiNkZWZpbmUgX192ZXJfZnRh
cGVfcmVzZXRfZHJpdmUgc21wXzJiZGJhNmFhCiNkZWZpbmUgZnRhcGVfcmVzZXRfZHJpdmUgX3Nl
dF92ZXIoZnRhcGVfcmVzZXRfZHJpdmUpCiNkZWZpbmUgX192ZXJfZnRhcGVfY29tbWFuZCBzbXBf
Nzk5MzA1ZTQKI2RlZmluZSBmdGFwZV9jb21tYW5kIF9zZXRfdmVyKGZ0YXBlX2NvbW1hbmQpCiNk
ZWZpbmUgX192ZXJfZnRhcGVfcGFyYW1ldGVyIHNtcF9jMTdiNjBlMwojZGVmaW5lIGZ0YXBlX3Bh
cmFtZXRlciBfc2V0X3ZlcihmdGFwZV9wYXJhbWV0ZXIpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVh
ZHlfd2FpdCBzbXBfYzc4MGVkMDgKI2RlZmluZSBmdGFwZV9yZWFkeV93YWl0IF9zZXRfdmVyKGZ0
YXBlX3JlYWR5X3dhaXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X29wZXJhdGlvbiBzbXBf
ZjVhYzQ1OTEKI2RlZmluZSBmdGFwZV9yZXBvcnRfb3BlcmF0aW9uIF9zZXRfdmVyKGZ0YXBlX3Jl
cG9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X2Vycm9yIHNtcF85OTll
ZGZmZAojZGVmaW5lIGZ0YXBlX3JlcG9ydF9lcnJvciBfc2V0X3ZlcihmdGFwZV9yZXBvcnRfZXJy
b3IpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9zZWdtZW50X2ZyYWN0aW9uIHNtcF9jODdmNGVk
NwojZGVmaW5lIGZ0YXBlX3JlYWRfc2VnbWVudF9mcmFjdGlvbiBfc2V0X3ZlcihmdGFwZV9yZWFk
X3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfemFwX3JlYWRfYnVmZmVycyBz
bXBfZGQ5ZjBhZTAKI2RlZmluZSBmdGFwZV96YXBfcmVhZF9idWZmZXJzIF9zZXRfdmVyKGZ0YXBl
X3phcF9yZWFkX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9oZWFkZXJfc2VnbWVu
dCBzbXBfYTJiMTRiM2MKI2RlZmluZSBmdGFwZV9yZWFkX2hlYWRlcl9zZWdtZW50IF9zZXRfdmVy
KGZ0YXBlX3JlYWRfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfZGVjb2RlX2hl
YWRlcl9zZWdtZW50IHNtcF8wOGI2NjVlZgojZGVmaW5lIGZ0YXBlX2RlY29kZV9oZWFkZXJfc2Vn
bWVudCBfc2V0X3ZlcihmdGFwZV9kZWNvZGVfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJf
ZnRhcGVfd3JpdGVfc2VnbWVudCBzbXBfOGEwOWM4NDYKI2RlZmluZSBmdGFwZV93cml0ZV9zZWdt
ZW50IF9zZXRfdmVyKGZ0YXBlX3dyaXRlX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfc3Rh
cnRfd3JpdGluZyBzbXBfYTk5ZDgxZTMKI2RlZmluZSBmdGFwZV9zdGFydF93cml0aW5nIF9zZXRf
dmVyKGZ0YXBlX3N0YXJ0X3dyaXRpbmcpCiNkZWZpbmUgX192ZXJfZnRhcGVfbG9vcF91bnRpbF93
cml0ZXNfZG9uZSBzbXBfMDAzZWQyZWEKI2RlZmluZSBmdGFwZV9sb29wX3VudGlsX3dyaXRlc19k
b25lIF9zZXRfdmVyKGZ0YXBlX2xvb3BfdW50aWxfd3JpdGVzX2RvbmUpCiNkZWZpbmUgX192ZXJf
ZnRhcGVfc2V0X25yX2J1ZmZlcnMgc21wXzhiNTZjYWFhCiNkZWZpbmUgZnRhcGVfc2V0X25yX2J1
ZmZlcnMgX3NldF92ZXIoZnRhcGVfc2V0X25yX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVf
Zm9ybWF0X3RyYWNrIHNtcF80MGZlYmI0MAojZGVmaW5lIGZ0YXBlX2Zvcm1hdF90cmFjayBfc2V0
X3ZlcihmdGFwZV9mb3JtYXRfdHJhY2spCiNkZWZpbmUgX192ZXJfZnRhcGVfZm9ybWF0X3N0YXR1
cyBzbXBfZTk4NDllZWUKI2RlZmluZSBmdGFwZV9mb3JtYXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBl
X2Zvcm1hdF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfdmVyaWZ5X3NlZ21lbnQgc21wXzgy
Njc1YmU3CiNkZWZpbmUgZnRhcGVfdmVyaWZ5X3NlZ21lbnQgX3NldF92ZXIoZnRhcGVfdmVyaWZ5
X3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2luZyBzbXBfNmI2MjUzZDMKI2RlZmlu
ZSBmdGFwZV90cmFjaW5nIF9zZXRfdmVyKGZ0YXBlX3RyYWNpbmcpCiNkZWZpbmUgX192ZXJfZnRh
cGVfZnVuY3Rpb25fbmVzdF9sZXZlbCBzbXBfNTAxOTY3NDMKI2RlZmluZSBmdGFwZV9mdW5jdGlv
bl9uZXN0X2xldmVsIF9zZXRfdmVyKGZ0YXBlX2Z1bmN0aW9uX25lc3RfbGV2ZWwpCiNkZWZpbmUg
X192ZXJfZnRhcGVfdHJhY2VfY2FsbCBzbXBfNjNmN2Y2ZDAKI2RlZmluZSBmdGFwZV90cmFjZV9j
YWxsIF9zZXRfdmVyKGZ0YXBlX3RyYWNlX2NhbGwpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2Vf
ZXhpdCBzbXBfNGU3NTVkY2YKI2RlZmluZSBmdGFwZV90cmFjZV9leGl0IF9zZXRfdmVyKGZ0YXBl
X3RyYWNlX2V4aXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2VfbG9nIHNtcF85MmNlN2ViMQoj
ZGVmaW5lIGZ0YXBlX3RyYWNlX2xvZyBfc2V0X3ZlcihmdGFwZV90cmFjZV9sb2cpCiMgODUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9nYW1lcG9ydC52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9wb3J0IHNtcF85NWMwNzhjZQojZGVmaW5l
IGdhbWVwb3J0X3JlZ2lzdGVyX3BvcnQgX3NldF92ZXIoZ2FtZXBvcnRfcmVnaXN0ZXJfcG9ydCkK
I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX3BvcnQgc21wXzU2YzhiOTYzCiNkZWZp
bmUgZ2FtZXBvcnRfdW5yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKGdhbWVwb3J0X3VucmVnaXN0ZXJf
cG9ydCkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9kZXZpY2Ugc21wX2MzMTgxZjRm
CiNkZWZpbmUgZ2FtZXBvcnRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGdhbWVwb3J0X3JlZ2lz
dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBzbXBf
ZTRiMmRjZTIKI2RlZmluZSBnYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihnYW1l
cG9ydF91bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9vcGVuIHNtcF83
ZWFlNWYxNgojZGVmaW5lIGdhbWVwb3J0X29wZW4gX3NldF92ZXIoZ2FtZXBvcnRfb3BlbikKI2Rl
ZmluZSBfX3Zlcl9nYW1lcG9ydF9jbG9zZSBzbXBfNmQ5ZWFlZDgKI2RlZmluZSBnYW1lcG9ydF9j
bG9zZSBfc2V0X3ZlcihnYW1lcG9ydF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZXNj
YW4gc21wX2Q5OTQ5NTg5CiNkZWZpbmUgZ2FtZXBvcnRfcmVzY2FuIF9zZXRfdmVyKGdhbWVwb3J0
X3Jlc2NhbikKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9jb29rZWRfcmVhZCBzbXBfZDQ5ZTZkZTUK
I2RlZmluZSBnYW1lcG9ydF9jb29rZWRfcmVhZCBfc2V0X3ZlcihnYW1lcG9ydF9jb29rZWRfcmVh
ZCkKIyA4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2dhbW1h
X2Rydi52ZXIiIDEKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2hkbGNkcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9yZWNlaXZlciBzbXBfMTU1
OWUwZDUKI2RlZmluZSBoZGxjZHJ2X3JlY2VpdmVyIF9zZXRfdmVyKGhkbGNkcnZfcmVjZWl2ZXIp
CiNkZWZpbmUgX192ZXJfaGRsY2Rydl90cmFuc21pdHRlciBzbXBfOThiZGZkNDMKI2RlZmluZSBo
ZGxjZHJ2X3RyYW5zbWl0dGVyIF9zZXRfdmVyKGhkbGNkcnZfdHJhbnNtaXR0ZXIpCiNkZWZpbmUg
X192ZXJfaGRsY2Rydl9hcmJpdHJhdGUgc21wXzI0ZmE1OTI3CiNkZWZpbmUgaGRsY2Rydl9hcmJp
dHJhdGUgX3NldF92ZXIoaGRsY2Rydl9hcmJpdHJhdGUpCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9y
ZWdpc3Rlcl9oZGxjZHJ2IHNtcF8yYTExZmZlZAojZGVmaW5lIGhkbGNkcnZfcmVnaXN0ZXJfaGRs
Y2RydiBfc2V0X3ZlcihoZGxjZHJ2X3JlZ2lzdGVyX2hkbGNkcnYpCiNkZWZpbmUgX192ZXJfaGRs
Y2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYgc21wXzBmMDAzNzAyCiNkZWZpbmUgaGRsY2Rydl91bnJl
Z2lzdGVyX2hkbGNkcnYgX3NldF92ZXIoaGRsY2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYpCiMgODgg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9oZGxjLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX2hkbGNfbmV0aWZfcnggc21wXzNjYzc4MDJmCiNkZWZpbmUgaGRsY19uZXRp
Zl9yeCBfc2V0X3ZlcihoZGxjX25ldGlmX3J4KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2hkbGNf
ZGV2aWNlIHNtcF8wZTViYjlhZAojZGVmaW5lIHJlZ2lzdGVyX2hkbGNfZGV2aWNlIF9zZXRfdmVy
KHJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfaGRsY19kZXZp
Y2Ugc21wXzA3NTUwMzQ5CiNkZWZpbmUgdW5yZWdpc3Rlcl9oZGxjX2RldmljZSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojIDg5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvaGVybWVzLnZlciIgMQojZGVmaW5lIF9fdmVyX2hlcm1lc19zdHJ1Y3Rf
aW5pdCBzbXBfOGEyNDZjNzUKI2RlZmluZSBoZXJtZXNfc3RydWN0X2luaXQgX3NldF92ZXIoaGVy
bWVzX3N0cnVjdF9pbml0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZXNldCBzbXBfNDEyYTM3ZjAK
I2RlZmluZSBoZXJtZXNfcmVzZXQgX3NldF92ZXIoaGVybWVzX3Jlc2V0KQojZGVmaW5lIF9fdmVy
X2hlcm1lc19kb2NtZF93YWl0IHNtcF83N2FlZjllNQojZGVmaW5lIGhlcm1lc19kb2NtZF93YWl0
IF9zZXRfdmVyKGhlcm1lc19kb2NtZF93YWl0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19hbGxvY2F0
ZSBzbXBfYTM2MWQ3MmYKI2RlZmluZSBoZXJtZXNfYWxsb2NhdGUgX3NldF92ZXIoaGVybWVzX2Fs
bG9jYXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19iYXBfcHJlYWQgc21wXzAwOTU5NWI3CiNkZWZp
bmUgaGVybWVzX2JhcF9wcmVhZCBfc2V0X3ZlcihoZXJtZXNfYmFwX3ByZWFkKQojZGVmaW5lIF9f
dmVyX2hlcm1lc19iYXBfcHdyaXRlIHNtcF85MGI2ZDAwYwojZGVmaW5lIGhlcm1lc19iYXBfcHdy
aXRlIF9zZXRfdmVyKGhlcm1lc19iYXBfcHdyaXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZWFk
X2x0diBzbXBfNGE1OTkyMDcKI2RlZmluZSBoZXJtZXNfcmVhZF9sdHYgX3NldF92ZXIoaGVybWVz
X3JlYWRfbHR2KQojZGVmaW5lIF9fdmVyX2hlcm1lc193cml0ZV9sdHYgc21wX2U0Nzg2YzhhCiNk
ZWZpbmUgaGVybWVzX3dyaXRlX2x0diBfc2V0X3ZlcihoZXJtZXNfd3JpdGVfbHR2KQojIDkwICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWFsZ28tYml0LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2kyY19iaXRfYWRkX2J1cyBzbXBfM2U4ZTU4NGMKI2RlZmluZSBp
MmNfYml0X2FkZF9idXMgX3NldF92ZXIoaTJjX2JpdF9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2ky
Y19iaXRfZGVsX2J1cyBzbXBfOTMwYmNjY2IKI2RlZmluZSBpMmNfYml0X2RlbF9idXMgX3NldF92
ZXIoaTJjX2JpdF9kZWxfYnVzKQojIDkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvaTJjLWFsZ28tcGNmLnZlciIgMQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfYWRk
X2J1cyBzbXBfMTcyNjVlOTQKI2RlZmluZSBpMmNfcGNmX2FkZF9idXMgX3NldF92ZXIoaTJjX3Bj
Zl9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfZGVsX2J1cyBzbXBfYmFhM2NhMTMKI2Rl
ZmluZSBpMmNfcGNmX2RlbF9idXMgX3NldF92ZXIoaTJjX3BjZl9kZWxfYnVzKQojIDkyICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWNvcmUudmVyIiAxCiNk
ZWZpbmUgX192ZXJfaTJjX2FkZF9hZGFwdGVyIHNtcF8xYmZkMTUxNwojZGVmaW5lIGkyY19hZGRf
YWRhcHRlciBfc2V0X3ZlcihpMmNfYWRkX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2RlbF9h
ZGFwdGVyIHNtcF83ZmZhMzhlMgojZGVmaW5lIGkyY19kZWxfYWRhcHRlciBfc2V0X3ZlcihpMmNf
ZGVsX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkZF9kcml2ZXIgc21wXzMxOTdhYjFkCiNk
ZWZpbmUgaTJjX2FkZF9kcml2ZXIgX3NldF92ZXIoaTJjX2FkZF9kcml2ZXIpCiNkZWZpbmUgX192
ZXJfaTJjX2RlbF9kcml2ZXIgc21wX2IyMzc1ZjQ5CiNkZWZpbmUgaTJjX2RlbF9kcml2ZXIgX3Nl
dF92ZXIoaTJjX2RlbF9kcml2ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2F0dGFjaF9jbGllbnQgc21w
XzIxNTE3YWY2CiNkZWZpbmUgaTJjX2F0dGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2F0dGFjaF9j
bGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2RldGFjaF9jbGllbnQgc21wXzgxYmI0MzRkCiNkZWZp
bmUgaTJjX2RldGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2RldGFjaF9jbGllbnQpCiNkZWZpbmUg
X192ZXJfaTJjX2luY191c2VfY2xpZW50IHNtcF9iZTVhOGU2OAojZGVmaW5lIGkyY19pbmNfdXNl
X2NsaWVudCBfc2V0X3ZlcihpMmNfaW5jX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2Rl
Y191c2VfY2xpZW50IHNtcF82ZmMzN2ViOQojZGVmaW5lIGkyY19kZWNfdXNlX2NsaWVudCBfc2V0
X3ZlcihpMmNfZGVjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9jbGllbnQgc21w
XzE4YzhmZmE5CiNkZWZpbmUgaTJjX2dldF9jbGllbnQgX3NldF92ZXIoaTJjX2dldF9jbGllbnQp
CiNkZWZpbmUgX192ZXJfaTJjX3VzZV9jbGllbnQgc21wX2Y2MTVjYTgyCiNkZWZpbmUgaTJjX3Vz
ZV9jbGllbnQgX3NldF92ZXIoaTJjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX3JlbGVh
c2VfY2xpZW50IHNtcF8yNzY1M2JhNgojZGVmaW5lIGkyY19yZWxlYXNlX2NsaWVudCBfc2V0X3Zl
cihpMmNfcmVsZWFzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2FkZHIgc21wXzA4
YzkxNDQwCiNkZWZpbmUgaTJjX2NoZWNrX2FkZHIgX3NldF92ZXIoaTJjX2NoZWNrX2FkZHIpCiNk
ZWZpbmUgX192ZXJfaTJjX21hc3Rlcl9zZW5kIHNtcF80ZjA0MDQ2NAojZGVmaW5lIGkyY19tYXN0
ZXJfc2VuZCBfc2V0X3ZlcihpMmNfbWFzdGVyX3NlbmQpCiNkZWZpbmUgX192ZXJfaTJjX21hc3Rl
cl9yZWN2IHNtcF80OWUwYTU5ZAojZGVmaW5lIGkyY19tYXN0ZXJfcmVjdiBfc2V0X3ZlcihpMmNf
bWFzdGVyX3JlY3YpCiNkZWZpbmUgX192ZXJfaTJjX2NvbnRyb2wgc21wXzM4NTg2NGU3CiNkZWZp
bmUgaTJjX2NvbnRyb2wgX3NldF92ZXIoaTJjX2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfaTJjX3Ry
YW5zZmVyIHNtcF81YzI3NGNmZgojZGVmaW5lIGkyY190cmFuc2ZlciBfc2V0X3ZlcihpMmNfdHJh
bnNmZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkYXB0ZXJfaWQgc21wXzI3YTBkYjJkCiNkZWZpbmUg
aTJjX2FkYXB0ZXJfaWQgX3NldF92ZXIoaTJjX2FkYXB0ZXJfaWQpCiNkZWZpbmUgX192ZXJfaTJj
X3Byb2JlIHNtcF9iZTcyNjU3MQojZGVmaW5lIGkyY19wcm9iZSBfc2V0X3ZlcihpMmNfcHJvYmUp
CiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3hmZXIgc21wX2E2YjI5YjA2CiNkZWZpbmUgaTJjX3Nt
YnVzX3hmZXIgX3NldF92ZXIoaTJjX3NtYnVzX3hmZXIpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVz
X3dyaXRlX3F1aWNrIHNtcF81N2FiZDQ1NgojZGVmaW5lIGkyY19zbWJ1c193cml0ZV9xdWljayBf
c2V0X3ZlcihpMmNfc21idXNfd3JpdGVfcXVpY2spCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl
YWRfYnl0ZSBzbXBfYzg1YTJiMjEKI2RlZmluZSBpMmNfc21idXNfcmVhZF9ieXRlIF9zZXRfdmVy
KGkyY19zbWJ1c19yZWFkX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGUg
c21wXzQ0OGJmMjUxCiNkZWZpbmUgaTJjX3NtYnVzX3dyaXRlX2J5dGUgX3NldF92ZXIoaTJjX3Nt
YnVzX3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhIHNt
cF9kNGRlMzMyMwojZGVmaW5lIGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSBfc2V0X3ZlcihpMmNf
c21idXNfcmVhZF9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGVf
ZGF0YSBzbXBfOGE2YjhmYjcKI2RlZmluZSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhIF9zZXRf
dmVyKGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl
YWRfd29yZF9kYXRhIHNtcF9hZmJhZGMwNgojZGVmaW5lIGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0
YSBfc2V0X3ZlcihpMmNfc21idXNfcmVhZF93b3JkX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3Nt
YnVzX3dyaXRlX3dvcmRfZGF0YSBzbXBfMGI5NzRiN2YKI2RlZmluZSBpMmNfc21idXNfd3JpdGVf
d29yZF9kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEpCiNkZWZpbmUgX192
ZXJfaTJjX3NtYnVzX3Byb2Nlc3NfY2FsbCBzbXBfYzMyZGU0MzEKI2RlZmluZSBpMmNfc21idXNf
cHJvY2Vzc19jYWxsIF9zZXRfdmVyKGkyY19zbWJ1c19wcm9jZXNzX2NhbGwpCiNkZWZpbmUgX192
ZXJfaTJjX3NtYnVzX3JlYWRfYmxvY2tfZGF0YSBzbXBfYWZmMTJiMzcKI2RlZmluZSBpMmNfc21i
dXNfcmVhZF9ibG9ja19kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c19yZWFkX2Jsb2NrX2RhdGEpCiNk
ZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgc21wXzA4OWE1MTdhCiNkZWZp
bmUgaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgX3NldF92ZXIoaTJjX3NtYnVzX3dyaXRlX2Js
b2NrX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9mdW5jdGlvbmFsaXR5IHNtcF9mMTM1Yzdm
MQojZGVmaW5lIGkyY19nZXRfZnVuY3Rpb25hbGl0eSBfc2V0X3ZlcihpMmNfZ2V0X2Z1bmN0aW9u
YWxpdHkpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgc21wX2Q1YWE4MjUz
CiNkZWZpbmUgaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgX3NldF92ZXIoaTJjX2NoZWNrX2Z1bmN0
aW9uYWxpdHkpCiMgOTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy
c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl
cy9pMmMtb2xkLnZlciIgMQojIDk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHVsZXMvaTJvX2Jsb2NrLnZlciIgMQojIDk1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvaTJvX2NvbmZpZy52ZXIiIDEKIyA5NiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2kyb19jb3JlLnZlciIgMQojZGVmaW5lIF9fdmVy
X2kyb19jb250cm9sbGVyX2NoYWluIHNtcF9mYjY1NmUzZAojZGVmaW5lIGkyb19jb250cm9sbGVy
X2NoYWluIF9zZXRfdmVyKGkyb19jb250cm9sbGVyX2NoYWluKQojZGVmaW5lIF9fdmVyX2kyb19u
dW1fY29udHJvbGxlcnMgc21wX2ZhZDEzZDIyCiNkZWZpbmUgaTJvX251bV9jb250cm9sbGVycyBf
c2V0X3ZlcihpMm9fbnVtX2NvbnRyb2xsZXJzKQojZGVmaW5lIF9fdmVyX2kyb19maW5kX2NvbnRy
b2xsZXIgc21wXzUyZjEyM2IxCiNkZWZpbmUgaTJvX2ZpbmRfY29udHJvbGxlciBfc2V0X3Zlcihp
Mm9fZmluZF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb191bmxvY2tfY29udHJvbGxlciBz
bXBfMzNjMGYzNjEKI2RlZmluZSBpMm9fdW5sb2NrX2NvbnRyb2xsZXIgX3NldF92ZXIoaTJvX3Vu
bG9ja19jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb19zdGF0dXNfZ2V0IHNtcF9hNjJkZmE3
MQojZGVmaW5lIGkyb19zdGF0dXNfZ2V0IF9zZXRfdmVyKGkyb19zdGF0dXNfZ2V0KQojZGVmaW5l
IF9fdmVyX2kyb19pbnN0YWxsX2hhbmRsZXIgc21wXzQ5ZjA4NDU4CiNkZWZpbmUgaTJvX2luc3Rh
bGxfaGFuZGxlciBfc2V0X3ZlcihpMm9faW5zdGFsbF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2ky
b19yZW1vdmVfaGFuZGxlciBzbXBfNzZmYTJjMjAKI2RlZmluZSBpMm9fcmVtb3ZlX2hhbmRsZXIg
X3NldF92ZXIoaTJvX3JlbW92ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2kyb19jbGFpbV9kZXZp
Y2Ugc21wXzRkZmI5MDdkCiNkZWZpbmUgaTJvX2NsYWltX2RldmljZSBfc2V0X3ZlcihpMm9fY2xh
aW1fZGV2aWNlKQojZGVmaW5lIF9fdmVyX2kyb19yZWxlYXNlX2RldmljZSBzbXBfYjdkOWY2MDkK
I2RlZmluZSBpMm9fcmVsZWFzZV9kZXZpY2UgX3NldF92ZXIoaTJvX3JlbGVhc2VfZGV2aWNlKQoj
ZGVmaW5lIF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29uIHNtcF82Y2IxZGQxZQojZGVmaW5lIGky
b19kZXZpY2Vfbm90aWZ5X29uIF9zZXRfdmVyKGkyb19kZXZpY2Vfbm90aWZ5X29uKQojZGVmaW5l
IF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29mZiBzbXBfZjY1OGQ1ODcKI2RlZmluZSBpMm9fZGV2
aWNlX25vdGlmeV9vZmYgX3NldF92ZXIoaTJvX2RldmljZV9ub3RpZnlfb2ZmKQojZGVmaW5lIF9f
dmVyX2kyb19wb3N0X3RoaXMgc21wX2UyZWI0YjYwCiNkZWZpbmUgaTJvX3Bvc3RfdGhpcyBfc2V0
X3ZlcihpMm9fcG9zdF90aGlzKQojZGVmaW5lIF9fdmVyX2kyb19wb3N0X3dhaXQgc21wX2FiMmFj
MmM1CiNkZWZpbmUgaTJvX3Bvc3Rfd2FpdCBfc2V0X3ZlcihpMm9fcG9zdF93YWl0KQojZGVmaW5l
IF9fdmVyX2kyb19wb3N0X3dhaXRfbWVtIHNtcF9iOGM4ZDNhNgojZGVmaW5lIGkyb19wb3N0X3dh
aXRfbWVtIF9zZXRfdmVyKGkyb19wb3N0X3dhaXRfbWVtKQojZGVmaW5lIF9fdmVyX2kyb19xdWVy
eV9zY2FsYXIgc21wXzM0ODQyMTMzCiNkZWZpbmUgaTJvX3F1ZXJ5X3NjYWxhciBfc2V0X3Zlcihp
Mm9fcXVlcnlfc2NhbGFyKQojZGVmaW5lIF9fdmVyX2kyb19zZXRfc2NhbGFyIHNtcF9iOWZhZWQ4
MAojZGVmaW5lIGkyb19zZXRfc2NhbGFyIF9zZXRfdmVyKGkyb19zZXRfc2NhbGFyKQojZGVmaW5l
IF9fdmVyX2kyb19xdWVyeV90YWJsZSBzbXBfZWNmYjlmYzQKI2RlZmluZSBpMm9fcXVlcnlfdGFi
bGUgX3NldF92ZXIoaTJvX3F1ZXJ5X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19jbGVhcl90YWJs
ZSBzbXBfOGFiZDEyYzcKI2RlZmluZSBpMm9fY2xlYXJfdGFibGUgX3NldF92ZXIoaTJvX2NsZWFy
X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19yb3dfYWRkX3RhYmxlIHNtcF9jYTJkNGU5OAojZGVm
aW5lIGkyb19yb3dfYWRkX3RhYmxlIF9zZXRfdmVyKGkyb19yb3dfYWRkX3RhYmxlKQojZGVmaW5l
IF9fdmVyX2kyb19pc3N1ZV9wYXJhbXMgc21wXzExYWQ5YzZkCiNkZWZpbmUgaTJvX2lzc3VlX3Bh
cmFtcyBfc2V0X3ZlcihpMm9faXNzdWVfcGFyYW1zKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9y
ZWdpc3RlciBzbXBfZGViYzIyMzMKI2RlZmluZSBpMm9fZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIo
aTJvX2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9hY2sgc21wXzE4OGJi
YjI4CiNkZWZpbmUgaTJvX2V2ZW50X2FjayBfc2V0X3ZlcihpMm9fZXZlbnRfYWNrKQojZGVmaW5l
IF9fdmVyX2kyb19yZXBvcnRfc3RhdHVzIHNtcF9lM2IyYzA3NwojZGVmaW5lIGkyb19yZXBvcnRf
c3RhdHVzIF9zZXRfdmVyKGkyb19yZXBvcnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX2kyb19kdW1w
X21lc3NhZ2Ugc21wX2VmOGZiYTI3CiNkZWZpbmUgaTJvX2R1bXBfbWVzc2FnZSBfc2V0X3Zlcihp
Mm9fZHVtcF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2kyb19nZXRfY2xhc3NfbmFtZSBzbXBfZjBm
OWVkMzkKI2RlZmluZSBpMm9fZ2V0X2NsYXNzX25hbWUgX3NldF92ZXIoaTJvX2dldF9jbGFzc19u
YW1lKQojIDk3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJv
X2xhbi52ZXIiIDEKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2kyb19wY2kudmVyIiAxCiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9pMm9fcHJvYy52ZXIiIDEKIyAxMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy9pMm9fc2NzaS52ZXIiIDEKIyAxMDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pODEwX2Rydi52ZXIiIDEKIyAxMDIgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pYTY0X2tzeW1zLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX21lbWNociBzbXBfYzc0MGM2NGEKI2RlZmluZSBtZW1jaHIgX3NldF92ZXIo
bWVtY2hyKQojZGVmaW5lIF9fdmVyX21lbWNtcCBzbXBfYzdlYzI4YjAKI2RlZmluZSBtZW1jbXAg
X3NldF92ZXIobWVtY21wKQojZGVmaW5lIF9fdmVyX21lbW1vdmUgc21wXzVkYmJlOThlCiNkZWZp
bmUgbWVtbW92ZSBfc2V0X3ZlcihtZW1tb3ZlKQojZGVmaW5lIF9fdmVyX21lbXNjYW4gc21wXzlj
MGVhM2NkCiNkZWZpbmUgbWVtc2NhbiBfc2V0X3ZlcihtZW1zY2FuKQojZGVmaW5lIF9fdmVyX3N0
cmNhdCBzbXBfMDYxNjUxYmUKI2RlZmluZSBzdHJjYXQgX3NldF92ZXIoc3RyY2F0KQojZGVmaW5l
IF9fdmVyX3N0cmNociBzbXBfMzQ5Y2JhODUKI2RlZmluZSBzdHJjaHIgX3NldF92ZXIoc3RyY2hy
KQojZGVmaW5lIF9fdmVyX3N0cmNtcCBzbXBfZTJkNTI1NWEKI2RlZmluZSBzdHJjbXAgX3NldF92
ZXIoc3RyY21wKQojZGVmaW5lIF9fdmVyX3N0cmNweSBzbXBfZTkxNGU0MWUKI2RlZmluZSBzdHJj
cHkgX3NldF92ZXIoc3RyY3B5KQojZGVmaW5lIF9fdmVyX3N0cmxlbiBzbXBfZGNiNTY3MWQKI2Rl
ZmluZSBzdHJsZW4gX3NldF92ZXIoc3RybGVuKQojZGVmaW5lIF9fdmVyX3N0cm5jYXQgc21wXzIz
NDUwOWYzCiNkZWZpbmUgc3RybmNhdCBfc2V0X3ZlcihzdHJuY2F0KQojZGVmaW5lIF9fdmVyX3N0
cm5jbXAgc21wXzg1YWJjODVmCiNkZWZpbmUgc3RybmNtcCBfc2V0X3ZlcihzdHJuY21wKQojZGVm
aW5lIF9fdmVyX3N0cm5jcHkgc21wXzdlYzliZmJjCiNkZWZpbmUgc3RybmNweSBfc2V0X3Zlcihz
dHJuY3B5KQojZGVmaW5lIF9fdmVyX3N0cm5sZW4gc21wX2NjMDdhZjc1CiNkZWZpbmUgc3Rybmxl
biBfc2V0X3ZlcihzdHJubGVuKQojZGVmaW5lIF9fdmVyX3N0cnJjaHIgc21wXzlmOTg0NTEzCiNk
ZWZpbmUgc3RycmNociBfc2V0X3ZlcihzdHJyY2hyKQojZGVmaW5lIF9fdmVyX3N0cnN0ciBzbXBf
MWU2ZDI2YTgKI2RlZmluZSBzdHJzdHIgX3NldF92ZXIoc3Ryc3RyKQojZGVmaW5lIF9fdmVyX3N0
cnRvayBzbXBfZWU5YzFiZDQKI2RlZmluZSBzdHJ0b2sgX3NldF92ZXIoc3RydG9rKQojZGVmaW5l
IF9fdmVyX2lzYV9pcnFfdG9fdmVjdG9yX21hcCBzbXBfM2FlZDc1MjcKI2RlZmluZSBpc2FfaXJx
X3RvX3ZlY3Rvcl9tYXAgX3NldF92ZXIoaXNhX2lycV90b192ZWN0b3JfbWFwKQojZGVmaW5lIF9f
dmVyX2VuYWJsZV9pcnEgc21wX2ZjZWMwOTg3CiNkZWZpbmUgZW5hYmxlX2lycSBfc2V0X3Zlcihl
bmFibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVfaXJxIHNtcF8zY2U0Y2E2ZgojZGVmaW5l
IGRpc2FibGVfaXJxIF9zZXRfdmVyKGRpc2FibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVf
aXJxX25vc3luYyBzbXBfMjdiYmYyMjEKI2RlZmluZSBkaXNhYmxlX2lycV9ub3N5bmMgX3NldF92
ZXIoZGlzYWJsZV9pcnFfbm9zeW5jKQojZGVmaW5lIF9fdmVyX3Byb2JlX2lycV9tYXNrIHNtcF8z
NjBiMWFmZQojZGVmaW5lIHByb2JlX2lycV9tYXNrIF9zZXRfdmVyKHByb2JlX2lycV9tYXNrKQoj
ZGVmaW5lIF9fdmVyX2NzdW1fcGFydGlhbF9jb3B5X25vY2hlY2sgc21wXzMwYWQzN2Y4CiNkZWZp
bmUgY3N1bV9wYXJ0aWFsX2NvcHlfbm9jaGVjayBfc2V0X3Zlcihjc3VtX3BhcnRpYWxfY29weV9u
b2NoZWNrKQojZGVmaW5lIF9fdmVyX2NzdW1fdGNwdWRwX21hZ2ljIHNtcF80MGQ3Zjc2NgojZGVm
aW5lIGNzdW1fdGNwdWRwX21hZ2ljIF9zZXRfdmVyKGNzdW1fdGNwdWRwX21hZ2ljKQojZGVmaW5l
IF9fdmVyX2lwX2NvbXB1dGVfY3N1bSBzbXBfZTVlMjk4ZWEKI2RlZmluZSBpcF9jb21wdXRlX2Nz
dW0gX3NldF92ZXIoaXBfY29tcHV0ZV9jc3VtKQojZGVmaW5lIF9fdmVyX2lwX2Zhc3RfY3N1bSBz
bXBfZTQ2MjdkMTYKI2RlZmluZSBpcF9mYXN0X2NzdW0gX3NldF92ZXIoaXBfZmFzdF9jc3VtKQoj
ZGVmaW5lIF9fdmVyX19faWE2NF9tZW1jcHlfZnJvbWlvIHNtcF9hYzRmNWEzYwojZGVmaW5lIF9f
aWE2NF9tZW1jcHlfZnJvbWlvIF9zZXRfdmVyKF9faWE2NF9tZW1jcHlfZnJvbWlvKQojZGVmaW5l
IF9fdmVyX19faWE2NF9tZW1jcHlfdG9pbyBzbXBfNjRlMDgwZGMKI2RlZmluZSBfX2lhNjRfbWVt
Y3B5X3RvaW8gX3NldF92ZXIoX19pYTY0X21lbWNweV90b2lvKQojZGVmaW5lIF9fdmVyX19faWE2
NF9tZW1zZXRfY19pbyBzbXBfYmZmNzBjODgKI2RlZmluZSBfX2lhNjRfbWVtc2V0X2NfaW8gX3Nl
dF92ZXIoX19pYTY0X21lbXNldF9jX2lvKQojZGVmaW5lIF9fdmVyX2NsZWFyX3BhZ2Ugc21wXzNk
OWVlOWYwCiNkZWZpbmUgY2xlYXJfcGFnZSBfc2V0X3ZlcihjbGVhcl9wYWdlKQojZGVmaW5lIF9f
dmVyX19jcHVfZGF0YSBzbXBfZDJmZjUwZjUKI2RlZmluZSBfY3B1X2RhdGEgX3NldF92ZXIoX2Nw
dV9kYXRhKQojZGVmaW5lIF9fdmVyX2tlcm5lbF90aHJlYWQgc21wXzdlOWViYjA1CiNkZWZpbmUg
a2VybmVsX3RocmVhZCBfc2V0X3ZlcihrZXJuZWxfdGhyZWFkKQojZGVmaW5lIF9fdmVyX3NtcF9m
bHVzaF90bGJfYWxsIHNtcF8wMGQ0ZTdkZQojZGVmaW5lIHNtcF9mbHVzaF90bGJfYWxsIF9zZXRf
dmVyKHNtcF9mbHVzaF90bGJfYWxsKQojZGVmaW5lIF9fdmVyX3N5bmNocm9uaXplX2lycSBzbXBf
MTQzYmIyMTcKI2RlZmluZSBzeW5jaHJvbml6ZV9pcnEgX3NldF92ZXIoc3luY2hyb25pemVfaXJx
KQojZGVmaW5lIF9fdmVyX3NtcF9jYWxsX2Z1bmN0aW9uIHNtcF8wMDE0YmZkMQojZGVmaW5lIHNt
cF9jYWxsX2Z1bmN0aW9uIF9zZXRfdmVyKHNtcF9jYWxsX2Z1bmN0aW9uKQojZGVmaW5lIF9fdmVy
X3NtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZSBzbXBfYWY3ZTY4MDEKI2RlZmluZSBzbXBfY2FsbF9m
dW5jdGlvbl9zaW5nbGUgX3NldF92ZXIoc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKQojZGVmaW5l
IF9fdmVyX2NwdV9vbmxpbmVfbWFwIHNtcF81NzFiNmE4OQojZGVmaW5lIGNwdV9vbmxpbmVfbWFw
IF9zZXRfdmVyKGNwdV9vbmxpbmVfbWFwKQojZGVmaW5lIF9fdmVyX2lhNjRfY3B1X3RvX3NhcGlj
aWQgc21wX2U1MmQ3NTVmCiNkZWZpbmUgaWE2NF9jcHVfdG9fc2FwaWNpZCBfc2V0X3ZlcihpYTY0
X2NwdV90b19zYXBpY2lkKQojZGVmaW5lIF9fdmVyX3NtcF9udW1fY3B1cyBzbXBfM2I4NjMzNGQK
I2RlZmluZSBzbXBfbnVtX2NwdXMgX3NldF92ZXIoc21wX251bV9jcHVzKQojZGVmaW5lIF9fdmVy
X2tlcm5lbF9mbGFnIHNtcF9hOTlkZDgwMAojZGVmaW5lIGtlcm5lbF9mbGFnIF9zZXRfdmVyKGtl
cm5lbF9mbGFnKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3N0aSBzbXBfZGE0NDU2ZGQKI2RlZmlu
ZSBfX2dsb2JhbF9zdGkgX3NldF92ZXIoX19nbG9iYWxfc3RpKQojZGVmaW5lIF9fdmVyX19fZ2xv
YmFsX2NsaSBzbXBfNjQ1NzZiMDUKI2RlZmluZSBfX2dsb2JhbF9jbGkgX3NldF92ZXIoX19nbG9i
YWxfY2xpKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3NhdmVfZmxhZ3Mgc21wXzVkOTAyZTk2CiNk
ZWZpbmUgX19nbG9iYWxfc2F2ZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9zYXZlX2ZsYWdzKQoj
ZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3Mgc21wXzU0ZGQxZGNiCiNkZWZpbmUg
X19nbG9iYWxfcmVzdG9yZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9yZXN0b3JlX2ZsYWdzKQoj
ZGVmaW5lIF9fdmVyX19fY29weV91c2VyIHNtcF9lNTI2ZjEzNgojZGVmaW5lIF9fY29weV91c2Vy
IF9zZXRfdmVyKF9fY29weV91c2VyKQojZGVmaW5lIF9fdmVyX19fZG9fY2xlYXJfdXNlciBzbXBf
M2Y2YmM2MzMKI2RlZmluZSBfX2RvX2NsZWFyX3VzZXIgX3NldF92ZXIoX19kb19jbGVhcl91c2Vy
KQojZGVmaW5lIF9fdmVyX19fc3RybGVuX3VzZXIgc21wX2YxMzk0YTJhCiNkZWZpbmUgX19zdHJs
ZW5fdXNlciBfc2V0X3ZlcihfX3N0cmxlbl91c2VyKQojZGVmaW5lIF9fdmVyX19fc3RybmNweV9m
cm9tX3VzZXIgc21wX2MwMDNjNjM3CiNkZWZpbmUgX19zdHJuY3B5X2Zyb21fdXNlciBfc2V0X3Zl
cihfX3N0cm5jcHlfZnJvbV91c2VyKQojZGVmaW5lIF9fdmVyX19fc3Rybmxlbl91c2VyIHNtcF8w
MGVlZjQ5ZQojZGVmaW5lIF9fc3Rybmxlbl91c2VyIF9zZXRfdmVyKF9fc3Rybmxlbl91c2VyKQoj
ZGVmaW5lIF9fdmVyX19faWE2NF9zeXNjYWxsIHNtcF9lYmIzOTU2ZQojZGVmaW5lIF9faWE2NF9z
eXNjYWxsIF9zZXRfdmVyKF9faWE2NF9zeXNjYWxsKQojZGVmaW5lIF9fdmVyX2lhNjRfaW9iYXNl
IHNtcF8wOGU2YjAwNwojZGVmaW5lIGlhNjRfaW9iYXNlIF9zZXRfdmVyKGlhNjRfaW9iYXNlKQoj
ZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIHNtcF9mYmJjYTdkYwojZGVm
aW5lIGlhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIF9zZXRfdmVyKGlhNjRfcGFsX2NhbGxfcGh5
c19zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGF0aWMgc21wXzBl
NDAyMzcwCiNkZWZpbmUgaWE2NF9wYWxfY2FsbF9waHlzX3N0YXRpYyBfc2V0X3ZlcihpYTY0X3Bh
bF9jYWxsX3BoeXNfc3RhdGljKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhY2tlZCBz
bXBfYWZjMTNlNjQKI2RlZmluZSBpYTY0X3BhbF9jYWxsX3N0YWNrZWQgX3NldF92ZXIoaWE2NF9w
YWxfY2FsbF9zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhdGljIHNtcF9j
YTQ4NGIyYwojZGVmaW5lIGlhNjRfcGFsX2NhbGxfc3RhdGljIF9zZXRfdmVyKGlhNjRfcGFsX2Nh
bGxfc3RhdGljKQojZGVmaW5lIF9fdmVyX2VmaSBzbXBfMjNjYjAyZDkKI2RlZmluZSBlZmkgX3Nl
dF92ZXIoZWZpKQojZGVmaW5lIF9fdmVyX2VmaV9kaXIgc21wXzBlNDg2NDFkCiNkZWZpbmUgZWZp
X2RpciBfc2V0X3ZlcihlZmlfZGlyKQojIDEwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2libS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX2ZpbGxn
ZW8gc21wXzc5NzE4NDFiCiNkZWZpbmUgZ2VuaGRfZGFzZF9maWxsZ2VvIF9zZXRfdmVyKGdlbmhk
X2Rhc2RfZmlsbGdlbykKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX25hbWUgc21wXzg0NWI3Mzk0
CiNkZWZpbmUgZ2VuaGRfZGFzZF9uYW1lIF9zZXRfdmVyKGdlbmhkX2Rhc2RfbmFtZSkKIyAxMDQg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pZGUtZmVhdHVyZXMu
dmVyIiAxCiNkZWZpbmUgX192ZXJfaWRlX2F1dG9fcmVkdWNlX3hmZXIgc21wXzA3Y2E1MjNlCiNk
ZWZpbmUgaWRlX2F1dG9fcmVkdWNlX3hmZXIgX3NldF92ZXIoaWRlX2F1dG9fcmVkdWNlX3hmZXIp
CiNkZWZpbmUgX192ZXJfaWRlX2RyaXZlaWRfdXBkYXRlIHNtcF85NTc0NTU1NwojZGVmaW5lIGlk
ZV9kcml2ZWlkX3VwZGF0ZSBfc2V0X3ZlcihpZGVfZHJpdmVpZF91cGRhdGUpCiNkZWZpbmUgX192
ZXJfaWRlX2F0YTY2X2NoZWNrIHNtcF9kMWFhZGVkOAojZGVmaW5lIGlkZV9hdGE2Nl9jaGVjayBf
c2V0X3ZlcihpZGVfYXRhNjZfY2hlY2spCiNkZWZpbmUgX192ZXJfc2V0X3RyYW5zZmVyIHNtcF83
MjEwMzE2NQojZGVmaW5lIHNldF90cmFuc2ZlciBfc2V0X3ZlcihzZXRfdHJhbnNmZXIpCiNkZWZp
bmUgX192ZXJfZWlnaHR5X25pbnR5X3RocmVlIHNtcF9lYzhhN2EzOAojZGVmaW5lIGVpZ2h0eV9u
aW50eV90aHJlZSBfc2V0X3ZlcihlaWdodHlfbmludHlfdGhyZWUpCiNkZWZpbmUgX192ZXJfaWRl
X2NvbmZpZ19kcml2ZV9zcGVlZCBzbXBfNzA1ZTVjYmUKI2RlZmluZSBpZGVfY29uZmlnX2RyaXZl
X3NwZWVkIF9zZXRfdmVyKGlkZV9jb25maWdfZHJpdmVfc3BlZWQpCiMgMTA1ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaWRlLnZlciIgMQojZGVmaW5lIF9fdmVy
X2lkZV9od2lmcyBzbXBfM2EwODJlZDgKI2RlZmluZSBpZGVfaHdpZnMgX3NldF92ZXIoaWRlX2h3
aWZzKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9tb2R1bGUgc21wXzg1MjY3MDRmCiNkZWZp
bmUgaWRlX3JlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfbW9kdWxlKQojZGVm
aW5lIF9fdmVyX2lkZV91bnJlZ2lzdGVyX21vZHVsZSBzbXBfYWQzODFiMTgKI2RlZmluZSBpZGVf
dW5yZWdpc3Rlcl9tb2R1bGUgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfbW9kdWxlKQojZGVmaW5l
IF9fdmVyX2lkZV9zcGluX3dhaXRfaHdncm91cCBzbXBfN2EyN2Y1NjQKI2RlZmluZSBpZGVfc3Bp
bl93YWl0X2h3Z3JvdXAgX3NldF92ZXIoaWRlX3NwaW5fd2FpdF9od2dyb3VwKQojZGVmaW5lIF9f
dmVyX2lkZV9wcm9iZSBzbXBfMDg5N2ZhNjkKI2RlZmluZSBpZGVfcHJvYmUgX3NldF92ZXIoaWRl
X3Byb2JlKQojZGVmaW5lIF9fdmVyX2RyaXZlX2lzX2ZsYXNoY2FyZCBzbXBfOTdmMmNmZWMKI2Rl
ZmluZSBkcml2ZV9pc19mbGFzaGNhcmQgX3NldF92ZXIoZHJpdmVfaXNfZmxhc2hjYXJkKQojZGVm
aW5lIF9fdmVyX2lkZV90aW1lcl9leHBpcnkgc21wX2E3YWM5ZjViCiNkZWZpbmUgaWRlX3RpbWVy
X2V4cGlyeSBfc2V0X3ZlcihpZGVfdGltZXJfZXhwaXJ5KQojZGVmaW5lIF9fdmVyX2lkZV9pbnRy
IHNtcF83NzU1ZDA3ZgojZGVmaW5lIGlkZV9pbnRyIF9zZXRfdmVyKGlkZV9pbnRyKQojZGVmaW5l
IF9fdmVyX2lkZV9mb3BzIHNtcF8wMGZlYTQ0MQojZGVmaW5lIGlkZV9mb3BzIF9zZXRfdmVyKGlk
ZV9mb3BzKQojZGVmaW5lIF9fdmVyX2lkZV9nZXRfcXVldWUgc21wXzlkNDhhYTM0CiNkZWZpbmUg
aWRlX2dldF9xdWV1ZSBfc2V0X3ZlcihpZGVfZ2V0X3F1ZXVlKQojZGVmaW5lIF9fdmVyX2lkZV9h
ZGRfZ2VuZXJpY19zZXR0aW5ncyBzbXBfMmNjM2VkYjcKI2RlZmluZSBpZGVfYWRkX2dlbmVyaWNf
c2V0dGluZ3MgX3NldF92ZXIoaWRlX2FkZF9nZW5lcmljX3NldHRpbmdzKQojZGVmaW5lIF9fdmVy
X2lkZV9kZXZmc19oYW5kbGUgc21wX2ViNTNjMGEyCiNkZWZpbmUgaWRlX2RldmZzX2hhbmRsZSBf
c2V0X3ZlcihpZGVfZGV2ZnNfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2RvX2lkZV9yZXF1ZXN0IHNt
cF84YTQzYTE4NwojZGVmaW5lIGRvX2lkZV9yZXF1ZXN0IF9zZXRfdmVyKGRvX2lkZV9yZXF1ZXN0
KQojZGVmaW5lIF9fdmVyX2lkZV9zY2FuX2RldmljZXMgc21wXzBlYzM5ZTg4CiNkZWZpbmUgaWRl
X3NjYW5fZGV2aWNlcyBfc2V0X3ZlcihpZGVfc2Nhbl9kZXZpY2VzKQojZGVmaW5lIF9fdmVyX2lk
ZV9yZWdpc3Rlcl9zdWJkcml2ZXIgc21wXzE5NmRmZTY0CiNkZWZpbmUgaWRlX3JlZ2lzdGVyX3N1
YmRyaXZlciBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVyX2lk
ZV91bnJlZ2lzdGVyX3N1YmRyaXZlciBzbXBfNzA4MTgxNzgKI2RlZmluZSBpZGVfdW5yZWdpc3Rl
cl9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9f
dmVyX2lkZV9yZXBsYWNlX3N1YmRyaXZlciBzbXBfOWU0YzJlNjIKI2RlZmluZSBpZGVfcmVwbGFj
ZV9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3JlcGxhY2Vfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVy
X2lkZV9pbnB1dF9kYXRhIHNtcF8zNmZmZmYzNQojZGVmaW5lIGlkZV9pbnB1dF9kYXRhIF9zZXRf
dmVyKGlkZV9pbnB1dF9kYXRhKQojZGVmaW5lIF9fdmVyX2lkZV9vdXRwdXRfZGF0YSBzbXBfZjRl
NTkxZTMKI2RlZmluZSBpZGVfb3V0cHV0X2RhdGEgX3NldF92ZXIoaWRlX291dHB1dF9kYXRhKQoj
ZGVmaW5lIF9fdmVyX2F0YXBpX2lucHV0X2J5dGVzIHNtcF8xMWQ0NmY5OQojZGVmaW5lIGF0YXBp
X2lucHV0X2J5dGVzIF9zZXRfdmVyKGF0YXBpX2lucHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2F0
YXBpX291dHB1dF9ieXRlcyBzbXBfZjk2MDM0NjQKI2RlZmluZSBhdGFwaV9vdXRwdXRfYnl0ZXMg
X3NldF92ZXIoYXRhcGlfb3V0cHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2lkZV9zZXRfaGFuZGxl
ciBzbXBfZDdhZDU4NzMKI2RlZmluZSBpZGVfc2V0X2hhbmRsZXIgX3NldF92ZXIoaWRlX3NldF9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2lkZV9kdW1wX3N0YXR1cyBzbXBfZDZjN2M4NWUKI2RlZmlu
ZSBpZGVfZHVtcF9zdGF0dXMgX3NldF92ZXIoaWRlX2R1bXBfc3RhdHVzKQojZGVmaW5lIF9fdmVy
X2lkZV9lcnJvciBzbXBfMWEyZjBiZDgKI2RlZmluZSBpZGVfZXJyb3IgX3NldF92ZXIoaWRlX2Vy
cm9yKQojZGVmaW5lIF9fdmVyX2lkZV9maXhzdHJpbmcgc21wXzJlYWU0YTE5CiNkZWZpbmUgaWRl
X2ZpeHN0cmluZyBfc2V0X3ZlcihpZGVfZml4c3RyaW5nKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0
X3N0YXQgc21wX2RkODNlOGJmCiNkZWZpbmUgaWRlX3dhaXRfc3RhdCBfc2V0X3ZlcihpZGVfd2Fp
dF9zdGF0KQojZGVmaW5lIF9fdmVyX2lkZV9kb19yZXNldCBzbXBfMjE2MmUxZWUKI2RlZmluZSBp
ZGVfZG9fcmVzZXQgX3NldF92ZXIoaWRlX2RvX3Jlc2V0KQojZGVmaW5lIF9fdmVyX2lkZV9pbml0
X2RyaXZlX2NtZCBzbXBfNGI3YTE4NzkKI2RlZmluZSBpZGVfaW5pdF9kcml2ZV9jbWQgX3NldF92
ZXIoaWRlX2luaXRfZHJpdmVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV9kb19kcml2ZV9jbWQgc21w
Xzc5OTRjMjczCiNkZWZpbmUgaWRlX2RvX2RyaXZlX2NtZCBfc2V0X3ZlcihpZGVfZG9fZHJpdmVf
Y21kKQojZGVmaW5lIF9fdmVyX2lkZV9lbmRfZHJpdmVfY21kIHNtcF9hY2ZiMzc0ZAojZGVmaW5l
IGlkZV9lbmRfZHJpdmVfY21kIF9zZXRfdmVyKGlkZV9lbmRfZHJpdmVfY21kKQojZGVmaW5lIF9f
dmVyX2lkZV9lbmRfcmVxdWVzdCBzbXBfMmU1NmQzNjAKI2RlZmluZSBpZGVfZW5kX3JlcXVlc3Qg
X3NldF92ZXIoaWRlX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX2lkZV9yZXZhbGlkYXRlX2Rp
c2sgc21wXzBlNjA0NDQyCiNkZWZpbmUgaWRlX3JldmFsaWRhdGVfZGlzayBfc2V0X3ZlcihpZGVf
cmV2YWxpZGF0ZV9kaXNrKQojZGVmaW5lIF9fdmVyX2lkZV9jbWQgc21wXzc0MjM1ZDgxCiNkZWZp
bmUgaWRlX2NtZCBfc2V0X3ZlcihpZGVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZCBz
bXBfNTFhNjc0ZTYKI2RlZmluZSBpZGVfd2FpdF9jbWQgX3NldF92ZXIoaWRlX3dhaXRfY21kKQoj
ZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZF90YXNrIHNtcF8wZTNmYWFiOQojZGVmaW5lIGlkZV93
YWl0X2NtZF90YXNrIF9zZXRfdmVyKGlkZV93YWl0X2NtZF90YXNrKQojZGVmaW5lIF9fdmVyX2lk
ZV9kZWxheV81MG1zIHNtcF83ZjlhYjU1NAojZGVmaW5lIGlkZV9kZWxheV81MG1zIF9zZXRfdmVy
KGlkZV9kZWxheV81MG1zKQojZGVmaW5lIF9fdmVyX2lkZV9zdGFsbF9xdWV1ZSBzbXBfNmUwY2Ux
YWYKI2RlZmluZSBpZGVfc3RhbGxfcXVldWUgX3NldF92ZXIoaWRlX3N0YWxsX3F1ZXVlKQojZGVm
aW5lIF9fdmVyX2lkZV9hZGRfcHJvY19lbnRyaWVzIHNtcF81NTEwYjQ5YgojZGVmaW5lIGlkZV9h
ZGRfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9hZGRfcHJvY19lbnRyaWVzKQojZGVmaW5lIF9f
dmVyX2lkZV9yZW1vdmVfcHJvY19lbnRyaWVzIHNtcF9jYzQ5YmRiNQojZGVmaW5lIGlkZV9yZW1v
dmVfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9yZW1vdmVfcHJvY19lbnRyaWVzKQojZGVmaW5l
IF9fdmVyX3Byb2NfaWRlX3JlYWRfZ2VvbWV0cnkgc21wXzUwZmVkNmY3CiNkZWZpbmUgcHJvY19p
ZGVfcmVhZF9nZW9tZXRyeSBfc2V0X3Zlcihwcm9jX2lkZV9yZWFkX2dlb21ldHJ5KQojZGVmaW5l
IF9fdmVyX2NyZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIHNtcF9hYjJjNjAwZQojZGVmaW5lIGNy
ZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2lkZV9pbnRlcmZh
Y2VzKQojZGVmaW5lIF9fdmVyX2lkZV9hZGRfc2V0dGluZyBzbXBfYWFhOTVmMzkKI2RlZmluZSBp
ZGVfYWRkX3NldHRpbmcgX3NldF92ZXIoaWRlX2FkZF9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lk
ZV9yZW1vdmVfc2V0dGluZyBzbXBfZTA0NGI4ZDMKI2RlZmluZSBpZGVfcmVtb3ZlX3NldHRpbmcg
X3NldF92ZXIoaWRlX3JlbW92ZV9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9o
dyBzbXBfNTBmYzY3YjMKI2RlZmluZSBpZGVfcmVnaXN0ZXJfaHcgX3NldF92ZXIoaWRlX3JlZ2lz
dGVyX2h3KQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3RlciBzbXBfM2I1NTg2ZDgKI2RlZmluZSBp
ZGVfcmVnaXN0ZXIgX3NldF92ZXIoaWRlX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV91bnJl
Z2lzdGVyIHNtcF8wYzQ4NmI3MgojZGVmaW5lIGlkZV91bnJlZ2lzdGVyIF9zZXRfdmVyKGlkZV91
bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV9zZXR1cF9wb3J0cyBzbXBfOTQwMGRiNWIKI2Rl
ZmluZSBpZGVfc2V0dXBfcG9ydHMgX3NldF92ZXIoaWRlX3NldHVwX3BvcnRzKQojZGVmaW5lIF9f
dmVyX2h3aWZfdW5yZWdpc3RlciBzbXBfYzQxYmM1OTQKI2RlZmluZSBod2lmX3VucmVnaXN0ZXIg
X3NldF92ZXIoaHdpZl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2dldF9pbmZvX3B0ciBzbXBf
MGRmYzM5NzYKI2RlZmluZSBnZXRfaW5mb19wdHIgX3NldF92ZXIoZ2V0X2luZm9fcHRyKQojZGVm
aW5lIF9fdmVyX2N1cnJlbnRfY2FwYWNpdHkgc21wXzU5NGFhMWZiCiNkZWZpbmUgY3VycmVudF9j
YXBhY2l0eSBfc2V0X3ZlcihjdXJyZW50X2NhcGFjaXR5KQojZGVmaW5lIF9fdmVyX3N5c3RlbV9i
dXNfY2xvY2sgc21wX2VlNWExMWViCiNkZWZpbmUgc3lzdGVtX2J1c19jbG9jayBfc2V0X3Zlcihz
eXN0ZW1fYnVzX2Nsb2NrKQojIDEwNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL2lkdDc3MTA1LnZlciIgMQojZGVmaW5lIF9fdmVyX2lkdDc3MTA1X2luaXQgc21w
XzljOGVjYWMzCiNkZWZpbmUgaWR0NzcxMDVfaW5pdCBfc2V0X3ZlcihpZHQ3NzEwNV9pbml0KQoj
ZGVmaW5lIF9fdmVyX2lkdDc3MTA1X3N0b3Agc21wXzMxZjgwYWI4CiNkZWZpbmUgaWR0NzcxMDVf
c3RvcCBfc2V0X3ZlcihpZHQ3NzEwNV9zdG9wKQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2llZWUxMzk0X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJf
aHBzYl9yZWdpc3Rlcl9sb3dsZXZlbCBzbXBfMDY0ODExZjAKI2RlZmluZSBocHNiX3JlZ2lzdGVy
X2xvd2xldmVsIF9zZXRfdmVyKGhwc2JfcmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUgX192ZXJf
aHBzYl91bnJlZ2lzdGVyX2xvd2xldmVsIHNtcF84YzcwMTI0YQojZGVmaW5lIGhwc2JfdW5yZWdp
c3Rlcl9sb3dsZXZlbCBfc2V0X3ZlcihocHNiX3VucmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUg
X192ZXJfaHBzYl9nZXRfaG9zdCBzbXBfMmRhMjM3MTkKI2RlZmluZSBocHNiX2dldF9ob3N0IF9z
ZXRfdmVyKGhwc2JfZ2V0X2hvc3QpCiNkZWZpbmUgX192ZXJfaHBzYl9pbmNfaG9zdF91c2FnZSBz
bXBfYTMxMzQ0NjIKI2RlZmluZSBocHNiX2luY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfaW5j
X2hvc3RfdXNhZ2UpCiNkZWZpbmUgX192ZXJfaHBzYl9kZWNfaG9zdF91c2FnZSBzbXBfMTE5YTFm
OWIKI2RlZmluZSBocHNiX2RlY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfZGVjX2hvc3RfdXNh
Z2UpCiNkZWZpbmUgX192ZXJfYWxsb2NfaHBzYl9wYWNrZXQgc21wXzQ3YzU2ZmM2CiNkZWZpbmUg
YWxsb2NfaHBzYl9wYWNrZXQgX3NldF92ZXIoYWxsb2NfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192
ZXJfZnJlZV9ocHNiX3BhY2tldCBzbXBfMjAxODIxMzEKI2RlZmluZSBmcmVlX2hwc2JfcGFja2V0
IF9zZXRfdmVyKGZyZWVfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZW5kX3BhY2tl
dCBzbXBfYjVhNjgxNDQKI2RlZmluZSBocHNiX3NlbmRfcGFja2V0IF9zZXRfdmVyKGhwc2Jfc2Vu
ZF9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9yZXNldF9idXMgc21wXzIyNWE0MTAxCiNkZWZp
bmUgaHBzYl9yZXNldF9idXMgX3NldF92ZXIoaHBzYl9yZXNldF9idXMpCiNkZWZpbmUgX192ZXJf
aHBzYl9idXNfcmVzZXQgc21wX2RjNTk2YjBiCiNkZWZpbmUgaHBzYl9idXNfcmVzZXQgX3NldF92
ZXIoaHBzYl9idXNfcmVzZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfcmVjZWl2ZWQgc21w
XzBkYjg2OGI3CiNkZWZpbmUgaHBzYl9zZWxmaWRfcmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9zZWxm
aWRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfY29tcGxldGUgc21wXzY0OTlj
NTkzCiNkZWZpbmUgaHBzYl9zZWxmaWRfY29tcGxldGUgX3NldF92ZXIoaHBzYl9zZWxmaWRfY29t
cGxldGUpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc2VudCBzbXBfNGZmNWMzODYKI2RlZmlu
ZSBocHNiX3BhY2tldF9zZW50IF9zZXRfdmVyKGhwc2JfcGFja2V0X3NlbnQpCiNkZWZpbmUgX192
ZXJfaHBzYl9wYWNrZXRfcmVjZWl2ZWQgc21wX2U2NmFlYzcyCiNkZWZpbmUgaHBzYl9wYWNrZXRf
cmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9wYWNrZXRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBz
Yl9nZW5lcmF0aW9uIHNtcF81MGVkMmQ5YwojZGVmaW5lIGhwc2JfZ2VuZXJhdGlvbiBfc2V0X3Zl
cihocHNiX2dlbmVyYXRpb24pCiNkZWZpbmUgX192ZXJfZ2V0X3RsYWJlbCBzbXBfMmJlM2I0YTYK
I2RlZmluZSBnZXRfdGxhYmVsIF9zZXRfdmVyKGdldF90bGFiZWwpCiNkZWZpbmUgX192ZXJfZnJl
ZV90bGFiZWwgc21wXzg4NjNiZGJhCiNkZWZpbmUgZnJlZV90bGFiZWwgX3NldF92ZXIoZnJlZV90
bGFiZWwpCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZCBzbXBfMzU4Njc3NDkKI2Rl
ZmluZSBmaWxsX2FzeW5jX3JlYWRxdWFkIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZHF1YWQpCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZF9yZXNwIHNtcF85ODYzZDQ0MAojZGVmaW5l
IGZpbGxfYXN5bmNfcmVhZHF1YWRfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3JlYWRxdWFkX3Jl
c3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2sgc21wXzQxNWEzYzRiCiNkZWZp
bmUgZmlsbF9hc3luY19yZWFkYmxvY2sgX3NldF92ZXIoZmlsbF9hc3luY19yZWFkYmxvY2spCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2tfcmVzcCBzbXBfNmIzMDlhNTkKI2RlZmlu
ZSBmaWxsX2FzeW5jX3JlYWRibG9ja19yZXNwIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZGJsb2Nr
X3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZXF1YWQgc21wX2IyNTU3MmUyCiNk
ZWZpbmUgZmlsbF9hc3luY193cml0ZXF1YWQgX3NldF92ZXIoZmlsbF9hc3luY193cml0ZXF1YWQp
CiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZWJsb2NrIHNtcF82OWQyNzBjYwojZGVmaW5l
IGZpbGxfYXN5bmNfd3JpdGVibG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlYmxvY2spCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZV9yZXNwIHNtcF9hNWI0MzMzMwojZGVmaW5lIGZp
bGxfYXN5bmNfd3JpdGVfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlX3Jlc3ApCiNkZWZp
bmUgX192ZXJfZmlsbF9hc3luY19sb2NrIHNtcF9lN2U1M2ZmYgojZGVmaW5lIGZpbGxfYXN5bmNf
bG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX2xvY2spCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19s
b2NrX3Jlc3Agc21wX2VkNmY4MzM0CiNkZWZpbmUgZmlsbF9hc3luY19sb2NrX3Jlc3AgX3NldF92
ZXIoZmlsbF9hc3luY19sb2NrX3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9pc29fcGFja2V0IHNt
cF9hNDdhOTBmNQojZGVmaW5lIGZpbGxfaXNvX3BhY2tldCBfc2V0X3ZlcihmaWxsX2lzb19wYWNr
ZXQpCiNkZWZpbmUgX192ZXJfZmlsbF9waHlfcGFja2V0IHNtcF81NjkwYmNkNwojZGVmaW5lIGZp
bGxfcGh5X3BhY2tldCBfc2V0X3ZlcihmaWxsX3BoeV9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBz
Yl9tYWtlX3JlYWRxcGFja2V0IHNtcF9jNzFkOWU5NAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkcXBh
Y2tldCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZHFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9t
YWtlX3JlYWRicGFja2V0IHNtcF9kMWZkODE3ZAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkYnBhY2tl
dCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZGJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X3dyaXRlcXBhY2tldCBzbXBfNTI0ZTJhYzIKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVxcGFja2V0
IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZXFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X3dyaXRlYnBhY2tldCBzbXBfYWM5NDI4ZDcKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVicGFja2V0
IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZWJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X2xvY2twYWNrZXQgc21wXzZiYzM1MDYzCiNkZWZpbmUgaHBzYl9tYWtlX2xvY2twYWNrZXQgX3Nl
dF92ZXIoaHBzYl9tYWtlX2xvY2twYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BoeXBh
Y2tldCBzbXBfMDhiMDZkMjYKI2RlZmluZSBocHNiX21ha2VfcGh5cGFja2V0IF9zZXRfdmVyKGhw
c2JfbWFrZV9waHlwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc3VjY2VzcyBzbXBf
YWJjNzVjYzAKI2RlZmluZSBocHNiX3BhY2tldF9zdWNjZXNzIF9zZXRfdmVyKGhwc2JfcGFja2V0
X3N1Y2Nlc3MpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BhY2tldCBzbXBfMzUzY2FiYWYKI2Rl
ZmluZSBocHNiX21ha2VfcGFja2V0IF9zZXRfdmVyKGhwc2JfbWFrZV9wYWNrZXQpCiNkZWZpbmUg
X192ZXJfaHBzYl9yZWFkIHNtcF8wNWE4NTY3MAojZGVmaW5lIGhwc2JfcmVhZCBfc2V0X3Zlciho
cHNiX3JlYWQpCiNkZWZpbmUgX192ZXJfaHBzYl93cml0ZSBzbXBfOTNhYjQxMTAKI2RlZmluZSBo
cHNiX3dyaXRlIF9zZXRfdmVyKGhwc2Jfd3JpdGUpCiNkZWZpbmUgX192ZXJfaHBzYl9sb2NrIHNt
cF80ZTQ2Y2FlMgojZGVmaW5lIGhwc2JfbG9jayBfc2V0X3ZlcihocHNiX2xvY2spCiNkZWZpbmUg
X192ZXJfaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwgc21wXzY5YzAwNDU5CiNkZWZpbmUgaHBzYl9y
ZWdpc3Rlcl9oaWdobGV2ZWwgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwpCiNkZWZp
bmUgX192ZXJfaHBzYl91bnJlZ2lzdGVyX2hpZ2hsZXZlbCBzbXBfNzAzMjAwNTkKI2RlZmluZSBo
cHNiX3VucmVnaXN0ZXJfaGlnaGxldmVsIF9zZXRfdmVyKGhwc2JfdW5yZWdpc3Rlcl9oaWdobGV2
ZWwpCiNkZWZpbmUgX192ZXJfaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2Ugc21wXzkxNzdlYTZlCiNk
ZWZpbmUgaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2UgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9hZGRy
c3BhY2UpCiNkZWZpbmUgX192ZXJfaHBzYl9saXN0ZW5fY2hhbm5lbCBzbXBfNzg0NDYzNmIKI2Rl
ZmluZSBocHNiX2xpc3Rlbl9jaGFubmVsIF9zZXRfdmVyKGhwc2JfbGlzdGVuX2NoYW5uZWwpCiNk
ZWZpbmUgX192ZXJfaHBzYl91bmxpc3Rlbl9jaGFubmVsIHNtcF8wZWQ2OTBlMAojZGVmaW5lIGhw
c2JfdW5saXN0ZW5fY2hhbm5lbCBfc2V0X3ZlcihocHNiX3VubGlzdGVuX2NoYW5uZWwpCiNkZWZp
bmUgX192ZXJfaGlnaGxldmVsX3JlYWQgc21wXzYyZjIzMzU4CiNkZWZpbmUgaGlnaGxldmVsX3Jl
YWQgX3NldF92ZXIoaGlnaGxldmVsX3JlYWQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3dyaXRl
IHNtcF83ZTVhYjUxNwojZGVmaW5lIGhpZ2hsZXZlbF93cml0ZSBfc2V0X3ZlcihoaWdobGV2ZWxf
d3JpdGUpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2xvY2sgc21wXzc5NmZjOTk3CiNkZWZpbmUg
aGlnaGxldmVsX2xvY2sgX3NldF92ZXIoaGlnaGxldmVsX2xvY2spCiNkZWZpbmUgX192ZXJfaGln
aGxldmVsX2xvY2s2NCBzbXBfMDY0OTY0YmMKI2RlZmluZSBoaWdobGV2ZWxfbG9jazY0IF9zZXRf
dmVyKGhpZ2hsZXZlbF9sb2NrNjQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9ob3N0IHNt
cF80ZTQ1YTk0MwojZGVmaW5lIGhpZ2hsZXZlbF9hZGRfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxf
YWRkX2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3JlbW92ZV9ob3N0IHNtcF9hZmQ2OTYz
NgojZGVmaW5lIGhpZ2hsZXZlbF9yZW1vdmVfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxfcmVtb3Zl
X2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2hvc3RfcmVzZXQgc21wXzdiYzUyYjJkCiNk
ZWZpbmUgaGlnaGxldmVsX2hvc3RfcmVzZXQgX3NldF92ZXIoaGlnaGxldmVsX2hvc3RfcmVzZXQp
CiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9vbmVfaG9zdCBzbXBfMmI0OTY0YTIKI2RlZmlu
ZSBoaWdobGV2ZWxfYWRkX29uZV9ob3N0IF9zZXRfdmVyKGhpZ2hsZXZlbF9hZGRfb25lX2hvc3Qp
CiNkZWZpbmUgX192ZXJfaHBzYl9ndWlkX2dldF9oYW5kbGUgc21wX2Y4NmNhN2Q5CiNkZWZpbmUg
aHBzYl9ndWlkX2dldF9oYW5kbGUgX3NldF92ZXIoaHBzYl9ndWlkX2dldF9oYW5kbGUpCiNkZWZp
bmUgX192ZXJfaHBzYl9nZXRfaG9zdF9ieV9nZSBzbXBfNTdiMTg1MzUKI2RlZmluZSBocHNiX2dl
dF9ob3N0X2J5X2dlIF9zZXRfdmVyKGhwc2JfZ2V0X2hvc3RfYnlfZ2UpCiNkZWZpbmUgX192ZXJf
aHBzYl9ndWlkX2ZpbGxfcGFja2V0IHNtcF84MjFiZDE2MQojZGVmaW5lIGhwc2JfZ3VpZF9maWxs
X3BhY2tldCBfc2V0X3ZlcihocHNiX2d1aWRfZmlsbF9wYWNrZXQpCiMgMTA4ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2NsYWltIHNtcF9hMjVkMDQ5MQojZGVmaW5lIHBhcnBvcnRfY2xhaW0gX3NldF92
ZXIocGFycG9ydF9jbGFpbSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2NsYWltX29yX2Jsb2NrIHNt
cF84MjQyZDMyZQojZGVmaW5lIHBhcnBvcnRfY2xhaW1fb3JfYmxvY2sgX3NldF92ZXIocGFycG9y
dF9jbGFpbV9vcl9ibG9jaykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlbGVhc2Ugc21wXzkzZjU0
YzZjCiNkZWZpbmUgcGFycG9ydF9yZWxlYXNlIF9zZXRfdmVyKHBhcnBvcnRfcmVsZWFzZSkKI2Rl
ZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX3BvcnQgc21wXzNmMTYyMjMwCiNkZWZpbmUgcGFy
cG9ydF9yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcmVnaXN0ZXJfcG9ydCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2Fubm91bmNlX3BvcnQgc21wX2QzNmU2OTM2CiNkZWZpbmUgcGFycG9y
dF9hbm5vdW5jZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfYW5ub3VuY2VfcG9ydCkKI2RlZmluZSBf
X3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCBzbXBfYTM0MzQ4NjIKI2RlZmluZSBwYXJwb3J0
X3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RyaXZlciBzbXBfN2M0NzEyNzkKI2RlZmluZSBwYXJw
b3J0X3JlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVyX2RyaXZlcikKI2Rl
ZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZHJpdmVyIHNtcF82OTQ0ZTBmNAojZGVmaW5l
IHBhcnBvcnRfdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIocGFycG9ydF91bnJlZ2lzdGVyX2Ry
aXZlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBzbXBfZDUxN2NjYTgK
I2RlZmluZSBwYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVy
X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZGV2aWNlIHNtcF84NjY1
MzIxYQojZGVmaW5lIHBhcnBvcnRfdW5yZWdpc3Rlcl9kZXZpY2UgX3NldF92ZXIocGFycG9ydF91
bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2VudW1lcmF0ZSBzbXBfNjQw
MGUzNmEKI2RlZmluZSBwYXJwb3J0X2VudW1lcmF0ZSBfc2V0X3ZlcihwYXJwb3J0X2VudW1lcmF0
ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2dldF9wb3J0IHNtcF9kNTRjNmQ4OAojZGVmaW5lIHBh
cnBvcnRfZ2V0X3BvcnQgX3NldF92ZXIocGFycG9ydF9nZXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3B1dF9wb3J0IHNtcF8xMjg1M2MwOQojZGVmaW5lIHBhcnBvcnRfcHV0X3BvcnQgX3Nl
dF92ZXIocGFycG9ydF9wdXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfbnVtYmVy
IHNtcF8wNDE4NTJiZQojZGVmaW5lIHBhcnBvcnRfZmluZF9udW1iZXIgX3NldF92ZXIocGFycG9y
dF9maW5kX251bWJlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfYmFzZSBzbXBfMmQ5ZDc5
NGQKI2RlZmluZSBwYXJwb3J0X2ZpbmRfYmFzZSBfc2V0X3ZlcihwYXJwb3J0X2ZpbmRfYmFzZSkK
I2RlZmluZSBfX3Zlcl9wYXJwb3J0X25lZ290aWF0ZSBzbXBfYWVmMDkyMWEKI2RlZmluZSBwYXJw
b3J0X25lZ290aWF0ZSBfc2V0X3ZlcihwYXJwb3J0X25lZ290aWF0ZSkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3dyaXRlIHNtcF81MmVhZmM0NQojZGVmaW5lIHBhcnBvcnRfd3JpdGUgX3NldF92ZXIo
cGFycG9ydF93cml0ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlYWQgc21wXzBkM2QxYmRlCiNk
ZWZpbmUgcGFycG9ydF9yZWFkIF9zZXRfdmVyKHBhcnBvcnRfcmVhZCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X2llZWUxMjg0X3dha2V1cCBzbXBfNDM3YWM4MzIKI2RlZmluZSBwYXJwb3J0X2llZWUx
Mjg0X3dha2V1cCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3dha2V1cCkKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCBzbXBfNmM4NWJmOGMKI2RlZmluZSBwYXJwb3J0X3dh
aXRfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCkKI2RlZmluZSBf
X3Zlcl9wYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCBzbXBfZjNlYTUxNDgKI2RlZmluZSBwYXJwb3J0
X3BvbGxfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X3dhaXRfZXZlbnQgc21wXzRmY2JjMzliCiNkZWZpbmUgcGFycG9ydF93
YWl0X2V2ZW50IF9zZXRfdmVyKHBhcnBvcnRfd2FpdF9ldmVudCkKI2RlZmluZSBfX3Zlcl9wYXJw
b3J0X3NldF90aW1lb3V0IHNtcF82ZjMxYTQ3OAojZGVmaW5lIHBhcnBvcnRfc2V0X3RpbWVvdXQg
X3NldF92ZXIocGFycG9ydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUx
Mjg0X2ludGVycnVwdCBzbXBfYmYyYjBkYzAKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X2ludGVy
cnVwdCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X2llZWUxMjg0X2VjcF93cml0ZV9kYXRhIHNtcF8wMzViZmI1MwojZGVmaW5lIHBhcnBv
cnRfaWVlZTEyODRfZWNwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bf
d3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VjcF9yZWFkX2RhdGEg
c21wX2RmNDg4YWFlCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lY3BfcmVhZF9kYXRhIF9zZXRf
dmVyKHBhcnBvcnRfaWVlZTEyODRfZWNwX3JlYWRfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0
X2llZWUxMjg0X2VjcF93cml0ZV9hZGRyIHNtcF8wZDQ5YzhjYgojZGVmaW5lIHBhcnBvcnRfaWVl
ZTEyODRfZWNwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bfd3JpdGVf
YWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBzbXBfMGY1
NDU3YWUKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBfc2V0X3ZlcihwYXJw
b3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0
X3JlYWRfbmliYmxlIHNtcF8xMmNhNzZhYQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfcmVhZF9u
aWJibGUgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9yZWFkX25pYmJsZSkKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSBzbXBfZjYyMWY1YmYKI2RlZmluZSBwYXJwb3J0
X2llZWUxMjg0X3JlYWRfYnl0ZSBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSkK
I2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9kYXRhIHNtcF82ZjU1NmVj
YQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9y
dF9pZWVlMTI4NF9lcHBfd3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0
X2VwcF9yZWFkX2RhdGEgc21wXzk1NGYxYWIwCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBf
cmVhZF9kYXRhIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfZGF0YSkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9hZGRyIHNtcF82MTQ3NWQ1MgojZGVm
aW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVl
MTI4NF9lcHBfd3JpdGVfYWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF9y
ZWFkX2FkZHIgc21wXzY5OTUxNzM3CiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBfcmVhZF9h
ZGRyIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfYWRkcikKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X3Byb2NfcmVnaXN0ZXIgc21wX2U5MzdlMmU5CiNkZWZpbmUgcGFycG9ydF9wcm9j
X3JlZ2lzdGVyIF9zZXRfdmVyKHBhcnBvcnRfcHJvY19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3Byb2NfdW5yZWdpc3RlciBzbXBfNTMxOTg5OTkKI2RlZmluZSBwYXJwb3J0X3Byb2Nf
dW5yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2RldmljZV9wcm9jX3JlZ2lzdGVyIHNtcF83ZWQ1YzdjYgojZGVmaW5lIHBhcnBv
cnRfZGV2aWNlX3Byb2NfcmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZXZpY2VfcHJvY19yZWdp
c3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RldmljZV9wcm9jX3VucmVnaXN0ZXIgc21wX2Ri
NGZmMjAxCiNkZWZpbmUgcGFycG9ydF9kZXZpY2VfcHJvY191bnJlZ2lzdGVyIF9zZXRfdmVyKHBh
cnBvcnRfZGV2aWNlX3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RlZmF1
bHRfcHJvY19yZWdpc3RlciBzbXBfMTA5YzhmOWEKI2RlZmluZSBwYXJwb3J0X2RlZmF1bHRfcHJv
Y19yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X2RlZmF1bHRfcHJvY19yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2RlZmF1bHRfcHJvY191bnJlZ2lzdGVyIHNtcF9kNzc1YjdmNAojZGVm
aW5lIHBhcnBvcnRfZGVmYXVsdF9wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZWZh
dWx0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2lycXMgc21w
X2ZlM2EyODY3CiNkZWZpbmUgcGFycG9ydF9wYXJzZV9pcnFzIF9zZXRfdmVyKHBhcnBvcnRfcGFy
c2VfaXJxcykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2RtYXMgc21wX2M5NzZkZjBiCiNk
ZWZpbmUgcGFycG9ydF9wYXJzZV9kbWFzIF9zZXRfdmVyKHBhcnBvcnRfcGFyc2VfZG1hcykKIyAx
MDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pbnB1dC52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9kZXZpY2Ugc21wXzYwZjc0NTNmCiNkZWZp
bmUgaW5wdXRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGlucHV0X3JlZ2lzdGVyX2RldmljZSkK
I2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2RldmljZSBzbXBfYWQzM2VhOTkKI2RlZmlu
ZSBpbnB1dF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihpbnB1dF91bnJlZ2lzdGVyX2Rldmlj
ZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9oYW5kbGVyIHNtcF83NmE3MjM4NQojZGVm
aW5lIGlucHV0X3JlZ2lzdGVyX2hhbmRsZXIgX3NldF92ZXIoaW5wdXRfcmVnaXN0ZXJfaGFuZGxl
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2hhbmRsZXIgc21wXzc0M2FkNzdmCiNk
ZWZpbmUgaW5wdXRfdW5yZWdpc3Rlcl9oYW5kbGVyIF9zZXRfdmVyKGlucHV0X3VucmVnaXN0ZXJf
aGFuZGxlcikKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9taW5vciBzbXBfZTk4NmFkMDkK
I2RlZmluZSBpbnB1dF9yZWdpc3Rlcl9taW5vciBfc2V0X3ZlcihpbnB1dF9yZWdpc3Rlcl9taW5v
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX21pbm9yIHNtcF8zODI3YTMyZQojZGVm
aW5lIGlucHV0X3VucmVnaXN0ZXJfbWlub3IgX3NldF92ZXIoaW5wdXRfdW5yZWdpc3Rlcl9taW5v
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF9vcGVuX2RldmljZSBzbXBfOWU3NWNiMDIKI2RlZmluZSBp
bnB1dF9vcGVuX2RldmljZSBfc2V0X3ZlcihpbnB1dF9vcGVuX2RldmljZSkKI2RlZmluZSBfX3Zl
cl9pbnB1dF9jbG9zZV9kZXZpY2Ugc21wX2Y0OTdiMmE5CiNkZWZpbmUgaW5wdXRfY2xvc2VfZGV2
aWNlIF9zZXRfdmVyKGlucHV0X2Nsb3NlX2RldmljZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9ldmVu
dCBzbXBfNjM0ZTUyMTgKI2RlZmluZSBpbnB1dF9ldmVudCBfc2V0X3ZlcihpbnB1dF9ldmVudCkK
IyAxMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pby52ZXIi
IDEKIyAxMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcGNv
bW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9za2JfbWlncmF0ZSBzbXBfZjYwNzc5OWEKI2RlZmlu
ZSBza2JfbWlncmF0ZSBfc2V0X3Zlcihza2JfbWlncmF0ZSkKIyAxMTIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9jb25udHJhY2tfZnRwLnZlciIgMQojZGVm
aW5lIF9fdmVyX2lwX2Z0cF9sb2NrIHNtcF83YzI3ZWY0YwojZGVmaW5lIGlwX2Z0cF9sb2NrIF9z
ZXRfdmVyKGlwX2Z0cF9sb2NrKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19mdHAgc21wXzQz
N2NkNzM1CiNkZWZpbmUgaXBfY29ubnRyYWNrX2Z0cCBfc2V0X3ZlcihpcF9jb25udHJhY2tfZnRw
KQojIDExMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Nv
bm50cmFja19zdGFuZGFsb25lLnZlciIgMQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19wcm90
b2NvbF9yZWdpc3RlciBzbXBfMTJkYWQxM2EKI2RlZmluZSBpcF9jb25udHJhY2tfcHJvdG9jb2xf
cmVnaXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5l
IF9fdmVyX2ludmVydF90dXBsZXByIHNtcF81ZTY4ZDhhOQojZGVmaW5lIGludmVydF90dXBsZXBy
IF9zZXRfdmVyKGludmVydF90dXBsZXByKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19hbHRl
cl9yZXBseSBzbXBfMjFkNzJlNjQKI2RlZmluZSBpcF9jb25udHJhY2tfYWx0ZXJfcmVwbHkgX3Nl
dF92ZXIoaXBfY29ubnRyYWNrX2FsdGVyX3JlcGx5KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19kZXN0cm95ZWQgc21wXzFhZDM3NDcxCiNkZWZpbmUgaXBfY29ubnRyYWNrX2Rlc3Ryb3llZCBf
c2V0X3ZlcihpcF9jb25udHJhY2tfZGVzdHJveWVkKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19nZXQgc21wXzI4MDljNTRmCiNkZWZpbmUgaXBfY29ubnRyYWNrX2dldCBfc2V0X3ZlcihpcF9j
b25udHJhY2tfZ2V0KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19tb2R1bGUgc21wXzJhYTc3
NWZiCiNkZWZpbmUgaXBfY29ubnRyYWNrX21vZHVsZSBfc2V0X3ZlcihpcF9jb25udHJhY2tfbW9k
dWxlKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIgc21wX2NiOTY1
M2ViCiNkZWZpbmUgaXBfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlciBfc2V0X3ZlcihpcF9jb25u
dHJhY2tfaGVscGVyX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJf
dW5yZWdpc3RlciBzbXBfZmQxNzU4ZmUKI2RlZmluZSBpcF9jb25udHJhY2tfaGVscGVyX3VucmVn
aXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX2lwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwIHNtcF9kZmZlMGQ2MwojZGVmaW5lIGlwX2N0X3Nl
bGVjdGl2ZV9jbGVhbnVwIF9zZXRfdmVyKGlwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwKQojZGVmaW5l
IF9fdmVyX2lwX2N0X3JlZnJlc2ggc21wXzljZGNjMzAwCiNkZWZpbmUgaXBfY3RfcmVmcmVzaCBf
c2V0X3ZlcihpcF9jdF9yZWZyZXNoKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19leHBlY3Rf
cmVsYXRlZCBzbXBfMDA3YjYyYTMKI2RlZmluZSBpcF9jb25udHJhY2tfZXhwZWN0X3JlbGF0ZWQg
X3NldF92ZXIoaXBfY29ubnRyYWNrX2V4cGVjdF9yZWxhdGVkKQojZGVmaW5lIF9fdmVyX2lwX2Nv
bm50cmFja190dXBsZV90YWtlbiBzbXBfZjNjYjU3ODUKI2RlZmluZSBpcF9jb25udHJhY2tfdHVw
bGVfdGFrZW4gX3NldF92ZXIoaXBfY29ubnRyYWNrX3R1cGxlX3Rha2VuKQojZGVmaW5lIF9fdmVy
X2lwX2N0X2dhdGhlcl9mcmFncyBzbXBfMDg4NTgzYWQKI2RlZmluZSBpcF9jdF9nYXRoZXJfZnJh
Z3MgX3NldF92ZXIoaXBfY3RfZ2F0aGVyX2ZyYWdzKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19odGFibGVfc2l6ZSBzbXBfOGVmOGFmNGMKI2RlZmluZSBpcF9jb25udHJhY2tfaHRhYmxlX3Np
emUgX3NldF92ZXIoaXBfY29ubnRyYWNrX2h0YWJsZV9zaXplKQojIDExNCAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Z3X2NvbXBhdC52ZXIiIDEKIyAxMTUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9ncmUudmVyIiAx
CiMgMTE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXBpcC52
ZXIiIDEKIyAxMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9p
cF9uYXRfc3RhbmRhbG9uZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2V0dXBfaW5mbyBz
bXBfMjcxYTAxNDMKI2RlZmluZSBpcF9uYXRfc2V0dXBfaW5mbyBfc2V0X3ZlcihpcF9uYXRfc2V0
dXBfaW5mbykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3JlZ2lzdGVyIHNtcF8xNzA4MjZj
MAojZGVmaW5lIGlwX25hdF9oZWxwZXJfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2hlbHBlcl9y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3VucmVnaXN0ZXIgc21wX2JmZGQw
MDdjCiNkZWZpbmUgaXBfbmF0X2hlbHBlcl91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25hdF9oZWxw
ZXJfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3JlZ2lzdGVyIHNtcF9h
NmNmNDYzYgojZGVmaW5lIGlwX25hdF9leHBlY3RfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2V4
cGVjdF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3VucmVnaXN0ZXIgc21w
XzkzOGNmNGNkCiNkZWZpbmUgaXBfbmF0X2V4cGVjdF91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25h
dF9leHBlY3RfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfY2hlYXRfY2hlY2sgc21w
XzFlNGU3M2E4CiNkZWZpbmUgaXBfbmF0X2NoZWF0X2NoZWNrIF9zZXRfdmVyKGlwX25hdF9jaGVh
dF9jaGVjaykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfbWFuZ2xlX3RjcF9wYWNrZXQgc21wXzUzZTI4
OGE4CiNkZWZpbmUgaXBfbmF0X21hbmdsZV90Y3BfcGFja2V0IF9zZXRfdmVyKGlwX25hdF9tYW5n
bGVfdGNwX3BhY2tldCkKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2VxX2FkanVzdCBzbXBfMzU3NjM1
NWMKI2RlZmluZSBpcF9uYXRfc2VxX2FkanVzdCBfc2V0X3ZlcihpcF9uYXRfc2VxX2FkanVzdCkK
I2RlZmluZSBfX3Zlcl9pcF9uYXRfZGVsZXRlX3NhY2sgc21wXzc4NDk5Y2RhCiNkZWZpbmUgaXBf
bmF0X2RlbGV0ZV9zYWNrIF9zZXRfdmVyKGlwX25hdF9kZWxldGVfc2FjaykKIyAxMTggIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF90YWJsZXMudmVyIiAxCiNk
ZWZpbmUgX192ZXJfaXB0X3JlZ2lzdGVyX3RhYmxlIHNtcF9mNGZjYzU2MAojZGVmaW5lIGlwdF9y
ZWdpc3Rlcl90YWJsZSBfc2V0X3ZlcihpcHRfcmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJf
aXB0X3VucmVnaXN0ZXJfdGFibGUgc21wX2RiMWQ5YjA0CiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJf
dGFibGUgX3NldF92ZXIoaXB0X3VucmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJfaXB0X3Jl
Z2lzdGVyX21hdGNoIHNtcF9jYjcxM2FmOAojZGVmaW5lIGlwdF9yZWdpc3Rlcl9tYXRjaCBfc2V0
X3ZlcihpcHRfcmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X3VucmVnaXN0ZXJfbWF0
Y2ggc21wXzgwYTQ1YjQzCiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJfbWF0Y2ggX3NldF92ZXIoaXB0
X3VucmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X2RvX3RhYmxlIHNtcF85MjZmMWE5
ZAojZGVmaW5lIGlwdF9kb190YWJsZSBfc2V0X3ZlcihpcHRfZG9fdGFibGUpCiNkZWZpbmUgX192
ZXJfaXB0X3JlZ2lzdGVyX3RhcmdldCBzbXBfMjE5NjE4ZTAKI2RlZmluZSBpcHRfcmVnaXN0ZXJf
dGFyZ2V0IF9zZXRfdmVyKGlwdF9yZWdpc3Rlcl90YXJnZXQpCiNkZWZpbmUgX192ZXJfaXB0X3Vu
cmVnaXN0ZXJfdGFyZ2V0IHNtcF9iNjRkY2I3OQojZGVmaW5lIGlwdF91bnJlZ2lzdGVyX3Rhcmdl
dCBfc2V0X3ZlcihpcHRfdW5yZWdpc3Rlcl90YXJnZXQpCiMgMTE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXJwb3J0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ly
cG9ydF9vcGVuIHNtcF83NTM5ZWVkYgojZGVmaW5lIGlycG9ydF9vcGVuIF9zZXRfdmVyKGlycG9y
dF9vcGVuKQojZGVmaW5lIF9fdmVyX2lycG9ydF9jbG9zZSBzbXBfNjllYmFiYzAKI2RlZmluZSBp
cnBvcnRfY2xvc2UgX3NldF92ZXIoaXJwb3J0X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2lycG9ydF9z
dGFydCBzbXBfNWJjYmE5YzMKI2RlZmluZSBpcnBvcnRfc3RhcnQgX3NldF92ZXIoaXJwb3J0X3N0
YXJ0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9zdG9wIHNtcF82MDJkY2U5YQojZGVmaW5lIGlycG9y
dF9zdG9wIF9zZXRfdmVyKGlycG9ydF9zdG9wKQojZGVmaW5lIF9fdmVyX2lycG9ydF9pbnRlcnJ1
cHQgc21wXzAxZDRmNmMwCiNkZWZpbmUgaXJwb3J0X2ludGVycnVwdCBfc2V0X3ZlcihpcnBvcnRf
aW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9oYXJkX3htaXQgc21wX2M3MDllMWE0CiNk
ZWZpbmUgaXJwb3J0X2hhcmRfeG1pdCBfc2V0X3ZlcihpcnBvcnRfaGFyZF94bWl0KQojZGVmaW5l
IF9fdmVyX2lycG9ydF90aW1lb3V0IHNtcF9kZDNjZjZkMAojZGVmaW5lIGlycG9ydF90aW1lb3V0
IF9zZXRfdmVyKGlycG9ydF90aW1lb3V0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9jaGFuZ2Vfc3Bl
ZWQgc21wXzA3MDI3YTBiCiNkZWZpbmUgaXJwb3J0X2NoYW5nZV9zcGVlZCBfc2V0X3ZlcihpcnBv
cnRfY2hhbmdlX3NwZWVkKQojZGVmaW5lIF9fdmVyX2lycG9ydF9uZXRfb3BlbiBzbXBfY2M4MjE5
YmIKI2RlZmluZSBpcnBvcnRfbmV0X29wZW4gX3NldF92ZXIoaXJwb3J0X25ldF9vcGVuKQojZGVm
aW5lIF9fdmVyX2lycG9ydF9uZXRfY2xvc2Ugc21wXzUyNWUyYmI4CiNkZWZpbmUgaXJwb3J0X25l
dF9jbG9zZSBfc2V0X3ZlcihpcnBvcnRfbmV0X2Nsb3NlKQojIDEyMCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lyc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9p
cnR0cF9vcGVuX3RzYXAgc21wXzE0ODBiMzEzCiNkZWZpbmUgaXJ0dHBfb3Blbl90c2FwIF9zZXRf
dmVyKGlydHRwX29wZW5fdHNhcCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jbG9zZV90c2FwIHNtcF8z
NzliNGI4YgojZGVmaW5lIGlydHRwX2Nsb3NlX3RzYXAgX3NldF92ZXIoaXJ0dHBfY2xvc2VfdHNh
cCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jb25uZWN0X3Jlc3BvbnNlIHNtcF81NjdmNWQ4OAojZGVm
aW5lIGlydHRwX2Nvbm5lY3RfcmVzcG9uc2UgX3NldF92ZXIoaXJ0dHBfY29ubmVjdF9yZXNwb25z
ZSkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kYXRhX3JlcXVlc3Qgc21wX2NmNWU0MjlkCiNkZWZpbmUg
aXJ0dHBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBf
X3Zlcl9pcnR0cF9kaXNjb25uZWN0X3JlcXVlc3Qgc21wXzlhMzU1NjA5CiNkZWZpbmUgaXJ0dHBf
ZGlzY29ubmVjdF9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2Rl
ZmluZSBfX3Zlcl9pcnR0cF9mbG93X3JlcXVlc3Qgc21wXzUxYTE3NzgwCiNkZWZpbmUgaXJ0dHBf
Zmxvd19yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Zsb3dfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9p
cnR0cF9jb25uZWN0X3JlcXVlc3Qgc21wXzQwM2YyMjUzCiNkZWZpbmUgaXJ0dHBfY29ubmVjdF9y
ZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0
cF91ZGF0YV9yZXF1ZXN0IHNtcF9jMGI4MzQ1MwojZGVmaW5lIGlydHRwX3VkYXRhX3JlcXVlc3Qg
X3NldF92ZXIoaXJ0dHBfdWRhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kdXAgc21w
Xzg0MTA3MTQ4CiNkZWZpbmUgaXJ0dHBfZHVwIF9zZXRfdmVyKGlydHRwX2R1cCkKI2RlZmluZSBf
X3Zlcl9pcmRhX25vdGlmeV9pbml0IHNtcF8zNTQ3ZjBhNQojZGVmaW5lIGlyZGFfbm90aWZ5X2lu
aXQgX3NldF92ZXIoaXJkYV9ub3RpZnlfaW5pdCkKI2RlZmluZSBfX3Zlcl9pcmRhX2xvY2sgc21w
X2M1ODhkNTA4CiNkZWZpbmUgaXJkYV9sb2NrIF9zZXRfdmVyKGlyZGFfbG9jaykKI2RlZmluZSBf
X3Zlcl9wcm9jX2lyZGEgc21wX2UwY2NiODM5CiNkZWZpbmUgcHJvY19pcmRhIF9zZXRfdmVyKHBy
b2NfaXJkYSkKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX2luc2VydCBzbXBfMGRhYjAyYTAKI2Rl
ZmluZSBpcmRhX3BhcmFtX2luc2VydCBfc2V0X3ZlcihpcmRhX3BhcmFtX2luc2VydCkKI2RlZmlu
ZSBfX3Zlcl9pcmRhX3BhcmFtX2V4dHJhY3Qgc21wX2RlNTFlMzNlCiNkZWZpbmUgaXJkYV9wYXJh
bV9leHRyYWN0IF9zZXRfdmVyKGlyZGFfcGFyYW1fZXh0cmFjdCkKI2RlZmluZSBfX3Zlcl9pcmRh
X3BhcmFtX2V4dHJhY3RfYWxsIHNtcF9mMzZiNTBiMQojZGVmaW5lIGlyZGFfcGFyYW1fZXh0cmFj
dF9hbGwgX3NldF92ZXIoaXJkYV9wYXJhbV9leHRyYWN0X2FsbCkKI2RlZmluZSBfX3Zlcl9pcmRh
X3BhcmFtX3BhY2sgc21wXzkxODE1NTg2CiNkZWZpbmUgaXJkYV9wYXJhbV9wYWNrIF9zZXRfdmVy
KGlyZGFfcGFyYW1fcGFjaykKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX3VucGFjayBzbXBfNzMw
YzM1Y2UKI2RlZmluZSBpcmRhX3BhcmFtX3VucGFjayBfc2V0X3ZlcihpcmRhX3BhcmFtX3VucGFj
aykKI2RlZmluZSBfX3Zlcl9pcmlhcF9vcGVuIHNtcF9hMTliOWFlYQojZGVmaW5lIGlyaWFwX29w
ZW4gX3NldF92ZXIoaXJpYXBfb3BlbikKI2RlZmluZSBfX3Zlcl9pcmlhcF9jbG9zZSBzbXBfMjZk
ZGU0MDkKI2RlZmluZSBpcmlhcF9jbG9zZSBfc2V0X3ZlcihpcmlhcF9jbG9zZSkKI2RlZmluZSBf
X3Zlcl9pcmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBzbXBfNjMxNzY5NWYKI2RlZmluZSBp
cmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBfc2V0X3ZlcihpcmlhcF9nZXR2YWx1ZWJ5Y2xh
c3NfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBz
bXBfYmNkM2VmMTMKI2RlZmluZSBpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBfc2V0X3Zl
cihpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19hZGRf
aW50ZWdlcl9hdHRyaWIgc21wX2Q0NjZkY2JlCiNkZWZpbmUgaXJpYXNfYWRkX2ludGVnZXJfYXR0
cmliIF9zZXRfdmVyKGlyaWFzX2FkZF9pbnRlZ2VyX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlh
c19hZGRfb2N0c2VxX2F0dHJpYiBzbXBfNzRlNzBhZDYKI2RlZmluZSBpcmlhc19hZGRfb2N0c2Vx
X2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfb2N0c2VxX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9p
cmlhc19hZGRfc3RyaW5nX2F0dHJpYiBzbXBfYjgzMmM1NzAKI2RlZmluZSBpcmlhc19hZGRfc3Ry
aW5nX2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfc3RyaW5nX2F0dHJpYikKI2RlZmluZSBfX3Zl
cl9pcmlhc19pbnNlcnRfb2JqZWN0IHNtcF85MWNiNGQxNAojZGVmaW5lIGlyaWFzX2luc2VydF9v
YmplY3QgX3NldF92ZXIoaXJpYXNfaW5zZXJ0X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19u
ZXdfb2JqZWN0IHNtcF9iYTA2ZTI1MQojZGVmaW5lIGlyaWFzX25ld19vYmplY3QgX3NldF92ZXIo
aXJpYXNfbmV3X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfb2JqZWN0IHNtcF80
MTUzNTZjYwojZGVmaW5lIGlyaWFzX2RlbGV0ZV9vYmplY3QgX3NldF92ZXIoaXJpYXNfZGVsZXRl
X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfdmFsdWUgc21wX2I5Mzk0MTczCiNk
ZWZpbmUgaXJpYXNfZGVsZXRlX3ZhbHVlIF9zZXRfdmVyKGlyaWFzX2RlbGV0ZV92YWx1ZSkKI2Rl
ZmluZSBfX3Zlcl9pcmlhc19maW5kX29iamVjdCBzbXBfY2FhOGQwYzYKI2RlZmluZSBpcmlhc19m
aW5kX29iamVjdCBfc2V0X3Zlcihpcmlhc19maW5kX29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlh
c19maW5kX2F0dHJpYiBzbXBfZWY5MGY5YWYKI2RlZmluZSBpcmlhc19maW5kX2F0dHJpYiBfc2V0
X3Zlcihpcmlhc19maW5kX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfaW50ZWdlcl92
YWx1ZSBzbXBfMDZhM2VlNTgKI2RlZmluZSBpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSBfc2V0X3Zl
cihpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfc3RyaW5n
X3ZhbHVlIHNtcF8zOGRkZTRlMQojZGVmaW5lIGlyaWFzX25ld19zdHJpbmdfdmFsdWUgX3NldF92
ZXIoaXJpYXNfbmV3X3N0cmluZ192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfb2N0c2Vx
X3ZhbHVlIHNtcF81OTFkMWJiZAojZGVmaW5lIGlyaWFzX25ld19vY3RzZXFfdmFsdWUgX3NldF92
ZXIoaXJpYXNfbmV3X29jdHNlcV92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb3Zlcnlf
cmVxdWVzdCBzbXBfYmU0MGFjZTkKI2RlZmluZSBpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCBfc2V0
X3ZlcihpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfZGlz
Y292ZXJpZXMgc21wXzUxM2ZiYzdmCiNkZWZpbmUgaXJsbXBfZ2V0X2Rpc2NvdmVyaWVzIF9zZXRf
dmVyKGlybG1wX2dldF9kaXNjb3ZlcmllcykKI2RlZmluZSBfX3Zlcl9zeXNjdGxfZGlzY292ZXJ5
X3RpbWVvdXQgc21wXzYxOTY1OTcyCiNkZWZpbmUgc3lzY3RsX2Rpc2NvdmVyeV90aW1lb3V0IF9z
ZXRfdmVyKHN5c2N0bF9kaXNjb3ZlcnlfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdp
c3Rlcl9jbGllbnQgc21wXzE3ZjE4YmZiCiNkZWZpbmUgaXJsbXBfcmVnaXN0ZXJfY2xpZW50IF9z
ZXRfdmVyKGlybG1wX3JlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lz
dGVyX2NsaWVudCBzbXBfY2VkNjQ2N2IKI2RlZmluZSBpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCBf
c2V0X3ZlcihpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91cGRh
dGVfY2xpZW50IHNtcF9jNmE0MmJmZgojZGVmaW5lIGlybG1wX3VwZGF0ZV9jbGllbnQgX3NldF92
ZXIoaXJsbXBfdXBkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdpc3Rlcl9zZXJ2
aWNlIHNtcF9lNmZlNmMzMQojZGVmaW5lIGlybG1wX3JlZ2lzdGVyX3NlcnZpY2UgX3NldF92ZXIo
aXJsbXBfcmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lzdGVyX3Nl
cnZpY2Ugc21wXzZiMjg0NWQyCiNkZWZpbmUgaXJsbXBfdW5yZWdpc3Rlcl9zZXJ2aWNlIF9zZXRf
dmVyKGlybG1wX3VucmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9zZXJ2aWNl
X3RvX2hpbnQgc21wX2RlNGM2YjNjCiNkZWZpbmUgaXJsbXBfc2VydmljZV90b19oaW50IF9zZXRf
dmVyKGlybG1wX3NlcnZpY2VfdG9faGludCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kYXRhX3JlcXVl
c3Qgc21wXzM1ODA0MTRkCiNkZWZpbmUgaXJsbXBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlybG1w
X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9vcGVuX2xzYXAgc21wXzYxMDA2ZDhl
CiNkZWZpbmUgaXJsbXBfb3Blbl9sc2FwIF9zZXRfdmVyKGlybG1wX29wZW5fbHNhcCkKI2RlZmlu
ZSBfX3Zlcl9pcmxtcF9jbG9zZV9sc2FwIHNtcF9jMTlmNDFiNwojZGVmaW5lIGlybG1wX2Nsb3Nl
X2xzYXAgX3NldF92ZXIoaXJsbXBfY2xvc2VfbHNhcCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25u
ZWN0X3JlcXVlc3Qgc21wXzFiZDkyMjE5CiNkZWZpbmUgaXJsbXBfY29ubmVjdF9yZXF1ZXN0IF9z
ZXRfdmVyKGlybG1wX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25uZWN0
X3Jlc3BvbnNlIHNtcF81N2YxMmRjNgojZGVmaW5lIGlybG1wX2Nvbm5lY3RfcmVzcG9uc2UgX3Nl
dF92ZXIoaXJsbXBfY29ubmVjdF9yZXNwb25zZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb25u
ZWN0X3JlcXVlc3Qgc21wX2FkYmJmN2EzCiNkZWZpbmUgaXJsbXBfZGlzY29ubmVjdF9yZXF1ZXN0
IF9zZXRfdmVyKGlybG1wX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9n
ZXRfZGFkZHIgc21wX2I5NzMwNzY4CiNkZWZpbmUgaXJsbXBfZ2V0X2RhZGRyIF9zZXRfdmVyKGly
bG1wX2dldF9kYWRkcikKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfc2FkZHIgc21wX2QyOTExMTNl
CiNkZWZpbmUgaXJsbXBfZ2V0X3NhZGRyIF9zZXRfdmVyKGlybG1wX2dldF9zYWRkcikKI2RlZmlu
ZSBfX3Zlcl9pcmxtcF9kdXAgc21wX2I2ODEwMjc0CiNkZWZpbmUgaXJsbXBfZHVwIF9zZXRfdmVy
KGlybG1wX2R1cCkKI2RlZmluZSBfX3Zlcl9sbXBfcmVhc29ucyBzbXBfMzJkM2Y1M2YKI2RlZmlu
ZSBsbXBfcmVhc29ucyBfc2V0X3ZlcihsbXBfcmVhc29ucykKI2RlZmluZSBfX3Zlcl9oYXNoYmlu
X2ZpbmQgc21wX2YwZDZlMTU0CiNkZWZpbmUgaGFzaGJpbl9maW5kIF9zZXRfdmVyKGhhc2hiaW5f
ZmluZCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX25ldyBzbXBfZDVmYzNjNjgKI2RlZmluZSBoYXNo
YmluX25ldyBfc2V0X3ZlcihoYXNoYmluX25ldykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2luc2Vy
dCBzbXBfNDQyYmFjNDcKI2RlZmluZSBoYXNoYmluX2luc2VydCBfc2V0X3ZlcihoYXNoYmluX2lu
c2VydCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2RlbGV0ZSBzbXBfYjQ1YjUwMzcKI2RlZmluZSBo
YXNoYmluX2RlbGV0ZSBfc2V0X3ZlcihoYXNoYmluX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9oYXNo
YmluX3JlbW92ZSBzbXBfNDg0YmQ3YWIKI2RlZmluZSBoYXNoYmluX3JlbW92ZSBfc2V0X3Zlciho
YXNoYmluX3JlbW92ZSkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX3JlbW92ZV90aGlzIHNtcF9iZmNi
YWE3MAojZGVmaW5lIGhhc2hiaW5fcmVtb3ZlX3RoaXMgX3NldF92ZXIoaGFzaGJpbl9yZW1vdmVf
dGhpcykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2dldF9uZXh0IHNtcF8wNzk5MGYwNAojZGVmaW5l
IGhhc2hiaW5fZ2V0X25leHQgX3NldF92ZXIoaGFzaGJpbl9nZXRfbmV4dCkKI2RlZmluZSBfX3Zl
cl9oYXNoYmluX2dldF9maXJzdCBzbXBfNzlkOTI3YTAKI2RlZmluZSBoYXNoYmluX2dldF9maXJz
dCBfc2V0X3ZlcihoYXNoYmluX2dldF9maXJzdCkKI2RlZmluZSBfX3Zlcl9pcmxhcF9vcGVuIHNt
cF8wODBhNGExNAojZGVmaW5lIGlybGFwX29wZW4gX3NldF92ZXIoaXJsYXBfb3BlbikKI2RlZmlu
ZSBfX3Zlcl9pcmxhcF9jbG9zZSBzbXBfNmJkNTJmMjkKI2RlZmluZSBpcmxhcF9jbG9zZSBfc2V0
X3ZlcihpcmxhcF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2luaXRfbWF4X3Fvc19jYXBhYmls
aWVzIHNtcF82YjA0M2ViYQojZGVmaW5lIGlyZGFfaW5pdF9tYXhfcW9zX2NhcGFiaWxpZXMgX3Nl
dF92ZXIoaXJkYV9pbml0X21heF9xb3NfY2FwYWJpbGllcykKI2RlZmluZSBfX3Zlcl9pcmRhX3Fv
c19iaXRzX3RvX3ZhbHVlIHNtcF80NDhiOGFhYQojZGVmaW5lIGlyZGFfcW9zX2JpdHNfdG9fdmFs
dWUgX3NldF92ZXIoaXJkYV9xb3NfYml0c190b192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rl
dmljZV9zZXR1cCBzbXBfNjZkNTAwYzAKI2RlZmluZSBpcmRhX2RldmljZV9zZXR1cCBfc2V0X3Zl
cihpcmRhX2RldmljZV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9zZXRfbWVkaWFf
YnVzeSBzbXBfYjkxYTczNDQKI2RlZmluZSBpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSBfc2V0
X3ZlcihpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rldmlj
ZV90eHF1ZXVlX2VtcHR5IHNtcF9mYzgzNTRjYQojZGVmaW5lIGlyZGFfZGV2aWNlX3R4cXVldWVf
ZW1wdHkgX3NldF92ZXIoaXJkYV9kZXZpY2VfdHhxdWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9p
cmRhX2RldmljZV9kb25nbGVfaW5pdCBzbXBfMmNiNGM3MzgKI2RlZmluZSBpcmRhX2RldmljZV9k
b25nbGVfaW5pdCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfaW5pdCkKI2RlZmluZSBfX3Zl
cl9pcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCBzbXBfNGUwMzgxYzMKI2RlZmluZSBpcmRhX2Rl
dmljZV9kb25nbGVfY2xlYW51cCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCkK
I2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9yZWdpc3Rlcl9kb25nbGUgc21wX2RjODMxMDY5CiNk
ZWZpbmUgaXJkYV9kZXZpY2VfcmVnaXN0ZXJfZG9uZ2xlIF9zZXRfdmVyKGlyZGFfZGV2aWNlX3Jl
Z2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV91bnJlZ2lzdGVyX2Rvbmds
ZSBzbXBfZTYwNTM3MmMKI2RlZmluZSBpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSBfc2V0
X3ZlcihpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rh
c2tfZXhlY3V0ZSBzbXBfZmZhYTgyZmUKI2RlZmluZSBpcmRhX3Rhc2tfZXhlY3V0ZSBfc2V0X3Zl
cihpcmRhX3Rhc2tfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rhc2tfa2ljayBzbXBfNmI5
ODgxMTQKI2RlZmluZSBpcmRhX3Rhc2tfa2ljayBfc2V0X3ZlcihpcmRhX3Rhc2tfa2ljaykKI2Rl
ZmluZSBfX3Zlcl9pcmRhX3Rhc2tfbmV4dF9zdGF0ZSBzbXBfZmI2ZjBiOTMKI2RlZmluZSBpcmRh
X3Rhc2tfbmV4dF9zdGF0ZSBfc2V0X3ZlcihpcmRhX3Rhc2tfbmV4dF9zdGF0ZSkKI2RlZmluZSBf
X3Zlcl9pcmRhX3Rhc2tfZGVsZXRlIHNtcF80MmUyMWM2NAojZGVmaW5lIGlyZGFfdGFza19kZWxl
dGUgX3NldF92ZXIoaXJkYV90YXNrX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9hc3luY193cmFwX3Nr
YiBzbXBfMmI5MTM0NWIKI2RlZmluZSBhc3luY193cmFwX3NrYiBfc2V0X3Zlcihhc3luY193cmFw
X3NrYikKI2RlZmluZSBfX3Zlcl9hc3luY191bndyYXBfY2hhciBzbXBfMmFmMmFhZWYKI2RlZmlu
ZSBhc3luY191bndyYXBfY2hhciBfc2V0X3Zlcihhc3luY191bndyYXBfY2hhcikKI2RlZmluZSBf
X3Zlcl9pcmRhX3N0YXJ0X3RpbWVyIHNtcF84ZDdmMDM5YwojZGVmaW5lIGlyZGFfc3RhcnRfdGlt
ZXIgX3NldF92ZXIoaXJkYV9zdGFydF90aW1lcikKI2RlZmluZSBfX3Zlcl9zZXR1cF9kbWEgc21w
XzAxNDg1OTUzCiNkZWZpbmUgc2V0dXBfZG1hIF9zZXRfdmVyKHNldHVwX2RtYSkKI2RlZmluZSBf
X3Zlcl9pbmZyYXJlZF9tb2RlIHNtcF84Y2RmODExYwojZGVmaW5lIGluZnJhcmVkX21vZGUgX3Nl
dF92ZXIoaW5mcmFyZWRfbW9kZSkKIyAxMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9pc2FwbnAudmVyIiAxCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NhcmRzIHNt
cF81OTNkYmZkMgojZGVmaW5lIGlzYXBucF9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfY2FyZHMpCiNk
ZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZXMgc21wXzJkYjZmYmE2CiNkZWZpbmUgaXNhcG5wX2Rl
dmljZXMgX3NldF92ZXIoaXNhcG5wX2RldmljZXMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3ByZXNl
bnQgc21wX2JmOGIzOWU5CiNkZWZpbmUgaXNhcG5wX3ByZXNlbnQgX3NldF92ZXIoaXNhcG5wX3By
ZXNlbnQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NmZ19iZWdpbiBzbXBfNzcwYTAwMzYKI2RlZmlu
ZSBpc2FwbnBfY2ZnX2JlZ2luIF9zZXRfdmVyKGlzYXBucF9jZmdfYmVnaW4pCiNkZWZpbmUgX192
ZXJfaXNhcG5wX2NmZ19lbmQgc21wXzI4YjcxNWE2CiNkZWZpbmUgaXNhcG5wX2NmZ19lbmQgX3Nl
dF92ZXIoaXNhcG5wX2NmZ19lbmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfYnl0ZSBzbXBf
ZTNiZTgyYjQKI2RlZmluZSBpc2FwbnBfcmVhZF9ieXRlIF9zZXRfdmVyKGlzYXBucF9yZWFkX2J5
dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfd29yZCBzbXBfYmYzZDc2NzAKI2RlZmluZSBp
c2FwbnBfcmVhZF93b3JkIF9zZXRfdmVyKGlzYXBucF9yZWFkX3dvcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3JlYWRfZHdvcmQgc21wX2NmYmY3MjQ3CiNkZWZpbmUgaXNhcG5wX3JlYWRfZHdvcmQg
X3NldF92ZXIoaXNhcG5wX3JlYWRfZHdvcmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2J5
dGUgc21wX2RhOGZkNDk1CiNkZWZpbmUgaXNhcG5wX3dyaXRlX2J5dGUgX3NldF92ZXIoaXNhcG5w
X3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX3dvcmQgc21wXzZhZWQzYTI0
CiNkZWZpbmUgaXNhcG5wX3dyaXRlX3dvcmQgX3NldF92ZXIoaXNhcG5wX3dyaXRlX3dvcmQpCiNk
ZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2R3b3JkIHNtcF9kN2RjNTk5YQojZGVmaW5lIGlzYXBu
cF93cml0ZV9kd29yZCBfc2V0X3Zlcihpc2FwbnBfd3JpdGVfZHdvcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3dha2Ugc21wX2ZjNGUyMTQwCiNkZWZpbmUgaXNhcG5wX3dha2UgX3NldF92ZXIoaXNh
cG5wX3dha2UpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZSBzbXBfZTAwNDg5ZWYKI2RlZmlu
ZSBpc2FwbnBfZGV2aWNlIF9zZXRfdmVyKGlzYXBucF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfaXNh
cG5wX2FjdGl2YXRlIHNtcF8yZWU2NmI0MQojZGVmaW5lIGlzYXBucF9hY3RpdmF0ZSBfc2V0X3Zl
cihpc2FwbnBfYWN0aXZhdGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RlYWN0aXZhdGUgc21wX2U1
YmMzMDQwCiNkZWZpbmUgaXNhcG5wX2RlYWN0aXZhdGUgX3NldF92ZXIoaXNhcG5wX2RlYWN0aXZh
dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2ZpbmRfY2FyZCBzbXBfYmFlOGI3OTAKI2RlZmluZSBp
c2FwbnBfZmluZF9jYXJkIF9zZXRfdmVyKGlzYXBucF9maW5kX2NhcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX2ZpbmRfZGV2IHNtcF8yMmRkZWU3NgojZGVmaW5lIGlzYXBucF9maW5kX2RldiBfc2V0
X3Zlcihpc2FwbnBfZmluZF9kZXYpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2NhcmRzIHNt
cF8xNTc4MTczMgojZGVmaW5lIGlzYXBucF9wcm9iZV9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfcHJv
YmVfY2FyZHMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2RldnMgc21wXzU0NDQyZGViCiNk
ZWZpbmUgaXNhcG5wX3Byb2JlX2RldnMgX3NldF92ZXIoaXNhcG5wX3Byb2JlX2RldnMpCiNkZWZp
bmUgX192ZXJfaXNhcG5wX2FjdGl2YXRlX2RldiBzbXBfNWJiZTBlZTMKI2RlZmluZSBpc2FwbnBf
YWN0aXZhdGVfZGV2IF9zZXRfdmVyKGlzYXBucF9hY3RpdmF0ZV9kZXYpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3Jlc291cmNlX2NoYW5nZSBzbXBfMDliOTY1YWYKI2RlZmluZSBpc2FwbnBfcmVzb3Vy
Y2VfY2hhbmdlIF9zZXRfdmVyKGlzYXBucF9yZXNvdXJjZV9jaGFuZ2UpCiMgMTIyICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXNkbl9jb21tb24udmVyIiAxCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfaXNkbiBzbXBfZTk2MTJjYjEKI2RlZmluZSByZWdpc3Rlcl9p
c2RuIF9zZXRfdmVyKHJlZ2lzdGVyX2lzZG4pCiMgMTIzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvaXNlbnNlLnZlciIgMQojIDEyNCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2tjYXBpLnZlciIgMQojZGVmaW5lIF9fdmVyX2F0
dGFjaF9jYXBpX2ludGVyZmFjZSBzbXBfNTU0OTA2ODcKI2RlZmluZSBhdHRhY2hfY2FwaV9pbnRl
cmZhY2UgX3NldF92ZXIoYXR0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2RldGFj
aF9jYXBpX2ludGVyZmFjZSBzbXBfODNjNzEyMzIKI2RlZmluZSBkZXRhY2hfY2FwaV9pbnRlcmZh
Y2UgX3NldF92ZXIoZGV0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2F0dGFjaF9j
YXBpX2RyaXZlciBzbXBfMzQyNjdjYjcKI2RlZmluZSBhdHRhY2hfY2FwaV9kcml2ZXIgX3NldF92
ZXIoYXR0YWNoX2NhcGlfZHJpdmVyKQojZGVmaW5lIF9fdmVyX2RldGFjaF9jYXBpX2RyaXZlciBz
bXBfOTM2NDNlMDAKI2RlZmluZSBkZXRhY2hfY2FwaV9kcml2ZXIgX3NldF92ZXIoZGV0YWNoX2Nh
cGlfZHJpdmVyKQojIDEyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2tkYl9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9rZGJfcmVhZCBzbXBfNGE0ODJiM2IKI2Rl
ZmluZSBrZGJfcmVhZCBfc2V0X3ZlcihrZGJfcmVhZCkKIyAxMjYgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9rZGJtYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX2tk
Yl9yZWdpc3RlciBzbXBfY2QwYzJjYjMKI2RlZmluZSBrZGJfcmVnaXN0ZXIgX3NldF92ZXIoa2Ri
X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2tkYl91bnJlZ2lzdGVyIHNtcF8yNDdlZjgzMQojZGVm
aW5lIGtkYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGtkYl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVy
X2tkYmFfZ2V0d29yZCBzbXBfODc4YmU2ZDAKI2RlZmluZSBrZGJhX2dldHdvcmQgX3NldF92ZXIo
a2RiYV9nZXR3b3JkKQojZGVmaW5lIF9fdmVyX2tkYmFfcHV0d29yZCBzbXBfNmQ3NjFhYzkKI2Rl
ZmluZSBrZGJhX3B1dHdvcmQgX3NldF92ZXIoa2RiYV9wdXR3b3JkKQojZGVmaW5lIF9fdmVyX2tk
YmdldHVsYXJnIHNtcF9hOGRlYzNmYQojZGVmaW5lIGtkYmdldHVsYXJnIF9zZXRfdmVyKGtkYmdl
dHVsYXJnKQojZGVmaW5lIF9fdmVyX2tkYmdldGVudiBzbXBfOGI2N2Q1MDkKI2RlZmluZSBrZGJn
ZXRlbnYgX3NldF92ZXIoa2RiZ2V0ZW52KQojZGVmaW5lIF9fdmVyX2tkYmdldGludGVudiBzbXBf
NjI1ZDZkM2YKI2RlZmluZSBrZGJnZXRpbnRlbnYgX3NldF92ZXIoa2RiZ2V0aW50ZW52KQojZGVm
aW5lIF9fdmVyX2tkYmdldGFkZHJhcmcgc21wXzY5MWYxMzFlCiNkZWZpbmUga2RiZ2V0YWRkcmFy
ZyBfc2V0X3ZlcihrZGJnZXRhZGRyYXJnKQojZGVmaW5lIF9fdmVyX2tkYiBzbXBfMmIzMDE0OWYK
I2RlZmluZSBrZGIgX3NldF92ZXIoa2RiKQojZGVmaW5lIF9fdmVyX2tkYl9vbiBzbXBfMzJkYTU5
NmIKI2RlZmluZSBrZGJfb24gX3NldF92ZXIoa2RiX29uKQojZGVmaW5lIF9fdmVyX2tkYmdldHN5
bXZhbCBzbXBfNjg3YjZhMTYKI2RlZmluZSBrZGJnZXRzeW12YWwgX3NldF92ZXIoa2RiZ2V0c3lt
dmFsKQojZGVmaW5lIF9fdmVyX2tkYm5lYXJzeW0gc21wX2FjYzliZGRhCiNkZWZpbmUga2RibmVh
cnN5bSBfc2V0X3ZlcihrZGJuZWFyc3ltKQojZGVmaW5lIF9fdmVyX2tkYl9wcmludGYgc21wX2Q0
OGM2MzIxCiNkZWZpbmUga2RiX3ByaW50ZiBfc2V0X3ZlcihrZGJfcHJpbnRmKQojZGVmaW5lIF9f
dmVyX2tkYl9zeW1ib2xfcHJpbnQgc21wXzM0OGVmNzUzCiNkZWZpbmUga2RiX3N5bWJvbF9wcmlu
dCBfc2V0X3ZlcihrZGJfc3ltYm9sX3ByaW50KQojIDEyNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2tleWJvYXJkLnZlciIgMQojZGVmaW5lIF9fdmVyX2hhbmRs
ZV9zY2FuY29kZSBzbXBfZDNkNmEyZjEKI2RlZmluZSBoYW5kbGVfc2NhbmNvZGUgX3NldF92ZXIo
aGFuZGxlX3NjYW5jb2RlKQojZGVmaW5lIF9fdmVyX2tiZF9sZWRmdW5jIHNtcF9mYTY3Y2M1Zgoj
ZGVmaW5lIGtiZF9sZWRmdW5jIF9zZXRfdmVyKGtiZF9sZWRmdW5jKQojZGVmaW5lIF9fdmVyX2tl
eWJvYXJkX3Rhc2tsZXQgc21wX2RjNGQ1NWE2CiNkZWZpbmUga2V5Ym9hcmRfdGFza2xldCBfc2V0
X3ZlcihrZXlib2FyZF90YXNrbGV0KQojIDEyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2ttb2QudmVyIiAxCiNkZWZpbmUgX192ZXJfaG90cGx1Z19wYXRoIHNt
cF8xMmRjZDVhNgojZGVmaW5lIGhvdHBsdWdfcGF0aCBfc2V0X3Zlcihob3RwbHVnX3BhdGgpCiNk
ZWZpbmUgX192ZXJfZXhlY191c2VybW9kZWhlbHBlciBzbXBfYzQ3YmY2YWQKI2RlZmluZSBleGVj
X3VzZXJtb2RlaGVscGVyIF9zZXRfdmVyKGV4ZWNfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192
ZXJfY2FsbF91c2VybW9kZWhlbHBlciBzbXBfODRhMjkxYzgKI2RlZmluZSBjYWxsX3VzZXJtb2Rl
aGVscGVyIF9zZXRfdmVyKGNhbGxfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192ZXJfcmVxdWVz
dF9tb2R1bGUgc21wXzI3ZTRkYzA0CiNkZWZpbmUgcmVxdWVzdF9tb2R1bGUgX3NldF92ZXIocmVx
dWVzdF9tb2R1bGUpCiMgMTI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMva3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3JlZ2lzdGVyIHNt
cF9kYmQzYWMwMQojZGVmaW5lIGludGVyX21vZHVsZV9yZWdpc3RlciBfc2V0X3ZlcihpbnRlcl9t
b2R1bGVfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgc21w
XzdhOWU4NDVlCiNkZWZpbmUgaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgX3NldF92ZXIoaW50ZXJf
bW9kdWxlX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldCBzbXBfZjZh
MGNlMjQKI2RlZmluZSBpbnRlcl9tb2R1bGVfZ2V0IF9zZXRfdmVyKGludGVyX21vZHVsZV9nZXQp
CiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldF9yZXF1ZXN0IHNtcF9iNjlmODI2YgojZGVm
aW5lIGludGVyX21vZHVsZV9nZXRfcmVxdWVzdCBfc2V0X3ZlcihpbnRlcl9tb2R1bGVfZ2V0X3Jl
cXVlc3QpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3B1dCBzbXBfNmI5OWY3ZDgKI2RlZmlu
ZSBpbnRlcl9tb2R1bGVfcHV0IF9zZXRfdmVyKGludGVyX21vZHVsZV9wdXQpCiNkZWZpbmUgX192
ZXJfdHJ5X2luY19tb2RfY291bnQgc21wX2VhZDIwMmYzCiNkZWZpbmUgdHJ5X2luY19tb2RfY291
bnQgX3NldF92ZXIodHJ5X2luY19tb2RfY291bnQpCiNkZWZpbmUgX192ZXJfX19zdGFydF9fX2th
bGxzeW1zIHNtcF85YzFiMzhhNwojZGVmaW5lIF9fc3RhcnRfX19rYWxsc3ltcyBfc2V0X3Zlcihf
X3N0YXJ0X19fa2FsbHN5bXMpCiNkZWZpbmUgX192ZXJfX19zdG9wX19fa2FsbHN5bXMgc21wXzFj
M2FkYmMwCiNkZWZpbmUgX19zdG9wX19fa2FsbHN5bXMgX3NldF92ZXIoX19zdG9wX19fa2FsbHN5
bXMpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3Mgc21wXzEzYmVkMDQ0
CiNkZWZpbmUga2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3MgX3NldF92ZXIoa2FsbHN5bXNfc3lt
Ym9sX3RvX2FkZHJlc3MpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wg
c21wXzQwODRmN2QzCiNkZWZpbmUga2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wgX3NldF92ZXIo
a2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wpCiNkZWZpbmUgX192ZXJfZG9fbW1hcF9wZ29mZiBz
bXBfZTNhOTAzNDAKI2RlZmluZSBkb19tbWFwX3Bnb2ZmIF9zZXRfdmVyKGRvX21tYXBfcGdvZmYp
CiNkZWZpbmUgX192ZXJfZG9fbXVubWFwIHNtcF9iMGE1MjAwNwojZGVmaW5lIGRvX211bm1hcCBf
c2V0X3Zlcihkb19tdW5tYXApCiNkZWZpbmUgX192ZXJfZG9fYnJrIHNtcF85ZWVjZGUxNgojZGVm
aW5lIGRvX2JyayBfc2V0X3Zlcihkb19icmspCiNkZWZpbmUgX192ZXJfZXhpdF9tbSBzbXBfODZk
MjQ3MTgKI2RlZmluZSBleGl0X21tIF9zZXRfdmVyKGV4aXRfbW0pCiNkZWZpbmUgX192ZXJfZXhp
dF9maWxlcyBzbXBfODBhYTUzMzgKI2RlZmluZSBleGl0X2ZpbGVzIF9zZXRfdmVyKGV4aXRfZmls
ZXMpCiNkZWZpbmUgX192ZXJfZXhpdF9mcyBzbXBfZGM1MzZmNTIKI2RlZmluZSBleGl0X2ZzIF9z
ZXRfdmVyKGV4aXRfZnMpCiNkZWZpbmUgX192ZXJfZXhpdF9zaWdoYW5kIHNtcF81ZDE3OWE0OAoj
ZGVmaW5lIGV4aXRfc2lnaGFuZCBfc2V0X3ZlcihleGl0X3NpZ2hhbmQpCiNkZWZpbmUgX192ZXJf
X2FsbG9jX3BhZ2VzIHNtcF82OWVjNTMyMgojZGVmaW5lIF9hbGxvY19wYWdlcyBfc2V0X3Zlcihf
YWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJfX19hbGxvY19wYWdlcyBzbXBfNDg1NWFhNDAKI2Rl
ZmluZSBfX2FsbG9jX3BhZ2VzIF9zZXRfdmVyKF9fYWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJf
YWxsb2NfcGFnZXNfbm9kZSBzbXBfOWI2ZWEzY2EKI2RlZmluZSBhbGxvY19wYWdlc19ub2RlIF9z
ZXRfdmVyKGFsbG9jX3BhZ2VzX25vZGUpCiNkZWZpbmUgX192ZXJfX19nZXRfZnJlZV9wYWdlcyBz
bXBfMTlkOWFjNDAKI2RlZmluZSBfX2dldF9mcmVlX3BhZ2VzIF9zZXRfdmVyKF9fZ2V0X2ZyZWVf
cGFnZXMpCiNkZWZpbmUgX192ZXJfZ2V0X3plcm9lZF9wYWdlIHNtcF8zZmFkNmE1NwojZGVmaW5l
IGdldF96ZXJvZWRfcGFnZSBfc2V0X3ZlcihnZXRfemVyb2VkX3BhZ2UpCiNkZWZpbmUgX192ZXJf
X19mcmVlX3BhZ2VzIHNtcF85NjdjNDQ2NQojZGVmaW5lIF9fZnJlZV9wYWdlcyBfc2V0X3Zlcihf
X2ZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnJlZV9wYWdlcyBzbXBfYjUxMzY1MDYKI2RlZmlu
ZSBmcmVlX3BhZ2VzIF9zZXRfdmVyKGZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfbnVtX3BoeXNw
YWdlcyBzbXBfMDk0OGNkZTkKI2RlZmluZSBudW1fcGh5c3BhZ2VzIF9zZXRfdmVyKG51bV9waHlz
cGFnZXMpCiNkZWZpbmUgX192ZXJfa21lbV9maW5kX2dlbmVyYWxfY2FjaGVwIHNtcF9hMWNjOTdj
ZgojZGVmaW5lIGttZW1fZmluZF9nZW5lcmFsX2NhY2hlcCBfc2V0X3ZlcihrbWVtX2ZpbmRfZ2Vu
ZXJhbF9jYWNoZXApCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9jcmVhdGUgc21wX2FiNTJjNzMx
CiNkZWZpbmUga21lbV9jYWNoZV9jcmVhdGUgX3NldF92ZXIoa21lbV9jYWNoZV9jcmVhdGUpCiNk
ZWZpbmUgX192ZXJfa21lbV9jYWNoZV9kZXN0cm95IHNtcF9kZjgzYzY5MgojZGVmaW5lIGttZW1f
Y2FjaGVfZGVzdHJveSBfc2V0X3ZlcihrbWVtX2NhY2hlX2Rlc3Ryb3kpCiNkZWZpbmUgX192ZXJf
a21lbV9jYWNoZV9zaHJpbmsgc21wXzEyZjdjZjA0CiNkZWZpbmUga21lbV9jYWNoZV9zaHJpbmsg
X3NldF92ZXIoa21lbV9jYWNoZV9zaHJpbmspCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9hbGxv
YyBzbXBfNzU4MTA5NTYKI2RlZmluZSBrbWVtX2NhY2hlX2FsbG9jIF9zZXRfdmVyKGttZW1fY2Fj
aGVfYWxsb2MpCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9mcmVlIHNtcF84OTFmMjY4NgojZGVm
aW5lIGttZW1fY2FjaGVfZnJlZSBfc2V0X3ZlcihrbWVtX2NhY2hlX2ZyZWUpCiNkZWZpbmUgX192
ZXJfa21hbGxvYyBzbXBfNmY2YzFjZjcKI2RlZmluZSBrbWFsbG9jIF9zZXRfdmVyKGttYWxsb2Mp
CiNkZWZpbmUgX192ZXJfa2ZyZWUgc21wXzAzN2EwY2JhCiNkZWZpbmUga2ZyZWUgX3NldF92ZXIo
a2ZyZWUpCiNkZWZpbmUgX192ZXJfdmZyZWUgc21wXzJmZDFkODFjCiNkZWZpbmUgdmZyZWUgX3Nl
dF92ZXIodmZyZWUpCiNkZWZpbmUgX192ZXJfX192bWFsbG9jIHNtcF83OTk5NWM1YgojZGVmaW5l
IF9fdm1hbGxvYyBfc2V0X3ZlcihfX3ZtYWxsb2MpCiNkZWZpbmUgX192ZXJfbWVtX21hcCBzbXBf
OGZhOWNhMTEKI2RlZmluZSBtZW1fbWFwIF9zZXRfdmVyKG1lbV9tYXApCiNkZWZpbmUgX192ZXJf
cmVtYXBfcGFnZV9yYW5nZSBzbXBfNjlkMDFlNzMKI2RlZmluZSByZW1hcF9wYWdlX3JhbmdlIF9z
ZXRfdmVyKHJlbWFwX3BhZ2VfcmFuZ2UpCiNkZWZpbmUgX192ZXJfbWF4X21hcG5yIHNtcF8wMTEz
OWZmYwojZGVmaW5lIG1heF9tYXBuciBfc2V0X3ZlcihtYXhfbWFwbnIpCiNkZWZpbmUgX192ZXJf
aGlnaF9tZW1vcnkgc21wXzhhN2QxYzMxCiNkZWZpbmUgaGlnaF9tZW1vcnkgX3NldF92ZXIoaGln
aF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfdm10cnVuY2F0ZSBzbXBfYTY1MWExMTcKI2RlZmluZSB2
bXRydW5jYXRlIF9zZXRfdmVyKHZtdHJ1bmNhdGUpCiNkZWZpbmUgX192ZXJfZmluZF92bWEgc21w
XzlhZTI1ZWQyCiNkZWZpbmUgZmluZF92bWEgX3NldF92ZXIoZmluZF92bWEpCiNkZWZpbmUgX192
ZXJfZ2V0X3VubWFwcGVkX2FyZWEgc21wXzhiM2I3OTBkCiNkZWZpbmUgZ2V0X3VubWFwcGVkX2Fy
ZWEgX3NldF92ZXIoZ2V0X3VubWFwcGVkX2FyZWEpCiNkZWZpbmUgX192ZXJfaW5pdF9tbSBzbXBf
MzlkNTZlZDkKI2RlZmluZSBpbml0X21tIF9zZXRfdmVyKGluaXRfbW0pCiNkZWZpbmUgX192ZXJf
ZGVhY3RpdmF0ZV9wYWdlIHNtcF9mMjY0ODI0OAojZGVmaW5lIGRlYWN0aXZhdGVfcGFnZSBfc2V0
X3ZlcihkZWFjdGl2YXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZGVmX2Jsa19mb3BzIHNtcF83NGVi
NGE2YQojZGVmaW5lIGRlZl9ibGtfZm9wcyBfc2V0X3ZlcihkZWZfYmxrX2ZvcHMpCiNkZWZpbmUg
X192ZXJfdXBkYXRlX2F0aW1lIHNtcF85MWNhMWE3MAojZGVmaW5lIHVwZGF0ZV9hdGltZSBfc2V0
X3Zlcih1cGRhdGVfYXRpbWUpCiNkZWZpbmUgX192ZXJfZ2V0X2ZzX3R5cGUgc21wX2EzN2Q0NWYy
CiNkZWZpbmUgZ2V0X2ZzX3R5cGUgX3NldF92ZXIoZ2V0X2ZzX3R5cGUpCiNkZWZpbmUgX192ZXJf
Z2V0X3N1cGVyIHNtcF84NTEzMmYzYgojZGVmaW5lIGdldF9zdXBlciBfc2V0X3ZlcihnZXRfc3Vw
ZXIpCiNkZWZpbmUgX192ZXJfZ2V0bmFtZSBzbXBfN2M2MGQ2NmUKI2RlZmluZSBnZXRuYW1lIF9z
ZXRfdmVyKGdldG5hbWUpCiNkZWZpbmUgX192ZXJfbmFtZXNfY2FjaGVwIHNtcF9kMjU0NjliNAoj
ZGVmaW5lIG5hbWVzX2NhY2hlcCBfc2V0X3ZlcihuYW1lc19jYWNoZXApCiNkZWZpbmUgX192ZXJf
ZnB1dCBzbXBfNDZlYzdkMzAKI2RlZmluZSBmcHV0IF9zZXRfdmVyKGZwdXQpCiNkZWZpbmUgX192
ZXJfZmdldCBzbXBfMWY2YTFjNzMKI2RlZmluZSBmZ2V0IF9zZXRfdmVyKGZnZXQpCiNkZWZpbmUg
X192ZXJfaWdyYWIgc21wXzJkNDNlNGEzCiNkZWZpbmUgaWdyYWIgX3NldF92ZXIoaWdyYWIpCiNk
ZWZpbmUgX192ZXJfaXVuaXF1ZSBzbXBfMmRmN2UyMWIKI2RlZmluZSBpdW5pcXVlIF9zZXRfdmVy
KGl1bmlxdWUpCiNkZWZpbmUgX192ZXJfaWdldDQgc21wXzExMWNjOGExCiNkZWZpbmUgaWdldDQg
X3NldF92ZXIoaWdldDQpCiNkZWZpbmUgX192ZXJfaXB1dCBzbXBfNWVkYmE2MmQKI2RlZmluZSBp
cHV0IF9zZXRfdmVyKGlwdXQpCiNkZWZpbmUgX192ZXJfZm9yY2VfZGVsZXRlIHNtcF9jNWUxYTE1
NAojZGVmaW5lIGZvcmNlX2RlbGV0ZSBfc2V0X3Zlcihmb3JjZV9kZWxldGUpCiNkZWZpbmUgX192
ZXJfZm9sbG93X3VwIHNtcF9hZGUzYTdhMgojZGVmaW5lIGZvbGxvd191cCBfc2V0X3Zlcihmb2xs
b3dfdXApCiNkZWZpbmUgX192ZXJfZm9sbG93X2Rvd24gc21wXzVhZTAzZTQ2CiNkZWZpbmUgZm9s
bG93X2Rvd24gX3NldF92ZXIoZm9sbG93X2Rvd24pCiNkZWZpbmUgX192ZXJfbG9va3VwX21udCBz
bXBfZWZlNzE1M2QKI2RlZmluZSBsb29rdXBfbW50IF9zZXRfdmVyKGxvb2t1cF9tbnQpCiNkZWZp
bmUgX192ZXJfcGF0aF9pbml0IHNtcF8wNTQ5YzQ2YgojZGVmaW5lIHBhdGhfaW5pdCBfc2V0X3Zl
cihwYXRoX2luaXQpCiNkZWZpbmUgX192ZXJfcGF0aF93YWxrIHNtcF9kMGFhOTViZQojZGVmaW5l
IHBhdGhfd2FsayBfc2V0X3ZlcihwYXRoX3dhbGspCiNkZWZpbmUgX192ZXJfcGF0aF9yZWxlYXNl
IHNtcF8yYzE0ODNhYwojZGVmaW5lIHBhdGhfcmVsZWFzZSBfc2V0X3ZlcihwYXRoX3JlbGVhc2Up
CiNkZWZpbmUgX192ZXJfX191c2VyX3dhbGsgc21wX2IzZDQxNzE0CiNkZWZpbmUgX191c2VyX3dh
bGsgX3NldF92ZXIoX191c2VyX3dhbGspCiNkZWZpbmUgX192ZXJfbG9va3VwX29uZV9sZW4gc21w
X2EwMDVkMmRkCiNkZWZpbmUgbG9va3VwX29uZV9sZW4gX3NldF92ZXIobG9va3VwX29uZV9sZW4p
CiNkZWZpbmUgX192ZXJfbG9va3VwX2hhc2ggc21wX2U0MGM4NWFmCiNkZWZpbmUgbG9va3VwX2hh
c2ggX3NldF92ZXIobG9va3VwX2hhc2gpCiNkZWZpbmUgX192ZXJfc3lzX2Nsb3NlIHNtcF9kZTc2
ZTdiYwojZGVmaW5lIHN5c19jbG9zZSBfc2V0X3ZlcihzeXNfY2xvc2UpCiNkZWZpbmUgX192ZXJf
ZGNhY2hlX2xvY2sgc21wX2Y3YzMyY2ExCiNkZWZpbmUgZGNhY2hlX2xvY2sgX3NldF92ZXIoZGNh
Y2hlX2xvY2spCiNkZWZpbmUgX192ZXJfZF9hbGxvY19yb290IHNtcF9lMjI0YzRjNQojZGVmaW5l
IGRfYWxsb2Nfcm9vdCBfc2V0X3ZlcihkX2FsbG9jX3Jvb3QpCiNkZWZpbmUgX192ZXJfZF9kZWxl
dGUgc21wX2M3MThiNTU3CiNkZWZpbmUgZF9kZWxldGUgX3NldF92ZXIoZF9kZWxldGUpCiNkZWZp
bmUgX192ZXJfZGdldF9sb2NrZWQgc21wX2QyODJiODA3CiNkZWZpbmUgZGdldF9sb2NrZWQgX3Nl
dF92ZXIoZGdldF9sb2NrZWQpCiNkZWZpbmUgX192ZXJfZF92YWxpZGF0ZSBzbXBfYzQ3MTNkMTkK
I2RlZmluZSBkX3ZhbGlkYXRlIF9zZXRfdmVyKGRfdmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9y
ZWhhc2ggc21wX2Q5MDFjMTRiCiNkZWZpbmUgZF9yZWhhc2ggX3NldF92ZXIoZF9yZWhhc2gpCiNk
ZWZpbmUgX192ZXJfZF9pbnZhbGlkYXRlIHNtcF81YTA0ZDhlZAojZGVmaW5lIGRfaW52YWxpZGF0
ZSBfc2V0X3ZlcihkX2ludmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9tb3ZlIHNtcF82YTZjYzY3
YwojZGVmaW5lIGRfbW92ZSBfc2V0X3ZlcihkX21vdmUpCiNkZWZpbmUgX192ZXJfZF9pbnN0YW50
aWF0ZSBzbXBfMDIxZTI1OTIKI2RlZmluZSBkX2luc3RhbnRpYXRlIF9zZXRfdmVyKGRfaW5zdGFu
dGlhdGUpCiNkZWZpbmUgX192ZXJfZF9hbGxvYyBzbXBfMjA0ZWNkNjIKI2RlZmluZSBkX2FsbG9j
IF9zZXRfdmVyKGRfYWxsb2MpCiNkZWZpbmUgX192ZXJfZF9sb29rdXAgc21wX2U5YzU2M2UxCiNk
ZWZpbmUgZF9sb29rdXAgX3NldF92ZXIoZF9sb29rdXApCiNkZWZpbmUgX192ZXJfX19kX3BhdGgg
c21wX2FmMWQ3YmZmCiNkZWZpbmUgX19kX3BhdGggX3NldF92ZXIoX19kX3BhdGgpCiNkZWZpbmUg
X192ZXJfbWFya19idWZmZXJfZGlydHkgc21wXzMzNTdiZWJjCiNkZWZpbmUgbWFya19idWZmZXJf
ZGlydHkgX3NldF92ZXIobWFya19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfc2V0X2J1ZmZl
cl9hc3luY19pbyBzbXBfMTA0N2U4ODUKI2RlZmluZSBzZXRfYnVmZmVyX2FzeW5jX2lvIF9zZXRf
dmVyKHNldF9idWZmZXJfYXN5bmNfaW8pCiNkZWZpbmUgX192ZXJfX19tYXJrX2J1ZmZlcl9kaXJ0
eSBzbXBfYzFhM2Y0YWIKI2RlZmluZSBfX21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKF9fbWFy
a19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfX19tYXJrX2lub2RlX2RpcnR5IHNtcF9lYjBm
MTU1YwojZGVmaW5lIF9fbWFya19pbm9kZV9kaXJ0eSBfc2V0X3ZlcihfX21hcmtfaW5vZGVfZGly
dHkpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2ZpbHAgc21wXzE5MzI1ZDgyCiNkZWZpbmUgZ2V0
X2VtcHR5X2ZpbHAgX3NldF92ZXIoZ2V0X2VtcHR5X2ZpbHApCiNkZWZpbmUgX192ZXJfaW5pdF9w
cml2YXRlX2ZpbGUgc21wXzFjZWU0YTkwCiNkZWZpbmUgaW5pdF9wcml2YXRlX2ZpbGUgX3NldF92
ZXIoaW5pdF9wcml2YXRlX2ZpbGUpCiNkZWZpbmUgX192ZXJfZmlscF9vcGVuIHNtcF9kNzkwZGNh
NAojZGVmaW5lIGZpbHBfb3BlbiBfc2V0X3ZlcihmaWxwX29wZW4pCiNkZWZpbmUgX192ZXJfZmls
cF9jbG9zZSBzbXBfMTE5ZWJiY2IKI2RlZmluZSBmaWxwX2Nsb3NlIF9zZXRfdmVyKGZpbHBfY2xv
c2UpCiNkZWZpbmUgX192ZXJfcHV0X2ZpbHAgc21wXzQ2NDgwNTZlCiNkZWZpbmUgcHV0X2ZpbHAg
X3NldF92ZXIocHV0X2ZpbHApCiNkZWZpbmUgX192ZXJfZmlsZXNfbG9jayBzbXBfYzJiZTIxNzkK
I2RlZmluZSBmaWxlc19sb2NrIF9zZXRfdmVyKGZpbGVzX2xvY2spCiNkZWZpbmUgX192ZXJfY2hl
Y2tfZGlza19jaGFuZ2Ugc21wXzExZDQwNzZkCiNkZWZpbmUgY2hlY2tfZGlza19jaGFuZ2UgX3Nl
dF92ZXIoY2hlY2tfZGlza19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfX19pbnZhbGlkYXRlX2J1ZmZl
cnMgc21wXzk4ZjUxNTM4CiNkZWZpbmUgX19pbnZhbGlkYXRlX2J1ZmZlcnMgX3NldF92ZXIoX19p
bnZhbGlkYXRlX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9pbm9kZXMgc21wX2Qx
ZjY2ZTkyCiNkZWZpbmUgaW52YWxpZGF0ZV9pbm9kZXMgX3NldF92ZXIoaW52YWxpZGF0ZV9pbm9k
ZXMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9kZXZpY2Ugc21wXzI1YTRiMGIyCiNkZWZpbmUg
aW52YWxpZGF0ZV9kZXZpY2UgX3NldF92ZXIoaW52YWxpZGF0ZV9kZXZpY2UpCiNkZWZpbmUgX192
ZXJfaW52YWxpZGF0ZV9pbm9kZV9wYWdlcyBzbXBfNGNmNTFjMDMKI2RlZmluZSBpbnZhbGlkYXRl
X2lub2RlX3BhZ2VzIF9zZXRfdmVyKGludmFsaWRhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192
ZXJfdHJ1bmNhdGVfaW5vZGVfcGFnZXMgc21wX2FlMjg2NDZkCiNkZWZpbmUgdHJ1bmNhdGVfaW5v
ZGVfcGFnZXMgX3NldF92ZXIodHJ1bmNhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnN5
bmNfZGV2IHNtcF84ZWExMjhlMgojZGVmaW5lIGZzeW5jX2RldiBfc2V0X3Zlcihmc3luY19kZXYp
CiNkZWZpbmUgX192ZXJfcGVybWlzc2lvbiBzbXBfOWIzNTQ0NTcKI2RlZmluZSBwZXJtaXNzaW9u
IF9zZXRfdmVyKHBlcm1pc3Npb24pCiNkZWZpbmUgX192ZXJfdmZzX3Blcm1pc3Npb24gc21wXzU3
MDM5OWRmCiNkZWZpbmUgdmZzX3Blcm1pc3Npb24gX3NldF92ZXIodmZzX3Blcm1pc3Npb24pCiNk
ZWZpbmUgX192ZXJfaW5vZGVfc2V0YXR0ciBzbXBfODBhMmNlYjgKI2RlZmluZSBpbm9kZV9zZXRh
dHRyIF9zZXRfdmVyKGlub2RlX3NldGF0dHIpCiNkZWZpbmUgX192ZXJfaW5vZGVfY2hhbmdlX29r
IHNtcF80MDRkMGM1NwojZGVmaW5lIGlub2RlX2NoYW5nZV9vayBfc2V0X3Zlcihpbm9kZV9jaGFu
Z2Vfb2spCiNkZWZpbmUgX192ZXJfd3JpdGVfaW5vZGVfbm93IHNtcF9lZjRjZGJjYwojZGVmaW5l
IHdyaXRlX2lub2RlX25vdyBfc2V0X3Zlcih3cml0ZV9pbm9kZV9ub3cpCiNkZWZpbmUgX192ZXJf
bm90aWZ5X2NoYW5nZSBzbXBfYmI5Nzg2NjgKI2RlZmluZSBub3RpZnlfY2hhbmdlIF9zZXRfdmVy
KG5vdGlmeV9jaGFuZ2UpCiNkZWZpbmUgX192ZXJfc2V0X2Jsb2Nrc2l6ZSBzbXBfYTg0MjcyMmEK
I2RlZmluZSBzZXRfYmxvY2tzaXplIF9zZXRfdmVyKHNldF9ibG9ja3NpemUpCiNkZWZpbmUgX192
ZXJfZ2V0YmxrIHNtcF80OWExYTM1MgojZGVmaW5lIGdldGJsayBfc2V0X3ZlcihnZXRibGspCiNk
ZWZpbmUgX192ZXJfY2RnZXQgc21wX2Q2NzM5NTAzCiNkZWZpbmUgY2RnZXQgX3NldF92ZXIoY2Rn
ZXQpCiNkZWZpbmUgX192ZXJfY2RwdXQgc21wX2VjNWQ1OGJkCiNkZWZpbmUgY2RwdXQgX3NldF92
ZXIoY2RwdXQpCiNkZWZpbmUgX192ZXJfYmRnZXQgc21wXzlmMTEwODVhCiNkZWZpbmUgYmRnZXQg
X3NldF92ZXIoYmRnZXQpCiNkZWZpbmUgX192ZXJfYmRwdXQgc21wXzY5YTA3YmNkCiNkZWZpbmUg
YmRwdXQgX3NldF92ZXIoYmRwdXQpCiNkZWZpbmUgX192ZXJfYnJlYWQgc21wXzA5OWE5OTgzCiNk
ZWZpbmUgYnJlYWQgX3NldF92ZXIoYnJlYWQpCiNkZWZpbmUgX192ZXJfX19icmVsc2Ugc21wXzg2
NThlN2ZmCiNkZWZpbmUgX19icmVsc2UgX3NldF92ZXIoX19icmVsc2UpCiNkZWZpbmUgX192ZXJf
X19iZm9yZ2V0IHNtcF82ZTA1MmI4NwojZGVmaW5lIF9fYmZvcmdldCBfc2V0X3ZlcihfX2Jmb3Jn
ZXQpCiNkZWZpbmUgX192ZXJfbGxfcndfYmxvY2sgc21wXzRjMjVlOTViCiNkZWZpbmUgbGxfcndf
YmxvY2sgX3NldF92ZXIobGxfcndfYmxvY2spCiNkZWZpbmUgX192ZXJfc3VibWl0X2JoIHNtcF9l
ZmExNzQ4MQojZGVmaW5lIHN1Ym1pdF9iaCBfc2V0X3ZlcihzdWJtaXRfYmgpCiNkZWZpbmUgX192
ZXJfdW5sb2NrX2J1ZmZlciBzbXBfNDEwODBiMTcKI2RlZmluZSB1bmxvY2tfYnVmZmVyIF9zZXRf
dmVyKHVubG9ja19idWZmZXIpCiNkZWZpbmUgX192ZXJfX193YWl0X29uX2J1ZmZlciBzbXBfNDZj
OGYzZWQKI2RlZmluZSBfX3dhaXRfb25fYnVmZmVyIF9zZXRfdmVyKF9fd2FpdF9vbl9idWZmZXIp
CiNkZWZpbmUgX192ZXJfX19fd2FpdF9vbl9wYWdlIHNtcF8wNGQ0YmQwMgojZGVmaW5lIF9fX3dh
aXRfb25fcGFnZSBfc2V0X3ZlcihfX193YWl0X29uX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tf
d3JpdGVfZnVsbF9wYWdlIHNtcF83M2RjNTU2ZgojZGVmaW5lIGJsb2NrX3dyaXRlX2Z1bGxfcGFn
ZSBfc2V0X3ZlcihibG9ja193cml0ZV9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVh
ZF9mdWxsX3BhZ2Ugc21wX2QwYjRkMmQxCiNkZWZpbmUgYmxvY2tfcmVhZF9mdWxsX3BhZ2UgX3Nl
dF92ZXIoYmxvY2tfcmVhZF9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcHJlcGFyZV93
cml0ZSBzbXBfZGQ1N2JmNmQKI2RlZmluZSBibG9ja19wcmVwYXJlX3dyaXRlIF9zZXRfdmVyKGJs
b2NrX3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3luY19wYWdlIHNtcF84YTI1
ZjI5NgojZGVmaW5lIGJsb2NrX3N5bmNfcGFnZSBfc2V0X3ZlcihibG9ja19zeW5jX3BhZ2UpCiNk
ZWZpbmUgX192ZXJfY29udF9wcmVwYXJlX3dyaXRlIHNtcF8zM2RiYmIwYQojZGVmaW5lIGNvbnRf
cHJlcGFyZV93cml0ZSBfc2V0X3Zlcihjb250X3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJf
Z2VuZXJpY19jb21taXRfd3JpdGUgc21wXzM3NzM2YzkxCiNkZWZpbmUgZ2VuZXJpY19jb21taXRf
d3JpdGUgX3NldF92ZXIoZ2VuZXJpY19jb21taXRfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tf
dHJ1bmNhdGVfcGFnZSBzbXBfOWZjNWNjNDQKI2RlZmluZSBibG9ja190cnVuY2F0ZV9wYWdlIF9z
ZXRfdmVyKGJsb2NrX3RydW5jYXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19ibG9ja19i
bWFwIHNtcF8wMTlhZGQ5YwojZGVmaW5lIGdlbmVyaWNfYmxvY2tfYm1hcCBfc2V0X3ZlcihnZW5l
cmljX2Jsb2NrX2JtYXApCiNkZWZpbmUgX192ZXJfd2FpdGZvcl9vbmVfcGFnZSBzbXBfOGVmNmMz
NTkKI2RlZmluZSB3YWl0Zm9yX29uZV9wYWdlIF9zZXRfdmVyKHdhaXRmb3Jfb25lX3BhZ2UpCiNk
ZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX3JlYWQgc21wXzExYzg3ZWZmCiNkZWZpbmUgZ2VuZXJp
Y19maWxlX3JlYWQgX3NldF92ZXIoZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZG9f
Z2VuZXJpY19maWxlX3JlYWQgc21wX2ZhNzkwYTZlCiNkZWZpbmUgZG9fZ2VuZXJpY19maWxlX3Jl
YWQgX3NldF92ZXIoZG9fZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19m
aWxlX3dyaXRlIHNtcF9mYjE3ODYzNgojZGVmaW5lIGdlbmVyaWNfZmlsZV93cml0ZSBfc2V0X3Zl
cihnZW5lcmljX2ZpbGVfd3JpdGUpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX21tYXAgc21w
X2I2NzkxMWM5CiNkZWZpbmUgZ2VuZXJpY19maWxlX21tYXAgX3NldF92ZXIoZ2VuZXJpY19maWxl
X21tYXApCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yb19mb3BzIHNtcF9jMDkxOTE2ZQojZGVmaW5l
IGdlbmVyaWNfcm9fZm9wcyBfc2V0X3ZlcihnZW5lcmljX3JvX2ZvcHMpCiNkZWZpbmUgX192ZXJf
Z2VuZXJpY19idWZmZXJfZmRhdGFzeW5jIHNtcF8zYmE0NjJjNAojZGVmaW5lIGdlbmVyaWNfYnVm
ZmVyX2ZkYXRhc3luYyBfc2V0X3ZlcihnZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmMpCiNkZWZpbmUg
X192ZXJfcGFnZV9oYXNoX2JpdHMgc21wXzA0OTI1YjRlCiNkZWZpbmUgcGFnZV9oYXNoX2JpdHMg
X3NldF92ZXIocGFnZV9oYXNoX2JpdHMpCiNkZWZpbmUgX192ZXJfcGFnZV9oYXNoX3RhYmxlIHNt
cF8wNzRiYWE3YwojZGVmaW5lIHBhZ2VfaGFzaF90YWJsZSBfc2V0X3ZlcihwYWdlX2hhc2hfdGFi
bGUpCiNkZWZpbmUgX192ZXJfZmlsZV9sb2NrX2xpc3Qgc21wXzZlODUxMTlkCiNkZWZpbmUgZmls
ZV9sb2NrX2xpc3QgX3NldF92ZXIoZmlsZV9sb2NrX2xpc3QpCiNkZWZpbmUgX192ZXJfbG9ja3Nf
aW5pdF9sb2NrIHNtcF9mMDAzZWQxOQojZGVmaW5lIGxvY2tzX2luaXRfbG9jayBfc2V0X3Zlcihs
b2Nrc19pbml0X2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3NfY29weV9sb2NrIHNtcF85OThiOGRk
MwojZGVmaW5lIGxvY2tzX2NvcHlfbG9jayBfc2V0X3Zlcihsb2Nrc19jb3B5X2xvY2spCiNkZWZp
bmUgX192ZXJfcG9zaXhfbG9ja19maWxlIHNtcF8yNDRmNzUyZQojZGVmaW5lIHBvc2l4X2xvY2tf
ZmlsZSBfc2V0X3Zlcihwb3NpeF9sb2NrX2ZpbGUpCiNkZWZpbmUgX192ZXJfcG9zaXhfdGVzdF9s
b2NrIHNtcF9kZThlMDA3MgojZGVmaW5lIHBvc2l4X3Rlc3RfbG9jayBfc2V0X3Zlcihwb3NpeF90
ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcG9zaXhfYmxvY2tfbG9jayBzbXBfYzIwNDI4MGQKI2Rl
ZmluZSBwb3NpeF9ibG9ja19sb2NrIF9zZXRfdmVyKHBvc2l4X2Jsb2NrX2xvY2spCiNkZWZpbmUg
X192ZXJfcG9zaXhfdW5ibG9ja19sb2NrIHNtcF85NTBlOGFkNgojZGVmaW5lIHBvc2l4X3VuYmxv
Y2tfbG9jayBfc2V0X3Zlcihwb3NpeF91bmJsb2NrX2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3Nf
bWFuZGF0b3J5X2FyZWEgc21wXzc5YWJiNzMwCiNkZWZpbmUgbG9ja3NfbWFuZGF0b3J5X2FyZWEg
X3NldF92ZXIobG9ja3NfbWFuZGF0b3J5X2FyZWEpCiNkZWZpbmUgX192ZXJfZHB1dCBzbXBfNTc0
ZTZiYTMKI2RlZmluZSBkcHV0IF9zZXRfdmVyKGRwdXQpCiNkZWZpbmUgX192ZXJfaGF2ZV9zdWJt
b3VudHMgc21wX2IzYjI5YzBlCiNkZWZpbmUgaGF2ZV9zdWJtb3VudHMgX3NldF92ZXIoaGF2ZV9z
dWJtb3VudHMpCiNkZWZpbmUgX192ZXJfZF9maW5kX2FsaWFzIHNtcF9iNjA1ODgwMgojZGVmaW5l
IGRfZmluZF9hbGlhcyBfc2V0X3ZlcihkX2ZpbmRfYWxpYXMpCiNkZWZpbmUgX192ZXJfZF9wcnVu
ZV9hbGlhc2VzIHNtcF9jOWJhZDQ3YgojZGVmaW5lIGRfcHJ1bmVfYWxpYXNlcyBfc2V0X3Zlcihk
X3BydW5lX2FsaWFzZXMpCiNkZWZpbmUgX192ZXJfcHJ1bmVfZGNhY2hlIHNtcF82Y2YyOGY3Nwoj
ZGVmaW5lIHBydW5lX2RjYWNoZSBfc2V0X3ZlcihwcnVuZV9kY2FjaGUpCiNkZWZpbmUgX192ZXJf
c2hyaW5rX2RjYWNoZV9zYiBzbXBfNjg1OGYzZGUKI2RlZmluZSBzaHJpbmtfZGNhY2hlX3NiIF9z
ZXRfdmVyKHNocmlua19kY2FjaGVfc2IpCiNkZWZpbmUgX192ZXJfc2hyaW5rX2RjYWNoZV9wYXJl
bnQgc21wXzE0M2MyYmI4CiNkZWZpbmUgc2hyaW5rX2RjYWNoZV9wYXJlbnQgX3NldF92ZXIoc2hy
aW5rX2RjYWNoZV9wYXJlbnQpCiNkZWZpbmUgX192ZXJfZmluZF9pbm9kZV9udW1iZXIgc21wX2Y1
ZTRlZDQwCiNkZWZpbmUgZmluZF9pbm9kZV9udW1iZXIgX3NldF92ZXIoZmluZF9pbm9kZV9udW1i
ZXIpCiNkZWZpbmUgX192ZXJfaXNfc3ViZGlyIHNtcF8wYThjZDkwNAojZGVmaW5lIGlzX3N1YmRp
ciBfc2V0X3Zlcihpc19zdWJkaXIpCiNkZWZpbmUgX192ZXJfZ2V0X3VudXNlZF9mZCBzbXBfOTli
ZmJlMzkKI2RlZmluZSBnZXRfdW51c2VkX2ZkIF9zZXRfdmVyKGdldF91bnVzZWRfZmQpCiNkZWZp
bmUgX192ZXJfdmZzX2NyZWF0ZSBzbXBfMDRlMjdkNDAKI2RlZmluZSB2ZnNfY3JlYXRlIF9zZXRf
dmVyKHZmc19jcmVhdGUpCiNkZWZpbmUgX192ZXJfdmZzX21rZGlyIHNtcF83YmE1YjFiYQojZGVm
aW5lIHZmc19ta2RpciBfc2V0X3Zlcih2ZnNfbWtkaXIpCiNkZWZpbmUgX192ZXJfdmZzX21rbm9k
IHNtcF9iNzUyZDQ0NgojZGVmaW5lIHZmc19ta25vZCBfc2V0X3Zlcih2ZnNfbWtub2QpCiNkZWZp
bmUgX192ZXJfdmZzX3N5bWxpbmsgc21wX2Q3NjY1ZjdkCiNkZWZpbmUgdmZzX3N5bWxpbmsgX3Nl
dF92ZXIodmZzX3N5bWxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2xpbmsgc21wX2VkMzgzNTE0CiNk
ZWZpbmUgdmZzX2xpbmsgX3NldF92ZXIodmZzX2xpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JtZGly
IHNtcF83OTYzNmE5MAojZGVmaW5lIHZmc19ybWRpciBfc2V0X3Zlcih2ZnNfcm1kaXIpCiNkZWZp
bmUgX192ZXJfdmZzX3VubGluayBzbXBfZmVmYTQ0NDcKI2RlZmluZSB2ZnNfdW5saW5rIF9zZXRf
dmVyKHZmc191bmxpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JlbmFtZSBzbXBfNDZmYzU3YjEKI2Rl
ZmluZSB2ZnNfcmVuYW1lIF9zZXRfdmVyKHZmc19yZW5hbWUpCiNkZWZpbmUgX192ZXJfdmZzX3N0
YXRmcyBzbXBfN2EzMTBlMmUKI2RlZmluZSB2ZnNfc3RhdGZzIF9zZXRfdmVyKHZmc19zdGF0ZnMp
CiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yZWFkX2RpciBzbXBfNGY2ZThkMzAKI2RlZmluZSBnZW5l
cmljX3JlYWRfZGlyIF9zZXRfdmVyKGdlbmVyaWNfcmVhZF9kaXIpCiNkZWZpbmUgX192ZXJfX19w
b2xsd2FpdCBzbXBfZjZkMjEwMmUKI2RlZmluZSBfX3BvbGx3YWl0IF9zZXRfdmVyKF9fcG9sbHdh
aXQpCiNkZWZpbmUgX192ZXJfcG9sbF9mcmVld2FpdCBzbXBfM2ZkMDJlNTgKI2RlZmluZSBwb2xs
X2ZyZWV3YWl0IF9zZXRfdmVyKHBvbGxfZnJlZXdhaXQpCiNkZWZpbmUgX192ZXJfUk9PVF9ERVYg
c21wX2IzMjQ5NmU4CiNkZWZpbmUgUk9PVF9ERVYgX3NldF92ZXIoUk9PVF9ERVYpCiNkZWZpbmUg
X192ZXJfX19maW5kX2xvY2tfcGFnZSBzbXBfYWZiOWNhODQKI2RlZmluZSBfX2ZpbmRfbG9ja19w
YWdlIF9zZXRfdmVyKF9fZmluZF9sb2NrX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ3JhYl9jYWNoZV9w
YWdlIHNtcF8zOTgwOWFlMQojZGVmaW5lIGdyYWJfY2FjaGVfcGFnZSBfc2V0X3ZlcihncmFiX2Nh
Y2hlX3BhZ2UpCiNkZWZpbmUgX192ZXJfcmVhZF9jYWNoZV9wYWdlIHNtcF82ODBhMGU4OAojZGVm
aW5lIHJlYWRfY2FjaGVfcGFnZSBfc2V0X3ZlcihyZWFkX2NhY2hlX3BhZ2UpCiNkZWZpbmUgX192
ZXJfdmZzX3JlYWRsaW5rIHNtcF83MTVjMzE0MQojZGVmaW5lIHZmc19yZWFkbGluayBfc2V0X3Zl
cih2ZnNfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2ZvbGxvd19saW5rIHNtcF9hNGZjZGRm
NgojZGVmaW5lIHZmc19mb2xsb3dfbGluayBfc2V0X3Zlcih2ZnNfZm9sbG93X2xpbmspCiNkZWZp
bmUgX192ZXJfcGFnZV9yZWFkbGluayBzbXBfOWQ0OTUyZTcKI2RlZmluZSBwYWdlX3JlYWRsaW5r
IF9zZXRfdmVyKHBhZ2VfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9mb2xsb3dfbGluayBz
bXBfZjliYmMwYjkKI2RlZmluZSBwYWdlX2ZvbGxvd19saW5rIF9zZXRfdmVyKHBhZ2VfZm9sbG93
X2xpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgc21wX2Jj
MDk2Mjg0CiNkZWZpbmUgcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgX3NldF92ZXIocGFn
ZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3ltbGluayBz
bXBfNDY1MzY5OTIKI2RlZmluZSBibG9ja19zeW1saW5rIF9zZXRfdmVyKGJsb2NrX3N5bWxpbmsp
CiNkZWZpbmUgX192ZXJfdmZzX3JlYWRkaXIgc21wXzdlODRhNjUyCiNkZWZpbmUgdmZzX3JlYWRk
aXIgX3NldF92ZXIodmZzX3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfX19nZXRfbGVhc2Ugc21wXzgx
MWM1YTg5CiNkZWZpbmUgX19nZXRfbGVhc2UgX3NldF92ZXIoX19nZXRfbGVhc2UpCiNkZWZpbmUg
X192ZXJfbGVhc2VfZ2V0X210aW1lIHNtcF9jOGQ2YmQ3ZgojZGVmaW5lIGxlYXNlX2dldF9tdGlt
ZSBfc2V0X3ZlcihsZWFzZV9nZXRfbXRpbWUpCiNkZWZpbmUgX192ZXJfbG9ja19tYXlfcmVhZCBz
bXBfMzE2ZTUwN2YKI2RlZmluZSBsb2NrX21heV9yZWFkIF9zZXRfdmVyKGxvY2tfbWF5X3JlYWQp
CiNkZWZpbmUgX192ZXJfbG9ja19tYXlfd3JpdGUgc21wXzhiZGE4MWVhCiNkZWZpbmUgbG9ja19t
YXlfd3JpdGUgX3NldF92ZXIobG9ja19tYXlfd3JpdGUpCiNkZWZpbmUgX192ZXJfZGNhY2hlX3Jl
YWRkaXIgc21wX2I0MzcwMTY2CiNkZWZpbmUgZGNhY2hlX3JlYWRkaXIgX3NldF92ZXIoZGNhY2hl
X3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfZGVmYXVsdF9sbHNlZWsgc21wX2QyYmEyMDRiCiNkZWZp
bmUgZGVmYXVsdF9sbHNlZWsgX3NldF92ZXIoZGVmYXVsdF9sbHNlZWspCiNkZWZpbmUgX192ZXJf
ZGVudHJ5X29wZW4gc21wXzk2OWViODQ3CiNkZWZpbmUgZGVudHJ5X29wZW4gX3NldF92ZXIoZGVu
dHJ5X29wZW4pCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9ub3BhZ2Ugc21wXzFlNWFhNzVkCiNkZWZp
bmUgZmlsZW1hcF9ub3BhZ2UgX3NldF92ZXIoZmlsZW1hcF9ub3BhZ2UpCiNkZWZpbmUgX192ZXJf
ZmlsZW1hcF9zeW5jIHNtcF83YzNhZmUzMgojZGVmaW5lIGZpbGVtYXBfc3luYyBfc2V0X3Zlcihm
aWxlbWFwX3N5bmMpCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXN5bmMgc21wXzM1YWI4ZTA0
CiNkZWZpbmUgZmlsZW1hcF9mZGF0YXN5bmMgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXN5bmMpCiNk
ZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXdhaXQgc21wX2Q2NGRkZjMzCiNkZWZpbmUgZmlsZW1h
cF9mZGF0YXdhaXQgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXdhaXQpCiNkZWZpbmUgX192ZXJfbG9j
a19wYWdlIHNtcF83YzVmMTNhYgojZGVmaW5lIGxvY2tfcGFnZSBfc2V0X3Zlcihsb2NrX3BhZ2Up
CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfY2hyZGV2IHNtcF84ZTcwOWUzMwojZGVmaW5lIHJlZ2lz
dGVyX2NocmRldiBfc2V0X3ZlcihyZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfdW5yZWdp
c3Rlcl9jaHJkZXYgc21wX2MxOTJkNDkxCiNkZWZpbmUgdW5yZWdpc3Rlcl9jaHJkZXYgX3NldF92
ZXIodW5yZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmxrZGV2IHNtcF81
ZjlmYjllOQojZGVmaW5lIHJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihyZWdpc3Rlcl9ibGtkZXYp
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9ibGtkZXYgc21wX2VhYzFjNGFmCiNkZWZpbmUgdW5y
ZWdpc3Rlcl9ibGtkZXYgX3NldF92ZXIodW5yZWdpc3Rlcl9ibGtkZXYpCiNkZWZpbmUgX192ZXJf
dHR5X3JlZ2lzdGVyX2RyaXZlciBzbXBfNGEwNmVkM2YKI2RlZmluZSB0dHlfcmVnaXN0ZXJfZHJp
dmVyIF9zZXRfdmVyKHR0eV9yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3VucmVn
aXN0ZXJfZHJpdmVyIHNtcF8yZmFlNGFiNQojZGVmaW5lIHR0eV91bnJlZ2lzdGVyX2RyaXZlciBf
c2V0X3Zlcih0dHlfdW5yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3N0ZF90ZXJt
aW9zIHNtcF84OWFjNTI1NAojZGVmaW5lIHR0eV9zdGRfdGVybWlvcyBfc2V0X3Zlcih0dHlfc3Rk
X3Rlcm1pb3MpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVhZCBzbXBfMTNkMDY1MGEKI2RlZmluZSBi
bG9ja19yZWFkIF9zZXRfdmVyKGJsb2NrX3JlYWQpCiNkZWZpbmUgX192ZXJfYmxvY2tfd3JpdGUg
c21wXzVlZDk3NWQ4CiNkZWZpbmUgYmxvY2tfd3JpdGUgX3NldF92ZXIoYmxvY2tfd3JpdGUpCiNk
ZWZpbmUgX192ZXJfYmxrc2l6ZV9zaXplIHNtcF8yZjMwYjRiNgojZGVmaW5lIGJsa3NpemVfc2l6
ZSBfc2V0X3ZlcihibGtzaXplX3NpemUpCiNkZWZpbmUgX192ZXJfaGFyZHNlY3Rfc2l6ZSBzbXBf
YzVmNTYwZDgKI2RlZmluZSBoYXJkc2VjdF9zaXplIF9zZXRfdmVyKGhhcmRzZWN0X3NpemUpCiNk
ZWZpbmUgX192ZXJfYmxrX3NpemUgc21wX2EyZTBhMDgyCiNkZWZpbmUgYmxrX3NpemUgX3NldF92
ZXIoYmxrX3NpemUpCiNkZWZpbmUgX192ZXJfYmxrX2RldiBzbXBfZjE0YzRlMmIKI2RlZmluZSBi
bGtfZGV2IF9zZXRfdmVyKGJsa19kZXYpCiNkZWZpbmUgX192ZXJfaXNfcmVhZF9vbmx5IHNtcF83
NDAyNzRjYQojZGVmaW5lIGlzX3JlYWRfb25seSBfc2V0X3Zlcihpc19yZWFkX29ubHkpCiNkZWZp
bmUgX192ZXJfc2V0X2RldmljZV9ybyBzbXBfZGMwMzZlYmIKI2RlZmluZSBzZXRfZGV2aWNlX3Jv
IF9zZXRfdmVyKHNldF9kZXZpY2Vfcm8pCiNkZWZpbmUgX192ZXJfYm1hcCBzbXBfMTRlZDZiZGYK
I2RlZmluZSBibWFwIF9zZXRfdmVyKGJtYXApCiNkZWZpbmUgX192ZXJfc3luY19kZXYgc21wX2Zj
MGIwZjQ5CiNkZWZpbmUgc3luY19kZXYgX3NldF92ZXIoc3luY19kZXYpCiNkZWZpbmUgX192ZXJf
ZGV2ZnNfcmVnaXN0ZXJfcGFydGl0aW9ucyBzbXBfNDgyOWY0NTIKI2RlZmluZSBkZXZmc19yZWdp
c3Rlcl9wYXJ0aXRpb25zIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3BhcnRpdGlvbnMpCiNkZWZp
bmUgX192ZXJfYmxrZGV2X29wZW4gc21wXzdhZmMxMDlmCiNkZWZpbmUgYmxrZGV2X29wZW4gX3Nl
dF92ZXIoYmxrZGV2X29wZW4pCiNkZWZpbmUgX192ZXJfYmxrZGV2X2dldCBzbXBfMmQ4MmYzM2QK
I2RlZmluZSBibGtkZXZfZ2V0IF9zZXRfdmVyKGJsa2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfYmxr
ZGV2X3B1dCBzbXBfNGQ5ZmY1NTEKI2RlZmluZSBibGtkZXZfcHV0IF9zZXRfdmVyKGJsa2Rldl9w
dXQpCiNkZWZpbmUgX192ZXJfaW9jdGxfYnlfYmRldiBzbXBfMDM2YzA5OTgKI2RlZmluZSBpb2N0
bF9ieV9iZGV2IF9zZXRfdmVyKGlvY3RsX2J5X2JkZXYpCiNkZWZpbmUgX192ZXJfZ2VuZGlza19o
ZWFkIHNtcF9kNWQ3YzAzMQojZGVmaW5lIGdlbmRpc2tfaGVhZCBfc2V0X3ZlcihnZW5kaXNrX2hl
YWQpCiNkZWZpbmUgX192ZXJfZ3Jva19wYXJ0aXRpb25zIHNtcF9jNWI1ZDhiYwojZGVmaW5lIGdy
b2tfcGFydGl0aW9ucyBfc2V0X3Zlcihncm9rX3BhcnRpdGlvbnMpCiNkZWZpbmUgX192ZXJfcmVn
aXN0ZXJfZGlzayBzbXBfOWYwMThjNDIKI2RlZmluZSByZWdpc3Rlcl9kaXNrIF9zZXRfdmVyKHJl
Z2lzdGVyX2Rpc2spCiNkZWZpbmUgX192ZXJfdHFfZGlzayBzbXBfNTM3M2RiYjYKI2RlZmluZSB0
cV9kaXNrIF9zZXRfdmVyKHRxX2Rpc2spCiNkZWZpbmUgX192ZXJfaW5pdF9idWZmZXIgc21wXzcz
MjM5OGUyCiNkZWZpbmUgaW5pdF9idWZmZXIgX3NldF92ZXIoaW5pdF9idWZmZXIpCiNkZWZpbmUg
X192ZXJfcmVmaWxlX2J1ZmZlciBzbXBfOWNhYTQ4YmYKI2RlZmluZSByZWZpbGVfYnVmZmVyIF9z
ZXRfdmVyKHJlZmlsZV9idWZmZXIpCiNkZWZpbmUgX192ZXJfbWF4X3NlY3RvcnMgc21wXzZiZjU4
ZTMzCiNkZWZpbmUgbWF4X3NlY3RvcnMgX3NldF92ZXIobWF4X3NlY3RvcnMpCiNkZWZpbmUgX192
ZXJfbWF4X3JlYWRhaGVhZCBzbXBfM2U1NDgwYTQKI2RlZmluZSBtYXhfcmVhZGFoZWFkIF9zZXRf
dmVyKG1heF9yZWFkYWhlYWQpCiNkZWZpbmUgX192ZXJfZmlsZV9tb3ZldG8gc21wX2M4M2E0ZGFj
CiNkZWZpbmUgZmlsZV9tb3ZldG8gX3NldF92ZXIoZmlsZV9tb3ZldG8pCiNkZWZpbmUgX192ZXJf
dHR5X2hhbmd1cCBzbXBfZmVhZTQ2NWYKI2RlZmluZSB0dHlfaGFuZ3VwIF9zZXRfdmVyKHR0eV9o
YW5ndXApCiNkZWZpbmUgX192ZXJfdHR5X3dhaXRfdW50aWxfc2VudCBzbXBfZmRjYjI0NWYKI2Rl
ZmluZSB0dHlfd2FpdF91bnRpbF9zZW50IF9zZXRfdmVyKHR0eV93YWl0X3VudGlsX3NlbnQpCiNk
ZWZpbmUgX192ZXJfdHR5X2NoZWNrX2NoYW5nZSBzbXBfODQ4YTdiZjAKI2RlZmluZSB0dHlfY2hl
Y2tfY2hhbmdlIF9zZXRfdmVyKHR0eV9jaGVja19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfdHR5X2h1
bmdfdXBfcCBzbXBfMTc3ZDRiNzgKI2RlZmluZSB0dHlfaHVuZ191cF9wIF9zZXRfdmVyKHR0eV9o
dW5nX3VwX3ApCiNkZWZpbmUgX192ZXJfdHR5X2ZsaXBfYnVmZmVyX3B1c2ggc21wXzA0Njk3NDcy
CiNkZWZpbmUgdHR5X2ZsaXBfYnVmZmVyX3B1c2ggX3NldF92ZXIodHR5X2ZsaXBfYnVmZmVyX3B1
c2gpCiNkZWZpbmUgX192ZXJfdHR5X2dldF9iYXVkX3JhdGUgc21wXzUwZGU4N2NhCiNkZWZpbmUg
dHR5X2dldF9iYXVkX3JhdGUgX3NldF92ZXIodHR5X2dldF9iYXVkX3JhdGUpCiNkZWZpbmUgX192
ZXJfZG9fU0FLIHNtcF9lMmJhYzdjYwojZGVmaW5lIGRvX1NBSyBfc2V0X3Zlcihkb19TQUspCiNk
ZWZpbmUgX192ZXJfY29uc29sZV9wcmludCBzbXBfYjcxNGE5ODEKI2RlZmluZSBjb25zb2xlX3By
aW50IF9zZXRfdmVyKGNvbnNvbGVfcHJpbnQpCiNkZWZpbmUgX192ZXJfY29uc29sZV9sb2dsZXZl
bCBzbXBfODBjZTFiOGUKI2RlZmluZSBjb25zb2xlX2xvZ2xldmVsIF9zZXRfdmVyKGNvbnNvbGVf
bG9nbGV2ZWwpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZmlsZXN5c3RlbSBzbXBfNTZiNjY3ZjQK
I2RlZmluZSByZWdpc3Rlcl9maWxlc3lzdGVtIF9zZXRfdmVyKHJlZ2lzdGVyX2ZpbGVzeXN0ZW0p
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9maWxlc3lzdGVtIHNtcF8wYWIyMGEyNAojZGVmaW5l
IHVucmVnaXN0ZXJfZmlsZXN5c3RlbSBfc2V0X3Zlcih1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW0pCiNk
ZWZpbmUgX192ZXJfa2Vybl9tb3VudCBzbXBfYzQ5MGEwNjQKI2RlZmluZSBrZXJuX21vdW50IF9z
ZXRfdmVyKGtlcm5fbW91bnQpCiNkZWZpbmUgX192ZXJfX19tbnRwdXQgc21wX2NkODE4OTAyCiNk
ZWZpbmUgX19tbnRwdXQgX3NldF92ZXIoX19tbnRwdXQpCiNkZWZpbmUgX192ZXJfbWF5X3Vtb3Vu
dCBzbXBfYjM3NzNmMWUKI2RlZmluZSBtYXlfdW1vdW50IF9zZXRfdmVyKG1heV91bW91bnQpCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmluZm10IHNtcF84YTMyOTM3OAojZGVmaW5lIHJlZ2lzdGVy
X2JpbmZtdCBfc2V0X3ZlcihyZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl
cl9iaW5mbXQgc21wXzI4MzIyY2YwCiNkZWZpbmUgdW5yZWdpc3Rlcl9iaW5mbXQgX3NldF92ZXIo
dW5yZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfc2VhcmNoX2JpbmFyeV9oYW5kbGVyIHNt
cF8yNDViZmY4NgojZGVmaW5lIHNlYXJjaF9iaW5hcnlfaGFuZGxlciBfc2V0X3ZlcihzZWFyY2hf
YmluYXJ5X2hhbmRsZXIpCiNkZWZpbmUgX192ZXJfcHJlcGFyZV9iaW5wcm0gc21wXzZiZWQ3OWI5
CiNkZWZpbmUgcHJlcGFyZV9iaW5wcm0gX3NldF92ZXIocHJlcGFyZV9iaW5wcm0pCiNkZWZpbmUg
X192ZXJfY29tcHV0ZV9jcmVkcyBzbXBfZGIzZGU4N2UKI2RlZmluZSBjb21wdXRlX2NyZWRzIF9z
ZXRfdmVyKGNvbXB1dGVfY3JlZHMpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2FyZ196ZXJvIHNtcF8z
MjBhYjRlYQojZGVmaW5lIHJlbW92ZV9hcmdfemVybyBfc2V0X3ZlcihyZW1vdmVfYXJnX3plcm8p
CiNkZWZpbmUgX192ZXJfc2V0X2JpbmZtdCBzbXBfNWIzODYyNWMKI2RlZmluZSBzZXRfYmluZm10
IF9zZXRfdmVyKHNldF9iaW5mbXQpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZXhlY19kb21haW4g
c21wXzcwMWYwMjRiCiNkZWZpbmUgcmVnaXN0ZXJfZXhlY19kb21haW4gX3NldF92ZXIocmVnaXN0
ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9leGVjX2RvbWFpbiBzbXBf
NWY0MDZhNGEKI2RlZmluZSB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWluIF9zZXRfdmVyKHVucmVnaXN0
ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfX19zZXRfcGVyc29uYWxpdHkgc21wXzdkNjc4
YjY5CiNkZWZpbmUgX19zZXRfcGVyc29uYWxpdHkgX3NldF92ZXIoX19zZXRfcGVyc29uYWxpdHkp
CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfc3lzY3RsX3RhYmxlIHNtcF9iMzNlNDUxNQojZGVmaW5l
IHJlZ2lzdGVyX3N5c2N0bF90YWJsZSBfc2V0X3ZlcihyZWdpc3Rlcl9zeXNjdGxfdGFibGUpCiNk
ZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgc21wXzQ2ZWJiNDM5CiNkZWZpbmUg
dW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgX3NldF92ZXIodW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUp
CiNkZWZpbmUgX192ZXJfc3lzY3RsX3N0cmluZyBzbXBfOGZiZDAwODQKI2RlZmluZSBzeXNjdGxf
c3RyaW5nIF9zZXRfdmVyKHN5c2N0bF9zdHJpbmcpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ludHZl
YyBzbXBfMDE1ZDdhNzUKI2RlZmluZSBzeXNjdGxfaW50dmVjIF9zZXRfdmVyKHN5c2N0bF9pbnR2
ZWMpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ppZmZpZXMgc21wXzczMTlkNzZlCiNkZWZpbmUgc3lz
Y3RsX2ppZmZpZXMgX3NldF92ZXIoc3lzY3RsX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k
b3N0cmluZyBzbXBfNzE1NjM2ZDgKI2RlZmluZSBwcm9jX2Rvc3RyaW5nIF9zZXRfdmVyKHByb2Nf
ZG9zdHJpbmcpCiNkZWZpbmUgX192ZXJfcHJvY19kb2ludHZlYyBzbXBfYWVjOTA3ODYKI2RlZmlu
ZSBwcm9jX2RvaW50dmVjIF9zZXRfdmVyKHByb2NfZG9pbnR2ZWMpCiNkZWZpbmUgX192ZXJfcHJv
Y19kb2ludHZlY19qaWZmaWVzIHNtcF80YzhjZjgwZgojZGVmaW5lIHByb2NfZG9pbnR2ZWNfamlm
ZmllcyBfc2V0X3Zlcihwcm9jX2RvaW50dmVjX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k
b2ludHZlY19taW5tYXggc21wXzU5YmVmYzU2CiNkZWZpbmUgcHJvY19kb2ludHZlY19taW5tYXgg
X3NldF92ZXIocHJvY19kb2ludHZlY19taW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25n
dmVjX21zX2ppZmZpZXNfbWlubWF4IHNtcF9kMTNjYmUxYwojZGVmaW5lIHByb2NfZG91bG9uZ3Zl
Y19tc19qaWZmaWVzX21pbm1heCBfc2V0X3Zlcihwcm9jX2RvdWxvbmd2ZWNfbXNfamlmZmllc19t
aW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25ndmVjX21pbm1heCBzbXBfMTFlMzZmMzEK
I2RlZmluZSBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4IF9zZXRfdmVyKHByb2NfZG91bG9uZ3ZlY19t
aW5tYXgpCiNkZWZpbmUgX192ZXJfYWRkX3RpbWVyIHNtcF9hMTllYWNmOAojZGVmaW5lIGFkZF90
aW1lciBfc2V0X3ZlcihhZGRfdGltZXIpCiNkZWZpbmUgX192ZXJfZGVsX3RpbWVyIHNtcF9mYzYy
ZjE2ZAojZGVmaW5lIGRlbF90aW1lciBfc2V0X3ZlcihkZWxfdGltZXIpCiNkZWZpbmUgX192ZXJf
cmVxdWVzdF9pcnEgc21wX2FiYjc2YTI3CiNkZWZpbmUgcmVxdWVzdF9pcnEgX3NldF92ZXIocmVx
dWVzdF9pcnEpCiNkZWZpbmUgX192ZXJfZnJlZV9pcnEgc21wX2YyMGRhYmQ4CiNkZWZpbmUgZnJl
ZV9pcnEgX3NldF92ZXIoZnJlZV9pcnEpCiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWUgc21w
Xzc2ODg0MmU3CiNkZWZpbmUgYWRkX3dhaXRfcXVldWUgX3NldF92ZXIoYWRkX3dhaXRfcXVldWUp
CiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWVfZXhjbHVzaXZlIHNtcF8wMDI4N2M5OQojZGVm
aW5lIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZSBfc2V0X3ZlcihhZGRfd2FpdF9xdWV1ZV9leGNs
dXNpdmUpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX3dhaXRfcXVldWUgc21wXzEzM2FhZWQ4CiNkZWZp
bmUgcmVtb3ZlX3dhaXRfcXVldWUgX3NldF92ZXIocmVtb3ZlX3dhaXRfcXVldWUpCiNkZWZpbmUg
X192ZXJfd2FpdF9mb3JfY29tcGxldGlvbiBzbXBfNjc5YjExYzcKI2RlZmluZSB3YWl0X2Zvcl9j
b21wbGV0aW9uIF9zZXRfdmVyKHdhaXRfZm9yX2NvbXBsZXRpb24pCiNkZWZpbmUgX192ZXJfY29t
cGxldGUgc21wXzlmN2ZiMWU3CiNkZWZpbmUgY29tcGxldGUgX3NldF92ZXIoY29tcGxldGUpCiNk
ZWZpbmUgX192ZXJfcHJvYmVfaXJxX29uIHNtcF9iMTIxMzkwYQojZGVmaW5lIHByb2JlX2lycV9v
biBfc2V0X3Zlcihwcm9iZV9pcnFfb24pCiNkZWZpbmUgX192ZXJfcHJvYmVfaXJxX29mZiBzbXBf
YWI2MDA0MjEKI2RlZmluZSBwcm9iZV9pcnFfb2ZmIF9zZXRfdmVyKHByb2JlX2lycV9vZmYpCiNk
ZWZpbmUgX192ZXJfZGVsX3RpbWVyX3N5bmMgc21wX2RhZmYyNjZhCiNkZWZpbmUgZGVsX3RpbWVy
X3N5bmMgX3NldF92ZXIoZGVsX3RpbWVyX3N5bmMpCiNkZWZpbmUgX192ZXJfbW9kX3RpbWVyIHNt
cF8xZjEzZDMwOQojZGVmaW5lIG1vZF90aW1lciBfc2V0X3Zlcihtb2RfdGltZXIpCiNkZWZpbmUg
X192ZXJfdHFfdGltZXIgc21wX2ZhM2U5YWNjCiNkZWZpbmUgdHFfdGltZXIgX3NldF92ZXIodHFf
dGltZXIpCiNkZWZpbmUgX192ZXJfdHFfaW1tZWRpYXRlIHNtcF8wZGEwZGNkMQojZGVmaW5lIHRx
X2ltbWVkaWF0ZSBfc2V0X3Zlcih0cV9pbW1lZGlhdGUpCiNkZWZpbmUgX192ZXJfdHF1ZXVlX2xv
Y2sgc21wX2I3YTBjMGI1CiNkZWZpbmUgdHF1ZXVlX2xvY2sgX3NldF92ZXIodHF1ZXVlX2xvY2sp
CiNkZWZpbmUgX192ZXJfX19icmxvY2tfYXJyYXkgc21wXzk3NDU5OTFhCiNkZWZpbmUgX19icmxv
Y2tfYXJyYXkgX3NldF92ZXIoX19icmxvY2tfYXJyYXkpCiNkZWZpbmUgX192ZXJfX19icl93cml0
ZV9sb2NrIHNtcF9lNGU1MTc2YwojZGVmaW5lIF9fYnJfd3JpdGVfbG9jayBfc2V0X3ZlcihfX2Jy
X3dyaXRlX2xvY2spCiNkZWZpbmUgX192ZXJfX19icl93cml0ZV91bmxvY2sgc21wXzU4NmM1NjNh
CiNkZWZpbmUgX19icl93cml0ZV91bmxvY2sgX3NldF92ZXIoX19icl93cml0ZV91bmxvY2spCiNk
ZWZpbmUgX192ZXJfYWxsb2Nfa2lvdmVjIHNtcF9jZTllNDA5NAojZGVmaW5lIGFsbG9jX2tpb3Zl
YyBfc2V0X3ZlcihhbGxvY19raW92ZWMpCiNkZWZpbmUgX192ZXJfZnJlZV9raW92ZWMgc21wXzFl
MTA5MTIzCiNkZWZpbmUgZnJlZV9raW92ZWMgX3NldF92ZXIoZnJlZV9raW92ZWMpCiNkZWZpbmUg
X192ZXJfZXhwYW5kX2tpb2J1ZiBzbXBfYzU1MzJkZTAKI2RlZmluZSBleHBhbmRfa2lvYnVmIF9z
ZXRfdmVyKGV4cGFuZF9raW9idWYpCiNkZWZpbmUgX192ZXJfbWFwX3VzZXJfa2lvYnVmIHNtcF9l
OTQyYmI2ZgojZGVmaW5lIG1hcF91c2VyX2tpb2J1ZiBfc2V0X3ZlcihtYXBfdXNlcl9raW9idWYp
CiNkZWZpbmUgX192ZXJfdW5tYXBfa2lvYnVmIHNtcF9lMjQzMzA2YwojZGVmaW5lIHVubWFwX2tp
b2J1ZiBfc2V0X3Zlcih1bm1hcF9raW9idWYpCiNkZWZpbmUgX192ZXJfbG9ja19raW92ZWMgc21w
XzEwMjRlODI1CiNkZWZpbmUgbG9ja19raW92ZWMgX3NldF92ZXIobG9ja19raW92ZWMpCiNkZWZp
bmUgX192ZXJfdW5sb2NrX2tpb3ZlYyBzbXBfYTVkNjJlNDEKI2RlZmluZSB1bmxvY2tfa2lvdmVj
IF9zZXRfdmVyKHVubG9ja19raW92ZWMpCiNkZWZpbmUgX192ZXJfYnJ3X2tpb3ZlYyBzbXBfMzQ0
ZjQ5NDIKI2RlZmluZSBicndfa2lvdmVjIF9zZXRfdmVyKGJyd19raW92ZWMpCiNkZWZpbmUgX192
ZXJfa2lvYnVmX3dhaXRfZm9yX2lvIHNtcF85Y2ZhZDlhZQojZGVmaW5lIGtpb2J1Zl93YWl0X2Zv
cl9pbyBfc2V0X3ZlcihraW9idWZfd2FpdF9mb3JfaW8pCiNkZWZpbmUgX192ZXJfcmVxdWVzdF9k
bWEgc21wXzQzNDM1NDgwCiNkZWZpbmUgcmVxdWVzdF9kbWEgX3NldF92ZXIocmVxdWVzdF9kbWEp
CiNkZWZpbmUgX192ZXJfZnJlZV9kbWEgc21wXzcyYjI0M2Q0CiNkZWZpbmUgZnJlZV9kbWEgX3Nl
dF92ZXIoZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfZG1hX3NwaW5fbG9jayBzbXBfMzc1YzQxZjgK
I2RlZmluZSBkbWFfc3Bpbl9sb2NrIF9zZXRfdmVyKGRtYV9zcGluX2xvY2spCiNkZWZpbmUgX192
ZXJfcmVxdWVzdF9yZXNvdXJjZSBzbXBfNDE2ODVjZmIKI2RlZmluZSByZXF1ZXN0X3Jlc291cmNl
IF9zZXRfdmVyKHJlcXVlc3RfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfcmVsZWFzZV9yZXNvdXJj
ZSBzbXBfODE0ZTg0MDcKI2RlZmluZSByZWxlYXNlX3Jlc291cmNlIF9zZXRfdmVyKHJlbGVhc2Vf
cmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfYWxsb2NhdGVfcmVzb3VyY2Ugc21wX2E3MTU4MTJiCiNk
ZWZpbmUgYWxsb2NhdGVfcmVzb3VyY2UgX3NldF92ZXIoYWxsb2NhdGVfcmVzb3VyY2UpCiNkZWZp
bmUgX192ZXJfY2hlY2tfcmVzb3VyY2Ugc21wX2Q4ZDc4YWFhCiNkZWZpbmUgY2hlY2tfcmVzb3Vy
Y2UgX3NldF92ZXIoY2hlY2tfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfX19yZXF1ZXN0X3JlZ2lv
biBzbXBfMWExYTRmMDkKI2RlZmluZSBfX3JlcXVlc3RfcmVnaW9uIF9zZXRfdmVyKF9fcmVxdWVz
dF9yZWdpb24pCiNkZWZpbmUgX192ZXJfX19jaGVja19yZWdpb24gc21wX2YxZDBjZGFiCiNkZWZp
bmUgX19jaGVja19yZWdpb24gX3NldF92ZXIoX19jaGVja19yZWdpb24pCiNkZWZpbmUgX192ZXJf
X19yZWxlYXNlX3JlZ2lvbiBzbXBfZDQ5NTAxZDQKI2RlZmluZSBfX3JlbGVhc2VfcmVnaW9uIF9z
ZXRfdmVyKF9fcmVsZWFzZV9yZWdpb24pCiNkZWZpbmUgX192ZXJfaW9wb3J0X3Jlc291cmNlIHNt
cF84NjVlYmNjZAojZGVmaW5lIGlvcG9ydF9yZXNvdXJjZSBfc2V0X3Zlcihpb3BvcnRfcmVzb3Vy
Y2UpCiNkZWZpbmUgX192ZXJfaW9tZW1fcmVzb3VyY2Ugc21wXzllZmVkNWFmCiNkZWZpbmUgaW9t
ZW1fcmVzb3VyY2UgX3NldF92ZXIoaW9tZW1fcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfdXBfYW5k
X2V4aXQgc21wXzllYjkyNmNhCiNkZWZpbmUgdXBfYW5kX2V4aXQgX3NldF92ZXIodXBfYW5kX2V4
aXQpCiNkZWZpbmUgX192ZXJfX193YWtlX3VwIHNtcF82OWRkYmYxNQojZGVmaW5lIF9fd2FrZV91
cCBfc2V0X3ZlcihfX3dha2VfdXApCiNkZWZpbmUgX192ZXJfd2FrZV91cF9wcm9jZXNzIHNtcF81
NTBkODRhNQojZGVmaW5lIHdha2VfdXBfcHJvY2VzcyBfc2V0X3Zlcih3YWtlX3VwX3Byb2Nlc3Mp
CiNkZWZpbmUgX192ZXJfc2xlZXBfb24gc21wXzhlYTIzMWZiCiNkZWZpbmUgc2xlZXBfb24gX3Nl
dF92ZXIoc2xlZXBfb24pCiNkZWZpbmUgX192ZXJfc2xlZXBfb25fdGltZW91dCBzbXBfNTY0NTBi
M2UKI2RlZmluZSBzbGVlcF9vbl90aW1lb3V0IF9zZXRfdmVyKHNsZWVwX29uX3RpbWVvdXQpCiNk
ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbiBzbXBfNDg0YzVkYjYKI2RlZmluZSBp
bnRlcnJ1cHRpYmxlX3NsZWVwX29uIF9zZXRfdmVyKGludGVycnVwdGlibGVfc2xlZXBfb24pCiNk
ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0IHNtcF8zMmEwOGNkMwoj
ZGVmaW5lIGludGVycnVwdGlibGVfc2xlZXBfb25fdGltZW91dCBfc2V0X3ZlcihpbnRlcnJ1cHRp
YmxlX3NsZWVwX29uX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfc2NoZWR1bGUgc21wX2E0NGZmZmMx
CiNkZWZpbmUgc2NoZWR1bGUgX3NldF92ZXIoc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfc2NoZWR1
bGVfdGltZW91dCBzbXBfZDYyYzgzM2YKI2RlZmluZSBzY2hlZHVsZV90aW1lb3V0IF9zZXRfdmVy
KHNjaGVkdWxlX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfamlmZmllcyBzbXBfMGRhMDJkNjcKI2Rl
ZmluZSBqaWZmaWVzIF9zZXRfdmVyKGppZmZpZXMpCiNkZWZpbmUgX192ZXJfeHRpbWUgc21wX2Yz
MWRkZjgzCiNkZWZpbmUgeHRpbWUgX3NldF92ZXIoeHRpbWUpCiNkZWZpbmUgX192ZXJfZG9fZ2V0
dGltZW9mZGF5IHNtcF83MjI3MGUzNQojZGVmaW5lIGRvX2dldHRpbWVvZmRheSBfc2V0X3Zlcihk
b19nZXR0aW1lb2ZkYXkpCiNkZWZpbmUgX192ZXJfZG9fc2V0dGltZW9mZGF5IHNtcF8xOWQ3YjFm
ZgojZGVmaW5lIGRvX3NldHRpbWVvZmRheSBfc2V0X3Zlcihkb19zZXR0aW1lb2ZkYXkpCiNkZWZp
bmUgX192ZXJfa3N0YXQgc21wX2NmNWZhOTZjCiNkZWZpbmUga3N0YXQgX3NldF92ZXIoa3N0YXQp
CiNkZWZpbmUgX192ZXJfbnJfcnVubmluZyBzbXBfY2EzYzZkNzgKI2RlZmluZSBucl9ydW5uaW5n
IF9zZXRfdmVyKG5yX3J1bm5pbmcpCiNkZWZpbmUgX192ZXJfcGFuaWMgc21wXzAxMDc1YmYwCiNk
ZWZpbmUgcGFuaWMgX3NldF92ZXIocGFuaWMpCiNkZWZpbmUgX192ZXJfcHJpbnRrIHNtcF84Mjdk
NTgwNwojZGVmaW5lIHByaW50ayBfc2V0X3ZlcihwcmludGspCiNkZWZpbmUgX192ZXJfc3ByaW50
ZiBzbXBfM2MyYzVhZjUKI2RlZmluZSBzcHJpbnRmIF9zZXRfdmVyKHNwcmludGYpCiNkZWZpbmUg
X192ZXJfdnNwcmludGYgc21wXzk1NGNiYjI2CiNkZWZpbmUgdnNwcmludGYgX3NldF92ZXIodnNw
cmludGYpCiNkZWZpbmUgX192ZXJfa2Rldm5hbWUgc21wX2MyNThjOTA2CiNkZWZpbmUga2Rldm5h
bWUgX3NldF92ZXIoa2Rldm5hbWUpCiNkZWZpbmUgX192ZXJfYmRldm5hbWUgc21wX2QwNDc4MmU2
CiNkZWZpbmUgYmRldm5hbWUgX3NldF92ZXIoYmRldm5hbWUpCiNkZWZpbmUgX192ZXJfY2Rldm5h
bWUgc21wXzk3NTQ3NDFkCiNkZWZpbmUgY2Rldm5hbWUgX3NldF92ZXIoY2Rldm5hbWUpCiNkZWZp
bmUgX192ZXJfc2ltcGxlX3N0cnRvdWwgc21wXzIwMDAwMzI5CiNkZWZpbmUgc2ltcGxlX3N0cnRv
dWwgX3NldF92ZXIoc2ltcGxlX3N0cnRvdWwpCiNkZWZpbmUgX192ZXJfc3lzdGVtX3V0c25hbWUg
c21wX2IxMmNkZmU3CiNkZWZpbmUgc3lzdGVtX3V0c25hbWUgX3NldF92ZXIoc3lzdGVtX3V0c25h
bWUpCiNkZWZpbmUgX192ZXJfdXRzX3NlbSBzbXBfMzhhZWQyMDcKI2RlZmluZSB1dHNfc2VtIF9z
ZXRfdmVyKHV0c19zZW0pCiNkZWZpbmUgX192ZXJfc3lzX2NhbGxfdGFibGUgc21wX2RmZGIxOGJk
CiNkZWZpbmUgc3lzX2NhbGxfdGFibGUgX3NldF92ZXIoc3lzX2NhbGxfdGFibGUpCiNkZWZpbmUg
X192ZXJfbWFjaGluZV9yZXN0YXJ0IHNtcF9lNmUzZWY3MAojZGVmaW5lIG1hY2hpbmVfcmVzdGFy
dCBfc2V0X3ZlcihtYWNoaW5lX3Jlc3RhcnQpCiNkZWZpbmUgX192ZXJfbWFjaGluZV9oYWx0IHNt
cF85YWEzMjYzMAojZGVmaW5lIG1hY2hpbmVfaGFsdCBfc2V0X3ZlcihtYWNoaW5lX2hhbHQpCiNk
ZWZpbmUgX192ZXJfbWFjaGluZV9wb3dlcl9vZmYgc21wXzA5MWM4MjRhCiNkZWZpbmUgbWFjaGlu
ZV9wb3dlcl9vZmYgX3NldF92ZXIobWFjaGluZV9wb3dlcl9vZmYpCiNkZWZpbmUgX192ZXJfX2N0
eXBlIHNtcF84ZDM4OTRmMgojZGVmaW5lIF9jdHlwZSBfc2V0X3ZlcihfY3R5cGUpCiNkZWZpbmUg
X192ZXJfc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgc21wXzFlNjg4NDFmCiNkZWZpbmUgc2Vj
dXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgX3NldF92ZXIoc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1i
ZXIpCiNkZWZpbmUgX192ZXJfZ2V0X3JhbmRvbV9ieXRlcyBzbXBfNzlhYTA0YTIKI2RlZmluZSBn
ZXRfcmFuZG9tX2J5dGVzIF9zZXRfdmVyKGdldF9yYW5kb21fYnl0ZXMpCiNkZWZpbmUgX192ZXJf
c2VjdXJlYml0cyBzbXBfYWJlNzc0ODQKI2RlZmluZSBzZWN1cmViaXRzIF9zZXRfdmVyKHNlY3Vy
ZWJpdHMpCiNkZWZpbmUgX192ZXJfY2FwX2JzZXQgc21wXzU5YWI0MDgwCiNkZWZpbmUgY2FwX2Jz
ZXQgX3NldF92ZXIoY2FwX2JzZXQpCiNkZWZpbmUgX192ZXJfZGFlbW9uaXplIHNtcF9kNjZhMzU0
YQojZGVmaW5lIGRhZW1vbml6ZSBfc2V0X3ZlcihkYWVtb25pemUpCiNkZWZpbmUgX192ZXJfY3N1
bV9wYXJ0aWFsIHNtcF85NDA5NWMxNgojZGVmaW5lIGNzdW1fcGFydGlhbCBfc2V0X3Zlcihjc3Vt
X3BhcnRpYWwpCiNkZWZpbmUgX192ZXJfc2V0dXBfYXJnX3BhZ2VzIHNtcF9kYWJiYmY2ZgojZGVm
aW5lIHNldHVwX2FyZ19wYWdlcyBfc2V0X3ZlcihzZXR1cF9hcmdfcGFnZXMpCiNkZWZpbmUgX192
ZXJfY29weV9zdHJpbmdzX2tlcm5lbCBzbXBfMTc5Mzg0M2UKI2RlZmluZSBjb3B5X3N0cmluZ3Nf
a2VybmVsIF9zZXRfdmVyKGNvcHlfc3RyaW5nc19rZXJuZWwpCiNkZWZpbmUgX192ZXJfZG9fZXhl
Y3ZlIHNtcF9kZTE5ZjAzYgojZGVmaW5lIGRvX2V4ZWN2ZSBfc2V0X3Zlcihkb19leGVjdmUpCiNk
ZWZpbmUgX192ZXJfZmx1c2hfb2xkX2V4ZWMgc21wXzRlNjQwNWE4CiNkZWZpbmUgZmx1c2hfb2xk
X2V4ZWMgX3NldF92ZXIoZmx1c2hfb2xkX2V4ZWMpCiNkZWZpbmUgX192ZXJfa2VybmVsX3JlYWQg
c21wX2Q5ZjM2NWVmCiNkZWZpbmUga2VybmVsX3JlYWQgX3NldF92ZXIoa2VybmVsX3JlYWQpCiNk
ZWZpbmUgX192ZXJfb3Blbl9leGVjIHNtcF9jNTg5MjQ2MQojZGVmaW5lIG9wZW5fZXhlYyBfc2V0
X3ZlcihvcGVuX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2lfbWVtaW5mbyBzbXBfYjNhMzA3YzYKI2Rl
ZmluZSBzaV9tZW1pbmZvIF9zZXRfdmVyKHNpX21lbWluZm8pCiNkZWZpbmUgX192ZXJfc3lzX3R6
IHNtcF9iYWZlYmY3MQojZGVmaW5lIHN5c190eiBfc2V0X3ZlcihzeXNfdHopCiNkZWZpbmUgX192
ZXJfZmlsZV9mc3luYyBzbXBfMTcwZWMzMTcKI2RlZmluZSBmaWxlX2ZzeW5jIF9zZXRfdmVyKGZp
bGVfZnN5bmMpCiNkZWZpbmUgX192ZXJfZnN5bmNfaW5vZGVfYnVmZmVycyBzbXBfM2YxZGVjM2IK
I2RlZmluZSBmc3luY19pbm9kZV9idWZmZXJzIF9zZXRfdmVyKGZzeW5jX2lub2RlX2J1ZmZlcnMp
CiNkZWZpbmUgX192ZXJfY2xlYXJfaW5vZGUgc21wXzE1YjEyYTM3CiNkZWZpbmUgY2xlYXJfaW5v
ZGUgX3NldF92ZXIoY2xlYXJfaW5vZGUpCiNkZWZpbmUgX192ZXJfbnJfYXN5bmNfcGFnZXMgc21w
X2FiMzdhYzU4CiNkZWZpbmUgbnJfYXN5bmNfcGFnZXMgX3NldF92ZXIobnJfYXN5bmNfcGFnZXMp
CiNkZWZpbmUgX192ZXJfX19fc3RydG9rIHNtcF8yOTgwNWMxMwojZGVmaW5lIF9fX3N0cnRvayBf
c2V0X3ZlcihfX19zdHJ0b2spCiNkZWZpbmUgX192ZXJfaW5pdF9zcGVjaWFsX2lub2RlIHNtcF9i
MGRlN2U0NwojZGVmaW5lIGluaXRfc3BlY2lhbF9pbm9kZSBfc2V0X3Zlcihpbml0X3NwZWNpYWxf
aW5vZGUpCiNkZWZpbmUgX192ZXJfcmVhZF9haGVhZCBzbXBfMGFiYjdiMDcKI2RlZmluZSByZWFk
X2FoZWFkIF9zZXRfdmVyKHJlYWRfYWhlYWQpCiNkZWZpbmUgX192ZXJfZ2V0X2hhc2hfdGFibGUg
c21wXzNhZTM2ZmVhCiNkZWZpbmUgZ2V0X2hhc2hfdGFibGUgX3NldF92ZXIoZ2V0X2hhc2hfdGFi
bGUpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2lub2RlIHNtcF8yYjlhN2RlZAojZGVmaW5lIGdl
dF9lbXB0eV9pbm9kZSBfc2V0X3ZlcihnZXRfZW1wdHlfaW5vZGUpCiNkZWZpbmUgX192ZXJfaW5z
ZXJ0X2lub2RlX2hhc2ggc21wXzVjNjRiMWY4CiNkZWZpbmUgaW5zZXJ0X2lub2RlX2hhc2ggX3Nl
dF92ZXIoaW5zZXJ0X2lub2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2lub2RlX2hhc2gg
c21wX2ZiODI0ZTExCiNkZWZpbmUgcmVtb3ZlX2lub2RlX2hhc2ggX3NldF92ZXIocmVtb3ZlX2lu
b2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfYnVmZmVyX2luc2VydF9pbm9kZV9xdWV1ZSBzbXBfODlj
MmE1NzcKI2RlZmluZSBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlIF9zZXRfdmVyKGJ1ZmZlcl9p
bnNlcnRfaW5vZGVfcXVldWUpCiNkZWZpbmUgX192ZXJfbWFrZV9iYWRfaW5vZGUgc21wX2Q2OWRk
NTgyCiNkZWZpbmUgbWFrZV9iYWRfaW5vZGUgX3NldF92ZXIobWFrZV9iYWRfaW5vZGUpCiNkZWZp
bmUgX192ZXJfaXNfYmFkX2lub2RlIHNtcF9mNDg4YzRlMQojZGVmaW5lIGlzX2JhZF9pbm9kZSBf
c2V0X3Zlcihpc19iYWRfaW5vZGUpCiNkZWZpbmUgX192ZXJfZXZlbnQgc21wXzdiMTZjMzQ0CiNk
ZWZpbmUgZXZlbnQgX3NldF92ZXIoZXZlbnQpCiNkZWZpbmUgX192ZXJfYnJ3X3BhZ2Ugc21wXzIw
ZGM2MzVjCiNkZWZpbmUgYnJ3X3BhZ2UgX3NldF92ZXIoYnJ3X3BhZ2UpCiNkZWZpbmUgX192ZXJf
ZnNfb3ZlcmZsb3d1aWQgc21wXzI1ODIwYzY0CiNkZWZpbmUgZnNfb3ZlcmZsb3d1aWQgX3NldF92
ZXIoZnNfb3ZlcmZsb3d1aWQpCiNkZWZpbmUgX192ZXJfZnNfb3ZlcmZsb3dnaWQgc21wX2RmOTI5
MzcwCiNkZWZpbmUgZnNfb3ZlcmZsb3dnaWQgX3NldF92ZXIoZnNfb3ZlcmZsb3dnaWQpCiNkZWZp
bmUgX192ZXJfZmFzeW5jX2hlbHBlciBzbXBfYjI2ZWVmMzAKI2RlZmluZSBmYXN5bmNfaGVscGVy
IF9zZXRfdmVyKGZhc3luY19oZWxwZXIpCiNkZWZpbmUgX192ZXJfa2lsbF9mYXN5bmMgc21wXzQ2
ODIwMzRjCiNkZWZpbmUga2lsbF9mYXN5bmMgX3NldF92ZXIoa2lsbF9mYXN5bmMpCiNkZWZpbmUg
X192ZXJfZGlza19uYW1lIHNtcF9mNDg0NzEwMwojZGVmaW5lIGRpc2tfbmFtZSBfc2V0X3Zlcihk
aXNrX25hbWUpCiNkZWZpbmUgX192ZXJfZ2V0X3dyaXRlX2FjY2VzcyBzbXBfNzc3YmNmNzkKI2Rl
ZmluZSBnZXRfd3JpdGVfYWNjZXNzIF9zZXRfdmVyKGdldF93cml0ZV9hY2Nlc3MpCiNkZWZpbmUg
X192ZXJfcmVnaXN0ZXJfY29uc29sZSBzbXBfMjBhMzk0NzIKI2RlZmluZSByZWdpc3Rlcl9jb25z
b2xlIF9zZXRfdmVyKHJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9j
b25zb2xlIHNtcF8zMjI0YTVjNAojZGVmaW5lIHVucmVnaXN0ZXJfY29uc29sZSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfZ2V0X2Zhc3RfdGltZSBzbXBfNjA3NDMw
MjIKI2RlZmluZSBnZXRfZmFzdF90aW1lIF9zZXRfdmVyKGdldF9mYXN0X3RpbWUpCiNkZWZpbmUg
X192ZXJfc3RybmljbXAgc21wXzc1NmU2OTkyCiNkZWZpbmUgc3RybmljbXAgX3NldF92ZXIoc3Ry
bmljbXApCiNkZWZpbmUgX192ZXJfc3Ryc3BuIHNtcF8zZmE5MTNkYQojZGVmaW5lIHN0cnNwbiBf
c2V0X3ZlcihzdHJzcG4pCiNkZWZpbmUgX192ZXJfc3Ryc2VwIHNtcF84NWRmOWI2YwojZGVmaW5l
IHN0cnNlcCBfc2V0X3ZlcihzdHJzZXApCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV92ZWMgc21w
X2E0YWY4NDlmCiNkZWZpbmUgdGFza2xldF9oaV92ZWMgX3NldF92ZXIodGFza2xldF9oaV92ZWMp
CiNkZWZpbmUgX192ZXJfdGFza2xldF92ZWMgc21wX2EzMDFjOTNjCiNkZWZpbmUgdGFza2xldF92
ZWMgX3NldF92ZXIodGFza2xldF92ZWMpCiNkZWZpbmUgX192ZXJfYmhfdGFza192ZWMgc21wXzFi
YWUyYWFlCiNkZWZpbmUgYmhfdGFza192ZWMgX3NldF92ZXIoYmhfdGFza192ZWMpCiNkZWZpbmUg
X192ZXJfaW5pdF9iaCBzbXBfZjZjZjI3Y2MKI2RlZmluZSBpbml0X2JoIF9zZXRfdmVyKGluaXRf
YmgpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2JoIHNtcF9iYzUyNGEzMgojZGVmaW5lIHJlbW92ZV9i
aCBfc2V0X3ZlcihyZW1vdmVfYmgpCiNkZWZpbmUgX192ZXJfdGFza2xldF9pbml0IHNtcF82OTU3
NWJjYwojZGVmaW5lIHRhc2tsZXRfaW5pdCBfc2V0X3Zlcih0YXNrbGV0X2luaXQpCiNkZWZpbmUg
X192ZXJfdGFza2xldF9raWxsIHNtcF83NGUwNWQ4YwojZGVmaW5lIHRhc2tsZXRfa2lsbCBfc2V0
X3Zlcih0YXNrbGV0X2tpbGwpCiNkZWZpbmUgX192ZXJfX19ydW5fdGFza19xdWV1ZSBzbXBfMzg4
OWIxMWMKI2RlZmluZSBfX3J1bl90YXNrX3F1ZXVlIF9zZXRfdmVyKF9fcnVuX3Rhc2tfcXVldWUp
CiNkZWZpbmUgX192ZXJfZG9fc29mdGlycSBzbXBfOWMzMDUzNzgKI2RlZmluZSBkb19zb2Z0aXJx
IF9zZXRfdmVyKGRvX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfcmFpc2Vfc29mdGlycSBzbXBfYzdl
YThhN2EKI2RlZmluZSByYWlzZV9zb2Z0aXJxIF9zZXRfdmVyKHJhaXNlX3NvZnRpcnEpCiNkZWZp
bmUgX192ZXJfY3B1X3JhaXNlX3NvZnRpcnEgc21wXzRkMDkxNjZjCiNkZWZpbmUgY3B1X3JhaXNl
X3NvZnRpcnEgX3NldF92ZXIoY3B1X3JhaXNlX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfdGFza2xl
dF9zY2hlZHVsZSBzbXBfOWU0NjViYjcKI2RlZmluZSB0YXNrbGV0X3NjaGVkdWxlIF9zZXRfdmVy
KHRhc2tsZXRfc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV9zY2hlZHVsZSBzbXBf
ODk3NjJmYTIKI2RlZmluZSB0YXNrbGV0X2hpX3NjaGVkdWxlIF9zZXRfdmVyKHRhc2tsZXRfaGlf
c2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfaW5pdF90YXNrX3VuaW9uIHNtcF9jZTQ4MTkwNAojZGVm
aW5lIGluaXRfdGFza191bmlvbiBfc2V0X3Zlcihpbml0X3Rhc2tfdW5pb24pCiNkZWZpbmUgX192
ZXJfdGFza2xpc3RfbG9jayBzbXBfZWJjOTM1NzQKI2RlZmluZSB0YXNrbGlzdF9sb2NrIF9zZXRf
dmVyKHRhc2tsaXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcGlkaGFzaCBzbXBfYjQ4ZTA5NmMKI2Rl
ZmluZSBwaWRoYXNoIF9zZXRfdmVyKHBpZGhhc2gpCiMgMTMwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbGFwYl9pZmFjZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9s
YXBiX3JlZ2lzdGVyIHNtcF81YThiOTdhYgojZGVmaW5lIGxhcGJfcmVnaXN0ZXIgX3NldF92ZXIo
bGFwYl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9sYXBiX3VucmVnaXN0ZXIgc21wX2ZmYWE2ZGE3
CiNkZWZpbmUgbGFwYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGxhcGJfdW5yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9sYXBiX2dldHBhcm1zIHNtcF8wMTI3YmM5ZAojZGVmaW5lIGxhcGJfZ2V0cGFybXMg
X3NldF92ZXIobGFwYl9nZXRwYXJtcykKI2RlZmluZSBfX3Zlcl9sYXBiX3NldHBhcm1zIHNtcF8x
NzUyNDdkOAojZGVmaW5lIGxhcGJfc2V0cGFybXMgX3NldF92ZXIobGFwYl9zZXRwYXJtcykKI2Rl
ZmluZSBfX3Zlcl9sYXBiX2Nvbm5lY3RfcmVxdWVzdCBzbXBfODkyNGRkYWUKI2RlZmluZSBsYXBi
X2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBf
X3Zlcl9sYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCBzbXBfOGQxN2RjZmQKI2RlZmluZSBsYXBiX2Rp
c2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmlu
ZSBfX3Zlcl9sYXBiX2RhdGFfcmVxdWVzdCBzbXBfZjg3ZWZkODUKI2RlZmluZSBsYXBiX2RhdGFf
cmVxdWVzdCBfc2V0X3ZlcihsYXBiX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sYXBiX2Rh
dGFfcmVjZWl2ZWQgc21wXzQ2NjU0ZDNjCiNkZWZpbmUgbGFwYl9kYXRhX3JlY2VpdmVkIF9zZXRf
dmVyKGxhcGJfZGF0YV9yZWNlaXZlZCkKIyAxMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9sbGNfbWFjaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl
cl9jbDJsbGNfY2xpZW50IHNtcF9iMTE5ZmMzYwojZGVmaW5lIHJlZ2lzdGVyX2NsMmxsY19jbGll
bnQgX3NldF92ZXIocmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lz
dGVyX2NsMmxsY19jbGllbnQgc21wXzQ5MDkyMjg4CiNkZWZpbmUgdW5yZWdpc3Rlcl9jbDJsbGNf
Y2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9s
bGNfZGF0YV9yZXF1ZXN0IHNtcF80MWIyMmM0YQojZGVmaW5lIGxsY19kYXRhX3JlcXVlc3QgX3Nl
dF92ZXIobGxjX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdW5pdF9kYXRhX3JlcXVl
c3Qgc21wX2U3MWIyNzU4CiNkZWZpbmUgbGxjX3VuaXRfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGxs
Y191bml0X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdGVzdF9yZXF1ZXN0IHNtcF8z
ZWU2NjU2ZQojZGVmaW5lIGxsY190ZXN0X3JlcXVlc3QgX3NldF92ZXIobGxjX3Rlc3RfcmVxdWVz
dCkKI2RlZmluZSBfX3Zlcl9sbGNfeGlkX3JlcXVlc3Qgc21wX2E2YzA1N2FiCiNkZWZpbmUgbGxj
X3hpZF9yZXF1ZXN0IF9zZXRfdmVyKGxsY194aWRfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNf
bWFjX2RhdGFfaW5kaWNhdGUgc21wXzI4MjM3YTQ5CiNkZWZpbmUgbGxjX21hY19kYXRhX2luZGlj
YXRlIF9zZXRfdmVyKGxsY19tYWNfZGF0YV9pbmRpY2F0ZSkKI2RlZmluZSBfX3Zlcl9sbGNfY2Fu
Y2VsX3RpbWVycyBzbXBfMzZlZjAxYTAKI2RlZmluZSBsbGNfY2FuY2VsX3RpbWVycyBfc2V0X3Zl
cihsbGNfY2FuY2VsX3RpbWVycykKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9sbF9yd19ibGsudmVyIiAxCiNkZWZpbmUgX192ZXJfaW9fcmVxdWVzdF9s
b2NrIHNtcF8wOGMzOWRhNgojZGVmaW5lIGlvX3JlcXVlc3RfbG9jayBfc2V0X3Zlcihpb19yZXF1
ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9maXJzdCBzbXBfNDA3YzQ2
MzUKI2RlZmluZSBlbmRfdGhhdF9yZXF1ZXN0X2ZpcnN0IF9zZXRfdmVyKGVuZF90aGF0X3JlcXVl
c3RfZmlyc3QpCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9sYXN0IHNtcF9mN2ZkN2Jm
YQojZGVmaW5lIGVuZF90aGF0X3JlcXVlc3RfbGFzdCBfc2V0X3ZlcihlbmRfdGhhdF9yZXF1ZXN0
X2xhc3QpCiNkZWZpbmUgX192ZXJfYmxrX2luaXRfcXVldWUgc21wXzFkZjQ3NDM4CiNkZWZpbmUg
YmxrX2luaXRfcXVldWUgX3NldF92ZXIoYmxrX2luaXRfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxr
X2dldF9xdWV1ZSBzbXBfNjJmZDIzODMKI2RlZmluZSBibGtfZ2V0X3F1ZXVlIF9zZXRfdmVyKGJs
a19nZXRfcXVldWUpCiNkZWZpbmUgX192ZXJfX19ibGtfZ2V0X3F1ZXVlIHNtcF82ZWQyYzlmMQoj
ZGVmaW5lIF9fYmxrX2dldF9xdWV1ZSBfc2V0X3ZlcihfX2Jsa19nZXRfcXVldWUpCiNkZWZpbmUg
X192ZXJfYmxrX2NsZWFudXBfcXVldWUgc21wXzhkMjBhNzE2CiNkZWZpbmUgYmxrX2NsZWFudXBf
cXVldWUgX3NldF92ZXIoYmxrX2NsZWFudXBfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVl
X2hlYWRhY3RpdmUgc21wXzM5ZDE3MmEyCiNkZWZpbmUgYmxrX3F1ZXVlX2hlYWRhY3RpdmUgX3Nl
dF92ZXIoYmxrX3F1ZXVlX2hlYWRhY3RpdmUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVlX21ha2Vf
cmVxdWVzdCBzbXBfNGUyYjBiNTUKI2RlZmluZSBibGtfcXVldWVfbWFrZV9yZXF1ZXN0IF9zZXRf
dmVyKGJsa19xdWV1ZV9tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19tYWtlX3Jl
cXVlc3Qgc21wXzI0YjNmM2FhCiNkZWZpbmUgZ2VuZXJpY19tYWtlX3JlcXVlc3QgX3NldF92ZXIo
Z2VuZXJpY19tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfYmxrZGV2X3JlbGVhc2VfcmVxdWVz
dCBzbXBfYTVkZDE1Y2MKI2RlZmluZSBibGtkZXZfcmVsZWFzZV9yZXF1ZXN0IF9zZXRfdmVyKGJs
a2Rldl9yZWxlYXNlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY191bnBsdWdfZGV2aWNl
IHNtcF9hMmI4MDc1ZQojZGVmaW5lIGdlbmVyaWNfdW5wbHVnX2RldmljZSBfc2V0X3ZlcihnZW5l
cmljX3VucGx1Z19kZXZpY2UpCiNkZWZpbmUgX192ZXJfcXVldWVkX3NlY3RvcnMgc21wX2MwNDZl
OTZiCiNkZWZpbmUgcXVldWVkX3NlY3RvcnMgX3NldF92ZXIocXVldWVkX3NlY3RvcnMpCiMgMTMz
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbG9ja2Rfc3ltcy52
ZXIiIDEKI2RlZmluZSBfX3Zlcl9sb2NrZF91cCBzbXBfZjY5MzNjNDgKI2RlZmluZSBsb2NrZF91
cCBfc2V0X3Zlcihsb2NrZF91cCkKI2RlZmluZSBfX3Zlcl9sb2NrZF9kb3duIHNtcF9hN2I5MWE3
YgojZGVmaW5lIGxvY2tkX2Rvd24gX3NldF92ZXIobG9ja2RfZG93bikKI2RlZmluZSBfX3Zlcl9u
bG1jbG50X3Byb2Mgc21wXzhhZDI1Yjg5CiNkZWZpbmUgbmxtY2xudF9wcm9jIF9zZXRfdmVyKG5s
bWNsbnRfcHJvYykKI2RlZmluZSBfX3Zlcl9ubG1zdmNfaW52YWxpZGF0ZV9jbGllbnQgc21wX2Ix
YzNmODI1CiNkZWZpbmUgbmxtc3ZjX2ludmFsaWRhdGVfY2xpZW50IF9zZXRfdmVyKG5sbXN2Y19p
bnZhbGlkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfb3BzIHNtcF9mYmJmMDY2Ngoj
ZGVmaW5lIG5sbXN2Y19vcHMgX3NldF92ZXIobmxtc3ZjX29wcykKI2RlZmluZSBfX3Zlcl9ubG1z
dmNfZ3JhY2VfcGVyaW9kIHNtcF9mNjE3Nzc2OAojZGVmaW5lIG5sbXN2Y19ncmFjZV9wZXJpb2Qg
X3NldF92ZXIobmxtc3ZjX2dyYWNlX3BlcmlvZCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfdGltZW91
dCBzbXBfNDRiNDA1MDUKI2RlZmluZSBubG1zdmNfdGltZW91dCBfc2V0X3ZlcihubG1zdmNfdGlt
ZW91dCkKIyAxMzQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9s
b29wLnZlciIgMQojZGVmaW5lIF9fdmVyX2xvb3BfcmVnaXN0ZXJfdHJhbnNmZXIgc21wXzZmYzc3
NjBmCiNkZWZpbmUgbG9vcF9yZWdpc3Rlcl90cmFuc2ZlciBfc2V0X3Zlcihsb29wX3JlZ2lzdGVy
X3RyYW5zZmVyKQojZGVmaW5lIF9fdmVyX2xvb3BfdW5yZWdpc3Rlcl90cmFuc2ZlciBzbXBfYmZl
ZTNhZDUKI2RlZmluZSBsb29wX3VucmVnaXN0ZXJfdHJhbnNmZXIgX3NldF92ZXIobG9vcF91bnJl
Z2lzdGVyX3RyYW5zZmVyKQojIDEzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL21hY19oaWQudmVyIiAxCiMgMTM2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYWNjZWwudmVyIiAxCiMgMTM3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYmFzZS52ZXIiIDEKI2Rl
ZmluZSBfX3Zlcl9tYXRyb3hmYl9yZWdpc3Rlcl9kcml2ZXIgc21wXzAwOTI2NmJmCiNkZWZpbmUg
bWF0cm94ZmJfcmVnaXN0ZXJfZHJpdmVyIF9zZXRfdmVyKG1hdHJveGZiX3JlZ2lzdGVyX2RyaXZl
cikKI2RlZmluZSBfX3Zlcl9tYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBzbXBfM2ZkYzE2N2YK
I2RlZmluZSBtYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihtYXRyb3hmYl91bnJl
Z2lzdGVyX2RyaXZlcikKIyAxMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9tYXRyb3hmYl9EQUMxMDY0LnZlciIgMQojIDEzOSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21hdHJveGZiX21pc2MudmVyIiAxCiNkZWZpbmUgX192
ZXJfbWF0cm94ZmJfREFDX2luIHNtcF8xODMzOWMzNgojZGVmaW5lIG1hdHJveGZiX0RBQ19pbiBf
c2V0X3ZlcihtYXRyb3hmYl9EQUNfaW4pCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfREFDX291dCBz
bXBfYTQ1NmIxM2QKI2RlZmluZSBtYXRyb3hmYl9EQUNfb3V0IF9zZXRfdmVyKG1hdHJveGZiX0RB
Q19vdXQpCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfdmFyMm15IHNtcF8yMjgwMGI0NwojZGVmaW5l
IG1hdHJveGZiX3ZhcjJteSBfc2V0X3ZlcihtYXRyb3hmYl92YXIybXkpCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfUExMX2NhbGNjbG9jayBzbXBfMjVjZjgwNDkKI2RlZmluZSBtYXRyb3hmYl9QTExf
Y2FsY2Nsb2NrIF9zZXRfdmVyKG1hdHJveGZiX1BMTF9jYWxjY2xvY2spCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfZ2xvYmFsX214aW5mbyBzbXBfODYyMDdlNDUKI2RlZmluZSBtYXRyb3hmYl9nbG9i
YWxfbXhpbmZvIF9zZXRfdmVyKG1hdHJveGZiX2dsb2JhbF9teGluZm8pCiNkZWZpbmUgX192ZXJf
bWF0cm94X3RleHRfbG9hZGZvbnQgc21wXzEzYmFmOTQyCiNkZWZpbmUgbWF0cm94X3RleHRfbG9h
ZGZvbnQgX3NldF92ZXIobWF0cm94X3RleHRfbG9hZGZvbnQpCiNkZWZpbmUgX192ZXJfbWF0cm94
ZmJfY3JlYXRlY3Vyc29yc2hhcGUgc21wX2U4NjA5MTU5CiNkZWZpbmUgbWF0cm94ZmJfY3JlYXRl
Y3Vyc29yc2hhcGUgX3NldF92ZXIobWF0cm94ZmJfY3JlYXRlY3Vyc29yc2hhcGUpCiNkZWZpbmUg
X192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfdHJ5c2V0IHNtcF81MjU2OTVmNgojZGVmaW5lIG1hdHJv
eGZiX2Zhc3Rmb250X3RyeXNldCBfc2V0X3ZlcihtYXRyb3hmYl9mYXN0Zm9udF90cnlzZXQpCiNk
ZWZpbmUgX192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfaW5pdCBzbXBfNTViMTZjYjMKI2RlZmluZSBt
YXRyb3hmYl9mYXN0Zm9udF9pbml0IF9zZXRfdmVyKG1hdHJveGZiX2Zhc3Rmb250X2luaXQpCiNk
ZWZpbmUgX192ZXJfbWF0cm94ZmJfdmdhSFdpbml0IHNtcF9mNjkwNTU0MgojZGVmaW5lIG1hdHJv
eGZiX3ZnYUhXaW5pdCBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV2luaXQpCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfdmdhSFdyZXN0b3JlIHNtcF8wNmMyYmYzZQojZGVmaW5lIG1hdHJveGZiX3ZnYUhX
cmVzdG9yZSBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV3Jlc3RvcmUpCiMgMTQwICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfVGkzMDI2LnZlciIgMQoj
IDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21kLnZlciIg
MQojZGVmaW5lIF9fdmVyX21kX3NpemUgc21wX2Q3OWZjMTE2CiNkZWZpbmUgbWRfc2l6ZSBfc2V0
X3ZlcihtZF9zaXplKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IHNtcF83
N2ViZjlhYgojZGVmaW5lIHJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IF9zZXRfdmVyKHJlZ2lzdGVy
X21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbWRfcGVyc29uYWxpdHkg
c21wXzRjOTUxOThkCiNkZWZpbmUgdW5yZWdpc3Rlcl9tZF9wZXJzb25hbGl0eSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3BhcnRpdGlvbl9uYW1lIHNt
cF9lNGIyOThiNQojZGVmaW5lIHBhcnRpdGlvbl9uYW1lIF9zZXRfdmVyKHBhcnRpdGlvbl9uYW1l
KQojZGVmaW5lIF9fdmVyX21kX2Vycm9yIHNtcF8wMmU0OWM2YgojZGVmaW5lIG1kX2Vycm9yIF9z
ZXRfdmVyKG1kX2Vycm9yKQojZGVmaW5lIF9fdmVyX21kX2RvX3N5bmMgc21wXzZlOTI2N2NhCiNk
ZWZpbmUgbWRfZG9fc3luYyBfc2V0X3ZlcihtZF9kb19zeW5jKQojZGVmaW5lIF9fdmVyX21kX3N5
bmNfYWNjdCBzbXBfNTIyODc0MjkKI2RlZmluZSBtZF9zeW5jX2FjY3QgX3NldF92ZXIobWRfc3lu
Y19hY2N0KQojZGVmaW5lIF9fdmVyX21kX2RvbmVfc3luYyBzbXBfYWI5YWM3ZjcKI2RlZmluZSBt
ZF9kb25lX3N5bmMgX3NldF92ZXIobWRfZG9uZV9zeW5jKQojZGVmaW5lIF9fdmVyX21kX3JlY292
ZXJfYXJyYXlzIHNtcF85MzA5MDE2NwojZGVmaW5lIG1kX3JlY292ZXJfYXJyYXlzIF9zZXRfdmVy
KG1kX3JlY292ZXJfYXJyYXlzKQojZGVmaW5lIF9fdmVyX21kX3JlZ2lzdGVyX3RocmVhZCBzbXBf
ZGRiMzdmNDAKI2RlZmluZSBtZF9yZWdpc3Rlcl90aHJlYWQgX3NldF92ZXIobWRfcmVnaXN0ZXJf
dGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3VucmVnaXN0ZXJfdGhyZWFkIHNtcF85ZjQ3MjAwMAoj
ZGVmaW5lIG1kX3VucmVnaXN0ZXJfdGhyZWFkIF9zZXRfdmVyKG1kX3VucmVnaXN0ZXJfdGhyZWFk
KQojZGVmaW5lIF9fdmVyX21kX3VwZGF0ZV9zYiBzbXBfMTI0YTAxOTYKI2RlZmluZSBtZF91cGRh
dGVfc2IgX3NldF92ZXIobWRfdXBkYXRlX3NiKQojZGVmaW5lIF9fdmVyX21kX3dha2V1cF90aHJl
YWQgc21wXzYyZDAxMDg2CiNkZWZpbmUgbWRfd2FrZXVwX3RocmVhZCBfc2V0X3ZlcihtZF93YWtl
dXBfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3ByaW50X2RldmljZXMgc21wX2E4ZDM2MzA2CiNk
ZWZpbmUgbWRfcHJpbnRfZGV2aWNlcyBfc2V0X3ZlcihtZF9wcmludF9kZXZpY2VzKQojZGVmaW5l
IF9fdmVyX2ZpbmRfcmRldl9uciBzbXBfYTQ5ODFjMjYKI2RlZmluZSBmaW5kX3JkZXZfbnIgX3Nl
dF92ZXIoZmluZF9yZGV2X25yKQojZGVmaW5lIF9fdmVyX21kX2ludGVycnVwdF90aHJlYWQgc21w
X2E3NDk0M2E1CiNkZWZpbmUgbWRfaW50ZXJydXB0X3RocmVhZCBfc2V0X3ZlcihtZF9pbnRlcnJ1
cHRfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kZGV2X21hcCBzbXBfNzJiNDAyYmEKI2RlZmluZSBt
ZGRldl9tYXAgX3NldF92ZXIobWRkZXZfbWFwKQojZGVmaW5lIF9fdmVyX21kX2NoZWNrX29yZGVy
aW5nIHNtcF9iNzNhODE0YgojZGVmaW5lIG1kX2NoZWNrX29yZGVyaW5nIF9zZXRfdmVyKG1kX2No
ZWNrX29yZGVyaW5nKQojIDE0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL21nYV9kcnYudmVyIiAxCiMgMTQzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvbWlkaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX2RvX21pZGlfbXNn
IHNtcF9iNTE1ODdmNgojZGVmaW5lIGRvX21pZGlfbXNnIF9zZXRfdmVyKGRvX21pZGlfbXNnKQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfb3BlbiBzbXBfZjZiM2EyZmIKI2RlZmluZSBtaWRpX3N5
bnRoX29wZW4gX3NldF92ZXIobWlkaV9zeW50aF9vcGVuKQojZGVmaW5lIF9fdmVyX21pZGlfc3lu
dGhfY2xvc2Ugc21wX2FkNDVkZjczCiNkZWZpbmUgbWlkaV9zeW50aF9jbG9zZSBfc2V0X3Zlciht
aWRpX3N5bnRoX2Nsb3NlKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaW9jdGwgc21wX2I2NmQx
ZjY3CiNkZWZpbmUgbWlkaV9zeW50aF9pb2N0bCBfc2V0X3ZlcihtaWRpX3N5bnRoX2lvY3RsKQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfa2lsbF9ub3RlIHNtcF8yYWEzMTY5NQojZGVmaW5lIG1p
ZGlfc3ludGhfa2lsbF9ub3RlIF9zZXRfdmVyKG1pZGlfc3ludGhfa2lsbF9ub3RlKQojZGVmaW5l
IF9fdmVyX21pZGlfc3ludGhfc3RhcnRfbm90ZSBzbXBfOWJkYWYyNGQKI2RlZmluZSBtaWRpX3N5
bnRoX3N0YXJ0X25vdGUgX3NldF92ZXIobWlkaV9zeW50aF9zdGFydF9ub3RlKQojZGVmaW5lIF9f
dmVyX21pZGlfc3ludGhfc2V0X2luc3RyIHNtcF9kODViZTkzOAojZGVmaW5lIG1pZGlfc3ludGhf
c2V0X2luc3RyIF9zZXRfdmVyKG1pZGlfc3ludGhfc2V0X2luc3RyKQojZGVmaW5lIF9fdmVyX21p
ZGlfc3ludGhfcmVzZXQgc21wXzU2NTA0Y2EyCiNkZWZpbmUgbWlkaV9zeW50aF9yZXNldCBfc2V0
X3ZlcihtaWRpX3N5bnRoX3Jlc2V0KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaHdfY29udHJv
bCBzbXBfYjE0YjIyY2QKI2RlZmluZSBtaWRpX3N5bnRoX2h3X2NvbnRyb2wgX3NldF92ZXIobWlk
aV9zeW50aF9od19jb250cm9sKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYWZ0ZXJ0b3VjaCBz
bXBfZjFlYThhMjAKI2RlZmluZSBtaWRpX3N5bnRoX2FmdGVydG91Y2ggX3NldF92ZXIobWlkaV9z
eW50aF9hZnRlcnRvdWNoKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfY29udHJvbGxlciBzbXBf
ODkyMDkzZTAKI2RlZmluZSBtaWRpX3N5bnRoX2NvbnRyb2xsZXIgX3NldF92ZXIobWlkaV9zeW50
aF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfcGFubmluZyBzbXBfZGI0MDBh
ZmEKI2RlZmluZSBtaWRpX3N5bnRoX3Bhbm5pbmcgX3NldF92ZXIobWlkaV9zeW50aF9wYW5uaW5n
KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2V0dXBfdm9pY2Ugc21wXzRmZjQ3ZTlkCiNkZWZp
bmUgbWlkaV9zeW50aF9zZXR1cF92b2ljZSBfc2V0X3ZlcihtaWRpX3N5bnRoX3NldHVwX3ZvaWNl
KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2VuZF9zeXNleCBzbXBfZmRkY2JmYjMKI2RlZmlu
ZSBtaWRpX3N5bnRoX3NlbmRfc3lzZXggX3NldF92ZXIobWlkaV9zeW50aF9zZW5kX3N5c2V4KQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYmVuZGVyIHNtcF9iYTdkZDA0MQojZGVmaW5lIG1pZGlf
c3ludGhfYmVuZGVyIF9zZXRfdmVyKG1pZGlfc3ludGhfYmVuZGVyKQojZGVmaW5lIF9fdmVyX21p
ZGlfc3ludGhfbG9hZF9wYXRjaCBzbXBfZjc0MjZkYTMKI2RlZmluZSBtaWRpX3N5bnRoX2xvYWRf
cGF0Y2ggX3NldF92ZXIobWlkaV9zeW50aF9sb2FkX3BhdGNoKQojZGVmaW5lIF9fdmVyX01JREli
dWZfYXZhaWwgc21wXzFmMzk1Njg2CiNkZWZpbmUgTUlESWJ1Zl9hdmFpbCBfc2V0X3ZlcihNSURJ
YnVmX2F2YWlsKQojIDE0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL21pcm9wY20yMC1yZHMtY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hY2lfcmRzX2NtZCBz
bXBfZGU0MTU2Y2UKI2RlZmluZSBhY2lfcmRzX2NtZCBfc2V0X3ZlcihhY2lfcmRzX2NtZCkKIyAx
NDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9taXNjLnZlciIg
MQojZGVmaW5lIF9fdmVyX21pc2NfcmVnaXN0ZXIgc21wX2ZjNGM4M2VlCiNkZWZpbmUgbWlzY19y
ZWdpc3RlciBfc2V0X3ZlcihtaXNjX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21pc2NfZGVyZWdp
c3RlciBzbXBfNGIxMDZjZGMKI2RlZmluZSBtaXNjX2RlcmVnaXN0ZXIgX3NldF92ZXIobWlzY19k
ZXJlZ2lzdGVyKQojIDE0NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL21vZGVkYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9fX2ZiX3RyeV9tb2RlIHNtcF80M2QyZDJm
ZAojZGVmaW5lIF9fZmJfdHJ5X21vZGUgX3NldF92ZXIoX19mYl90cnlfbW9kZSkKIyAxNDcgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tcHRiYXNlLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX21wdF9yZWdpc3RlciBzbXBfMDQ3N2NlYzkKI2RlZmluZSBtcHRfcmVnaXN0
ZXIgX3NldF92ZXIobXB0X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyIHNt
cF82ZmI1YWI3MQojZGVmaW5lIG1wdF9kZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9kZXJlZ2lzdGVy
KQojZGVmaW5lIF9fdmVyX21wdF9ldmVudF9yZWdpc3RlciBzbXBfNTBkY2QzYzMKI2RlZmluZSBt
cHRfZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIobXB0X2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX21wdF9ldmVudF9kZXJlZ2lzdGVyIHNtcF83M2ZlYzRiYgojZGVmaW5lIG1wdF9ldmVudF9k
ZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9ldmVudF9kZXJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21w
dF9nZXRfbXNnX2ZyYW1lIHNtcF8wYThkOWVjNQojZGVmaW5lIG1wdF9nZXRfbXNnX2ZyYW1lIF9z
ZXRfdmVyKG1wdF9nZXRfbXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9wdXRfbXNnX2ZyYW1l
IHNtcF80NWMwMDExMAojZGVmaW5lIG1wdF9wdXRfbXNnX2ZyYW1lIF9zZXRfdmVyKG1wdF9wdXRf
bXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9mcmVlX21zZ19mcmFtZSBzbXBfNmM0OWFlOGMK
I2RlZmluZSBtcHRfZnJlZV9tc2dfZnJhbWUgX3NldF92ZXIobXB0X2ZyZWVfbXNnX2ZyYW1lKQoj
ZGVmaW5lIF9fdmVyX21wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IHNtcF9iNDFiYzIyZAojZGVm
aW5lIG1wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IF9zZXRfdmVyKG1wdF9zZW5kX2hhbmRzaGFr
ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfZmlyc3Qgc21wX2YzMzZm
ZmFmCiNkZWZpbmUgbXB0X2FkYXB0ZXJfZmluZF9maXJzdCBfc2V0X3ZlcihtcHRfYWRhcHRlcl9m
aW5kX2ZpcnN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfbmV4dCBzbXBfOWVmY2Zj
MzEKI2RlZmluZSBtcHRfYWRhcHRlcl9maW5kX25leHQgX3NldF92ZXIobXB0X2FkYXB0ZXJfZmlu
ZF9uZXh0KQojZGVmaW5lIF9fdmVyX21wdF92ZXJpZnlfYWRhcHRlciBzbXBfNjIxYTgyNjgKI2Rl
ZmluZSBtcHRfdmVyaWZ5X2FkYXB0ZXIgX3NldF92ZXIobXB0X3ZlcmlmeV9hZGFwdGVyKQojZGVm
aW5lIF9fdmVyX21wdF9wcmludF9pb2Nfc3VtbWFyeSBzbXBfYTk2M2Y4YTgKI2RlZmluZSBtcHRf
cHJpbnRfaW9jX3N1bW1hcnkgX3NldF92ZXIobXB0X3ByaW50X2lvY19zdW1tYXJ5KQojZGVmaW5l
IF9fdmVyX21wdF9sYW5faW5kZXggc21wXzNiNGYxNjJlCiNkZWZpbmUgbXB0X2xhbl9pbmRleCBf
c2V0X3ZlcihtcHRfbGFuX2luZGV4KQojZGVmaW5lIF9fdmVyX21wdF9zdG1faW5kZXggc21wXzg1
MzJjYzk2CiNkZWZpbmUgbXB0X3N0bV9pbmRleCBfc2V0X3ZlcihtcHRfc3RtX2luZGV4KQojZGVm
aW5lIF9fdmVyX21wdF9yZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3Mgc21wXzJmNTNiZjU3CiNkZWZp
bmUgbXB0X3JlZ2lzdGVyX2FzY3FvcHNfc3RyaW5ncyBfc2V0X3ZlcihtcHRfcmVnaXN0ZXJfYXNj
cW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyX2FzY3FvcHNfc3RyaW5n
cyBzbXBfYWFhOWRjNGIKI2RlZmluZSBtcHRfZGVyZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3MgX3Nl
dF92ZXIobXB0X2RlcmVnaXN0ZXJfYXNjcW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF92
X0FTQ1FfVGFibGVQdHIgc21wXzAxN2EzZjViCiNkZWZpbmUgbXB0X3ZfQVNDUV9UYWJsZVB0ciBf
c2V0X3ZlcihtcHRfdl9BU0NRX1RhYmxlUHRyKQojZGVmaW5lIF9fdmVyX21wdF9BU0NRX1RhYmxl
U3ogc21wX2Q3MWQ3Yjg0CiNkZWZpbmUgbXB0X0FTQ1FfVGFibGVTeiBfc2V0X3ZlcihtcHRfQVND
UV9UYWJsZVN6KQojZGVmaW5lIF9fdmVyX21wdF9TY3NpT3Bjb2Rlc1B0ciBzbXBfYzQxY2U4NmQK
I2RlZmluZSBtcHRfU2NzaU9wY29kZXNQdHIgX3NldF92ZXIobXB0X1Njc2lPcGNvZGVzUHRyKQoj
IDE0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21wdGN0bC52
ZXIiIDEKIyAxNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9t
cHRsYW4udmVyIiAxCiMgMTUwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvbXB0c2NzaWgudmVyIiAxCiMgMTUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvbXB1NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX21wdTQwMSBz
bXBfY2Q5MTQ2NWMKI2RlZmluZSBwcm9iZV9tcHU0MDEgX3NldF92ZXIocHJvYmVfbXB1NDAxKQoj
ZGVmaW5lIF9fdmVyX2F0dGFjaF9tcHU0MDEgc21wXzcwZmQ0YTQ0CiNkZWZpbmUgYXR0YWNoX21w
dTQwMSBfc2V0X3ZlcihhdHRhY2hfbXB1NDAxKQojZGVmaW5lIF9fdmVyX3VubG9hZF9tcHU0MDEg
c21wXzVmZWJmMjg0CiNkZWZpbmUgdW5sb2FkX21wdTQwMSBfc2V0X3Zlcih1bmxvYWRfbXB1NDAx
KQojZGVmaW5lIF9fdmVyX2ludGNoa19tcHU0MDEgc21wXzVmZTZkZDQyCiNkZWZpbmUgaW50Y2hr
X21wdTQwMSBfc2V0X3ZlcihpbnRjaGtfbXB1NDAxKQojZGVmaW5lIF9fdmVyX21wdWludHIgc21w
XzVhMzMzYjM4CiNkZWZpbmUgbXB1aW50ciBfc2V0X3ZlcihtcHVpbnRyKQojIDE1MiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21zZG9zZnNfc3ltcy52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9tc2Rvc19jcmVhdGUgc21wXzgxYTJlM2E3CiNkZWZpbmUgbXNkb3NfY3Jl
YXRlIF9zZXRfdmVyKG1zZG9zX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9tc2Rvc19sb29rdXAgc21w
X2MxYzc2Mjk0CiNkZWZpbmUgbXNkb3NfbG9va3VwIF9zZXRfdmVyKG1zZG9zX2xvb2t1cCkKI2Rl
ZmluZSBfX3Zlcl9tc2Rvc19ta2RpciBzbXBfNjY5NjEwODUKI2RlZmluZSBtc2Rvc19ta2RpciBf
c2V0X3Zlcihtc2Rvc19ta2RpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19yZW5hbWUgc21wX2Q2NTQ2
YTA3CiNkZWZpbmUgbXNkb3NfcmVuYW1lIF9zZXRfdmVyKG1zZG9zX3JlbmFtZSkKI2RlZmluZSBf
X3Zlcl9tc2Rvc19ybWRpciBzbXBfODk2OTY2MTIKI2RlZmluZSBtc2Rvc19ybWRpciBfc2V0X3Zl
cihtc2Rvc19ybWRpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc191bmxpbmsgc21wXzNiZTJhZjc1CiNk
ZWZpbmUgbXNkb3NfdW5saW5rIF9zZXRfdmVyKG1zZG9zX3VubGluaykKI2RlZmluZSBfX3Zlcl9t
c2Rvc19yZWFkX3N1cGVyIHNtcF9mNjQ4ZWM1NgojZGVmaW5lIG1zZG9zX3JlYWRfc3VwZXIgX3Nl
dF92ZXIobXNkb3NfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19wdXRfc3VwZXIgc21w
XzRkZjNkNTkyCiNkZWZpbmUgbXNkb3NfcHV0X3N1cGVyIF9zZXRfdmVyKG1zZG9zX3B1dF9zdXBl
cikKIyAxNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tc25k
LnZlciIgMQojZGVmaW5lIF9fdmVyX21zbmRfcmVnaXN0ZXIgc21wXzg0N2Y4YjEyCiNkZWZpbmUg
bXNuZF9yZWdpc3RlciBfc2V0X3Zlcihtc25kX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRf
dW5yZWdpc3RlciBzbXBfMDk2ZjdhZmQKI2RlZmluZSBtc25kX3VucmVnaXN0ZXIgX3NldF92ZXIo
bXNuZF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X251bV9kZXZzIHNtcF8zZDU3
MzFhZQojZGVmaW5lIG1zbmRfZ2V0X251bV9kZXZzIF9zZXRfdmVyKG1zbmRfZ2V0X251bV9kZXZz
KQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X2RldiBzbXBfMzM0YWM2ODQKI2RlZmluZSBtc25kX2dl
dF9kZXYgX3NldF92ZXIobXNuZF9nZXRfZGV2KQojZGVmaW5lIF9fdmVyX21zbmRfaW5pdF9xdWV1
ZSBzbXBfOWY1NjAyMmUKI2RlZmluZSBtc25kX2luaXRfcXVldWUgX3NldF92ZXIobXNuZF9pbml0
X3F1ZXVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19pbml0IHNtcF82ODQ3M2RhMQojZGVmaW5l
IG1zbmRfZmlmb19pbml0IF9zZXRfdmVyKG1zbmRfZmlmb19pbml0KQojZGVmaW5lIF9fdmVyX21z
bmRfZmlmb19mcmVlIHNtcF8xODBjZWZmZgojZGVmaW5lIG1zbmRfZmlmb19mcmVlIF9zZXRfdmVy
KG1zbmRfZmlmb19mcmVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19hbGxvYyBzbXBfOTg1M2Q0
NDkKI2RlZmluZSBtc25kX2ZpZm9fYWxsb2MgX3NldF92ZXIobXNuZF9maWZvX2FsbG9jKQojZGVm
aW5lIF9fdmVyX21zbmRfZmlmb19tYWtlX2VtcHR5IHNtcF82NzkyOTdkYgojZGVmaW5lIG1zbmRf
Zmlmb19tYWtlX2VtcHR5IF9zZXRfdmVyKG1zbmRfZmlmb19tYWtlX2VtcHR5KQojZGVmaW5lIF9f
dmVyX21zbmRfZmlmb193cml0ZSBzbXBfNmM4ZGE4OTUKI2RlZmluZSBtc25kX2ZpZm9fd3JpdGUg
X3NldF92ZXIobXNuZF9maWZvX3dyaXRlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19yZWFkIHNt
cF80NTJhNmZlYwojZGVmaW5lIG1zbmRfZmlmb19yZWFkIF9zZXRfdmVyKG1zbmRfZmlmb19yZWFk
KQojZGVmaW5lIF9fdmVyX21zbmRfd2FpdF9UWERFIHNtcF9kMWZjYWEyMwojZGVmaW5lIG1zbmRf
d2FpdF9UWERFIF9zZXRfdmVyKG1zbmRfd2FpdF9UWERFKQojZGVmaW5lIF9fdmVyX21zbmRfd2Fp
dF9IQzAgc21wX2ZjYWJiNzM0CiNkZWZpbmUgbXNuZF93YWl0X0hDMCBfc2V0X3Zlcihtc25kX3dh
aXRfSEMwKQojZGVmaW5lIF9fdmVyX21zbmRfc2VuZF9kc3BfY21kIHNtcF83ZTcwNTk3OQojZGVm
aW5lIG1zbmRfc2VuZF9kc3BfY21kIF9zZXRfdmVyKG1zbmRfc2VuZF9kc3BfY21kKQojZGVmaW5l
IF9fdmVyX21zbmRfc2VuZF93b3JkIHNtcF8wYjRlOWQ4ZgojZGVmaW5lIG1zbmRfc2VuZF93b3Jk
IF9zZXRfdmVyKG1zbmRfc2VuZF93b3JkKQojZGVmaW5lIF9fdmVyX21zbmRfdXBsb2FkX2hvc3Qg
c21wXzdjM2NhNWFlCiNkZWZpbmUgbXNuZF91cGxvYWRfaG9zdCBfc2V0X3Zlcihtc25kX3VwbG9h
ZF9ob3N0KQojZGVmaW5lIF9fdmVyX21zbmRfZW5hYmxlX2lycSBzbXBfMTk4MWFhOTUKI2RlZmlu
ZSBtc25kX2VuYWJsZV9pcnEgX3NldF92ZXIobXNuZF9lbmFibGVfaXJxKQojZGVmaW5lIF9fdmVy
X21zbmRfZGlzYWJsZV9pcnEgc21wX2UyYzJkZDA0CiNkZWZpbmUgbXNuZF9kaXNhYmxlX2lycSBf
c2V0X3Zlcihtc25kX2Rpc2FibGVfaXJxKQojIDE1NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R1bGVzL210ZGNvcmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWRkX210ZF9k
ZXZpY2Ugc21wXzY1OWJlZTA0CiNkZWZpbmUgYWRkX210ZF9kZXZpY2UgX3NldF92ZXIoYWRkX210
ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfZGVsX210ZF9kZXZpY2Ugc21wXzc3MjRlNzExCiNkZWZp
bmUgZGVsX210ZF9kZXZpY2UgX3NldF92ZXIoZGVsX210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJf
X19nZXRfbXRkX2RldmljZSBzbXBfZDZiNzAwMTYKI2RlZmluZSBfX2dldF9tdGRfZGV2aWNlIF9z
ZXRfdmVyKF9fZ2V0X210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbXRkX3VzZXIg
c21wXzA4YWFiMTIzCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX3VzZXIgX3NldF92ZXIocmVnaXN0ZXJf
bXRkX3VzZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9tdGRfdXNlciBzbXBfOWQwY2RhOGMK
I2RlZmluZSB1bnJlZ2lzdGVyX210ZF91c2VyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbXRkX3VzZXIp
CiMgMTU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbXRkcGFy
dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hZGRfbXRkX3BhcnRpdGlvbnMgc21wXzdlYTUwYjEwCiNk
ZWZpbmUgYWRkX210ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGFkZF9tdGRfcGFydGl0aW9ucykKI2Rl
ZmluZSBfX3Zlcl9kZWxfbXRkX3BhcnRpdGlvbnMgc21wXzZmZWE3Y2Q0CiNkZWZpbmUgZGVsX210
ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGRlbF9tdGRfcGFydGl0aW9ucykKIyAxNTYgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uYW5kX2VjYy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9uYW5kX2NhbGN1bGF0ZV9lY2Mgc21wXzFmOTc1MTM3CiNkZWZpbmUgbmFuZF9jYWxj
dWxhdGVfZWNjIF9zZXRfdmVyKG5hbmRfY2FsY3VsYXRlX2VjYykKI2RlZmluZSBfX3Zlcl9uYW5k
X2NvcnJlY3RfZGF0YSBzbXBfZTc1NjkxOWQKI2RlZmluZSBuYW5kX2NvcnJlY3RfZGF0YSBfc2V0
X3ZlcihuYW5kX2NvcnJlY3RfZGF0YSkKIyAxNTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9uYW5kLnZlciIgMQojZGVmaW5lIF9fdmVyX25hbmRfc2NhbiBzbXBf
MTVlMjZkZDkKI2RlZmluZSBuYW5kX3NjYW4gX3NldF92ZXIobmFuZF9zY2FuKQojIDE1OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ldGZpbHRlci52ZXIiIDEK
IyAxNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRfaW5p
dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pbml0X2V0aGVyZGV2IHNtcF8yOGM1MjM1MQojZGVmaW5l
IGluaXRfZXRoZXJkZXYgX3NldF92ZXIoaW5pdF9ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9hbGxv
Y19ldGhlcmRldiBzbXBfZmYzZDliNWYKI2RlZmluZSBhbGxvY19ldGhlcmRldiBfc2V0X3Zlcihh
bGxvY19ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9ldGhlcl9zZXR1cCBzbXBfMTI3ZjIyMjYKI2Rl
ZmluZSBldGhlcl9zZXR1cCBfc2V0X3ZlcihldGhlcl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9yZWdp
c3Rlcl9uZXRkZXYgc21wXzVjZDg0Y2ZjCiNkZWZpbmUgcmVnaXN0ZXJfbmV0ZGV2IF9zZXRfdmVy
KHJlZ2lzdGVyX25ldGRldikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX25ldGRldiBzbXBfMGI2
NmJlNzcKI2RlZmluZSB1bnJlZ2lzdGVyX25ldGRldiBfc2V0X3Zlcih1bnJlZ2lzdGVyX25ldGRl
dikKIyAxNjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRz
eW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3NrYl9vdmVyX3BhbmljIHNtcF9iZTRjZWVkZAojZGVm
aW5lIHNrYl9vdmVyX3BhbmljIF9zZXRfdmVyKHNrYl9vdmVyX3BhbmljKQojZGVmaW5lIF9fdmVy
X3NrYl91bmRlcl9wYW5pYyBzbXBfNGFmZjU2YTEKI2RlZmluZSBza2JfdW5kZXJfcGFuaWMgX3Nl
dF92ZXIoc2tiX3VuZGVyX3BhbmljKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVnaXN0ZXIgc21wX2Zi
ZTNhZWE2CiNkZWZpbmUgc29ja19yZWdpc3RlciBfc2V0X3Zlcihzb2NrX3JlZ2lzdGVyKQojZGVm
aW5lIF9fdmVyX3NvY2tfdW5yZWdpc3RlciBzbXBfMjM5NGEwNjIKI2RlZmluZSBzb2NrX3VucmVn
aXN0ZXIgX3NldF92ZXIoc29ja191bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX19fbG9ja19zb2Nr
IHNtcF9iOTQzODMzOQojZGVmaW5lIF9fbG9ja19zb2NrIF9zZXRfdmVyKF9fbG9ja19zb2NrKQoj
ZGVmaW5lIF9fdmVyX19fcmVsZWFzZV9zb2NrIHNtcF9iZmM3YWNhZgojZGVmaW5lIF9fcmVsZWFz
ZV9zb2NrIF9zZXRfdmVyKF9fcmVsZWFzZV9zb2NrKQojZGVmaW5lIF9fdmVyX21lbWNweV9mcm9t
aW92ZWMgc21wXzM2MTM5YTUxCiNkZWZpbmUgbWVtY3B5X2Zyb21pb3ZlYyBfc2V0X3ZlcihtZW1j
cHlfZnJvbWlvdmVjKQojZGVmaW5lIF9fdmVyX21lbWNweV90b2tlcm5lbGlvdmVjIHNtcF9lNDI3
MWZiMAojZGVmaW5lIG1lbWNweV90b2tlcm5lbGlvdmVjIF9zZXRfdmVyKG1lbWNweV90b2tlcm5l
bGlvdmVjKQojZGVmaW5lIF9fdmVyX3NvY2tfY3JlYXRlIHNtcF8zMDQzZjE5ZAojZGVmaW5lIHNv
Y2tfY3JlYXRlIF9zZXRfdmVyKHNvY2tfY3JlYXRlKQojZGVmaW5lIF9fdmVyX3NvY2tfYWxsb2Mg
c21wX2VhNWU0MWZlCiNkZWZpbmUgc29ja19hbGxvYyBfc2V0X3Zlcihzb2NrX2FsbG9jKQojZGVm
aW5lIF9fdmVyX3NvY2tfcmVsZWFzZSBzbXBfNTU0ODQwN2EKI2RlZmluZSBzb2NrX3JlbGVhc2Ug
X3NldF92ZXIoc29ja19yZWxlYXNlKQojZGVmaW5lIF9fdmVyX3NvY2tfc2V0c29ja29wdCBzbXBf
OTNlYjY1OGEKI2RlZmluZSBzb2NrX3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19zZXRzb2Nrb3B0
KQojZGVmaW5lIF9fdmVyX3NvY2tfZ2V0c29ja29wdCBzbXBfNWE4ODdjZmQKI2RlZmluZSBzb2Nr
X2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3NvY2tf
c2VuZG1zZyBzbXBfMTZjYzEzMTQKI2RlZmluZSBzb2NrX3NlbmRtc2cgX3NldF92ZXIoc29ja19z
ZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVjdm1zZyBzbXBfYTk2Zjg3MTgKI2RlZmluZSBz
b2NrX3JlY3Ztc2cgX3NldF92ZXIoc29ja19yZWN2bXNnKQojZGVmaW5lIF9fdmVyX3NrX2FsbG9j
IHNtcF9hNDZhMTA4MwojZGVmaW5lIHNrX2FsbG9jIF9zZXRfdmVyKHNrX2FsbG9jKQojZGVmaW5l
IF9fdmVyX3NrX2ZyZWUgc21wX2I1ZWNjZWJiCiNkZWZpbmUgc2tfZnJlZSBfc2V0X3Zlcihza19m
cmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2FrZV9hc3luYyBzbXBfNGVlYmVhNDEKI2RlZmluZSBz
b2NrX3dha2VfYXN5bmMgX3NldF92ZXIoc29ja193YWtlX2FzeW5jKQojZGVmaW5lIF9fdmVyX3Nv
Y2tfYWxsb2Nfc2VuZF9za2Igc21wXzlkZmRhOGQ3CiNkZWZpbmUgc29ja19hbGxvY19zZW5kX3Nr
YiBfc2V0X3Zlcihzb2NrX2FsbG9jX3NlbmRfc2tiKQojZGVmaW5lIF9fdmVyX3NvY2tfaW5pdF9k
YXRhIHNtcF9hYzI3NDNhOQojZGVmaW5lIHNvY2tfaW5pdF9kYXRhIF9zZXRfdmVyKHNvY2tfaW5p
dF9kYXRhKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVsZWFzZSBzbXBfNmEzYTZkMTkKI2RlZmlu
ZSBzb2NrX25vX3JlbGVhc2UgX3NldF92ZXIoc29ja19ub19yZWxlYXNlKQojZGVmaW5lIF9fdmVy
X3NvY2tfbm9fYmluZCBzbXBfN2M5NzY5YTUKI2RlZmluZSBzb2NrX25vX2JpbmQgX3NldF92ZXIo
c29ja19ub19iaW5kKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fY29ubmVjdCBzbXBfNGJlOGM5ODQK
I2RlZmluZSBzb2NrX25vX2Nvbm5lY3QgX3NldF92ZXIoc29ja19ub19jb25uZWN0KQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fc29ja2V0cGFpciBzbXBfMjcwYjY5MmYKI2RlZmluZSBzb2NrX25vX3Nv
Y2tldHBhaXIgX3NldF92ZXIoc29ja19ub19zb2NrZXRwYWlyKQojZGVmaW5lIF9fdmVyX3NvY2tf
bm9fYWNjZXB0IHNtcF8wYmZlZGIyOAojZGVmaW5lIHNvY2tfbm9fYWNjZXB0IF9zZXRfdmVyKHNv
Y2tfbm9fYWNjZXB0KQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0bmFtZSBzbXBfM2Q0N2U4NDAK
I2RlZmluZSBzb2NrX25vX2dldG5hbWUgX3NldF92ZXIoc29ja19ub19nZXRuYW1lKQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fcG9sbCBzbXBfMzZiYTMyMTYKI2RlZmluZSBzb2NrX25vX3BvbGwgX3Nl
dF92ZXIoc29ja19ub19wb2xsKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9faW9jdGwgc21wXzZjYmMy
MjcwCiNkZWZpbmUgc29ja19ub19pb2N0bCBfc2V0X3Zlcihzb2NrX25vX2lvY3RsKQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fbGlzdGVuIHNtcF80ZjA2OTNkNgojZGVmaW5lIHNvY2tfbm9fbGlzdGVu
IF9zZXRfdmVyKHNvY2tfbm9fbGlzdGVuKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2h1dGRvd24g
c21wXzA3MWIzYmY2CiNkZWZpbmUgc29ja19ub19zaHV0ZG93biBfc2V0X3Zlcihzb2NrX25vX3No
dXRkb3duKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0c29ja29wdCBzbXBfNzBmNWU4NDcKI2Rl
ZmluZSBzb2NrX25vX2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19nZXRzb2Nrb3B0KQojZGVm
aW5lIF9fdmVyX3NvY2tfbm9fc2V0c29ja29wdCBzbXBfOWIyY2NlZDMKI2RlZmluZSBzb2NrX25v
X3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19zZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3Nv
Y2tfbm9fc2VuZG1zZyBzbXBfZDg2YmI5MTUKI2RlZmluZSBzb2NrX25vX3NlbmRtc2cgX3NldF92
ZXIoc29ja19ub19zZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVjdm1zZyBzbXBfMTRm
MjU1ZDcKI2RlZmluZSBzb2NrX25vX3JlY3Ztc2cgX3NldF92ZXIoc29ja19ub19yZWN2bXNnKQoj
ZGVmaW5lIF9fdmVyX3NvY2tfbm9fbW1hcCBzbXBfYzU3MjMzYTYKI2RlZmluZSBzb2NrX25vX21t
YXAgX3NldF92ZXIoc29ja19ub19tbWFwKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2VuZHBhZ2Ug
c21wXzRkNDlkNjhiCiNkZWZpbmUgc29ja19ub19zZW5kcGFnZSBfc2V0X3Zlcihzb2NrX25vX3Nl
bmRwYWdlKQojZGVmaW5lIF9fdmVyX3NvY2tfcmZyZWUgc21wX2YxMzUyNjRlCiNkZWZpbmUgc29j
a19yZnJlZSBfc2V0X3Zlcihzb2NrX3JmcmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2ZyZWUgc21w
XzI2NTVhNGMzCiNkZWZpbmUgc29ja193ZnJlZSBfc2V0X3Zlcihzb2NrX3dmcmVlKQojZGVmaW5l
IF9fdmVyX3NvY2tfd21hbGxvYyBzbXBfMGFlMjliNDkKI2RlZmluZSBzb2NrX3dtYWxsb2MgX3Nl
dF92ZXIoc29ja193bWFsbG9jKQojZGVmaW5lIF9fdmVyX3NvY2tfcm1hbGxvYyBzbXBfMGRkMTk0
MjcKI2RlZmluZSBzb2NrX3JtYWxsb2MgX3NldF92ZXIoc29ja19ybWFsbG9jKQojZGVmaW5lIF9f
dmVyX3NrYl9saW5lYXJpemUgc21wXzdjNDYyZjNlCiNkZWZpbmUgc2tiX2xpbmVhcml6ZSBfc2V0
X3Zlcihza2JfbGluZWFyaXplKQojZGVmaW5lIF9fdmVyX3NrYl9jaGVja3N1bSBzbXBfZGE1YWJh
ZDIKI2RlZmluZSBza2JfY2hlY2tzdW0gX3NldF92ZXIoc2tiX2NoZWNrc3VtKQojZGVmaW5lIF9f
dmVyX3NrYl9jaGVja3N1bV9oZWxwIHNtcF83ZGZmMTM1YwojZGVmaW5lIHNrYl9jaGVja3N1bV9o
ZWxwIF9zZXRfdmVyKHNrYl9jaGVja3N1bV9oZWxwKQojZGVmaW5lIF9fdmVyX3NrYl9yZWN2X2Rh
dGFncmFtIHNtcF9mNDZjNmI2MwojZGVmaW5lIHNrYl9yZWN2X2RhdGFncmFtIF9zZXRfdmVyKHNr
Yl9yZWN2X2RhdGFncmFtKQojZGVmaW5lIF9fdmVyX3NrYl9mcmVlX2RhdGFncmFtIHNtcF8zNTUz
ZmU2MAojZGVmaW5lIHNrYl9mcmVlX2RhdGFncmFtIF9zZXRfdmVyKHNrYl9mcmVlX2RhdGFncmFt
KQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2RhdGFncmFtIHNtcF83Y2Q3NDE0MAojZGVmaW5lIHNr
Yl9jb3B5X2RhdGFncmFtIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtKQojZGVmaW5lIF9fdmVy
X3NrYl9jb3B5X2RhdGFncmFtX2lvdmVjIHNtcF84NjdjZjQ5MgojZGVmaW5lIHNrYl9jb3B5X2Rh
dGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9f
dmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIHNtcF81NzQxOWM3OQojZGVmaW5l
IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2FuZF9j
c3VtX2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2JpdHMgc21wX2E1NWM4
NDdiCiNkZWZpbmUgc2tiX2NvcHlfYml0cyBfc2V0X3Zlcihza2JfY29weV9iaXRzKQojZGVmaW5l
IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2JpdHMgc21wX2FmODc3NzE5CiNkZWZpbmUgc2tiX2Nv
cHlfYW5kX2NzdW1fYml0cyBfc2V0X3Zlcihza2JfY29weV9hbmRfY3N1bV9iaXRzKQojZGVmaW5l
IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RldiBzbXBfZjA4ZmEwMGUKI2RlZmluZSBza2JfY29w
eV9hbmRfY3N1bV9kZXYgX3NldF92ZXIoc2tiX2NvcHlfYW5kX2NzdW1fZGV2KQojZGVmaW5lIF9f
dmVyX3NrYl9jb3B5X2V4cGFuZCBzbXBfNmI3YTYzNmMKI2RlZmluZSBza2JfY29weV9leHBhbmQg
X3NldF92ZXIoc2tiX2NvcHlfZXhwYW5kKQojZGVmaW5lIF9fdmVyX19fX3Bza2JfdHJpbSBzbXBf
ZjdjM2NmMjMKI2RlZmluZSBfX19wc2tiX3RyaW0gX3NldF92ZXIoX19fcHNrYl90cmltKQojZGVm
aW5lIF9fdmVyX19fcHNrYl9wdWxsX3RhaWwgc21wX2NhZjcyNjg4CiNkZWZpbmUgX19wc2tiX3B1
bGxfdGFpbCBfc2V0X3ZlcihfX3Bza2JfcHVsbF90YWlsKQojZGVmaW5lIF9fdmVyX3Bza2JfZXhw
YW5kX2hlYWQgc21wX2IzYTRhOGNhCiNkZWZpbmUgcHNrYl9leHBhbmRfaGVhZCBfc2V0X3Zlcihw
c2tiX2V4cGFuZF9oZWFkKQojZGVmaW5lIF9fdmVyX3Bza2JfY29weSBzbXBfM2YzN2QwNDEKI2Rl
ZmluZSBwc2tiX2NvcHkgX3NldF92ZXIocHNrYl9jb3B5KQojZGVmaW5lIF9fdmVyX3NrYl9yZWFs
bG9jX2hlYWRyb29tIHNtcF9iOTM3NmFmMQojZGVmaW5lIHNrYl9yZWFsbG9jX2hlYWRyb29tIF9z
ZXRfdmVyKHNrYl9yZWFsbG9jX2hlYWRyb29tKQojZGVmaW5lIF9fdmVyX2RhdGFncmFtX3BvbGwg
c21wX2ViMDNjMzkyCiNkZWZpbmUgZGF0YWdyYW1fcG9sbCBfc2V0X3ZlcihkYXRhZ3JhbV9wb2xs
KQojZGVmaW5lIF9fdmVyX3B1dF9jbXNnIHNtcF80M2VjOTEzYQojZGVmaW5lIHB1dF9jbXNnIF9z
ZXRfdmVyKHB1dF9jbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfa21hbGxvYyBzbXBfMGFhNjY4OTcK
I2RlZmluZSBzb2NrX2ttYWxsb2MgX3NldF92ZXIoc29ja19rbWFsbG9jKQojZGVmaW5lIF9fdmVy
X3NvY2tfa2ZyZWVfcyBzbXBfMzJlM2EyZTkKI2RlZmluZSBzb2NrX2tmcmVlX3MgX3NldF92ZXIo
c29ja19rZnJlZV9zKQojZGVmaW5lIF9fdmVyX3NrX3J1bl9maWx0ZXIgc21wXzAxZDRiMTczCiNk
ZWZpbmUgc2tfcnVuX2ZpbHRlciBfc2V0X3Zlcihza19ydW5fZmlsdGVyKQojZGVmaW5lIF9fdmVy
X3NrX2Noa19maWx0ZXIgc21wXzUzYzA3NjdjCiNkZWZpbmUgc2tfY2hrX2ZpbHRlciBfc2V0X3Zl
cihza19jaGtfZmlsdGVyKQojZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2luaXQgc21wXzJlMmNj
ZjVmCiNkZWZpbmUgbmVpZ2hfdGFibGVfaW5pdCBfc2V0X3ZlcihuZWlnaF90YWJsZV9pbml0KQoj
ZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2NsZWFyIHNtcF8wOTYwNWQ2NQojZGVmaW5lIG5laWdo
X3RhYmxlX2NsZWFyIF9zZXRfdmVyKG5laWdoX3RhYmxlX2NsZWFyKQojZGVmaW5lIF9fdmVyX25l
aWdoX3Jlc29sdmVfb3V0cHV0IHNtcF85OTQwOTNjMQojZGVmaW5lIG5laWdoX3Jlc29sdmVfb3V0
cHV0IF9zZXRfdmVyKG5laWdoX3Jlc29sdmVfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX2Nv
bm5lY3RlZF9vdXRwdXQgc21wXzViMGZhMzc1CiNkZWZpbmUgbmVpZ2hfY29ubmVjdGVkX291dHB1
dCBfc2V0X3ZlcihuZWlnaF9jb25uZWN0ZWRfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX3Vw
ZGF0ZSBzbXBfZWUxN2FlYmMKI2RlZmluZSBuZWlnaF91cGRhdGUgX3NldF92ZXIobmVpZ2hfdXBk
YXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2NyZWF0ZSBzbXBfMzAyZDdhMWEKI2RlZmluZSBuZWln
aF9jcmVhdGUgX3NldF92ZXIobmVpZ2hfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2xvb2t1
cCBzbXBfMzljM2ExNWYKI2RlZmluZSBuZWlnaF9sb29rdXAgX3NldF92ZXIobmVpZ2hfbG9va3Vw
KQojZGVmaW5lIF9fdmVyX19fbmVpZ2hfZXZlbnRfc2VuZCBzbXBfNWRkMmFkMTkKI2RlZmluZSBf
X25laWdoX2V2ZW50X3NlbmQgX3NldF92ZXIoX19uZWlnaF9ldmVudF9zZW5kKQojZGVmaW5lIF9f
dmVyX25laWdoX2V2ZW50X25zIHNtcF85YTg2YWY1OQojZGVmaW5lIG5laWdoX2V2ZW50X25zIF9z
ZXRfdmVyKG5laWdoX2V2ZW50X25zKQojZGVmaW5lIF9fdmVyX25laWdoX2lmZG93biBzbXBfYTA4
MDViNzUKI2RlZmluZSBuZWlnaF9pZmRvd24gX3NldF92ZXIobmVpZ2hfaWZkb3duKQojZGVmaW5l
IF9fdmVyX25laWdoX3N5c2N0bF9yZWdpc3RlciBzbXBfZDE5YzQyNWYKI2RlZmluZSBuZWlnaF9z
eXNjdGxfcmVnaXN0ZXIgX3NldF92ZXIobmVpZ2hfc3lzY3RsX3JlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX3BuZWlnaF9sb29rdXAgc21wX2RmNWRmNjA3CiNkZWZpbmUgcG5laWdoX2xvb2t1cCBfc2V0
X3ZlcihwbmVpZ2hfbG9va3VwKQojZGVmaW5lIF9fdmVyX3BuZWlnaF9lbnF1ZXVlIHNtcF80ZmRk
NWZiYQojZGVmaW5lIHBuZWlnaF9lbnF1ZXVlIF9zZXRfdmVyKHBuZWlnaF9lbnF1ZXVlKQojZGVm
aW5lIF9fdmVyX25laWdoX2Rlc3Ryb3kgc21wXzk5MWJiNWYwCiNkZWZpbmUgbmVpZ2hfZGVzdHJv
eSBfc2V0X3ZlcihuZWlnaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX2FsbG9j
IHNtcF9iNjI3OTYxYwojZGVmaW5lIG5laWdoX3Bhcm1zX2FsbG9jIF9zZXRfdmVyKG5laWdoX3Bh
cm1zX2FsbG9jKQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX3JlbGVhc2Ugc21wXzMxNGMwYzcz
CiNkZWZpbmUgbmVpZ2hfcGFybXNfcmVsZWFzZSBfc2V0X3ZlcihuZWlnaF9wYXJtc19yZWxlYXNl
KQojZGVmaW5lIF9fdmVyX25laWdoX3JhbmRfcmVhY2hfdGltZSBzbXBfNDE4OGQ0MzkKI2RlZmlu
ZSBuZWlnaF9yYW5kX3JlYWNoX3RpbWUgX3NldF92ZXIobmVpZ2hfcmFuZF9yZWFjaF90aW1lKQoj
ZGVmaW5lIF9fdmVyX25laWdoX2NvbXBhdF9vdXRwdXQgc21wXzllOGY3MWE2CiNkZWZpbmUgbmVp
Z2hfY29tcGF0X291dHB1dCBfc2V0X3ZlcihuZWlnaF9jb21wYXRfb3V0cHV0KQojZGVmaW5lIF9f
dmVyX2RzdF9hbGxvYyBzbXBfNjM2YTY5ZWMKI2RlZmluZSBkc3RfYWxsb2MgX3NldF92ZXIoZHN0
X2FsbG9jKQojZGVmaW5lIF9fdmVyX19fZHN0X2ZyZWUgc21wX2UyYzRlZDg3CiNkZWZpbmUgX19k
c3RfZnJlZSBfc2V0X3ZlcihfX2RzdF9mcmVlKQojZGVmaW5lIF9fdmVyX2RzdF9kZXN0cm95IHNt
cF8xOTg5MTIxYgojZGVmaW5lIGRzdF9kZXN0cm95IF9zZXRfdmVyKGRzdF9kZXN0cm95KQojZGVm
aW5lIF9fdmVyX25ldF9yYXRlbGltaXQgc21wX2Y2ZWJjMDNiCiNkZWZpbmUgbmV0X3JhdGVsaW1p
dCBfc2V0X3ZlcihuZXRfcmF0ZWxpbWl0KQojZGVmaW5lIF9fdmVyX25ldF9yYW5kb20gc21wXzFj
NjZmNjRjCiNkZWZpbmUgbmV0X3JhbmRvbSBfc2V0X3ZlcihuZXRfcmFuZG9tKQojZGVmaW5lIF9f
dmVyX25ldF9zcmFuZG9tIHNtcF9mZjk2M2VkOAojZGVmaW5lIG5ldF9zcmFuZG9tIF9zZXRfdmVy
KG5ldF9zcmFuZG9tKQojZGVmaW5lIF9fdmVyX19fc2NtX2Rlc3Ryb3kgc21wX2EwM2UxNTJmCiNk
ZWZpbmUgX19zY21fZGVzdHJveSBfc2V0X3ZlcihfX3NjbV9kZXN0cm95KQojZGVmaW5lIF9fdmVy
X19fc2NtX3NlbmQgc21wXzQyY2IzZDI4CiNkZWZpbmUgX19zY21fc2VuZCBfc2V0X3ZlcihfX3Nj
bV9zZW5kKQojZGVmaW5lIF9fdmVyX3NjbV9mcF9kdXAgc21wXzIyOTNjNThjCiNkZWZpbmUgc2Nt
X2ZwX2R1cCBfc2V0X3ZlcihzY21fZnBfZHVwKQojZGVmaW5lIF9fdmVyX2ZpbGVzX3N0YXQgc21w
XzAzY2FkYTI3CiNkZWZpbmUgZmlsZXNfc3RhdCBfc2V0X3ZlcihmaWxlc19zdGF0KQojZGVmaW5l
IF9fdmVyX21lbWNweV90b2lvdmVjIHNtcF8yODc2YTZkMwojZGVmaW5lIG1lbWNweV90b2lvdmVj
IF9zZXRfdmVyKG1lbWNweV90b2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrbGlzdF9kZXN0cm95X3Nv
Y2tldCBzbXBfMzVlOTU5NDYKI2RlZmluZSBza2xpc3RfZGVzdHJveV9zb2NrZXQgX3NldF92ZXIo
c2tsaXN0X2Rlc3Ryb3lfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9pbnNlcnRfc29ja2V0
IHNtcF8xNDNjOWMwNAojZGVmaW5lIHNrbGlzdF9pbnNlcnRfc29ja2V0IF9zZXRfdmVyKHNrbGlz
dF9pbnNlcnRfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NjbV9kZXRhY2hfZmRzIHNtcF81NWMwN2Uw
NwojZGVmaW5lIHNjbV9kZXRhY2hfZmRzIF9zZXRfdmVyKHNjbV9kZXRhY2hfZmRzKQojZGVmaW5l
IF9fdmVyX2luZXRkZXZfbG9jayBzbXBfZGVlZDVkMzIKI2RlZmluZSBpbmV0ZGV2X2xvY2sgX3Nl
dF92ZXIoaW5ldGRldl9sb2NrKQojZGVmaW5lIF9fdmVyX2luZXRfYWRkX3Byb3RvY29sIHNtcF80
YzU4ZTI0NgojZGVmaW5lIGluZXRfYWRkX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfYWRkX3Byb3Rv
Y29sKQojZGVmaW5lIF9fdmVyX2luZXRfZGVsX3Byb3RvY29sIHNtcF8xODYxNGQ3ZQojZGVmaW5l
IGluZXRfZGVsX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfZGVsX3Byb3RvY29sKQojZGVmaW5lIF9f
dmVyX2luZXRfcmVnaXN0ZXJfcHJvdG9zdyBzbXBfYzgwMDlkZTMKI2RlZmluZSBpbmV0X3JlZ2lz
dGVyX3Byb3Rvc3cgX3NldF92ZXIoaW5ldF9yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9fdmVy
X2luZXRfdW5yZWdpc3Rlcl9wcm90b3N3IHNtcF8zYTYyNTI0MAojZGVmaW5lIGluZXRfdW5yZWdp
c3Rlcl9wcm90b3N3IF9zZXRfdmVyKGluZXRfdW5yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9f
dmVyX2lwX3JvdXRlX291dHB1dF9rZXkgc21wX2I1MmIyODE2CiNkZWZpbmUgaXBfcm91dGVfb3V0
cHV0X2tleSBfc2V0X3ZlcihpcF9yb3V0ZV9vdXRwdXRfa2V5KQojZGVmaW5lIF9fdmVyX2lwX3Jv
dXRlX2lucHV0IHNtcF85MzBlNmJmOQojZGVmaW5lIGlwX3JvdXRlX2lucHV0IF9zZXRfdmVyKGlw
X3JvdXRlX2lucHV0KQojZGVmaW5lIF9fdmVyX2ljbXBfc2VuZCBzbXBfODE2OWJiZDAKI2RlZmlu
ZSBpY21wX3NlbmQgX3NldF92ZXIoaWNtcF9zZW5kKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNf
Y29tcGlsZSBzbXBfYTcwMzE3NDMKI2RlZmluZSBpcF9vcHRpb25zX2NvbXBpbGUgX3NldF92ZXIo
aXBfb3B0aW9uc19jb21waWxlKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNfdW5kbyBzbXBfOTcy
MWYxMmYKI2RlZmluZSBpcF9vcHRpb25zX3VuZG8gX3NldF92ZXIoaXBfb3B0aW9uc191bmRvKQoj
ZGVmaW5lIF9fdmVyX2FycF9zZW5kIHNtcF82Y2ZhMTMxNgojZGVmaW5lIGFycF9zZW5kIF9zZXRf
dmVyKGFycF9zZW5kKQojZGVmaW5lIF9fdmVyX2FycF9icm9rZW5fb3BzIHNtcF81YTBhZTBiZAoj
ZGVmaW5lIGFycF9icm9rZW5fb3BzIF9zZXRfdmVyKGFycF9icm9rZW5fb3BzKQojZGVmaW5lIF9f
dmVyX19faXBfc2VsZWN0X2lkZW50IHNtcF81ZjQzODM3MwojZGVmaW5lIF9faXBfc2VsZWN0X2lk
ZW50IF9zZXRfdmVyKF9faXBfc2VsZWN0X2lkZW50KQojZGVmaW5lIF9fdmVyX2lwX3NlbmRfY2hl
Y2sgc21wX2EzN2I3NDQxCiNkZWZpbmUgaXBfc2VuZF9jaGVjayBfc2V0X3ZlcihpcF9zZW5kX2No
ZWNrKQojZGVmaW5lIF9fdmVyX2lwX2ZyYWdtZW50IHNtcF9iMmRkNTZmMgojZGVmaW5lIGlwX2Zy
YWdtZW50IF9zZXRfdmVyKGlwX2ZyYWdtZW50KQojZGVmaW5lIF9fdmVyX2luZXRfZmFtaWx5X29w
cyBzbXBfNzkzNmJiNDcKI2RlZmluZSBpbmV0X2ZhbWlseV9vcHMgX3NldF92ZXIoaW5ldF9mYW1p
bHlfb3BzKQojZGVmaW5lIF9fdmVyX2luX2F0b24gc21wXzgzZTBhMTYyCiNkZWZpbmUgaW5fYXRv
biBfc2V0X3Zlcihpbl9hdG9uKQojZGVmaW5lIF9fdmVyX2lwX21jX2luY19ncm91cCBzbXBfOTg1
NWI2ZDMKI2RlZmluZSBpcF9tY19pbmNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfaW5jX2dyb3VwKQoj
ZGVmaW5lIF9fdmVyX2lwX21jX2RlY19ncm91cCBzbXBfODdmNDQyZjQKI2RlZmluZSBpcF9tY19k
ZWNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfZGVjX2dyb3VwKQojZGVmaW5lIF9fdmVyX2lwX2Zpbmlz
aF9vdXRwdXQgc21wXzgwZDJlNDEyCiNkZWZpbmUgaXBfZmluaXNoX291dHB1dCBfc2V0X3Zlcihp
cF9maW5pc2hfb3V0cHV0KQojZGVmaW5lIF9fdmVyX2luZXRfc3RyZWFtX29wcyBzbXBfZjExNzFj
OTUKI2RlZmluZSBpbmV0X3N0cmVhbV9vcHMgX3NldF92ZXIoaW5ldF9zdHJlYW1fb3BzKQojZGVm
aW5lIF9fdmVyX2luZXRfZGdyYW1fb3BzIHNtcF9mYWQ5MDMxZAojZGVmaW5lIGluZXRfZGdyYW1f
b3BzIF9zZXRfdmVyKGluZXRfZGdyYW1fb3BzKQojZGVmaW5lIF9fdmVyX2lwX2Ntc2dfcmVjdiBz
bXBfOWRhYWM3OTIKI2RlZmluZSBpcF9jbXNnX3JlY3YgX3NldF92ZXIoaXBfY21zZ19yZWN2KQoj
ZGVmaW5lIF9fdmVyX2luZXRfYWRkcl90eXBlIHNtcF85ZjgxOTdkYgojZGVmaW5lIGluZXRfYWRk
cl90eXBlIF9zZXRfdmVyKGluZXRfYWRkcl90eXBlKQojZGVmaW5lIF9fdmVyX2luZXRfc2VsZWN0
X2FkZHIgc21wX2FlNTFmMGU3CiNkZWZpbmUgaW5ldF9zZWxlY3RfYWRkciBfc2V0X3ZlcihpbmV0
X3NlbGVjdF9hZGRyKQojZGVmaW5lIF9fdmVyX2lwX2Rldl9maW5kIHNtcF9hNWQ1ODg5ZAojZGVm
aW5lIGlwX2Rldl9maW5kIF9zZXRfdmVyKGlwX2Rldl9maW5kKQojZGVmaW5lIF9fdmVyX2luZXRk
ZXZfYnlfaW5kZXggc21wXzEzYjY5YmQ5CiNkZWZpbmUgaW5ldGRldl9ieV9pbmRleCBfc2V0X3Zl
cihpbmV0ZGV2X2J5X2luZGV4KQojZGVmaW5lIF9fdmVyX2luX2Rldl9maW5pc2hfZGVzdHJveSBz
bXBfYzgwOTU5ZTIKI2RlZmluZSBpbl9kZXZfZmluaXNoX2Rlc3Ryb3kgX3NldF92ZXIoaW5fZGV2
X2ZpbmlzaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX2lwX2RlZnJhZyBzbXBfM2Y3NmYwM2YKI2Rl
ZmluZSBpcF9kZWZyYWcgX3NldF92ZXIoaXBfZGVmcmFnKQojZGVmaW5lIF9fdmVyX2lwX3J0X2lv
Y3RsIHNtcF85NDIwOGU4NAojZGVmaW5lIGlwX3J0X2lvY3RsIF9zZXRfdmVyKGlwX3J0X2lvY3Rs
KQojZGVmaW5lIF9fdmVyX2RldmluZXRfaW9jdGwgc21wXzg2OWM4MGVhCiNkZWZpbmUgZGV2aW5l
dF9pb2N0bCBfc2V0X3ZlcihkZXZpbmV0X2lvY3RsKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2lu
ZXRhZGRyX25vdGlmaWVyIHNtcF8zZTQ1ZTlmZgojZGVmaW5lIHJlZ2lzdGVyX2luZXRhZGRyX25v
dGlmaWVyIF9zZXRfdmVyKHJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKQojZGVmaW5lIF9fdmVy
X3VucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIgc21wXzc2MGI0MzdhCiNkZWZpbmUgdW5yZWdp
c3Rlcl9pbmV0YWRkcl9ub3RpZmllciBfc2V0X3Zlcih1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlm
aWVyKQojZGVmaW5lIF9fdmVyX2lwX3N0YXRpc3RpY3Mgc21wX2Y2MGZjM2U2CiNkZWZpbmUgaXBf
c3RhdGlzdGljcyBfc2V0X3ZlcihpcF9zdGF0aXN0aWNzKQojZGVmaW5lIF9fdmVyX25ldGxpbmtf
c2V0X2VyciBzbXBfMjAyNjJmZGIKI2RlZmluZSBuZXRsaW5rX3NldF9lcnIgX3NldF92ZXIobmV0
bGlua19zZXRfZXJyKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYnJvYWRjYXN0IHNtcF81YTY1M2Vl
ZQojZGVmaW5lIG5ldGxpbmtfYnJvYWRjYXN0IF9zZXRfdmVyKG5ldGxpbmtfYnJvYWRjYXN0KQoj
ZGVmaW5lIF9fdmVyX25ldGxpbmtfdW5pY2FzdCBzbXBfYWMxOTY3MmUKI2RlZmluZSBuZXRsaW5r
X3VuaWNhc3QgX3NldF92ZXIobmV0bGlua191bmljYXN0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtf
a2VybmVsX2NyZWF0ZSBzbXBfNDI1ZmY0MzIKI2RlZmluZSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUg
X3NldF92ZXIobmV0bGlua19rZXJuZWxfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfZHVt
cF9zdGFydCBzbXBfN2IxZGE2YjYKI2RlZmluZSBuZXRsaW5rX2R1bXBfc3RhcnQgX3NldF92ZXIo
bmV0bGlua19kdW1wX3N0YXJ0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYWNrIHNtcF81ZmViMmJk
YQojZGVmaW5lIG5ldGxpbmtfYWNrIF9zZXRfdmVyKG5ldGxpbmtfYWNrKQojZGVmaW5lIF9fdmVy
X3J0YXR0cl9wYXJzZSBzbXBfZTQ5NDE0ZTkKI2RlZmluZSBydGF0dHJfcGFyc2UgX3NldF92ZXIo
cnRhdHRyX3BhcnNlKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19saW5rcyBzbXBfNzE3M2U0MmMK
I2RlZmluZSBydG5ldGxpbmtfbGlua3MgX3NldF92ZXIocnRuZXRsaW5rX2xpbmtzKQojZGVmaW5l
IF9fdmVyX19fcnRhX2ZpbGwgc21wX2Y2MGZkMjFmCiNkZWZpbmUgX19ydGFfZmlsbCBfc2V0X3Zl
cihfX3J0YV9maWxsKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19kdW1wX2lmaW5mbyBzbXBfMTU2
YjRlZjAKI2RlZmluZSBydG5ldGxpbmtfZHVtcF9pZmluZm8gX3NldF92ZXIocnRuZXRsaW5rX2R1
bXBfaWZpbmZvKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19wdXRfbWV0cmljcyBzbXBfYmE4MmRj
ZDkKI2RlZmluZSBydG5ldGxpbmtfcHV0X21ldHJpY3MgX3NldF92ZXIocnRuZXRsaW5rX3B1dF9t
ZXRyaWNzKQojZGVmaW5lIF9fdmVyX3J0bmwgc21wX2Q4MDE4OGI4CiNkZWZpbmUgcnRubCBfc2V0
X3ZlcihydG5sKQojZGVmaW5lIF9fdmVyX25laWdoX2RlbGV0ZSBzbXBfYjdmNmM5Y2MKI2RlZmlu
ZSBuZWlnaF9kZWxldGUgX3NldF92ZXIobmVpZ2hfZGVsZXRlKQojZGVmaW5lIF9fdmVyX25laWdo
X2FkZCBzbXBfNWNlNDZlYWMKI2RlZmluZSBuZWlnaF9hZGQgX3NldF92ZXIobmVpZ2hfYWRkKQoj
ZGVmaW5lIF9fdmVyX25laWdoX2R1bXBfaW5mbyBzbXBfMDZiYjlkYjUKI2RlZmluZSBuZWlnaF9k
dW1wX2luZm8gX3NldF92ZXIobmVpZ2hfZHVtcF9pbmZvKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRf
YWxsbXVsdGkgc21wXzEyMmI2MjJhCiNkZWZpbmUgZGV2X3NldF9hbGxtdWx0aSBfc2V0X3Zlcihk
ZXZfc2V0X2FsbG11bHRpKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRfcHJvbWlzY3VpdHkgc21wX2Mz
YzliMTA0CiNkZWZpbmUgZGV2X3NldF9wcm9taXNjdWl0eSBfc2V0X3ZlcihkZXZfc2V0X3Byb21p
c2N1aXR5KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9yZW1vdmVfc29ja2V0IHNtcF81NzIxMTA2NQoj
ZGVmaW5lIHNrbGlzdF9yZW1vdmVfc29ja2V0IF9zZXRfdmVyKHNrbGlzdF9yZW1vdmVfc29ja2V0
KQojZGVmaW5lIF9fdmVyX3J0bmxfc2VtIHNtcF8zMzIyZWIzYQojZGVmaW5lIHJ0bmxfc2VtIF9z
ZXRfdmVyKHJ0bmxfc2VtKQojZGVmaW5lIF9fdmVyX3J0bmxfbG9jayBzbXBfYzdhNGZiZWQKI2Rl
ZmluZSBydG5sX2xvY2sgX3NldF92ZXIocnRubF9sb2NrKQojZGVmaW5lIF9fdmVyX3J0bmxfdW5s
b2NrIHNtcF82ZTcyMGZmMgojZGVmaW5lIHJ0bmxfdW5sb2NrIF9zZXRfdmVyKHJ0bmxfdW5sb2Nr
KQojZGVmaW5lIF9fdmVyX2lwdjRfY29uZmlnIHNtcF8yNmI5OTc4MgojZGVmaW5lIGlwdjRfY29u
ZmlnIF9zZXRfdmVyKGlwdjRfY29uZmlnKQojZGVmaW5lIF9fdmVyX2Rldl9vcGVuIHNtcF9mZTcy
ZGZmZQojZGVmaW5lIGRldl9vcGVuIF9zZXRfdmVyKGRldl9vcGVuKQojZGVmaW5lIF9fdmVyX2lu
X250b2Egc21wXzIwY2U0OTFiCiNkZWZpbmUgaW5fbnRvYSBfc2V0X3Zlcihpbl9udG9hKQojZGVm
aW5lIF9fdmVyX3hybGltX2FsbG93IHNtcF8zYzI1MDg3YwojZGVmaW5lIHhybGltX2FsbG93IF9z
ZXRfdmVyKHhybGltX2FsbG93KQojZGVmaW5lIF9fdmVyX2lwX3JjdiBzbXBfZmVmYWQ2ZjUKI2Rl
ZmluZSBpcF9yY3YgX3NldF92ZXIoaXBfcmN2KQojZGVmaW5lIF9fdmVyX2FycF9yY3Ygc21wX2Ni
OWJlZmRjCiNkZWZpbmUgYXJwX3JjdiBfc2V0X3ZlcihhcnBfcmN2KQojZGVmaW5lIF9fdmVyX2Fy
cF90Ymwgc21wXzJjMWY2NTgxCiNkZWZpbmUgYXJwX3RibCBfc2V0X3ZlcihhcnBfdGJsKQojZGVm
aW5lIF9fdmVyX2FycF9maW5kIHNtcF9hYmRkYzM0OAojZGVmaW5lIGFycF9maW5kIF9zZXRfdmVy
KGFycF9maW5kKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllciBzbXBf
NjNlY2FkNTMKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIgX3NldF92ZXIocmVn
aXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2
aWNlX25vdGlmaWVyIHNtcF9mZTc2OTQ1NgojZGVmaW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25v
dGlmaWVyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9f
dmVyX2xvb3BiYWNrX2RldiBzbXBfMzEwN2I3ZDgKI2RlZmluZSBsb29wYmFja19kZXYgX3NldF92
ZXIobG9vcGJhY2tfZGV2KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZSBzbXBfZGE1
YjM0NWQKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2UgX3NldF92ZXIocmVnaXN0ZXJfbmV0ZGV2
aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2aWNlIHNtcF9iZGU0ZWVlZQojZGVm
aW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlKQoj
ZGVmaW5lIF9fdmVyX25ldGRldl9zdGF0ZV9jaGFuZ2Ugc21wXzFlOTExNzdjCiNkZWZpbmUgbmV0
ZGV2X3N0YXRlX2NoYW5nZSBfc2V0X3ZlcihuZXRkZXZfc3RhdGVfY2hhbmdlKQojZGVmaW5lIF9f
dmVyX2Rldl9uZXdfaW5kZXggc21wXzhmZGRjODRjCiNkZWZpbmUgZGV2X25ld19pbmRleCBfc2V0
X3ZlcihkZXZfbmV3X2luZGV4KQojZGVmaW5lIF9fdmVyX2Rldl9nZXRfYnlfaW5kZXggc21wXzMy
MzNiN2M0CiNkZWZpbmUgZGV2X2dldF9ieV9pbmRleCBfc2V0X3ZlcihkZXZfZ2V0X2J5X2luZGV4
KQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9pbmRleCBzbXBfNzMwZTA4ZGQKI2RlZmluZSBf
X2Rldl9nZXRfYnlfaW5kZXggX3NldF92ZXIoX19kZXZfZ2V0X2J5X2luZGV4KQojZGVmaW5lIF9f
dmVyX2Rldl9nZXRfYnlfbmFtZSBzbXBfNDVhMGI3Y2IKI2RlZmluZSBkZXZfZ2V0X2J5X25hbWUg
X3NldF92ZXIoZGV2X2dldF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9uYW1l
IHNtcF8yZDFlYzcwOAojZGVmaW5lIF9fZGV2X2dldF9ieV9uYW1lIF9zZXRfdmVyKF9fZGV2X2dl
dF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX25ldGRldl9maW5pc2hfdW5yZWdpc3RlciBzbXBfMWZm
YTE4MmEKI2RlZmluZSBuZXRkZXZfZmluaXNoX3VucmVnaXN0ZXIgX3NldF92ZXIobmV0ZGV2X2Zp
bmlzaF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX25ldGRldl9zZXRfbWFzdGVyIHNtcF9jOTBk
NTFkYgojZGVmaW5lIG5ldGRldl9zZXRfbWFzdGVyIF9zZXRfdmVyKG5ldGRldl9zZXRfbWFzdGVy
KQojZGVmaW5lIF9fdmVyX2V0aF90eXBlX3RyYW5zIHNtcF85NDg1N2ZkNAojZGVmaW5lIGV0aF90
eXBlX3RyYW5zIF9zZXRfdmVyKGV0aF90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2FsbG9jX3Nr
YiBzbXBfNDcwM2ZhM2MKI2RlZmluZSBhbGxvY19za2IgX3NldF92ZXIoYWxsb2Nfc2tiKQojZGVm
aW5lIF9fdmVyX19fa2ZyZWVfc2tiIHNtcF81ZjBkYzdlYQojZGVmaW5lIF9fa2ZyZWVfc2tiIF9z
ZXRfdmVyKF9fa2ZyZWVfc2tiKQojZGVmaW5lIF9fdmVyX3NrYl9jbG9uZSBzbXBfMzU3ZTllNjIK
I2RlZmluZSBza2JfY2xvbmUgX3NldF92ZXIoc2tiX2Nsb25lKQojZGVmaW5lIF9fdmVyX3NrYl9j
b3B5IHNtcF8wN2VlOTdhMQojZGVmaW5lIHNrYl9jb3B5IF9zZXRfdmVyKHNrYl9jb3B5KQojZGVm
aW5lIF9fdmVyX25ldGlmX3J4IHNtcF9lMTNmZjljOAojZGVmaW5lIG5ldGlmX3J4IF9zZXRfdmVy
KG5ldGlmX3J4KQojZGVmaW5lIF9fdmVyX2Rldl9hZGRfcGFjayBzbXBfN2M1NzhmODMKI2RlZmlu
ZSBkZXZfYWRkX3BhY2sgX3NldF92ZXIoZGV2X2FkZF9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9y
ZW1vdmVfcGFjayBzbXBfYjgyNjkwYmMKI2RlZmluZSBkZXZfcmVtb3ZlX3BhY2sgX3NldF92ZXIo
ZGV2X3JlbW92ZV9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9nZXQgc21wXzc5MjU5ZmJjCiNkZWZp
bmUgZGV2X2dldCBfc2V0X3ZlcihkZXZfZ2V0KQojZGVmaW5lIF9fdmVyX2Rldl9hbGxvYyBzbXBf
NDE1MjE2N2YKI2RlZmluZSBkZXZfYWxsb2MgX3NldF92ZXIoZGV2X2FsbG9jKQojZGVmaW5lIF9f
dmVyX2Rldl9hbGxvY19uYW1lIHNtcF8yNDU3MjAxZQojZGVmaW5lIGRldl9hbGxvY19uYW1lIF9z
ZXRfdmVyKGRldl9hbGxvY19uYW1lKQojZGVmaW5lIF9fdmVyX19fbmV0ZGV2X3dhdGNoZG9nX3Vw
IHNtcF84YThmNjQzNgojZGVmaW5lIF9fbmV0ZGV2X3dhdGNoZG9nX3VwIF9zZXRfdmVyKF9fbmV0
ZGV2X3dhdGNoZG9nX3VwKQojZGVmaW5lIF9fdmVyX2Rldl9sb2FkIHNtcF9hOTBmZDNiNwojZGVm
aW5lIGRldl9sb2FkIF9zZXRfdmVyKGRldl9sb2FkKQojZGVmaW5lIF9fdmVyX2Rldl9pb2N0bCBz
bXBfMzg3Yzc4YTUKI2RlZmluZSBkZXZfaW9jdGwgX3NldF92ZXIoZGV2X2lvY3RsKQojZGVmaW5l
IF9fdmVyX2Rldl9xdWV1ZV94bWl0IHNtcF9jMWU4MjY2MAojZGVmaW5lIGRldl9xdWV1ZV94bWl0
IF9zZXRfdmVyKGRldl9xdWV1ZV94bWl0KQojZGVmaW5lIF9fdmVyX2Rldl9iYXNlIHNtcF82Yzky
MTA5NwojZGVmaW5lIGRldl9iYXNlIF9zZXRfdmVyKGRldl9iYXNlKQojZGVmaW5lIF9fdmVyX2Rl
dl9iYXNlX2xvY2sgc21wXzI5NmEyOWQxCiNkZWZpbmUgZGV2X2Jhc2VfbG9jayBfc2V0X3Zlcihk
ZXZfYmFzZV9sb2NrKQojZGVmaW5lIF9fdmVyX2Rldl9jbG9zZSBzbXBfNWE2MTVkYTEKI2RlZmlu
ZSBkZXZfY2xvc2UgX3NldF92ZXIoZGV2X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2Rldl9tY19hZGQg
c21wXzA5NWRiZmQ3CiNkZWZpbmUgZGV2X21jX2FkZCBfc2V0X3ZlcihkZXZfbWNfYWRkKQojZGVm
aW5lIF9fdmVyX2Rldl9tY19kZWxldGUgc21wXzdmNzY3YTNkCiNkZWZpbmUgZGV2X21jX2RlbGV0
ZSBfc2V0X3ZlcihkZXZfbWNfZGVsZXRlKQojZGVmaW5lIF9fdmVyX2Rldl9tY191cGxvYWQgc21w
XzhiYTllMjdhCiNkZWZpbmUgZGV2X21jX3VwbG9hZCBfc2V0X3ZlcihkZXZfbWNfdXBsb2FkKQoj
ZGVmaW5lIF9fdmVyX25fdHR5X2lvY3RsIHNtcF83NmUyMGI3MAojZGVmaW5lIG5fdHR5X2lvY3Rs
IF9zZXRfdmVyKG5fdHR5X2lvY3RsKQojZGVmaW5lIF9fdmVyX3R0eV9yZWdpc3Rlcl9sZGlzYyBz
bXBfODY5YzA4YjUKI2RlZmluZSB0dHlfcmVnaXN0ZXJfbGRpc2MgX3NldF92ZXIodHR5X3JlZ2lz
dGVyX2xkaXNjKQojZGVmaW5lIF9fdmVyX19fa2lsbF9mYXN5bmMgc21wXzAyY2Y4NzcyCiNkZWZp
bmUgX19raWxsX2Zhc3luYyBfc2V0X3ZlcihfX2tpbGxfZmFzeW5jKQojZGVmaW5lIF9fdmVyX2lm
X3BvcnRfdGV4dCBzbXBfOWNmMGM2NGYKI2RlZmluZSBpZl9wb3J0X3RleHQgX3NldF92ZXIoaWZf
cG9ydF90ZXh0KQojZGVmaW5lIF9fdmVyX3N5c2N0bF93bWVtX21heCBzbXBfZmFjODg2NWYKI2Rl
ZmluZSBzeXNjdGxfd21lbV9tYXggX3NldF92ZXIoc3lzY3RsX3dtZW1fbWF4KQojZGVmaW5lIF9f
dmVyX3N5c2N0bF9ybWVtX21heCBzbXBfYjA1ZmMzMTAKI2RlZmluZSBzeXNjdGxfcm1lbV9tYXgg
X3NldF92ZXIoc3lzY3RsX3JtZW1fbWF4KQojZGVmaW5lIF9fdmVyX3N5c2N0bF9pcF9kZWZhdWx0
X3R0bCBzbXBfZjYzODhjNTYKI2RlZmluZSBzeXNjdGxfaXBfZGVmYXVsdF90dGwgX3NldF92ZXIo
c3lzY3RsX2lwX2RlZmF1bHRfdHRsKQojZGVmaW5lIF9fdmVyX3FkaXNjX2Rlc3Ryb3kgc21wXzM4
MTRhYTNmCiNkZWZpbmUgcWRpc2NfZGVzdHJveSBfc2V0X3ZlcihxZGlzY19kZXN0cm95KQojZGVm
aW5lIF9fdmVyX3FkaXNjX3Jlc2V0IHNtcF9lYzI3M2Q1NAojZGVmaW5lIHFkaXNjX3Jlc2V0IF9z
ZXRfdmVyKHFkaXNjX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3FkaXNjX3Jlc3RhcnQgc21wXzNlMjQz
OTAwCiNkZWZpbmUgcWRpc2NfcmVzdGFydCBfc2V0X3ZlcihxZGlzY19yZXN0YXJ0KQojZGVmaW5l
IF9fdmVyX3FkaXNjX2NyZWF0ZV9kZmx0IHNtcF84MjNiMjA4MQojZGVmaW5lIHFkaXNjX2NyZWF0
ZV9kZmx0IF9zZXRfdmVyKHFkaXNjX2NyZWF0ZV9kZmx0KQojZGVmaW5lIF9fdmVyX25vb3BfcWRp
c2Mgc21wXzc1NGU2ZWRiCiNkZWZpbmUgbm9vcF9xZGlzYyBfc2V0X3Zlcihub29wX3FkaXNjKQoj
ZGVmaW5lIF9fdmVyX3FkaXNjX3RyZWVfbG9jayBzbXBfMmI4ZGExOTcKI2RlZmluZSBxZGlzY190
cmVlX2xvY2sgX3NldF92ZXIocWRpc2NfdHJlZV9sb2NrKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lz
dGVyX2hvb2sgc21wXzFiMGZlZGU4CiNkZWZpbmUgbmZfcmVnaXN0ZXJfaG9vayBfc2V0X3Zlcihu
Zl9yZWdpc3Rlcl9ob29rKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfaG9vayBzbXBfZTNi
YjUyN2YKI2RlZmluZSBuZl91bnJlZ2lzdGVyX2hvb2sgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9o
b29rKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3NvY2tvcHQgc21wX2E2MmI4OTFmCiNkZWZp
bmUgbmZfcmVnaXN0ZXJfc29ja29wdCBfc2V0X3ZlcihuZl9yZWdpc3Rlcl9zb2Nrb3B0KQojZGVm
aW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfc29ja29wdCBzbXBfYTAzYTM1ZWQKI2RlZmluZSBuZl91
bnJlZ2lzdGVyX3NvY2tvcHQgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9zb2Nrb3B0KQojZGVmaW5l
IF9fdmVyX25mX3JlaW5qZWN0IHNtcF8zNjFjZDM5ZAojZGVmaW5lIG5mX3JlaW5qZWN0IF9zZXRf
dmVyKG5mX3JlaW5qZWN0KQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3F1ZXVlX2hhbmRsZXIg
c21wXzI2ZGE5ZmJjCiNkZWZpbmUgbmZfcmVnaXN0ZXJfcXVldWVfaGFuZGxlciBfc2V0X3Zlcihu
Zl9yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfcXVl
dWVfaGFuZGxlciBzbXBfNGRmNmU2ZGUKI2RlZmluZSBuZl91bnJlZ2lzdGVyX3F1ZXVlX2hhbmRs
ZXIgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25m
X2hvb2tfc2xvdyBzbXBfOGM5NTcxMzEKI2RlZmluZSBuZl9ob29rX3Nsb3cgX3NldF92ZXIobmZf
aG9va19zbG93KQojZGVmaW5lIF9fdmVyX25mX2hvb2tzIHNtcF8wNzhiMWZkMgojZGVmaW5lIG5m
X2hvb2tzIF9zZXRfdmVyKG5mX2hvb2tzKQojZGVmaW5lIF9fdmVyX25mX3NldHNvY2tvcHQgc21w
XzBlNDMyODkxCiNkZWZpbmUgbmZfc2V0c29ja29wdCBfc2V0X3ZlcihuZl9zZXRzb2Nrb3B0KQoj
ZGVmaW5lIF9fdmVyX25mX2dldHNvY2tvcHQgc21wXzA3NjU2MGMwCiNkZWZpbmUgbmZfZ2V0c29j
a29wdCBfc2V0X3ZlcihuZl9nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX2lwX2N0X2F0dGFjaCBz
bXBfNjlmZjE4ZDQKI2RlZmluZSBpcF9jdF9hdHRhY2ggX3NldF92ZXIoaXBfY3RfYXR0YWNoKQoj
ZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2dpZmNvbmYgc21wXzVhNzY1ZTk1CiNkZWZpbmUgcmVnaXN0
ZXJfZ2lmY29uZiBfc2V0X3ZlcihyZWdpc3Rlcl9naWZjb25mKQojZGVmaW5lIF9fdmVyX25ldF9j
YWxsX3J4X2F0b21pYyBzbXBfZjIzZWZiOTgKI2RlZmluZSBuZXRfY2FsbF9yeF9hdG9taWMgX3Nl
dF92ZXIobmV0X2NhbGxfcnhfYXRvbWljKQojZGVmaW5lIF9fdmVyX3NvZnRuZXRfZGF0YSBzbXBf
ZjhkNmM4OTAKI2RlZmluZSBzb2Z0bmV0X2RhdGEgX3NldF92ZXIoc29mdG5ldF9kYXRhKQojIDE2
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ld3BvcnQudmVy
IiAxCiMgMTYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbmxz
X2Jhc2UudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbmxzIHNtcF9hNmU4MzgxMgojZGVm
aW5lIHJlZ2lzdGVyX25scyBfc2V0X3ZlcihyZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5y
ZWdpc3Rlcl9ubHMgc21wXzNmNGFiOTUwCiNkZWZpbmUgdW5yZWdpc3Rlcl9ubHMgX3NldF92ZXIo
dW5yZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5sb2FkX25scyBzbXBfZGExY2U5OWQKI2Rl
ZmluZSB1bmxvYWRfbmxzIF9zZXRfdmVyKHVubG9hZF9ubHMpCiNkZWZpbmUgX192ZXJfbG9hZF9u
bHMgc21wXzlmZjBhMmVhCiNkZWZpbmUgbG9hZF9ubHMgX3NldF92ZXIobG9hZF9ubHMpCiNkZWZp
bmUgX192ZXJfbG9hZF9ubHNfZGVmYXVsdCBzbXBfNzY4ZDczMjIKI2RlZmluZSBsb2FkX25sc19k
ZWZhdWx0IF9zZXRfdmVyKGxvYWRfbmxzX2RlZmF1bHQpCiNkZWZpbmUgX192ZXJfdXRmOF9tYnRv
d2Mgc21wXzRkZGM0YjlmCiNkZWZpbmUgdXRmOF9tYnRvd2MgX3NldF92ZXIodXRmOF9tYnRvd2Mp
CiNkZWZpbmUgX192ZXJfdXRmOF9tYnN0b3djcyBzbXBfN2Q4NTA2MTIKI2RlZmluZSB1dGY4X21i
c3Rvd2NzIF9zZXRfdmVyKHV0ZjhfbWJzdG93Y3MpCiNkZWZpbmUgX192ZXJfdXRmOF93Y3RvbWIg
c21wX2Y4MmYxMTA5CiNkZWZpbmUgdXRmOF93Y3RvbWIgX3NldF92ZXIodXRmOF93Y3RvbWIpCiNk
ZWZpbmUgX192ZXJfdXRmOF93Y3N0b21icyBzbXBfODYzY2I5MWEKI2RlZmluZSB1dGY4X3djc3Rv
bWJzIF9zZXRfdmVyKHV0Zjhfd2NzdG9tYnMpCiMgMTYzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvbm0yNTZfYXVkaW8udmVyIiAxCiMgMTY0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbnVidXNfc3ltcy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9udWJ1c19wcm9jX2F0dGFjaF9kZXZpY2Ugc21wXzg0MjhhYmUzCiNkZWZpbmUgbnVi
dXNfcHJvY19hdHRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfYXR0YWNoX2RldmljZSkK
I2RlZmluZSBfX3Zlcl9udWJ1c19wcm9jX2RldGFjaF9kZXZpY2Ugc21wXzIzNGI2NTMwCiNkZWZp
bmUgbnVidXNfcHJvY19kZXRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfZGV0YWNoX2Rl
dmljZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX2RldmljZSBzbXBfOGJiNGZjZTcKI2RlZmlu
ZSBudWJ1c19maW5kX2RldmljZSBfc2V0X3ZlcihudWJ1c19maW5kX2RldmljZSkKI2RlZmluZSBf
X3Zlcl9udWJ1c19maW5kX3R5cGUgc21wXzMxNGFmYzVmCiNkZWZpbmUgbnVidXNfZmluZF90eXBl
IF9zZXRfdmVyKG51YnVzX2ZpbmRfdHlwZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3Nsb3Qg
c21wXzVhODIxYmRkCiNkZWZpbmUgbnVidXNfZmluZF9zbG90IF9zZXRfdmVyKG51YnVzX2ZpbmRf
c2xvdCkKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcm9vdF9kaXIgc21wXzIwMzU0MmM5CiNkZWZp
bmUgbnVidXNfZ2V0X3Jvb3RfZGlyIF9zZXRfdmVyKG51YnVzX2dldF9yb290X2RpcikKI2RlZmlu
ZSBfX3Zlcl9udWJ1c19nZXRfYm9hcmRfZGlyIHNtcF8wZGM1NWQ4MAojZGVmaW5lIG51YnVzX2dl
dF9ib2FyZF9kaXIgX3NldF92ZXIobnVidXNfZ2V0X2JvYXJkX2RpcikKI2RlZmluZSBfX3Zlcl9u
dWJ1c19nZXRfZnVuY19kaXIgc21wXzcwZTc1MWZjCiNkZWZpbmUgbnVidXNfZ2V0X2Z1bmNfZGly
IF9zZXRfdmVyKG51YnVzX2dldF9mdW5jX2RpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19yZWFkZGly
IHNtcF9iZDNiY2FlNAojZGVmaW5lIG51YnVzX3JlYWRkaXIgX3NldF92ZXIobnVidXNfcmVhZGRp
cikKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3JzcmMgc21wX2Y4NjE3Mzk1CiNkZWZpbmUgbnVi
dXNfZmluZF9yc3JjIF9zZXRfdmVyKG51YnVzX2ZpbmRfcnNyYykKI2RlZmluZSBfX3Zlcl9udWJ1
c19yZXdpbmRkaXIgc21wX2VlZTZjYThlCiNkZWZpbmUgbnVidXNfcmV3aW5kZGlyIF9zZXRfdmVy
KG51YnVzX3Jld2luZGRpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfc3ViZGlyIHNtcF83ZTk0
NWRkYgojZGVmaW5lIG51YnVzX2dldF9zdWJkaXIgX3NldF92ZXIobnVidXNfZ2V0X3N1YmRpcikK
I2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcnNyY19tZW0gc21wXzVlZjEyZTM1CiNkZWZpbmUgbnVi
dXNfZ2V0X3JzcmNfbWVtIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX21lbSkKI2RlZmluZSBfX3Zl
cl9udWJ1c19nZXRfcnNyY19zdHIgc21wXzhmYjhjOTFjCiNkZWZpbmUgbnVidXNfZ2V0X3JzcmNf
c3RyIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX3N0cikKIyAxNjUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9vcGwzLnZlciIgMQojZGVmaW5lIF9fdmVyX29wbDNf
aW5pdCBzbXBfMDIyMDNiYWEKI2RlZmluZSBvcGwzX2luaXQgX3NldF92ZXIob3BsM19pbml0KQoj
ZGVmaW5lIF9fdmVyX29wbDNfZGV0ZWN0IHNtcF82NzQ4MTc2NwojZGVmaW5lIG9wbDNfZGV0ZWN0
IF9zZXRfdmVyKG9wbDNfZGV0ZWN0KQojIDE2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL29yaW5vY28udmVyIiAxCiNkZWZpbmUgX192ZXJfZGxkd2RfaW5pdCBz
bXBfYWFlNWI1MzQKI2RlZmluZSBkbGR3ZF9pbml0IF9zZXRfdmVyKGRsZHdkX2luaXQpCiNkZWZp
bmUgX192ZXJfZGxkd2RfeG1pdCBzbXBfYTkwMjZmZjIKI2RlZmluZSBkbGR3ZF94bWl0IF9zZXRf
dmVyKGRsZHdkX3htaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfdHhfdGltZW91dCBzbXBfNDAwNzY3
YzcKI2RlZmluZSBkbGR3ZF90eF90aW1lb3V0IF9zZXRfdmVyKGRsZHdkX3R4X3RpbWVvdXQpCiNk
ZWZpbmUgX192ZXJfZGxkd2RfaW9jdGwgc21wXzQzZDM0ZDcxCiNkZWZpbmUgZGxkd2RfaW9jdGwg
X3NldF92ZXIoZGxkd2RfaW9jdGwpCiNkZWZpbmUgX192ZXJfZGxkd2RfY2hhbmdlX210dSBzbXBf
ZTBiMmU4MTAKI2RlZmluZSBkbGR3ZF9jaGFuZ2VfbXR1IF9zZXRfdmVyKGRsZHdkX2NoYW5nZV9t
dHUpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0X211bHRpY2FzdF9saXN0IHNtcF82OWI0OThlNQoj
ZGVmaW5lIGRsZHdkX3NldF9tdWx0aWNhc3RfbGlzdCBfc2V0X3ZlcihkbGR3ZF9zZXRfbXVsdGlj
YXN0X2xpc3QpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2h1dGRvd24gc21wXzgyNDE2ODI2CiNkZWZp
bmUgZGxkd2Rfc2h1dGRvd24gX3NldF92ZXIoZGxkd2Rfc2h1dGRvd24pCiNkZWZpbmUgX192ZXJf
ZGxkd2RfcmVzZXQgc21wXzQ2NDdkYjVkCiNkZWZpbmUgZGxkd2RfcmVzZXQgX3NldF92ZXIoZGxk
d2RfcmVzZXQpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0dXAgc21wX2MwMWY4MTBhCiNkZWZpbmUg
ZGxkd2Rfc2V0dXAgX3NldF92ZXIoZGxkd2Rfc2V0dXApCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJv
Y19kZXZfaW5pdCBzbXBfZWZlYzhlYzkKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9pbml0IF9zZXRf
dmVyKGRsZHdkX3Byb2NfZGV2X2luaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJvY19kZXZfY2xl
YW51cCBzbXBfMTI0MDIwMTUKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9jbGVhbnVwIF9zZXRfdmVy
KGRsZHdkX3Byb2NfZGV2X2NsZWFudXApCiNkZWZpbmUgX192ZXJfZGxkd2RfaW50ZXJydXB0IHNt
cF9iZjc4ZDM4NgojZGVmaW5lIGRsZHdkX2ludGVycnVwdCBfc2V0X3ZlcihkbGR3ZF9pbnRlcnJ1
cHQpCiMgMTY3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcDgw
MjIudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfODAyMl9jbGllbnQgc21wXzM1N2Q1ZDhh
CiNkZWZpbmUgcmVnaXN0ZXJfODAyMl9jbGllbnQgX3NldF92ZXIocmVnaXN0ZXJfODAyMl9jbGll
bnQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl84MDIyX2NsaWVudCBzbXBfN2FjZWYxNWQKI2Rl
ZmluZSB1bnJlZ2lzdGVyXzgwMjJfY2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfODAyMl9jbGll
bnQpCiMgMTY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcGFy
cG9ydF9wYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3Byb2JlX3BvcnQgc21wXzdk
MjI0NTMxCiNkZWZpbmUgcGFycG9ydF9wY19wcm9iZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcGNf
cHJvYmVfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBzbXBf
NTljY2JjMjQKI2RlZmluZSBwYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJw
b3J0X3BjX3VucmVnaXN0ZXJfcG9ydCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9wY2lfc29ja2V0LnZlciIgMQojIDE3MCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BjaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY2lf
cmVhZF9jb25maWdfYnl0ZSBzbXBfNzMyYjMwYmEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfYnl0
ZSBfc2V0X3ZlcihwY2lfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9j
b25maWdfd29yZCBzbXBfOWQzN2E2NDEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfd29yZCBfc2V0
X3ZlcihwY2lfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9jb25maWdf
ZHdvcmQgc21wXzc5ODE3NzlmCiNkZWZpbmUgcGNpX3JlYWRfY29uZmlnX2R3b3JkIF9zZXRfdmVy
KHBjaV9yZWFkX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2J5
dGUgc21wXzIwZWRlODI3CiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ19ieXRlIF9zZXRfdmVyKHBj
aV93cml0ZV9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX3dvcmQg
c21wXzg1MGU0MWYyCiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ193b3JkIF9zZXRfdmVyKHBjaV93
cml0ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2R3b3JkIHNt
cF9jMjk1ZDAzNQojZGVmaW5lIHBjaV93cml0ZV9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpX3dy
aXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfZGV2aWNlcyBzbXBfN2E4NGIxMDIK
I2RlZmluZSBwY2lfZGV2aWNlcyBfc2V0X3ZlcihwY2lfZGV2aWNlcykKI2RlZmluZSBfX3Zlcl9w
Y2lfcm9vdF9idXNlcyBzbXBfMDgyYzMyMTMKI2RlZmluZSBwY2lfcm9vdF9idXNlcyBfc2V0X3Zl
cihwY2lfcm9vdF9idXNlcykKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX2RldmljZSBzbXBfOThh
NjYxOTcKI2RlZmluZSBwY2lfZW5hYmxlX2RldmljZSBfc2V0X3ZlcihwY2lfZW5hYmxlX2Rldmlj
ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZGlzYWJsZV9kZXZpY2Ugc21wXzc4NmM0NTFhCiNkZWZpbmUg
cGNpX2Rpc2FibGVfZGV2aWNlIF9zZXRfdmVyKHBjaV9kaXNhYmxlX2RldmljZSkKI2RlZmluZSBf
X3Zlcl9wY2lfZmluZF9jYXBhYmlsaXR5IHNtcF8wN2JlYTA4MAojZGVmaW5lIHBjaV9maW5kX2Nh
cGFiaWxpdHkgX3NldF92ZXIocGNpX2ZpbmRfY2FwYWJpbGl0eSkKI2RlZmluZSBfX3Zlcl9wY2lf
cmVsZWFzZV9yZWdpb25zIHNtcF8xYmE5ZDdkNwojZGVmaW5lIHBjaV9yZWxlYXNlX3JlZ2lvbnMg
X3NldF92ZXIocGNpX3JlbGVhc2VfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfcmVxdWVzdF9y
ZWdpb25zIHNtcF9iMTFkZWU1MwojZGVmaW5lIHBjaV9yZXF1ZXN0X3JlZ2lvbnMgX3NldF92ZXIo
cGNpX3JlcXVlc3RfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9jbGFzcyBzbXBfNzJi
OTQ5MTYKI2RlZmluZSBwY2lfZmluZF9jbGFzcyBfc2V0X3ZlcihwY2lfZmluZF9jbGFzcykKI2Rl
ZmluZSBfX3Zlcl9wY2lfZmluZF9kZXZpY2Ugc21wXzU5ODNiMzliCiNkZWZpbmUgcGNpX2ZpbmRf
ZGV2aWNlIF9zZXRfdmVyKHBjaV9maW5kX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9z
bG90IHNtcF80ZWI1YmUyMQojZGVmaW5lIHBjaV9maW5kX3Nsb3QgX3NldF92ZXIocGNpX2ZpbmRf
c2xvdCkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9zdWJzeXMgc21wXzdiNzcwMWMzCiNkZWZpbmUg
cGNpX2ZpbmRfc3Vic3lzIF9zZXRfdmVyKHBjaV9maW5kX3N1YnN5cykKI2RlZmluZSBfX3Zlcl9w
Y2lfc2V0X21hc3RlciBzbXBfNzY2MWNkNmIKI2RlZmluZSBwY2lfc2V0X21hc3RlciBfc2V0X3Zl
cihwY2lfc2V0X21hc3RlcikKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X2RtYV9tYXNrIHNtcF9jY2Jl
YWJlOQojZGVmaW5lIHBjaV9zZXRfZG1hX21hc2sgX3NldF92ZXIocGNpX3NldF9kbWFfbWFzaykK
I2RlZmluZSBfX3Zlcl9wY2lfYXNzaWduX3Jlc291cmNlIHNtcF9mNTAwZGEwMwojZGVmaW5lIHBj
aV9hc3NpZ25fcmVzb3VyY2UgX3NldF92ZXIocGNpX2Fzc2lnbl9yZXNvdXJjZSkKI2RlZmluZSBf
X3Zlcl9wY2lfcmVnaXN0ZXJfZHJpdmVyIHNtcF9jMDM1ODFiOQojZGVmaW5lIHBjaV9yZWdpc3Rl
cl9kcml2ZXIgX3NldF92ZXIocGNpX3JlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lf
dW5yZWdpc3Rlcl9kcml2ZXIgc21wX2RkOTc2MTNkCiNkZWZpbmUgcGNpX3VucmVnaXN0ZXJfZHJp
dmVyIF9zZXRfdmVyKHBjaV91bnJlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfZGV2
X2RyaXZlciBzbXBfNjMwNzVlZGMKI2RlZmluZSBwY2lfZGV2X2RyaXZlciBfc2V0X3ZlcihwY2lf
ZGV2X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfbWF0Y2hfZGV2aWNlIHNtcF9mOWI3ZWRkNQoj
ZGVmaW5lIHBjaV9tYXRjaF9kZXZpY2UgX3NldF92ZXIocGNpX21hdGNoX2RldmljZSkKI2RlZmlu
ZSBfX3Zlcl9wY2lfZmluZF9wYXJlbnRfcmVzb3VyY2Ugc21wXzU1MDkxMTQ0CiNkZWZpbmUgcGNp
X2ZpbmRfcGFyZW50X3Jlc291cmNlIF9zZXRfdmVyKHBjaV9maW5kX3BhcmVudF9yZXNvdXJjZSkK
I2RlZmluZSBfX3Zlcl9wY2lfc2V0dXBfZGV2aWNlIHNtcF83MzM3NTkxZAojZGVmaW5lIHBjaV9z
ZXR1cF9kZXZpY2UgX3NldF92ZXIocGNpX3NldHVwX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lf
aW5zZXJ0X2RldmljZSBzbXBfYjFiNTU0OGEKI2RlZmluZSBwY2lfaW5zZXJ0X2RldmljZSBfc2V0
X3ZlcihwY2lfaW5zZXJ0X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVtb3ZlX2RldmljZSBz
bXBfZDRlMjcwZTkKI2RlZmluZSBwY2lfcmVtb3ZlX2RldmljZSBfc2V0X3ZlcihwY2lfcmVtb3Zl
X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X3Bvd2VyX3N0YXRlIHNtcF80OWFjODUwOAoj
ZGVmaW5lIHBjaV9zZXRfcG93ZXJfc3RhdGUgX3NldF92ZXIocGNpX3NldF9wb3dlcl9zdGF0ZSkK
I2RlZmluZSBfX3Zlcl9wY2lfc2F2ZV9zdGF0ZSBzbXBfMWU3ZGJhNDYKI2RlZmluZSBwY2lfc2F2
ZV9zdGF0ZSBfc2V0X3ZlcihwY2lfc2F2ZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVzdG9y
ZV9zdGF0ZSBzbXBfNzU3ZTlmNzIKI2RlZmluZSBwY2lfcmVzdG9yZV9zdGF0ZSBfc2V0X3Zlcihw
Y2lfcmVzdG9yZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX3dha2Ugc21wXzJkM2Fk
Mzg5CiNkZWZpbmUgcGNpX2VuYWJsZV93YWtlIF9zZXRfdmVyKHBjaV9lbmFibGVfd2FrZSkKI2Rl
ZmluZSBfX3Zlcl9wY2liaW9zX3ByZXNlbnQgc21wXzUyMGE3NWI5CiNkZWZpbmUgcGNpYmlvc19w
cmVzZW50IF9zZXRfdmVyKHBjaWJpb3NfcHJlc2VudCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3Jl
YWRfY29uZmlnX2J5dGUgc21wX2Q4MDExNWUxCiNkZWZpbmUgcGNpYmlvc19yZWFkX2NvbmZpZ19i
eXRlIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2li
aW9zX3JlYWRfY29uZmlnX3dvcmQgc21wX2FhOWVmZmQ3CiNkZWZpbmUgcGNpYmlvc19yZWFkX2Nv
bmZpZ193b3JkIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zl
cl9wY2liaW9zX3JlYWRfY29uZmlnX2R3b3JkIHNtcF8zOGFlNjY4OQojZGVmaW5lIHBjaWJpb3Nf
cmVhZF9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpYmlvc19yZWFkX2NvbmZpZ19kd29yZCkKI2Rl
ZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19ieXRlIHNtcF83MTk4NTZlZQojZGVmaW5l
IHBjaWJpb3Nfd3JpdGVfY29uZmlnX2J5dGUgX3NldF92ZXIocGNpYmlvc193cml0ZV9jb25maWdf
Ynl0ZSkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ193b3JkIHNtcF80ZjFjMmUz
MwojZGVmaW5lIHBjaWJpb3Nfd3JpdGVfY29uZmlnX3dvcmQgX3NldF92ZXIocGNpYmlvc193cml0
ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBz
bXBfODFiNGY0NjUKI2RlZmluZSBwY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBfc2V0X3Zlcihw
Y2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfY2xh
c3Mgc21wX2VmMzMzZjdiCiNkZWZpbmUgcGNpYmlvc19maW5kX2NsYXNzIF9zZXRfdmVyKHBjaWJp
b3NfZmluZF9jbGFzcykKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfZGV2aWNlIHNtcF85N2Q0
OWM0ZAojZGVmaW5lIHBjaWJpb3NfZmluZF9kZXZpY2UgX3NldF92ZXIocGNpYmlvc19maW5kX2Rl
dmljZSkKI2RlZmluZSBfX3Zlcl9pc2FfZG1hX2JyaWRnZV9idWdneSBzbXBfZjgyYWJjMWQKI2Rl
ZmluZSBpc2FfZG1hX2JyaWRnZV9idWdneSBfc2V0X3Zlcihpc2FfZG1hX2JyaWRnZV9idWdneSkK
I2RlZmluZSBfX3Zlcl9wY2lfcGNpX3Byb2JsZW1zIHNtcF9kYzE0ZWRhNwojZGVmaW5lIHBjaV9w
Y2lfcHJvYmxlbXMgX3NldF92ZXIocGNpX3BjaV9wcm9ibGVtcykKI2RlZmluZSBfX3Zlcl9wY2lf
cG9vbF9jcmVhdGUgc21wXzQxNTZhOGZkCiNkZWZpbmUgcGNpX3Bvb2xfY3JlYXRlIF9zZXRfdmVy
KHBjaV9wb29sX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9kZXN0cm95IHNtcF8wMzMy
M2M3NQojZGVmaW5lIHBjaV9wb29sX2Rlc3Ryb3kgX3NldF92ZXIocGNpX3Bvb2xfZGVzdHJveSkK
I2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9hbGxvYyBzbXBfNzg0NzcwY2IKI2RlZmluZSBwY2lfcG9v
bF9hbGxvYyBfc2V0X3ZlcihwY2lfcG9vbF9hbGxvYykKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9m
cmVlIHNtcF82OTY1NGU3MwojZGVmaW5lIHBjaV9wb29sX2ZyZWUgX3NldF92ZXIocGNpX3Bvb2xf
ZnJlZSkKIyAxNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9w
aG9uZWRldi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9waG9uZV9yZWdpc3Rlcl9kZXZpY2Ugc21wX2Uy
MWIxMjQwCiNkZWZpbmUgcGhvbmVfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKHBob25lX3JlZ2lz
dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9waG9uZV91bnJlZ2lzdGVyX2RldmljZSBzbXBfNmVi
MzFhNTcKI2RlZmluZSBwaG9uZV91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwaG9uZV91bnJl
Z2lzdGVyX2RldmljZSkKIyAxNzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9wbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wbV9yZWdpc3RlciBzbXBfOGRiYWIxMWMK
I2RlZmluZSBwbV9yZWdpc3RlciBfc2V0X3ZlcihwbV9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w
bV91bnJlZ2lzdGVyIHNtcF9lY2NkMWU2NAojZGVmaW5lIHBtX3VucmVnaXN0ZXIgX3NldF92ZXIo
cG1fdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wbV91bnJlZ2lzdGVyX2FsbCBzbXBfOWMwYmE1
YjIKI2RlZmluZSBwbV91bnJlZ2lzdGVyX2FsbCBfc2V0X3ZlcihwbV91bnJlZ2lzdGVyX2FsbCkK
I2RlZmluZSBfX3Zlcl9wbV9zZW5kIHNtcF8zOGZmM2VkMQojZGVmaW5lIHBtX3NlbmQgX3NldF92
ZXIocG1fc2VuZCkKI2RlZmluZSBfX3Zlcl9wbV9zZW5kX2FsbCBzbXBfZWNiZjljYWQKI2RlZmlu
ZSBwbV9zZW5kX2FsbCBfc2V0X3ZlcihwbV9zZW5kX2FsbCkKI2RlZmluZSBfX3Zlcl9wbV9maW5k
IHNtcF8xYTU1NzgwYQojZGVmaW5lIHBtX2ZpbmQgX3NldF92ZXIocG1fZmluZCkKI2RlZmluZSBf
X3Zlcl9wbV9hY3RpdmUgc21wX2ViZDM4N2Y2CiNkZWZpbmUgcG1fYWN0aXZlIF9zZXRfdmVyKHBt
X2FjdGl2ZSkKIyAxNzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy
c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl
cy9wcHBfYXN5bmMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX2NyYzE2X3RhYmxlIHNtcF9iN2Ey
YzdlNgojZGVmaW5lIHBwcF9jcmMxNl90YWJsZSBfc2V0X3ZlcihwcHBfY3JjMTZfdGFibGUpCiMg
MTc0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHBwX2dlbmVy
aWMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NoYW5uZWwgc21wXzk3ZTljZTM0
CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NoYW5uZWwgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2NoYW5u
ZWwpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY2hhbm5lbCBzbXBfNTg3NjU4NjcKI2Rl
ZmluZSBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsIF9zZXRfdmVyKHBwcF91bnJlZ2lzdGVyX2NoYW5u
ZWwpCiNkZWZpbmUgX192ZXJfcHBwX2NoYW5uZWxfaW5kZXggc21wXzg2MGEyOTlmCiNkZWZpbmUg
cHBwX2NoYW5uZWxfaW5kZXggX3NldF92ZXIocHBwX2NoYW5uZWxfaW5kZXgpCiNkZWZpbmUgX192
ZXJfcHBwX3VuaXRfbnVtYmVyIHNtcF9mNGVkMmRkNgojZGVmaW5lIHBwcF91bml0X251bWJlciBf
c2V0X3ZlcihwcHBfdW5pdF9udW1iZXIpCiNkZWZpbmUgX192ZXJfcHBwX2lucHV0IHNtcF9hM2Jj
YzJjNAojZGVmaW5lIHBwcF9pbnB1dCBfc2V0X3ZlcihwcHBfaW5wdXQpCiNkZWZpbmUgX192ZXJf
cHBwX2lucHV0X2Vycm9yIHNtcF8zMWIxYmJjYwojZGVmaW5lIHBwcF9pbnB1dF9lcnJvciBfc2V0
X3ZlcihwcHBfaW5wdXRfZXJyb3IpCiNkZWZpbmUgX192ZXJfcHBwX291dHB1dF93YWtldXAgc21w
XzNmMjI5YjQxCiNkZWZpbmUgcHBwX291dHB1dF93YWtldXAgX3NldF92ZXIocHBwX291dHB1dF93
YWtldXApCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3Igc21wXzk2ODJlNzMz
CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3IgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2Nv
bXByZXNzb3IpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY29tcHJlc3NvciBzbXBfYTFi
OTI4ZGYKI2RlZmluZSBwcHBfdW5yZWdpc3Rlcl9jb21wcmVzc29yIF9zZXRfdmVyKHBwcF91bnJl
Z2lzdGVyX2NvbXByZXNzb3IpCiNkZWZpbmUgX192ZXJfYWxsX3BwcF91bml0cyBzbXBfODcxYmEy
NjIKI2RlZmluZSBhbGxfcHBwX3VuaXRzIF9zZXRfdmVyKGFsbF9wcHBfdW5pdHMpCiNkZWZpbmUg
X192ZXJfYWxsX2NoYW5uZWxzIHNtcF81MzJlYTIzZgojZGVmaW5lIGFsbF9jaGFubmVscyBfc2V0
X3ZlcihhbGxfY2hhbm5lbHMpCiMgMTc1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvcHBwb3gudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfcHBwb3hfcHJv
dG8gc21wXzI0NDdhN2YyCiNkZWZpbmUgcmVnaXN0ZXJfcHBwb3hfcHJvdG8gX3NldF92ZXIocmVn
aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9wcHBveF9wcm90byBz
bXBfZTBmZjdhMTgKI2RlZmluZSB1bnJlZ2lzdGVyX3BwcG94X3Byb3RvIF9zZXRfdmVyKHVucmVn
aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfcHBwb3hfdW5iaW5kX3NvY2sgc21wX2Iy
ODc0YWM1CiNkZWZpbmUgcHBwb3hfdW5iaW5kX3NvY2sgX3NldF92ZXIocHBwb3hfdW5iaW5kX3Nv
Y2spCiMgMTc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHJv
Yy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fcHJvY19yb290IHNtcF85MWMwYmZiMgojZGVmaW5l
IGF0bV9wcm9jX3Jvb3QgX3NldF92ZXIoYXRtX3Byb2Nfcm9vdCkKIyAxNzcgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wcm9maWxlLnZlciIgMQojIDE3OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BzbmFwLnZlciIgMQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NuYXBfY2xpZW50IHNtcF9jMzRhZGZhMAojZGVmaW5lIHJlZ2lz
dGVyX3NuYXBfY2xpZW50IF9zZXRfdmVyKHJlZ2lzdGVyX3NuYXBfY2xpZW50KQojZGVmaW5lIF9f
dmVyX3VucmVnaXN0ZXJfc25hcF9jbGllbnQgc21wXzlhYmVmYzUwCiNkZWZpbmUgdW5yZWdpc3Rl
cl9zbmFwX2NsaWVudCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NuYXBfY2xpZW50KQojIDE3OSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3B0eS52ZXIiIDEKIyAxODAg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wd2MtdW5jb21wcmVz
cy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wd2NfcmVnaXN0ZXJfZGVjb21wcmVzc29yIHNtcF9iOTZj
MmQzYgojZGVmaW5lIHB3Y19yZWdpc3Rlcl9kZWNvbXByZXNzb3IgX3NldF92ZXIocHdjX3JlZ2lz
dGVyX2RlY29tcHJlc3NvcikKI2RlZmluZSBfX3Zlcl9wd2NfdW5yZWdpc3Rlcl9kZWNvbXByZXNz
b3Igc21wX2Y5YTk2OWI1CiNkZWZpbmUgcHdjX3VucmVnaXN0ZXJfZGVjb21wcmVzc29yIF9zZXRf
dmVyKHB3Y191bnJlZ2lzdGVyX2RlY29tcHJlc3NvcikKIyAxODEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yMTI4X2Rydi52ZXIiIDEKIyAxODIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yYW5kb20udmVyIiAxCiNkZWZpbmUg
X192ZXJfYWRkX2tleWJvYXJkX3JhbmRvbW5lc3Mgc21wXzc0Nzg5YzE5CiNkZWZpbmUgYWRkX2tl
eWJvYXJkX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX2tleWJvYXJkX3JhbmRvbW5lc3MpCiNkZWZp
bmUgX192ZXJfYWRkX21vdXNlX3JhbmRvbW5lc3Mgc21wXzcwNTA3Yzk3CiNkZWZpbmUgYWRkX21v
dXNlX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX21vdXNlX3JhbmRvbW5lc3MpCiNkZWZpbmUgX192
ZXJfYWRkX2ludGVycnVwdF9yYW5kb21uZXNzIHNtcF8xNmRmYmYzNgojZGVmaW5lIGFkZF9pbnRl
cnJ1cHRfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfaW50ZXJydXB0X3JhbmRvbW5lc3MpCiNkZWZp
bmUgX192ZXJfYWRkX2Jsa2Rldl9yYW5kb21uZXNzIHNtcF9kOWNiMjFkMQojZGVmaW5lIGFkZF9i
bGtkZXZfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfYmxrZGV2X3JhbmRvbW5lc3MpCiNkZWZpbmUg
X192ZXJfYmF0Y2hfZW50cm9weV9zdG9yZSBzbXBfYWJjOWU1ZWEKI2RlZmluZSBiYXRjaF9lbnRy
b3B5X3N0b3JlIF9zZXRfdmVyKGJhdGNoX2VudHJvcHlfc3RvcmUpCiMgMTgzICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcmF3LnZlciIgMQojZGVmaW5lIF9fdmVy
X2F0bV9pbml0X2FhbDUgc21wX2JiZDEwOGM0CiNkZWZpbmUgYXRtX2luaXRfYWFsNSBfc2V0X3Zl
cihhdG1faW5pdF9hYWw1KQojIDE4NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL3JheV9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yYXlfZGV2X2lvY3RsIHNtcF8w
YWZjNzQ3NQojZGVmaW5lIHJheV9kZXZfaW9jdGwgX3NldF92ZXIocmF5X2Rldl9pb2N0bCkKI2Rl
ZmluZSBfX3Zlcl9yYXlfcnggc21wX2EzN2YyYTVjCiNkZWZpbmUgcmF5X3J4IF9zZXRfdmVyKHJh
eV9yeCkKIyAxODUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9y
ZWRib290LnZlciIgMQojZGVmaW5lIF9fdmVyX3BhcnNlX3JlZGJvb3RfcGFydGl0aW9ucyBzbXBf
ZDdkYWZjYTcKI2RlZmluZSBwYXJzZV9yZWRib290X3BhcnRpdGlvbnMgX3NldF92ZXIocGFyc2Vf
cmVkYm9vdF9wYXJ0aXRpb25zKQojIDE4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R1bGVzL3Jlc291cmNlcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X3JlZ2lz
dGVyIHNtcF9lNGFkNjJmZAojZGVmaW5lIGF0bV9kZXZfcmVnaXN0ZXIgX3NldF92ZXIoYXRtX2Rl
dl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X2RlcmVnaXN0ZXIgc21wXzI1YzlkMWQw
CiNkZWZpbmUgYXRtX2Rldl9kZXJlZ2lzdGVyIF9zZXRfdmVyKGF0bV9kZXZfZGVyZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9hdG1fZmluZF9kZXYgc21wXzFiZWJmNTZiCiNkZWZpbmUgYXRtX2ZpbmRf
ZGV2IF9zZXRfdmVyKGF0bV9maW5kX2RldikKI2RlZmluZSBfX3Zlcl9zaHV0ZG93bl9hdG1fZGV2
IHNtcF83ODc1YzVhOQojZGVmaW5lIHNodXRkb3duX2F0bV9kZXYgX3NldF92ZXIoc2h1dGRvd25f
YXRtX2RldikKI2RlZmluZSBfX3Zlcl9iaW5kX3ZjYyBzbXBfZmRlNThiYjMKI2RlZmluZSBiaW5k
X3ZjYyBfc2V0X3ZlcihiaW5kX3ZjYykKIyAxODcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9yb290LnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2Nfc3lzX3Jvb3Qg
c21wXzdhMzAyY2VmCiNkZWZpbmUgcHJvY19zeXNfcm9vdCBfc2V0X3Zlcihwcm9jX3N5c19yb290
KQojZGVmaW5lIF9fdmVyX3Byb2Nfc3ltbGluayBzbXBfZWQxODIwOWIKI2RlZmluZSBwcm9jX3N5
bWxpbmsgX3NldF92ZXIocHJvY19zeW1saW5rKQojZGVmaW5lIF9fdmVyX3Byb2NfbWtub2Qgc21w
XzEyODJiYzcyCiNkZWZpbmUgcHJvY19ta25vZCBfc2V0X3Zlcihwcm9jX21rbm9kKQojZGVmaW5l
IF9fdmVyX3Byb2NfbWtkaXIgc21wXzQ2YTYzODcwCiNkZWZpbmUgcHJvY19ta2RpciBfc2V0X3Zl
cihwcm9jX21rZGlyKQojZGVmaW5lIF9fdmVyX2NyZWF0ZV9wcm9jX2VudHJ5IHNtcF9iOWRkZmNk
ZAojZGVmaW5lIGNyZWF0ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2VudHJ5KQoj
ZGVmaW5lIF9fdmVyX3JlbW92ZV9wcm9jX2VudHJ5IHNtcF9hNjU4YjFlNgojZGVmaW5lIHJlbW92
ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKHJlbW92ZV9wcm9jX2VudHJ5KQojZGVmaW5lIF9fdmVyX3By
b2Nfcm9vdCBzbXBfYmVhYWY3N2IKI2RlZmluZSBwcm9jX3Jvb3QgX3NldF92ZXIocHJvY19yb290
KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9mcyBzbXBfODg0NWM2Y2UKI2RlZmluZSBwcm9jX3Jv
b3RfZnMgX3NldF92ZXIocHJvY19yb290X2ZzKQojZGVmaW5lIF9fdmVyX3Byb2NfbmV0IHNtcF83
MGRhNTg1ZQojZGVmaW5lIHByb2NfbmV0IF9zZXRfdmVyKHByb2NfbmV0KQojZGVmaW5lIF9fdmVy
X3Byb2NfYnVzIHNtcF82OTZiZDI1MQojZGVmaW5lIHByb2NfYnVzIF9zZXRfdmVyKHByb2NfYnVz
KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9kcml2ZXIgc21wXzYzOTYyOTBhCiNkZWZpbmUgcHJv
Y19yb290X2RyaXZlciBfc2V0X3Zlcihwcm9jX3Jvb3RfZHJpdmVyKQojIDE4OCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3J0Yy52ZXIiIDEKIyAxODkgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS1zcGlubG9jay52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9pbml0X3J3c2VtIHNtcF9hNTNkOTMxYQojZGVmaW5lIGluaXRfcndz
ZW0gX3NldF92ZXIoaW5pdF9yd3NlbSkKI2RlZmluZSBfX3Zlcl9fX2Rvd25fcmVhZCBzbXBfMWNm
NTc3NzIKI2RlZmluZSBfX2Rvd25fcmVhZCBfc2V0X3ZlcihfX2Rvd25fcmVhZCkKI2RlZmluZSBf
X3Zlcl9fX2Rvd25fd3JpdGUgc21wX2M5YjFmOThhCiNkZWZpbmUgX19kb3duX3dyaXRlIF9zZXRf
dmVyKF9fZG93bl93cml0ZSkKI2RlZmluZSBfX3Zlcl9fX3VwX3JlYWQgc21wX2U5NTJmYzI5CiNk
ZWZpbmUgX191cF9yZWFkIF9zZXRfdmVyKF9fdXBfcmVhZCkKI2RlZmluZSBfX3Zlcl9fX3VwX3dy
aXRlIHNtcF8zNWZkZDY3ZAojZGVmaW5lIF9fdXBfd3JpdGUgX3NldF92ZXIoX191cF93cml0ZSkK
IyAxOTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS52
ZXIiIDEKIyAxOTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9z
Yl9jb21tb24udmVyIiAxCiNkZWZpbmUgX192ZXJfc2JfZHNwX2luaXQgc21wXzQyMmM1ZGJlCiNk
ZWZpbmUgc2JfZHNwX2luaXQgX3NldF92ZXIoc2JfZHNwX2luaXQpCiNkZWZpbmUgX192ZXJfc2Jf
ZHNwX2RldGVjdCBzbXBfZDhhMjczMWMKI2RlZmluZSBzYl9kc3BfZGV0ZWN0IF9zZXRfdmVyKHNi
X2RzcF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfc2JfZHNwX3VubG9hZCBzbXBfYzQ4ODQ5NjkKI2Rl
ZmluZSBzYl9kc3BfdW5sb2FkIF9zZXRfdmVyKHNiX2RzcF91bmxvYWQpCiNkZWZpbmUgX192ZXJf
c2JfZHNwX2Rpc2FibGVfbWlkaSBzbXBfNzMyZjM4ZGYKI2RlZmluZSBzYl9kc3BfZGlzYWJsZV9t
aWRpIF9zZXRfdmVyKHNiX2RzcF9kaXNhYmxlX21pZGkpCiNkZWZpbmUgX192ZXJfc2JfYmVfcXVp
ZXQgc21wXzQyNDI0MTA5CiNkZWZpbmUgc2JfYmVfcXVpZXQgX3NldF92ZXIoc2JfYmVfcXVpZXQp
CiNkZWZpbmUgX192ZXJfcHJvYmVfc2JtcHUgc21wX2QxZmE2OGMyCiNkZWZpbmUgcHJvYmVfc2Jt
cHUgX3NldF92ZXIocHJvYmVfc2JtcHUpCiNkZWZpbmUgX192ZXJfdW5sb2FkX3NibXB1IHNtcF83
NGFmZDY5YwojZGVmaW5lIHVubG9hZF9zYm1wdSBfc2V0X3Zlcih1bmxvYWRfc2JtcHUpCiNkZWZp
bmUgX192ZXJfc213X2ZyZWUgc21wXzQ1MGY5YWVhCiNkZWZpbmUgc213X2ZyZWUgX3NldF92ZXIo
c213X2ZyZWUpCiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl
cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs
ZXMvc2NzaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXJfbW9kdWxlIHNt
cF9mYTIwYjdiMAojZGVmaW5lIHNjc2lfcmVnaXN0ZXJfbW9kdWxlIF9zZXRfdmVyKHNjc2lfcmVn
aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rlcl9tb2R1bGUgc21wXzgx
ZDg1YTc1CiNkZWZpbmUgc2NzaV91bnJlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihzY3NpX3VucmVn
aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfZnJlZSBzbXBfNDc1ZGRkZmEKI2RlZmlu
ZSBzY3NpX2ZyZWUgX3NldF92ZXIoc2NzaV9mcmVlKQojZGVmaW5lIF9fdmVyX3Njc2lfbWFsbG9j
IHNtcF8xY2NlM2Y5MgojZGVmaW5lIHNjc2lfbWFsbG9jIF9zZXRfdmVyKHNjc2lfbWFsbG9jKQoj
ZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXIgc21wXzllMThkZDQ4CiNkZWZpbmUgc2NzaV9yZWdp
c3RlciBfc2V0X3ZlcihzY3NpX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rl
ciBzbXBfZmNhOTVmMDEKI2RlZmluZSBzY3NpX3VucmVnaXN0ZXIgX3NldF92ZXIoc2NzaV91bnJl
Z2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2ljYW1fYmlvc19wYXJhbSBzbXBfMDMxY2VhYWUKI2Rl
ZmluZSBzY3NpY2FtX2Jpb3NfcGFyYW0gX3NldF92ZXIoc2NzaWNhbV9iaW9zX3BhcmFtKQojZGVm
aW5lIF9fdmVyX3Njc2lfcGFydHNpemUgc21wXzNiZWFhZmYwCiNkZWZpbmUgc2NzaV9wYXJ0c2l6
ZSBfc2V0X3ZlcihzY3NpX3BhcnRzaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfYWxsb2NhdGVfZGV2
aWNlIHNtcF9hODRkYzhlNAojZGVmaW5lIHNjc2lfYWxsb2NhdGVfZGV2aWNlIF9zZXRfdmVyKHNj
c2lfYWxsb2NhdGVfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fY21kIHNtcF9lMTVkNDMw
ZQojZGVmaW5lIHNjc2lfZG9fY21kIF9zZXRfdmVyKHNjc2lfZG9fY21kKQojZGVmaW5lIF9fdmVy
X3Njc2lfY29tbWFuZF9zaXplIHNtcF85YjA1ZWE1YwojZGVmaW5lIHNjc2lfY29tbWFuZF9zaXpl
IF9zZXRfdmVyKHNjc2lfY29tbWFuZF9zaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9jdGwgc21w
Xzc3YzdjYWIzCiNkZWZpbmUgc2NzaV9pb2N0bCBfc2V0X3ZlcihzY3NpX2lvY3RsKQojZGVmaW5l
IF9fdmVyX3ByaW50X2NvbW1hbmQgc21wXzUyODIzMmU3CiNkZWZpbmUgcHJpbnRfY29tbWFuZCBf
c2V0X3ZlcihwcmludF9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3ByaW50X3NlbnNlIHNtcF84ZjIw
MTY5NQojZGVmaW5lIHByaW50X3NlbnNlIF9zZXRfdmVyKHByaW50X3NlbnNlKQojZGVmaW5lIF9f
dmVyX3ByaW50X3JlcV9zZW5zZSBzbXBfMjdhMTViOGUKI2RlZmluZSBwcmludF9yZXFfc2Vuc2Ug
X3NldF92ZXIocHJpbnRfcmVxX3NlbnNlKQojZGVmaW5lIF9fdmVyX3ByaW50X21zZyBzbXBfOGNj
NWFlMDcKI2RlZmluZSBwcmludF9tc2cgX3NldF92ZXIocHJpbnRfbXNnKQojZGVmaW5lIF9fdmVy
X3ByaW50X3N0YXR1cyBzbXBfZTRjMDhjY2QKI2RlZmluZSBwcmludF9zdGF0dXMgX3NldF92ZXIo
cHJpbnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX3Njc2lfZG1hX2ZyZWVfc2VjdG9ycyBzbXBfZTkz
MGIzY2IKI2RlZmluZSBzY3NpX2RtYV9mcmVlX3NlY3RvcnMgX3NldF92ZXIoc2NzaV9kbWFfZnJl
ZV9zZWN0b3JzKQojZGVmaW5lIF9fdmVyX2tlcm5lbF9zY3NpX2lvY3RsIHNtcF82NGJjM2RmNQoj
ZGVmaW5lIGtlcm5lbF9zY3NpX2lvY3RsIF9zZXRfdmVyKGtlcm5lbF9zY3NpX2lvY3RsKQojZGVm
aW5lIF9fdmVyX3Njc2lfbmVlZF9pc2FfYnVmZmVyIHNtcF9lMjJiY2E5OAojZGVmaW5lIHNjc2lf
bmVlZF9pc2FfYnVmZmVyIF9zZXRfdmVyKHNjc2lfbmVlZF9pc2FfYnVmZmVyKQojZGVmaW5lIF9f
dmVyX3Njc2lfcmVsZWFzZV9jb21tYW5kIHNtcF8wZDI1NWUzNwojZGVmaW5lIHNjc2lfcmVsZWFz
ZV9jb21tYW5kIF9zZXRfdmVyKHNjc2lfcmVsZWFzZV9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3By
aW50X1Njc2lfQ21uZCBzbXBfNTc0ZTJkOGEKI2RlZmluZSBwcmludF9TY3NpX0NtbmQgX3NldF92
ZXIocHJpbnRfU2NzaV9DbW5kKQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfd2hlbl9wcm9jZXNz
aW5nX2Vycm9ycyBzbXBfMzdiOTdjZjIKI2RlZmluZSBzY3NpX2Jsb2NrX3doZW5fcHJvY2Vzc2lu
Z19lcnJvcnMgX3NldF92ZXIoc2NzaV9ibG9ja193aGVuX3Byb2Nlc3NpbmdfZXJyb3JzKQojZGVm
aW5lIF9fdmVyX3Njc2lfbWFya19ob3N0X3Jlc2V0IHNtcF9jOTE0NGQ2OQojZGVmaW5lIHNjc2lf
bWFya19ob3N0X3Jlc2V0IF9zZXRfdmVyKHNjc2lfbWFya19ob3N0X3Jlc2V0KQojZGVmaW5lIF9f
dmVyX3Njc2lfaW9jdGxfc2VuZF9jb21tYW5kIHNtcF9iYjI1ZDY4MAojZGVmaW5lIHNjc2lfaW9j
dGxfc2VuZF9jb21tYW5kIF9zZXRfdmVyKHNjc2lfaW9jdGxfc2VuZF9jb21tYW5kKQojZGVmaW5l
IF9fdmVyX3Njc2lfbG9nZ2luZ19sZXZlbCBzbXBfYWYzZGQ3ZGMKI2RlZmluZSBzY3NpX2xvZ2dp
bmdfbGV2ZWwgX3NldF92ZXIoc2NzaV9sb2dnaW5nX2xldmVsKQojZGVmaW5lIF9fdmVyX3Njc2lf
YWxsb2NhdGVfcmVxdWVzdCBzbXBfNjZkOWI0ZWUKI2RlZmluZSBzY3NpX2FsbG9jYXRlX3JlcXVl
c3QgX3NldF92ZXIoc2NzaV9hbGxvY2F0ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfcmVs
ZWFzZV9yZXF1ZXN0IHNtcF85YTJhNzY1ZQojZGVmaW5lIHNjc2lfcmVsZWFzZV9yZXF1ZXN0IF9z
ZXRfdmVyKHNjc2lfcmVsZWFzZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfd2FpdF9yZXEg
c21wXzhkODNlZDk3CiNkZWZpbmUgc2NzaV93YWl0X3JlcSBfc2V0X3ZlcihzY3NpX3dhaXRfcmVx
KQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fcmVxIHNtcF9hNDlhZDVmYQojZGVmaW5lIHNjc2lfZG9f
cmVxIF9zZXRfdmVyKHNjc2lfZG9fcmVxKQojZGVmaW5lIF9fdmVyX3Njc2lfcmVwb3J0X2J1c19y
ZXNldCBzbXBfODY2ZGRjNWEKI2RlZmluZSBzY3NpX3JlcG9ydF9idXNfcmVzZXQgX3NldF92ZXIo
c2NzaV9yZXBvcnRfYnVzX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfcmVxdWVzdHMg
c21wXzVlZjA4ODk4CiNkZWZpbmUgc2NzaV9ibG9ja19yZXF1ZXN0cyBfc2V0X3ZlcihzY3NpX2Js
b2NrX3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5ibG9ja19yZXF1ZXN0cyBzbXBfMTQ0
MWRkNTEKI2RlZmluZSBzY3NpX3VuYmxvY2tfcmVxdWVzdHMgX3NldF92ZXIoc2NzaV91bmJsb2Nr
X3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZ2V0X2hvc3RfZGV2IHNtcF8xZmU1YTM5ZAoj
ZGVmaW5lIHNjc2lfZ2V0X2hvc3RfZGV2IF9zZXRfdmVyKHNjc2lfZ2V0X2hvc3RfZGV2KQojZGVm
aW5lIF9fdmVyX3Njc2lfZnJlZV9ob3N0X2RldiBzbXBfYWRlMDNlM2YKI2RlZmluZSBzY3NpX2Zy
ZWVfaG9zdF9kZXYgX3NldF92ZXIoc2NzaV9mcmVlX2hvc3RfZGV2KQojZGVmaW5lIF9fdmVyX3Nj
c2lfc2xlZXAgc21wXzM1OTYyYmY4CiNkZWZpbmUgc2NzaV9zbGVlcCBfc2V0X3ZlcihzY3NpX3Ns
ZWVwKQojZGVmaW5lIF9fdmVyX3Byb2NfcHJpbnRfc2NzaWRldmljZSBzbXBfOTdkYTdjNTAKI2Rl
ZmluZSBwcm9jX3ByaW50X3Njc2lkZXZpY2UgX3NldF92ZXIocHJvY19wcmludF9zY3NpZGV2aWNl
KQojZGVmaW5lIF9fdmVyX3Byb2Nfc2NzaSBzbXBfNzA5NjcwMzQKI2RlZmluZSBwcm9jX3Njc2kg
X3NldF92ZXIocHJvY19zY3NpKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9fY29tcGxldGlvbiBzbXBf
MzlhN2Y2MjkKI2RlZmluZSBzY3NpX2lvX2NvbXBsZXRpb24gX3NldF92ZXIoc2NzaV9pb19jb21w
bGV0aW9uKQojZGVmaW5lIF9fdmVyX3Njc2lfZW5kX3JlcXVlc3Qgc21wXzE1NTNjNzlhCiNkZWZp
bmUgc2NzaV9lbmRfcmVxdWVzdCBfc2V0X3ZlcihzY3NpX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9f
dmVyX3Njc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0IHNtcF8xZjczNzEwNQojZGVmaW5lIHNjc2lf
cmVnaXN0ZXJfYmxvY2tlZF9ob3N0IF9zZXRfdmVyKHNjc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0
KQojZGVmaW5lIF9fdmVyX3Njc2lfZGVyZWdpc3Rlcl9ibG9ja2VkX2hvc3Qgc21wXzc2NmJkNDVi
CiNkZWZpbmUgc2NzaV9kZXJlZ2lzdGVyX2Jsb2NrZWRfaG9zdCBfc2V0X3ZlcihzY3NpX2RlcmVn
aXN0ZXJfYmxvY2tlZF9ob3N0KQojZGVmaW5lIF9fdmVyX3Njc2lfaG9zdGxpc3Qgc21wXzZlZTA3
MzhmCiNkZWZpbmUgc2NzaV9ob3N0bGlzdCBfc2V0X3ZlcihzY3NpX2hvc3RsaXN0KQojZGVmaW5l
IF9fdmVyX3Njc2lfaG9zdHMgc21wXzY0MmY0MTZjCiNkZWZpbmUgc2NzaV9ob3N0cyBfc2V0X3Zl
cihzY3NpX2hvc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZGV2aWNlbGlzdCBzbXBfMWI0YTk5MGIK
I2RlZmluZSBzY3NpX2RldmljZWxpc3QgX3NldF92ZXIoc2NzaV9kZXZpY2VsaXN0KQojZGVmaW5l
IF9fdmVyX3Njc2lfZGV2aWNlX3R5cGVzIHNtcF9kNTRiNzRhYwojZGVmaW5lIHNjc2lfZGV2aWNl
X3R5cGVzIF9zZXRfdmVyKHNjc2lfZGV2aWNlX3R5cGVzKQojZGVmaW5lIF9fdmVyX3Njc2lfYWRk
X3RpbWVyIHNtcF8zZWZiODZjZQojZGVmaW5lIHNjc2lfYWRkX3RpbWVyIF9zZXRfdmVyKHNjc2lf
YWRkX3RpbWVyKQojZGVmaW5lIF9fdmVyX3Njc2lfZGVsZXRlX3RpbWVyIHNtcF81NGUyOWM3Ngoj
ZGVmaW5lIHNjc2lfZGVsZXRlX3RpbWVyIF9zZXRfdmVyKHNjc2lfZGVsZXRlX3RpbWVyKQojIDE5
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NkbGFkcnYudmVy
IiAxCiNkZWZpbmUgX192ZXJfc2RsYV9zZXR1cCBzbXBfZTNhZDA2ZDkKI2RlZmluZSBzZGxhX3Nl
dHVwIF9zZXRfdmVyKHNkbGFfc2V0dXApCiNkZWZpbmUgX192ZXJfc2RsYV9kb3duIHNtcF8wNzYy
N2UzMwojZGVmaW5lIHNkbGFfZG93biBfc2V0X3ZlcihzZGxhX2Rvd24pCiNkZWZpbmUgX192ZXJf
c2RsYV9tYXBtZW0gc21wXzM2YmI3ODE4CiNkZWZpbmUgc2RsYV9tYXBtZW0gX3NldF92ZXIoc2Rs
YV9tYXBtZW0pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRlbiBzbXBfMWM0NDM4MzQKI2RlZmluZSBz
ZGxhX2ludGVuIF9zZXRfdmVyKHNkbGFfaW50ZW4pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRkZSBz
bXBfOTU0NzUyN2YKI2RlZmluZSBzZGxhX2ludGRlIF9zZXRfdmVyKHNkbGFfaW50ZGUpCiNkZWZp
bmUgX192ZXJfc2RsYV9pbnRhY2sgc21wXzQwYjkyODlmCiNkZWZpbmUgc2RsYV9pbnRhY2sgX3Nl
dF92ZXIoc2RsYV9pbnRhY2spCiNkZWZpbmUgX192ZXJfUzUxNF9pbnRhY2sgc21wXzljYjU1MGQz
CiNkZWZpbmUgUzUxNF9pbnRhY2sgX3NldF92ZXIoUzUxNF9pbnRhY2spCiNkZWZpbmUgX192ZXJf
cmVhZF9TNTE0X2ludF9zdGF0IHNtcF9kOGFjNzVhNgojZGVmaW5lIHJlYWRfUzUxNF9pbnRfc3Rh
dCBfc2V0X3ZlcihyZWFkX1M1MTRfaW50X3N0YXQpCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRyIHNt
cF9hYmQzNWQ3MgojZGVmaW5lIHNkbGFfaW50ciBfc2V0X3ZlcihzZGxhX2ludHIpCiNkZWZpbmUg
X192ZXJfc2RsYV9leGVjIHNtcF83NjMwYjgyOQojZGVmaW5lIHNkbGFfZXhlYyBfc2V0X3Zlcihz
ZGxhX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2RsYV9wZWVrIHNtcF8zOWFjMWVmZQojZGVmaW5lIHNk
bGFfcGVlayBfc2V0X3ZlcihzZGxhX3BlZWspCiNkZWZpbmUgX192ZXJfc2RsYV9wb2tlIHNtcF9h
NzA5Y2M1YQojZGVmaW5lIHNkbGFfcG9rZSBfc2V0X3ZlcihzZGxhX3Bva2UpCiNkZWZpbmUgX192
ZXJfd2FucGlwZV9od19wcm9iZSBzbXBfYTNlOThlYTAKI2RlZmluZSB3YW5waXBlX2h3X3Byb2Jl
IF9zZXRfdmVyKHdhbnBpcGVfaHdfcHJvYmUpCiMgMTk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvc2VsZWN0aW9uLnZlciIgMQojZGVmaW5lIF9fdmVyX3NldF9z
ZWxlY3Rpb24gc21wXzhlMDBiYmJlCiNkZWZpbmUgc2V0X3NlbGVjdGlvbiBfc2V0X3ZlcihzZXRf
c2VsZWN0aW9uKQojZGVmaW5lIF9fdmVyX3Bhc3RlX3NlbGVjdGlvbiBzbXBfNmRiMDdiNGUKI2Rl
ZmluZSBwYXN0ZV9zZWxlY3Rpb24gX3NldF92ZXIocGFzdGVfc2VsZWN0aW9uKQojIDE5NSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NlcXVlbmNlcl9zeW1zLnZl
ciIgMQojZGVmaW5lIF9fdmVyX25vdGVfdG9fZnJlcSBzbXBfNWQ5ODZmYzkKI2RlZmluZSBub3Rl
X3RvX2ZyZXEgX3NldF92ZXIobm90ZV90b19mcmVxKQojZGVmaW5lIF9fdmVyX2NvbXB1dGVfZmlu
ZXR1bmUgc21wXzA0Yzg3ZWM4CiNkZWZpbmUgY29tcHV0ZV9maW5ldHVuZSBfc2V0X3Zlcihjb21w
dXRlX2ZpbmV0dW5lKQojZGVmaW5lIF9fdmVyX3NlcV9jb3B5X3RvX2lucHV0IHNtcF83Njc5ZWU3
NgojZGVmaW5lIHNlcV9jb3B5X3RvX2lucHV0IF9zZXRfdmVyKHNlcV9jb3B5X3RvX2lucHV0KQoj
ZGVmaW5lIF9fdmVyX3NlcV9pbnB1dF9ldmVudCBzbXBfMTdiYTIzMWQKI2RlZmluZSBzZXFfaW5w
dXRfZXZlbnQgX3NldF92ZXIoc2VxX2lucHV0X2V2ZW50KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNl
cl9pbml0IHNtcF9mNzhmNjM2MwojZGVmaW5lIHNlcXVlbmNlcl9pbml0IF9zZXRfdmVyKHNlcXVl
bmNlcl9pbml0KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNlcl90aW1lciBzbXBfOTBiZDk3MTQKI2Rl
ZmluZSBzZXF1ZW5jZXJfdGltZXIgX3NldF92ZXIoc2VxdWVuY2VyX3RpbWVyKQojZGVmaW5lIF9f
dmVyX3NvdW5kX3RpbWVyX2luaXQgc21wXzIxNjFkNWU4CiNkZWZpbmUgc291bmRfdGltZXJfaW5p
dCBfc2V0X3Zlcihzb3VuZF90aW1lcl9pbml0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX2lu
dGVycnVwdCBzbXBfZTI2NzVhNzkKI2RlZmluZSBzb3VuZF90aW1lcl9pbnRlcnJ1cHQgX3NldF92
ZXIoc291bmRfdGltZXJfaW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX3N5bmNp
bnRlcnZhbCBzbXBfZmE2ODcxYmUKI2RlZmluZSBzb3VuZF90aW1lcl9zeW5jaW50ZXJ2YWwgX3Nl
dF92ZXIoc291bmRfdGltZXJfc3luY2ludGVydmFsKQojZGVmaW5lIF9fdmVyX3JlcHJvZ3JhbV90
aW1lciBzbXBfYzY4YjU2OGUKI2RlZmluZSByZXByb2dyYW1fdGltZXIgX3NldF92ZXIocmVwcm9n
cmFtX3RpbWVyKQojZGVmaW5lIF9fdmVyX2NlbnRfdHVuaW5nIHNtcF8wM2NlN2ZmNwojZGVmaW5l
IGNlbnRfdHVuaW5nIF9zZXRfdmVyKGNlbnRfdHVuaW5nKQojZGVmaW5lIF9fdmVyX3NlbWl0b25l
X3R1bmluZyBzbXBfOGI4NGFlYjEKI2RlZmluZSBzZW1pdG9uZV90dW5pbmcgX3NldF92ZXIoc2Vt
aXRvbmVfdHVuaW5nKQojIDE5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL3NlcmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9zZXJpYWwgc21wX2Ex
OGRjMmIxCiNkZWZpbmUgcmVnaXN0ZXJfc2VyaWFsIF9zZXRfdmVyKHJlZ2lzdGVyX3NlcmlhbCkK
I2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NlcmlhbCBzbXBfY2U4YTNlNjUKI2RlZmluZSB1bnJl
Z2lzdGVyX3NlcmlhbCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NlcmlhbCkKIyAxOTcgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZXJpby52ZXIiIDEKI2RlZmluZSBf
X3Zlcl9zZXJpb19yZWdpc3Rlcl9wb3J0IHNtcF9jMDQyNGEwMgojZGVmaW5lIHNlcmlvX3JlZ2lz
dGVyX3BvcnQgX3NldF92ZXIoc2VyaW9fcmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJp
b191bnJlZ2lzdGVyX3BvcnQgc21wXzliNWFiMzc3CiNkZWZpbmUgc2VyaW9fdW5yZWdpc3Rlcl9w
b3J0IF9zZXRfdmVyKHNlcmlvX3VucmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJpb19y
ZWdpc3Rlcl9kZXZpY2Ugc21wX2JlOTFhOTMxCiNkZWZpbmUgc2VyaW9fcmVnaXN0ZXJfZGV2aWNl
IF9zZXRfdmVyKHNlcmlvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb191bnJl
Z2lzdGVyX2RldmljZSBzbXBfNTUxZWI5NGUKI2RlZmluZSBzZXJpb191bnJlZ2lzdGVyX2Rldmlj
ZSBfc2V0X3ZlcihzZXJpb191bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19v
cGVuIHNtcF8xN2FiZmIyZgojZGVmaW5lIHNlcmlvX29wZW4gX3NldF92ZXIoc2VyaW9fb3BlbikK
I2RlZmluZSBfX3Zlcl9zZXJpb19jbG9zZSBzbXBfMzkzZDcwYzMKI2RlZmluZSBzZXJpb19jbG9z
ZSBfc2V0X3ZlcihzZXJpb19jbG9zZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19yZXNjYW4gc21wXzIx
MzNiMTdiCiNkZWZpbmUgc2VyaW9fcmVzY2FuIF9zZXRfdmVyKHNlcmlvX3Jlc2NhbikKIyAxOTgg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZ2ljb25zLnZlciIg
MQojIDE5OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWVt
LnZlciIgMQojZGVmaW5lIF9fdmVyX3NobWVtX2ZpbGVfc2V0dXAgc21wXzRiMDQwNWY4CiNkZWZp
bmUgc2htZW1fZmlsZV9zZXR1cCBfc2V0X3ZlcihzaG1lbV9maWxlX3NldHVwKQojIDIwMCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWlxLnZlciIgMQojIDIw
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NpZ25hbC52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9kZXF1ZXVlX3NpZ25hbCBzbXBfNjcyYTgxMGEKI2RlZmluZSBkZXF1
ZXVlX3NpZ25hbCBfc2V0X3ZlcihkZXF1ZXVlX3NpZ25hbCkKI2RlZmluZSBfX3Zlcl9mbHVzaF9z
aWduYWxzIHNtcF9mZWFmOTE3ZAojZGVmaW5lIGZsdXNoX3NpZ25hbHMgX3NldF92ZXIoZmx1c2hf
c2lnbmFscykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWcgc21wXzY1NWNjYmFhCiNkZWZpbmUgZm9y
Y2Vfc2lnIF9zZXRfdmVyKGZvcmNlX3NpZykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWdfaW5mbyBz
bXBfY2MyYjQyZTEKI2RlZmluZSBmb3JjZV9zaWdfaW5mbyBfc2V0X3Zlcihmb3JjZV9zaWdfaW5m
bykKI2RlZmluZSBfX3Zlcl9raWxsX3BnIHNtcF8zOGYyOTcxOQojZGVmaW5lIGtpbGxfcGcgX3Nl
dF92ZXIoa2lsbF9wZykKI2RlZmluZSBfX3Zlcl9raWxsX3BnX2luZm8gc21wX2FjN2M4MDA2CiNk
ZWZpbmUga2lsbF9wZ19pbmZvIF9zZXRfdmVyKGtpbGxfcGdfaW5mbykKI2RlZmluZSBfX3Zlcl9r
aWxsX3Byb2Mgc21wXzkzMmRhNjdlCiNkZWZpbmUga2lsbF9wcm9jIF9zZXRfdmVyKGtpbGxfcHJv
YykKI2RlZmluZSBfX3Zlcl9raWxsX3Byb2NfaW5mbyBzbXBfY2UxN2U3OTMKI2RlZmluZSBraWxs
X3Byb2NfaW5mbyBfc2V0X3ZlcihraWxsX3Byb2NfaW5mbykKI2RlZmluZSBfX3Zlcl9raWxsX3Ns
IHNtcF9mYmExMmZkMAojZGVmaW5lIGtpbGxfc2wgX3NldF92ZXIoa2lsbF9zbCkKI2RlZmluZSBf
X3Zlcl9raWxsX3NsX2luZm8gc21wXzc3MTMwOTFkCiNkZWZpbmUga2lsbF9zbF9pbmZvIF9zZXRf
dmVyKGtpbGxfc2xfaW5mbykKI2RlZmluZSBfX3Zlcl9ub3RpZnlfcGFyZW50IHNtcF9lNzZhZjE0
MwojZGVmaW5lIG5vdGlmeV9wYXJlbnQgX3NldF92ZXIobm90aWZ5X3BhcmVudCkKI2RlZmluZSBf
X3Zlcl9yZWNhbGNfc2lncGVuZGluZyBzbXBfNzY5ODdiMWYKI2RlZmluZSByZWNhbGNfc2lncGVu
ZGluZyBfc2V0X3ZlcihyZWNhbGNfc2lncGVuZGluZykKI2RlZmluZSBfX3Zlcl9zZW5kX3NpZyBz
bXBfOTMzNmRkMDEKI2RlZmluZSBzZW5kX3NpZyBfc2V0X3ZlcihzZW5kX3NpZykKI2RlZmluZSBf
X3Zlcl9zZW5kX3NpZ19pbmZvIHNtcF9lYmU4NTJhOAojZGVmaW5lIHNlbmRfc2lnX2luZm8gX3Nl
dF92ZXIoc2VuZF9zaWdfaW5mbykKI2RlZmluZSBfX3Zlcl9ibG9ja19hbGxfc2lnbmFscyBzbXBf
NGVkZDcyZjcKI2RlZmluZSBibG9ja19hbGxfc2lnbmFscyBfc2V0X3ZlcihibG9ja19hbGxfc2ln
bmFscykKI2RlZmluZSBfX3Zlcl91bmJsb2NrX2FsbF9zaWduYWxzIHNtcF8wYTI0ODdlMAojZGVm
aW5lIHVuYmxvY2tfYWxsX3NpZ25hbHMgX3NldF92ZXIodW5ibG9ja19hbGxfc2lnbmFscykKIyAy
MDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zbGhjLnZlciIg
MQojZGVmaW5lIF9fdmVyX3NsaGNfaW5pdCBzbXBfMmUwZTkyN2YKI2RlZmluZSBzbGhjX2luaXQg
X3NldF92ZXIoc2xoY19pbml0KQojZGVmaW5lIF9fdmVyX3NsaGNfZnJlZSBzbXBfMjg5NGNmYjAK
I2RlZmluZSBzbGhjX2ZyZWUgX3NldF92ZXIoc2xoY19mcmVlKQojZGVmaW5lIF9fdmVyX3NsaGNf
cmVtZW1iZXIgc21wXzBiYzU1ODY4CiNkZWZpbmUgc2xoY19yZW1lbWJlciBfc2V0X3ZlcihzbGhj
X3JlbWVtYmVyKQojZGVmaW5lIF9fdmVyX3NsaGNfY29tcHJlc3Mgc21wXzc2MTM1ZTZjCiNkZWZp
bmUgc2xoY19jb21wcmVzcyBfc2V0X3ZlcihzbGhjX2NvbXByZXNzKQojZGVmaW5lIF9fdmVyX3Ns
aGNfdW5jb21wcmVzcyBzbXBfM2JjMTMxOWUKI2RlZmluZSBzbGhjX3VuY29tcHJlc3MgX3NldF92
ZXIoc2xoY191bmNvbXByZXNzKQojZGVmaW5lIF9fdmVyX3NsaGNfdG9zcyBzbXBfZjg5ZTM0NTUK
I2RlZmluZSBzbGhjX3Rvc3MgX3NldF92ZXIoc2xoY190b3NzKQojIDIwMyAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvbnlwaS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9zb255cGlfY2FtZXJhX2NvbW1hbmQgc21wX2ZkNjU5OTFhCiNkZWZpbmUgc29ueXBpX2NhbWVy
YV9jb21tYW5kIF9zZXRfdmVyKHNvbnlwaV9jYW1lcmFfY29tbWFuZCkKIyAyMDQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zb3VuZF9jb3JlLnZlciIgMQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgc21wX2MyMzA0NjFiCiNkZWZpbmUgcmVn
aXN0ZXJfc291bmRfc3BlY2lhbCBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX21peGVyIHNtcF80OTIxNThkZAojZGVmaW5lIHJlZ2lz
dGVyX3NvdW5kX21peGVyIF9zZXRfdmVyKHJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9f
dmVyX3JlZ2lzdGVyX3NvdW5kX21pZGkgc21wXzhmYzBkMWNiCiNkZWZpbmUgcmVnaXN0ZXJfc291
bmRfbWlkaSBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3JlZ2lz
dGVyX3NvdW5kX2RzcCBzbXBfMmY2MDEwN2EKI2RlZmluZSByZWdpc3Rlcl9zb3VuZF9kc3AgX3Nl
dF92ZXIocmVnaXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3N5
bnRoIHNtcF83OGI3ZTcyMAojZGVmaW5lIHJlZ2lzdGVyX3NvdW5kX3N5bnRoIF9zZXRfdmVyKHJl
Z2lzdGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3BlY2lh
bCBzbXBfOTljOTVmYTUKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgX3NldF92ZXIo
dW5yZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf
bWl4ZXIgc21wXzdhZmM5ZDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9taXhlciBfc2V0X3Zl
cih1bnJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf
bWlkaSBzbXBfZmRhYjZkZTMKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX21pZGkgX3NldF92ZXIo
dW5yZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfZHNw
IHNtcF9jZDA4M2IxMAojZGVmaW5lIHVucmVnaXN0ZXJfc291bmRfZHNwIF9zZXRfdmVyKHVucmVn
aXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3ludGggc21w
X2RmMDMxMDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9zeW50aCBfc2V0X3Zlcih1bnJlZ2lz
dGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX21vZF9maXJtd2FyZV9sb2FkIHNtcF8zOWUz
ZGQyMwojZGVmaW5lIG1vZF9maXJtd2FyZV9sb2FkIF9zZXRfdmVyKG1vZF9maXJtd2FyZV9sb2Fk
KQojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvdW5k
X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbWl4ZXJfZGV2cyBzbXBfNGJlYWYwYjMKI2RlZmlu
ZSBtaXhlcl9kZXZzIF9zZXRfdmVyKG1peGVyX2RldnMpCiNkZWZpbmUgX192ZXJfYXVkaW9fZGV2
cyBzbXBfN2IzYzg1OTMKI2RlZmluZSBhdWRpb19kZXZzIF9zZXRfdmVyKGF1ZGlvX2RldnMpCiNk
ZWZpbmUgX192ZXJfbnVtX21peGVycyBzbXBfOWQ4NDViMTgKI2RlZmluZSBudW1fbWl4ZXJzIF9z
ZXRfdmVyKG51bV9taXhlcnMpCiNkZWZpbmUgX192ZXJfbnVtX2F1ZGlvZGV2cyBzbXBfNGNkMDFi
ZGQKI2RlZmluZSBudW1fYXVkaW9kZXZzIF9zZXRfdmVyKG51bV9hdWRpb2RldnMpCiNkZWZpbmUg
X192ZXJfbWlkaV9kZXZzIHNtcF84YTY3MzZiNgojZGVmaW5lIG1pZGlfZGV2cyBfc2V0X3Zlciht
aWRpX2RldnMpCiNkZWZpbmUgX192ZXJfbnVtX21pZGlzIHNtcF9hMWVhZTdjZgojZGVmaW5lIG51
bV9taWRpcyBfc2V0X3ZlcihudW1fbWlkaXMpCiNkZWZpbmUgX192ZXJfc3ludGhfZGV2cyBzbXBf
MTI2MDc3NGIKI2RlZmluZSBzeW50aF9kZXZzIF9zZXRfdmVyKHN5bnRoX2RldnMpCiNkZWZpbmUg
X192ZXJfbnVtX3N5bnRocyBzbXBfYmYwN2NhNmUKI2RlZmluZSBudW1fc3ludGhzIF9zZXRfdmVy
KG51bV9zeW50aHMpCiNkZWZpbmUgX192ZXJfc291bmRfdGltZXJfZGV2cyBzbXBfMWMzMGQ2ZmEK
I2RlZmluZSBzb3VuZF90aW1lcl9kZXZzIF9zZXRfdmVyKHNvdW5kX3RpbWVyX2RldnMpCiNkZWZp
bmUgX192ZXJfbnVtX3NvdW5kX3RpbWVycyBzbXBfOThlZGIxZTAKI2RlZmluZSBudW1fc291bmRf
dGltZXJzIF9zZXRfdmVyKG51bV9zb3VuZF90aW1lcnMpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z
dGFsbF9hdWRpb2RydiBzbXBfNGNjYjNkMzcKI2RlZmluZSBzb3VuZF9pbnN0YWxsX2F1ZGlvZHJ2
IF9zZXRfdmVyKHNvdW5kX2luc3RhbGxfYXVkaW9kcnYpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z
dGFsbF9taXhlciBzbXBfMjBhZTZlMGIKI2RlZmluZSBzb3VuZF9pbnN0YWxsX21peGVyIF9zZXRf
dmVyKHNvdW5kX2luc3RhbGxfbWl4ZXIpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfZG1hIHNt
cF85YTk1NzMzZgojZGVmaW5lIHNvdW5kX2FsbG9jX2RtYSBfc2V0X3Zlcihzb3VuZF9hbGxvY19k
bWEpCiNkZWZpbmUgX192ZXJfc291bmRfZnJlZV9kbWEgc21wXzM5NGNiMDg4CiNkZWZpbmUgc291
bmRfZnJlZV9kbWEgX3NldF92ZXIoc291bmRfZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRf
b3Blbl9kbWEgc21wX2NjNGI4Nzk3CiNkZWZpbmUgc291bmRfb3Blbl9kbWEgX3NldF92ZXIoc291
bmRfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRfY2xvc2VfZG1hIHNtcF80MThmNWZiZQoj
ZGVmaW5lIHNvdW5kX2Nsb3NlX2RtYSBfc2V0X3Zlcihzb3VuZF9jbG9zZV9kbWEpCiNkZWZpbmUg
X192ZXJfc291bmRfYWxsb2NfYXVkaW9kZXYgc21wXzUwMzU3MzZjCiNkZWZpbmUgc291bmRfYWxs
b2NfYXVkaW9kZXYgX3NldF92ZXIoc291bmRfYWxsb2NfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJf
c291bmRfYWxsb2NfbWlkaWRldiBzbXBfYmE0MTNmODcKI2RlZmluZSBzb3VuZF9hbGxvY19taWRp
ZGV2IF9zZXRfdmVyKHNvdW5kX2FsbG9jX21pZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxs
b2NfbWl4ZXJkZXYgc21wXzFiM2RmM2NmCiNkZWZpbmUgc291bmRfYWxsb2NfbWl4ZXJkZXYgX3Nl
dF92ZXIoc291bmRfYWxsb2NfbWl4ZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfdGlt
ZXJkZXYgc21wXzUxZTM1NGIyCiNkZWZpbmUgc291bmRfYWxsb2NfdGltZXJkZXYgX3NldF92ZXIo
c291bmRfYWxsb2NfdGltZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2Nfc3ludGhkZXYg
c21wX2M3NDhkMTA5CiNkZWZpbmUgc291bmRfYWxsb2Nfc3ludGhkZXYgX3NldF92ZXIoc291bmRf
YWxsb2Nfc3ludGhkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX2F1ZGlvZGV2IHNtcF9h
OTQ4NzUxZQojZGVmaW5lIHNvdW5kX3VubG9hZF9hdWRpb2RldiBfc2V0X3Zlcihzb3VuZF91bmxv
YWRfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21pZGlkZXYgc21wX2E2YmI0
MTRjCiNkZWZpbmUgc291bmRfdW5sb2FkX21pZGlkZXYgX3NldF92ZXIoc291bmRfdW5sb2FkX21p
ZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21peGVyZGV2IHNtcF9hNTFjOTEzYgoj
ZGVmaW5lIHNvdW5kX3VubG9hZF9taXhlcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfbWl4ZXJk
ZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3RpbWVyZGV2IHNtcF9hNDFlYWQ1ZgojZGVm
aW5lIHNvdW5kX3VubG9hZF90aW1lcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfdGltZXJkZXYp
CiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3N5bnRoZGV2IHNtcF8wNjMzOTgxNQojZGVmaW5l
IHNvdW5kX3VubG9hZF9zeW50aGRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfc3ludGhkZXYpCiNk
ZWZpbmUgX192ZXJfbG9hZF9taXhlcl92b2x1bWVzIHNtcF9hMWQ1ZjA0ZgojZGVmaW5lIGxvYWRf
bWl4ZXJfdm9sdW1lcyBfc2V0X3Zlcihsb2FkX21peGVyX3ZvbHVtZXMpCiNkZWZpbmUgX192ZXJf
Y29uZl9wcmludGYgc21wXzBmMjgwMDM1CiNkZWZpbmUgY29uZl9wcmludGYgX3NldF92ZXIoY29u
Zl9wcmludGYpCiNkZWZpbmUgX192ZXJfY29uZl9wcmludGYyIHNtcF83YmRmMDkwNwojZGVmaW5l
IGNvbmZfcHJpbnRmMiBfc2V0X3Zlcihjb25mX3ByaW50ZjIpCiMgMjA2ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvc3VuaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9z
dW5pX2luaXQgc21wXzc4MTI0NTE1CiNkZWZpbmUgc3VuaV9pbml0IF9zZXRfdmVyKHN1bmlfaW5p
dCkKIyAyMDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdW5y
cGNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ycGNfYWxsb2NhdGUgc21wXzBjZDFjOTg5CiNk
ZWZpbmUgcnBjX2FsbG9jYXRlIF9zZXRfdmVyKHJwY19hbGxvY2F0ZSkKI2RlZmluZSBfX3Zlcl9y
cGNfZnJlZSBzbXBfZjlkMTE2NGMKI2RlZmluZSBycGNfZnJlZSBfc2V0X3ZlcihycGNfZnJlZSkK
I2RlZmluZSBfX3Zlcl9ycGNfZXhlY3V0ZSBzbXBfNGU5MDA3NjkKI2RlZmluZSBycGNfZXhlY3V0
ZSBfc2V0X3ZlcihycGNfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9ycGNfaW5pdF90YXNrIHNtcF8w
Y2M5YTY2NwojZGVmaW5lIHJwY19pbml0X3Rhc2sgX3NldF92ZXIocnBjX2luaXRfdGFzaykKI2Rl
ZmluZSBfX3Zlcl9ycGNfc2xlZXBfb24gc21wX2UxOTVmNWI2CiNkZWZpbmUgcnBjX3NsZWVwX29u
IF9zZXRfdmVyKHJwY19zbGVlcF9vbikKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9uZXh0IHNt
cF8wMzg4ZWZiMAojZGVmaW5lIHJwY193YWtlX3VwX25leHQgX3NldF92ZXIocnBjX3dha2VfdXBf
bmV4dCkKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF90YXNrIHNtcF83ZGIwYzZhMwojZGVmaW5l
IHJwY193YWtlX3VwX3Rhc2sgX3NldF92ZXIocnBjX3dha2VfdXBfdGFzaykKI2RlZmluZSBfX3Zl
cl9ycGNfbmV3X2NoaWxkIHNtcF80ZmRjYjY4YQojZGVmaW5lIHJwY19uZXdfY2hpbGQgX3NldF92
ZXIocnBjX25ld19jaGlsZCkKI2RlZmluZSBfX3Zlcl9ycGNfcnVuX2NoaWxkIHNtcF82OTFjNzUz
ZgojZGVmaW5lIHJwY19ydW5fY2hpbGQgX3NldF92ZXIocnBjX3J1bl9jaGlsZCkKI2RlZmluZSBf
X3Zlcl9ycGNpb2RfZG93biBzbXBfYmFiZjBmMzUKI2RlZmluZSBycGNpb2RfZG93biBfc2V0X3Zl
cihycGNpb2RfZG93bikKI2RlZmluZSBfX3Zlcl9ycGNpb2RfdXAgc21wXzM3NTQ5MmE0CiNkZWZp
bmUgcnBjaW9kX3VwIF9zZXRfdmVyKHJwY2lvZF91cCkKI2RlZmluZSBfX3Zlcl9ycGNfbmV3X3Rh
c2sgc21wXzMzNDliMDQxCiNkZWZpbmUgcnBjX25ld190YXNrIF9zZXRfdmVyKHJwY19uZXdfdGFz
aykKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9zdGF0dXMgc21wXzczNjQ0Y2I4CiNkZWZpbmUg
cnBjX3dha2VfdXBfc3RhdHVzIF9zZXRfdmVyKHJwY193YWtlX3VwX3N0YXR1cykKI2RlZmluZSBf
X3Zlcl9ycGNfcmVsZWFzZV90YXNrIHNtcF9iMDM3ODk0MAojZGVmaW5lIHJwY19yZWxlYXNlX3Rh
c2sgX3NldF92ZXIocnBjX3JlbGVhc2VfdGFzaykKI2RlZmluZSBfX3Zlcl9ycGNfY3JlYXRlX2Ns
aWVudCBzbXBfN2Y0MTQ2MTcKI2RlZmluZSBycGNfY3JlYXRlX2NsaWVudCBfc2V0X3ZlcihycGNf
Y3JlYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ycGNfZGVzdHJveV9jbGllbnQgc21wX2Q4NWQx
OTI3CiNkZWZpbmUgcnBjX2Rlc3Ryb3lfY2xpZW50IF9zZXRfdmVyKHJwY19kZXN0cm95X2NsaWVu
dCkKI2RlZmluZSBfX3Zlcl9ycGNfc2h1dGRvd25fY2xpZW50IHNtcF9lMmIxOWZmYQojZGVmaW5l
IHJwY19zaHV0ZG93bl9jbGllbnQgX3NldF92ZXIocnBjX3NodXRkb3duX2NsaWVudCkKI2RlZmlu
ZSBfX3Zlcl9ycGNfa2lsbGFsbF90YXNrcyBzbXBfMTZjODc1MTQKI2RlZmluZSBycGNfa2lsbGFs
bF90YXNrcyBfc2V0X3ZlcihycGNfa2lsbGFsbF90YXNrcykKI2RlZmluZSBfX3Zlcl9ycGNfY2Fs
bF9zeW5jIHNtcF80Nzk4YjNlMwojZGVmaW5lIHJwY19jYWxsX3N5bmMgX3NldF92ZXIocnBjX2Nh
bGxfc3luYykKI2RlZmluZSBfX3Zlcl9ycGNfY2FsbF9hc3luYyBzbXBfY2VkMjJmNzEKI2RlZmlu
ZSBycGNfY2FsbF9hc3luYyBfc2V0X3ZlcihycGNfY2FsbF9hc3luYykKI2RlZmluZSBfX3Zlcl9y
cGNfY2FsbF9zZXR1cCBzbXBfYzdiY2YxN2EKI2RlZmluZSBycGNfY2FsbF9zZXR1cCBfc2V0X3Zl
cihycGNfY2FsbF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWdtYXNrIHNtcF82ZjI0
YzZlNAojZGVmaW5lIHJwY19jbG50X3NpZ21hc2sgX3NldF92ZXIocnBjX2NsbnRfc2lnbWFzaykK
I2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWd1bm1hc2sgc21wXzgzM2MwZGM5CiNkZWZpbmUgcnBj
X2NsbnRfc2lndW5tYXNrIF9zZXRfdmVyKHJwY19jbG50X3NpZ3VubWFzaykKI2RlZmluZSBfX3Zl
cl9ycGNfZGVsYXkgc21wX2Q2YTRlMTQ4CiNkZWZpbmUgcnBjX2RlbGF5IF9zZXRfdmVyKHJwY19k
ZWxheSkKI2RlZmluZSBfX3Zlcl9ycGNfcmVzdGFydF9jYWxsIHNtcF81YTM0MzI4MwojZGVmaW5l
IHJwY19yZXN0YXJ0X2NhbGwgX3NldF92ZXIocnBjX3Jlc3RhcnRfY2FsbCkKI2RlZmluZSBfX3Zl
cl94cHJ0X2NyZWF0ZV9wcm90byBzbXBfMDFkYWVkN2QKI2RlZmluZSB4cHJ0X2NyZWF0ZV9wcm90
byBfc2V0X3Zlcih4cHJ0X2NyZWF0ZV9wcm90bykKI2RlZmluZSBfX3Zlcl94cHJ0X2Rlc3Ryb3kg
c21wXzA4NTEyM2JmCiNkZWZpbmUgeHBydF9kZXN0cm95IF9zZXRfdmVyKHhwcnRfZGVzdHJveSkK
I2RlZmluZSBfX3Zlcl94cHJ0X3NldF90aW1lb3V0IHNtcF82NGU0ODZjMgojZGVmaW5lIHhwcnRf
c2V0X3RpbWVvdXQgX3NldF92ZXIoeHBydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ycGNh
dXRoX3JlZ2lzdGVyIHNtcF8yMjAxNTI3ZAojZGVmaW5lIHJwY2F1dGhfcmVnaXN0ZXIgX3NldF92
ZXIocnBjYXV0aF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3VucmVnaXN0ZXIgc21w
XzJmMTgwZDQzCiNkZWZpbmUgcnBjYXV0aF91bnJlZ2lzdGVyIF9zZXRfdmVyKHJwY2F1dGhfdW5y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luaXRfY3JlZGNhY2hlIHNtcF8zYTQ0MWEw
NQojZGVmaW5lIHJwY2F1dGhfaW5pdF9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9pbml0X2Ny
ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2ZyZWVfY3JlZGNhY2hlIHNtcF81NzYyNGYy
YQojZGVmaW5lIHJwY2F1dGhfZnJlZV9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9mcmVlX2Ny
ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luc2VydF9jcmVkY2FjaGUgc21wX2IyZDFj
OWM2CiNkZWZpbmUgcnBjYXV0aF9pbnNlcnRfY3JlZGNhY2hlIF9zZXRfdmVyKHJwY2F1dGhfaW5z
ZXJ0X2NyZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2xvb2t1cGNyZWQgc21wXzdhYzQ2
ZjdjCiNkZWZpbmUgcnBjYXV0aF9sb29rdXBjcmVkIF9zZXRfdmVyKHJwY2F1dGhfbG9va3VwY3Jl
ZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2JpbmRjcmVkIHNtcF8wMmJiZDRjOQojZGVmaW5lIHJw
Y2F1dGhfYmluZGNyZWQgX3NldF92ZXIocnBjYXV0aF9iaW5kY3JlZCkKI2RlZmluZSBfX3Zlcl9y
cGNhdXRoX21hdGNoY3JlZCBzbXBfZWY1YjYwMWQKI2RlZmluZSBycGNhdXRoX21hdGNoY3JlZCBf
c2V0X3ZlcihycGNhdXRoX21hdGNoY3JlZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3JlbGVhc2Vj
cmVkIHNtcF85MzBkNWYwMwojZGVmaW5lIHJwY2F1dGhfcmVsZWFzZWNyZWQgX3NldF92ZXIocnBj
YXV0aF9yZWxlYXNlY3JlZCkKI2RlZmluZSBfX3Zlcl9zdmNfY3JlYXRlIHNtcF9iZGE2ZTEyMAoj
ZGVmaW5lIHN2Y19jcmVhdGUgX3NldF92ZXIoc3ZjX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9zdmNf
Y3JlYXRlX3RocmVhZCBzbXBfMWExMzM1ZTYKI2RlZmluZSBzdmNfY3JlYXRlX3RocmVhZCBfc2V0
X3ZlcihzdmNfY3JlYXRlX3RocmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfZXhpdF90aHJlYWQgc21w
XzRkOWZiNTNiCiNkZWZpbmUgc3ZjX2V4aXRfdGhyZWFkIF9zZXRfdmVyKHN2Y19leGl0X3RocmVh
ZCkKI2RlZmluZSBfX3Zlcl9zdmNfZGVzdHJveSBzbXBfZjE3N2IyMTUKI2RlZmluZSBzdmNfZGVz
dHJveSBfc2V0X3ZlcihzdmNfZGVzdHJveSkKI2RlZmluZSBfX3Zlcl9zdmNfZHJvcCBzbXBfNDQ5
ZTFmNGYKI2RlZmluZSBzdmNfZHJvcCBfc2V0X3ZlcihzdmNfZHJvcCkKI2RlZmluZSBfX3Zlcl9z
dmNfcHJvY2VzcyBzbXBfOGE1MWY3MWMKI2RlZmluZSBzdmNfcHJvY2VzcyBfc2V0X3ZlcihzdmNf
cHJvY2VzcykKI2RlZmluZSBfX3Zlcl9zdmNfcmVjdiBzbXBfMjc4MDU4ZWMKI2RlZmluZSBzdmNf
cmVjdiBfc2V0X3ZlcihzdmNfcmVjdikKI2RlZmluZSBfX3Zlcl9zdmNfd2FrZV91cCBzbXBfOTJl
OWM3NTIKI2RlZmluZSBzdmNfd2FrZV91cCBfc2V0X3ZlcihzdmNfd2FrZV91cCkKI2RlZmluZSBf
X3Zlcl9zdmNfbWFrZXNvY2sgc21wXzVlNDE4YWM3CiNkZWZpbmUgc3ZjX21ha2Vzb2NrIF9zZXRf
dmVyKHN2Y19tYWtlc29jaykKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY19yZWdpc3RlciBzbXBfM2U0
ZjFlYzkKI2RlZmluZSBycGNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihycGNfcHJvY19yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY191bnJlZ2lzdGVyIHNtcF81YmQyNjAwMAojZGVmaW5l
IHJwY19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocnBjX3Byb2NfdW5yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9ycGNfcHJvY19yZWFkIHNtcF84ZTIwZGUzNAojZGVmaW5lIHJwY19wcm9jX3JlYWQg
X3NldF92ZXIocnBjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWdpc3RlciBz
bXBfZTI4ZWM4NGEKI2RlZmluZSBzdmNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihzdmNfcHJvY19y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY191bnJlZ2lzdGVyIHNtcF8xMmUyODBlMwoj
ZGVmaW5lIHN2Y19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIoc3ZjX3Byb2NfdW5yZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWFkIHNtcF84NjZiNTJkMwojZGVmaW5lIHN2Y19wcm9j
X3JlYWQgX3NldF92ZXIoc3ZjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX2Fy
cmF5IHNtcF80Nzk4N2FlZgojZGVmaW5lIHhkcl9lbmNvZGVfYXJyYXkgX3NldF92ZXIoeGRyX2Vu
Y29kZV9hcnJheSkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX3N0cmluZyBzbXBfM2Q5YmI0MmMK
I2RlZmluZSB4ZHJfZW5jb2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZW5jb2RlX3N0cmluZykKI2Rl
ZmluZSBfX3Zlcl94ZHJfZGVjb2RlX3N0cmluZyBzbXBfZTdlMDhjYmQKI2RlZmluZSB4ZHJfZGVj
b2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZGVjb2RlX3N0cmluZykKI2RlZmluZSBfX3Zlcl94ZHJf
ZGVjb2RlX25ldG9iaiBzbXBfMWI0MzFjOGYKI2RlZmluZSB4ZHJfZGVjb2RlX25ldG9iaiBfc2V0
X3Zlcih4ZHJfZGVjb2RlX25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX25ldG9iaiBz
bXBfMDgzNjY3NDcKI2RlZmluZSB4ZHJfZW5jb2RlX25ldG9iaiBfc2V0X3Zlcih4ZHJfZW5jb2Rl
X25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfemVybyBzbXBfNjYwMmVmOTUKI2RlZmluZSB4ZHJf
emVybyBfc2V0X3Zlcih4ZHJfemVybykKI2RlZmluZSBfX3Zlcl94ZHJfb25lIHNtcF84M2NjYmYw
NwojZGVmaW5lIHhkcl9vbmUgX3NldF92ZXIoeGRyX29uZSkKI2RlZmluZSBfX3Zlcl94ZHJfdHdv
IHNtcF9lZGNjMWZlYwojZGVmaW5lIHhkcl90d28gX3NldF92ZXIoeGRyX3R3bykKI2RlZmluZSBf
X3Zlcl94ZHJfc2hpZnRfaW92ZWMgc21wXzk0OWQxMmE1CiNkZWZpbmUgeGRyX3NoaWZ0X2lvdmVj
IF9zZXRfdmVyKHhkcl9zaGlmdF9pb3ZlYykKI2RlZmluZSBfX3Zlcl94ZHJfemVyb19pb3ZlYyBz
bXBfYmRkNTliZWYKI2RlZmluZSB4ZHJfemVyb19pb3ZlYyBfc2V0X3Zlcih4ZHJfemVyb19pb3Zl
YykKI2RlZmluZSBfX3Zlcl9ycGNfc3VjY2VzcyBzbXBfYmZlZjU3YmYKI2RlZmluZSBycGNfc3Vj
Y2VzcyBfc2V0X3ZlcihycGNfc3VjY2VzcykKI2RlZmluZSBfX3Zlcl9ycGNfZ2FyYmFnZV9hcmdz
IHNtcF83NDcxODk1YwojZGVmaW5lIHJwY19nYXJiYWdlX2FyZ3MgX3NldF92ZXIocnBjX2dhcmJh
Z2VfYXJncykKI2RlZmluZSBfX3Zlcl9ycGNfc3lzdGVtX2VyciBzbXBfZDRiYjQwNTQKI2RlZmlu
ZSBycGNfc3lzdGVtX2VyciBfc2V0X3ZlcihycGNfc3lzdGVtX2VycikKI2RlZmluZSBfX3Zlcl9y
cGNfZGVidWcgc21wXzMxYTg5ZDU5CiNkZWZpbmUgcnBjX2RlYnVnIF9zZXRfdmVyKHJwY19kZWJ1
ZykKI2RlZmluZSBfX3Zlcl9uZnNfZGVidWcgc21wX2FmNWJmNmVmCiNkZWZpbmUgbmZzX2RlYnVn
IF9zZXRfdmVyKG5mc19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9uZnNkX2RlYnVnIHNtcF9iZjlkMWI5
NgojZGVmaW5lIG5mc2RfZGVidWcgX3NldF92ZXIobmZzZF9kZWJ1ZykKI2RlZmluZSBfX3Zlcl9u
bG1fZGVidWcgc21wXzUzNDQ1ZjY4CiNkZWZpbmUgbmxtX2RlYnVnIF9zZXRfdmVyKG5sbV9kZWJ1
ZykKIyAyMDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdS52
ZXIiIDEKI2RlZmluZSBfX3Zlcl9zdV9udW1fcG9ydHMgc21wXzg1MzE4MDRmCiNkZWZpbmUgc3Vf
bnVtX3BvcnRzIF9zZXRfdmVyKHN1X251bV9wb3J0cykKIyAyMDkgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zd2lvdGxiLnZlciIgMQojZGVmaW5lIF9fdmVyX3N3
aW90bGJfaW5pdCBzbXBfY2NkNzE4OTAKI2RlZmluZSBzd2lvdGxiX2luaXQgX3NldF92ZXIoc3dp
b3RsYl9pbml0KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfbWFwX3NpbmdsZSBzbXBfNjA5NTUwMmQK
I2RlZmluZSBzd2lvdGxiX21hcF9zaW5nbGUgX3NldF92ZXIoc3dpb3RsYl9tYXBfc2luZ2xlKQoj
ZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2luZ2xlIHNtcF9lNjAzNTFhMwojZGVmaW5lIHN3
aW90bGJfdW5tYXBfc2luZ2xlIF9zZXRfdmVyKHN3aW90bGJfdW5tYXBfc2luZ2xlKQojZGVmaW5l
IF9fdmVyX3N3aW90bGJfbWFwX3NnIHNtcF9iYTEzMjA0MgojZGVmaW5lIHN3aW90bGJfbWFwX3Nn
IF9zZXRfdmVyKHN3aW90bGJfbWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2cg
c21wXzA5NTJmZmM1CiNkZWZpbmUgc3dpb3RsYl91bm1hcF9zZyBfc2V0X3Zlcihzd2lvdGxiX3Vu
bWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zaW5nbGUgc21wXzc5MmMzMTFmCiNk
ZWZpbmUgc3dpb3RsYl9zeW5jX3NpbmdsZSBfc2V0X3Zlcihzd2lvdGxiX3N5bmNfc2luZ2xlKQoj
ZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zZyBzbXBfNzMzYzczODMKI2RlZmluZSBzd2lvdGxi
X3N5bmNfc2cgX3NldF92ZXIoc3dpb3RsYl9zeW5jX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJf
ZG1hX2FkZHJlc3Mgc21wX2QzOTUzMWVmCiNkZWZpbmUgc3dpb3RsYl9kbWFfYWRkcmVzcyBfc2V0
X3Zlcihzd2lvdGxiX2RtYV9hZGRyZXNzKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfYWxsb2NfY29u
c2lzdGVudCBzbXBfMDFmNmQwNjEKI2RlZmluZSBzd2lvdGxiX2FsbG9jX2NvbnNpc3RlbnQgX3Nl
dF92ZXIoc3dpb3RsYl9hbGxvY19jb25zaXN0ZW50KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfZnJl
ZV9jb25zaXN0ZW50IHNtcF9jOTA1ZWYzOQojZGVmaW5lIHN3aW90bGJfZnJlZV9jb25zaXN0ZW50
IF9zZXRfdmVyKHN3aW90bGJfZnJlZV9jb25zaXN0ZW50KQojIDIxMCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaGNp
X3JlZ2lzdGVyX2RldiBzbXBfYzgxOWMwMDkKI2RlZmluZSBoY2lfcmVnaXN0ZXJfZGV2IF9zZXRf
dmVyKGhjaV9yZWdpc3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfZGV2IHNt
cF9hMTAxNTg3NwojZGVmaW5lIGhjaV91bnJlZ2lzdGVyX2RldiBfc2V0X3ZlcihoY2lfdW5yZWdp
c3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3JlZ2lzdGVyX3Byb3RvIHNtcF9iOWMxZDNlYwoj
ZGVmaW5lIGhjaV9yZWdpc3Rlcl9wcm90byBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfcHJvdG8pCiNk
ZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfcHJvdG8gc21wXzk3N2I5NWQ5CiNkZWZpbmUgaGNp
X3VucmVnaXN0ZXJfcHJvdG8gX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfcHJvdG8pCiNkZWZpbmUg
X192ZXJfaGNpX3JlZ2lzdGVyX25vdGlmaWVyIHNtcF85ZjVjNzZlYQojZGVmaW5lIGhjaV9yZWdp
c3Rlcl9ub3RpZmllciBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUgX192
ZXJfaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIgc21wX2E0NTFkMjQ2CiNkZWZpbmUgaGNpX3VucmVn
aXN0ZXJfbm90aWZpZXIgX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUg
X192ZXJfaGNpX2Nvbm5lY3Qgc21wXzA0N2JmNTU1CiNkZWZpbmUgaGNpX2Nvbm5lY3QgX3NldF92
ZXIoaGNpX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfaGNpX2Rpc2Nvbm5lY3Qgc21wXzgyY2M0NWI1
CiNkZWZpbmUgaGNpX2Rpc2Nvbm5lY3QgX3NldF92ZXIoaGNpX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg
X192ZXJfaGNpX2Rldl9nZXQgc21wX2ZlZmRjOTQ5CiNkZWZpbmUgaGNpX2Rldl9nZXQgX3NldF92
ZXIoaGNpX2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfaGNpX3JlY3ZfZnJhbWUgc21wXzBkYWU0NGRm
CiNkZWZpbmUgaGNpX3JlY3ZfZnJhbWUgX3NldF92ZXIoaGNpX3JlY3ZfZnJhbWUpCiNkZWZpbmUg
X192ZXJfaGNpX3NlbmRfYWNsIHNtcF83YTUwZjEyNwojZGVmaW5lIGhjaV9zZW5kX2FjbCBfc2V0
X3ZlcihoY2lfc2VuZF9hY2wpCiNkZWZpbmUgX192ZXJfaGNpX3NlbmRfc2NvIHNtcF81YzRlOGMw
YwojZGVmaW5lIGhjaV9zZW5kX3NjbyBfc2V0X3ZlcihoY2lfc2VuZF9zY28pCiNkZWZpbmUgX192
ZXJfaGNpX3NlbmRfcmF3IHNtcF9mNDU3ZTg5ZAojZGVmaW5lIGhjaV9zZW5kX3JhdyBfc2V0X3Zl
cihoY2lfc2VuZF9yYXcpCiNkZWZpbmUgX192ZXJfYmx1ZXpfZHVtcCBzbXBfMTMyYmJmNjAKI2Rl
ZmluZSBibHVlel9kdW1wIF9zZXRfdmVyKGJsdWV6X2R1bXApCiNkZWZpbmUgX192ZXJfYmFzd2Fw
IHNtcF80MzAxM2M5MwojZGVmaW5lIGJhc3dhcCBfc2V0X3ZlcihiYXN3YXApCiNkZWZpbmUgX192
ZXJfYmF0b3N0ciBzbXBfMGNkN2Y1YTgKI2RlZmluZSBiYXRvc3RyIF9zZXRfdmVyKGJhdG9zdHIp
CiNkZWZpbmUgX192ZXJfYnRlcnIgc21wX2YwNjY0NzljCiNkZWZpbmUgYnRlcnIgX3NldF92ZXIo
YnRlcnIpCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja19yZWdpc3RlciBzbXBfYjM2YmI1MzgKI2Rl
ZmluZSBibHVlel9zb2NrX3JlZ2lzdGVyIF9zZXRfdmVyKGJsdWV6X3NvY2tfcmVnaXN0ZXIpCiNk
ZWZpbmUgX192ZXJfYmx1ZXpfc29ja191bnJlZ2lzdGVyIHNtcF9jMTE5NDgwYQojZGVmaW5lIGJs
dWV6X3NvY2tfdW5yZWdpc3RlciBfc2V0X3ZlcihibHVlel9zb2NrX3VucmVnaXN0ZXIpCiNkZWZp
bmUgX192ZXJfYmx1ZXpfc29ja19saW5rIHNtcF8wN2FjMjNmOQojZGVmaW5lIGJsdWV6X3NvY2tf
bGluayBfc2V0X3ZlcihibHVlel9zb2NrX2xpbmspCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja191
bmxpbmsgc21wXzcyNzA5M2NjCiNkZWZpbmUgYmx1ZXpfc29ja191bmxpbmsgX3NldF92ZXIoYmx1
ZXpfc29ja191bmxpbmspCiMgMjExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHVsZXMvc3luY3BwcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9zcHBwX2lucHV0IHNtcF8zOTZl
YmVhMQojZGVmaW5lIHNwcHBfaW5wdXQgX3NldF92ZXIoc3BwcF9pbnB1dCkKI2RlZmluZSBfX3Zl
cl9zcHBwX2Nsb3NlIHNtcF84YmJlNDM0YwojZGVmaW5lIHNwcHBfY2xvc2UgX3NldF92ZXIoc3Bw
cF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9zcHBwX29wZW4gc21wX2EwY2JjYmU5CiNkZWZpbmUgc3Bw
cF9vcGVuIF9zZXRfdmVyKHNwcHBfb3BlbikKI2RlZmluZSBfX3Zlcl9zcHBwX3Jlb3BlbiBzbXBf
YTMyZjQ5NDIKI2RlZmluZSBzcHBwX3Jlb3BlbiBfc2V0X3ZlcihzcHBwX3Jlb3BlbikKI2RlZmlu
ZSBfX3Zlcl9zcHBwX2NoYW5nZV9tdHUgc21wXzc2YjBkZWFkCiNkZWZpbmUgc3BwcF9jaGFuZ2Vf
bXR1IF9zZXRfdmVyKHNwcHBfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9zcHBwX2RvX2lvY3Rs
IHNtcF9iNmUyNTU2ZQojZGVmaW5lIHNwcHBfZG9faW9jdGwgX3NldF92ZXIoc3BwcF9kb19pb2N0
bCkKI2RlZmluZSBfX3Zlcl9zcHBwX2F0dGFjaCBzbXBfMTAzNDNmMGQKI2RlZmluZSBzcHBwX2F0
dGFjaCBfc2V0X3ZlcihzcHBwX2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9zcHBwX2RldGFjaCBzbXBf
NDExZGM1NjMKI2RlZmluZSBzcHBwX2RldGFjaCBfc2V0X3ZlcihzcHBwX2RldGFjaCkKIyAyMTIg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXNycS52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9zeXNycV9wb3dlcl9vZmYgc21wXzBjMjU3ODQ5CiNkZWZpbmUgc3lzcnFf
cG93ZXJfb2ZmIF9zZXRfdmVyKHN5c3JxX3Bvd2VyX29mZikKIyAyMTMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbm90
aWZpZXJfY2hhaW5fcmVnaXN0ZXIgc21wXzYwY2VjM2I5CiNkZWZpbmUgbm90aWZpZXJfY2hhaW5f
cmVnaXN0ZXIgX3NldF92ZXIobm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJf
bm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlciBzbXBfZjA5OTY3OWMKI2RlZmluZSBub3RpZmllcl9j
aGFpbl91bnJlZ2lzdGVyIF9zZXRfdmVyKG5vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIpCiNkZWZp
bmUgX192ZXJfbm90aWZpZXJfY2FsbF9jaGFpbiBzbXBfMjg4NDY5NjIKI2RlZmluZSBub3RpZmll
cl9jYWxsX2NoYWluIF9zZXRfdmVyKG5vdGlmaWVyX2NhbGxfY2hhaW4pCiNkZWZpbmUgX192ZXJf
cmVnaXN0ZXJfcmVib290X25vdGlmaWVyIHNtcF8xY2M2NzE5YQojZGVmaW5lIHJlZ2lzdGVyX3Jl
Ym9vdF9ub3RpZmllciBfc2V0X3ZlcihyZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIpCiNkZWZpbmUg
X192ZXJfdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgc21wXzM5ODBhYWMxCiNkZWZpbmUgdW5y
ZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZp
ZXIpCiNkZWZpbmUgX192ZXJfaW5fZ3JvdXBfcCBzbXBfMzFlYmFkY2QKI2RlZmluZSBpbl9ncm91
cF9wIF9zZXRfdmVyKGluX2dyb3VwX3ApCiNkZWZpbmUgX192ZXJfaW5fZWdyb3VwX3Agc21wXzQy
YTRiZGYyCiNkZWZpbmUgaW5fZWdyb3VwX3AgX3NldF92ZXIoaW5fZWdyb3VwX3ApCiMgMjE0ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGMudmVyIiAxCiMgMjE1
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGRmeF9kcnYudmVy
IiAxCiMgMjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdG1z
MzgwdHIudmVyIiAxCiMgMjE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvdHR5X2lvY3RsLnZlciIgMQojIDIxOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL3R0eV9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl90dHlfcmVnaXN0ZXJf
ZGV2ZnMgc21wXzI3MWYxMjM0CiNkZWZpbmUgdHR5X3JlZ2lzdGVyX2RldmZzIF9zZXRfdmVyKHR0
eV9yZWdpc3Rlcl9kZXZmcykKI2RlZmluZSBfX3Zlcl90dHlfdW5yZWdpc3Rlcl9kZXZmcyBzbXBf
MDA4YTdhNDIKI2RlZmluZSB0dHlfdW5yZWdpc3Rlcl9kZXZmcyBfc2V0X3Zlcih0dHlfdW5yZWdp
c3Rlcl9kZXZmcykKIyAyMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy91YXJ0NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX3VhcnQ0MDEgc21wXzM2ZmFj
OThjCiNkZWZpbmUgcHJvYmVfdWFydDQwMSBfc2V0X3Zlcihwcm9iZV91YXJ0NDAxKQojZGVmaW5l
IF9fdmVyX3VubG9hZF91YXJ0NDAxIHNtcF9lY2ZkZDljOQojZGVmaW5lIHVubG9hZF91YXJ0NDAx
IF9zZXRfdmVyKHVubG9hZF91YXJ0NDAxKQojZGVmaW5lIF9fdmVyX3VhcnQ0MDFpbnRyIHNtcF8x
ZDExNjQ2YwojZGVmaW5lIHVhcnQ0MDFpbnRyIF9zZXRfdmVyKHVhcnQ0MDFpbnRyKQojIDIyMCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VQRDk4NDAyLnZlciIg
MQojIDIyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VzYnNl
cmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX3JlZ2lzdGVyIHNtcF8yOTQ2OTdj
NwojZGVmaW5lIHVzYl9zZXJpYWxfcmVnaXN0ZXIgX3NldF92ZXIodXNiX3NlcmlhbF9yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgc21wX2ZmOGNjZDc3CiNkZWZp
bmUgdXNiX3NlcmlhbF9kZXJlZ2lzdGVyIF9zZXRfdmVyKHVzYl9zZXJpYWxfZGVyZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9lenVzYl93cml0ZW1lbW9yeSBzbXBfMjQwNDYxNmIKI2RlZmluZSBlenVz
Yl93cml0ZW1lbW9yeSBfc2V0X3ZlcihlenVzYl93cml0ZW1lbW9yeSkKI2RlZmluZSBfX3Zlcl9l
enVzYl9zZXRfcmVzZXQgc21wX2JlOTg4OTBiCiNkZWZpbmUgZXp1c2Jfc2V0X3Jlc2V0IF9zZXRf
dmVyKGV6dXNiX3NldF9yZXNldCkKIyAyMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy91c2IudmVyIiAxCiNkZWZpbmUgX192ZXJfdXNiX2lmbnVtX3RvX2lmIHNt
cF80N2MxOGEwMwojZGVmaW5lIHVzYl9pZm51bV90b19pZiBfc2V0X3Zlcih1c2JfaWZudW1fdG9f
aWYpCiNkZWZpbmUgX192ZXJfdXNiX2VwbnVtX3RvX2VwX2Rlc2Mgc21wX2JiMjg4NTA0CiNkZWZp
bmUgdXNiX2VwbnVtX3RvX2VwX2Rlc2MgX3NldF92ZXIodXNiX2VwbnVtX3RvX2VwX2Rlc2MpCiNk
ZWZpbmUgX192ZXJfdXNiX3JlZ2lzdGVyIHNtcF8wMjcyOWQzNQojZGVmaW5lIHVzYl9yZWdpc3Rl
ciBfc2V0X3Zlcih1c2JfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXIgc21w
X2M1MzIzNzg0CiNkZWZpbmUgdXNiX2RlcmVnaXN0ZXIgX3NldF92ZXIodXNiX2RlcmVnaXN0ZXIp
CiNkZWZpbmUgX192ZXJfdXNiX3NjYW5fZGV2aWNlcyBzbXBfY2E0ZjYzMDEKI2RlZmluZSB1c2Jf
c2Nhbl9kZXZpY2VzIF9zZXRfdmVyKHVzYl9zY2FuX2RldmljZXMpCiNkZWZpbmUgX192ZXJfdXNi
X2FsbG9jX2J1cyBzbXBfYzdkN2Y0OWQKI2RlZmluZSB1c2JfYWxsb2NfYnVzIF9zZXRfdmVyKHVz
Yl9hbGxvY19idXMpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfYnVzIHNtcF9jYmU4Y2QzOAojZGVm
aW5lIHVzYl9mcmVlX2J1cyBfc2V0X3Zlcih1c2JfZnJlZV9idXMpCiNkZWZpbmUgX192ZXJfdXNi
X3JlZ2lzdGVyX2J1cyBzbXBfNWJlODgyNjIKI2RlZmluZSB1c2JfcmVnaXN0ZXJfYnVzIF9zZXRf
dmVyKHVzYl9yZWdpc3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXJfYnVzIHNt
cF8yMzljODFhZQojZGVmaW5lIHVzYl9kZXJlZ2lzdGVyX2J1cyBfc2V0X3Zlcih1c2JfZGVyZWdp
c3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2FsbG9jX2RldiBzbXBfZjlhMWJkZjIKI2RlZmlu
ZSB1c2JfYWxsb2NfZGV2IF9zZXRfdmVyKHVzYl9hbGxvY19kZXYpCiNkZWZpbmUgX192ZXJfdXNi
X2ZyZWVfZGV2IHNtcF9mMDc1ZWRjYwojZGVmaW5lIHVzYl9mcmVlX2RldiBfc2V0X3Zlcih1c2Jf
ZnJlZV9kZXYpCiNkZWZpbmUgX192ZXJfdXNiX2luY19kZXZfdXNlIHNtcF81MzIyMmYyOAojZGVm
aW5lIHVzYl9pbmNfZGV2X3VzZSBfc2V0X3Zlcih1c2JfaW5jX2Rldl91c2UpCiNkZWZpbmUgX192
ZXJfdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Ugc21wXzM1NjRmMmMxCiNkZWZpbmUgdXNiX2Ry
aXZlcl9jbGFpbV9pbnRlcmZhY2UgX3NldF92ZXIodXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Up
CiNkZWZpbmUgX192ZXJfdXNiX2ludGVyZmFjZV9jbGFpbWVkIHNtcF9jYjhmZDk5NgojZGVmaW5l
IHVzYl9pbnRlcmZhY2VfY2xhaW1lZCBfc2V0X3Zlcih1c2JfaW50ZXJmYWNlX2NsYWltZWQpCiNk
ZWZpbmUgX192ZXJfdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSBzbXBfMDZhYTg2NGUKI2Rl
ZmluZSB1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlIF9zZXRfdmVyKHVzYl9kcml2ZXJfcmVs
ZWFzZV9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX21hdGNoX2lkIHNtcF8zOWU3NDZhMAoj
ZGVmaW5lIHVzYl9tYXRjaF9pZCBfc2V0X3Zlcih1c2JfbWF0Y2hfaWQpCiNkZWZpbmUgX192ZXJf
dXNiX3Jvb3RfaHViX3N0cmluZyBzbXBfYTY4NzE4ZjAKI2RlZmluZSB1c2Jfcm9vdF9odWJfc3Ry
aW5nIF9zZXRfdmVyKHVzYl9yb290X2h1Yl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX25ld19k
ZXZpY2Ugc21wXzNmNTA3ZjAyCiNkZWZpbmUgdXNiX25ld19kZXZpY2UgX3NldF92ZXIodXNiX25l
d19kZXZpY2UpCiNkZWZpbmUgX192ZXJfdXNiX3Jlc2V0X2RldmljZSBzbXBfOWRmNTRkNGIKI2Rl
ZmluZSB1c2JfcmVzZXRfZGV2aWNlIF9zZXRfdmVyKHVzYl9yZXNldF9kZXZpY2UpCiNkZWZpbmUg
X192ZXJfdXNiX2Nvbm5lY3Qgc21wXzgxNjVhMTU4CiNkZWZpbmUgdXNiX2Nvbm5lY3QgX3NldF92
ZXIodXNiX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfdXNiX2Rpc2Nvbm5lY3Qgc21wXzk3NmY1YTVk
CiNkZWZpbmUgdXNiX2Rpc2Nvbm5lY3QgX3NldF92ZXIodXNiX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg
X192ZXJfdXNiX2NoZWNrX2JhbmR3aWR0aCBzbXBfOGVkNzM4NGYKI2RlZmluZSB1c2JfY2hlY2tf
YmFuZHdpZHRoIF9zZXRfdmVyKHVzYl9jaGVja19iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNi
X2NsYWltX2JhbmR3aWR0aCBzbXBfMTMyZjYwMTUKI2RlZmluZSB1c2JfY2xhaW1fYmFuZHdpZHRo
IF9zZXRfdmVyKHVzYl9jbGFpbV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3JlbGVhc2Vf
YmFuZHdpZHRoIHNtcF8zOTEzOTg2MwojZGVmaW5lIHVzYl9yZWxlYXNlX2JhbmR3aWR0aCBfc2V0
X3Zlcih1c2JfcmVsZWFzZV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9hZGRyZXNz
IHNtcF8yMDdlOTlhZQojZGVmaW5lIHVzYl9zZXRfYWRkcmVzcyBfc2V0X3Zlcih1c2Jfc2V0X2Fk
ZHJlc3MpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXNjcmlwdG9yIHNtcF81MDAwZTU4ZgojZGVm
aW5lIHVzYl9nZXRfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2Rlc2NyaXB0b3IpCiNkZWZp
bmUgX192ZXJfdXNiX2dldF9jbGFzc19kZXNjcmlwdG9yIHNtcF8zYTQwYTI2YwojZGVmaW5lIHVz
Yl9nZXRfY2xhc3NfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2NsYXNzX2Rlc2NyaXB0b3Ip
CiNkZWZpbmUgX192ZXJfX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3Igc21wXzk5MjRjNDk2CiNk
ZWZpbmUgX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3IgX3NldF92ZXIoX191c2JfZ2V0X2V4dHJh
X2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXZpY2VfZGVzY3JpcHRvciBzbXBf
M2E5NWU1ZjAKI2RlZmluZSB1c2JfZ2V0X2RldmljZV9kZXNjcmlwdG9yIF9zZXRfdmVyKHVzYl9n
ZXRfZGV2aWNlX2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9zdHJpbmcgc21wXzNk
OTI3NjA2CiNkZWZpbmUgdXNiX2dldF9zdHJpbmcgX3NldF92ZXIodXNiX2dldF9zdHJpbmcpCiNk
ZWZpbmUgX192ZXJfdXNiX3N0cmluZyBzbXBfMWM4Y2E1M2UKI2RlZmluZSB1c2Jfc3RyaW5nIF9z
ZXRfdmVyKHVzYl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9wcm90b2NvbCBzbXBfNjc4
Mjk1N2EKI2RlZmluZSB1c2JfZ2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9nZXRfcHJvdG9jb2wp
CiNkZWZpbmUgX192ZXJfdXNiX3NldF9wcm90b2NvbCBzbXBfNzdiMjBkOGMKI2RlZmluZSB1c2Jf
c2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9zZXRfcHJvdG9jb2wpCiNkZWZpbmUgX192ZXJfdXNi
X2dldF9yZXBvcnQgc21wXzExNDIzOTM4CiNkZWZpbmUgdXNiX2dldF9yZXBvcnQgX3NldF92ZXIo
dXNiX2dldF9yZXBvcnQpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9yZXBvcnQgc21wX2M5ZWRmNWU3
CiNkZWZpbmUgdXNiX3NldF9yZXBvcnQgX3NldF92ZXIodXNiX3NldF9yZXBvcnQpCiNkZWZpbmUg
X192ZXJfdXNiX3NldF9pZGxlIHNtcF84OTRiZjk2MQojZGVmaW5lIHVzYl9zZXRfaWRsZSBfc2V0
X3Zlcih1c2Jfc2V0X2lkbGUpCiNkZWZpbmUgX192ZXJfdXNiX2NsZWFyX2hhbHQgc21wX2YwOTZk
ZDA3CiNkZWZpbmUgdXNiX2NsZWFyX2hhbHQgX3NldF92ZXIodXNiX2NsZWFyX2hhbHQpCiNkZWZp
bmUgX192ZXJfdXNiX3NldF9pbnRlcmZhY2Ugc21wX2NkODMxZTQ4CiNkZWZpbmUgdXNiX3NldF9p
bnRlcmZhY2UgX3NldF92ZXIodXNiX3NldF9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX2dl
dF9jb25maWd1cmF0aW9uIHNtcF80NDkwNTMwYwojZGVmaW5lIHVzYl9nZXRfY29uZmlndXJhdGlv
biBfc2V0X3Zlcih1c2JfZ2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX3NldF9j
b25maWd1cmF0aW9uIHNtcF84NWU4YzcyYwojZGVmaW5lIHVzYl9zZXRfY29uZmlndXJhdGlvbiBf
c2V0X3Zlcih1c2Jfc2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX2dldF9jdXJy
ZW50X2ZyYW1lX251bWJlciBzbXBfMTAwN2JjMmMKI2RlZmluZSB1c2JfZ2V0X2N1cnJlbnRfZnJh
bWVfbnVtYmVyIF9zZXRfdmVyKHVzYl9nZXRfY3VycmVudF9mcmFtZV9udW1iZXIpCiNkZWZpbmUg
X192ZXJfdXNiX2FsbG9jX3VyYiBzbXBfYjg5NTQxYmQKI2RlZmluZSB1c2JfYWxsb2NfdXJiIF9z
ZXRfdmVyKHVzYl9hbGxvY191cmIpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfdXJiIHNtcF82Yzc4
YjA1ZQojZGVmaW5lIHVzYl9mcmVlX3VyYiBfc2V0X3Zlcih1c2JfZnJlZV91cmIpCiNkZWZpbmUg
X192ZXJfdXNiX3N1Ym1pdF91cmIgc21wXzI5MGQxYTJmCiNkZWZpbmUgdXNiX3N1Ym1pdF91cmIg
X3NldF92ZXIodXNiX3N1Ym1pdF91cmIpCiNkZWZpbmUgX192ZXJfdXNiX3VubGlua191cmIgc21w
X2NjYmZhOWFiCiNkZWZpbmUgdXNiX3VubGlua191cmIgX3NldF92ZXIodXNiX3VubGlua191cmIp
CiNkZWZpbmUgX192ZXJfdXNiX2NvbnRyb2xfbXNnIHNtcF9jMDQxY2Q0NgojZGVmaW5lIHVzYl9j
b250cm9sX21zZyBfc2V0X3Zlcih1c2JfY29udHJvbF9tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2J1
bGtfbXNnIHNtcF80OTRlMmU0YQojZGVmaW5lIHVzYl9idWxrX21zZyBfc2V0X3Zlcih1c2JfYnVs
a19tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2RldmZzX2hhbmRsZSBzbXBfZTljNWY4N2YKI2RlZmlu
ZSB1c2JfZGV2ZnNfaGFuZGxlIF9zZXRfdmVyKHVzYl9kZXZmc19oYW5kbGUpCiMgMjIzICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXNlbWEudmVyIiAxCiMgMjI0
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXRpbC52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl90YXBlIHNtcF9iOGQ2MThlOAojZGVmaW5lIGRl
dmZzX3JlZ2lzdGVyX3RhcGUgX3NldF92ZXIoZGV2ZnNfcmVnaXN0ZXJfdGFwZSkKI2RlZmluZSBf
X3Zlcl9kZXZmc19yZWdpc3Rlcl9zZXJpZXMgc21wXzNhZjFjNjYwCiNkZWZpbmUgZGV2ZnNfcmVn
aXN0ZXJfc2VyaWVzIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3NlcmllcykKI2RlZmluZSBfX3Zl
cl9kZXZmc19hbGxvY19tYWpvciBzbXBfMTkwZTNiYmMKI2RlZmluZSBkZXZmc19hbGxvY19tYWpv
ciBfc2V0X3ZlcihkZXZmc19hbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9j
X21ham9yIHNtcF9jZTlkZTQxZAojZGVmaW5lIGRldmZzX2RlYWxsb2NfbWFqb3IgX3NldF92ZXIo
ZGV2ZnNfZGVhbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY19kZXZudW0gc21w
XzBiMzVjNTdmCiNkZWZpbmUgZGV2ZnNfYWxsb2NfZGV2bnVtIF9zZXRfdmVyKGRldmZzX2FsbG9j
X2Rldm51bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX2Rldm51bSBzbXBfNzRlODU2ZTkK
I2RlZmluZSBkZXZmc19kZWFsbG9jX2Rldm51bSBfc2V0X3ZlcihkZXZmc19kZWFsbG9jX2Rldm51
bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY191bmlxdWVfbnVtYmVyIHNtcF80NDRmNDEyZAoj
ZGVmaW5lIGRldmZzX2FsbG9jX3VuaXF1ZV9udW1iZXIgX3NldF92ZXIoZGV2ZnNfYWxsb2NfdW5p
cXVlX251bWJlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX3VuaXF1ZV9udW1iZXIgc21w
XzliZjNmZjA4CiNkZWZpbmUgZGV2ZnNfZGVhbGxvY191bmlxdWVfbnVtYmVyIF9zZXRfdmVyKGRl
dmZzX2RlYWxsb2NfdW5pcXVlX251bWJlcikKIyAyMjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy92ZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl92ZmF0
X2NyZWF0ZSBzbXBfMDgwNWY2ZjYKI2RlZmluZSB2ZmF0X2NyZWF0ZSBfc2V0X3Zlcih2ZmF0X2Ny
ZWF0ZSkKI2RlZmluZSBfX3Zlcl92ZmF0X3VubGluayBzbXBfYTVhYmE0ZmEKI2RlZmluZSB2ZmF0
X3VubGluayBfc2V0X3Zlcih2ZmF0X3VubGluaykKI2RlZmluZSBfX3Zlcl92ZmF0X21rZGlyIHNt
cF8xMmE4YTExYwojZGVmaW5lIHZmYXRfbWtkaXIgX3NldF92ZXIodmZhdF9ta2RpcikKI2RlZmlu
ZSBfX3Zlcl92ZmF0X3JtZGlyIHNtcF9hNGY3NGExNQojZGVmaW5lIHZmYXRfcm1kaXIgX3NldF92
ZXIodmZhdF9ybWRpcikKI2RlZmluZSBfX3Zlcl92ZmF0X3JlbmFtZSBzbXBfNDllY2RiMjMKI2Rl
ZmluZSB2ZmF0X3JlbmFtZSBfc2V0X3Zlcih2ZmF0X3JlbmFtZSkKI2RlZmluZSBfX3Zlcl92ZmF0
X3JlYWRfc3VwZXIgc21wX2YyOTdlNTFhCiNkZWZpbmUgdmZhdF9yZWFkX3N1cGVyIF9zZXRfdmVy
KHZmYXRfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl92ZmF0X2xvb2t1cCBzbXBfZTE2ZWFiZDMK
I2RlZmluZSB2ZmF0X2xvb2t1cCBfc2V0X3Zlcih2ZmF0X2xvb2t1cCkKIyAyMjYgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy92aWRlb2Rldi52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl92aWRlb19wcm9jX2VudHJ5IHNtcF9hZDE2MmE0NgojZGVmaW5lIHZpZGVvX3Byb2Nf
ZW50cnkgX3NldF92ZXIodmlkZW9fcHJvY19lbnRyeSkKI2RlZmluZSBfX3Zlcl92aWRlb19yZWdp
c3Rlcl9kZXZpY2Ugc21wX2E1ZTI2ZjI0CiNkZWZpbmUgdmlkZW9fcmVnaXN0ZXJfZGV2aWNlIF9z
ZXRfdmVyKHZpZGVvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl92aWRlb191bnJlZ2lz
dGVyX2RldmljZSBzbXBfNTc2YzE0ZTcKI2RlZmluZSB2aWRlb191bnJlZ2lzdGVyX2RldmljZSBf
c2V0X3Zlcih2aWRlb191bnJlZ2lzdGVyX2RldmljZSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy93YW5tYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX3Jl
Z2lzdGVyX3dhbl9kZXZpY2Ugc21wXzQ2OGRhZGE3CiNkZWZpbmUgcmVnaXN0ZXJfd2FuX2Rldmlj
ZSBfc2V0X3ZlcihyZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJf
d2FuX2RldmljZSBzbXBfMGViZTAzZDEKI2RlZmluZSB1bnJlZ2lzdGVyX3dhbl9kZXZpY2UgX3Nl
dF92ZXIodW5yZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl9lbmNh
cHN1bGF0ZSBzbXBfYjEzZDU4MzgKI2RlZmluZSB3YW5yb3V0ZXJfZW5jYXBzdWxhdGUgX3NldF92
ZXIod2Fucm91dGVyX2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl90eXBlX3Ry
YW5zIHNtcF9mYmNjNTM1MgojZGVmaW5lIHdhbnJvdXRlcl90eXBlX3RyYW5zIF9zZXRfdmVyKHdh
bnJvdXRlcl90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2xvY2tfYWRhcHRlcl9pcnEgc21wXzdl
NmFlMjYzCiNkZWZpbmUgbG9ja19hZGFwdGVyX2lycSBfc2V0X3Zlcihsb2NrX2FkYXB0ZXJfaXJx
KQojZGVmaW5lIF9fdmVyX3VubG9ja19hZGFwdGVyX2lycSBzbXBfMWU3YjlhNDMKI2RlZmluZSB1
bmxvY2tfYWRhcHRlcl9pcnEgX3NldF92ZXIodW5sb2NrX2FkYXB0ZXJfaXJxKQojIDIyOCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3hvci52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl94b3JfYmxvY2sgc21wX2ZlODUwODM4CiNkZWZpbmUgeG9yX2Jsb2NrIF9zZXRfdmVy
KHhvcl9ibG9jaykKIyAyMjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy95ZW50YS52ZXIiIDEKI2RlZmluZSBfX3Zlcl95ZW50YV9vcGVyYXRpb25zIHNtcF83ZGM5
NmM3ZAojZGVmaW5lIHllbnRhX29wZXJhdGlvbnMgX3NldF92ZXIoeWVudGFfb3BlcmF0aW9ucykK
IyAyMzAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy96ODUyMzAu
dmVyIiAxCiNkZWZpbmUgX192ZXJfejg1MzBfZGVhZF9wb3J0IHNtcF84YjA2MDU3MAojZGVmaW5l
IHo4NTMwX2RlYWRfcG9ydCBfc2V0X3Zlcih6ODUzMF9kZWFkX3BvcnQpCiNkZWZpbmUgX192ZXJf
ejg1MzBfaGRsY19raWxvc3RyZWFtIHNtcF9lZWIyNTViYwojZGVmaW5lIHo4NTMwX2hkbGNfa2ls
b3N0cmVhbSBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW0pCiNkZWZpbmUgX192ZXJfejg1
MzBfaGRsY19raWxvc3RyZWFtXzg1MjMwIHNtcF8wMzFmODZhYQojZGVmaW5lIHo4NTMwX2hkbGNf
a2lsb3N0cmVhbV84NTIzMCBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW1fODUyMzApCiNk
ZWZpbmUgX192ZXJfejg1MzBfc3luYyBzbXBfMjgwZGRlZTAKI2RlZmluZSB6ODUzMF9zeW5jIF9z
ZXRfdmVyKHo4NTMwX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfZG1hX3N5bmMgc21wXzFiZTQ1
Mzc0CiNkZWZpbmUgejg1MzBfZG1hX3N5bmMgX3NldF92ZXIoejg1MzBfZG1hX3N5bmMpCiNkZWZp
bmUgX192ZXJfejg1MzBfdHhkbWFfc3luYyBzbXBfOTMzYzFkZWQKI2RlZmluZSB6ODUzMF90eGRt
YV9zeW5jIF9zZXRfdmVyKHo4NTMwX3R4ZG1hX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfbm9w
IHNtcF84MTQwNzE0YgojZGVmaW5lIHo4NTMwX25vcCBfc2V0X3Zlcih6ODUzMF9ub3ApCiNkZWZp
bmUgX192ZXJfejg1MzBfaW50ZXJydXB0IHNtcF8xNTRjOTlhZQojZGVmaW5lIHo4NTMwX2ludGVy
cnVwdCBfc2V0X3Zlcih6ODUzMF9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19v
cGVuIHNtcF8wOGFiZjcwNwojZGVmaW5lIHo4NTMwX3N5bmNfb3BlbiBfc2V0X3Zlcih6ODUzMF9z
eW5jX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19jbG9zZSBzbXBfYjc1NmQ5YzIKI2Rl
ZmluZSB6ODUzMF9zeW5jX2Nsb3NlIF9zZXRfdmVyKHo4NTMwX3N5bmNfY2xvc2UpCiNkZWZpbmUg
X192ZXJfejg1MzBfc3luY19kbWFfb3BlbiBzbXBfM2Y0ZDBjN2UKI2RlZmluZSB6ODUzMF9zeW5j
X2RtYV9vcGVuIF9zZXRfdmVyKHo4NTMwX3N5bmNfZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1
MzBfc3luY19kbWFfY2xvc2Ugc21wXzllYjhmNmExCiNkZWZpbmUgejg1MzBfc3luY19kbWFfY2xv
c2UgX3NldF92ZXIoejg1MzBfc3luY19kbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfc3lu
Y190eGRtYV9vcGVuIHNtcF8wMDViMDZjOQojZGVmaW5lIHo4NTMwX3N5bmNfdHhkbWFfb3BlbiBf
c2V0X3Zlcih6ODUzMF9zeW5jX3R4ZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY190
eGRtYV9jbG9zZSBzbXBfY2I4MmM2ODQKI2RlZmluZSB6ODUzMF9zeW5jX3R4ZG1hX2Nsb3NlIF9z
ZXRfdmVyKHo4NTMwX3N5bmNfdHhkbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfZGVzY3Jp
YmUgc21wXzdjZmI1M2NmCiNkZWZpbmUgejg1MzBfZGVzY3JpYmUgX3NldF92ZXIoejg1MzBfZGVz
Y3JpYmUpCiNkZWZpbmUgX192ZXJfejg1MzBfaW5pdCBzbXBfMDdjMjE3ZWUKI2RlZmluZSB6ODUz
MF9pbml0IF9zZXRfdmVyKHo4NTMwX2luaXQpCiNkZWZpbmUgX192ZXJfejg1MzBfc2h1dGRvd24g
c21wX2E3Mjg2MWUxCiNkZWZpbmUgejg1MzBfc2h1dGRvd24gX3NldF92ZXIoejg1MzBfc2h1dGRv
d24pCiNkZWZpbmUgX192ZXJfejg1MzBfY2hhbm5lbF9sb2FkIHNtcF9hZTA4NTg3OAojZGVmaW5l
IHo4NTMwX2NoYW5uZWxfbG9hZCBfc2V0X3Zlcih6ODUzMF9jaGFubmVsX2xvYWQpCiNkZWZpbmUg
X192ZXJfejg1MzBfbnVsbF9yeCBzbXBfZDlmY2M2MDcKI2RlZmluZSB6ODUzMF9udWxsX3J4IF9z
ZXRfdmVyKHo4NTMwX251bGxfcngpCiNkZWZpbmUgX192ZXJfejg1MzBfcXVldWVfeG1pdCBzbXBf
ZDk3YWE3YmUKI2RlZmluZSB6ODUzMF9xdWV1ZV94bWl0IF9zZXRfdmVyKHo4NTMwX3F1ZXVlX3ht
aXQpCiNkZWZpbmUgX192ZXJfejg1MzBfZ2V0X3N0YXRzIHNtcF9mYTcwMjAxZgojZGVmaW5lIHo4
NTMwX2dldF9zdGF0cyBfc2V0X3Zlcih6ODUzMF9nZXRfc3RhdHMpCiMgMjMxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvemZ0YXBlX3N5bXMudmVyIiAxCiNkZWZp
bmUgX192ZXJfemZ0X2NtcHJfcmVnaXN0ZXIgc21wXzRlMzI4YjRkCiNkZWZpbmUgemZ0X2NtcHJf
cmVnaXN0ZXIgX3NldF92ZXIoemZ0X2NtcHJfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2Nt
cHJfdW5yZWdpc3RlciBzbXBfZTIwN2RmNTMKI2RlZmluZSB6ZnRfY21wcl91bnJlZ2lzdGVyIF9z
ZXRfdmVyKHpmdF9jbXByX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2ZldGNoX3NlZ21l
bnRfZnJhY3Rpb24gc21wXzQxZjE2NmMxCiNkZWZpbmUgemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rp
b24gX3NldF92ZXIoemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfemZ0
X3ZtYWxsb2Nfb25jZSBzbXBfM2M0YjljODkKI2RlZmluZSB6ZnRfdm1hbGxvY19vbmNlIF9zZXRf
dmVyKHpmdF92bWFsbG9jX29uY2UpCiNkZWZpbmUgX192ZXJfemZ0X3ZtYWxsb2NfYWx3YXlzIHNt
cF8xNzcwZDUwNQojZGVmaW5lIHpmdF92bWFsbG9jX2Fsd2F5cyBfc2V0X3Zlcih6ZnRfdm1hbGxv
Y19hbHdheXMpCiNkZWZpbmUgX192ZXJfemZ0X3ZmcmVlIHNtcF8wMmRhMzVlNQojZGVmaW5lIHpm
dF92ZnJlZSBfc2V0X3Zlcih6ZnRfdmZyZWUpCiMgMjMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvem9ycm8udmVyIiAxCiNkZWZpbmUgX192ZXJfem9ycm9fZmlu
ZF9kZXZpY2Ugc21wXzU3NzM3ZTgzCiNkZWZpbmUgem9ycm9fZmluZF9kZXZpY2UgX3NldF92ZXIo
em9ycm9fZmluZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfem9ycm9fdW51c2VkX3oycmFtIHNtcF9k
YzE4YzE2NwojZGVmaW5lIHpvcnJvX3VudXNlZF96MnJhbSBfc2V0X3Zlcih6b3Jyb191bnVzZWRf
ejJyYW0pCiMgMjMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp
b25zLmgiIDIKIyAyICJmcy91ZGYvc3VwZXIuYyIgMgojIDQ2ICJmcy91ZGYvc3VwZXIuYyIKIyAx
ICJmcy91ZGYvdWRmZGVjbC5oIiAxCgojZGVmaW5lIF9fVURGX0RFQ0xfSAoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl8xNjcuaCIgMQoKI2RlZmluZSBfTElOVVhf
VURGXzE2N19ICiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmXzE2
Ny5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQoK
I2RlZmluZSBfTElOVVhfVFlQRVNfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9jb25maWcuaCIgMQoKI2RlZmluZSBfTElOVVhfQ09ORklHX0gKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIiAxCgoKCiNkZWZpbmUgQVVU
T0NPTkZfSU5DTFVERUQKCgoKCiNkZWZpbmUgQ09ORklHX0VYUEVSSU1FTlRBTCAxCgoKCgojZGVm
aW5lIENPTkZJR19NT0RVTEVTIDEKI2RlZmluZSBDT05GSUdfTU9EVkVSU0lPTlMgMQojZGVmaW5l
IENPTkZJR19LTU9EIDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjQgMQoKCgoKI2RlZmluZSBDT05G
SUdfUldTRU1fR0VORVJJQ19TUElOTE9DSyAxCgojZGVmaW5lIENPTkZJR19BQ1BJIDEKI2RlZmlu
ZSBDT05GSUdfQUNQSV9JTlRFUlBSRVRFUiAxCiNkZWZpbmUgQ09ORklHX0FDUElfS0VSTkVMX0NP
TkZJRyAxCiNkZWZpbmUgQ09ORklHX0lUQU5JVU0gMQoKCiNkZWZpbmUgQ09ORklHX0lBNjRfRElH
IDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjRfUEFHRV9TSVpFXzE2S0IgMQoKI2RlZmluZSBDT05G
SUdfSUE2NF9CUkxfRU1VIDEKCiNkZWZpbmUgQ09ORklHX0lUQU5JVU1fQ1NURVBfU1BFQ0lGSUMg
MQojZGVmaW5lIENPTkZJR19JVEFOSVVNX0MwX1NQRUNJRklDIDEKI2RlZmluZSBDT05GSUdfSVRB
TklVTV9QVENHIDEKI2RlZmluZSBDT05GSUdfSUE2NF9MMV9DQUNIRV9TSElGVCAoNikKCiNkZWZp
bmUgQ09ORklHX0lBNjRfTUNBIDEKI2RlZmluZSBDT05GSUdfUE0gMQojZGVmaW5lIENPTkZJR19L
Q09SRV9FTEYgMQojZGVmaW5lIENPTkZJR19TTVAgMQojZGVmaW5lIENPTkZJR19QRVJGTU9OIDEK
I2RlZmluZSBDT05GSUdfSUE2NF9QQUxJTkZPIDEKI2RlZmluZSBDT05GSUdfRUZJX1ZBUlMgMQoj
ZGVmaW5lIENPTkZJR19ORVQgMQojZGVmaW5lIENPTkZJR19TWVNWSVBDIDEKCiNkZWZpbmUgQ09O
RklHX1NZU0NUTCAxCiNkZWZpbmUgQ09ORklHX0JJTkZNVF9FTEYgMQojIDcwICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BDSSAx
CiNkZWZpbmUgQ09ORklHX1BDSV9OQU1FUyAxCiNkZWZpbmUgQ09ORklHX0hPVFBMVUcgMQoKCgoK
CiNkZWZpbmUgQ09ORklHX1BDTUNJQV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19DQVJEQlVTIDEK
I2RlZmluZSBDT05GSUdfSTgyMzY1IDEKI2RlZmluZSBDT05GSUdfVENJQyAxCiMgOTEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdf
UEFDS0VUIDEKI2RlZmluZSBDT05GSUdfUEFDS0VUX01NQVAgMQojZGVmaW5lIENPTkZJR19ORVRM
SU5LIDEKI2RlZmluZSBDT05GSUdfUlRORVRMSU5LIDEKCiNkZWZpbmUgQ09ORklHX05FVEZJTFRF
UiAxCgojZGVmaW5lIENPTkZJR19GSUxURVIgMQojZGVmaW5lIENPTkZJR19VTklYIDEKI2RlZmlu
ZSBDT05GSUdfSU5FVCAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0lORVRfRUNOIDEKI2RlZmluZSBD
T05GSUdfU1lOX0NPT0tJRVMgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0lQX05GX0NPTk5UUkFDS19N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19JUF9ORl9RVUVVRV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfSVBUQUJMRVNfTU9E
VUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX0xJTUlUX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9NQVRDSF9NQUNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01B
VENIX01BUktfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX01VTFRJUE9SVF9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfTUFUQ0hfVE9TX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9NQVRDSF9UQ1BNU1NfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05G
X01BVENIX1NUQVRFX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9VTkNMRUFO
X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9PV05FUl9NT0RVTEUgMQoKI2Rl
ZmluZSBDT05GSUdfSVBfTkZfRklMVEVSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9U
QVJHRVRfUkVKRUNUX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUlSUk9S
X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfTU9EVUxFIDEKI2RlZmluZSBDT05G
SUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVF
UkFERV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUX01PRFVM
RSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19JUF9ORl9NQU5HTEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9UT1Nf
TU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9NQVJLX01PRFVMRSAxCgojZGVm
aW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTE9HX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9O
Rl9UQVJHRVRfVENQTVNTX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9DT01QQVRfSVBD
SEFJTlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9DT01QQVRfSVBGV0FETV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19JUF9O
Rl9OQVRfTkVFREVEIDEKIyAyMTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
YXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfQkxLX0RFVl9MT09QIDEKIyAyNDQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfSURF
IDEKCgoKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFIDEKCgoKCgoKI2RlZmluZSBDT05GSUdf
QkxLX0RFVl9JREVESVNLIDEKI2RlZmluZSBDT05GSUdfSURFRElTS19NVUxUSV9NT0RFIDEKIyAy
NjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfQkxLX0RFVl9JREVDU19NT0RVTEUgMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lE
RUNEIDEKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFVEFQRV9NT0RVTEUgMQojZGVmaW5lIENP
TkZJR19CTEtfREVWX0lERUZMT1BQWSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFU0NTSSAx
CiMgMjgyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNk
ZWZpbmUgQ09ORklHX0JMS19ERVZfSURFUENJIDEKI2RlZmluZSBDT05GSUdfSURFUENJX1NIQVJF
X0lSUSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFRE1BX1BDSSAxCgojZGVmaW5lIENPTkZJ
R19JREVETUFfUENJX0FVVE8gMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lERURNQSAxCiMgMzAy
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUg
Q09ORklHX0JMS19ERVZfUElJWCAxCiMgMzE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lERURNQV9BVVRPIDEKCgojZGVmaW5l
IENPTkZJR19CTEtfREVWX0lERV9NT0RFUyAxCgoKCgojZGVmaW5lIENPTkZJR19TQ1NJIDEKCgoK
CiNkZWZpbmUgQ09ORklHX0JMS19ERVZfU0QgMQojZGVmaW5lIENPTkZJR19TRF9FWFRSQV9ERVZT
ICg0MCkKCiNkZWZpbmUgQ09ORklHX0NIUl9ERVZfU1RfTU9EVUxFIDEKCgojZGVmaW5lIENPTkZJ
R19CTEtfREVWX1NSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19TUl9FWFRSQV9ERVZTICgyKQoK
I2RlZmluZSBDT05GSUdfQ0hSX0RFVl9TR19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfU0NT
SV9ERUJVR19RVUVVRVMgMQoKI2RlZmluZSBDT05GSUdfU0NTSV9DT05TVEFOVFMgMQojZGVmaW5l
IENPTkZJR19TQ1NJX0xPR0dJTkcgMQojIDM4NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIDEKIyAz
OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfU0NTSV9QQ01DSUEgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lBX0FIQTE1MlhfTU9E
VUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9GRE9NQUlOX01PRFVMRSAxCgoKI2RlZmluZSBD
T05GSUdfUENNQ0lBX1FMT0dJQ19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfTkVUREVWSUNF
UyAxCgoKCgoKI2RlZmluZSBDT05GSUdfRFVNTVkgMQojIDQyNCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfRVRIRVJORVQg
MQoKCgoKCgoKI2RlZmluZSBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIDEKCgoKCgoKCiNkZWZpbmUg
Q09ORklHX1ZPUlRFWF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9QQ0kgMQojIDQ1
NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19FRVBSTzEwMCAxCiMgNDkwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BQUF9NT0RVTEUgMQojZGVmaW5lIENPTkZJ
R19QUFBfTVVMVElMSU5LIDEKI2RlZmluZSBDT05GSUdfUFBQX0ZJTFRFUiAxCgojZGVmaW5lIENP
TkZJR19QUFBfQVNZTkNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BQUF9TWU5DX1RUWV9NT0RV
TEUgMQoKI2RlZmluZSBDT05GSUdfUFBQX0RFRkxBVEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklH
X1BQUF9CU0RDT01QX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19QUFBPRV9NT0RVTEUgMQoKCgoK
CiNkZWZpbmUgQ09ORklHX05FVF9SQURJTyAxCgoKCgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUw
MF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfQUlST05FVDQ1MDBfTk9OQ1NfTU9EVUxFIDEKCiNk
ZWZpbmUgQ09ORklHX0FJUk9ORVQ0NTAwX1BDSSAxCgoKCiNkZWZpbmUgQ09ORklHX0FJUk9ORVQ0
NTAwX1BST0NfTU9EVUxFIDEKCgoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9XSVJFTEVTUyAxCiMg
NTQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZp
bmUgQ09ORklHX05FVF9QQ01DSUEgMQojIDU1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfUENNQ0lBX1JBRElPIDEKCiNk
ZWZpbmUgQ09ORklHX1BDTUNJQV9SQVlDU19NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lB
X05FVFdBVkVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9XQVZFTEFOX01PRFVMRSAx
CgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUwMF9DU19NT0RVTEUgMQojIDU4NiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19JTlBV
VCAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0tFWUJERVYgMQojZGVmaW5lIENPTkZJR19JTlBVVF9N
T1VTRURFViAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YICgxMDI0KQoj
ZGVmaW5lIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWSAoNzY4KQoKI2RlZmluZSBDT05G
SUdfSU5QVVRfSk9ZREVWX01PRFVMRSAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0VWREVWIDEKCgoK
CiNkZWZpbmUgQ09ORklHX1ZUIDEKI2RlZmluZSBDT05GSUdfVlRfQ09OU09MRSAxCiNkZWZpbmUg
Q09ORklHX1NFUklBTCAxCiNkZWZpbmUgQ09ORklHX1NFUklBTF9DT05TT0xFIDEKCgojZGVmaW5l
IENPTkZJR19VTklYOThfUFRZUyAxCiNkZWZpbmUgQ09ORklHX1VOSVg5OF9QVFlfQ09VTlQgKDI1
NikKIyA2MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIK
I2RlZmluZSBDT05GSUdfTU9VU0UgMQojZGVmaW5lIENPTkZJR19QU01PVVNFIDEKIyA2MzggIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05G
SUdfRUZJX1JUQyAxCiMgNjQ4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1
dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FHUCAxCgojZGVmaW5lIENPTkZJR19BR1BfSTQ2MCAx
CiNkZWZpbmUgQ09ORklHX0FHUF9JNDYwX0ZVTExSUSAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0FH
UF9QVEVfRklYVVBTIDEKI2RlZmluZSBDT05GSUdfRFJNIDEKIyA2NzEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfUENNQ0lBX1NF
UklBTF9DU19NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1ZJREVPX0RFVl9NT0RVTEUgMQoK
CgoKI2RlZmluZSBDT05GSUdfVklERU9fUFJPQ19GUyAxCiMgNzE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FVVE9GU19GUyAx
CgoKI2RlZmluZSBDT05GSUdfUkVJU0VSRlNfRlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfUkVJ
U0VSRlNfQ0hFQ0sgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0ZBVF9GUyAxCiNkZWZpbmUgQ09ORklH
X01TRE9TX0ZTIDEKCiNkZWZpbmUgQ09ORklHX1ZGQVRfRlMgMQoKCgoKCiNkZWZpbmUgQ09ORklH
X0lTTzk2NjBfRlMgMQoKCgoKI2RlZmluZSBDT05GSUdfTlRGU19GU19NT0RVTEUgMQoKCiNkZWZp
bmUgQ09ORklHX1BST0NfRlMgMQoKCgojZGVmaW5lIENPTkZJR19ERVZQVFNfRlMgMQoKCgojZGVm
aW5lIENPTkZJR19FWFQyX0ZTIDEKCgojZGVmaW5lIENPTkZJR19VREZfRlNfTU9EVUxFIDEKIyA3
NjYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfTkZTX0ZTIDEKI2RlZmluZSBDT05GSUdfTkZTX1YzIDEKCiNkZWZpbmUgQ09ORklH
X05GU0QgMQojZGVmaW5lIENPTkZJR19ORlNEX1YzIDEKI2RlZmluZSBDT05GSUdfU1VOUlBDIDEK
I2RlZmluZSBDT05GSUdfTE9DS0QgMQojZGVmaW5lIENPTkZJR19MT0NLRF9WNCAxCiMgNzg4ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09O
RklHX1BBUlRJVElPTl9BRFZBTkNFRCAxCgoKCgoKI2RlZmluZSBDT05GSUdfTVNET1NfUEFSVElU
SU9OIDEKCgoKCiNkZWZpbmUgQ09ORklHX0VGSV9QQVJUSVRJT04gMQoKCgoKCiNkZWZpbmUgQ09O
RklHX05MUyAxCgoKCgojZGVmaW5lIENPTkZJR19OTFNfREVGQVVMVCAiaXNvODg1OS0xIgojIDg1
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19WR0FfQ09OU09MRSAxCgoKCgojZGVmaW5lIENPTkZJR19GQiAxCiNkZWZpbmUgQ09O
RklHX0RVTU1ZX0NPTlNPTEUgMQoKI2RlZmluZSBDT05GSUdfRkJfUklWQV9NT0RVTEUgMQojIDg3
NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19GQkNPTl9DRkI4X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19GQkNPTl9DRkIxNl9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfRkJDT05fQ0ZCMzJfTU9EVUxFIDEKCgojZGVmaW5lIENP
TkZJR19GT05UXzh4OCAxCiNkZWZpbmUgQ09ORklHX0ZPTlRfOHgxNiAxCiNkZWZpbmUgQ09ORklH
X1BDSV9DT05TT0xFIDEKCgoKCiNkZWZpbmUgQ09ORklHX1NPVU5EIDEKCgoKI2RlZmluZSBDT05G
SUdfU09VTkRfQ1M0MjgxIDEKIyA5MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfVVNCIDEKCgoKCgojZGVmaW5lIENPTkZJR19V
U0JfREVWSUNFRlMgMQojZGVmaW5lIENPTkZJR19VU0JfQkFORFdJRFRIIDEKCgoKCiNkZWZpbmUg
Q09ORklHX1VTQl9VSENJX0FMVCAxCiNkZWZpbmUgQ09ORklHX1VTQl9PSENJIDEKCgoKCgojZGVm
aW5lIENPTkZJR19VU0JfQVVESU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9CTFVFVE9P
VEhfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIDEKI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0Vf
RFBDTSAxCgojZGVmaW5lIENPTkZJR19VU0JfQUNNX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19V
U0JfUFJJTlRFUl9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1VTQl9ISURfTU9EVUxFIDEK
CiNkZWZpbmUgQ09ORklHX1VTQl9LQkRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9NT1VT
RV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1dBQ09NX01PRFVMRSAxCgoKCgoKI2RlZmlu
ZSBDT05GSUdfVVNCX0RDMlhYX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfTURDODAwX01P
RFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0NBTk5FUl9NT0RVTEUgMQoKI2RlZmluZSBDT05G
SUdfVVNCX01JQ1JPVEVLX01PRFVMRSAxCgoKCgoKI2RlZmluZSBDT05GSUdfVVNCX0lCTUNBTV9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX09WNTExX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19VU0JfUFdDX01PRFVMRSAxCgoKI2RlZmluZSBDT05GSUdfVVNCX0RTQlJfTU9EVUxFIDEKCiNk
ZWZpbmUgQ09ORklHX1VTQl9EQUJVU0JfTU9EVUxFIDEKCgoKCgojZGVmaW5lIENPTkZJR19VU0Jf
UExVU0JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9QRUdBU1VTX01PRFVMRSAxCgoKI2Rl
ZmluZSBDT05GSUdfVVNCX05FVDEwODBfTU9EVUxFIDEKIyAxMDAyICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf
TU9EVUxFIDEKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDIDEKCiNkZWZpbmUgQ09O
RklHX1VTQl9TRVJJQUxfQkVMS0lOX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFM
X1dISVRFSEVBVF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VM
RVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRU1QRUdfTU9EVUxFIDEK
CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09O
RklHX1VTQl9TRVJJQUxfVklTT1JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf
RURHRVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREFf
TU9EVUxFIDEKCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyX01PRFVMRSAxCgoK
CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUg
Q09ORklHX1VTQl9SSU81MDBfTU9EVUxFIDEKIyAxMDQyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lBMzJfU1VQUE9SVCAxCiNk
ZWZpbmUgQ09ORklHX01BVEhFTVUgMQojZGVmaW5lIENPTkZJR19NQUdJQ19TWVNSUSAxCgoKCiNk
ZWZpbmUgQ09ORklHX0lBNjRfUFJJTlRfSEFaQVJEUyAxCiNkZWZpbmUgQ09ORklHX0tEQiAxCiNk
ZWZpbmUgQ09ORklHX0tEQl9PRkYgMQoKCgoKI2RlZmluZSBDT05GSUdfS0FMTFNZTVMgMQojIDUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDIKIyA2ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDIKCgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQoKI2RlZmluZSBfTElO
VVhfUE9TSVhfVFlQRVNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3N0ZGRlZi5oIiAxCgojZGVmaW5lIF9MSU5VWF9TVERERUZfSAoKCgoKCiNkZWZpbmUgTlVMTCAo
KHZvaWQgKikwKQoKCgojZGVmaW5lIG9mZnNldG9mKFRZUEUsIE1FTUJFUikgKChzaXplX3QpICYo
KFRZUEUgKikwKS0+TUVNQkVSKQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvcG9zaXhfdHlwZXMuaCIgMgojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3Bvc2l4X3R5cGVzLmgiCiNkZWZpbmUgX19ORkRCSVRTICg4ICogc2l6ZW9mKHVuc2lnbmVk
IGxvbmcpKQoKCiNkZWZpbmUgX19GRF9TRVRTSVpFIDEwMjQKCgojZGVmaW5lIF9fRkRTRVRfTE9O
R1MgKF9fRkRfU0VUU0laRS9fX05GREJJVFMpCgoKI2RlZmluZSBfX0ZERUxUKGQpICgoZCkgLyBf
X05GREJJVFMpCgoKI2RlZmluZSBfX0ZETUFTSyhkKSAoMVVMIDw8ICgoZCkgJSBfX05GREJJVFMp
KQoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmRzX2JpdHMgWygxMDI0
Lyg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSldOwp9IF9fa2VybmVsX2ZkX3NldDsKCgp0eXBl
ZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CgoKdHlwZWRlZiBpbnQgX19r
ZXJuZWxfa2V5X3Q7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bvc2l4
X3R5cGVzLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BPU0lYX1RZUEVTX0gKIyAxMyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgX19rZXJuZWxfZGV2X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX2lub190
Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF9tb2RlX3Q7CnR5cGVkZWYgdW5zaWduZWQg
aW50IF9fa2VybmVsX25saW5rX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9vZmZfdDsKdHlwZWRl
ZiBsb25nIGxvbmcgX19rZXJuZWxfbG9mZl90Owp0eXBlZGVmIGludCBfX2tlcm5lbF9waWRfdDsK
dHlwZWRlZiBpbnQgX19rZXJuZWxfaXBjX3BpZF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tl
cm5lbF91aWRfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBfX2tlcm5lbF9zaXplX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9zc2l6
ZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfcHRyZGlmZl90Owp0eXBlZGVmIGxvbmcgX19rZXJu
ZWxfdGltZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9u
ZyBfX2tlcm5lbF9jbG9ja190Owp0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90Owp0eXBlZGVm
IGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX19rZXJuZWxf
c2lnc2V0X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfdWlkMTZfdDsKdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9naWQxNl90OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgIGludCB2YWxbMl07Cn0gX19rZXJuZWxfZnNpZF90OwoKdHlwZWRlZiBfX2tlcm5lbF91aWRf
dCBfX2tlcm5lbF9vbGRfdWlkX3Q7CnR5cGVkZWYgX19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfb2xk
X2dpZF90Owp0eXBlZGVmIF9fa2VybmVsX3VpZF90IF9fa2VybmVsX3VpZDMyX3Q7CnR5cGVkZWYg
X19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfZ2lkMzJfdDsKIyA1OSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZE
X1NFVCh1bnNpZ25lZCBsb25nIGZkLCBfX2tlcm5lbF9mZF9zZXQgKmZkc2V0cCkKewogICAgICAg
IHVuc2lnbmVkIGxvbmcgX3RtcCA9IGZkIC8gKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgX3JlbSA9IGZkICUgKDggKiBzaXplb2YodW5zaWduZWQgbG9u
ZykpOwogICAgICAgIGZkc2V0cC0+ZmRzX2JpdHNbX3RtcF0gfD0gKDFVTDw8X3JlbSk7Cn0KCgpz
dGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fRkRfQ0xSKHVuc2lnbmVkIGxvbmcgZmQsIF9fa2VybmVs
X2ZkX3NldCAqZmRzZXRwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfdG1wID0gZmQgLyAoOCAq
IHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfcmVtID0gZmQg
JSAoOCAqIHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgZmRzZXRwLT5mZHNfYml0c1tf
dG1wXSAmPSB+KDFVTDw8X3JlbSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19GRF9JU1NF
VCh1bnNpZ25lZCBsb25nIGZkLCBjb25zdCBfX2tlcm5lbF9mZF9zZXQgKnApCnsKICAgICAgICB1
bnNpZ25lZCBsb25nIF90bXAgPSBmZCAvICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKICAg
ICAgICB1bnNpZ25lZCBsb25nIF9yZW0gPSBmZCAlICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcp
KTsKICAgICAgICByZXR1cm4gKHAtPmZkc19iaXRzW190bXBdICYgKDFVTDw8X3JlbSkpICE9IDA7
Cn0KCgoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZEX1pFUk8oX19rZXJuZWxfZmRfc2V0
ICpwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqdG1wID0gcC0+ZmRzX2JpdHM7CiAgICAgICAg
aW50IGk7CgogICAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTAyNC8oOCAqIHNpemVv
Zih1bnNpZ25lZCBsb25nKSkpKSkgewogICAgICAgICAgICAgICAgc3dpdGNoICgoMTAyNC8oOCAq
IHNpemVvZih1bnNpZ25lZCBsb25nKSkpKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE2
OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAxXSA9IDA7IHRtcFsg
Ml0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyA0XSA9IDA7
IHRtcFsgNV0gPSAwOyB0bXBbIDZdID0gMDsgdG1wWyA3XSA9IDA7CiAgICAgICAgICAgICAgICAg
ICAgICAgIHRtcFsgOF0gPSAwOyB0bXBbIDldID0gMDsgdG1wWzEwXSA9IDA7IHRtcFsxMV0gPSAw
OwogICAgICAgICAgICAgICAgICAgICAgICB0bXBbMTJdID0gMDsgdG1wWzEzXSA9IDA7IHRtcFsx
NF0gPSAwOyB0bXBbMTVdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwoKICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyAw
XSA9IDA7IHRtcFsgMV0gPSAwOyB0bXBbIDJdID0gMDsgdG1wWyAzXSA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgICAgIHRtcFsgNF0gPSAwOyB0bXBbIDVdID0gMDsgdG1wWyA2XSA9IDA7IHRtcFsg
N10gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgICAgICAgICAg
ICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAx
XSA9IDA7IHRtcFsgMl0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpID0gKDEwMjQvKDgg
KiBzaXplb2YodW5zaWduZWQgbG9uZykpKTsKICAgICAgICB3aGlsZSAoaSkgewogICAgICAgICAg
ICAgICAgaS0tOwogICAgICAgICAgICAgICAgKnRtcCA9IDA7CiAgICAgICAgICAgICAgICB0bXAr
KzsKICAgICAgICB9Cn0KIyA0NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9w
b3NpeF90eXBlcy5oIiAyCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90
eXBlcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIg
MQoKI2RlZmluZSBfQVNNX0lBNjRfVFlQRVNfSAojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS90eXBlcy5oIgojZGVmaW5lIF9fSUE2NF9VTCh4KSAoKHVuc2lnbmVkIGxvbmcp
KHgpKQojZGVmaW5lIF9fSUE2NF9VTF9DT05TVCh4KSB4ICMjIFVMCgoKCgp0eXBlZGVmIHVuc2ln
bmVkIGludCB1bW9kZV90OwoKCgoKCgp0eXBlZGVmIF9fc2lnbmVkX18gY2hhciBfX3M4Owp0eXBl
ZGVmIHVuc2lnbmVkIGNoYXIgX191ODsKCnR5cGVkZWYgX19zaWduZWRfXyBzaG9ydCBfX3MxNjsK
dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsKCnR5cGVkZWYgX19zaWduZWRfXyBpbnQgX19z
MzI7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyOwoKdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcg
X19zNjQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX3U2NDsKCgoKCgoKdHlwZWRlZiBfX3M4IHM4
Owp0eXBlZGVmIF9fdTggdTg7Cgp0eXBlZGVmIF9fczE2IHMxNjsKdHlwZWRlZiBfX3UxNiB1MTY7
Cgp0eXBlZGVmIF9fczMyIHMzMjsKdHlwZWRlZiBfX3UzMiB1MzI7Cgp0eXBlZGVmIF9fczY0IHM2
NDsKdHlwZWRlZiBfX3U2NCB1NjQ7CgojZGVmaW5lIEJJVFNfUEVSX0xPTkcgNjQKCgoKdHlwZWRl
ZiB1NjQgZG1hX2FkZHJfdDsKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90eXBlcy5oIiAyCgoKCnR5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKdHlwZWRlZiBf
X2tlcm5lbF9kZXZfdCBkZXZfdDsKdHlwZWRlZiBfX2tlcm5lbF9pbm9fdCBpbm9fdDsKdHlwZWRl
ZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90Owp0eXBlZGVmIF9fa2VybmVsX25saW5rX3Qgbmxpbmtf
dDsKdHlwZWRlZiBfX2tlcm5lbF9vZmZfdCBvZmZfdDsKdHlwZWRlZiBfX2tlcm5lbF9waWRfdCBw
aWRfdDsKdHlwZWRlZiBfX2tlcm5lbF9kYWRkcl90IGRhZGRyX3Q7CnR5cGVkZWYgX19rZXJuZWxf
a2V5X3Qga2V5X3Q7CnR5cGVkZWYgX19rZXJuZWxfc3VzZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoK
dHlwZWRlZiBfX2tlcm5lbF91aWQzMl90IHVpZF90Owp0eXBlZGVmIF9fa2VybmVsX2dpZDMyX3Qg
Z2lkX3Q7CnR5cGVkZWYgX19rZXJuZWxfdWlkMTZfdCB1aWQxNl90Owp0eXBlZGVmIF9fa2VybmVs
X2dpZDE2X3QgZ2lkMTZfdDsKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90eXBlcy5oIgp0eXBlZGVmIF9fa2VybmVsX2xvZmZfdCBsb2ZmX3Q7CgoKCgoKCgojZGVmaW5l
IF9TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3Qgc2l6ZV90OwoKCgojZGVmaW5lIF9TU0la
RV9UCnR5cGVkZWYgX19rZXJuZWxfc3NpemVfdCBzc2l6ZV90OwoKCgojZGVmaW5lIF9QVFJESUZG
X1QKdHlwZWRlZiBfX2tlcm5lbF9wdHJkaWZmX3QgcHRyZGlmZl90OwoKCgojZGVmaW5lIF9USU1F
X1QKdHlwZWRlZiBfX2tlcm5lbF90aW1lX3QgdGltZV90OwoKCgojZGVmaW5lIF9DTE9DS19UCnR5
cGVkZWYgX19rZXJuZWxfY2xvY2tfdCBjbG9ja190OwoKCgojZGVmaW5lIF9DQUREUl9UCnR5cGVk
ZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9j
aGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50
IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwoKCnR5cGVkZWYgdW5zaWduZWQg
Y2hhciB1bmNoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0Owp0eXBlZGVmIHVuc2ln
bmVkIGludCB1aW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgoKI2RlZmluZSBfX0JJ
VF9UWVBFU19ERUZJTkVEX18KCnR5cGVkZWYgX191OCB1X2ludDhfdDsKdHlwZWRlZiBfX3M4IGlu
dDhfdDsKdHlwZWRlZiBfX3UxNiB1X2ludDE2X3Q7CnR5cGVkZWYgX19zMTYgaW50MTZfdDsKdHlw
ZWRlZiBfX3UzMiB1X2ludDMyX3Q7CnR5cGVkZWYgX19zMzIgaW50MzJfdDsKCgoKdHlwZWRlZiBf
X3U4IHVpbnQ4X3Q7CnR5cGVkZWYgX191MTYgdWludDE2X3Q7CnR5cGVkZWYgX191MzIgdWludDMy
X3Q7CgoKdHlwZWRlZiBfX3U2NCB1aW50NjRfdDsKdHlwZWRlZiBfX3U2NCB1X2ludDY0X3Q7CnR5
cGVkZWYgX19zNjQgaW50NjRfdDsKIyAxMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHlwZXMuaCIKc3RydWN0IHVzdGF0IHsKICAgICAgICBfX2tlcm5lbF9kYWRkcl90IGZf
dGZyZWU7CiAgICAgICAgX19rZXJuZWxfaW5vX3QgZl90aW5vZGU7CiAgICAgICAgY2hhciBmX2Zu
YW1lWzZdOwogICAgICAgIGNoYXIgZl9mcGFja1s2XTsKfTsKIyA1NiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiIDIKI2RlZmluZSBVaW50OCBfX3U4CiNkZWZp
bmUgU2ludDggX19zOAojZGVmaW5lIFVpbnQxNiBfX3UxNgojZGVmaW5lIFNpbnQxNiBfX3MxNgoj
ZGVmaW5lIFVpbnQzMiBfX3UzMgojZGVmaW5lIFNpbnQzMiBfX3MzMgojZGVmaW5lIFVpbnQ2NCBf
X3U2NAojZGVmaW5lIFNpbnQ2NCBfX3M2NAp0eXBlZGVmIF9fdTggZHN0cmluZzsKIyA3OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiCiNwcmFnbWEgcGFjaygx
KQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3U4IGNoYXJTZXRUeXBlOwogICAgICAgIF9f
dTggY2hhclNldEluZm9bNjNdOwp9IGNoYXJzcGVjOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg
ICBfX3UxNiB0eXBlQW5kVGltZXpvbmU7CiAgICAgICAgX191MTYgeWVhcjsKICAgICAgICBfX3U4
IG1vbnRoOwogICAgICAgIF9fdTggZGF5OwogICAgICAgIF9fdTggaG91cjsKICAgICAgICBfX3U4
IG1pbnV0ZTsKICAgICAgICBfX3U4IHNlY29uZDsKICAgICAgICBfX3U4IGNlbnRpc2Vjb25kczsK
ICAgICAgICBfX3U4IGh1bmRyZWRzT2ZNaWNyb3NlY29uZHM7CiAgICAgICAgX191OCBtaWNyb3Nl
Y29uZHM7Cn0gdGltZXN0YW1wOwoKCiNkZWZpbmUgVElNRVNUQU1QX1RZUEVfQ1VUIDB4MDAwMFUK
I2RlZmluZSBUSU1FU1RBTVBfVFlQRV9MT0NBTCAweDAwMDFVCiNkZWZpbmUgVElNRVNUQU1QX1RZ
UEVfQUdSRUVNRU5UIDB4MDAwMlUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191OCBmbGFn
czsKICAgICAgICBfX3U4IGlkZW50WzIzXTsKICAgICAgICBfX3U4IGlkZW50U3VmZml4WzhdOwp9
IEVudGl0eUlEOwojZGVmaW5lIHJlZ2lkIEVudGl0eUlECgoKI2RlZmluZSBFTlRJVFlJRF9GTEFH
U19ESVJUWSAweDAxVQojZGVmaW5lIEVOVElUWUlEX0ZMQUdTX1BST1RFQ1RFRCAweDAyVQoKCiNk
ZWZpbmUgU1REX0lEX0xFTiA1CnN0cnVjdCBWb2xTdHJ1Y3REZXNjIHsKICAgICAgICBfX3U4IHN0
cnVjdFR5cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZl
cnNpb247CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCiNkZWZpbmUgU1REX0lE
X0JFQTAxICJCRUEwMSIKI2RlZmluZSBTVERfSURfQk9PVDIgIkJPT1QyIgojZGVmaW5lIFNURF9J
RF9DRDAwMSAiQ0QwMDEiCiNkZWZpbmUgU1REX0lEX0NEVzAyICJDRFcwMiIKI2RlZmluZSBTVERf
SURfTlNSMDIgIk5TUjAyIgojZGVmaW5lIFNURF9JRF9OU1IwMyAiTlNSMDMiCiNkZWZpbmUgU1RE
X0lEX1RFQTAxICJURUEwMSIKCgpzdHJ1Y3QgQmVnaW5uaW5nRXh0ZW5kZWRBcmVhRGVzYyB7CiAg
ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg
X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggc3RydWN0RGF0YVsyMDQxXTsKfTsKCgpz
dHJ1Y3QgVGVybWluYXRpbmdFeHRlbmRlZEFyZWFEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5
cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247
CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCnN0cnVjdCBCb290RGVzYyB7CiAg
ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg
X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxOwogICAgICAgIEVudGl0
eUlEIGFyY2hpdGVjdHVyZVR5cGU7CiAgICAgICAgRW50aXR5SUQgYm9vdElkZW50OwogICAgICAg
IF9fdTMyIGJvb3RFeHRMb2NhdGlvbjsKICAgICAgICBfX3UzMiBib290RXh0TGVuZ3RoOwogICAg
ICAgIF9fdTY0IGxvYWRBZGRyZXNzOwogICAgICAgIF9fdTY0IHN0YXJ0QWRkcmVzczsKICAgICAg
ICB0aW1lc3RhbXAgZGVzY0NyZWF0aW9uRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MTYgZmxhZ3M7
CiAgICAgICAgX191OCByZXNlcnZlZDJbMzJdOwogICAgICAgIF9fdTggYm9vdFVzZVsxOTA2XTsK
fTsKCgojZGVmaW5lIEJPT1RfRkxBR1NfRVJBU0UgMQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg
ICBfX3UzMiBleHRMZW5ndGg7CiAgICAgICAgX191MzIgZXh0TG9jYXRpb247Cn0gZXh0ZW50X2Fk
OwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiB0YWdJZGVudDsKICAgICAgICBfX3Ux
NiBkZXNjVmVyc2lvbjsKICAgICAgICBfX3U4IHRhZ0NoZWNrc3VtOwogICAgICAgIF9fdTggcmVz
ZXJ2ZWQ7CiAgICAgICAgX191MTYgdGFnU2VyaWFsTnVtOwogICAgICAgIF9fdTE2IGRlc2NDUkM7
CiAgICAgICAgX191MTYgZGVzY0NSQ0xlbmd0aDsKICAgICAgICBfX3UzMiB0YWdMb2NhdGlvbjsK
fSB0YWc7CgoKI2RlZmluZSBUSURfVU5VU0VEX0RFU0MgMHgwMDAwVQojZGVmaW5lIFRJRF9QUklN
QVJZX1ZPTF9ERVNDIDB4MDAwMVUKI2RlZmluZSBUSURfQU5DSE9SX1ZPTF9ERVNDX1BUUiAweDAw
MDJVCiNkZWZpbmUgVElEX1ZPTF9ERVNDX1BUUiAweDAwMDNVCiNkZWZpbmUgVElEX0lNUF9VU0Vf
Vk9MX0RFU0MgMHgwMDA0VQojZGVmaW5lIFRJRF9QQVJUSVRJT05fREVTQyAweDAwMDVVCiNkZWZp
bmUgVElEX0xPR0lDQUxfVk9MX0RFU0MgMHgwMDA2VQojZGVmaW5lIFRJRF9VTkFMTE9DX1NQQUNF
X0RFU0MgMHgwMDA3VQojZGVmaW5lIFRJRF9URVJNSU5BVElOR19ERVNDIDB4MDAwOFUKI2RlZmlu
ZSBUSURfTE9HSUNBTF9WT0xfSU5URUdSSVRZX0RFU0MgMHgwMDA5VQoKCiNkZWZpbmUgVElEX0ZJ
TEVfU0VUX0RFU0MgMHgwMTAwVQojZGVmaW5lIFRJRF9GSUxFX0lERU5UX0RFU0MgMHgwMTAxVQoj
ZGVmaW5lIFRJRF9BTExPQ19FWFRFTlRfREVTQyAweDAxMDJVCiNkZWZpbmUgVElEX0lORElSRUNU
X0VOVFJZIDB4MDEwM1UKI2RlZmluZSBUSURfVEVSTUlOQUxfRU5UUlkgMHgwMTA0VQojZGVmaW5l
IFRJRF9GSUxFX0VOVFJZIDB4MDEwNVUKI2RlZmluZSBUSURfRVhURU5ERURfQVRUUkVfSEVBREVS
X0RFU0MgMHgwMTA2VQojZGVmaW5lIFRJRF9VTkFMTE9DQVRFRF9TUEFDRV9FTlRSWSAweDAxMDdV
CiNkZWZpbmUgVElEX1NQQUNFX0JJVE1BUF9ERVNDIDB4MDEwOFUKI2RlZmluZSBUSURfUEFSVElU
SU9OX0lOVEVHUklUWV9FTlRSWSAweDAxMDlVCiNkZWZpbmUgVElEX0VYVEVOREVEX0ZJTEVfRU5U
UlkgMHgwMTBBVQoKCnN0cnVjdCBOU1JEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5cGU7CiAg
ICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247CiAgICAg
ICAgX191OCByZXNlcnZlZDsKICAgICAgICBfX3U4IHN0cnVjdERhdGFbMjA0MF07Cn07CgoKc3Ry
dWN0IFByaW1hcnlWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2
b2xEZXNjU2VxTnVtOwogICAgICAgIF9fdTMyIHByaW1hcnlWb2xEZXNjTnVtOwogICAgICAgIGRz
dHJpbmcgdm9sSWRlbnRbMzJdOwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux
NiBtYXhWb2xTZXFOdW07CiAgICAgICAgX191MTYgaW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191
MTYgbWF4SW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191MzIgY2hhclNldExpc3Q7CiAgICAgICAg
X191MzIgbWF4Q2hhclNldExpc3Q7CiAgICAgICAgZHN0cmluZyB2b2xTZXRJZGVudFsxMjhdOwog
ICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGNoYXJzcGVjIGV4cGxhbmF0b3J5
Q2hhclNldDsKICAgICAgICBleHRlbnRfYWQgdm9sQWJzdHJhY3Q7CiAgICAgICAgZXh0ZW50X2Fk
IHZvbENvcHlyaWdodDsKICAgICAgICBFbnRpdHlJRCBhcHBJZGVudDsKICAgICAgICB0aW1lc3Rh
bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg
ICAgX191OCBpbXBVc2VbNjRdOwogICAgICAgIF9fdTMyIHByZWRlY2Vzc29yVm9sRGVzY1NlcUxv
Y2F0aW9uOwogICAgICAgIF9fdTE2IGZsYWdzOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjJdOwp9
OwoKCiNkZWZpbmUgVk9MX1NFVF9JREVOVCAxCgoKc3RydWN0IEFuY2hvclZvbERlc2NQdHIgewog
ICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGV4dGVudF9hZCBtYWluVm9sRGVzY1NlcUV4dDsK
ICAgICAgICBleHRlbnRfYWQgcmVzZXJ2ZVZvbERlc2NTZXFFeHQ7CiAgICAgICAgX191OCByZXNl
cnZlZFs0ODBdOwp9OwoKCnN0cnVjdCBWb2xEZXNjUHRyIHsKICAgICAgICB0YWcgZGVzY1RhZzsK
ICAgICAgICBfX3UzMiB2b2xEZXNjU2VxTnVtOwogICAgICAgIGV4dGVudF9hZCBuZXh0Vm9sRGVz
Y1NlcUV4dDsKICAgICAgICBfX3U4IHJlc2VydmVkWzQ4NF07Cn07CgoKc3RydWN0IEltcFVzZVZv
bERlc2MgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07
CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbNDYwXTsKfTsK
CgpzdHJ1Y3QgUGFydGl0aW9uRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191
MzIgdm9sRGVzY1NlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0aXRpb25GbGFnczsKICAgICAgICBf
X3UxNiBwYXJ0aXRpb25OdW1iZXI7CiAgICAgICAgRW50aXR5SUQgcGFydGl0aW9uQ29udGVudHM7
CiAgICAgICAgX191OCBwYXJ0aXRpb25Db250ZW50c1VzZVsxMjhdOwogICAgICAgIF9fdTMyIGFj
Y2Vzc1R5cGU7CiAgICAgICAgX191MzIgcGFydGl0aW9uU3RhcnRpbmdMb2NhdGlvbjsKICAgICAg
ICBfX3UzMiBwYXJ0aXRpb25MZW5ndGg7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg
ICAgX191OCBpbXBVc2VbMTI4XTsKICAgICAgICBfX3U4IHJlc2VydmVkWzE1Nl07Cn07CgoKI2Rl
ZmluZSBQQVJUSVRJT05fRkxBR1NfQUxMT0MgMQoKCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRT
X0ZEQzAxICIrRkRDMDEiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEMDAxICIrQ0QwMDEi
CiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEVzAyICIrQ0RXMDIiCiNkZWZpbmUgUEFSVElU
SU9OX0NPTlRFTlRTX05TUjAyICIrTlNSMDIiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX05T
UjAzICIrTlNSMDMiCgoKI2RlZmluZSBQQVJUSVRJT05fQUNDRVNTX05PTkUgMAojZGVmaW5lIFBB
UlRJVElPTl9BQ0NFU1NfUiAxCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19XTyAyCiNkZWZpbmUg
UEFSVElUSU9OX0FDQ0VTU19SVyAzCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19PVyA0CgoKc3Ry
dWN0IExvZ2ljYWxWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2
b2xEZXNjU2VxTnVtOwogICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGRzdHJp
bmcgbG9naWNhbFZvbElkZW50WzEyOF07CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrU2l6ZTsK
ICAgICAgICBFbnRpdHlJRCBkb21haW5JZGVudDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xDb250
ZW50c1VzZVsxNl07CiAgICAgICAgX191MzIgbWFwVGFibGVMZW5ndGg7CiAgICAgICAgX191MzIg
bnVtUGFydGl0aW9uTWFwczsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4
IGltcFVzZVsxMjhdOwogICAgICAgIGV4dGVudF9hZCBpbnRlZ3JpdHlTZXFFeHQ7CiAgICAgICAg
X191OCBwYXJ0aXRpb25NYXBzWzBdOwp9OwoKCnN0cnVjdCBHZW5lcmljUGFydGl0aW9uTWFwIHsK
ICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBM
ZW5ndGg7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBwaW5nWzBdOwp9OwoKCiNkZWZpbmUgUEFS
VElUSU9OX01BUF9UWVBFX05PTkUgMAojZGVmaW5lIFBBUlRJVElPTl9NQVBfVFlQRV8xIDEKI2Rl
ZmluZSBQQVJUSVRJT05fTUFQX1RZUEVfMiAyCgoKc3RydWN0IEdlbmVyaWNQYXJ0aXRpb25NYXAx
IHsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25N
YXBMZW5ndGg7CiAgICAgICAgX191MTYgdm9sU2VxTnVtOwogICAgICAgIF9fdTE2IHBhcnRpdGlv
bk51bTsKfTsKCgpzdHJ1Y3QgR2VuZXJpY1BhcnRpdGlvbk1hcDIgewogICAgICAgIF9fdTggcGFy
dGl0aW9uTWFwVHlwZTsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcExlbmd0aDsKICAgICAgICBf
X3U4IHBhcnRpdGlvbklkZW50WzYyXTsKfTsKCgpzdHJ1Y3QgVW5hbGxvY2F0ZWRTcGFjZURlc2Mg
ewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07CiAgICAg
ICAgX191MzIgbnVtQWxsb2NEZXNjczsKICAgICAgICBleHRlbnRfYWQgYWxsb2NEZXNjc1swXTsK
fTsKCgpzdHJ1Y3QgVGVybWluYXRpbmdEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg
ICBfX3U4IHJlc2VydmVkWzQ5Nl07Cn07CgpzdHJ1Y3QgR2VuZXJpY0Rlc2MKewogICAgICAgIHRh
ZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07Cn07CgoKc3RydWN0IExvZ2lj
YWxWb2xJbnRlZ3JpdHlEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICB0aW1lc3Rh
bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MzIgaW50ZWdyaXR5VHlwZTsKICAg
ICAgICBleHRlbnRfYWQgbmV4dEludGVncml0eUV4dDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xD
b250ZW50c1VzZVszMl07CiAgICAgICAgX191MzIgbnVtT2ZQYXJ0aXRpb25zOwogICAgICAgIF9f
dTMyIGxlbmd0aE9mSW1wVXNlOwogICAgICAgIF9fdTMyIGZyZWVTcGFjZVRhYmxlWzBdOwogICAg
ICAgIF9fdTMyIHNpemVUYWJsZVswXTsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgojZGVm
aW5lIElOVEVHUklUWV9UWVBFX09QRU4gMAojZGVmaW5lIElOVEVHUklUWV9UWVBFX0NMT1NFIDEK
Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrTnVtOwogICAgICAg
IF9fdTE2IHBhcnRpdGlvblJlZmVyZW5jZU51bTsKfSBsYl9hZGRyOwoKCiNkZWZpbmUgRVhURU5U
X1JFQ09SREVEX0FMTE9DQVRFRCAweDAwCiNkZWZpbmUgRVhURU5UX05PVF9SRUNPUkRFRF9BTExP
Q0FURUQgMHgwMQojZGVmaW5lIEVYVEVOVF9OT1RfUkVDT1JERURfTk9UX0FMTE9DQVRFRCAweDAy
CiNkZWZpbmUgRVhURU5UX05FWFRfRVhURU5UX0FMTE9DREVDUyAweDAzCgoKdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBsYl9hZGRyIGV4dExvY2F0aW9u
OwogICAgICAgIF9fdTggaW1wVXNlWzZdOwp9IGxvbmdfYWQ7CgoKCnN0cnVjdCBGaWxlU2V0RGVz
YyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgdGltZXN0YW1wIHJlY29yZGluZ0RhdGVB
bmRUaW1lOwogICAgICAgIF9fdTE2IGludGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTE2IG1heElu
dGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTMyIGNoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIG1h
eENoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIGZpbGVTZXROdW07CiAgICAgICAgX191MzIgZmls
ZVNldERlc2NOdW07CiAgICAgICAgY2hhcnNwZWMgbG9naWNhbFZvbElkZW50Q2hhclNldDsKICAg
ICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIGNoYXJzcGVjIGZpbGVT
ZXRDaGFyU2V0OwogICAgICAgIGRzdHJpbmcgZmlsZVNldElkZW50WzMyXTsKICAgICAgICBkc3Ry
aW5nIGNvcHlyaWdodEZpbGVJZGVudFszMl07CiAgICAgICAgZHN0cmluZyBhYnN0cmFjdEZpbGVJ
ZGVudFszMl07CiAgICAgICAgbG9uZ19hZCByb290RGlyZWN0b3J5SUNCOwogICAgICAgIEVudGl0
eUlEIGRvbWFpbklkZW50OwogICAgICAgIGxvbmdfYWQgbmV4dEV4dDsKICAgICAgICBsb25nX2Fk
IHN0cmVhbURpcmVjdG9yeUlDQjsKICAgICAgICBfX3U4IHJlc2VydmVkWzMyXTsKfTsKCgp0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgZXh0TGVuZ3RoOwogICAgICAgIF9fdTMyIGV4dFBv
c2l0aW9uOwp9IHNob3J0X2FkOwoKCnN0cnVjdCBQYXJ0aXRpb25IZWFkZXJEZXNjIHsKICAgICAg
ICBzaG9ydF9hZCB1bmFsbG9jYXRlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgdW5hbGxv
Y2F0ZWRTcGFjZUJpdG1hcDsKICAgICAgICBzaG9ydF9hZCBwYXJ0aXRpb25JbnRlZ3JpdHlUYWJs
ZTsKICAgICAgICBzaG9ydF9hZCBmcmVlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgZnJl
ZWRTcGFjZUJpdG1hcDsKICAgICAgICBfX3U4IHJlc2VydmVkWzg4XTsKfTsKCgpzdHJ1Y3QgRmls
ZUlkZW50RGVzYwp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MTYgZmlsZVZlcnNp
b25OdW07CiAgICAgICAgX191OCBmaWxlQ2hhcmFjdGVyaXN0aWNzOwogICAgICAgIF9fdTggbGVu
Z3RoRmlsZUlkZW50OwogICAgICAgIGxvbmdfYWQgaWNiOwogICAgICAgIF9fdTE2IGxlbmd0aE9m
SW1wVXNlOwogICAgICAgIF9fdTggaW1wVXNlWzBdOwogICAgICAgIF9fdTggZmlsZUlkZW50WzBd
OwogICAgICAgIF9fdTggcGFkZGluZ1swXTsKfTsKCgojZGVmaW5lIEZJTEVfSElEREVOIDEKI2Rl
ZmluZSBGSUxFX0RJUkVDVE9SWSAyCiNkZWZpbmUgRklMRV9ERUxFVEVEIDQKI2RlZmluZSBGSUxF
X1BBUkVOVCA4CiNkZWZpbmUgRklMRV9NRVRBREFUQSAweDEwCgoKc3RydWN0IEFsbG9jRXh0RGVz
Ywp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgcHJldmlvdXNBbGxvY0V4dExv
Y2F0aW9uOwogICAgICAgIF9fdTMyIGxlbmd0aEFsbG9jRGVzY3M7Cn07CgoKdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgIF9fdTMyIHByaW9yUmVjb3JkZWROdW1EaXJlY3RFbnRyaWVzOwogICAgICAg
IF9fdTE2IHN0cmF0ZWd5VHlwZTsKICAgICAgICBfX3UxNiBzdHJhdGVneVBhcmFtZXRlcjsKICAg
ICAgICBfX3UxNiBudW1FbnRyaWVzOwogICAgICAgIF9fdTggcmVzZXJ2ZWQ7CiAgICAgICAgX191
OCBmaWxlVHlwZTsKICAgICAgICBsYl9hZGRyIHBhcmVudElDQkxvY2F0aW9uOwogICAgICAgIF9f
dTE2IGZsYWdzOwp9IGljYnRhZzsKCgojZGVmaW5lIEZJTEVfVFlQRV9OT05FIDB4MDBVCiNkZWZp
bmUgRklMRV9UWVBFX1VOQUxMT0MgMHgwMVUKI2RlZmluZSBGSUxFX1RZUEVfSU5URUdSSVRZIDB4
MDJVCiNkZWZpbmUgRklMRV9UWVBFX0lORElSRUNUIDB4MDNVCiNkZWZpbmUgRklMRV9UWVBFX0RJ
UkVDVE9SWSAweDA0VQojZGVmaW5lIEZJTEVfVFlQRV9SRUdVTEFSIDB4MDVVCiNkZWZpbmUgRklM
RV9UWVBFX0JMT0NLIDB4MDZVCiNkZWZpbmUgRklMRV9UWVBFX0NIQVIgMHgwN1UKI2RlZmluZSBG
SUxFX1RZUEVfRVhURU5ERUQgMHgwOFUKI2RlZmluZSBGSUxFX1RZUEVfRklGTyAweDA5VQojZGVm
aW5lIEZJTEVfVFlQRV9TT0NLRVQgMHgwYVUKI2RlZmluZSBGSUxFX1RZUEVfVEVSTUlOQUwgMHgw
YlUKI2RlZmluZSBGSUxFX1RZUEVfU1lNTElOSyAweDBjVQojZGVmaW5lIEZJTEVfVFlQRV9TVFJF
QU1ESVIgMHgwZFUKCgojZGVmaW5lIElDQl9GTEFHX0FMTE9DX01BU0sgMHgwMDA3VQojZGVmaW5l
IElDQl9GTEFHX1NPUlRFRCAweDAwMDhVCiNkZWZpbmUgSUNCX0ZMQUdfTk9OUkVMT0NBVEFCTEUg
MHgwMDEwVQojZGVmaW5lIElDQl9GTEFHX0FSQ0hJVkUgMHgwMDIwVQojZGVmaW5lIElDQl9GTEFH
X1NFVFVJRCAweDAwNDBVCiNkZWZpbmUgSUNCX0ZMQUdfU0VUR0lEIDB4MDA4MFUKI2RlZmluZSBJ
Q0JfRkxBR19TVElDS1kgMHgwMTAwVQojZGVmaW5lIElDQl9GTEFHX0NPTlRJR1VPVVMgMHgwMjAw
VQojZGVmaW5lIElDQl9GTEFHX1NZU1RFTSAweDA0MDBVCiNkZWZpbmUgSUNCX0ZMQUdfVFJBTlNG
T1JNRUQgMHgwODAwVQojZGVmaW5lIElDQl9GTEFHX01VTFRJVkVSU0lPTlMgMHgxMDAwVQoKCiNk
ZWZpbmUgSUNCX0ZMQUdfQURfU0hPUlQgMAojZGVmaW5lIElDQl9GTEFHX0FEX0xPTkcgMQojZGVm
aW5lIElDQl9GTEFHX0FEX0VYVEVOREVEIDIKI2RlZmluZSBJQ0JfRkxBR19BRF9JTl9JQ0IgMwoK
CnN0cnVjdCBJbmRpcmVjdEVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBpY2J0
YWcgaWNiVGFnOwogICAgICAgIGxvbmdfYWQgaW5kaXJlY3RJQ0I7Cn07CgoKc3RydWN0IFRlcm1p
bmFsRW50cnkgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7Cn07
CgoKc3RydWN0IEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNidGFn
IGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAgIF9f
dTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAgX191
OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAgICBf
X3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAgICAg
ICAgX191NjQgbG9naWNhbEJsb2Nrc1JlY29yZGVkOwogICAgICAgIHRpbWVzdGFtcCBhY2Nlc3NU
aW1lOwogICAgICAgIHRpbWVzdGFtcCBtb2RpZmljYXRpb25UaW1lOwogICAgICAgIHRpbWVzdGFt
cCBhdHRyVGltZTsKICAgICAgICBfX3UzMiBjaGVja3BvaW50OwogICAgICAgIGxvbmdfYWQgZXh0
ZW5kZWRBdHRySUNCOwogICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTY0IHVu
aXF1ZUlEOwogICAgICAgIF9fdTMyIGxlbmd0aEV4dGVuZGVkQXR0cjsKICAgICAgICBfX3UzMiBs
ZW5ndGhBbGxvY0Rlc2NzOwogICAgICAgIF9fdTggZXh0ZW5kZWRBdHRyWzBdOwogICAgICAgIF9f
dTggYWxsb2NEZXNjc1swXTsKfTsKCgojZGVmaW5lIFBFUk1fT19FWEVDIDB4MDAwMDAwMDFVCiNk
ZWZpbmUgUEVSTV9PX1dSSVRFIDB4MDAwMDAwMDJVCiNkZWZpbmUgUEVSTV9PX1JFQUQgMHgwMDAw
MDAwNFUKI2RlZmluZSBQRVJNX09fQ0hBVFRSIDB4MDAwMDAwMDhVCiNkZWZpbmUgUEVSTV9PX0RF
TEVURSAweDAwMDAwMDEwVQojZGVmaW5lIFBFUk1fR19FWEVDIDB4MDAwMDAwMjBVCiNkZWZpbmUg
UEVSTV9HX1dSSVRFIDB4MDAwMDAwNDBVCiNkZWZpbmUgUEVSTV9HX1JFQUQgMHgwMDAwMDA4MFUK
I2RlZmluZSBQRVJNX0dfQ0hBVFRSIDB4MDAwMDAxMDBVCiNkZWZpbmUgUEVSTV9HX0RFTEVURSAw
eDAwMDAwMjAwVQojZGVmaW5lIFBFUk1fVV9FWEVDIDB4MDAwMDA0MDBVCiNkZWZpbmUgUEVSTV9V
X1dSSVRFIDB4MDAwMDA4MDBVCiNkZWZpbmUgUEVSTV9VX1JFQUQgMHgwMDAwMTAwMFUKI2RlZmlu
ZSBQRVJNX1VfQ0hBVFRSIDB4MDAwMDIwMDBVCiNkZWZpbmUgUEVSTV9VX0RFTEVURSAweDAwMDA0
MDAwVQoKCiNkZWZpbmUgUkVDT1JEX0ZNVF9OT05FIDAKI2RlZmluZSBSRUNPUkRfRk1UX0ZJWEVE
X1BBRCAxCiNkZWZpbmUgUkVDT1JEX0ZNVF9GSVhFRCAyCiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJ
QUJMRTggMwojZGVmaW5lIFJFQ09SRF9GTVRfVkFSSUFCTEUxNiA0CiNkZWZpbmUgUkVDT1JEX0ZN
VF9WQVJJQUJMRTE2X01TQiA1CiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJQUJMRTMyIDYKI2RlZmlu
ZSBSRUNPUkRfRk1UX1BSSU5UIDcKI2RlZmluZSBSRUNPUkRfRk1UX0xGIDgKI2RlZmluZSBSRUNP
UkRfRk1UX0NSIDkKI2RlZmluZSBSRUNPUkRfRk1UX0NSTEYgMTAKI2RlZmluZSBSRUNPUkRfRk1U
X0xGQ1IgMTAKCgpzdHJ1Y3QgRXh0ZW5kZWRBdHRySGVhZGVyRGVzYyB7CiAgICAgICAgdGFnIGRl
c2NUYWc7CiAgICAgICAgX191MzIgaW1wQXR0ckxvY2F0aW9uOwogICAgICAgIF9fdTMyIGFwcEF0
dHJMb2NhdGlvbjsKfTsKCgpzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgewogICAgICAgIF9fdTMy
IGF0dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZl
ZFszXTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTggYXR0ckRhdGFbMF07
Cn07CgoKc3RydWN0IENoYXJTZXRBdHRyRm9ybWF0IHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsK
ICAgICAgICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAg
ICAgX191MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBlc2NhcGVTZXFMZW5ndGg7CiAgICAg
ICAgX191OCBjaGFyU2V0VHlwZTsKICAgICAgICBfX3U4IGVzY2FwZVNlcVswXTsKfTsKCgpzdHJ1
Y3QgQWx0ZXJuYXRlUGVybWlzc2lvbnNFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0dHJU
eXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFszXTsK
ICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTE2IG93bmVySWRlbnQ7CiAgICAg
ICAgX191MTYgZ3JvdXBJZGVudDsKICAgICAgICBfX3UxNiBwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0
NTc7Cn07CgoKc3RydWN0IEZpbGVUaW1lc0V4dGVuZGVkQXR0ciB7CiAgICAgICAgX191MzIgYXR0
clR5cGU7CiAgICAgICAgX191OCBhdHRyU3VidHlwZTsKICAgICAgICBfX3U4IHJlc2VydmVkWzNd
OwogICAgICAgIF9fdTMyIGF0dHJMZW5ndGg7CiAgICAgICAgX191MzIgZGF0YUxlbmd0aDsKICAg
ICAgICBfX3UzMiBmaWxlVGltZUV4aXN0ZW5jZTsKICAgICAgICBfX3U4IGZpbGVUaW1lczsKfTsK
CgojZGVmaW5lIEZURV9DUkVBVElPTiAwCiNkZWZpbmUgRlRFX0RFTEVUSU9OIDIKI2RlZmluZSBG
VEVfRUZGRUNUSVZFIDMKI2RlZmluZSBGVEVfQkFDS1VQIDUKCgpzdHJ1Y3QgSW5mb1RpbWVzRXh0
ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0dHJTdWJ0
eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxlbmd0aDsK
ICAgICAgICBfX3UzMiBkYXRhTGVuZ3RoOwogICAgICAgIF9fdTMyIGluZm9UaW1lRXhpc3RlbmNl
OwogICAgICAgIF9fdTggaW5mb1RpbWVzWzBdOwp9OwoKCnN0cnVjdCBEZXZpY2VTcGVjaWZpY2F0
aW9uRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0
dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxl
bmd0aDsKICAgICAgICBfX3UzMiBpbXBVc2VMZW5ndGg7CiAgICAgICAgX191MzIgbWFqb3JEZXZp
Y2VJZGVudDsKICAgICAgICBfX3UzMiBtaW5vckRldmljZUlkZW50OwogICAgICAgIF9fdTggaW1w
VXNlWzBdOwp9OwoKCnN0cnVjdCBJbXBVc2VFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0
dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsz
XTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTMyIGltcFVzZUxlbmd0aDsK
ICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgpz
dHJ1Y3QgQXBwVXNlRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAg
ICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191
MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBhcHBVc2VMZW5ndGg7CiAgICAgICAgRW50aXR5
SUQgYXBwSWRlbnQ7CiAgICAgICAgX191OCBhcHBVc2VbMF07Cn07CgojZGVmaW5lIEVYVEFUVFJf
Q0hBUl9TRVQgMQojZGVmaW5lIEVYVEFUVFJfQUxUX1BFUk1TIDMKI2RlZmluZSBFWFRBVFRSX0ZJ
TEVfVElNRVMgNQojZGVmaW5lIEVYVEFUVFJfSU5GT19USU1FUyA2CiNkZWZpbmUgRVhUQVRUUl9E
RVZfU1BFQyAxMgojZGVmaW5lIEVYVEFUVFJfSU1QX1VTRSAyMDQ4CiNkZWZpbmUgRVhUQVRUUl9B
UFBfVVNFIDY1NTM2CgoKCnN0cnVjdCBVbmFsbG9jYXRlZFNwYWNlRW50cnkgewogICAgICAgIHRh
ZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7CiAgICAgICAgX191MzIgbGVuZ3RoQWxs
b2NEZXNjczsKICAgICAgICBfX3U4IGFsbG9jRGVzY3NbMF07Cn07CgoKc3RydWN0IFNwYWNlQml0
bWFwRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgbnVtT2ZCaXRzOwog
ICAgICAgIF9fdTMyIG51bU9mQnl0ZXM7CiAgICAgICAgX191OCBiaXRtYXBbMF07Cn07CgoKc3Ry
dWN0IFBhcnRpdGlvbkludGVncml0eUVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg
ICBpY2J0YWcgaWNiVGFnOwogICAgICAgIHRpbWVzdGFtcCByZWNvcmRpbmdEYXRlQW5kVGltZTsK
ICAgICAgICBfX3U4IGludGVncml0eVR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsxNzVdOwog
ICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTggaW1wVXNlWzI1Nl07Cn07CgoK
dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBfX3UzMiBy
ZWNvcmRlZExlbmd0aDsKICAgICAgICBfX3UzMiBpbmZvcm1hdGlvbkxlbmd0aDsKICAgICAgICBs
Yl9hZGRyIGV4dExvY2F0aW9uOwp9IGV4dF9hZDsKCgpzdHJ1Y3QgTG9naWNhbFZvbEhlYWRlckRl
c2MgewogICAgICAgIF9fdTY0IHVuaXF1ZUlEOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjRdOwp9
OwoKCnN0cnVjdCBQYXRoQ29tcG9uZW50IHsKICAgICAgICBfX3U4IGNvbXBvbmVudFR5cGU7CiAg
ICAgICAgX191OCBsZW5ndGhDb21wb25lbnRJZGVudDsKICAgICAgICBfX3UxNiBjb21wb25lbnRG
aWxlVmVyc2lvbk51bTsKICAgICAgICBkc3RyaW5nIGNvbXBvbmVudElkZW50WzBdOwp9OwoKCnN0
cnVjdCBFeHRlbmRlZEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNi
dGFnIGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAg
IF9fdTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAg
X191OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAg
ICBfX3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAg
ICAgICAgX191NjQgb2JqZWN0U2l6ZTsKICAgICAgICBfX3U2NCBsb2dpY2FsQmxvY2tzUmVjb3Jk
ZWQ7CiAgICAgICAgdGltZXN0YW1wIGFjY2Vzc1RpbWU7CiAgICAgICAgdGltZXN0YW1wIG1vZGlm
aWNhdGlvblRpbWU7CiAgICAgICAgdGltZXN0YW1wIGNyZWF0ZVRpbWU7CiAgICAgICAgdGltZXN0
YW1wIGF0dHJUaW1lOwogICAgICAgIF9fdTMyIGNoZWNrcG9pbnQ7CiAgICAgICAgX191MzIgcmVz
ZXJ2ZWQ7CiAgICAgICAgbG9uZ19hZCBleHRlbmRlZEF0dHJJQ0I7CiAgICAgICAgbG9uZ19hZCBz
dHJlYW1EaXJlY3RvcnlJQ0I7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191
NjQgdW5pcXVlSUQ7CiAgICAgICAgX191MzIgbGVuZ3RoRXh0ZW5kZWRBdHRyOwogICAgICAgIF9f
dTMyIGxlbmd0aEFsbG9jRGVzY3M7CiAgICAgICAgX191OCBleHRlbmRlZEF0dHJbMF07CiAgICAg
ICAgX191OCBhbGxvY0Rlc2NzWzBdOwp9OwojcHJhZ21hIHBhY2soKQojIDUgImZzL3VkZi91ZGZk
ZWNsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl91ZGYu
aCIgMQoKI2RlZmluZSBfTElOVVhfVURGX1VERl9ICiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX3VkZi5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvdWRmXzE2Ny5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdWRmX3VkZi5oIiAyCgojcHJhZ21hIHBhY2soMSkKCgoKI2RlZmluZSBVREZfQ0hBUl9T
RVRfVFlQRSAwCiNkZWZpbmUgVURGX0NIQVJfU0VUX0lORk8gIk9TVEEgQ29tcHJlc3NlZCBVbmlj
b2RlIgoKI2RlZmluZSBVREZfSURfREVWRUxPUEVSICIqTGludXggVURGRlMiCgoKc3RydWN0IExv
Z2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlCnsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsK
ICAgICAgICBfX3UzMiBudW1GaWxlczsKICAgICAgICBfX3UzMiBudW1EaXJzOwogICAgICAgIF9f
dTE2IG1pblVERlJlYWRSZXY7CiAgICAgICAgX191MTYgbWluVURGV3JpdGVSZXY7CiAgICAgICAg
X191MTYgbWF4VURGV3JpdGVSZXY7Cn07CgoKCnN0cnVjdCBJbXBVc2VWb2xEZXNjSW1wVXNlCnsK
ICAgICAgICBjaGFyc3BlYyBMVklDaGFyc2V0OwogICAgICAgIGRzdHJpbmcgbG9naWNhbFZvbElk
ZW50WzEyOF07CiAgICAgICAgZHN0cmluZyBMVkluZm8xWzM2XTsKICAgICAgICBkc3RyaW5nIExW
SW5mbzJbMzZdOwogICAgICAgIGRzdHJpbmcgTFZJbmZvM1szNl07CiAgICAgICAgRW50aXR5SUQg
aW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbMTI4XTsKfTsKCnN0cnVjdCBVZGZQYXJ0aXRp
b25NYXAyCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0
aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAgRW50aXR5
SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0
aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBWaXJ0dWFs
UGFydGl0aW9uTWFwCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191
OCBwYXJ0aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAg
RW50aXR5SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux
NiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBT
cGFyYWJsZVBhcnRpdGlvbk1hcAp7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBUeXBlOwogICAg
ICAgIF9fdTggcGFydGl0aW9uTWFwTGVuZ3RoOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxWzJdOwog
ICAgICAgIEVudGl0eUlEIHBhcnRJZGVudDsKCgogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAg
ICAgICBfX3UxNiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191MTYgcGFja2V0TGVuZ3RoOwogICAg
ICAgIF9fdTggbnVtU3BhcmluZ1RhYmxlczsKICAgICAgICBfX3U4IHJlc2VydmVkMlsxXTsKICAg
ICAgICBfX3UzMiBzaXplU3BhcmluZ1RhYmxlOwogICAgICAgIF9fdTMyIGxvY1NwYXJpbmdUYWJs
ZVs0XTsKfTsKCgoKc3RydWN0IERWRENvcHlyaWdodEltcFVzZSB7CiAgICAgICAgX191MTYgaGVh
ZGVyQ2hlY2tzdW07CiAgICAgICAgX191OCBDR01TSW5mbzsKICAgICAgICBfX3U4IGRhdGFUeXBl
OwogICAgICAgIF9fdTggcHJvdGVjdGlvblN5c3RlbUluZm9bNF07Cn07CgoKc3RydWN0IEFESW1w
VXNlCnsKICAgICAgICBfX3UxNiBmbGFnczsKICAgICAgICBfX3U4IGltcFVzZVs0XTsKfTsKCgoj
ZGVmaW5lIFVERl9FWFRFTlRfTEVOR1RIX01BU0sgMHgzRkZGRkZGRgojZGVmaW5lIFVERl9FWFRF
TlRfRkxBR19NQVNLIDB4YzAwMDAwMDAKI2RlZmluZSBVREZfRVhURU5UX0ZMQUdfRVJBU0VEIDB4
NDAwMDAwMDAKIyAxMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmX3Vk
Zi5oIgojZGVmaW5lIEZJTEVfVFlQRV9WQVQxNSAweDBVCgoKc3RydWN0IFZpcnV0YWxBbGxvY2F0
aW9uVGFibGUxNSB7CiAgICAgICAgX191MzIgVmlydHVhbFNlY3RvclswXTsKICAgICAgICBFbnRp
dHlJRCBpZGVudDsKICAgICAgICBfX3UzMiBwcmV2aW91c1ZBVElDQjsKICAgfTsKCgoKCiNkZWZp
bmUgRklMRV9UWVBFX1ZBVDIwIDB4ZjhVCgoKc3RydWN0IFZpcnR1YWxBbGxvY2F0aW9uVGFibGUy
MCB7CiAgICAgICAgX191MTYgbGVuZ3RoSGVhZGVyOwogICAgICAgIF9fdTE2IGxlbmd0aEltcFVz
ZTsKICAgICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIF9fdTMyIHBy
ZXZpb3VzVmF0SUNCTG9jOwogICAgICAgIF9fdTMyIG51bUZJRFNGaWxlczsKICAgICAgICBfX3Uz
MiBudW1GSURTRGlyZWN0b3JpZXM7CiAgICAgICAgX191MTYgbWluUmVhZFJldmlzaW9uOwogICAg
ICAgIF9fdTE2IG1pbldyaXRlUmV2aXNpb247CiAgICAgICAgX191MTYgbWF4V3JpdGVSZXZpc2lv
bjsKICAgICAgICBfX3UxNiByZXNlcnZlZDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKICAgICAg
ICBfX3UzMiB2YXRFbnRyeVswXTsKfTsKCgoKI2RlZmluZSBGSUxFX1RZUEVfUkVBTFRJTUUgMHhm
OVUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgb3JpZ0xvY2F0aW9uOwogICAgICAg
IF9fdTMyIG1hcHBlZExvY2F0aW9uOwp9IFNwYXJpbmdFbnRyeTsKCgpzdHJ1Y3QgU3BhcmluZ1Rh
YmxlIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBFbnRpdHlJRCBzcGFyaW5nSWRlbnQ7
CiAgICAgICAgX191MTYgcmVhbGxvY2F0aW9uVGFibGVMZW47CiAgICAgICAgX191MTYgcmVzZXJ2
ZWQ7CiAgICAgICAgX191MzIgc2VxdWVuY2VOdW07CiAgICAgICAgU3BhcmluZ0VudHJ5IG1hcEVu
dHJ5WzBdOwp9OwoKCiNkZWZpbmUgVURGX0lEX0NPTVBMSUFOVCAiKk9TVEEgVURGIENvbXBsaWFu
dCIKI2RlZmluZSBVREZfSURfTFZfSU5GTyAiKlVERiBMViBJbmZvIgojZGVmaW5lIFVERl9JRF9G
UkVFX0VBICIqVURGIEZyZWVFQVNwYWNlIgojZGVmaW5lIFVERl9JRF9GUkVFX0FQUF9FQSAiKlVE
RiBGcmVlQXBwRUFTcGFjZSIKI2RlZmluZSBVREZfSURfRFZEX0NHTVMgIipVREYgRFZEIENHTVMg
SW5mbyIKI2RlZmluZSBVREZfSURfT1MyX0VBICIqVURGIE9TLzIgRUEiCiNkZWZpbmUgVURGX0lE
X09TMl9FQV9MRU5HVEggIipVREYgT1MvMiBFQUxlbmd0aCIKI2RlZmluZSBVREZfSURfTUFDX1ZP
TFVNRSAiKlVERiBNYWMgVm9sdW1lSW5mbyIKI2RlZmluZSBVREZfSURfTUFDX0ZJTkRFUiAiKlVE
RiBNYWMgRmluZGVySW5mbyIKI2RlZmluZSBVREZfSURfTUFDX1VOSVFVRSAiKlVERiBNYWMgVW5p
cXVlSURUYWJsZSIKI2RlZmluZSBVREZfSURfTUFDX1JFU09VUkNFICIqVURGIE1hYyBSZXNvdXJj
ZUZvcmsiCiNkZWZpbmUgVURGX0lEX1ZJUlRVQUwgIipVREYgVmlydHVhbCBQYXJ0aXRpb24iCiNk
ZWZpbmUgVURGX0lEX1NQQVJBQkxFICIqVURGIFNwYXJhYmxlIFBhcnRpdGlvbiIKI2RlZmluZSBV
REZfSURfQUxMT0MgIipVREYgVmlydHVhbCBBbGxvYyBUYmwiCiNkZWZpbmUgVURGX0lEX1NQQVJJ
TkcgIipVREYgU3BhcmluZyBUYWJsZSIKCgojZGVmaW5lIFVERl9PU19DTEFTU19VTkRFRiAweDAw
VQojZGVmaW5lIFVERl9PU19DTEFTU19ET1MgMHgwMVUKI2RlZmluZSBVREZfT1NfQ0xBU1NfT1My
IDB4MDJVCiNkZWZpbmUgVURGX09TX0NMQVNTX01BQyAweDAzVQojZGVmaW5lIFVERl9PU19DTEFT
U19VTklYIDB4MDRVCiNkZWZpbmUgVURGX09TX0NMQVNTX1dJTjk1IDB4MDVVCiNkZWZpbmUgVURG
X09TX0NMQVNTX1dJTk5UIDB4MDZVCiNkZWZpbmUgVURGX09TX0lEX1VOREVGIDB4MDBVCiNkZWZp
bmUgVURGX09TX0lEX0RPUyAweDAwVQojZGVmaW5lIFVERl9PU19JRF9PUzIgMHgwMFUKI2RlZmlu
ZSBVREZfT1NfSURfTUFDIDB4MDBVCiNkZWZpbmUgVURGX09TX0lEX1VOSVggMHgwMFUKI2RlZmlu
ZSBVREZfT1NfSURfV0lOOTUgMHgwMFUKI2RlZmluZSBVREZfT1NfSURfV0lOTlQgMHgwMFUKI2Rl
ZmluZSBVREZfT1NfSURfQUlYIDB4MDFVCiNkZWZpbmUgVURGX09TX0lEX1NPTEFSSVMgMHgwMlUK
I2RlZmluZSBVREZfT1NfSURfSFBVWCAweDAzVQojZGVmaW5lIFVERl9PU19JRF9JUklYIDB4MDRV
CiNkZWZpbmUgVURGX09TX0lEX0xJTlVYIDB4MDVVCiNkZWZpbmUgVURGX09TX0lEX01LTElOVVgg
MHgwNlUKI2RlZmluZSBVREZfT1NfSURfRlJFRUJTRCAweDA3VQoKI2RlZmluZSBVREZfTkFNRV9Q
QUQgNAojZGVmaW5lIFVERl9OQU1FX0xFTiAyNTUKI2RlZmluZSBVREZfUEFUSF9MRU4gMTAyMwoK
I3ByYWdtYSBwYWNrKCkKIyA2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCiMgMSAiZnMvdWRmL3VkZmVu
ZC5oIiAxCgojZGVmaW5lIF9fVURGX0VORElBTl9ICiMgNTMgImZzL3VkZi91ZGZlbmQuaCIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfQllURU9SREVSX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL2J5dGVvcmRlci5oIiAyCgpzdGF0aWMgX19pbmxpbmVfXyBfX2NvbnN0X18gX191NjQKX19p
YTY0X3N3YWI2NCAoX191NjQgeCkKewogICAgICAgIF9fdTY0IHJlc3VsdDsKCiAgICAgICAgX19h
c21fXyAoIm11eDEgJTA9JTEsQHJldiIgOiAiPXIiIChyZXN1bHQpIDogInIiICh4KSk7CiAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTMyCl9f
aWE2NF9zd2FiMzIgKF9fdTMyIHgpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWI2NCh4KSA+
PiAzMjsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTE2Cl9faWE2NF9zd2FiMTYo
X191MTYgeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjY0KHgpID4+IDQ4Owp9CgojZGVm
aW5lIF9fYXJjaF9fc3dhYjY0KHgpIF9faWE2NF9zd2FiNjQoeCkKI2RlZmluZSBfX2FyY2hfX3N3
YWIzMih4KSBfX2lhNjRfc3dhYjMyKHgpCiNkZWZpbmUgX19hcmNoX19zd2FiMTYoeCkgX19pYTY0
X3N3YWIxNih4KQoKI2RlZmluZSBfX0JZVEVPUkRFUl9IQVNfVTY0X18KCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9CWVRFT1JERVJfTElUVExFX0VORElBTl9ICgoKI2RlZmluZSBfX0xJVFRM
RV9FTkRJQU4gMTIzNAoKCiNkZWZpbmUgX19MSVRUTEVfRU5ESUFOX0JJVEZJRUxECgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9zd2FiLmgiIDEKCiNk
ZWZpbmUgX0xJTlVYX0JZVEVPUkRFUl9TV0FCX0gKIyAyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fX3N3YWIxNih4KSAoeyBf
X3UxNiBfX3ggPSAoeCk7ICgoX191MTYpKCAoKChfX3UxNikoX194KSAmIChfX3UxNikweDAwZmZV
KSA8PCA4KSB8ICgoKF9fdTE2KShfX3gpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpICkpOyB9KQoK
CgoKCgoKI2RlZmluZSBfX19zd2FiMzIoeCkgKHsgX191MzIgX194ID0gKHgpOyAoKF9fdTMyKSgg
KCgoX191MzIpKF9feCkgJiAoX191MzIpMHgwMDAwMDBmZlVMKSA8PCAyNCkgfCAoKChfX3UzMiko
X194KSAmIChfX3UzMikweDAwMDBmZjAwVUwpIDw8IDgpIHwgKCgoX191MzIpKF9feCkgJiAoX191
MzIpMHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKShfX3gpICYgKF9fdTMyKTB4ZmYwMDAw
MDBVTCkgPj4gMjQpICkpOyB9KQojIDM5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2J5dGVvcmRlci9zd2FiLmgiCiNkZWZpbmUgX19fc3dhYjY0KHgpICh7IF9fdTY0IF9feCA9
ICh4KTsgKChfX3U2NCkoIChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAwMDAwMDAw
MDAwMDAwZmZVTEwpIDw8IDU2KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAw
MDAwMDAwMDAwMGZmMDBVTEwpIDw8IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2
NCkweDAwMDAwMDAwMDBmZjAwMDBVTEwpIDw8IDI0KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAm
IChfX3U2NCkweDAwMDAwMDAwZmYwMDAwMDBVTEwpIDw8IDgpIHwgKF9fdTY0KSgoKF9fdTY0KShf
X3gpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAwMDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191
NjQpKF9feCkgJiAoX191NjQpMHgwMDAwZmYwMDAwMDAwMDAwVUxMKSA+PiAyNCkgfCAoX191NjQp
KCgoX191NjQpKF9feCkgJiAoX191NjQpMHgwMGZmMDAwMDAwMDAwMDAwVUxMKSA+PiA0MCkgfCAo
X191NjQpKCgoX191NjQpKF9feCkgJiAoX191NjQpMHhmZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1
NikgKSk7IH0pCiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYnl0ZW9y
ZGVyL3N3YWIuaCIKI2RlZmluZSBfX19jb25zdGFudF9zd2FiMTYoeCkgKChfX3UxNikoICgoKF9f
dTE2KSh4KSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8ICgoKF9fdTE2KSh4KSAmIChfX3UxNikw
eGZmMDBVKSA+PiA4KSApKQoKCgojZGVmaW5lIF9fX2NvbnN0YW50X3N3YWIzMih4KSAoKF9fdTMy
KSggKCgoX191MzIpKHgpICYgKF9fdTMyKTB4MDAwMDAwZmZVTCkgPDwgMjQpIHwgKCgoX191MzIp
KHgpICYgKF9fdTMyKTB4MDAwMGZmMDBVTCkgPDwgOCkgfCAoKChfX3UzMikoeCkgJiAoX191MzIp
MHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKSh4KSAmIChfX3UzMikweGZmMDAwMDAwVUwp
ID4+IDI0KSApKQoKCgoKCiNkZWZpbmUgX19fY29uc3RhbnRfc3dhYjY0KHgpICgoX191NjQpKCAo
X191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDAwMDAwMDBmZlVMTCkgPDwgNTYp
IHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDAwMGZmMDBVTEwpIDw8
IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHgwMDAwMDAwMDAwZmYwMDAwVUxM
KSA8PCAyNCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDBmZjAwMDAw
MFVMTCkgPDwgOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAw
MDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMGZmMDAw
MDAwMDAwMFVMTCkgPj4gMjQpIHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwZmYw
MDAwMDAwMDAwMDBVTEwpID4+IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHhm
ZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1NikgKSkKIyA4OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fYXJjaF9fc3dhYjE2cCh4
KSBfX2FyY2hfX3N3YWIxNigqKHgpKQoKCiNkZWZpbmUgX19hcmNoX19zd2FiMzJwKHgpIF9fYXJj
aF9fc3dhYjMyKCooeCkpCgoKI2RlZmluZSBfX2FyY2hfX3N3YWI2NHAoeCkgX19hcmNoX19zd2Fi
NjQoKih4KSkKCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIxNnMoeCkgZG8geyAqKHgpID0gX19hcmNo
X19zd2FiMTZwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIzMnMoeCkg
ZG8geyAqKHgpID0gX19hcmNoX19zd2FiMzJwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBf
X2FyY2hfX3N3YWI2NHMoeCkgZG8geyAqKHgpID0gX19hcmNoX19zd2FiNjRwKCh4KSk7IH0gd2hp
bGUgKDApCgoKCgoKCgojZGVmaW5lIF9fc3dhYjE2KHgpIChfX2J1aWx0aW5fY29uc3RhbnRfcCgo
X191MTYpKHgpKSA/IF9fX3N3YWIxNigoeCkpIDogX19mc3dhYjE2KCh4KSkpCgoKCiNkZWZpbmUg
X19zd2FiMzIoeCkgKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3UzMikoeCkpID8gX19fc3dhYjMy
KCh4KSkgOiBfX2Zzd2FiMzIoKHgpKSkKCgoKI2RlZmluZSBfX3N3YWI2NCh4KSAoX19idWlsdGlu
X2NvbnN0YW50X3AoKF9fdTY0KSh4KSkgPyBfX19zd2FiNjQoKHgpKSA6IF9fZnN3YWI2NCgoeCkp
KQojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dh
Yi5oIgpleHRlcm4gX19pbmxpbmVfXyBfX2NvbnN0X18gX191MTYgX19mc3dhYjE2KF9fdTE2IHgp
CnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNih4KTsKfQpleHRlcm4gX19pbmxpbmVfXyBf
X3UxNiBfX3N3YWIxNnAoX191MTYgKngpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNigq
KHgpKTsKfQpleHRlcm4gX19pbmxpbmVfXyB2b2lkIF9fc3dhYjE2cyhfX3UxNiAqYWRkcikKewog
ICAgICAgIGRvIHsgKihhZGRyKSA9IF9faWE2NF9zd2FiMTYoKigoYWRkcikpKTsgfSB3aGlsZSAo
MCk7Cn0KCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3UzMiBfX2Zzd2FiMzIoX191MzIg
eCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMyKHgpOwp9CmV4dGVybiBfX2lubGluZV9f
IF9fdTMyIF9fc3dhYjMycChfX3UzMiAqeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMy
KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiMzJzKF9fdTMyICphZGRyKQp7
CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWIzMigqKChhZGRyKSkpOyB9IHdoaWxl
ICgwKTsKfQoKCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3U2NCBfX2Zzd2FiNjQoX191
NjQgeCkKewoKCgoKCiAgICAgICAgcmV0dXJuIF9faWE2NF9zd2FiNjQoeCk7Cgp9CmV4dGVybiBf
X2lubGluZV9fIF9fdTY0IF9fc3dhYjY0cChfX3U2NCAqeCkKewogICAgICAgIHJldHVybiBfX2lh
NjRfc3dhYjY0KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiNjRzKF9fdTY0
ICphZGRyKQp7CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWI2NCgqKChhZGRyKSkp
OyB9IHdoaWxlICgwKTsKfQoKCgojZGVmaW5lIHN3YWIxNiBfX3N3YWIxNgojZGVmaW5lIHN3YWIz
MiBfX3N3YWIzMgojZGVmaW5lIHN3YWI2NCBfX3N3YWI2NAojZGVmaW5lIHN3YWIxNnAgX19zd2Fi
MTZwCiNkZWZpbmUgc3dhYjMycCBfX3N3YWIzMnAKI2RlZmluZSBzd2FiNjRwIF9fc3dhYjY0cAoj
ZGVmaW5lIHN3YWIxNnMgX19zd2FiMTZzCiNkZWZpbmUgc3dhYjMycyBfX3N3YWIzMnMKI2RlZmlu
ZSBzd2FiNjRzIF9fc3dhYjY0cwojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKCiNkZWZpbmUgX19jb25zdGFudF9odG9u
bCh4KSBfX19jb25zdGFudF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfbnRvaGwoeCkg
X19fY29uc3RhbnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2h0b25zKHgpIF9fX2Nv
bnN0YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9udG9ocyh4KSBfX19jb25zdGFu
dF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlNjQoeCkgKChfX3U2NCko
eCkpCiNkZWZpbmUgX19jb25zdGFudF9sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmlu
ZSBfX2NvbnN0YW50X2NwdV90b19sZTMyKHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fY29uc3Rh
bnRfbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9f
bGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2xlMTZfdG9fY3B1KHgpICgo
X191MTYpKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2JlNjQoeCkgX19fY29uc3RhbnRf
c3dhYjY0KCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2JlNjRfdG9fY3B1KHgpIF9fX2NvbnN0YW50
X3N3YWI2NCgoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUzMih4KSBfX19jb25zdGFu
dF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfYmUzMl90b19jcHUoeCkgX19fY29uc3Rh
bnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2NwdV90b19iZTE2KHgpIF9fX2NvbnN0
YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9iZTE2X3RvX2NwdSh4KSBfX19jb25z
dGFudF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjQoeCkgKChfX3U2NCkoeCkpCiNk
ZWZpbmUgX19sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmluZSBfX2NwdV90b19sZTMy
KHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNk
ZWZpbmUgX19jcHVfdG9fbGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2xlMTZfdG9fY3B1
KHgpICgoX191MTYpKHgpKQojZGVmaW5lIF9fY3B1X3RvX2JlNjQoeCkgX19zd2FiNjQoKHgpKQoj
ZGVmaW5lIF9fYmU2NF90b19jcHUoeCkgX19zd2FiNjQoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2Jl
MzIoeCkgX19zd2FiMzIoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHUoeCkgX19zd2FiMzIoKHgp
KQojZGVmaW5lIF9fY3B1X3RvX2JlMTYoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fYmUxNl90
b19jcHUoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjRwKHgpICgqKF9fdTY0
KikoeCkpCiNkZWZpbmUgX19sZTY0X3RvX2NwdXAoeCkgKCooX191NjQqKSh4KSkKI2RlZmluZSBf
X2NwdV90b19sZTMycCh4KSAoKihfX3UzMiopKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHVwKHgp
ICgqKF9fdTMyKikoeCkpCiNkZWZpbmUgX19jcHVfdG9fbGUxNnAoeCkgKCooX191MTYqKSh4KSkK
I2RlZmluZSBfX2xlMTZfdG9fY3B1cCh4KSAoKihfX3UxNiopKHgpKQojZGVmaW5lIF9fY3B1X3Rv
X2JlNjRwKHgpIF9fc3dhYjY0cCgoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXAoeCkgX19zd2Fi
NjRwKCh4KSkKI2RlZmluZSBfX2NwdV90b19iZTMycCh4KSBfX3N3YWIzMnAoKHgpKQojZGVmaW5l
IF9fYmUzMl90b19jcHVwKHgpIF9fc3dhYjMycCgoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnAo
eCkgX19zd2FiMTZwKCh4KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cCh4KSBfX3N3YWIxNnAoKHgp
KQojZGVmaW5lIF9fY3B1X3RvX2xlNjRzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGU2
NF90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2xlMzJzKHgpIGRv
IHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUzMl90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQoj
ZGVmaW5lIF9fY3B1X3RvX2xlMTZzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUxNl90
b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2JlNjRzKHgpIF9fc3dh
YjY0cygoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXMoeCkgX19zd2FiNjRzKCh4KSkKI2RlZmlu
ZSBfX2NwdV90b19iZTMycyh4KSBfX3N3YWIzMnMoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHVz
KHgpIF9fc3dhYjMycygoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnMoeCkgX19zd2FiMTZzKCh4
KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cyh4KSBfX3N3YWIxNnMoKHgpKQoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgiIDEKCiNkZWZp
bmUgX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0gKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5oIgojZGVmaW5lIGNwdV90b19sZTY0IF9f
Y3B1X3RvX2xlNjQKI2RlZmluZSBsZTY0X3RvX2NwdSBfX2xlNjRfdG9fY3B1CiNkZWZpbmUgY3B1
X3RvX2xlMzIgX19jcHVfdG9fbGUzMgojZGVmaW5lIGxlMzJfdG9fY3B1IF9fbGUzMl90b19jcHUK
I2RlZmluZSBjcHVfdG9fbGUxNiBfX2NwdV90b19sZTE2CiNkZWZpbmUgbGUxNl90b19jcHUgX19s
ZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90b19iZTY0IF9fY3B1X3RvX2JlNjQKI2RlZmluZSBiZTY0
X3RvX2NwdSBfX2JlNjRfdG9fY3B1CiNkZWZpbmUgY3B1X3RvX2JlMzIgX19jcHVfdG9fYmUzMgoj
ZGVmaW5lIGJlMzJfdG9fY3B1IF9fYmUzMl90b19jcHUKI2RlZmluZSBjcHVfdG9fYmUxNiBfX2Nw
dV90b19iZTE2CiNkZWZpbmUgYmUxNl90b19jcHUgX19iZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90
b19sZTY0cCBfX2NwdV90b19sZTY0cAojZGVmaW5lIGxlNjRfdG9fY3B1cCBfX2xlNjRfdG9fY3B1
cAojZGVmaW5lIGNwdV90b19sZTMycCBfX2NwdV90b19sZTMycAojZGVmaW5lIGxlMzJfdG9fY3B1
cCBfX2xlMzJfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTE2cCBfX2NwdV90b19sZTE2cAojZGVm
aW5lIGxlMTZfdG9fY3B1cCBfX2xlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19iZTY0cCBfX2Nw
dV90b19iZTY0cAojZGVmaW5lIGJlNjRfdG9fY3B1cCBfX2JlNjRfdG9fY3B1cAojZGVmaW5lIGNw
dV90b19iZTMycCBfX2NwdV90b19iZTMycAojZGVmaW5lIGJlMzJfdG9fY3B1cCBfX2JlMzJfdG9f
Y3B1cAojZGVmaW5lIGNwdV90b19iZTE2cCBfX2NwdV90b19iZTE2cAojZGVmaW5lIGJlMTZfdG9f
Y3B1cCBfX2JlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTY0cyBfX2NwdV90b19sZTY0cwoj
ZGVmaW5lIGxlNjRfdG9fY3B1cyBfX2xlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19sZTMycyBf
X2NwdV90b19sZTMycwojZGVmaW5lIGxlMzJfdG9fY3B1cyBfX2xlMzJfdG9fY3B1cwojZGVmaW5l
IGNwdV90b19sZTE2cyBfX2NwdV90b19sZTE2cwojZGVmaW5lIGxlMTZfdG9fY3B1cyBfX2xlMTZf
dG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTY0cyBfX2NwdV90b19iZTY0cwojZGVmaW5lIGJlNjRf
dG9fY3B1cyBfX2JlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTMycyBfX2NwdV90b19iZTMy
cwojZGVmaW5lIGJlMzJfdG9fY3B1cyBfX2JlMzJfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTE2
cyBfX2NwdV90b19iZTE2cwojZGVmaW5lIGJlMTZfdG9fY3B1cyBfX2JlMTZfdG9fY3B1cwojIDE1
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5o
IgpleHRlcm4gX191MzIgbnRvaGwoX191MzIpOwpleHRlcm4gX191MzIgaHRvbmwoX191MzIpOwoK
CgoKZXh0ZXJuIHVuc2lnbmVkIHNob3J0IGludCBudG9ocyh1bnNpZ25lZCBzaG9ydCBpbnQpOwpl
eHRlcm4gdW5zaWduZWQgc2hvcnQgaW50IGh0b25zKHVuc2lnbmVkIHNob3J0IGludCk7CgoKCgoj
ZGVmaW5lIF9fX2h0b25sKHgpIF9fY3B1X3RvX2JlMzIoeCkKI2RlZmluZSBfX19odG9ucyh4KSBf
X2NwdV90b19iZTE2KHgpCiNkZWZpbmUgX19fbnRvaGwoeCkgX19iZTMyX3RvX2NwdSh4KQojZGVm
aW5lIF9fX250b2hzKHgpIF9fYmUxNl90b19jcHUoeCkKCgojZGVmaW5lIGh0b25sKHgpIF9fX2h0
b25sKHgpCiNkZWZpbmUgbnRvaGwoeCkgX19fbnRvaGwoeCkKCgoKCiNkZWZpbmUgaHRvbnMoeCkg
X19faHRvbnMoeCkKI2RlZmluZSBudG9ocyh4KSBfX19udG9ocyh4KQojIDY3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKIyAz
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgiIDIKIyA1NCAi
ZnMvdWRmL3VkZmVuZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zdHJpbmcuaCIgMQoKI2RlZmluZSBfTElOVVhfU1RSSU5HX0hfCgoKCgoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCgoKCgoKZXh0ZXJuIGNoYXIgKiBfX19zdHJ0b2tfUnNt
cF8yOTgwNWMxMzsKZXh0ZXJuIGNoYXIgKiBzdHJwYnJrKGNvbnN0IGNoYXIgKixjb25zdCBjaGFy
ICopOwpleHRlcm4gY2hhciAqIHN0cnRva19Sc21wX2VlOWMxYmQ0KGNoYXIgKixjb25zdCBjaGFy
ICopOwpleHRlcm4gY2hhciAqIHN0cnNlcF9Sc21wXzg1ZGY5YjZjKGNoYXIgKiosY29uc3QgY2hh
ciAqKTsKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJzcG5fUnNtcF8zZmE5MTNkYShjb25zdCBj
aGFyICosY29uc3QgY2hhciAqKTsKCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvYXNtL3N0cmluZy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9TVFJJTkdfSAojIDEyICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zdHJpbmcuaCIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3N0cmluZy5oIiAyCgojZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTiAx
CiNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUIDEKI2RlZmluZSBfX0hBVkVfQVJDSF9NRU1DUFkg
MQojZGVmaW5lIF9fSEFWRV9BUkNIX0JDT1BZIDEKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Ry
bGVuX1JzbXBfZGNiNTY3MWQgKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkICptZW1zZXQgKHZv
aWQgKiwgaW50LCBfX2tlcm5lbF9zaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICos
IGNvbnN0IHZvaWQgKiwgX19rZXJuZWxfc2l6ZV90KTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMgoKCmV4dGVybiBjaGFyICogc3RyY3B5X1JzbXBf
ZTkxNGU0MWUoY2hhciAqLGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuY3B5X1Jz
bXBfN2VjOWJmYmMoY2hhciAqLGNvbnN0IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKCgpleHRl
cm4gY2hhciAqIHN0cmNhdF9Sc21wXzA2MTY1MWJlKGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCgpl
eHRlcm4gY2hhciAqIHN0cm5jYXRfUnNtcF8yMzQ1MDlmMyhjaGFyICosIGNvbnN0IGNoYXIgKiwg
X19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50IHN0cmNtcF9Sc21wX2UyZDUyNTVhKGNvbnN0
IGNoYXIgKixjb25zdCBjaGFyICopOwoKCmV4dGVybiBpbnQgc3RybmNtcF9Sc21wXzg1YWJjODVm
KGNvbnN0IGNoYXIgKixjb25zdCBjaGFyICosX19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50
IHN0cm5pY21wX1JzbXBfNzU2ZTY5OTIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIF9fa2Vy
bmVsX3NpemVfdCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJjaHJfUnNtcF8zNDljYmE4NShjb25zdCBj
aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnJjaHJfUnNtcF85Zjk4NDUxMyhjb25zdCBj
aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnN0cl9Sc21wXzFlNmQyNmE4KGNvbnN0IGNo
YXIgKixjb25zdCBjaGFyICopOwoKCgoKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Rybmxlbl9S
c21wX2NjMDdhZjc1KGNvbnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwojIDcxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpleHRlcm4gdm9pZCAqIG1lbW1v
dmVfUnNtcF81ZGJiZTk4ZSh2b2lkICosY29uc3Qgdm9pZCAqLF9fa2VybmVsX3NpemVfdCk7CgoK
ZXh0ZXJuIHZvaWQgKiBtZW1zY2FuX1JzbXBfOWMwZWEzY2Qodm9pZCAqLGludCxfX2tlcm5lbF9z
aXplX3QpOwoKCmV4dGVybiBpbnQgbWVtY21wX1JzbXBfYzdlYzI4YjAoY29uc3Qgdm9pZCAqLGNv
bnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiB2b2lkICogbWVtY2hyX1JzbXBf
Yzc0MGM2NGEoY29uc3Qgdm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwoKZXh0ZXJuIGNoYXIg
KiBrc3RyZHVwKGNvbnN0IGNoYXIgKixpbnQpOwojIDU1ICJmcy91ZGYvdWRmZW5kLmgiIDIKCgoK
c3RhdGljIGlubGluZSBsYl9hZGRyIGxlbGJfdG9fY3B1KGxiX2FkZHIgaW4pCnsKICAgICAgICBs
Yl9hZGRyIG91dDsKICAgICAgICBvdXQubG9naWNhbEJsb2NrTnVtID0gKChfX3UzMikoaW4ubG9n
aWNhbEJsb2NrTnVtKSk7CiAgICAgICAgb3V0LnBhcnRpdGlvblJlZmVyZW5jZU51bSA9ICgoX191
MTYpKGluLnBhcnRpdGlvblJlZmVyZW5jZU51bSkpOwogICAgICAgIHJldHVybiBvdXQ7Cn0KCnN0
YXRpYyBpbmxpbmUgbGJfYWRkciBjcHVfdG9fbGVsYihsYl9hZGRyIGluKQp7CiAgICAgICAgbGJf
YWRkciBvdXQ7CiAgICAgICAgb3V0LmxvZ2ljYWxCbG9ja051bSA9ICgoX191MzIpKGluLmxvZ2lj
YWxCbG9ja051bSkpOwogICAgICAgIG91dC5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gPSAoKF9fdTE2
KShpbi5wYXJ0aXRpb25SZWZlcmVuY2VOdW0pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0
aWMgaW5saW5lIHRpbWVzdGFtcCBsZXRzX3RvX2NwdSh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0
aW1lc3RhbXAgb3V0OwogICAgICAgIG1lbWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXAp
KTsKICAgICAgICBvdXQudHlwZUFuZFRpbWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6
b25lKSk7CiAgICAgICAgb3V0LnllYXIgPSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0
dXJuIG91dDsKfQoKc3RhdGljIGlubGluZSBzaG9ydF9hZCBsZXNhX3RvX2NwdShzaG9ydF9hZCBp
bikKewogICAgICAgIHNob3J0X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3Uz
MikoaW4uZXh0TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dFBvc2l0aW9uID0gKChfX3UzMikoaW4u
ZXh0UG9zaXRpb24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHNob3J0
X2FkIGNwdV90b19sZXNhKHNob3J0X2FkIGluKQp7CiAgICAgICAgc2hvcnRfYWQgb3V0OwogICAg
ICAgIG91dC5leHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQu
ZXh0UG9zaXRpb24gPSAoKF9fdTMyKShpbi5leHRQb3NpdGlvbikpOwogICAgICAgIHJldHVybiBv
dXQ7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZ19hZCBsZWxhX3RvX2NwdShsb25nX2FkIGluKQp7CiAg
ICAgICAgbG9uZ19hZCBvdXQ7CiAgICAgICAgb3V0LmV4dExlbmd0aCA9ICgoX191MzIpKGluLmV4
dExlbmd0aCkpOwogICAgICAgIG91dC5leHRMb2NhdGlvbiA9IGxlbGJfdG9fY3B1KGluLmV4dExv
Y2F0aW9uKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIGxvbmdfYWQgY3B1
X3RvX2xlbGEobG9uZ19hZCBpbikKewogICAgICAgIGxvbmdfYWQgb3V0OwogICAgICAgIG91dC5l
eHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQuZXh0TG9jYXRp
b24gPSBjcHVfdG9fbGVsYihpbi5leHRMb2NhdGlvbik7CiAgICAgICAgcmV0dXJuIG91dDsKfQoK
c3RhdGljIGlubGluZSBleHRlbnRfYWQgbGVlYV90b19jcHUoZXh0ZW50X2FkIGluKQp7CiAgICAg
ICAgZXh0ZW50X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3UzMikoaW4uZXh0
TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dExvY2F0aW9uID0gKChfX3UzMikoaW4uZXh0TG9jYXRp
b24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHRpbWVzdGFtcCBjcHVf
dG9fbGV0cyh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0aW1lc3RhbXAgb3V0OwogICAgICAgIG1l
bWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXApKTsKICAgICAgICBvdXQudHlwZUFuZFRp
bWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6b25lKSk7CiAgICAgICAgb3V0LnllYXIg
PSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0dXJuIG91dDsKfQojIDcgImZzL3VkZi91
ZGZkZWNsLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZf
ZnMuaCIgMQojIDM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5o
IgojZGVmaW5lIF9MSU5VWF9VREZfRlNfSAoKI2RlZmluZSBVREZfUFJFQUxMT0NBVEUKI2RlZmlu
ZSBVREZfREVGQVVMVF9QUkVBTExPQ19CTE9DS1MgOAoKI2RlZmluZSBVREZGU19EQVRFICIyMDAx
LzA2LzEzIgojZGVmaW5lIFVERkZTX1ZFUlNJT04gIjAuOS40LjEiCgoKCgoKCiNkZWZpbmUgVURG
RlNfUlcgMAoKCgoKI2RlZmluZSBVREZGU19ERUJVRwoKCiNkZWZpbmUgdWRmX2RlYnVnKGYsIGEu
Li4pIHsgcHJpbnRrIChLRVJOX0RFQlVHICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsIF9fRklM
RV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgcHJpbnRrIChmLCAjIyBhKTsgfQojIDY2ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5oIgojZGVmaW5lIHVkZl9p
bmZvKGYsIGEuLi4pIHByaW50ayAoS0VSTl9JTkZPICJVREYtZnMgSU5GTyAiIGYsICMjIGEpOwoj
IDkgImZzL3VkZi91ZGZkZWNsLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgImZzL3VkZi91ZGZkZWNsLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxNCAiZnMvdWRmL3Vk
ZmRlY2wuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDEKCiNkZWZpbmUgX0xJTlVYX0ZTX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bGlua2FnZS5oIiAxCgojZGVmaW5lIF9MSU5VWF9MSU5LQUdFX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCgoKCgojZGVmaW5lIENQUF9BU01MSU5LQUdF
CgoKCgoKI2RlZmluZSBhc21saW5rYWdlIENQUF9BU01MSU5LQUdFIF9fYXR0cmlidXRlX18oKHN5
c2NhbGxfbGlua2FnZSkpCgoKCgojZGVmaW5lIFNZTUJPTF9OQU1FX1NUUihYKSAjWAojZGVmaW5l
IFNZTUJPTF9OQU1FKFgpIFgKCiNkZWZpbmUgU1lNQk9MX05BTUVfTEFCRUwoWCkgWCAjIyA6CiMg
NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIgojZGVmaW5l
IF9fQUxJR04gLmFsaWduIDQsMHg5MAojZGVmaW5lIF9fQUxJR05fU1RSICIuYWxpZ24gNCwweDkw
IgojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpbWl0cy5oIiAxCgojZGVmaW5lIF9M
SU5VWF9MSU1JVFNfSAoKI2RlZmluZSBOUl9PUEVOIDEwMjQKCiNkZWZpbmUgTkdST1VQU19NQVgg
MzIKI2RlZmluZSBBUkdfTUFYIDEzMTA3MgojZGVmaW5lIENISUxEX01BWCA5OTkKI2RlZmluZSBP
UEVOX01BWCAyNTYKI2RlZmluZSBMSU5LX01BWCAxMjcKI2RlZmluZSBNQVhfQ0FOT04gMjU1CiNk
ZWZpbmUgTUFYX0lOUFVUIDI1NQojZGVmaW5lIE5BTUVfTUFYIDI1NQojZGVmaW5lIFBBVEhfTUFY
IDQwOTUKI2RlZmluZSBQSVBFX0JVRiA0MDk2CgojZGVmaW5lIFJUU0lHX01BWCAzMgojIDEyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfV0FJVF9I
CgojZGVmaW5lIFdOT0hBTkcgMHgwMDAwMDAwMQojZGVmaW5lIFdVTlRSQUNFRCAweDAwMDAwMDAy
CgojZGVmaW5lIF9fV05PVEhSRUFEIDB4MjAwMDAwMDAKI2RlZmluZSBfX1dBTEwgMHg0MDAwMDAw
MAojZGVmaW5lIF9fV0NMT05FIDB4ODAwMDAwMDAKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LRVJORUxfSAoKCgoK
CgoKIyAxICIvb3B0L2djYzMvbGliL2djYy1saWIvaWE2NC1ocC1saW51eC8zLjAvaW5jbHVkZS9z
dGRhcmcuaCIgMSAzCiMgMzQgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhwLWxpbnV4LzMu
MC9pbmNsdWRlL3N0ZGFyZy5oIiAzCiNkZWZpbmUgX1NUREFSR19ICiNkZWZpbmUgX0FOU0lfU1RE
QVJHX0hfCgoKCgoKCiNkZWZpbmUgX19HTlVDX1ZBX0xJU1QKdHlwZWRlZiBfX2J1aWx0aW5fdmFf
bGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1NCAiL29wdC9nY2MzL2xpYi9nY2MtbGliL2lhNjQtaHAt
bGludXgvMy4wL2luY2x1ZGUvc3RkYXJnLmgiIDMKI2RlZmluZSB2YV9zdGFydCh2LCBsKSBfX2J1
aWx0aW5fc3RkYXJnX3N0YXJ0KCh2KSxsKQojZGVmaW5lIHZhX2VuZCBfX2J1aWx0aW5fdmFfZW5k
CiNkZWZpbmUgdmFfYXJnIF9fYnVpbHRpbl92YV9hcmcKCiNkZWZpbmUgdmFfY29weShkLCBzKSBf
X2J1aWx0aW5fdmFfY29weSgoZCksKHMpKQoKI2RlZmluZSBfX3ZhX2NvcHkoZCwgcykgX19idWls
dGluX3ZhX2NvcHkoKGQpLChzKSkKIyAxMTAgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhw
LWxpbnV4LzMuMC9pbmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFf
bGlzdDsKCgoKCgojZGVmaW5lIF9WQV9MSVNUXwoKCiNkZWZpbmUgX1ZBX0xJU1QKCgojZGVmaW5l
IF9WQV9MSVNUX0RFRklORUQKCgojZGVmaW5lIF9WQV9MSVNUX1RfSAoKCiNkZWZpbmUgX192YV9s
aXN0X18KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAxCiMg
MTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTMgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKCgoKI2RlZmluZSBiYXJy
aWVyKCkgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQoKI2RlZmluZSBJTlRf
TUFYICgoaW50KSh+MFU+PjEpKQojZGVmaW5lIElOVF9NSU4gKC1JTlRfTUFYIC0gMSkKI2RlZmlu
ZSBVSU5UX01BWCAofjBVKQojZGVmaW5lIExPTkdfTUFYICgobG9uZykofjBVTD4+MSkpCiNkZWZp
bmUgTE9OR19NSU4gKC1MT05HX01BWCAtIDEpCiNkZWZpbmUgVUxPTkdfTUFYICh+MFVMKQoKI2Rl
ZmluZSBTVEFDS19NQUdJQyAweGRlYWRiZWVmCgojZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVv
Zih4KSAvIHNpemVvZigoeClbMF0pKQoKI2RlZmluZSBLRVJOX0VNRVJHICI8MD4iCiNkZWZpbmUg
S0VSTl9BTEVSVCAiPDE+IgojZGVmaW5lIEtFUk5fQ1JJVCAiPDI+IgojZGVmaW5lIEtFUk5fRVJS
ICI8Mz4iCiNkZWZpbmUgS0VSTl9XQVJOSU5HICI8ND4iCiNkZWZpbmUgS0VSTl9OT1RJQ0UgIjw1
PiIKI2RlZmluZSBLRVJOX0lORk8gIjw2PiIKI2RlZmluZSBLRVJOX0RFQlVHICI8Nz4iCgojZGVm
aW5lIE5PUkVUX1RZUEUKI2RlZmluZSBBVFRSSUJfTk9SRVQgX19hdHRyaWJ1dGVfXygobm9yZXR1
cm4pKQojZGVmaW5lIE5PUkVUX0FORCBub3JldHVybiwKCgoKCiNkZWZpbmUgRkFTVENBTEwoeCkg
eAoKCnN0cnVjdCBzZW1hcGhvcmU7CgpleHRlcm4gc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpwYW5p
Y19ub3RpZmllcl9saXN0OwogICAgICAgICAgIHZvaWQgcGFuaWNfUnNtcF8wMTA3NWJmMChjb25z
dCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuLCBmb3Jt
YXQgKHByaW50ZiwgMSwgMikpKTsKICAgICAgICAgICB2b2lkIGRvX2V4aXQobG9uZyBlcnJvcl9j
b2RlKQogICAgICAgIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7CiAgICAgICAgICAgdm9pZCB1
cF9hbmRfZXhpdF9Sc21wXzllYjkyNmNhKHN0cnVjdCBzZW1hcGhvcmUgKiwgbG9uZykKICAgICAg
ICBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOwpleHRlcm4gaW50IGFicyhpbnQpOwpleHRlcm4g
dW5zaWduZWQgbG9uZyBzaW1wbGVfc3RydG91bF9Sc21wXzIwMDAwMzI5KGNvbnN0IGNoYXIgKixj
aGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiBsb25nIHNpbXBsZV9zdHJ0b2woY29uc3QgY2hh
ciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBzaW1w
bGVfc3RydG91bGwoY29uc3QgY2hhciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIGxv
bmcgbG9uZyBzaW1wbGVfc3RydG9sbChjb25zdCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQp
OwpleHRlcm4gaW50IHNwcmludGZfUnNtcF8zYzJjNWFmNShjaGFyICogYnVmLCBjb25zdCBjaGFy
ICogZm10LCAuLi4pOwpleHRlcm4gaW50IHZzcHJpbnRmX1JzbXBfOTU0Y2JiMjYoY2hhciAqYnVm
LCBjb25zdCBjaGFyICosIHZhX2xpc3QpOwpleHRlcm4gaW50IGdldF9vcHRpb25fUnNtcF9iMGUx
MDc4MShjaGFyICoqc3RyLCBpbnQgKnBpbnQpOwpleHRlcm4gY2hhciAqZ2V0X29wdGlvbnNfUnNt
cF8wZmJmZjliOShjaGFyICpzdHIsIGludCBuaW50cywgaW50ICppbnRzKTsKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbG9uZyBtZW1wYXJzZV9Sc21wXzIzZjJkMzZmKGNoYXIgKnB0ciwgY2hhciAqKnJl
dHB0cik7CmV4dGVybiB2b2lkIGRldl9wcm9iZV9sb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBkZXZf
cHJvYmVfdW5sb2NrKHZvaWQpOwoKZXh0ZXJuIGludCBzZXNzaW9uX29mX3BncnAoaW50IHBncnAp
OwoKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGludCBwcmludGtfUnNtcF84Mjdk
NTgwNyhjb25zdCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKGZvcm1h
dCAocHJpbnRmLCAxLCAyKSkpOwoKZXh0ZXJuIGludCBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBj
ZTFiOGU7CgpzdGF0aWMgaW5saW5lIHZvaWQgY29uc29sZV9zaWxlbnQodm9pZCkKewogICAgICAg
IGNvbnNvbGVfbG9nbGV2ZWxfUnNtcF84MGNlMWI4ZSA9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBjb25zb2xlX3ZlcmJvc2Uodm9pZCkKewogICAgICAgIGlmIChjb25zb2xlX2xvZ2xldmVsX1Jz
bXBfODBjZTFiOGUpCiAgICAgICAgICAgICAgICBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBjZTFi
OGUgPSAxNTsKfQoKCgoKCiNkZWZpbmUgcHJfZGVidWcoZm10LCBhcmcuLi4pIGRvIHsgfSB3aGls
ZSAoMCkKCgoKI2RlZmluZSBwcl9pbmZvKGZtdCwgYXJnLi4uKSBwcmludGsoS0VSTl9JTkZPIGZt
dCwgIyMgYXJnKQoKCgoKCgojZGVmaW5lIE5JUFFVQUQoYWRkcikgKCh1bnNpZ25lZCBjaGFyICop
JmFkZHIpWzBdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq
KSZhZGRyKVsyXSwgKCh1bnNpZ25lZCBjaGFyICopJmFkZHIpWzNdCgoKCgoKI2RlZmluZSBISVBR
VUFEKGFkZHIpICgodW5zaWduZWQgY2hhciAqKSZhZGRyKVszXSwgKCh1bnNpZ25lZCBjaGFyICop
JmFkZHIpWzJdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq
KSZhZGRyKVswXQoKCgoKCgoKI2RlZmluZSBTSV9MT0FEX1NISUZUIDE2CnN0cnVjdCBzeXNpbmZv
IHsKICAgICAgICBsb25nIHVwdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvYWRzWzNdOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxyYW07CiAgICAgICAgdW5zaWduZWQgbG9uZyBmcmVl
cmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2hhcmVkcmFtOwogICAgICAgIHVuc2lnbmVkIGxv
bmcgYnVmZmVycmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxzd2FwOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgZnJlZXN3YXA7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHJvY3M7CiAgICAg
ICAgdW5zaWduZWQgc2hvcnQgcGFkOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxoaWdoOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZWhpZ2g7CiAgICAgICAgdW5zaWduZWQgaW50IG1lbV91
bml0OwogICAgICAgIGNoYXIgX2ZbMjAtMipzaXplb2YobG9uZyktc2l6ZW9mKGludCldOwp9Owoj
IDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCgojZGVmaW5lIF9MSU5V
WF9MSVNUX0gKIyAxNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0Lmgi
CnN0cnVjdCBsaXN0X2hlYWQgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsICpwcmV2
Owp9OwoKI2RlZmluZSBMSVNUX0hFQURfSU5JVChuYW1lKSB7ICYobmFtZSksICYobmFtZSkgfQoK
I2RlZmluZSBMSVNUX0hFQUQobmFtZSkgc3RydWN0IGxpc3RfaGVhZCBuYW1lID0gTElTVF9IRUFE
X0lOSVQobmFtZSkKCgojZGVmaW5lIElOSVRfTElTVF9IRUFEKHB0cikgZG8geyAocHRyKS0+bmV4
dCA9IChwdHIpOyAocHRyKS0+cHJldiA9IChwdHIpOyB9IHdoaWxlICgwKQojIDM1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p
ZCBfX2xpc3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKiBuZXcsCiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqIHByZXYsCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAgICBu
ZXh0LT5wcmV2ID0gbmV3OwogICAgICAgIG5ldy0+bmV4dCA9IG5leHQ7CiAgICAgICAgbmV3LT5w
cmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV3Owp9CiMgNTMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGxp
c3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewog
ICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLCBoZWFkLT5uZXh0KTsKfQojIDY2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p
ZCBsaXN0X2FkZF90YWlsKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAq
aGVhZCkKewogICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsKfQojIDc4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5s
aW5lX18gdm9pZCBfX2xpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKiBwcmV2LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAg
ICBuZXh0LT5wcmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV4dDsKfQoKCgoKCgpz
dGF0aWMgX19pbmxpbmVfXyB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQp7
CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwp9CgoKCgoKc3Rh
dGljIF9faW5saW5lX18gdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQp7CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwogICAgICAg
IGRvIHsgKGVudHJ5KS0+bmV4dCA9IChlbnRyeSk7IChlbnRyeSktPnByZXYgPSAoZW50cnkpOyB9
IHdoaWxlICgwKTsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludCBsaXN0X2VtcHR5KHN0cnVj
dCBsaXN0X2hlYWQgKmhlYWQpCnsKICAgICAgICByZXR1cm4gaGVhZC0+bmV4dCA9PSBoZWFkOwp9
CgoKCgoKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgbGlzdF9zcGxpY2Uoc3RydWN0IGxpc3RfaGVh
ZCAqbGlzdCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogICAgICAgIHN0cnVjdCBsaXN0X2hl
YWQgKmZpcnN0ID0gbGlzdC0+bmV4dDsKCiAgICAgICAgaWYgKGZpcnN0ICE9IGxpc3QpIHsKICAg
ICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QgPSBsaXN0LT5wcmV2OwogICAgICAg
ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYXQgPSBoZWFkLT5uZXh0OwoKICAgICAgICAgICAg
ICAgIGZpcnN0LT5wcmV2ID0gaGVhZDsKICAgICAgICAgICAgICAgIGhlYWQtPm5leHQgPSBmaXJz
dDsKCiAgICAgICAgICAgICAgICBsYXN0LT5uZXh0ID0gYXQ7CiAgICAgICAgICAgICAgICBhdC0+
cHJldiA9IGxhc3Q7CiAgICAgICAgfQp9CgoKCgoKCgojZGVmaW5lIGxpc3RfZW50cnkocHRyLCB0
eXBlLCBtZW1iZXIpICgodHlwZSAqKSgoY2hhciAqKShwdHIpLSh1bnNpZ25lZCBsb25nKSgmKCh0
eXBlICopMCktPm1lbWJlcikpKQoKCgoKCgoKI2RlZmluZSBsaXN0X2Zvcl9lYWNoKHBvcywgaGVh
ZCkgZm9yIChwb3MgPSAoaGVhZCktPm5leHQ7IHBvcyAhPSAoaGVhZCk7IHBvcyA9IHBvcy0+bmV4
dCkKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTYgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCgojZGVmaW5lIF9fTElOVVhf
U1BJTkxPQ0tfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZp
Zy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o
IiAyCgoKCgoKI2RlZmluZSBzcGluX2xvY2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2Nh
bF9pcnFfc2F2ZShmbGFncyk7IHNwaW5fbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBz
cGluX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxv
Y2spOyB9IHdoaWxlICgwKQojZGVmaW5lIHNwaW5fbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2Jo
X2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSByZWFkX2xv
Y2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2NhbF9pcnFfc2F2ZShmbGFncyk7IHJlYWRf
bG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSByZWFkX2xvY2tfaXJxKGxvY2spIGRvIHsg
bG9jYWxfaXJxX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQojZGVmaW5l
IHJlYWRfbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2JoX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxv
Y2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSB3cml0ZV9sb2NrX2lycXNhdmUobG9jaywgZmxhZ3Mp
IGRvIHsgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgw
KQojZGVmaW5lIHdyaXRlX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsg
d3JpdGVfbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSB3cml0ZV9sb2NrX2JoKGxvY2sp
IGRvIHsgbG9jYWxfYmhfZGlzYWJsZSgpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoK
I2RlZmluZSBzcGluX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHNwaW5fdW5s
b2NrKGxvY2spOyBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7IH0gd2hpbGUgKDApCiNkZWZpbmUg
c3Bpbl91bmxvY2tfaXJxKGxvY2spIGRvIHsgc3Bpbl91bmxvY2sobG9jayk7IGxvY2FsX2lycV9l
bmFibGUoKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBzcGluX3VubG9ja19iaChsb2NrKSBkbyB7IHNw
aW5fdW5sb2NrKGxvY2spOyBsb2NhbF9iaF9lbmFibGUoKTsgfSB3aGlsZSAoMCkKCiNkZWZpbmUg
cmVhZF91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBmbGFncykgZG8geyByZWFkX3VubG9jayhsb2Nr
KTsgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHJlYWRfdW5s
b2NrX2lycShsb2NrKSBkbyB7IHJlYWRfdW5sb2NrKGxvY2spOyBsb2NhbF9pcnFfZW5hYmxlKCk7
IH0gd2hpbGUgKDApCiNkZWZpbmUgcmVhZF91bmxvY2tfYmgobG9jaykgZG8geyByZWFkX3VubG9j
ayhsb2NrKTsgbG9jYWxfYmhfZW5hYmxlKCk7IH0gd2hpbGUgKDApCgojZGVmaW5lIHdyaXRlX3Vu
bG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHdyaXRlX3VubG9jayhsb2NrKTsgbG9j
YWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHdyaXRlX3VubG9ja19p
cnEobG9jaykgZG8geyB3cml0ZV91bmxvY2sobG9jayk7IGxvY2FsX2lycV9lbmFibGUoKTsgfSB3
aGlsZSAoMCkKI2RlZmluZSB3cml0ZV91bmxvY2tfYmgobG9jaykgZG8geyB3cml0ZV91bmxvY2so
bG9jayk7IGxvY2FsX2JoX2VuYWJsZSgpOyB9IHdoaWxlICgwKQoKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfU1BJ
TkxPQ0tfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoKI2RlZmluZSBfQVNN
X0lBNjRfU1lTVEVNX0gKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIg
MQojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMgoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKCiNkZWZpbmUgX0FT
TV9JQTY0X1BBR0VfSAoKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2NvbmZpZy5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bh
Z2UuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAx
CiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMgojIDIyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiCiNkZWZpbmUgUEFHRV9TSElG
VCAxNAoKCgoKCgojZGVmaW5lIFBBR0VfU0laRSAoX19JQTY0X1VMX0NPTlNUKDEpIDw8IFBBR0Vf
U0hJRlQpCiNkZWZpbmUgUEFHRV9NQVNLICh+KFBBR0VfU0laRSAtIDEpKQojZGVmaW5lIFBBR0Vf
QUxJR04oYWRkcikgKCgoYWRkcikgKyBQQUdFX1NJWkUgLSAxKSAmIFBBR0VfTUFTSykKCgoKCgoK
I2RlZmluZSBTVFJJQ1RfTU1fVFlQRUNIRUNLUwoKZXh0ZXJuIHZvaWQgY2xlYXJfcGFnZV9Sc21w
XzNkOWVlOWYwICh2b2lkICpwYWdlKTsKZXh0ZXJuIHZvaWQgY29weV9wYWdlICh2b2lkICp0bywg
dm9pZCAqZnJvbSk7CiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2Uu
aCIKI2RlZmluZSBNQVBfTlJfREVOU0UoYWRkcikgKCgodW5zaWduZWQgbG9uZykgKGFkZHIpIC0g
UEFHRV9PRkZTRVQpID4+IFBBR0VfU0hJRlQpCiMgNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvYXNtL3BhZ2UuaCIKI2RlZmluZSB2aXJ0X3RvX3BhZ2Uoa2FkZHIpIChtZW1fbWFwICsg
TUFQX05SX0RFTlNFKGthZGRyKSkKCiNkZWZpbmUgVkFMSURfUEFHRShwYWdlKSAoKHBhZ2UgLSBt
ZW1fbWFwKSA8IG1heF9tYXBucikKCnR5cGVkZWYgdW5pb24gaWE2NF92YSB7CiAgICAgICAgc3Ry
dWN0IHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBsb25nIHJlZyA6IDM7CiAgICAgICAgfSBmOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgbDsKICAgICAgICB2b2lkICpwOwp9IGlhNjRfdmE7CgoKCgoKCgojZGVmaW5lIF9fcGEo
eCkgKHtpYTY0X3ZhIF92OyBfdi5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWcgPSAwOyBfdi5sO30p
CiNkZWZpbmUgX192YSh4KSAoe2lhNjRfdmEgX3Y7IF92LmwgPSAobG9uZykgKHgpOyBfdi5mLnJl
ZyA9IC0xOyBfdi5wO30pCgojZGVmaW5lIFJFR0lPTl9OVU1CRVIoeCkgKHtpYTY0X3ZhIF92OyBf
di5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWc7fSkKI2RlZmluZSBSRUdJT05fT0ZGU0VUKHgpICh7
aWE2NF92YSBfdjsgX3YubCA9IChsb25nKSAoeCk7IF92LmYub2ZmO30pCgojZGVmaW5lIFJFR0lP
Tl9TSVpFIFJFR0lPTl9OVU1CRVIoMSkKI2RlZmluZSBSRUdJT05fS0VSTkVMIDcKCiNkZWZpbmUg
QlVHKCkgZG8geyBwcmludGsoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCBfX0ZJTEVfXywgX19M
SU5FX18pOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCkKI2RlZmluZSBQQUdFX0JVRyhwYWdlKSBk
byB7IEJVRygpOyB9IHdoaWxlICgwKQoKc3RhdGljIF9faW5saW5lX18gaW50CmdldF9vcmRlciAo
dW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgZG91YmxlIGQgPSBzaXplIC0gMTsKICAgICAg
ICBsb25nIG9yZGVyOwoKICAgICAgICBfX2FzbV9fICgiZ2V0Zi5leHAgJTA9JTEiIDogIj1yIihv
cmRlcikgOiAiZiIoZCkpOwogICAgICAgIG9yZGVyID0gb3JkZXIgLSAxNCAtIDB4ZmZmZiArIDE7
CiAgICAgICAgaWYgKG9yZGVyIDwgMCkKICAgICAgICAgICAgICAgIG9yZGVyID0gMDsKICAgICAg
ICByZXR1cm4gb3JkZXI7Cn0KIyAxMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhZ2UuaCIKICB0eXBlZGVmIHN0cnVjdCB7IHVuc2lnbmVkIGxvbmcgcHRlOyB9IHB0ZV90Owog
IHR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgbG9uZyBwbWQ7IH0gcG1kX3Q7CiAgdHlwZWRlZiBz
dHJ1Y3QgeyB1bnNpZ25lZCBsb25nIHBnZDsgfSBwZ2RfdDsKICB0eXBlZGVmIHN0cnVjdCB7IHVu
c2lnbmVkIGxvbmcgcGdwcm90OyB9IHBncHJvdF90OwoKI2RlZmluZSBwdGVfdmFsKHgpICgoeCku
cHRlKQojZGVmaW5lIHBtZF92YWwoeCkgKCh4KS5wbWQpCiNkZWZpbmUgcGdkX3ZhbCh4KSAoKHgp
LnBnZCkKI2RlZmluZSBwZ3Byb3RfdmFsKHgpICgoeCkucGdwcm90KQoKI2RlZmluZSBfX3B0ZSh4
KSAoKHB0ZV90KSB7ICh4KSB9ICkKI2RlZmluZSBfX3BncHJvdCh4KSAoKHBncHJvdF90KSB7ICh4
KSB9ICkKIyAxNDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIKI2Rl
ZmluZSBQQUdFX09GRlNFVCAweGUwMDAwMDAwMDAwMDAwMDAKIyAxOCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDIKCiNkZWZpbmUgS0VSTkVMX1NUQVJUIChQQUdF
X09GRlNFVCArIDY4KjEwMjQqMTAyNCkKCgoKCiNkZWZpbmUgSVZUX0FERFIgKEtFUk5FTF9TVEFS
VCkKI2RlZmluZSBJVlRfRU5EX0FERFIgKEtFUk5FTF9TVEFSVCArIDB4ODAwMCkKI2RlZmluZSBa
RVJPX1BBR0VfQUREUiBQQUdFX0FMSUdOKElWVF9FTkRfQUREUikKI2RlZmluZSBTV0FQUEVSX1BH
RF9BRERSIChaRVJPX1BBR0VfQUREUiArIDEqUEFHRV9TSVpFKQoKI2RlZmluZSBHQVRFX0FERFIg
KDB4YTAwMDAwMDAwMDAwMDAwMCArIFBBR0VfU0laRSkKI2RlZmluZSBQRVJDUFVfQUREUiAoMHhh
MDAwMDAwMDAwMDAwMDAwICsgMipQQUdFX1NJWkUpCgoKCgoKCiNkZWZpbmUgSUE2NF9TRU1GSVhf
SU5TTgojZGVmaW5lIElBNjRfU0VNRklYICIiCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyA0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vc3lzdGVtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3R5cGVzLmgiIDEKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiIDIKCnN0cnVjdCBwY2lfdmVjdG9yX3N0cnVjdCB7CiAgICAgICAgX191MTYgYnVzOwog
ICAgICAgIF9fdTMyIHBjaV9pZDsKICAgICAgICBfX3U4IHBpbjsKICAgICAgICBfX3U4IGlycTsK
fTsKCmV4dGVybiBzdHJ1Y3QgaWE2NF9ib290X3BhcmFtIHsKICAgICAgICBfX3U2NCBjb21tYW5k
X2xpbmU7CiAgICAgICAgX191NjQgZWZpX3N5c3RhYjsKICAgICAgICBfX3U2NCBlZmlfbWVtbWFw
OwogICAgICAgIF9fdTY0IGVmaV9tZW1tYXBfc2l6ZTsKICAgICAgICBfX3U2NCBlZmlfbWVtZGVz
Y19zaXplOwogICAgICAgIF9fdTMyIGVmaV9tZW1kZXNjX3ZlcnNpb247CiAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgICAgIF9fdTE2IG51bV9jb2xzOwogICAgICAgICAgICAgICAgX191MTYg
bnVtX3Jvd3M7CiAgICAgICAgICAgICAgICBfX3UxNiBvcmlnX3g7CiAgICAgICAgICAgICAgICBf
X3UxNiBvcmlnX3k7CiAgICAgICAgfSBjb25zb2xlX2luZm87CiAgICAgICAgX191NjQgZnBzd2E7
CiAgICAgICAgX191NjQgaW5pdHJkX3N0YXJ0OwogICAgICAgIF9fdTY0IGluaXRyZF9zaXplOwp9
ICppYTY0X2Jvb3RfcGFyYW07CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnNuX2dyb3VwX2Jh
cnJpZXIgKHZvaWQpCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IiA6OjogIm1l
bW9yeSIpOwp9CiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgojZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKQoj
ZGVmaW5lIHJtYigpIG1iKCkKI2RlZmluZSB3bWIoKSBtYigpCgoKI2RlZmluZSBzbXBfbWIoKSBt
YigpCiNkZWZpbmUgc21wX3JtYigpIHJtYigpCiNkZWZpbmUgc21wX3dtYigpIHdtYigpCiMgMTE4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKI2RlZmluZSBzZXRf
bWIodmFyLCB2YWx1ZSkgZG8geyAodmFyKSA9ICh2YWx1ZSk7IG1iKCk7IH0gd2hpbGUgKDApCiNk
ZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVlKSBkbyB7ICh2YXIpID0gKHZhbHVlKTsgbWIoKTsgfSB3
aGlsZSAoMCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgojZGVmaW5lIGxvY2FsX2lycV9zYXZlKHgpIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUw
PXBzcjs7IHJzbSBwc3IuaTs7IiA6ICI9ciIgKHgpIDo6ICJtZW1vcnkiKQoKI2RlZmluZSBsb2Nh
bF9pcnFfZGlzYWJsZSgpIF9fYXNtX18gX192b2xhdGlsZV9fICgiOzsgcnNtIHBzci5pOzsiIDo6
OiAibWVtb3J5IikKCiNkZWZpbmUgbG9jYWxfaXJxX3Jlc3RvcmUoeCkgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCI7OyBtb3YgcHNyLmw9JTA7OyBzcmx6LmQiIDo6ICJyIiAoeCkgOiAibWVtb3J5IikK
CgoKI2RlZmluZSBsb2NhbF9pcnFfZW5hYmxlKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBz
c20gcHNyLmk7OyBzcmx6LmQiIDo6OiAibWVtb3J5IikKCiNkZWZpbmUgX19jbGkoKSBsb2NhbF9p
cnFfZGlzYWJsZSAoKQojZGVmaW5lIF9fc2F2ZV9mbGFncyhmbGFncykgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtb3YgJTA9cHNyIiA6ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5IikKI2RlZmluZSBf
X3NhdmVfYW5kX2NsaShmbGFncykgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpCiNkZWZpbmUgc2F2ZV9h
bmRfY2xpKGZsYWdzKSBfX3NhdmVfYW5kX2NsaShmbGFncykKI2RlZmluZSBfX3N0aSgpIGxvY2Fs
X2lycV9lbmFibGUgKCkKI2RlZmluZSBfX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpIGxvY2FsX2lycV9y
ZXN0b3JlKGZsYWdzKQoKCiAgZXh0ZXJuIHZvaWQgX19nbG9iYWxfY2xpX1JzbXBfNjQ1NzZiMDUg
KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3N0aV9Sc21wX2RhNDQ1NmRkICh2b2lkKTsK
ICBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2dsb2JhbF9zYXZlX2ZsYWdzX1JzbXBfNWQ5MDJlOTYg
KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3NfUnNtcF81NGRkMWRj
YiAodW5zaWduZWQgbG9uZyk7CiNkZWZpbmUgY2xpKCkgX19nbG9iYWxfY2xpKCkKI2RlZmluZSBz
dGkoKSBfX2dsb2JhbF9zdGkoKQojZGVmaW5lIHNhdmVfZmxhZ3MoZmxhZ3MpICgoZmxhZ3MpID0g
X19nbG9iYWxfc2F2ZV9mbGFncygpKQojZGVmaW5lIHJlc3RvcmVfZmxhZ3MoZmxhZ3MpIF9fZ2xv
YmFsX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpCiMgMjA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfc2l6ZV9mb3JfaWE2
NF9mZXRjaF9hbmRfYWRkICh2b2lkKTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfaW5jcmVt
ZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQgKHZvaWQpOwoKI2RlZmluZSBJQTY0X0ZFVENIQURE
KHRtcCwgdiwgbiwgc3opICh7IHN3aXRjaCAoc3opIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRp
bGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1wKSA6
ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9s
YXRpbGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1w
KSA6ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5lIGlhNjRfZmV0Y2hfYW5kX2FkZChpLCB2
KSAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCoodikpICpfdiA9ICh2KTsgc3dp
dGNoIChpKSB7IGNhc2UgLTE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtMTYsIHNpemVvZigq
KHYpKSk7IGJyZWFrOyBjYXNlIC04OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtOCwgc2l6ZW9m
KCoodikpKTsgYnJlYWs7IGNhc2UgLTQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIC00LCBzaXpl
b2YoKih2KSkpOyBicmVhazsgY2FzZSAtMTogSUE2NF9GRVRDSEFERChfdG1wLCBfdiwgLTEsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDEsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDQsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDg6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDgsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAxNiwg
c2l6ZW9mKCoodikpKTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2ZfXygqdikpIChfdG1wICsg
KGkpKTsgfSkKIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgpleHRlcm4gdm9pZCBfX3hjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIgKHZvaWQpOwoKc3Rh
dGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwpfX3hjaGcgKHVuc2lnbmVkIGxvbmcgeCwgdm9s
YXRpbGUgdm9pZCAqcHRyLCBpbnQgc2l6ZSkKewogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0
OwoKICAgICAgICBzd2l0Y2ggKHNpemUpIHsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAg
ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGcxICUwPVslMV0sJTIiIDogIj1yIiAo
cmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAocHRyKSwg
InIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CgogICAg
ICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZSAoIiIi
eGNoZzIgJTA9WyUxXSwlMiIgOiAiPXIiIChyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogInIiIChwdHIpLCAiciIgKHgpIDogIm1lbW9yeSIpOwogICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKCiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAg
ICAgX19hc21fXyBfX3ZvbGF0aWxlICgiIiJ4Y2hnNCAlMD1bJTFdLCUyIiA6ICI9ciIgKHJlc3Vs
dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKHB0ciksICJyIiAo
eCkgOiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwoKICAgICAgICAg
ICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGc4
ICUwPVslMV0sJTIiIDogIj1yIiAocmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6ICJyIiAocHRyKSwgInIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIF9feGNoZ19jYWxsZWRfd2l0aF9iYWRf
cG9pbnRlcigpOwogICAgICAgIHJldHVybiB4Owp9CgojZGVmaW5lIHhjaGcocHRyLCB4KSAoKF9f
dHlwZW9mX18oKihwdHIpKSkgX194Y2hnICgodW5zaWduZWQgbG9uZykgKHgpLCAocHRyKSwgc2l6
ZW9mKCoocHRyKSkpKQojIDI5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiCiNkZWZpbmUgX19IQVZFX0FSQ0hfQ01QWENIRyAxCgoKCgoKZXh0ZXJuIGxvbmcgX19j
bXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKHZvaWQpOwoKI2RlZmluZSBpYTY0X2NtcHhj
aGcoc2VtLCBwdHIsIG9sZCwgbmV3LCBzaXplKSAoeyBfX3R5cGVvZl9fKHB0cikgX3BfID0gKHB0
cik7IF9fdHlwZW9mX18obmV3KSBfbl8gPSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAo
c2l6ZSkgeyBjYXNlIDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAy
OiBfb18gPSAoX191MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMy
KSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQp
OyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIu
Y2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZSkgeyBjYXNlIDE6IF9fYXNtX18g
X192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMS4ic2VtIiAlMD1bJTFdLCUyLGFyLmNj
diIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBj
YXNlIDI6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMi4ic2VtIiAl
MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt
b3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJj
bXB4Y2hnNC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwg
InIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9f
IChJQTY0X1NFTUZJWCJjbXB4Y2hnOC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y
XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfcl8g
PSBfX2NtcHhjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIoKTsgYnJlYWs7IH0gKF9fdHlwZW9m
X18ob2xkKSkgX3JfOyB9KQojIDM0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
c3lzdGVtLmgiCiNkZWZpbmUgY21weGNoZ19hY3EocHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoImFj
cSIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoocHRyKSkpCiNkZWZpbmUgY21weGNoZ19yZWwo
cHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoInJlbCIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoo
cHRyKSkpCgoKI2RlZmluZSBjbXB4Y2hnKHB0ciwgbywgbikgY21weGNoZ19hY3EocHRyLG8sbikK
IyAzNjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5l
IENNUFhDSEdfQlVHQ0hFQ0tfREVDTAojZGVmaW5lIENNUFhDSEdfQlVHQ0hFQ0sodikKCgoKCiNk
ZWZpbmUgcHJlcGFyZV90b19zd2l0Y2goKSBkbyB7IH0gd2hpbGUoMCkKCgojZGVmaW5lIElTX0lB
MzJfUFJPQ0VTUyhyZWdzKSAoaWE2NF9wc3IocmVncyktPmlzICE9IDApCiMgMzg1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHN0cnVjdCB0YXNrX3N0
cnVjdCAqaWE2NF9zd2l0Y2hfdG8gKHZvaWQgKm5leHRfdGFzayk7CgpleHRlcm4gdm9pZCBpYTY0
X3NhdmVfZXh0cmEgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CmV4dGVybiB2b2lkIGlhNjRf
bG9hZF9leHRyYSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKCiNkZWZpbmUgX19zd2l0Y2hf
dG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoKChwcmV2KS0+dGhyZWFkLmZsYWdzICYgKElB
NjRfVEhSRUFEX0RCR19WQUxJRHxJQTY0X1RIUkVBRF9QTV9WQUxJRCkpIHx8IElTX0lBMzJfUFJP
Q0VTUyhpYTY0X3Rhc2tfcmVncyhwcmV2KSkpIGlhNjRfc2F2ZV9leHRyYShwcmV2KTsgaWYgKCgo
bmV4dCktPnRocmVhZC5mbGFncyAmIChJQTY0X1RIUkVBRF9EQkdfVkFMSUR8SUE2NF9USFJFQURf
UE1fVkFMSUQpKSB8fCBJU19JQTMyX1BST0NFU1MoaWE2NF90YXNrX3JlZ3MobmV4dCkpKSBpYTY0
X2xvYWRfZXh0cmEobmV4dCk7IChsYXN0KSA9IGlhNjRfc3dpdGNoX3RvKChuZXh0KSk7IH0gd2hp
bGUgKDApCiMgNDA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIK
I2RlZmluZSBzd2l0Y2hfdG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoaWE2NF9wc3IoaWE2
NF90YXNrX3JlZ3MocHJldikpLT5tZmgpIHsgaWE2NF9wc3IoaWE2NF90YXNrX3JlZ3MocHJldikp
LT5tZmggPSAwOyAocHJldiktPnRocmVhZC5mbGFncyB8PSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQ7
IF9faWE2NF9zYXZlX2ZwdSgocHJldiktPnRocmVhZC5mcGgpOyB9IGlhNjRfcHNyKGlhNjRfdGFz
a19yZWdzKHByZXYpKS0+ZGZoID0gMTsgX19zd2l0Y2hfdG8ocHJldixuZXh0LGxhc3QpOyB9IHdo
aWxlICgwKQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKCiNk
ZWZpbmUgX0FTTV9JQTY0X0JJVE9QU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvYXNtL2JpdG9wcy5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5
c3RlbS5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5o
IiAyCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5oIgpzdGF0
aWMgX19pbmxpbmVfXyB2b2lkCnNldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikK
ewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07
CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAg
ICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAg
ICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBf
cF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBf
cl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykg
KChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJl
YWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODog
X29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9f
YXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0
Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4
Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAi
ciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18g
KCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIi
KF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9s
YXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y
XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6
ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAo
X190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xkKTsKfQoKCgoKI2RlZmluZSBzbXBfbWJf
X2JlZm9yZV9jbGVhcl9iaXQoKSBzbXBfbWIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfY2xlYXJf
Yml0KCkgc21wX21iKCkKc3RhdGljIF9faW5saW5lX18gdm9pZApjbGVhcl9iaXQgKGludCBuciwg
dm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG1hc2ssIG9sZCwgbmV3OwogICAg
ICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3UzMiAqKSBh
ZGRyICsgKG5yID4+IDUpOwogICAgICAgIG1hc2sgPSB+KDEgPDwgKG5yICYgMzEpKTsKICAgICAg
ICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAg
ICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBvbGQgJiBtYXNrOwogICAgICAgIH0g
d2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkg
X25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNh
c2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0g
KF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9u
ZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsg
YnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNj
dj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2
IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh
c2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwl
Mixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAl
MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt
b3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4i
ImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25f
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0
aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0g
b2xkKTsKfQoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZApfX2NoYW5nZV9iaXQgKGludCBuciwg
dm9pZCAqYWRkcikKewogICAgICAgIHZvbGF0aWxlIF9fdTMyICptID0gKF9fdTMyICopIGFkZHIg
KyAobnIgPj4gNSk7CiAgICAgICAgX191MzIgYml0ID0gKDEgPDwgKG5yICYgMzEpKTsKCiAgICAg
ICAgKm0gPSAqbSBeIGJpdDsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZApjaGFuZ2VfYml0IChp
bnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCnsKICAgICAgICBfX3UzMiBiaXQsIG9sZCwgbmV3
OwogICAgICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3Uz
MiAqKSBhZGRyICsgKG5yID4+IDUpOwogICAgICAgIGJpdCA9ICgxIDw8IChuciAmIDMxKSk7CiAg
ICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAg
ICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIF4gYml0OwogICAgICAg
IH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3
KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7
IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29f
ID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAo
bG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQp
KTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFy
LmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIu
Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUx
XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3Ei
IiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hn
OC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIo
X25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRf
d2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkg
IT0gb2xkKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3RfYW5kX3NldF9iaXQgKGludCBu
ciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAg
ICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICop
IGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAg
ZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAg
IG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hp
bGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25f
ID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2Ug
MTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9f
dTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykg
KChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJl
YWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0l
MDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6
ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
MjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixh
ci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1b
JTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5
Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFj
cSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9i
YWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xk
KTsKICAgICAgICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18g
aW50CnRlc3RfYW5kX2NsZWFyX2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQp7CiAg
ICAgICAgX191MzIgbWFzaywgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoK
ICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAg
bWFzayA9IH4oMSA8PCAobnIgJiAzMSkpOwogICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAqbTsKICAgICAgICAgICAg
ICAgIG5ldyA9IG9sZCAmIG1hc2s7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkp
IF9wXyA9ICgobSkpOyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18s
IF9yXzsgc3dpdGNoIChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25n
KSAoKG9sZCkpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBi
cmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4
OiBfb18gPSAoX191NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0g
X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3
aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNt
cHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyks
ICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVf
XyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAi
ciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIo
X3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3Yi
IDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9
IChfX3R5cGVvZl9fKChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xk
ICYgfm1hc2spICE9IDA7Cn0KCgoKCnN0YXRpYyBfX2lubGluZV9fIGludApfX3Rlc3RfYW5kX2No
YW5nZV9iaXQgKGludCBuciwgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG9sZCwgYml0ID0g
KDEgPDwgKG5yICYgMzEpKTsKICAgICAgICBfX3UzMiAqbSA9IChfX3UzMiAqKSBhZGRyICsgKG5y
ID4+IDUpOwoKICAgICAgICBvbGQgPSAqbTsKICAgICAgICAqbSA9IG9sZCBeIGJpdDsKICAgICAg
ICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3Rf
YW5kX2NoYW5nZV9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9f
dTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBt
ID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gKDEg
PDwgKG5yICYgMzEpKTsKICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOwogICAgICAgICAgICAgICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBv
bGQgXiBiaXQ7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkpIF9wXyA9ICgobSkp
OyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18sIF9yXzsgc3dpdGNo
IChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25nKSAoKG9sZCkpOyBi
cmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA0
OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4OiBfb18gPSAoX191
NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3Zv
bGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9m
KCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcxLiIiYWNx
IiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDog
Im1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNo
ZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIi
KF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgi
IiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihf
cF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p
IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX3JfID0g
X19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f
KChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xkICYgYml0KSAhPSAw
Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKdGVzdF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9p
ZCAqYWRkcikKewogICAgICAgIHJldHVybiAxICYgKCgoY29uc3Qgdm9sYXRpbGUgX191MzIgKikg
YWRkcilbbnIgPj4gNV0gPj4gKG5yICYgMzEpKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIHVuc2ln
bmVkIGxvbmcKZmZ6ICh1bnNpZ25lZCBsb25nIHgpCnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJl
c3VsdDsKCiAgICAgICAgX19hc21fXyAoInBvcGNudCAlMD0lMSIgOiAiPXIiIChyZXN1bHQpIDog
InIiICh4ICYgKH54IC0gMSkpKTsKICAgICAgICByZXR1cm4gcmVzdWx0Owp9CgoKCgoKCgpzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKaWE2NF9mbHMgKHVuc2lnbmVkIGxvbmcgeCkKewogICAg
ICAgIGRvdWJsZSBkID0geDsKICAgICAgICBsb25nIGV4cDsKCiAgICAgICAgX19hc21fXyAoImdl
dGYuZXhwICUwPSUxIiA6ICI9ciIoZXhwKSA6ICJmIihkKSk7CiAgICAgICAgcmV0dXJuIGV4cCAt
IDB4ZmZmZjsKfQoKCgoKCgoKI2RlZmluZSBmZnMoeCkgX19idWlsdGluX2Zmcyh4KQoKCgoKCnN0
YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcKaHdlaWdodDY0ICh1bnNpZ25lZCBsb25nIHgp
CnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKICAgICAgICBfX2FzbV9fICgicG9wY250
ICUwPSUxIiA6ICI9ciIgKHJlc3VsdCkgOiAiciIgKHgpKTsKICAgICAgICByZXR1cm4gcmVzdWx0
Owp9CgojZGVmaW5lIGh3ZWlnaHQzMih4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZmZmZmZmZ1bCkK
I2RlZmluZSBod2VpZ2h0MTYoeCkgaHdlaWdodDY0ICgoeCkgJiAweGZmZmZ1bCkKI2RlZmluZSBo
d2VpZ2h0OCh4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZ1bCkKCgoKCgoKc3RhdGljIGlubGluZSBp
bnQKZmluZF9uZXh0X3plcm9fYml0ICh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0KQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcCA9ICgodW5zaWdu
ZWQgbG9uZyAqKSBhZGRyKSArIChvZmZzZXQgPj4gNik7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy
ZXN1bHQgPSBvZmZzZXQgJiB+NjNVTDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRtcDsKCiAgICAg
ICAgaWYgKG9mZnNldCA+PSBzaXplKQogICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7CiAgICAg
ICAgc2l6ZSAtPSByZXN1bHQ7CiAgICAgICAgb2Zmc2V0ICY9IDYzVUw7CiAgICAgICAgaWYgKG9m
ZnNldCkgewogICAgICAgICAgICAgICAgdG1wID0gKihwKyspOwogICAgICAgICAgICAgICAgdG1w
IHw9IH4wVUwgPj4gKDY0LW9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IDY0KQog
ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kX2ZpcnN0OwogICAgICAgICAgICAgICAg
aWYgKH50bXApCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmRfbWlkZGxlOwogICAg
ICAgICAgICAgICAgc2l6ZSAtPSA2NDsKICAgICAgICAgICAgICAgIHJlc3VsdCArPSA2NDsKICAg
ICAgICB9CiAgICAgICAgd2hpbGUgKHNpemUgJiB+NjNVTCkgewogICAgICAgICAgICAgICAgaWYg
KH4odG1wID0gKihwKyspKSkKICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZF9taWRk
bGU7CiAgICAgICAgICAgICAgICByZXN1bHQgKz0gNjQ7CiAgICAgICAgICAgICAgICBzaXplIC09
IDY0OwogICAgICAgIH0KICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgIHRtcCA9ICpwOwpmb3VuZF9maXJzdDoKICAgICAgICB0bXAgfD0gfjBV
TCA8PCBzaXplOwpmb3VuZF9taWRkbGU6CiAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZmeih0bXAp
Owp9CgoKCgojZGVmaW5lIGZpbmRfZmlyc3RfemVyb19iaXQoYWRkciwgc2l6ZSkgZmluZF9uZXh0
X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQoKCgojZGVmaW5lIGV4dDJfc2V0X2JpdCB0ZXN0
X2FuZF9zZXRfYml0CiNkZWZpbmUgZXh0Ml9jbGVhcl9iaXQgdGVzdF9hbmRfY2xlYXJfYml0CiNk
ZWZpbmUgZXh0Ml90ZXN0X2JpdCB0ZXN0X2JpdAojZGVmaW5lIGV4dDJfZmluZF9maXJzdF96ZXJv
X2JpdCBmaW5kX2ZpcnN0X3plcm9fYml0CiNkZWZpbmUgZXh0Ml9maW5kX25leHRfemVyb19iaXQg
ZmluZF9uZXh0X3plcm9fYml0CgoKI2RlZmluZSBtaW5peF90ZXN0X2FuZF9zZXRfYml0KG5yLCBh
ZGRyKSB0ZXN0X2FuZF9zZXRfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfc2V0X2JpdChuciwg
YWRkcikgc2V0X2JpdChucixhZGRyKQojZGVmaW5lIG1pbml4X3Rlc3RfYW5kX2NsZWFyX2JpdChu
ciwgYWRkcikgdGVzdF9hbmRfY2xlYXJfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfdGVzdF9i
aXQobnIsIGFkZHIpIHRlc3RfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfZmluZF9maXJzdF96
ZXJvX2JpdChhZGRyLCBzaXplKSBmaW5kX2ZpcnN0X3plcm9fYml0KGFkZHIsc2l6ZSkKIyAxNiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCgojZGVmaW5lIF9BU01fSUE2
NF9BVE9NSUNfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hdG9taWMu
aCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAx
NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCgoKCgp0eXBlZGVmIHN0cnVjdCB7
IHZvbGF0aWxlIF9fczMyIGNvdW50ZXI7IH0gYXRvbWljX3Q7CgojZGVmaW5lIEFUT01JQ19JTklU
KGkpICgoYXRvbWljX3QpIHsgKGkpIH0pCgojZGVmaW5lIGF0b21pY19yZWFkKHYpICgodiktPmNv
dW50ZXIpCiNkZWZpbmUgYXRvbWljX3NldCh2LCBpKSAoKCh2KS0+Y291bnRlcikgPSAoaSkpCgpz
dGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfYWRkIChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAoKHYpLT5jb3VudGVy
KTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCArIGk7CiAgICAgICAgfSB3aGlsZSAoKHsgX190
eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18ob2xkICsgaSkgX25fID0gKG9sZCArIGkp
OyBfX3U2NCBfb18sIF9yXzsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX29f
ID0gKF9fdTggKSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDI6IF9vXyA9IChfX3UxNikgKGxv
bmcpIChvbGQpOyBicmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAob2xkKTsgYnJl
YWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKG9sZCk7IGJyZWFrOyBkZWZhdWx0OiBi
cmVhazsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1vdiBhci5jY3Y9JTA7OyIgOjogInJPIihf
b18pKTsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImNtcHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p
IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAi
PXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIu
Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUx
XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVy
KCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKG9sZCkpIF9yXzsgfSkgIT0gb2xkKTsKICAgICAgICBy
ZXR1cm4gbmV3Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfc3ViIChpbnQg
aSwgYXRvbWljX3QgKnYpCnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQg
PSAoKHYpLT5jb3VudGVyKTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCAtIGk7CiAgICAgICAg
fSB3aGlsZSAoKHsgX190eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18obmV3KSBfbl8g
PSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNl
IDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191
MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKG9s
ZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQpOyBicmVhazsgZGVm
YXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6
ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNlIDE6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9
ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5j
Y3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsg
Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFd
LCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7
IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIi
ICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRf
cG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXyhvbGQpKSBfcl87IH0pICE9IG9sZCk7CiAg
ICAgICAgcmV0dXJuIG5ldzsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludAphdG9taWNfYWRk
X25lZ2F0aXZlIChpbnQgaSwgYXRvbWljX3QgKnYpCnsKICAgICAgICByZXR1cm4gaWE2NF9hdG9t
aWNfYWRkKGksIHYpIDwgMDsKfQoKI2RlZmluZSBhdG9taWNfYWRkX3JldHVybihpLCB2KSAoKF9f
YnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwgKGkgPT0g
OCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0gLTgpIHx8
IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZChpLCAmKHYpLT5jb3VudGVyKSA6IGlh
NjRfYXRvbWljX2FkZChpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfc3ViX3JldHVybihpLCB2
KSAoKF9fYnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwg
KGkgPT0gOCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0g
LTgpIHx8IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZCgtKGkpLCAmKHYpLT5jb3Vu
dGVyKSA6IGlhNjRfYXRvbWljX3N1YihpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfZGVjX3Jl
dHVybih2KSBhdG9taWNfc3ViX3JldHVybigxLCAodikpCiNkZWZpbmUgYXRvbWljX2luY19yZXR1
cm4odikgYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKQoKI2RlZmluZSBhdG9taWNfc3ViX2FuZF90
ZXN0KGksIHYpIChhdG9taWNfc3ViX3JldHVybigoaSksICh2KSkgPT0gMCkKI2RlZmluZSBhdG9t
aWNfZGVjX2FuZF90ZXN0KHYpIChhdG9taWNfc3ViX3JldHVybigxLCAodikpID09IDApCiNkZWZp
bmUgYXRvbWljX2luY19hbmRfdGVzdCh2KSAoYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKSAhPSAw
KQoKI2RlZmluZSBhdG9taWNfYWRkKGksIHYpIGF0b21pY19hZGRfcmV0dXJuKChpKSwgKHYpKQoj
ZGVmaW5lIGF0b21pY19zdWIoaSwgdikgYXRvbWljX3N1Yl9yZXR1cm4oKGkpLCAodikpCiNkZWZp
bmUgYXRvbWljX2luYyh2KSBhdG9taWNfYWRkKDEsICh2KSkKI2RlZmluZSBhdG9taWNfZGVjKHYp
IGF0b21pY19zdWIoMSwgKHYpKQoKCiNkZWZpbmUgc21wX21iX19iZWZvcmVfYXRvbWljX2RlYygp
IGJhcnJpZXIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljX2RlYygpIGJhcnJpZXIoKQoj
ZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKI2RlZmluZSBzbXBf
bWJfX2FmdGVyX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDcwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdm9sYXRpbGUg
dW5zaWduZWQgaW50IGxvY2s7Cn0gc3BpbmxvY2tfdDsKCiNkZWZpbmUgU1BJTl9MT0NLX1VOTE9D
S0VEIChzcGlubG9ja190KSB7IDAgfQojZGVmaW5lIHNwaW5fbG9ja19pbml0KHgpICgoeCktPmxv
Y2sgPSAwKQoKCgoKCgojZGVmaW5lIHNwaW5fbG9jayh4KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
ICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIgImxkNCBy
MiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29u
ZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5
LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNv
bmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKHgpLT5sb2NrKSA6ICJyMiIsICJyMjki
LCAibWVtb3J5IikKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3Bpbmxv
Y2suaCIKI2RlZmluZSBzcGluX2lzX2xvY2tlZCh4KSAoKHgpLT5sb2NrICE9IDApCiNkZWZpbmUg
c3Bpbl91bmxvY2soeCkgZG8geyBiYXJyaWVyKCk7ICgoc3BpbmxvY2tfdCAqKSB4KS0+bG9jayA9
IDA7IH0gd2hpbGUgKDApCiNkZWZpbmUgc3Bpbl90cnlsb2NrKHgpIChjbXB4Y2hnX2FjcSgmKHgp
LT5sb2NrLCAwLCAxKSA9PSAwKQojZGVmaW5lIHNwaW5fdW5sb2NrX3dhaXQoeCkgZG8geyBiYXJy
aWVyKCk7IH0gd2hpbGUgKCh4KS0+bG9jaykKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHZv
bGF0aWxlIGludCByZWFkX2NvdW50ZXI6MzE7CiAgICAgICAgdm9sYXRpbGUgaW50IHdyaXRlX2xv
Y2s6MTsKfSByd2xvY2tfdDsKI2RlZmluZSBSV19MT0NLX1VOTE9DS0VEIChyd2xvY2tfdCkgeyAw
LCAwIH0KCiNkZWZpbmUgcmVhZF9sb2NrKHJ3KSBkbyB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIjE6XHQiSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LmFjcSAlMCA9IFslMV0sIDFc
biIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIocDYpIGJyLmNvbmQuc3B0ay5m
ZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4iICIyOlx0IklBNjRfU0VNRklY
ImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQuYWNxICUwID0g
WyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikgYnIuY29uZC5z
cHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5wcmV2aW91c1xu
IiA6ICI9JnIiICh0bXApIDogInIiIChydyk6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDEzMiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSByZWFk
X3VubG9jayhydykgZG8geyBpbnQgdG1wID0gMDsgX19hc21fXyBfX3ZvbGF0aWxlX18gKElBNjRf
U0VNRklYImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiA6ICI9ciIgKHRtcCkgOiAiciIg
KHJ3KSA6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSB3cml0ZV9sb2NrKHJ3KSBkbyB7IF9fYXNt
X18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92bCByMjkgPSAweDgwMDAw
MDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAw
LHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgi
Y21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAw
LHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJy
IihydykgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApCiMgMTY0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5oIgojZGVmaW5lIHdyaXRlX3VubG9j
ayh4KSAoe2NsZWFyX2JpdCgzMSwgKHgpKTsgbWIoKTt9KQojIDM2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9hdG9taWMuaCIgMQojIDEzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zcGlubG9jay5oIiAyCmV4dGVybiBpbnQgYXRvbWljX2RlY19hbmRfbG9jayhhdG9t
aWNfdCAqYXRvbWljLCBzcGlubG9ja190ICpsb2NrKTsKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcGFnZS5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vz
c29yLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BST0NFU1NPUl9ICiMgMTYgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BUUkFDRV9ICiMgNTEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1MiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vZnB1LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0ZQVV9ICgoKCgoKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDEwICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMgoKCiNkZWZpbmUgRlBTUl9UUkFQX1ZE
ICgxIDw8IDApCiNkZWZpbmUgRlBTUl9UUkFQX0REICgxIDw8IDEpCiNkZWZpbmUgRlBTUl9UUkFQ
X1pEICgxIDw8IDIpCiNkZWZpbmUgRlBTUl9UUkFQX09EICgxIDw8IDMpCiNkZWZpbmUgRlBTUl9U
UkFQX1VEICgxIDw8IDQpCiNkZWZpbmUgRlBTUl9UUkFQX0lEICgxIDw8IDUpCiNkZWZpbmUgRlBT
Ul9TMCh4KSAoKHgpIDw8IDYpCiNkZWZpbmUgRlBTUl9TMSh4KSAoKHgpIDw8IDE5KQojZGVmaW5l
IEZQU1JfUzIoeCkgKF9fSUE2NF9VTCh4KSA8PCAzMikKI2RlZmluZSBGUFNSX1MzKHgpIChfX0lB
NjRfVUwoeCkgPDwgNDUpCgoKI2RlZmluZSBGUFNGX0ZUWiAoMSA8PCAwKQojZGVmaW5lIEZQU0Zf
V1JFICgxIDw8IDEpCiNkZWZpbmUgRlBTRl9QQyh4KSAoKCh4KSAmIDB4MykgPDwgMikKI2RlZmlu
ZSBGUFNGX1JDKHgpICgoKHgpICYgMHgzKSA8PCA0KQojZGVmaW5lIEZQU0ZfVEQgKDEgPDwgNikK
CgojZGVmaW5lIEZQU0ZfViAoMSA8PCA3KQojZGVmaW5lIEZQU0ZfRCAoMSA8PCA4KQojZGVmaW5l
IEZQU0ZfWiAoMSA8PCA5KQojZGVmaW5lIEZQU0ZfTyAoMSA8PCAxMCkKI2RlZmluZSBGUFNGX1Ug
KDEgPDwgMTEpCiNkZWZpbmUgRlBTRl9JICgxIDw8IDEyKQoKCiNkZWZpbmUgRlBSQ19ORUFSRVNU
IDB4MAojZGVmaW5lIEZQUkNfTkVHSU5GIDB4MQojZGVmaW5lIEZQUkNfUE9TSU5GIDB4MgojZGVm
aW5lIEZQUkNfVFJVTkMgMHgzCgojZGVmaW5lIEZQU0ZfREVGQVVMVCAoRlBTRl9QQyAoMHgzKSB8
IEZQU0ZfUkMgKEZQUkNfTkVBUkVTVCkpCgoKCiNkZWZpbmUgRlBTUl9ERUZBVUxUIChGUFNSX1RS
QVBfVkQgfCBGUFNSX1RSQVBfREQgfCBGUFNSX1RSQVBfWkQgfCBGUFNSX1RSQVBfT0QgfCBGUFNS
X1RSQVBfVUQgfCBGUFNSX1RSQVBfSUQgfCBGUFNSX1MwIChGUFNGX0RFRkFVTFQpIHwgRlBTUl9T
MSAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCB8IEZQU0ZfV1JFKSB8IEZQU1JfUzIgKEZQU0ZfREVG
QVVMVCB8IEZQU0ZfVEQpIHwgRlBTUl9TMyAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCkpCiMgNTcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIgpzdHJ1Y3QgaWE2NF9mcHJl
ZyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiaXRzWzJd
OwogICAgICAgIH0gdTsKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CiMgNTQgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vb2Zmc2V0cy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9P
RkZTRVRTX0gKCgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEX0JJVCAwCiNkZWZpbmUgUFRfVFJBQ0VT
WVNfQklUIDEKI2RlZmluZSBJQTY0X1RBU0tfU0laRSAzOTA0CiNkZWZpbmUgSUE2NF9QVF9SRUdT
X1NJWkUgNDAwCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfU0laRSA1NjAKI2RlZmluZSBJQTY0
X1NJR0lORk9fU0laRSAxMjgKI2RlZmluZSBJQTY0X0NQVV9TSVpFIDE2Mzg0CiNkZWZpbmUgU0lH
RlJBTUVfU0laRSAyODMyCiNkZWZpbmUgVU5XX0ZSQU1FX0lORk9fU0laRSA0NDgKCiNkZWZpbmUg
SUE2NF9UQVNLX1BUUkFDRV9PRkZTRVQgNDgKI2RlZmluZSBJQTY0X1RBU0tfU0lHUEVORElOR19P
RkZTRVQgMTYKI2RlZmluZSBJQTY0X1RBU0tfTkVFRF9SRVNDSEVEX09GRlNFVCA0MAojZGVmaW5l
IElBNjRfVEFTS19QUk9DRVNTT1JfT0ZGU0VUIDEwMAojZGVmaW5lIElBNjRfVEFTS19USFJFQURf
T0ZGU0VUIDE0NTYKI2RlZmluZSBJQTY0X1RBU0tfVEhSRUFEX0tTUF9PRkZTRVQgMTQ1NgojZGVm
aW5lIElBNjRfVEFTS19USFJFQURfU0lHTUFTS19PRkZTRVQgMTU2OAojZGVmaW5lIElBNjRfVEFT
S19QRk1fTk9USUZZX09GRlNFVCAyMDg4CiNkZWZpbmUgSUE2NF9UQVNLX1BJRF9PRkZTRVQgMTk2
CiNkZWZpbmUgSUE2NF9UQVNLX01NX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19DUl9J
UFNSX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0NSX0lJUF9PRkZTRVQgOAojZGVmaW5l
IElBNjRfUFRfUkVHU19DUl9JRlNfT0ZGU0VUIDE2CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1VO
QVRfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1BGU19PRkZTRVQgMzIKI2RlZmlu
ZSBJQTY0X1BUX1JFR1NfQVJfUlNDX09GRlNFVCA0MAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9S
TkFUX09GRlNFVCA0OAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9CU1BTVE9SRV9PRkZTRVQgNTYK
I2RlZmluZSBJQTY0X1BUX1JFR1NfUFJfT0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0I2
X09GRlNFVCA3MgojZGVmaW5lIElBNjRfUFRfUkVHU19MT0FEUlNfT0ZGU0VUIDgwCiNkZWZpbmUg
SUE2NF9QVF9SRUdTX1IxX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19SMl9PRkZTRVQg
OTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjNfT0ZGU0VUIDEwNAojZGVmaW5lIElBNjRfUFRfUkVH
U19SMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfUFRfUkVHU19SMTNfT0ZGU0VUIDEyMAojZGVm
aW5lIElBNjRfUFRfUkVHU19SMTRfT0ZGU0VUIDEyOAojZGVmaW5lIElBNjRfUFRfUkVHU19SMTVf
T0ZGU0VUIDEzNgojZGVmaW5lIElBNjRfUFRfUkVHU19SOF9PRkZTRVQgMTQ0CiNkZWZpbmUgSUE2
NF9QVF9SRUdTX1I5X09GRlNFVCAxNTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjEwX09GRlNFVCAx
NjAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjExX09GRlNFVCAxNjgKI2RlZmluZSBJQTY0X1BUX1JF
R1NfUjE2X09GRlNFVCAxNzYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE3X09GRlNFVCAxODQKI2Rl
ZmluZSBJQTY0X1BUX1JFR1NfUjE4X09GRlNFVCAxOTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE5
X09GRlNFVCAyMDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIwX09GRlNFVCAyMDgKI2RlZmluZSBJ
QTY0X1BUX1JFR1NfUjIxX09GRlNFVCAyMTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIyX09GRlNF
VCAyMjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIzX09GRlNFVCAyMzIKI2RlZmluZSBJQTY0X1BU
X1JFR1NfUjI0X09GRlNFVCAyNDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI1X09GRlNFVCAyNDgK
I2RlZmluZSBJQTY0X1BUX1JFR1NfUjI2X09GRlNFVCAyNTYKI2RlZmluZSBJQTY0X1BUX1JFR1Nf
UjI3X09GRlNFVCAyNjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI4X09GRlNFVCAyNzIKI2RlZmlu
ZSBJQTY0X1BUX1JFR1NfUjI5X09GRlNFVCAyODAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMwX09G
RlNFVCAyODgKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMxX09GRlNFVCAyOTYKI2RlZmluZSBJQTY0
X1BUX1JFR1NfQVJfQ0NWX09GRlNFVCAzMDQKI2RlZmluZSBJQTY0X1BUX1JFR1NfQVJfRlBTUl9P
RkZTRVQgMzEyCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0IwX09GRlNFVCAzMjAKI2RlZmluZSBJQTY0
X1BUX1JFR1NfQjdfT0ZGU0VUIDMyOAojZGVmaW5lIElBNjRfUFRfUkVHU19GNl9PRkZTRVQgMzM2
CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0Y3X09GRlNFVCAzNTIKI2RlZmluZSBJQTY0X1BUX1JFR1Nf
RjhfT0ZGU0VUIDM2OAojZGVmaW5lIElBNjRfUFRfUkVHU19GOV9PRkZTRVQgMzg0CiNkZWZpbmUg
SUE2NF9TV0lUQ0hfU1RBQ0tfQ0FMTEVSX1VOQVRfT0ZGU0VUIDAKI2RlZmluZSBJQTY0X1NXSVRD
SF9TVEFDS19BUl9GUFNSX09GRlNFVCA4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjJfT0ZG
U0VUIDE2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjNfT0ZGU0VUIDMyCiNkZWZpbmUgSUE2
NF9TV0lUQ0hfU1RBQ0tfRjRfT0ZGU0VUIDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjVf
T0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjEwX09GRlNFVCA4MAojZGVmaW5l
IElBNjRfU1dJVENIX1NUQUNLX0YxMV9PRkZTRVQgOTYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD
S19GMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxM19PRkZTRVQgMTI4
CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE0X09GRlNFVCAxNDQKI2RlZmluZSBJQTY0X1NX
SVRDSF9TVEFDS19GMTVfT0ZGU0VUIDE2MAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxNl9P
RkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE3X09GRlNFVCAxOTIKI2RlZmlu
ZSBJQTY0X1NXSVRDSF9TVEFDS19GMThfT0ZGU0VUIDIwOAojZGVmaW5lIElBNjRfU1dJVENIX1NU
QUNLX0YxOV9PRkZTRVQgMjI0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIwX09GRlNFVCAy
NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjFfT0ZGU0VUIDI1NgojZGVmaW5lIElBNjRf
U1dJVENIX1NUQUNLX0YyMl9PRkZTRVQgMjcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIz
X09GRlNFVCAyODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjRfT0ZGU0VUIDMwNAojZGVm
aW5lIElBNjRfU1dJVENIX1NUQUNLX0YyNV9PRkZTRVQgMzIwCiNkZWZpbmUgSUE2NF9TV0lUQ0hf
U1RBQ0tfRjI2X09GRlNFVCAzMzYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjdfT0ZGU0VU
IDM1MgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YyOF9PRkZTRVQgMzY4CiNkZWZpbmUgSUE2
NF9TV0lUQ0hfU1RBQ0tfRjI5X09GRlNFVCAzODQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19G
MzBfT0ZGU0VUIDQwMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YzMV9PRkZTRVQgNDE2CiNk
ZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjRfT0ZGU0VUIDQzMgojZGVmaW5lIElBNjRfU1dJVENI
X1NUQUNLX1I1X09GRlNFVCA0NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19SNl9PRkZTRVQg
NDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjdfT0ZGU0VUIDQ1NgojZGVmaW5lIElBNjRf
U1dJVENIX1NUQUNLX0IwX09GRlNFVCA0NjQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19CMV9P
RkZTRVQgNDcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjJfT0ZGU0VUIDQ4MAojZGVmaW5l
IElBNjRfU1dJVENIX1NUQUNLX0IzX09GRlNFVCA0ODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD
S19CNF9PRkZTRVQgNDk2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjVfT0ZGU0VUIDUwNAoj
ZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1BGU19PRkZTRVQgNTEyCiNkZWZpbmUgSUE2NF9T
V0lUQ0hfU1RBQ0tfQVJfTENfT0ZGU0VUIDUyMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FS
X1VOQVRfT0ZGU0VUIDUyOAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1JOQVRfT0ZGU0VU
IDUzNgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX0JTUFNUT1JFX09GRlNFVCA1NDQKI2Rl
ZmluZSBJQTY0X1NXSVRDSF9TVEFDS19QUl9PRkZTRVQgNTUyCiNkZWZpbmUgSUE2NF9TSUdDT05U
RVhUX0FSX0JTUF9PRkZTRVQgNzIKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQVJfRlBTUl9PRkZT
RVQgMTA0CiNkZWZpbmUgSUE2NF9TSUdDT05URVhUX0FSX1JOQVRfT0ZGU0VUIDgwCiNkZWZpbmUg
SUE2NF9TSUdDT05URVhUX0FSX1VOQVRfT0ZGU0VUIDk2CiNkZWZpbmUgSUE2NF9TSUdDT05URVhU
X0IwX09GRlNFVCAxMzYKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQ0ZNX09GRlNFVCA0OAojZGVm
aW5lIElBNjRfU0lHQ09OVEVYVF9GTEFHU19PRkZTRVQgMAojZGVmaW5lIElBNjRfU0lHQ09OVEVY
VF9GUjZfT0ZGU0VUIDU2MAojZGVmaW5lIElBNjRfU0lHQ09OVEVYVF9QUl9PRkZTRVQgMTI4CiNk
ZWZpbmUgSUE2NF9TSUdDT05URVhUX1IxMl9PRkZTRVQgMjk2CiNkZWZpbmUgSUE2NF9TSUdGUkFN
RV9BUkcwX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9BUkcxX09GRlNFVCA4CiNkZWZp
bmUgSUE2NF9TSUdGUkFNRV9BUkcyX09GRlNFVCAxNgojZGVmaW5lIElBNjRfU0lHRlJBTUVfUkJT
X0JBU0VfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9IQU5ETEVSX09GRlNFVCAzMgoj
ZGVmaW5lIElBNjRfU0lHRlJBTUVfU0lHQ09OVEVYVF9PRkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9D
TE9ORV9WRk9SSyAxNjM4NAojZGVmaW5lIElBNjRfQ0xPTkVfVk0gMjU2CiNkZWZpbmUgSUE2NF9D
UFVfSVJRX0NPVU5UX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9DUFVfQkhfQ09VTlRfT0ZGU0VUIDQK
I2RlZmluZSBJQTY0X0NQVV9QSFlTX1NUQUNLRURfU0laRV9QOF9PRkZTRVQgMTIKIyA1NSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKIyA2NSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiCiNkZWZpbmUgSUE2NF9UQVNLX1NUUlVD
VF9MT0dfTlVNX1BBR0VTIDEKCgoKCiNkZWZpbmUgSUE2NF9SQlNfT0ZGU0VUICgoSUE2NF9UQVNL
X1NJWkUgKyAxNSkgJiB+MTUpCiNkZWZpbmUgSUE2NF9TVEtfT0ZGU0VUICgoMSA8PCBJQTY0X1RB
U0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKlBBR0VfU0laRSkKCiNkZWZpbmUgSU5JVF9UQVNLX1NJ
WkUgSUE2NF9TVEtfT0ZGU0VUCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vY3VycmVudC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9DVVJSRU5UX0gKIyAxMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vY3VycmVudC5oIgpyZWdpc3RlciBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKmN1cnJlbnQgYXNtICgicjEzIik7CiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vcGFnZS5oIiAxCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0
cmFjZS5oIiAyCiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5o
IgpzdHJ1Y3QgcHRfcmVncyB7CgoKICAgICAgICB1bnNpZ25lZCBsb25nIGNyX2lwc3I7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBjcl9paXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBjcl9pZnM7Cgog
ICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfdW5hdDsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3Bm
czsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3JzYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBh
cl9ybmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfYnNwc3RvcmU7CgogICAgICAgIHVuc2ln
bmVkIGxvbmcgcHI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiNjsKICAgICAgICB1bnNpZ25lZCBs
b25nIGxvYWRyczsKCiAgICAgICAgdW5zaWduZWQgbG9uZyByMTsKICAgICAgICB1bnNpZ25lZCBs
b25nIHIyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcjM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy
MTI7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTM7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTQ7
CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgcjg7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyByOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxMDsKICAgICAg
ICB1bnNpZ25lZCBsb25nIHIxMTsKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHIxNjsKICAgICAg
ICB1bnNpZ25lZCBsb25nIHIxNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxODsKICAgICAgICB1
bnNpZ25lZCBsb25nIHIxOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMDsKICAgICAgICB1bnNp
Z25lZCBsb25nIHIyMTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMjsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHIyMzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHIyNTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNjsKICAgICAgICB1bnNpZ25lZCBsb25n
IHIyNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyODsKICAgICAgICB1bnNpZ25lZCBsb25nIHIy
OTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMDsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMTsK
CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9jY3Y7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9m
cHNyOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGIwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjc7
CgoKCgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY2OwogICAgICAgIHN0cnVjdCBpYTY0X2Zw
cmVnIGY3OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY4OwogICAgICAgIHN0cnVjdCBpYTY0
X2ZwcmVnIGY5Owp9OwoKCgoKCgpzdHJ1Y3Qgc3dpdGNoX3N0YWNrIHsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGNhbGxlcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfZnBzcjsKCiAgICAg
ICAgc3RydWN0IGlhNjRfZnByZWcgZjI7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjM7CiAg
ICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjQ7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjU7
CgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxMDsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJl
ZyBmMTE7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjEyOwogICAgICAgIHN0cnVjdCBpYTY0
X2ZwcmVnIGYxMzsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMTQ7CiAgICAgICAgc3RydWN0
IGlhNjRfZnByZWcgZjE1OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxNjsKICAgICAgICBz
dHJ1Y3QgaWE2NF9mcHJlZyBmMTc7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjE4OwogICAg
ICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxOTsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjA7
CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjIxOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVn
IGYyMjsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjM7CiAgICAgICAgc3RydWN0IGlhNjRf
ZnByZWcgZjI0OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYyNTsKICAgICAgICBzdHJ1Y3Qg
aWE2NF9mcHJlZyBmMjY7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjI3OwogICAgICAgIHN0
cnVjdCBpYTY0X2ZwcmVnIGYyODsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjk7CiAgICAg
ICAgc3RydWN0IGlhNjRfZnByZWcgZjMwOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYzMTsK
CiAgICAgICAgdW5zaWduZWQgbG9uZyByNDsKICAgICAgICB1bnNpZ25lZCBsb25nIHI1OwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgcjY7CiAgICAgICAgdW5zaWduZWQgbG9uZyByNzsKCiAgICAgICAg
dW5zaWduZWQgbG9uZyBiMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGIxOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgYjI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiMzsKICAgICAgICB1bnNpZ25lZCBs
b25nIGI0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcg
YXJfcGZzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfbGM7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBhcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfcm5hdDsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGFyX2JzcHN0b3JlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcHI7Cn07CgoKCiNkZWZp
bmUgaWE2NF90YXNrX3JlZ3ModCkgKCgoc3RydWN0IHB0X3JlZ3MgKikgKChjaGFyICopICh0KSAr
IElBNjRfU1RLX09GRlNFVCkpIC0gMSkKI2RlZmluZSBpYTY0X3BzcihyZWdzKSAoKHN0cnVjdCBp
YTY0X3BzciAqKSAmKHJlZ3MpLT5jcl9pcHNyKQojZGVmaW5lIHVzZXJfbW9kZShyZWdzKSAoKChz
dHJ1Y3QgaWE2NF9wc3IgKikgJihyZWdzKS0+Y3JfaXBzciktPmNwbCAhPSAwKQoKICBzdHJ1Y3Qg
dGFza19zdHJ1Y3Q7CgogIGV4dGVybiB2b2lkIHNob3dfcmVncyAoc3RydWN0IHB0X3JlZ3MgKik7
CiAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaWE2NF9nZXRfdXNlcl9yYnNfZW5kIChzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKik7CiAgZXh0ZXJuIGxvbmcgaWE2NF9w
ZWVrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgc3RydWN0IHN3aXRjaF9zdGFjayAqLCB1bnNpZ25l
ZCBsb25nLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgbG9uZyAqKTsK
ICBleHRlcm4gbG9uZyBpYTY0X3Bva2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBzdHJ1Y3Qgc3dp
dGNoX3N0YWNrICosIHVuc2lnbmVkIGxvbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsb25nLCBsb25nKTsKICBleHRlcm4gdm9pZCBpYTY0X2ZsdXNoX2ZwaCAoc3RydWN0IHRh
c2tfc3RydWN0ICopOwogIGV4dGVybiB2b2lkIGlhNjRfc3luY19mcGggKHN0cnVjdCB0YXNrX3N0
cnVjdCAqKTsKICBleHRlcm4gbG9uZyBpYTY0X3N5bmNfdXNlcl9yYnMgKHN0cnVjdCB0YXNrX3N0
cnVjdCAqLCBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgogIGV4dGVybiB1bnNpZ25l
ZCBsb25nIGlhNjRfZ2V0X3NjcmF0Y2hfbmF0X2JpdHMgKHN0cnVjdCBwdF9yZWdzICpwdCwgdW5z
aWduZWQgbG9uZyBzY3JhdGNoX3VuYXQpOwoKICBleHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X3B1
dF9zY3JhdGNoX25hdF9iaXRzIChzdHJ1Y3QgcHRfcmVncyAqcHQsIHVuc2lnbmVkIGxvbmcgbmF0
KTsKCiAgZXh0ZXJuIHZvaWQgaWE2NF9pbmNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7
CiAgZXh0ZXJuIHZvaWQgaWE2NF9kZWNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7Cgpz
dGF0aWMgaW5saW5lIHZvaWQKZm9yY2Vfc3VjY2Vzc2Z1bF9zeXNjYWxsX3JldHVybiAodm9pZCkK
ewogICAgICAgICgoKHN0cnVjdCBwdF9yZWdzICopICgoY2hhciAqKSAoY3VycmVudCkgKyAoKDEg
PDwgMSkqKDFVTCA8PCAxNCkpKSkgLSAxKS0+cjggPSAwOwp9CiMgMjU2ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKI2RlZmluZSBQVFJBQ0VfU0lOR0xFQkxPQ0sg
MTIKI2RlZmluZSBQVFJBQ0VfR0VUU0lHSU5GTyAxMwojZGVmaW5lIFBUUkFDRV9TRVRTSUdJTkZP
IDE0CiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20va3JlZ3MuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfS1JFR1NfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9rcmVncy5oIgojZGVmaW5lIElBNjRfS1JfSU9fQkFTRSAwCiNkZWZpbmUgSUE2NF9LUl9DVVJS
RU5UX1NUQUNLIDQKI2RlZmluZSBJQTY0X0tSX0ZQVV9PV05FUiA1CiNkZWZpbmUgSUE2NF9LUl9D
VVJSRU5UIDYKI2RlZmluZSBJQTY0X0tSX1BUX0JBU0UgNwoKI2RlZmluZSBfSUE2NF9LUl9QQVNU
RSh4LCB5KSB4ICMjIHkKI2RlZmluZSBfSUE2NF9LUl9QUkVGSVgobikgX0lBNjRfS1JfUEFTVEUo
YXIuaywgbikKI2RlZmluZSBJQTY0X0tSKG4pIF9JQTY0X0tSX1BSRUZJWChJQTY0X0tSXyAjIyBu
KQoKCgoKI2RlZmluZSBJQTY0X1RSX0tFUk5FTCAwCiNkZWZpbmUgSUE2NF9UUl9QQUxDT0RFIDEK
I2RlZmluZSBJQTY0X1RSX1BFUkNQVV9EQVRBIDEKI2RlZmluZSBJQTY0X1RSX0NVUlJFTlRfU1RB
Q0sgMgojIDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAxCiMgMjEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDIyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKI2RlZmluZSBJQTY0X05VTV9E
QkdfUkVHUyA4CgoKCgojZGVmaW5lIElBNjRfTlVNX1BNQ19SRUdTIDMyCiNkZWZpbmUgSUE2NF9O
VU1fUE1EX1JFR1MgMzIKI2RlZmluZSBJQTY0X05VTV9QTURfQ09VTlRFUlMgNAoKI2RlZmluZSBE
RUZBVUxUX01BUF9CQVNFIDB4MjAwMDAwMDAwMDAwMDAwMAojZGVmaW5lIERFRkFVTFRfVEFTS19T
SVpFIDB4YTAwMDAwMDAwMDAwMDAwMAoKCgoKCgoKI2RlZmluZSBUQVNLX1NJWkUgKGN1cnJlbnQt
PnRocmVhZC50YXNrX3NpemUpCgoKCgoKI2RlZmluZSBUQVNLX1VOTUFQUEVEX0JBU0UgKGN1cnJl
bnQtPnRocmVhZC5tYXBfYmFzZSkKCgoKCiNkZWZpbmUgRUlTQV9idXMgMAojZGVmaW5lIEVJU0Ff
YnVzX19pc19hX21hY3JvCiNkZWZpbmUgTUNBX2J1cyAwCiNkZWZpbmUgTUNBX2J1c19faXNfYV9t
YWNybwoKCiNkZWZpbmUgSUE2NF9QU1JfQkVfQklUIDEKI2RlZmluZSBJQTY0X1BTUl9VUF9CSVQg
MgojZGVmaW5lIElBNjRfUFNSX0FDX0JJVCAzCiNkZWZpbmUgSUE2NF9QU1JfTUZMX0JJVCA0CiNk
ZWZpbmUgSUE2NF9QU1JfTUZIX0JJVCA1CiNkZWZpbmUgSUE2NF9QU1JfSUNfQklUIDEzCiNkZWZp
bmUgSUE2NF9QU1JfSV9CSVQgMTQKI2RlZmluZSBJQTY0X1BTUl9QS19CSVQgMTUKI2RlZmluZSBJ
QTY0X1BTUl9EVF9CSVQgMTcKI2RlZmluZSBJQTY0X1BTUl9ERkxfQklUIDE4CiNkZWZpbmUgSUE2
NF9QU1JfREZIX0JJVCAxOQojZGVmaW5lIElBNjRfUFNSX1NQX0JJVCAyMAojZGVmaW5lIElBNjRf
UFNSX1BQX0JJVCAyMQojZGVmaW5lIElBNjRfUFNSX0RJX0JJVCAyMgojZGVmaW5lIElBNjRfUFNS
X1NJX0JJVCAyMwojZGVmaW5lIElBNjRfUFNSX0RCX0JJVCAyNAojZGVmaW5lIElBNjRfUFNSX0xQ
X0JJVCAyNQojZGVmaW5lIElBNjRfUFNSX1RCX0JJVCAyNgojZGVmaW5lIElBNjRfUFNSX1JUX0JJ
VCAyNwoKI2RlZmluZSBJQTY0X1BTUl9DUEwwX0JJVCAzMgojZGVmaW5lIElBNjRfUFNSX0NQTDFf
QklUIDMzCiNkZWZpbmUgSUE2NF9QU1JfSVNfQklUIDM0CiNkZWZpbmUgSUE2NF9QU1JfTUNfQklU
IDM1CiNkZWZpbmUgSUE2NF9QU1JfSVRfQklUIDM2CiNkZWZpbmUgSUE2NF9QU1JfSURfQklUIDM3
CiNkZWZpbmUgSUE2NF9QU1JfREFfQklUIDM4CiNkZWZpbmUgSUE2NF9QU1JfRERfQklUIDM5CiNk
ZWZpbmUgSUE2NF9QU1JfU1NfQklUIDQwCiNkZWZpbmUgSUE2NF9QU1JfUklfQklUIDQxCiNkZWZp
bmUgSUE2NF9QU1JfRURfQklUIDQzCiNkZWZpbmUgSUE2NF9QU1JfQk5fQklUIDQ0CgojZGVmaW5l
IElBNjRfUFNSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQkVfQklUKQojZGVmaW5lIElB
NjRfUFNSX1VQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVVBfQklUKQojZGVmaW5lIElBNjRf
UFNSX0FDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQUNfQklUKQojZGVmaW5lIElBNjRfUFNS
X01GTCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01GTF9CSVQpCiNkZWZpbmUgSUE2NF9QU1Jf
TUZIIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTUZIX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9J
QyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lDX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9JIChf
X0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfSV9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfUEsgKF9fSUE2
NF9VTCgxKSA8PCBJQTY0X1BTUl9QS19CSVQpCiNkZWZpbmUgSUE2NF9QU1JfRFQgKF9fSUE2NF9V
TCgxKSA8PCBJQTY0X1BTUl9EVF9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfREZMIChfX0lBNjRfVUwo
MSkgPDwgSUE2NF9QU1JfREZMX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9ERkggKF9fSUE2NF9VTCgx
KSA8PCBJQTY0X1BTUl9ERkhfQklUKQojZGVmaW5lIElBNjRfUFNSX1NQIChfX0lBNjRfVUwoMSkg
PDwgSUE2NF9QU1JfU1BfQklUKQojZGVmaW5lIElBNjRfUFNSX1BQIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9QU1JfUFBfQklUKQojZGVmaW5lIElBNjRfUFNSX0RJIChfX0lBNjRfVUwoMSkgPDwgSUE2
NF9QU1JfRElfQklUKQojZGVmaW5lIElBNjRfUFNSX1NJIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9Q
U1JfU0lfQklUKQojZGVmaW5lIElBNjRfUFNSX0RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1Jf
REJfQklUKQojZGVmaW5lIElBNjRfUFNSX0xQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTFBf
QklUKQojZGVmaW5lIElBNjRfUFNSX1RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVEJfQklU
KQojZGVmaW5lIElBNjRfUFNSX1JUIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfUlRfQklUKQoK
I2RlZmluZSBJQTY0X1BTUl9JUyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lTX0JJVCkKI2Rl
ZmluZSBJQTY0X1BTUl9NQyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01DX0JJVCkKI2RlZmlu
ZSBJQTY0X1BTUl9JVCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lUX0JJVCkKI2RlZmluZSBJ
QTY0X1BTUl9JRCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lEX0JJVCkKI2RlZmluZSBJQTY0
X1BTUl9EQSAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0RBX0JJVCkKI2RlZmluZSBJQTY0X1BT
Ul9ERCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0REX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9T
UyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX1NTX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9SSSAo
X19JQTY0X1VMKDMpIDw8IElBNjRfUFNSX1JJX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9FRCAoX19J
QTY0X1VMKDEpIDw8IElBNjRfUFNSX0VEX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9CTiAoX19JQTY0
X1VMKDEpIDw8IElBNjRfUFNSX0JOX0JJVCkKCgojZGVmaW5lIElBNjRfUFNSX1VNIChJQTY0X1BT
Ul9CRSB8IElBNjRfUFNSX1VQIHwgSUE2NF9QU1JfQUMgfCBJQTY0X1BTUl9NRkwgfCBJQTY0X1BT
Ul9NRkgpCgoKI2RlZmluZSBJQTY0X0RDUl9QUF9CSVQgMAojZGVmaW5lIElBNjRfRENSX0JFX0JJ
VCAxCiNkZWZpbmUgSUE2NF9EQ1JfTENfQklUIDIKI2RlZmluZSBJQTY0X0RDUl9ETV9CSVQgOAoj
ZGVmaW5lIElBNjRfRENSX0RQX0JJVCA5CiNkZWZpbmUgSUE2NF9EQ1JfREtfQklUIDEwCiNkZWZp
bmUgSUE2NF9EQ1JfRFhfQklUIDExCiNkZWZpbmUgSUE2NF9EQ1JfRFJfQklUIDEyCiNkZWZpbmUg
SUE2NF9EQ1JfREFfQklUIDEzCiNkZWZpbmUgSUE2NF9EQ1JfRERfQklUIDE0CgojZGVmaW5lIElB
NjRfRENSX1BQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfUFBfQklUKQojZGVmaW5lIElBNjRf
RENSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfQkVfQklUKQojZGVmaW5lIElBNjRfRENS
X0xDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfTENfQklUKQojZGVmaW5lIElBNjRfRENSX0RN
IChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRE1fQklUKQojZGVmaW5lIElBNjRfRENSX0RQIChf
X0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRFBfQklUKQojZGVmaW5lIElBNjRfRENSX0RLIChfX0lB
NjRfVUwoMSkgPDwgSUE2NF9EQ1JfREtfQklUKQojZGVmaW5lIElBNjRfRENSX0RYIChfX0lBNjRf
VUwoMSkgPDwgSUE2NF9EQ1JfRFhfQklUKQojZGVmaW5lIElBNjRfRENSX0RSIChfX0lBNjRfVUwo
MSkgPDwgSUE2NF9EQ1JfRFJfQklUKQojZGVmaW5lIElBNjRfRENSX0RBIChfX0lBNjRfVUwoMSkg
PDwgSUE2NF9EQ1JfREFfQklUKQojZGVmaW5lIElBNjRfRENSX0REIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9EQ1JfRERfQklUKQoKCiNkZWZpbmUgSUE2NF9JU1JfWF9CSVQgMzIKI2RlZmluZSBJQTY0
X0lTUl9XX0JJVCAzMwojZGVmaW5lIElBNjRfSVNSX1JfQklUIDM0CiNkZWZpbmUgSUE2NF9JU1Jf
TkFfQklUIDM1CiNkZWZpbmUgSUE2NF9JU1JfU1BfQklUIDM2CiNkZWZpbmUgSUE2NF9JU1JfUlNf
QklUIDM3CiNkZWZpbmUgSUE2NF9JU1JfSVJfQklUIDM4CgojZGVmaW5lIElBNjRfSVNSX1ggKF9f
SUE2NF9VTCgxKSA8PCBJQTY0X0lTUl9YX0JJVCkKI2RlZmluZSBJQTY0X0lTUl9XIChfX0lBNjRf
VUwoMSkgPDwgSUE2NF9JU1JfV19CSVQpCiNkZWZpbmUgSUE2NF9JU1JfUiAoX19JQTY0X1VMKDEp
IDw8IElBNjRfSVNSX1JfQklUKQojZGVmaW5lIElBNjRfSVNSX05BIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9JU1JfTkFfQklUKQojZGVmaW5lIElBNjRfSVNSX1NQIChfX0lBNjRfVUwoMSkgPDwgSUE2
NF9JU1JfU1BfQklUKQojZGVmaW5lIElBNjRfSVNSX1JTIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9J
U1JfUlNfQklUKQojZGVmaW5lIElBNjRfSVNSX0lSIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9JU1Jf
SVJfQklUKQoKI2RlZmluZSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAw
KQojZGVmaW5lIElBNjRfVEhSRUFEX0RCR19WQUxJRCAoX19JQTY0X1VMKDEpIDw8IDEpCiNkZWZp
bmUgSUE2NF9USFJFQURfUE1fVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAyKQojZGVmaW5lIElBNjRf
VEhSRUFEX1VBQ19OT1BSSU5UIChfX0lBNjRfVUwoMSkgPDwgMykKI2RlZmluZSBJQTY0X1RIUkVB
RF9VQUNfU0lHQlVTIChfX0lBNjRfVUwoMSkgPDwgNCkKI2RlZmluZSBJQTY0X1RIUkVBRF9LUkJT
X1NZTkNFRCAoX19JQTY0X1VMKDEpIDw8IDUpCiNkZWZpbmUgSUE2NF9LRVJORUxfREVBVEggKF9f
SUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgSUE2NF9USFJFQURfVUFDX1NISUZUIDMKI2RlZmlu
ZSBJQTY0X1RIUkVBRF9VQUNfTUFTSyAoSUE2NF9USFJFQURfVUFDX05PUFJJTlQgfCBJQTY0X1RI
UkVBRF9VQUNfU0lHQlVTKQoKCgoKCgoKI2RlZmluZSBJQTY0X1VTRUNfUEVSX0NZQ19TSElGVCA0
MQoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAx
CgojZGVmaW5lIF9MSU5VWF9USFJFQURTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdGhyZWFkcy5oIiAyCgoKCgoKCgojZGVmaW5lIE5SX0NQVVMgMzIKCgoKCiNkZWZpbmUg
TUlOX1RIUkVBRFNfTEVGVF9GT1JfUk9PVCA0CgoKCgojZGVmaW5lIFBJRF9NQVggMHg4MDAwCiMg
MTg3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMQojIDE4OSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9vZmZzZXRzLmgiIDEKIyAxOTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcGFnZS5oIiAxCiMgMTkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL3JzZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SU0VfSAojIDE0ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9yc2UuaCIKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9u
ZwppYTY0X3JzZV9zbG90X251bSAodW5zaWduZWQgbG9uZyAqYWRkcikKewogICAgICAgIHJldHVy
biAoKCh1bnNpZ25lZCBsb25nKSBhZGRyKSA+PiAzKSAmIDB4M2Y7Cn0KCgoKCnN0YXRpYyBfX2lu
bGluZV9fIHVuc2lnbmVkIGxvbmcKaWE2NF9yc2VfaXNfcm5hdF9zbG90ICh1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiAgICAgICAgcmV0dXJuIGlhNjRfcnNlX3Nsb3RfbnVtKGFkZHIpID09IDB4M2Y7
Cn0KCgoKCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfcm5hdF9h
ZGRyICh1bnNpZ25lZCBsb25nICpzbG90X2FkZHIpCnsKICAgICAgICByZXR1cm4gKHVuc2lnbmVk
IGxvbmcgKikgKCh1bnNpZ25lZCBsb25nKSBzbG90X2FkZHIgfCAoMHgzZiA8PCAzKSk7Cn0KCgoK
CgoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwppYTY0X3JzZV9udW1fcmVncyAodW5z
aWduZWQgbG9uZyAqYnNwc3RvcmUsIHVuc2lnbmVkIGxvbmcgKmJzcCkKewogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2xvdHMgPSAoYnNwIC0gYnNwc3RvcmUpOwoKICAgICAgICByZXR1cm4gc2xvdHMg
LSAoaWE2NF9yc2Vfc2xvdF9udW0oYnNwc3RvcmUpICsgc2xvdHMpLzB4NDA7Cn0KCgoKCgpzdGF0
aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfc2tpcF9yZWdzICh1bnNpZ25l
ZCBsb25nICphZGRyLCBsb25nIG51bV9yZWdzKQp7CiAgICAgICAgbG9uZyBkZWx0YSA9IGlhNjRf
cnNlX3Nsb3RfbnVtKGFkZHIpICsgbnVtX3JlZ3M7CgogICAgICAgIGlmIChudW1fcmVncyA8IDAp
CiAgICAgICAgICAgICAgICBkZWx0YSAtPSAweDNlOwogICAgICAgIHJldHVybiBhZGRyICsgbnVt
X3JlZ3MgKyBkZWx0YS8weDNmOwp9CiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3Vud2luZC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9VTldJTkRfSAojIDE2ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS91bndpbmQuaCIKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1
Y3Qgc3dpdGNoX3N0YWNrOwoKZW51bSB1bndfYXBwbGljYXRpb25fcmVnaXN0ZXIgewogICAgICAg
IFVOV19BUl9CU1AsCiAgICAgICAgVU5XX0FSX0JTUFNUT1JFLAogICAgICAgIFVOV19BUl9QRlMs
CiAgICAgICAgVU5XX0FSX1JOQVQsCiAgICAgICAgVU5XX0FSX1VOQVQsCiAgICAgICAgVU5XX0FS
X0xDLAogICAgICAgIFVOV19BUl9FQywKICAgICAgICBVTldfQVJfRlBTUiwKICAgICAgICBVTldf
QVJfUlNDLAogICAgICAgIFVOV19BUl9DQ1YKfTsKCgoKCgoKc3RydWN0IHVud19zdGFjayB7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBsaW1pdDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRvcDsKfTsK
CiNkZWZpbmUgVU5XX0ZMQUdfSU5URVJSVVBUX0ZSQU1FICgxVUwgPDwgMCkKCgoKCgoKc3RydWN0
IHVud19mcmFtZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdW53X3N0YWNrIHJlZ3N0azsKICAgICAg
ICBzdHJ1Y3QgdW53X3N0YWNrIG1lbXN0azsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAg
ICAgICAgc2hvcnQgaGludDsKICAgICAgICBzaG9ydCBwcmV2X3NjcmlwdDsKCgogICAgICAgIHVu
c2lnbmVkIGxvbmcgYnNwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3A7CiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBwc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpcDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHByOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmNmbV9sb2M7CgogICAgICAgIHN0cnVjdCB0
YXNrX3N0cnVjdCAqdGFzazsKICAgICAgICBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICpzdzsKCgogICAg
ICAgIHVuc2lnbmVkIGxvbmcgKmJzcF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqYnNwc3Rv
cmVfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKnBmc19sb2M7CiAgICAgICAgdW5zaWduZWQg
bG9uZyAqcm5hdF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcnBfbG9jOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgKnByaV91bmF0X2xvYzsKICAgICAgICB1bnNpZ25lZCBsb25nICp1bmF0X2xv
YzsKICAgICAgICB1bnNpZ25lZCBsb25nICpwcl9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAq
bGNfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmZwc3JfbG9jOwogICAgICAgIHN0cnVjdCB1
bndfaXJlZyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpsb2M7CiAgICAgICAgICAg
ICAgICBzdHJ1Y3QgdW53X2lyZWdfbmF0IHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0
eXBlIDogMzsKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAg
ICAgICAgICAgICAgICB9IG5hdDsKICAgICAgICB9IHI0LCByNSwgcjYsIHI3OwogICAgICAgIHVu
c2lnbmVkIGxvbmcgKmIxX2xvYywgKmIyX2xvYywgKmIzX2xvYywgKmI0X2xvYywgKmI1X2xvYzsK
ICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyAqZjJfbG9jLCAqZjNfbG9jLCAqZjRfbG9jLCAqZjVf
bG9jLCAqZnJfbG9jWzE2XTsKfTsKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vdW53aW5kLmgiCmV4dGVybiB2b2lkIHVud19pbml0ICh2b2lkKTsKZXh0ZXJuIHZvaWQgdW53
X2NyZWF0ZV9nYXRlX3RhYmxlICh2b2lkKTsKCmV4dGVybiB2b2lkICp1bndfYWRkX3Vud2luZF90
YWJsZSAoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBzZWdtZW50X2Jhc2UsIHVuc2ln
bmVkIGxvbmcgZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p
ZCAqdGFibGVfc3RhcnQsIGNvbnN0IHZvaWQgKnRhYmxlX2VuZCk7CgpleHRlcm4gdm9pZCB1bndf
cmVtb3ZlX3Vud2luZF90YWJsZSAodm9pZCAqaGFuZGxlKTsKCgoKCmV4dGVybiB2b2lkIHVud19p
bml0X2Zyb21fYmxvY2tlZF90YXNrIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVj
dCB0YXNrX3N0cnVjdCAqdCk7CgpleHRlcm4gdm9pZCB1bndfaW5pdF9mcmFtZV9pbmZvIChzdHJ1
Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHN3aXRjaF9zdGFjayAqc3cpOwoKCgoKZXh0
ZXJuIHZvaWQgdW53X2luaXRfcnVubmluZyAodm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgdW53X2Zy
YW1lX2luZm8gKmluZm8sIHZvaWQgKmFyZyksIHZvaWQgKmFyZyk7CgoKCgoKZXh0ZXJuIGludCB1
bndfdW53aW5kIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8pOwoKCgoKCgpleHRlcm4gaW50
IHVud191bndpbmRfdG9fdXNlciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppbmZvKTsKCiNkZWZp
bmUgdW53X2lzX2ludHJfZnJhbWUoaW5mbykgKCgoaW5mbyktPmZsYWdzICYgVU5XX0ZMQUdfSU5U
RVJSVVBUX0ZSQU1FKSAhPSAwKQoKc3RhdGljIGlubGluZSBpbnQKdW53X2dldF9pcCAoc3RydWN0
IHVud19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZh
bHAgPSAoaW5mbyktPmlwOwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1
bndfZ2V0X3NwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZh
bHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+c3A7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0
YXRpYyBpbmxpbmUgaW50CnVud19nZXRfcHNwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8s
IHVuc2lnbmVkIGxvbmcgKnZhbHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+cHNwOwogICAg
ICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X2JzcCAoc3RydWN0IHVu
d19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZhbHAg
PSAoaW5mbyktPmJzcDsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53
X2dldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqaW5mbywgdW5zaWduZWQgbG9uZyAqdmFs
cCkKewogICAgICAgICp2YWxwID0gKihpbmZvKS0+Y2ZtX2xvYzsKICAgICAgICByZXR1cm4gMDsK
fQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq
aW5mbywgdW5zaWduZWQgbG9uZyB2YWwpCnsKICAgICAgICAqKGluZm8pLT5jZm1fbG9jID0gdmFs
OwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X3JwIChzdHJ1
Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZhbCkKewogICAgICAgIGlm
ICghaW5mby0+cnBfbG9jKQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICp2YWwg
PSAqaW5mby0+cnBfbG9jOwogICAgICAgIHJldHVybiAwOwp9CgpleHRlcm4gaW50IHVud19hY2Nl
c3NfZ3IgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgY2hh
ciAqLCBpbnQpOwpleHRlcm4gaW50IHVud19hY2Nlc3NfYnIgKHN0cnVjdCB1bndfZnJhbWVfaW5m
byAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX2Zy
IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKiwgaW50LCBzdHJ1Y3QgaWE2NF9mcHJlZyAqLCBpbnQp
OwpleHRlcm4gaW50IHVud19hY2Nlc3NfYXIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQs
IHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX3ByIChzdHJ1Y3Qg
dW53X2ZyYW1lX2luZm8gKiwgdW5zaWduZWQgbG9uZyAqLCBpbnQpOwoKc3RhdGljIGlubGluZSBp
bnQKdW53X3NldF9nciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQg
bG9uZyB2LCBjaGFyIG5hdCkKewogICAgICAgIHJldHVybiB1bndfYWNjZXNzX2dyKGksIG4sICZ2
LCAmbmF0LCAxKTsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9iciAoc3RydWN0IHVud19m
cmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVu
d19hY2Nlc3NfYnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfc2V0X2Zy
IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCBzdHJ1Y3QgaWE2NF9mcHJlZyB2KQp7
CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfZnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5s
aW5lIGludAp1bndfc2V0X2FyIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCB1bnNp
Z25lZCBsb25nIHYpCnsKICAgICAgICByZXR1cm4gdW53X2FjY2Vzc19hcihpLCBuLCAmdiwgMSk7
Cn0KCnN0YXRpYyBpbmxpbmUgaW50CnVud19zZXRfcHIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq
aSwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfcHIoaSwgJnYs
IDEpOwp9CgojZGVmaW5lIHVud19nZXRfZ3IoaSwgbiwgdiwgbmF0KSB1bndfYWNjZXNzX2dyKGks
bix2LG5hdCwwKQojZGVmaW5lIHVud19nZXRfYnIoaSwgbiwgdikgdW53X2FjY2Vzc19icihpLG4s
diwwKQojZGVmaW5lIHVud19nZXRfZnIoaSwgbiwgdikgdW53X2FjY2Vzc19mcihpLG4sdiwwKQoj
ZGVmaW5lIHVud19nZXRfYXIoaSwgbiwgdikgdW53X2FjY2Vzc19hcihpLG4sdiwwKQojZGVmaW5l
IHVud19nZXRfcHIoaSwgdikgdW53X2FjY2Vzc19wcihpLHYsMCkKIyAxOTMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKc3RydWN0IGlhNjRfcHNyIHsK
ICAgICAgICBfX3U2NCByZXNlcnZlZDAgOiAxOwogICAgICAgIF9fdTY0IGJlIDogMTsKICAgICAg
ICBfX3U2NCB1cCA6IDE7CiAgICAgICAgX191NjQgYWMgOiAxOwogICAgICAgIF9fdTY0IG1mbCA6
IDE7CiAgICAgICAgX191NjQgbWZoIDogMTsKICAgICAgICBfX3U2NCByZXNlcnZlZDEgOiA3Owog
ICAgICAgIF9fdTY0IGljIDogMTsKICAgICAgICBfX3U2NCBpIDogMTsKICAgICAgICBfX3U2NCBw
ayA6IDE7CiAgICAgICAgX191NjQgcmVzZXJ2ZWQyIDogMTsKICAgICAgICBfX3U2NCBkdCA6IDE7
CiAgICAgICAgX191NjQgZGZsIDogMTsKICAgICAgICBfX3U2NCBkZmggOiAxOwogICAgICAgIF9f
dTY0IHNwIDogMTsKICAgICAgICBfX3U2NCBwcCA6IDE7CiAgICAgICAgX191NjQgZGkgOiAxOwog
ICAgICAgIF9fdTY0IHNpIDogMTsKICAgICAgICBfX3U2NCBkYiA6IDE7CiAgICAgICAgX191NjQg
bHAgOiAxOwogICAgICAgIF9fdTY0IHRiIDogMTsKICAgICAgICBfX3U2NCBydCA6IDE7CiAgICAg
ICAgX191NjQgcmVzZXJ2ZWQzIDogNDsKICAgICAgICBfX3U2NCBjcGwgOiAyOwogICAgICAgIF9f
dTY0IGlzIDogMTsKICAgICAgICBfX3U2NCBtYyA6IDE7CiAgICAgICAgX191NjQgaXQgOiAxOwog
ICAgICAgIF9fdTY0IGlkIDogMTsKICAgICAgICBfX3U2NCBkYSA6IDE7CiAgICAgICAgX191NjQg
ZGQgOiAxOwogICAgICAgIF9fdTY0IHNzIDogMTsKICAgICAgICBfX3U2NCByaSA6IDI7CiAgICAg
ICAgX191NjQgZWQgOiAxOwogICAgICAgIF9fdTY0IGJuIDogMTsKICAgICAgICBfX3U2NCByZXNl
cnZlZDQgOiAxOTsKfTsKCgoKCgpzdHJ1Y3QgY3B1aW5mb19pYTY0IHsKCiAgICAgICAgdW5pb24g
ewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg
aXJxX2NvdW50OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBiaF9jb3VudDsKICAgICAg
ICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIF9fdTY0IGlycV9hbmRfYmhfY291bnRzOwog
ICAgICAgIH0gaXJxX3N0YXQ7CiAgICAgICAgX191MzIgc29mdGlycV9wZW5kaW5nOwogICAgICAg
IF9fdTMyIHBoeXNfc3RhY2tlZF9zaXplX3A4OwogICAgICAgIF9fdTY0IGl0bV9kZWx0YTsKICAg
ICAgICBfX3U2NCBpdG1fbmV4dDsKICAgICAgICBfX3U2NCAqcGdkX3F1aWNrOwogICAgICAgIF9f
dTY0ICpwbWRfcXVpY2s7CiAgICAgICAgX191NjQgKnB0ZV9xdWljazsKICAgICAgICBfX3U2NCBw
Z3RhYmxlX2NhY2hlX3N6OwoKICAgICAgICBfX3U2NCBwcG47CiAgICAgICAgX191NjQgZmVhdHVy
ZXM7CiAgICAgICAgX191OCBudW1iZXI7CiAgICAgICAgX191OCByZXZpc2lvbjsKICAgICAgICBf
X3U4IG1vZGVsOwogICAgICAgIF9fdTggZmFtaWx5OwogICAgICAgIF9fdTggYXJjaHJldjsKICAg
ICAgICBjaGFyIHZlbmRvclsxNl07CiAgICAgICAgX191NjQgaXRjX2ZyZXE7CiAgICAgICAgX191
NjQgcHJvY19mcmVxOwogICAgICAgIF9fdTY0IGN5Y19wZXJfdXNlYzsKICAgICAgICBfX3U2NCB1
c2VjX3Blcl9jeWM7CiAgICAgICAgX191NjQgdW5pbXBsX3ZhX21hc2s7CiAgICAgICAgX191NjQg
dW5pbXBsX3BhX21hc2s7CiAgICAgICAgX191NjQgcHRjZV9iYXNlOwogICAgICAgIF9fdTMyIHB0
Y2VfY291bnRbMl07CiAgICAgICAgX191MzIgcHRjZV9zdHJpZGVbMl07CiAgICAgICAgc3RydWN0
IHRhc2tfc3RydWN0ICprc29mdGlycWQ7CgogICAgICAgIF9fdTY0IGxvb3BzX3Blcl9qaWZmeTsK
ICAgICAgICBfX3U2NCBpcGlfY291bnQ7CiAgICAgICAgX191NjQgcHJvZl9jb3VudGVyOwogICAg
ICAgIF9fdTY0IHByb2ZfbXVsdGlwbGllcjsKICAgICAgICBfX3U2NCBpcGlfb3BlcmF0aW9uOwoK
CgoKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoKDFVTCA8PCAxNCkpKSkgOwoKCgoKCiNkZWZp
bmUgbG9jYWxfY3B1X2RhdGEgKChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopIFBFUkNQVV9BRERSKQoj
IDMwNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCiAgZXh0
ZXJuIHN0cnVjdCBjcHVpbmZvX2lhNjQgX2NwdV9kYXRhX1JzbXBfZDJmZjUwZjVbMzJdOwojZGVm
aW5lIGNwdV9kYXRhKGNwdSkgKCZfY3B1X2RhdGFbY3B1XSkKCgpleHRlcm4gdm9pZCBpZGVudGlm
eV9jcHUgKHN0cnVjdCBjcHVpbmZvX2lhNjQgKik7CmV4dGVybiB2b2lkIHByaW50X2NwdV9pbmZv
IChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2VnOwp9IG1tX3NlZ21lbnRfdDsKCiNkZWZpbmUgU0VUX1VOQUxJR05fQ1RMKHRh
c2ssIHZhbHVlKSAoeyAodGFzayktPnRocmVhZC5mbGFncyA9ICgoKHRhc2spLT50aHJlYWQuZmxh
Z3MgJiB+SUE2NF9USFJFQURfVUFDX01BU0spIHwgKCgodmFsdWUpIDw8IElBNjRfVEhSRUFEX1VB
Q19TSElGVCkgJiBJQTY0X1RIUkVBRF9VQUNfTUFTSykpOyAwOyB9KQoKCgoKCiNkZWZpbmUgR0VU
X1VOQUxJR05fQ1RMKHRhc2ssIGFkZHIpICh7IHB1dF91c2VyKCgodGFzayktPnRocmVhZC5mbGFn
cyAmIElBNjRfVEhSRUFEX1VBQ19NQVNLKSA+PiBJQTY0X1RIUkVBRF9VQUNfU0hJRlQsIChpbnQg
KikgKGFkZHIpKTsgfSkKCgoKCgpzdHJ1Y3Qgc2lnaW5mbzsKCnN0cnVjdCB0aHJlYWRfc3RydWN0
IHsKICAgICAgICBfX3U2NCBrc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICAg
ICBfX3U2NCBtYXBfYmFzZTsKICAgICAgICBfX3U2NCB0YXNrX3NpemU7CiAgICAgICAgc3RydWN0
IHNpZ2luZm8gKnNpZ2luZm87CgoKICAgICAgICBfX3U2NCBlZmxhZzsKICAgICAgICBfX3U2NCBm
c3I7CiAgICAgICAgX191NjQgZmNyOwogICAgICAgIF9fdTY0IGZpcjsKICAgICAgICBfX3U2NCBm
ZHI7CiAgICAgICAgX191NjQgY3NkOwogICAgICAgIF9fdTY0IHNzZDsKICAgICAgICBfX3U2NCB0
c3NkOwogICAgICAgIF9fdTY0IG9sZF9pb2I7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg
ICAgX191NjQgc2lnbWFzazsKICAgICAgICB9IHVuOwojZGVmaW5lIElOSVRfVEhSRUFEX0lBMzIg
MCwgMCwgMHgxNzgwMDAwMDAzN2ZVTEwsIDAsIDAsIDAsIDAsIDAsIDAsIHswfSwKCgoKCiAgICAg
ICAgX191NjQgcG1jWzMyXTsKICAgICAgICBfX3U2NCBwbWRbMzJdOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgcGZtX3BlbmRfbm90aWZ5OwogICAgICAgIHZvaWQgKnBmbV9jb250ZXh0OwojZGVmaW5l
IElOSVRfVEhSRUFEX1BNIHswLCB9LCB7MCwgfSwgMCwgMCwKCgoKICAgICAgICBfX3U2NCBkYnJb
OF07CiAgICAgICAgX191NjQgaWJyWzhdOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGZwaFs5
Nl07Cn07CgojZGVmaW5lIElOSVRfTU1BUCB7ICZpbml0X21tLCBQQUdFX09GRlNFVCwgUEFHRV9P
RkZTRVQgKyAweDEwMDAwMDAwLCBOVUxMLCBQQUdFX1NIQVJFRCwgVk1fUkVBRCB8IFZNX1dSSVRF
IHwgVk1fRVhFQywgMSwgTlVMTCwgTlVMTCB9CgoKCgojZGVmaW5lIElOSVRfVEhSRUFEIHsgMCwg
MCwgREVGQVVMVF9NQVBfQkFTRSwgREVGQVVMVF9UQVNLX1NJWkUsIDAsIElOSVRfVEhSRUFEX0lB
MzIgSU5JVF9USFJFQURfUE0gezAsIH0sIHswLCB9LCB7e3t7MH19fSwgfSB9CiMgMzg1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKI2RlZmluZSBzdGFydF90
aHJlYWQocmVncywgbmV3X2lwLCBuZXdfc3ApIGRvIHsgc2V0X2ZzKFVTRVJfRFMpOyBpYTY0X3Bz
cihyZWdzKS0+ZGZoID0gMTsgaWE2NF9wc3IocmVncyktPm1maCA9IDA7IGlhNjRfcHNyKHJlZ3Mp
LT5jcGwgPSAzOyBpYTY0X3BzcihyZWdzKS0+cmkgPSAwOyBpYTY0X3BzcihyZWdzKS0+aXMgPSAw
OyByZWdzLT5jcl9paXAgPSBuZXdfaXA7IHJlZ3MtPmFyX3JzYyA9IDB4ZjsgcmVncy0+YXJfcm5h
dCA9IDA7IHJlZ3MtPmFyX2JzcHN0b3JlID0gSUE2NF9SQlNfQk9UOyByZWdzLT5hcl9mcHNyID0g
RlBTUl9ERUZBVUxUOyByZWdzLT5sb2FkcnMgPSAwOyByZWdzLT5yOCA9IGN1cnJlbnQtPm1tLT5k
dW1wYWJsZTsgcmVncy0+cjEyID0gbmV3X3NwIC0gMTY7IGlmICghX19idWlsdGluX2V4cGVjdCAo
Y3VycmVudC0+bW0tPmR1bXBhYmxlLCAxKSkgeyByZWdzLT5hcl9wZnMgPSAwOyByZWdzLT5wciA9
IDA7IHJlZ3MtPmI2ID0gMDsgcmVncy0+cjEgPSAwOyByZWdzLT5yMiA9IDA7IHJlZ3MtPnIzID0g
MDsgcmVncy0+cjEzID0gMDsgcmVncy0+cjE0ID0gMDsgcmVncy0+cjE1ID0gMDsgcmVncy0+cjkg
PSAwOyByZWdzLT5yMTEgPSAwOyByZWdzLT5yMTYgPSAwOyByZWdzLT5yMTcgPSAwOyByZWdzLT5y
MTggPSAwOyByZWdzLT5yMTkgPSAwOyByZWdzLT5yMjAgPSAwOyByZWdzLT5yMjEgPSAwOyByZWdz
LT5yMjIgPSAwOyByZWdzLT5yMjMgPSAwOyByZWdzLT5yMjQgPSAwOyByZWdzLT5yMjUgPSAwOyBy
ZWdzLT5yMjYgPSAwOyByZWdzLT5yMjcgPSAwOyByZWdzLT5yMjggPSAwOyByZWdzLT5yMjkgPSAw
OyByZWdzLT5yMzAgPSAwOyByZWdzLT5yMzEgPSAwOyByZWdzLT5hcl9jY3YgPSAwOyByZWdzLT5i
MCA9IDA7IHJlZ3MtPmI3ID0gMDsgcmVncy0+ZjYudS5iaXRzWzBdID0gMDsgcmVncy0+ZjYudS5i
aXRzWzFdID0gMDsgcmVncy0+ZjcudS5iaXRzWzBdID0gMDsgcmVncy0+ZjcudS5iaXRzWzFdID0g
MDsgcmVncy0+ZjgudS5iaXRzWzBdID0gMDsgcmVncy0+ZjgudS5iaXRzWzFdID0gMDsgcmVncy0+
ZjkudS5iaXRzWzBdID0gMDsgcmVncy0+ZjkudS5iaXRzWzFdID0gMDsgfSB9IHdoaWxlICgwKQoj
IDQyOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0cnVj
dCBtbV9zdHJ1Y3Q7CnN0cnVjdCB0YXNrX3N0cnVjdDsKCgoKCgoKCiAgZXh0ZXJuIHZvaWQgcmVs
ZWFzZV90aHJlYWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiMgNDU3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJuIGludCBrZXJuZWxfdGhy
ZWFkX1JzbXBfN2U5ZWJiMDUgKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIHVuc2lnbmVk
IGxvbmcgZmxhZ3MpOwoKCiNkZWZpbmUgY29weV9zZWdtZW50cyh0c2ssIG1tKSBkbyB7IH0gd2hp
bGUgKDApCiNkZWZpbmUgcmVsZWFzZV9zZWdtZW50cyhtbSkgZG8geyB9IHdoaWxlICgwKQoKCmV4
dGVybiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbiAoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKCgoj
ZGVmaW5lIEtTVEtfRUlQKHRzaykgKHsgc3RydWN0IHB0X3JlZ3MgKl9yZWdzID0gaWE2NF90YXNr
X3JlZ3ModHNrKTsgX3JlZ3MtPmNyX2lpcCArIGlhNjRfcHNyKF9yZWdzKS0+cmk7IH0pCgoKCgoK
CiNkZWZpbmUgS1NUS19FU1AodHNrKSAoKHRzayktPnRocmVhZC5rc3ApCgpzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGxvbmcKaWE2NF9nZXRfa3IgKHVuc2lnbmVkIGxvbmcgcmVnbnVtKQp7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyByOwoKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAgICAgICAg
ICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92ICUwPWFyLmswIiA6ICI9ciIocikpOyBicmVh
azsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rMSIgOiAi
PXIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yg
JTA9YXIuazIiIDogIj1yIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzogYXNtIHZv
bGF0aWxlICgibW92ICUwPWFyLmszIiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBj
YXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rNCIgOiAiPXIiKHIpKTsgYnJlYWs7CiAg
ICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgJTA9YXIuazUiIDogIj1yIihy
KSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92ICUwPWFy
Lms2IiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2b2xhdGls
ZSAoIm1vdiAlMD1hci5rNyIgOiAiPXIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJl
dHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfa3IgKHVuc2lnbmVkIGxvbmcg
cmVnbnVtLCB1bnNpZ25lZCBsb25nIHIpCnsKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAg
ICAgICAgICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92IGFyLmswPSUwIiA6OiAiciIocikp
OyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rMT0l
MCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUg
KCJtb3YgYXIuazI9JTAiIDo6ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzog
YXNtIHZvbGF0aWxlICgibW92IGFyLmszPSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAg
ICAgICBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rND0lMCIgOjogInIiKHIpKTsgYnJl
YWs7CiAgICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgYXIuazU9JTAiIDo6
ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92
IGFyLms2PSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2
b2xhdGlsZSAoIm1vdiBhci5rNz0lMCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQp9CiMg
NTI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJu
IHZvaWQgX19pYTY0X2luaXRfZnB1ICh2b2lkKTsKZXh0ZXJuIHZvaWQgX19pYTY0X3NhdmVfZnB1
IChzdHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgX19pYTY0X2xvYWRfZnB1IChz
dHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgaWE2NF9zYXZlX2RlYnVnX3JlZ3Mg
KHVuc2lnbmVkIGxvbmcgKnNhdmVfYXJlYSk7CmV4dGVybiB2b2lkIGlhNjRfbG9hZF9kZWJ1Z19y
ZWdzICh1bnNpZ25lZCBsb25nICpzYXZlX2FyZWEpOwoKCmV4dGVybiB2b2lkIGlhMzJfc2F2ZV9z
dGF0ZSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWEzMl9sb2FkX3N0
YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoKCgpleHRlcm4gdm9pZCBpYTY0X3NhdmVf
cG1fcmVncyAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWE2NF9sb2Fk
X3BtX3JlZ3MgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CgoKI2RlZmluZSBpYTY0X2ZwaF9l
bmFibGUoKSBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1l
bW9yeSIpOwojZGVmaW5lIGlhNjRfZnBoX2Rpc2FibGUoKSBhc20gdm9sYXRpbGUgKCI7OyBzc20g
cHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9yeSIpOwoKCnN0YXRpYyBpbmxpbmUgdm9pZApp
YTY0X2luaXRfZnB1ICh2b2lkKSB7CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgcnNtIHBzci5k
Zmg7OyBzcmx6LmQ7OyIgOjo6ICJtZW1vcnkiKTs7CiAgICAgICAgX19pYTY0X2luaXRfZnB1KCk7
CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgc3NtIHBzci5kZmg7OyBzcmx6LmQ7OyIgOjo6ICJt
ZW1vcnkiKTs7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zYXZlX2ZwdSAoc3RydWN0IGlh
NjRfZnByZWcgKmZwaCkgewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHJzbSBwc3IuZGZoOzsg
c3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7OwogICAgICAgIF9faWE2NF9zYXZlX2ZwdShmcGgpOwog
ICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNzbSBwc3IuZGZoOzsgc3Jsei5kOzsiIDo6OiAibWVt
b3J5Iik7Owp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfbG9hZF9mcHUgKHN0cnVjdCBpYTY0
X2ZwcmVnICpmcGgpIHsKICAgICAgICBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNy
bHouZDs7IiA6OjogIm1lbW9yeSIpOzsKICAgICAgICBfX2lhNjRfbG9hZF9mcHUoZnBoKTsKICAg
ICAgICBhc20gdm9sYXRpbGUgKCI7OyBzc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9y
eSIpOzsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfZmMgKHZvaWQgKmFkZHIpCnsKICAgICAg
ICBhc20gdm9sYXRpbGUgKCJmYyAlMCIgOjogInIiKGFkZHIpIDogIm1lbW9yeSIpOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKaWE2NF9zeW5jX2kgKHZvaWQpCnsKICAgICAgICBhc20gdm9sYXRpbGUg
KCI7OyBzeW5jLmkiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3Ny
bHpfaSAodm9pZCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNybHouaSA7OyIgOjo6ICJt
ZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc3Jsel9kICh2b2lkKQp7CiAgICAg
ICAgYXNtIHZvbGF0aWxlICgiOzsgc3Jsei5kIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fdTY0CmlhNjRfZ2V0X3JyIChfX3U2NCByZWdfYml0cykKewogICAgICAgIF9fdTY0IHI7
CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXJyWyUxXSIgOiAiPXIiKHIpIDogInIiKHJl
Z19iaXRzKSA6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gcjsKfQoKc3RhdGljIGlubGluZSB2
b2lkCmlhNjRfc2V0X3JyIChfX3U2NCByZWdfYml0cywgX191NjQgcnJfdmFsKQp7CiAgICAgICAg
YXNtIHZvbGF0aWxlICgibW92IHJyWyUwXT0lMSIgOjogInIiKHJlZ19iaXRzKSwgInIiKHJyX3Zh
bCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZGNyICh2b2lk
KQp7CiAgICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IuZGNy
IiA6ICI9ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2
NF9zZXRfZGNyIChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuZGNy
PSUwOzsiIDo6ICJyIih2YWwpIDogIm1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0K
CnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfbGlkICh2b2lkKQp7CiAgICAgICAgX191NjQg
cjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IubGlkIiA6ICI9ciIocikpOwogICAg
ICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnZhbGEgKHZvaWQpCnsK
ICAgICAgICBhc20gdm9sYXRpbGUgKCJpbnZhbGEiIDo6OiAibWVtb3J5Iik7Cn0KCgoKCgojZGVm
aW5lIGlhNjRfY2xlYXJfaWMoZmxhZ3MpIGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1wc3I7OyByc20g
cHNyLmkgfCBwc3IuaWM7OyBzcmx6Lmk7OyIgOiAiPXIiKGZsYWdzKSA6OiAibWVtb3J5Iik7CgoK
CgoKCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2
NCB0cl9udW0sCiAgICAgICAgICBfX3U2NCB2bWFkZHIsIF9fdTY0IHB0ZSwKICAgICAgICAgIF9f
dTY0IGxvZ19wYWdlX3NpemUpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuaXRpcj0l
MCIgOjogInIiKGxvZ19wYWdlX3NpemUgPDwgMikgOiAibWVtb3J5Iik7CiAgICAgICAgYXNtIHZv
bGF0aWxlICgibW92IGNyLmlmYT0lMDs7IiA6OiAiciIodm1hZGRyKSA6ICJtZW1vcnkiKTsKICAg
ICAgICBpZiAodGFyZ2V0X21hc2sgJiAweDEpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUg
KCJpdHIuaSBpdHJbJTBdPSUxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDo6ICJyIih0cl9udW0pLCAiciIocHRlKSA6ICJtZW1vcnkiKTsKICAgICAgICBpZiAodGFyZ2V0
X21hc2sgJiAweDIpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUgKCI7O2l0ci5kIGR0clsl
MF09JTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjogInIiKHRyX251
bSksICJyIihwdGUpIDogIm1lbW9yeSIpOwp9CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRf
aXRjIChfX3U2NCB0YXJnZXRfbWFzaywgX191NjQgdm1hZGRyLCBfX3U2NCBwdGUsCiAgICAgICAg
ICBfX3U2NCBsb2dfcGFnZV9zaXplKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml0
aXI9JTAiIDo6ICJyIihsb2dfcGFnZV9zaXplIDw8IDIpIDogIm1lbW9yeSIpOwogICAgICAgIGFz
bSB2b2xhdGlsZSAoIm1vdiBjci5pZmE9JTA7OyIgOjogInIiKHZtYWRkcikgOiAibWVtb3J5Iik7
CgogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MSkKICAgICAgICAgICAgICAgIGFzbSB2b2xh
dGlsZSAoIml0Yy5pICUwOzsiIDo6ICJyIihwdGUpIDogIm1lbW9yeSIpOwogICAgICAgIGlmICh0
YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7aXRjLmQg
JTA7OyIgOjogInIiKHB0ZSkgOiAibWVtb3J5Iik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQK
aWE2NF9wdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2NCB2bWFkZHIsIF9fdTY0IGxvZ19zaXpl
KQp7CiAgICAgICAgaWYgKHRhcmdldF9tYXNrICYgMHgxKQogICAgICAgICAgICAgICAgYXNtIHZv
bGF0aWxlICgicHRyLmkgJTAsJTEiIDo6ICJyIih2bWFkZHIpLCAiciIobG9nX3NpemUgPDwgMikp
OwogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xh
dGlsZSAoInB0ci5kICUwLCUxIiA6OiAiciIodm1hZGRyKSwgInIiKGxvZ19zaXplIDw8IDIpKTsK
fQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pdmEgKHZvaWQgKml2dF9hZGRyKQp7CiAg
ICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml2YT0lMDs7IHNybHouaTs7IiA6OiAiciIoaXZ0
X2FkZHIpIDogIm1lbW9yeSIpOwp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3B0YSAo
X191NjQgcHRhKQp7CgogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5wdGE9JTA7OyBzcmx6
Lmk7OyIgOjogInIiKHB0YSkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2
NF9nZXRfY3B1aWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHI7CgogICAgICAgIGFz
bSAoIm1vdiAlMD1jcHVpZFslcjFdIiA6ICI9ciIocikgOiAick8iKHJlZ251bSkpOwogICAgICAg
IHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9lb2kgKHZvaWQpCnsKICAgICAg
ICBhc20gKCJtb3YgY3IuZW9pPXIwOzsgc3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIwICh1bnNpZ25lZCBsb25nIHZhbCkKewogICAgICAg
IGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIwPSUwOzsgc3Jsei5kIiA6OiAiciIodmFsKSA6ICJt
ZW1vcnkiKTsKfQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIxICh1bnNpZ25lZCBs
b25nIHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIxPSUwOzsgc3Jsei5k
IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0
X3BtdiAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLnBtdj0lMCIg
OjogInIiKHZhbCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRf
cG1jIChfX3U2NCByZWdudW0pCnsKICAgICAgICBfX3U2NCByZXR2YWw7CgogICAgICAgIGFzbSB2
b2xhdGlsZSAoIm1vdiAlMD1wbWNbJTFdIiA6ICI9ciIocmV0dmFsKSA6ICJyIihyZWdudW0pKTsK
ICAgICAgICByZXR1cm4gcmV0dmFsOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfcG1j
IChfX3U2NCByZWdudW0sIF9fdTY0IHZhbHVlKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92
IHBtY1slMF09JTEiIDo6ICJyIihyZWdudW0pLCAiciIodmFsdWUpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX3U2NAppYTY0X2dldF9wbWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHJldHZh
bDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXBtZFslMV0iIDogIj1yIihyZXR2YWwp
IDogInIiKHJlZ251bSkpOwogICAgICAgIHJldHVybiByZXR2YWw7Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZAppYTY0X3NldF9wbWQgKF9fdTY0IHJlZ251bSwgX191NjQgdmFsdWUpCnsKICAgICAgICBh
c20gdm9sYXRpbGUgKCJtb3YgcG1kWyUwXT0lMSIgOjogInIiKHJlZ251bSksICJyIih2YWx1ZSkp
Owp9CgoKCgoKc3RhdGljIGlubGluZSBfX3U2NAppYTY0X3VuYXRfcG9zICh2b2lkICpzcGlsbF9h
ZGRyKQp7CiAgICAgICAgcmV0dXJuICgoX191NjQpIHNwaWxsX2FkZHIgPj4gMykgJiAweDNmOwp9
CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3VuYXQgKF9fdTY0ICp1bmF0LCB2b2lk
ICpzcGlsbF9hZGRyLCB1bnNpZ25lZCBsb25nIG5hdCkKewogICAgICAgIF9fdTY0IGJpdCA9IGlh
NjRfdW5hdF9wb3Moc3BpbGxfYWRkcik7CiAgICAgICAgX191NjQgbWFzayA9IDFVTCA8PCBiaXQ7
CgogICAgICAgICp1bmF0ID0gKCp1bmF0ICYgfm1hc2spIHwgKG5hdCA8PCBiaXQpOwp9CgoKCgoK
c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCnRocmVhZF9zYXZlZF9wYyAoc3RydWN0IHRocmVh
ZF9zdHJ1Y3QgKnQpCnsKICAgICAgICBzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gaW5mbzsKICAgICAg
ICB1bnNpZ25lZCBsb25nIGlwOwoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwID0gKHZv
aWQgKikgKCh1bnNpZ25lZCBsb25nKSB0IC0gMTQ1Nik7CgogICAgICAgIHVud19pbml0X2Zyb21f
YmxvY2tlZF90YXNrKCZpbmZvLCBwKTsKICAgICAgICBpZiAodW53X3Vud2luZCgmaW5mbykgPCAw
KQogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgdW53X2dldF9pcCgmaW5mbywgJmlw
KTsKICAgICAgICByZXR1cm4gaXA7Cn0KCgoKCiNkZWZpbmUgY3VycmVudF90ZXh0X2FkZHIoKSAo
eyB2b2lkICpfcGM7IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1pcCIgOiAiPXIiIChfcGMpKTsgX3Bj
OyB9KQoKCiNkZWZpbmUgVEhSRUFEX1NJWkUgSUE2NF9TVEtfT0ZGU0VUCgojZGVmaW5lIGFsbG9j
X3Rhc2tfc3RydWN0KCkgKChzdHJ1Y3QgdGFza19zdHJ1Y3QgKikgX19nZXRfZnJlZV9wYWdlcyhH
RlBfS0VSTkVMLCBJQTY0X1RBU0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKQoKI2RlZmluZSBmcmVl
X3Rhc2tfc3RydWN0KHApIGZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpKHApLCBJQTY0X1RBU0tf
U1RSVUNUX0xPR19OVU1fUEFHRVMpCiNkZWZpbmUgZ2V0X3Rhc2tfc3RydWN0KHRzaykgYXRvbWlj
X2luYygmdmlydF90b19wYWdlKHRzayktPmNvdW50KQoKI2RlZmluZSBpbml0X3Rhc2sgKGluaXRf
dGFza191bmlvbi50YXNrKQojZGVmaW5lIGluaXRfc3RhY2sgKGluaXRfdGFza191bmlvbi5zdGFj
aykKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9jbWN2IChfX3U2NCB2YWwpCnsKICAg
ICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuY21jdj0lMCIgOjogInIiKHZhbCkgOiAibWVtb3J5
Iik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfY21jdiAodm9pZCkKewogICAg
ICAgIF9fdTY0IHZhbDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPWNyLmNtY3YiIDog
Ij1yIih2YWwpIDo6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gdmFsOwp9CgpzdGF0aWMgaW5s
aW5lIF9fdTY0CmlhNjRfZ2V0X2l2ciAodm9pZCkKewogICAgICAgIF9fdTY0IHI7CiAgICAgICAg
YXNtIHZvbGF0aWxlICgic3Jsei5kOzsgbW92ICUwPWNyLml2cjs7IHNybHouZDs7IiA6ICI9ciIo
cikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfdHBy
IChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IudHByPSUwIiA6OiAi
ciIodmFsKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfdHByICh2b2lkKQp7CiAg
ICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IudHByIiA6ICI9
ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRf
aXJyMCAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMD0lMDs7
IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0
aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0X2lycjAgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7
CgoKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiAlMD1jci5pcnIwIiA6ICI9ciIodmFsKSk7CiAg
ICAgICAgcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X2lycjEgKF9f
dTY0IHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSgibW92IGNyLmlycjE9JTA7OyIgOjogInIi
KHZhbCkgOiAibWVtb3J5Iik7CiAgICAgICAgaWE2NF9zcmx6X2QoKTsKfQoKc3RhdGljIGlubGlu
ZSBfX3U2NAppYTY0X2dldF9pcnIxICh2b2lkKQp7CiAgICAgICAgX191NjQgdmFsOwoKCiAgICAg
ICAgYXNtIHZvbGF0aWxlKCJtb3YgJTA9Y3IuaXJyMSIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJl
dHVybiB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pcnIyIChfX3U2NCB2YWwp
CnsKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiBjci5pcnIyPSUwOzsiIDo6ICJyIih2YWwpIDog
Im1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQK
aWE2NF9nZXRfaXJyMiAodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsKCgogICAgICAgIGFzbSB2
b2xhdGlsZSgibW92ICUwPWNyLmlycjIiIDogIj1yIih2YWwpKTsKICAgICAgICByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfaXJyMyAoX191NjQgdmFsKQp7CiAgICAg
ICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMz0lMDs7IiA6OiAiciIodmFsKSA6ICJtZW1vcnki
KTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0
X2lycjMgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7CgoKICAgICAgICBhc20gdm9sYXRpbGUg
KCJtb3YgJTA9Y3IuaXJyMyIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJldHVybiB2YWw7Cn0KCnN0
YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZ3Aodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsK
CiAgICAgICAgYXNtICgibW92ICUwPWdwIiA6ICI9ciIodmFsKSk7CiAgICAgICAgcmV0dXJuIHZh
bDsKfQojIDk1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgi
CiNkZWZpbmUgaWE2NF9yb3RyKHcsIG4pICh7IF9fdTY0IHJlc3VsdDsgYXNtICgic2hycCAlMD0l
MSwlMSwlMiIgOiAiPXIiKHJlc3VsdCkgOiAiciIodyksICJpIihuKSk7IHJlc3VsdDsgfSkKCgoK
CgoKCiNkZWZpbmUgaWE2NF9yb3RsKHcsIG4pIGlhNjRfcm90cigodyksKDY0KS0obikpCgpzdGF0
aWMgaW5saW5lIF9fdTY0CmlhNjRfdGhhc2ggKF9fdTY0IGFkZHIpCnsKICAgICAgICBfX3U2NCBy
ZXN1bHQ7CiAgICAgICAgYXNtICgidGhhc2ggJTA9JTEiIDogIj1yIihyZXN1bHQpIDogInIiIChh
ZGRyKSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKfQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgoKCgoKI2RlZmluZSBXQUlUUVVFVUVfREVCVUcgMAoK
c3RydWN0IF9fd2FpdF9xdWV1ZSB7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwojZGVmaW5l
IFdRX0ZMQUdfRVhDTFVTSVZFIDB4MDEKIHN0cnVjdCB0YXNrX3N0cnVjdCAqIHRhc2s7CiAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCB0YXNrX2xpc3Q7CgoKCgp9Owp0eXBlZGVmIHN0cnVjdCBfX3dh
aXRfcXVldWUgd2FpdF9xdWV1ZV90OwoKCgoKCgoKI2RlZmluZSBVU0VfUldfV0FJVF9RVUVVRV9T
UElOTE9DSyAwCiMgNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5o
IgojZGVmaW5lIHdxX2xvY2tfdCBzcGlubG9ja190CiNkZWZpbmUgV0FJVFFVRVVFX1JXX0xPQ0tf
VU5MT0NLRUQgU1BJTl9MT0NLX1VOTE9DS0VECgojZGVmaW5lIHdxX3JlYWRfbG9jayBzcGluX2xv
Y2sKI2RlZmluZSB3cV9yZWFkX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2ZQojZGVmaW5l
IHdxX3JlYWRfdW5sb2NrIHNwaW5fdW5sb2NrCiNkZWZpbmUgd3FfcmVhZF91bmxvY2tfaXJxcmVz
dG9yZSBzcGluX3VubG9ja19pcnFyZXN0b3JlCiNkZWZpbmUgd3Ffd3JpdGVfbG9ja19pcnEgc3Bp
bl9sb2NrX2lycQojZGVmaW5lIHdxX3dyaXRlX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2
ZQojZGVmaW5lIHdxX3dyaXRlX3VubG9ja19pcnFyZXN0b3JlIHNwaW5fdW5sb2NrX2lycXJlc3Rv
cmUKI2RlZmluZSB3cV93cml0ZV91bmxvY2sgc3Bpbl91bmxvY2sKCgpzdHJ1Y3QgX193YWl0X3F1
ZXVlX2hlYWQgewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkIHRhc2tfbGlzdDsKCgoKCn07CnR5cGVkZWYgc3RydWN0IF9fd2FpdF9xdWV1ZV9oZWFkIHdh
aXRfcXVldWVfaGVhZF90OwojIDExNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC93YWl0LmgiCiNkZWZpbmUgV1FfQlVHKCkKI2RlZmluZSBDSEVDS19NQUdJQyh4KQojZGVmaW5l
IENIRUNLX01BR0lDX1dRSEVBRCh4KQojZGVmaW5lIFdRX0NIRUNLX0xJU1RfSEVBRChsaXN0KQoj
ZGVmaW5lIFdRX05PVEVfV0FLRVIodHNrKQojIDEzMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC93YWl0LmgiCiNkZWZpbmUgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKQoj
ZGVmaW5lIF9fV0FJVFFVRVVFX0hFQURfREVCVUdfSU5JVChuYW1lKQoKCiNkZWZpbmUgX19XQUlU
UVVFVUVfSU5JVElBTElaRVIobmFtZSwgdHNrKSB7IHRhc2s6IHRzaywgdGFza19saXN0OiB7IE5V
TEwsIE5VTEwgfSwgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKX0KCgoKCiNkZWZpbmUgREVD
TEFSRV9XQUlUUVVFVUUobmFtZSwgdHNrKSB3YWl0X3F1ZXVlX3QgbmFtZSA9IF9fV0FJVFFVRVVF
X0lOSVRJQUxJWkVSKG5hbWUsIHRzaykKCgojZGVmaW5lIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJ
QUxJWkVSKG5hbWUpIHsgbG9jazogV0FJVFFVRVVFX1JXX0xPQ0tfVU5MT0NLRUQsIHRhc2tfbGlz
dDogeyAmKG5hbWUpLnRhc2tfbGlzdCwgJihuYW1lKS50YXNrX2xpc3QgfSwgX19XQUlUUVVFVUVf
SEVBRF9ERUJVR19JTklUKG5hbWUpfQoKCgoKI2RlZmluZSBERUNMQVJFX1dBSVRfUVVFVUVfSEVB
RChuYW1lKSB3YWl0X3F1ZXVlX2hlYWRfdCBuYW1lID0gX19XQUlUX1FVRVVFX0hFQURfSU5JVElB
TElaRVIobmFtZSkKCgpzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF93YWl0cXVldWVfaGVhZCh3YWl0
X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKICAgICAgICBxLT5sb2NrID0gKHNwaW5sb2NrX3QpIHsg
MCB9OwogICAgICAgIGRvIHsgKCZxLT50YXNrX2xpc3QpLT5uZXh0ID0gKCZxLT50YXNrX2xpc3Qp
OyAoJnEtPnRhc2tfbGlzdCktPnByZXYgPSAoJnEtPnRhc2tfbGlzdCk7IH0gd2hpbGUgKDApOwoK
CgoKfQoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfd2FpdHF1ZXVlX2VudHJ5KHdhaXRfcXVldWVf
dCAqcSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CgoKCgogICAgICAgIHEtPmZsYWdzID0gMDsK
ICAgICAgICBxLT50YXNrID0gcDsKCgoKfQoKc3RhdGljIGlubGluZSBpbnQgd2FpdHF1ZXVlX2Fj
dGl2ZSh3YWl0X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKCgogICAgICAgIHJldHVybiAhbGlzdF9l
bXB0eSgmcS0+dGFza19saXN0KTsKfQoKc3RhdGljIGlubGluZSB2b2lkIF9fYWRkX3dhaXRfcXVl
dWUod2FpdF9xdWV1ZV9oZWFkX3QgKmhlYWQsIHdhaXRfcXVldWVfdCAqbmV3KQp7CiMgMTk4ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKICAgICAgICBsaXN0X2Fk
ZCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3QpOwp9CgoKCgpzdGF0aWMgaW5saW5l
IHZvaWQgX19hZGRfd2FpdF9xdWV1ZV90YWlsKHdhaXRfcXVldWVfaGVhZF90ICpoZWFkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3F1ZXVlX3Qg
Km5ldykKewojIDIxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0Lmgi
CiAgICAgICAgbGlzdF9hZGRfdGFpbCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3Qp
Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQgX19yZW1vdmVfd2FpdF9xdWV1ZSh3YWl0X3F1ZXVlX2hl
YWRfdCAqaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3YWl0X3F1ZXVlX3QgKm9sZCkKewoKCgoKCiAgICAgICAgbGlzdF9kZWwoJm9s
ZC0+dGFza19saXN0KTsKfQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgi
IDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC92ZnMuaCIgMQoKI2RlZmluZSBfTElO
VVhfVkZTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3RhdGZzLmgi
IDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NUQVRGU19ICgoKCgoKCgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9zdGF0ZnMuaCIgMgogdHlwZWRlZiBfX2tlcm5lbF9mc2lkX3QgZnNpZF90
OwoKCnN0cnVjdCBzdGF0ZnMgewogICAgICAgIGxvbmcgZl90eXBlOwogICAgICAgIGxvbmcgZl9i
c2l6ZTsKICAgICAgICBsb25nIGZfYmxvY2tzOwogICAgICAgIGxvbmcgZl9iZnJlZTsKICAgICAg
ICBsb25nIGZfYmF2YWlsOwogICAgICAgIGxvbmcgZl9maWxlczsKICAgICAgICBsb25nIGZfZmZy
ZWU7CiAgICAgICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKICAgICAgICBsb25nIGZfbmFtZWxl
bjsKICAgICAgICBsb25nIGZfc3BhcmVbNl07Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC92ZnMuaCIgMgojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25l
dC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiCiNk
ZWZpbmUgX0xJTlVYX05FVF9ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvY29uZmlnLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u
ZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0Lmgi
IDEKCiNkZWZpbmUgX0xJTlVYX1NPQ0tFVF9ICgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vc29ja2V0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NPQ0tFVF9ICiMgMTEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tldC5oIgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRf
U09DS0lPU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3Mu
aCIKI2RlZmluZSBGSU9TRVRPV04gMHg4OTAxCiNkZWZpbmUgU0lPQ1NQR1JQIDB4ODkwMgojZGVm
aW5lIEZJT0dFVE9XTiAweDg5MDMKI2RlZmluZSBTSU9DR1BHUlAgMHg4OTA0CiNkZWZpbmUgU0lP
Q0FUTUFSSyAweDg5MDUKI2RlZmluZSBTSU9DR1NUQU1QIDB4ODkwNgojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zb2NrZXQuaCIgMgoKCiNkZWZpbmUgU09MX1NPQ0tFVCAx
CgojZGVmaW5lIFNPX0RFQlVHIDEKI2RlZmluZSBTT19SRVVTRUFERFIgMgojZGVmaW5lIFNPX1RZ
UEUgMwojZGVmaW5lIFNPX0VSUk9SIDQKI2RlZmluZSBTT19ET05UUk9VVEUgNQojZGVmaW5lIFNP
X0JST0FEQ0FTVCA2CiNkZWZpbmUgU09fU05EQlVGIDcKI2RlZmluZSBTT19SQ1ZCVUYgOAojZGVm
aW5lIFNPX0tFRVBBTElWRSA5CiNkZWZpbmUgU09fT09CSU5MSU5FIDEwCiNkZWZpbmUgU09fTk9f
Q0hFQ0sgMTEKI2RlZmluZSBTT19QUklPUklUWSAxMgojZGVmaW5lIFNPX0xJTkdFUiAxMwojZGVm
aW5lIFNPX0JTRENPTVBBVCAxNAoKI2RlZmluZSBTT19QQVNTQ1JFRCAxNgojZGVmaW5lIFNPX1BF
RVJDUkVEIDE3CiNkZWZpbmUgU09fUkNWTE9XQVQgMTgKI2RlZmluZSBTT19TTkRMT1dBVCAxOQoj
ZGVmaW5lIFNPX1JDVlRJTUVPIDIwCiNkZWZpbmUgU09fU05EVElNRU8gMjEKCgojZGVmaW5lIFNP
X1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OIDIyCiNkZWZpbmUgU09fU0VDVVJJVFlfRU5DUllQVElP
Tl9UUkFOU1BPUlQgMjMKI2RlZmluZSBTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksgMjQK
CiNkZWZpbmUgU09fQklORFRPREVWSUNFIDI1CgoKI2RlZmluZSBTT19BVFRBQ0hfRklMVEVSIDI2
CiNkZWZpbmUgU09fREVUQUNIX0ZJTFRFUiAyNwoKI2RlZmluZSBTT19QRUVSTkFNRSAyOAojZGVm
aW5lIFNPX1RJTUVTVEFNUCAyOQojZGVmaW5lIFNDTV9USU1FU1RBTVAgU09fVElNRVNUQU1QCgoj
ZGVmaW5lIFNPX0FDQ0VQVENPTk4gMzAKCgoKCiNkZWZpbmUgU09DS19TVFJFQU0gMQojZGVmaW5l
IFNPQ0tfREdSQU0gMgojZGVmaW5lIFNPQ0tfUkFXIDMKI2RlZmluZSBTT0NLX1JETSA0CiNkZWZp
bmUgU09DS19TRVFQQUNLRVQgNQojZGVmaW5lIFNPQ0tfUEFDS0VUIDEwCgoKCgojZGVmaW5lIFNP
Q0tfTUFYIChTT0NLX1BBQ0tFVCsxKQojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvc29ja2V0LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3NvY2tpb3MuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nv
Y2tpb3MuaCIKI2RlZmluZSBfTElOVVhfU09DS0lPU19ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3NvY2tpb3MuaCIgMgoKCiNkZWZpbmUgU0lPQ0lOUSBGSU9OUkVBRAojZGVm
aW5lIFNJT0NPVVRRIFRJT0NPVVRRCgoKI2RlZmluZSBTSU9DQUREUlQgMHg4OTBCCiNkZWZpbmUg
U0lPQ0RFTFJUIDB4ODkwQwojZGVmaW5lIFNJT0NSVE1TRyAweDg5MEQKCgojZGVmaW5lIFNJT0NH
SUZOQU1FIDB4ODkxMAojZGVmaW5lIFNJT0NTSUZMSU5LIDB4ODkxMQojZGVmaW5lIFNJT0NHSUZD
T05GIDB4ODkxMgojZGVmaW5lIFNJT0NHSUZGTEFHUyAweDg5MTMKI2RlZmluZSBTSU9DU0lGRkxB
R1MgMHg4OTE0CiNkZWZpbmUgU0lPQ0dJRkFERFIgMHg4OTE1CiNkZWZpbmUgU0lPQ1NJRkFERFIg
MHg4OTE2CiNkZWZpbmUgU0lPQ0dJRkRTVEFERFIgMHg4OTE3CiNkZWZpbmUgU0lPQ1NJRkRTVEFE
RFIgMHg4OTE4CiNkZWZpbmUgU0lPQ0dJRkJSREFERFIgMHg4OTE5CiNkZWZpbmUgU0lPQ1NJRkJS
REFERFIgMHg4OTFhCiNkZWZpbmUgU0lPQ0dJRk5FVE1BU0sgMHg4OTFiCiNkZWZpbmUgU0lPQ1NJ
Rk5FVE1BU0sgMHg4OTFjCiNkZWZpbmUgU0lPQ0dJRk1FVFJJQyAweDg5MWQKI2RlZmluZSBTSU9D
U0lGTUVUUklDIDB4ODkxZQojZGVmaW5lIFNJT0NHSUZNRU0gMHg4OTFmCiNkZWZpbmUgU0lPQ1NJ
Rk1FTSAweDg5MjAKI2RlZmluZSBTSU9DR0lGTVRVIDB4ODkyMQojZGVmaW5lIFNJT0NTSUZNVFUg
MHg4OTIyCiNkZWZpbmUgU0lPQ1NJRk5BTUUgMHg4OTIzCiNkZWZpbmUgU0lPQ1NJRkhXQUREUiAw
eDg5MjQKI2RlZmluZSBTSU9DR0lGRU5DQVAgMHg4OTI1CiNkZWZpbmUgU0lPQ1NJRkVOQ0FQIDB4
ODkyNgojZGVmaW5lIFNJT0NHSUZIV0FERFIgMHg4OTI3CiNkZWZpbmUgU0lPQ0dJRlNMQVZFIDB4
ODkyOQojZGVmaW5lIFNJT0NTSUZTTEFWRSAweDg5MzAKI2RlZmluZSBTSU9DQURETVVMVEkgMHg4
OTMxCiNkZWZpbmUgU0lPQ0RFTE1VTFRJIDB4ODkzMgojZGVmaW5lIFNJT0NHSUZJTkRFWCAweDg5
MzMKI2RlZmluZSBTSU9HSUZJTkRFWCBTSU9DR0lGSU5ERVgKI2RlZmluZSBTSU9DU0lGUEZMQUdT
IDB4ODkzNAojZGVmaW5lIFNJT0NHSUZQRkxBR1MgMHg4OTM1CiNkZWZpbmUgU0lPQ0RJRkFERFIg
MHg4OTM2CiNkZWZpbmUgU0lPQ1NJRkhXQlJPQURDQVNUIDB4ODkzNwojZGVmaW5lIFNJT0NHSUZD
T1VOVCAweDg5MzgKCiNkZWZpbmUgU0lPQ0dJRkJSIDB4ODk0MAojZGVmaW5lIFNJT0NTSUZCUiAw
eDg5NDEKCiNkZWZpbmUgU0lPQ0dJRlRYUUxFTiAweDg5NDIKI2RlZmluZSBTSU9DU0lGVFhRTEVO
IDB4ODk0MwoKI2RlZmluZSBTSU9DR0lGRElWRVJUIDB4ODk0NAojZGVmaW5lIFNJT0NTSUZESVZF
UlQgMHg4OTQ1CgojZGVmaW5lIFNJT0NFVEhUT09MIDB4ODk0NgoKI2RlZmluZSBTSU9DR01JSVBI
WSAweDg5NDcKI2RlZmluZSBTSU9DR01JSVJFRyAweDg5NDgKI2RlZmluZSBTSU9DU01JSVJFRyAw
eDg5NDkKCgoKI2RlZmluZSBTSU9DREFSUCAweDg5NTMKI2RlZmluZSBTSU9DR0FSUCAweDg5NTQK
I2RlZmluZSBTSU9DU0FSUCAweDg5NTUKCgojZGVmaW5lIFNJT0NEUkFSUCAweDg5NjAKI2RlZmlu
ZSBTSU9DR1JBUlAgMHg4OTYxCiNkZWZpbmUgU0lPQ1NSQVJQIDB4ODk2MgoKCgojZGVmaW5lIFNJ
T0NHSUZNQVAgMHg4OTcwCiNkZWZpbmUgU0lPQ1NJRk1BUCAweDg5NzEKCgoKI2RlZmluZSBTSU9D
QURERExDSSAweDg5ODAKI2RlZmluZSBTSU9DREVMRExDSSAweDg5ODEKIyAxMTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2lvcy5oIgojZGVmaW5lIFNJT0NERVZQUklW
QVRFIDB4ODlGMAoKCgoKCiNkZWZpbmUgU0lPQ1BST1RPUFJJVkFURSAweDg5RTAKIyA4ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIgMQoKI2RlZmluZSBfX0xJTlVYX1VJT19I
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWlvLmgiIDIKIyAxOSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIKc3RydWN0IGlvdmVjCnsKICAgICAg
ICB2b2lkICppb3ZfYmFzZTsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgaW92X2xlbjsKfTsKCgoK
CgojZGVmaW5lIFVJT19GQVNUSU9WIDgKI2RlZmluZSBVSU9fTUFYSU9WIDEwMjQKIyA5ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0LmgiIDIKCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg
c2FfZmFtaWx5X3Q7CgoKCgoKc3RydWN0IHNvY2thZGRyIHsKICAgICAgICBzYV9mYW1pbHlfdCBz
YV9mYW1pbHk7CiAgICAgICAgY2hhciBzYV9kYXRhWzE0XTsKfTsKCnN0cnVjdCBsaW5nZXIgewog
ICAgICAgIGludCBsX29ub2ZmOwogICAgICAgIGludCBsX2xpbmdlcjsKfTsKCgoKCgoKCnN0cnVj
dCBtc2doZHIgewogICAgICAgIHZvaWQgKiBtc2dfbmFtZTsKICAgICAgICBpbnQgbXNnX25hbWVs
ZW47CiAgICAgICAgc3RydWN0IGlvdmVjICogbXNnX2lvdjsKICAgICAgICBfX2tlcm5lbF9zaXpl
X3QgbXNnX2lvdmxlbjsKICAgICAgICB2b2lkICogbXNnX2NvbnRyb2w7CiAgICAgICAgX19rZXJu
ZWxfc2l6ZV90IG1zZ19jb250cm9sbGVuOwogICAgICAgIHVuc2lnbmVkIG1zZ19mbGFnczsKfTsK
CgoKCgoKCnN0cnVjdCBjbXNnaGRyIHsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgY21zZ19sZW47
CiAgICAgICAgaW50IGNtc2dfbGV2ZWw7CiAgICAgICAgaW50IGNtc2dfdHlwZTsKfTsKCgoKCgoK
I2RlZmluZSBfX0NNU0dfTlhUSERSKGN0bCwgbGVuLCBjbXNnKSBfX2Ntc2dfbnh0aGRyKChjdGwp
LChsZW4pLChjbXNnKSkKI2RlZmluZSBDTVNHX05YVEhEUihtaGRyLCBjbXNnKSBjbXNnX254dGhk
cigobWhkciksIChjbXNnKSkKCiNkZWZpbmUgQ01TR19BTElHTihsZW4pICggKChsZW4pK3NpemVv
Zihsb25nKS0xKSAmIH4oc2l6ZW9mKGxvbmcpLTEpICkKCiNkZWZpbmUgQ01TR19EQVRBKGNtc2cp
ICgodm9pZCAqKSgoY2hhciAqKShjbXNnKSArIENNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNn
aGRyKSkpKQojZGVmaW5lIENNU0dfU1BBQ0UobGVuKSAoQ01TR19BTElHTihzaXplb2Yoc3RydWN0
IGNtc2doZHIpKSArIENNU0dfQUxJR04obGVuKSkKI2RlZmluZSBDTVNHX0xFTihsZW4pIChDTVNH
X0FMSUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCgojZGVmaW5lIF9fQ01TR19G
SVJTVEhEUihjdGwsIGxlbikgKChsZW4pID49IHNpemVvZihzdHJ1Y3QgY21zZ2hkcikgPyAoc3Ry
dWN0IGNtc2doZHIgKikoY3RsKSA6IChzdHJ1Y3QgY21zZ2hkciAqKU5VTEwpCgoKI2RlZmluZSBD
TVNHX0ZJUlNUSERSKG1zZykgX19DTVNHX0ZJUlNUSERSKChtc2cpLT5tc2dfY29udHJvbCwgKG1z
ZyktPm1zZ19jb250cm9sbGVuKQoKCgoKCgojZGVmaW5lIF9fS0lOTElORSBzdGF0aWMgaW5saW5l
CiMgMTAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIgpzdGF0
aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogX19jbXNnX254dGhkcih2b2lkICpfX2N0bCwgX19r
ZXJuZWxfc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgc3RydWN0IGNtc2do
ZHIgKiBfX3B0cjsKCiAgICAgICAgX19wdHIgPSAoc3RydWN0IGNtc2doZHIqKSgoKHVuc2lnbmVk
IGNoYXIgKikgX19jbXNnKSArICggKChfX2Ntc2ctPmNtc2dfbGVuKStzaXplb2YobG9uZyktMSkg
JiB+KHNpemVvZihsb25nKS0xKSApKTsKICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpKChjaGFy
KikoX19wdHIrMSkgLSAoY2hhciAqKSBfX2N0bCkgPiBfX3NpemUpCiAgICAgICAgICAgICAgICBy
ZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopMDsKCiAgICAgICAgcmV0dXJuIF9fcHRyOwp9CgpzdGF0
aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9f
bXNnLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgcmV0dXJuIF9fY21zZ19ueHRo
ZHIoX19tc2ctPm1zZ19jb250cm9sLCBfX21zZy0+bXNnX2NvbnRyb2xsZW4sIF9fY21zZyk7Cn0K
CgoKI2RlZmluZSBTQ01fUklHSFRTIDB4MDEKI2RlZmluZSBTQ01fQ1JFREVOVElBTFMgMHgwMgoj
ZGVmaW5lIFNDTV9DT05ORUNUIDB4MDMKCnN0cnVjdCB1Y3JlZCB7CiAgICAgICAgX191MzIgcGlk
OwogICAgICAgIF9fdTMyIHVpZDsKICAgICAgICBfX3UzMiBnaWQ7Cn07CgoKI2RlZmluZSBBRl9V
TlNQRUMgMAojZGVmaW5lIEFGX1VOSVggMQojZGVmaW5lIEFGX0xPQ0FMIDEKI2RlZmluZSBBRl9J
TkVUIDIKI2RlZmluZSBBRl9BWDI1IDMKI2RlZmluZSBBRl9JUFggNAojZGVmaW5lIEFGX0FQUExF
VEFMSyA1CiNkZWZpbmUgQUZfTkVUUk9NIDYKI2RlZmluZSBBRl9CUklER0UgNwojZGVmaW5lIEFG
X0FUTVBWQyA4CiNkZWZpbmUgQUZfWDI1IDkKI2RlZmluZSBBRl9JTkVUNiAxMAojZGVmaW5lIEFG
X1JPU0UgMTEKI2RlZmluZSBBRl9ERUNuZXQgMTIKI2RlZmluZSBBRl9ORVRCRVVJIDEzCiNkZWZp
bmUgQUZfU0VDVVJJVFkgMTQKI2RlZmluZSBBRl9LRVkgMTUKI2RlZmluZSBBRl9ORVRMSU5LIDE2
CiNkZWZpbmUgQUZfUk9VVEUgQUZfTkVUTElOSwojZGVmaW5lIEFGX1BBQ0tFVCAxNwojZGVmaW5l
IEFGX0FTSCAxOAojZGVmaW5lIEFGX0VDT05FVCAxOQojZGVmaW5lIEFGX0FUTVNWQyAyMAojZGVm
aW5lIEFGX1NOQSAyMgojZGVmaW5lIEFGX0lSREEgMjMKI2RlZmluZSBBRl9QUFBPWCAyNAojZGVm
aW5lIEFGX1dBTlBJUEUgMjUKI2RlZmluZSBBRl9CTFVFVE9PVEggMzEKI2RlZmluZSBBRl9NQVgg
MzIKCgojZGVmaW5lIFBGX1VOU1BFQyBBRl9VTlNQRUMKI2RlZmluZSBQRl9VTklYIEFGX1VOSVgK
I2RlZmluZSBQRl9MT0NBTCBBRl9MT0NBTAojZGVmaW5lIFBGX0lORVQgQUZfSU5FVAojZGVmaW5l
IFBGX0FYMjUgQUZfQVgyNQojZGVmaW5lIFBGX0lQWCBBRl9JUFgKI2RlZmluZSBQRl9BUFBMRVRB
TEsgQUZfQVBQTEVUQUxLCiNkZWZpbmUgUEZfTkVUUk9NIEFGX05FVFJPTQojZGVmaW5lIFBGX0JS
SURHRSBBRl9CUklER0UKI2RlZmluZSBQRl9BVE1QVkMgQUZfQVRNUFZDCiNkZWZpbmUgUEZfWDI1
IEFGX1gyNQojZGVmaW5lIFBGX0lORVQ2IEFGX0lORVQ2CiNkZWZpbmUgUEZfUk9TRSBBRl9ST1NF
CiNkZWZpbmUgUEZfREVDbmV0IEFGX0RFQ25ldAojZGVmaW5lIFBGX05FVEJFVUkgQUZfTkVUQkVV
SQojZGVmaW5lIFBGX1NFQ1VSSVRZIEFGX1NFQ1VSSVRZCiNkZWZpbmUgUEZfS0VZIEFGX0tFWQoj
ZGVmaW5lIFBGX05FVExJTksgQUZfTkVUTElOSwojZGVmaW5lIFBGX1JPVVRFIEFGX1JPVVRFCiNk
ZWZpbmUgUEZfUEFDS0VUIEFGX1BBQ0tFVAojZGVmaW5lIFBGX0FTSCBBRl9BU0gKI2RlZmluZSBQ
Rl9FQ09ORVQgQUZfRUNPTkVUCiNkZWZpbmUgUEZfQVRNU1ZDIEFGX0FUTVNWQwojZGVmaW5lIFBG
X1NOQSBBRl9TTkEKI2RlZmluZSBQRl9JUkRBIEFGX0lSREEKI2RlZmluZSBQRl9QUFBPWCBBRl9Q
UFBPWAojZGVmaW5lIFBGX1dBTlBJUEUgQUZfV0FOUElQRQojZGVmaW5lIFBGX0JMVUVUT09USCBB
Rl9CTFVFVE9PVEgKI2RlZmluZSBQRl9NQVggQUZfTUFYCgoKI2RlZmluZSBTT01BWENPTk4gMTI4
CgoKCgoKI2RlZmluZSBNU0dfT09CIDEKI2RlZmluZSBNU0dfUEVFSyAyCiNkZWZpbmUgTVNHX0RP
TlRST1VURSA0CiNkZWZpbmUgTVNHX1RSWUhBUkQgNAojZGVmaW5lIE1TR19DVFJVTkMgOAojZGVm
aW5lIE1TR19QUk9CRSAweDEwCiNkZWZpbmUgTVNHX1RSVU5DIDB4MjAKI2RlZmluZSBNU0dfRE9O
VFdBSVQgMHg0MAojZGVmaW5lIE1TR19FT1IgMHg4MAojZGVmaW5lIE1TR19XQUlUQUxMIDB4MTAw
CiNkZWZpbmUgTVNHX0ZJTiAweDIwMAojZGVmaW5lIE1TR19TWU4gMHg0MDAKI2RlZmluZSBNU0df
Q09ORklSTSAweDgwMAojZGVmaW5lIE1TR19SU1QgMHgxMDAwCiNkZWZpbmUgTVNHX0VSUlFVRVVF
IDB4MjAwMAojZGVmaW5lIE1TR19OT1NJR05BTCAweDQwMDAKI2RlZmluZSBNU0dfTU9SRSAweDgw
MDAKCiNkZWZpbmUgTVNHX0VPRiBNU0dfRklOCgoKCiNkZWZpbmUgU09MX0lQIDAKCiNkZWZpbmUg
U09MX1RDUCA2CiNkZWZpbmUgU09MX1VEUCAxNwojZGVmaW5lIFNPTF9JUFY2IDQxCiNkZWZpbmUg
U09MX0lDTVBWNiA1OAojZGVmaW5lIFNPTF9SQVcgMjU1CiNkZWZpbmUgU09MX0lQWCAyNTYKI2Rl
ZmluZSBTT0xfQVgyNSAyNTcKI2RlZmluZSBTT0xfQVRBTEsgMjU4CiNkZWZpbmUgU09MX05FVFJP
TSAyNTkKI2RlZmluZSBTT0xfUk9TRSAyNjAKI2RlZmluZSBTT0xfREVDTkVUIDI2MQojZGVmaW5l
IFNPTF9YMjUgMjYyCiNkZWZpbmUgU09MX1BBQ0tFVCAyNjMKI2RlZmluZSBTT0xfQVRNIDI2NAoj
ZGVmaW5lIFNPTF9BQUwgMjY1CiNkZWZpbmUgU09MX0lSREEgMjY2CgoKI2RlZmluZSBJUFhfVFlQ
RSAxCgoKZXh0ZXJuIGludCBtZW1jcHlfZnJvbWlvdmVjX1JzbXBfMzYxMzlhNTEodW5zaWduZWQg
Y2hhciAqa2RhdGEsIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgbGVuKTsKZXh0ZXJuIGludCBtZW1j
cHlfZnJvbWlvdmVjZW5kKHVuc2lnbmVkIGNoYXIgKmtkYXRhLCBzdHJ1Y3QgaW92ZWMgKmlvdiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuKTsKZXh0
ZXJuIGludCBjc3VtX3BhcnRpYWxfY29weV9mcm9taW92ZWNlbmQodW5zaWduZWQgY2hhciAqa2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3Zl
YyAqaW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zm
c2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgbGVuLCBpbnQgKmNzdW1wKTsKCmV4dGVybiBpbnQgdmVyaWZ5X2lvdmVjKHN0cnVjdCBtc2do
ZHIgKm0sIHN0cnVjdCBpb3ZlYyAqaW92LCBjaGFyICphZGRyZXNzLCBpbnQgbW9kZSk7CmV4dGVy
biBpbnQgbWVtY3B5X3RvaW92ZWNfUnNtcF8yODc2YTZkMyhzdHJ1Y3QgaW92ZWMgKnYsIHVuc2ln
bmVkIGNoYXIgKmtkYXRhLCBpbnQgbGVuKTsKZXh0ZXJuIHZvaWQgbWVtY3B5X3Rva2VybmVsaW92
ZWNfUnNtcF9lNDI3MWZiMChzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgY2hhciAqa2RhdGEs
IGludCBsZW4pOwpleHRlcm4gaW50IG1vdmVfYWRkcl90b191c2VyKHZvaWQgKmthZGRyLCBpbnQg
a2xlbiwgdm9pZCAqdWFkZHIsIGludCAqdWxlbik7CmV4dGVybiBpbnQgbW92ZV9hZGRyX3RvX2tl
cm5lbCh2b2lkICp1YWRkciwgaW50IHVsZW4sIHZvaWQgKmthZGRyKTsKZXh0ZXJuIGludCBwdXRf
Y21zZ19Sc21wXzQzZWM5MTNhKHN0cnVjdCBtc2doZHIqLCBpbnQgbGV2ZWwsIGludCB0eXBlLCBp
bnQgbGVuLCB2b2lkICpkYXRhKTsKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9uZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2Fp
dC5oIiAxCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiIDIK
CnN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdDsKCiNkZWZpbmUgTlBST1RPIDMyCgoKI2RlZmluZSBT
WVNfU09DS0VUIDEKI2RlZmluZSBTWVNfQklORCAyCiNkZWZpbmUgU1lTX0NPTk5FQ1QgMwojZGVm
aW5lIFNZU19MSVNURU4gNAojZGVmaW5lIFNZU19BQ0NFUFQgNQojZGVmaW5lIFNZU19HRVRTT0NL
TkFNRSA2CiNkZWZpbmUgU1lTX0dFVFBFRVJOQU1FIDcKI2RlZmluZSBTWVNfU09DS0VUUEFJUiA4
CiNkZWZpbmUgU1lTX1NFTkQgOQojZGVmaW5lIFNZU19SRUNWIDEwCiNkZWZpbmUgU1lTX1NFTkRU
TyAxMQojZGVmaW5lIFNZU19SRUNWRlJPTSAxMgojZGVmaW5lIFNZU19TSFVURE9XTiAxMwojZGVm
aW5lIFNZU19TRVRTT0NLT1BUIDE0CiNkZWZpbmUgU1lTX0dFVFNPQ0tPUFQgMTUKI2RlZmluZSBT
WVNfU0VORE1TRyAxNgojZGVmaW5lIFNZU19SRUNWTVNHIDE3CgoKdHlwZWRlZiBlbnVtIHsKICBT
U19GUkVFID0gMCwKICBTU19VTkNPTk5FQ1RFRCwKICBTU19DT05ORUNUSU5HLAogIFNTX0NPTk5F
Q1RFRCwKICBTU19ESVNDT05ORUNUSU5HCn0gc29ja2V0X3N0YXRlOwoKI2RlZmluZSBfX1NPX0FD
Q0VQVENPTiAoMTw8MTYpCgoKCiNkZWZpbmUgU09DS19BU1lOQ19OT1NQQUNFIDAKI2RlZmluZSBT
T0NLX0FTWU5DX1dBSVREQVRBIDEKI2RlZmluZSBTT0NLX05PU1BBQ0UgMgoKc3RydWN0IHNvY2tl
dAp7CiAgICAgICAgc29ja2V0X3N0YXRlIHN0YXRlOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGZs
YWdzOwogICAgICAgIHN0cnVjdCBwcm90b19vcHMgKm9wczsKICAgICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlOwogICAgICAgIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpmYXN5bmNfbGlzdDsKICAgICAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZTsKICAgICAgICBzdHJ1Y3Qgc29jayAqc2s7CiAgICAgICAgd2Fp
dF9xdWV1ZV9oZWFkX3Qgd2FpdDsKCiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICB1bnNpZ25l
ZCBjaGFyIHBhc3NjcmVkOwp9OwoKI2RlZmluZSBTT0NLX0lOT0RFKFMpICgoUyktPmlub2RlKQoK
c3RydWN0IHNjbV9jb29raWU7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3RydWN0IHBhZ2U7Cgpz
dHJ1Y3QgcHJvdG9fb3BzIHsKICBpbnQgZmFtaWx5OwoKICBpbnQgKCpyZWxlYXNlKSAoc3RydWN0
IHNvY2tldCAqc29jayk7CiAgaW50ICgqYmluZCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj
dCBzb2NrYWRkciAqdW15YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRk
cl9sZW4pOwogIGludCAoKmNvbm5lY3QpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j
a2FkZHIgKnVzZXJ2YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRkcl9s
ZW4sIGludCBmbGFncyk7CiAgaW50ICgqc29ja2V0cGFpcikgKHN0cnVjdCBzb2NrZXQgKnNvY2sx
LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrMik7CiAgaW50ICgqYWNjZXB0KSAoc3RydWN0IHNvY2tldCAq
c29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jaywKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBmbGFncyk7CiAgaW50ICgqZ2V0bmFtZV9Sc21wXzdjNjBkNjZlKSAoc3RydWN0IHNvY2tldCAq
c29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAqdXNvY2thZGRyX2xlbiwgaW50IHBlZXIpOwogIHVuc2lnbmVkIGludCAoKnBvbGwpIChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBvbGxfdGFibGVfc3Ry
dWN0ICp3YWl0KTsKICBpbnQgKCppb2N0bCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHVuc2lnbmVk
IGludCBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CiAg
aW50ICgqbGlzdGVuKSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxlbik7CiAgaW50ICgqc2h1
dGRvd24pIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpOwogIGludCAoKnNldHNvY2tv
cHQpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqb3B0dmFsLCBpbnQgb3B0bGVuKTsKICBpbnQgKCpnZXRz
b2Nrb3B0KSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm9wdHZhbCwgaW50ICpvcHRsZW4pOwogIGludCAo
KnNlbmRtc2cpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBpbnQgdG90
YWxfbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCpyZWN2bXNnKSAoc3RydWN0
IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgaW50IHRvdGFsX2xlbiwgaW50IGZsYWdz
LCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCptbWFwKSAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSk7CiAg
c3NpemVfdCAoKnNlbmRwYWdlKSAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBhZ2UgKnBh
Z2UsIGludCBvZmZzZXQsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpOwp9OwoKc3RydWN0IG5ldF9w
cm90b19mYW1pbHkKewogICAgICAgIGludCBmYW1pbHk7CiAgICAgICAgaW50ICgqY3JlYXRlKShz
dHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgcHJvdG9jb2wpOwoKCiAgICAgICAgc2hvcnQgYXV0aGVu
dGljYXRpb247CiAgICAgICAgc2hvcnQgZW5jcnlwdGlvbjsKICAgICAgICBzaG9ydCBlbmNyeXB0
X25ldDsKfTsKCnN0cnVjdCBuZXRfcHJvdG8KewogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAg
ICAgICAgdm9pZCAoKmluaXRfZnVuYykoc3RydWN0IG5ldF9wcm90byAqKTsKfTsKCmV4dGVybiBp
bnQgc29ja193YWtlX2FzeW5jX1JzbXBfNGVlYmVhNDEoc3RydWN0IHNvY2tldCAqc2ssIGludCBo
b3csIGludCBiYW5kKTsKZXh0ZXJuIGludCBzb2NrX3JlZ2lzdGVyX1JzbXBfZmJlM2FlYTYoc3Ry
dWN0IG5ldF9wcm90b19mYW1pbHkgKmZhbSk7CmV4dGVybiBpbnQgc29ja191bnJlZ2lzdGVyX1Jz
bXBfMjM5NGEwNjIoaW50IGZhbWlseSk7CmV4dGVybiBzdHJ1Y3Qgc29ja2V0ICpzb2NrX2FsbG9j
X1JzbXBfZWE1ZTQxZmUodm9pZCk7CmV4dGVybiBpbnQgc29ja19jcmVhdGVfUnNtcF8zMDQzZjE5
ZChpbnQgZmFtaWx5LCBpbnQgdHlwZSwgaW50IHByb3RvLCBzdHJ1Y3Qgc29ja2V0ICoqKTsKZXh0
ZXJuIHZvaWQgc29ja19yZWxlYXNlX1JzbXBfNTU0ODQwN2Eoc3RydWN0IHNvY2tldCAqKTsKZXh0
ZXJuIGludCBzb2NrX3NlbmRtc2dfUnNtcF8xNmNjMTMxNChzdHJ1Y3Qgc29ja2V0ICosIHN0cnVj
dCBtc2doZHIgKm0sIGludCBsZW4pOwpleHRlcm4gaW50IHNvY2tfcmVjdm1zZ19Sc21wX2E5NmY4
NzE4KHN0cnVjdCBzb2NrZXQgKiwgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdz
KTsKZXh0ZXJuIGludCBzb2NrX3JlYWR2X3dyaXRldihpbnQgdHlwZSwgc3RydWN0IGlub2RlICog
aW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqIGlvdiwgbG9uZyBjb3VudCwgbG9uZyBzaXplKTsKCmV4
dGVybiBpbnQgbmV0X3JhdGVsaW1pdF9Sc21wX2Y2ZWJjMDNiKHZvaWQpOwpleHRlcm4gdW5zaWdu
ZWQgbG9uZyBuZXRfcmFuZG9tX1JzbXBfMWM2NmY2NGModm9pZCk7CmV4dGVybiB2b2lkIG5ldF9z
cmFuZG9tX1JzbXBfZmY5NjNlZDgodW5zaWduZWQgbG9uZyk7CgoKCgoKCiNkZWZpbmUgU09DS09Q
U19XUkFQUEVEKG5hbWUpIF9fdW5sb2NrZWRfICMjIG5hbWUKCiNkZWZpbmUgU09DS0NBTExfV1JB
UChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIGludCBfX2xvY2tfICMjIG5hbWUgIyMg
XyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9ja19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tl
ZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJl
dDsgfQojIDE2NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2Rl
ZmluZSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIHVuc2ln
bmVkIGludCBfX2xvY2tfICMjIG5hbWUgIyMgXyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9j
a19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tlZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7
IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJldDsgfQojIDE3NSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2RlZmluZSBTT0NLT1BTX1dSQVAobmFtZSwgZmFtKSBT
T0NLQ0FMTF9XUkFQKG5hbWUsIHJlbGVhc2UsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrKSwgKHNvY2sp
KSBTT0NLQ0FMTF9XUkFQKG5hbWUsIGJpbmQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
c29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pLCAoc29jaywgdWFkZHIsIGFkZHJfbGVuKSkg
U09DS0NBTExfV1JBUChuYW1lLCBjb25uZWN0LCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0
IHNvY2thZGRyICogdWFkZHIsIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKSwgKHNvY2ssIHVhZGRy
LCBhZGRyX2xlbiwgZmxhZ3MpKSBTT0NLQ0FMTF9XUkFQKG5hbWUsIHNvY2tldHBhaXIsIChzdHJ1
Y3Qgc29ja2V0ICpzb2NrMSwgc3RydWN0IHNvY2tldCAqc29jazIpLCAoc29jazEsIHNvY2syKSkg
U09DS0NBTExfV1JBUChuYW1lLCBhY2NlcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
c29ja2V0ICpuZXdzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgbmV3c29jaywgZmxhZ3MpKSBTT0NL
Q0FMTF9XUkFQKG5hbWUsIGdldG5hbWUsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j
a2FkZHIgKnVhZGRyLCBpbnQgKmFkZHJfbGVuLCBpbnQgcGVlciksIChzb2NrLCB1YWRkciwgYWRk
cl9sZW4sIHBlZXIpKSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBwb2xsLCAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCks
IChmaWxlLCBzb2NrLCB3YWl0KSkgU09DS0NBTExfV1JBUChuYW1lLCBpb2N0bCwgKHN0cnVjdCBz
b2NrZXQgKnNvY2ssIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKSwgKHNvY2ss
IGNtZCwgYXJnKSkgU09DS0NBTExfV1JBUChuYW1lLCBsaXN0ZW4sIChzdHJ1Y3Qgc29ja2V0ICpz
b2NrLCBpbnQgbGVuKSwgKHNvY2ssIGxlbikpIFNPQ0tDQUxMX1dSQVAobmFtZSwgc2h1dGRvd24s
IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgZmxhZ3MpKSBTT0NLQ0FM
TF9XUkFQKG5hbWUsIHNldHNvY2tvcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWws
IGludCBvcHRuYW1lLCBjaGFyICpvcHR2YWwsIGludCBvcHRsZW4pLCAoc29jaywgbGV2ZWwsIG9w
dG5hbWUsIG9wdHZhbCwgb3B0bGVuKSkgU09DS0NBTExfV1JBUChuYW1lLCBnZXRzb2Nrb3B0LCAo
c3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hhciAqb3B0dmFs
LCBpbnQgKm9wdGxlbiksIChzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pKSBT
T0NLQ0FMTF9XUkFQKG5hbWUsIHNlbmRtc2csIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
bXNnaGRyICptLCBpbnQgbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKSwgKHNvY2ssIG0sIGxl
biwgc2NtKSkgU09DS0NBTExfV1JBUChuYW1lLCByZWN2bXNnLCAoc3RydWN0IHNvY2tldCAqc29j
aywgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdzLCBzdHJ1Y3Qgc2NtX2Nvb2tp
ZSAqc2NtKSwgKHNvY2ssIG0sIGxlbiwgZmxhZ3MsIHNjbSkpIFNPQ0tDQUxMX1dSQVAobmFtZSwg
bW1hcCwgKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgdm1f
YXJlYV9zdHJ1Y3QgKnZtYSksIChmaWxlLCBzb2NrLCB2bWEpKSBzdGF0aWMgc3RydWN0IHByb3Rv
X29wcyBuYW1lICMjIF9vcHMgPSB7IGZhbWlseTogZmFtLCByZWxlYXNlOiBfX2xvY2tfICMjIG5h
bWUgIyMgX3JlbGVhc2UsIGJpbmQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfYmluZCwgY29ubmVjdDog
X19sb2NrXyAjIyBuYW1lICMjIF9jb25uZWN0LCBzb2NrZXRwYWlyOiBfX2xvY2tfICMjIG5hbWUg
IyMgX3NvY2tldHBhaXIsIGFjY2VwdDogX19sb2NrXyAjIyBuYW1lICMjIF9hY2NlcHQsIGdldG5h
bWU6IF9fbG9ja18gIyMgbmFtZSAjIyBfZ2V0bmFtZSwgcG9sbDogX19sb2NrXyAjIyBuYW1lICMj
IF9wb2xsLCBpb2N0bDogX19sb2NrXyAjIyBuYW1lICMjIF9pb2N0bCwgbGlzdGVuOiBfX2xvY2tf
ICMjIG5hbWUgIyMgX2xpc3Rlbiwgc2h1dGRvd246IF9fbG9ja18gIyMgbmFtZSAjIyBfc2h1dGRv
d24sIHNldHNvY2tvcHQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfc2V0c29ja29wdCwgZ2V0c29ja29w
dDogX19sb2NrXyAjIyBuYW1lICMjIF9nZXRzb2Nrb3B0LCBzZW5kbXNnOiBfX2xvY2tfICMjIG5h
bWUgIyMgX3NlbmRtc2csIHJlY3Ztc2c6IF9fbG9ja18gIyMgbmFtZSAjIyBfcmVjdm1zZywgbW1h
cDogX19sb2NrXyAjIyBuYW1lICMjIF9tbWFwLCB9OwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2tkZXZfdC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LREVWX1RfSAojIDY0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgojZGVmaW5lIE1JTk9SQklUUyA4
CiNkZWZpbmUgTUlOT1JNQVNLICgoMVUgPDwgTUlOT1JCSVRTKSAtIDEpCgp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IGtkZXZfdDsKCiNkZWZpbmUgTUFKT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk
ZXYpID4+IE1JTk9SQklUUykpCiNkZWZpbmUgTUlOT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk
ZXYpICYgTUlOT1JNQVNLKSkKI2RlZmluZSBIQVNIREVWKGRldikgKCh1bnNpZ25lZCBpbnQpIChk
ZXYpKQojZGVmaW5lIE5PREVWIDAKI2RlZmluZSBNS0RFVihtYSwgbWkpICgoKG1hKSA8PCBNSU5P
UkJJVFMpIHwgKG1pKSkKI2RlZmluZSBCX0ZSRUUgMHhmZmZmCgpleHRlcm4gY29uc3QgY2hhciAq
IGtkZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKCgoKCgoKc3RhdGljIGlubGluZSB1bnNp
Z25lZCBpbnQga2Rldl90X3RvX25yKGtkZXZfdCBkZXYpIHsKICAgICAgICByZXR1cm4gKCgodW5z
aWduZWQgaW50KSAoKGRldikgPj4gOCkpPDw4KSB8ICgodW5zaWduZWQgaW50KSAoKGRldikgJiAo
KDFVIDw8IDgpIC0gMSkpKTsKfQoKc3RhdGljIGlubGluZSBrZGV2X3QgdG9fa2Rldl90KGludCBk
ZXYpCnsKICAgICAgICBpbnQgbWFqb3IsIG1pbm9yOwojIDk4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgogICAgICAgIG1ham9yID0gKGRldiA+PiA4KTsKICAg
ICAgICBtaW5vciA9IChkZXYgJiAweGZmKTsKCiAgICAgICAgcmV0dXJuICgoKG1ham9yKSA8PCA4
KSB8IChtaW5vcikpOwp9CiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
ZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaW9jdGwuaCIg
MQoKI2RlZmluZSBfTElOVVhfSU9DVExfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9pb2N0bC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT0NUTF9ICiMgMjkgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3RsLmgiCiNkZWZpbmUgX0lPQ19OUkJJVFMg
OAojZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAojZGVmaW5lIF9JT0NfU0laRUJJVFMgMTQKI2RlZmlu
ZSBfSU9DX0RJUkJJVFMgMgoKI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMp
LTEpCiNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUyktMSkKI2RlZmlu
ZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKS0xKQojZGVmaW5lIF9JT0NfRElS
TUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKS0xKQoKI2RlZmluZSBfSU9DX05SU0hJRlQgMAojZGVm
aW5lIF9JT0NfVFlQRVNISUZUIChfSU9DX05SU0hJRlQrX0lPQ19OUkJJVFMpCiNkZWZpbmUgX0lP
Q19TSVpFU0hJRlQgKF9JT0NfVFlQRVNISUZUK19JT0NfVFlQRUJJVFMpCiNkZWZpbmUgX0lPQ19E
SVJTSElGVCAoX0lPQ19TSVpFU0hJRlQrX0lPQ19TSVpFQklUUykKCgoKCiNkZWZpbmUgX0lPQ19O
T05FIDBVCiNkZWZpbmUgX0lPQ19XUklURSAxVQojZGVmaW5lIF9JT0NfUkVBRCAyVQoKI2RlZmlu
ZSBfSU9DKGRpciwgdHlwZSwgbnIsIHNpemUpICgoKGRpcikgPDwgX0lPQ19ESVJTSElGVCkgfCAo
KHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8ICgobnIpIDw8IF9JT0NfTlJTSElGVCkgfCAoKHNp
emUpIDw8IF9JT0NfU0laRVNISUZUKSkKCgoKCgoKI2RlZmluZSBfSU8odHlwZSwgbnIpIF9JT0Mo
X0lPQ19OT05FLCh0eXBlKSwobnIpLDApCiNkZWZpbmUgX0lPUih0eXBlLCBuciwgc2l6ZSkgX0lP
QyhfSU9DX1JFQUQsKHR5cGUpLChuciksc2l6ZW9mKHNpemUpKQojZGVmaW5lIF9JT1codHlwZSwg
bnIsIHNpemUpIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSxzaXplb2Yoc2l6ZSkpCiNkZWZp
bmUgX0lPV1IodHlwZSwgbnIsIHNpemUpIF9JT0MoX0lPQ19SRUFEfF9JT0NfV1JJVEUsKHR5cGUp
LChuciksc2l6ZW9mKHNpemUpKQoKCiNkZWZpbmUgX0lPQ19ESVIobnIpICgoKG5yKSA+PiBfSU9D
X0RJUlNISUZUKSAmIF9JT0NfRElSTUFTSykKI2RlZmluZSBfSU9DX1RZUEUobnIpICgoKG5yKSA+
PiBfSU9DX1RZUEVTSElGVCkgJiBfSU9DX1RZUEVNQVNLKQojZGVmaW5lIF9JT0NfTlIobnIpICgo
KG5yKSA+PiBfSU9DX05SU0hJRlQpICYgX0lPQ19OUk1BU0spCiNkZWZpbmUgX0lPQ19TSVpFKG5y
KSAoKChucikgPj4gX0lPQ19TSVpFU0hJRlQpICYgX0lPQ19TSVpFTUFTSykKCgoKI2RlZmluZSBJ
T0NfSU4gKF9JT0NfV1JJVEUgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfT1VUIChfSU9D
X1JFQUQgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfSU5PVVQgKChfSU9DX1dSSVRFfF9J
T0NfUkVBRCkgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NTSVpFX01BU0sgKF9JT0NfU0la
RU1BU0sgPDwgX0lPQ19TSVpFU0hJRlQpCiNkZWZpbmUgSU9DU0laRV9TSElGVCAoX0lPQ19TSVpF
U0hJRlQpCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9pb2N0bC5oIiAy
CiMgMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTkgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9EQ0FDSEVfSAoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMgNyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vdW50LmgiCiNkZWZpbmUgX0xJTlVYX01PVU5UX0gK
CgpzdHJ1Y3QgdmZzbW91bnQKewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbW50X2hhc2g7CiAg
ICAgICAgc3RydWN0IHZmc21vdW50ICptbnRfcGFyZW50OwogICAgICAgIHN0cnVjdCBkZW50cnkg
Km1udF9tb3VudHBvaW50OwogICAgICAgIHN0cnVjdCBkZW50cnkgKm1udF9yb290OwogICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgbW50X2luc3RhbmNlczsKICAgICAgICBzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKm1udF9zYjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIG1udF9tb3VudHM7CiAgICAgICAg
c3RydWN0IGxpc3RfaGVhZCBtbnRfY2hpbGQ7CiAgICAgICAgYXRvbWljX3QgbW50X2NvdW50Owog
ICAgICAgIGludCBtbnRfZmxhZ3M7CiAgICAgICAgY2hhciAqbW50X2Rldm5hbWU7CiAgICAgICAg
c3RydWN0IGxpc3RfaGVhZCBtbnRfbGlzdDsKICAgICAgICB1aWRfdCBtbnRfb3duZXI7Cn07Cgpz
dGF0aWMgaW5saW5lIHN0cnVjdCB2ZnNtb3VudCAqbW50Z2V0KHN0cnVjdCB2ZnNtb3VudCAqbW50
KQp7CiAgICAgICAgaWYgKG1udCkKICAgICAgICAgICAgICAgICgoX19idWlsdGluX2NvbnN0YW50
X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgo
MSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8
ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo
KCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZtbnQtPm1udF9jb3Vu
dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVv
ZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6
ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRlcikpKSB7
IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh
c2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz
ZSAxOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIp
KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj
YXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRl
cikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGNhc2UgODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy
ZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVh
azsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7
IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmbW50LT5tbnRfY291bnQpKSktPmNv
dW50ZXIpKSAoX3RtcCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZtbnQt
Pm1udF9jb3VudCkpKSk7CiAgICAgICAgcmV0dXJuIG1udDsKfQoKZXh0ZXJuIHZvaWQgX19tbnRw
dXRfUnNtcF9jZDgxODkwMihzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CgpzdGF0aWMgaW5saW5lIHZv
aWQgbW50cHV0KHN0cnVjdCB2ZnNtb3VudCAqbW50KQp7CiAgICAgICAgaWYgKG1udCkgewogICAg
ICAgICAgICAgICAgaWYgKCgoKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkg
fHwgKDEgPT0gNCkgfHwgKDEgPT0gOCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9
PSAtNCkgfHwgKDEgPT0gLTgpIHx8ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0
aWxlIF9fdHlwZW9mX18oKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpICpfdiA9ICgm
KCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl
IC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVyKSkp
IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsg
Y2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUy
IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj
YXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVy
KSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr
OyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7
IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu
dGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJm1udC0+bW50
X2NvdW50KSkpID09IDApKQogICAgICAgICAgICAgICAgICAgICAgICBfX21udHB1dF9Sc21wX2Nk
ODE4OTAyKG1udCk7CiAgICAgICAgfQp9CiMgOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9kY2FjaGUuaCIgMgojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2RjYWNoZS5oIgojZGVmaW5lIElTX1JPT1QoeCkgKCh4KSA9PSAoeCktPmRfcGFyZW50KQoK
CgoKCnN0cnVjdCBxc3RyIHsKICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogbmFtZTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIGludCBoYXNoOwp9OwoKc3Ry
dWN0IGRlbnRyeV9zdGF0X3QgewogICAgICAgIGludCBucl9kZW50cnk7CiAgICAgICAgaW50IG5y
X3VudXNlZDsKICAgICAgICBpbnQgYWdlX2xpbWl0OwogICAgICAgIGludCB3YW50X3BhZ2VzOwog
ICAgICAgIGludCBkdW1teVsyXTsKfTsKZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRy
eV9zdGF0OwoKCgojZGVmaW5lIGluaXRfbmFtZV9oYXNoKCkgMAoKCnN0YXRpYyBfX2lubGluZV9f
IHVuc2lnbmVkIGxvbmcgcGFydGlhbF9uYW1lX2hhc2godW5zaWduZWQgbG9uZyBjLCB1bnNpZ25l
ZCBsb25nIHByZXZoYXNoKQp7CiAgICAgICAgcmV0dXJuIChwcmV2aGFzaCArIChjIDw8IDQpICsg
KGMgPj4gNCkpICogMTE7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGVuZF9u
YW1lX2hhc2godW5zaWduZWQgbG9uZyBoYXNoKQp7CiAgICAgICAgcmV0dXJuICh1bnNpZ25lZCBp
bnQpIGhhc2g7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgZnVsbF9uYW1lX2hh
c2goY29uc3QgdW5zaWduZWQgY2hhciAqIG5hbWUsIHVuc2lnbmVkIGludCBsZW4pCnsKICAgICAg
ICB1bnNpZ25lZCBsb25nIGhhc2ggPSAwOwogICAgICAgIHdoaWxlIChsZW4tLSkKICAgICAgICAg
ICAgICAgIGhhc2ggPSBwYXJ0aWFsX25hbWVfaGFzaCgqbmFtZSsrLCBoYXNoKTsKICAgICAgICBy
ZXR1cm4gZW5kX25hbWVfaGFzaChoYXNoKTsKfQoKI2RlZmluZSBETkFNRV9JTkxJTkVfTEVOIDE2
CgpzdHJ1Y3QgZGVudHJ5IHsKICAgICAgICBhdG9taWNfdCBkX2NvdW50OwogICAgICAgIHVuc2ln
bmVkIGludCBkX2ZsYWdzOwogICAgICAgIHN0cnVjdCBpbm9kZSAqIGRfaW5vZGU7CiAgICAgICAg
c3RydWN0IGRlbnRyeSAqIGRfcGFyZW50OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9oYXNo
OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBkX2NoaWxkOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9zdWJkaXJzOwogICAgICAgIHN0
cnVjdCBsaXN0X2hlYWQgZF9hbGlhczsKICAgICAgICBpbnQgZF9tb3VudGVkOwogICAgICAgIHN0
cnVjdCBxc3RyIGRfbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdGltZTsKICAgICAgICBz
dHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgKmRfb3A7CiAgICAgICAgc3RydWN0IHN1cGVyX2Jsb2Nr
ICogZF9zYjsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdmZzX2ZsYWdzOwogICAgICAgIHZvaWQg
KiBkX2ZzZGF0YTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfaW5hbWVbMTZdOwp9OwoKc3RydWN0
IGRlbnRyeV9vcGVyYXRpb25zIHsKICAgICAgICBpbnQgKCpkX3JldmFsaWRhdGUpKHN0cnVjdCBk
ZW50cnkgKiwgaW50KTsKICAgICAgICBpbnQgKCpkX2hhc2gpIChzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBxc3RyICopOwogICAgICAgIGludCAoKmRfY29tcGFyZSkgKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IHFzdHIgKiwgc3RydWN0IHFzdHIgKik7CiAgICAgICAgaW50ICgqZF9kZWxldGVfUnNt
cF9jNzE4YjU1Nykoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICB2b2lkICgqZF9yZWxlYXNlKShz
dHJ1Y3QgZGVudHJ5ICopOwogICAgICAgIHZvaWQgKCpkX2lwdXQpKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IGlub2RlICopOwp9OwojIDExNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9kY2FjaGUuaCIKI2RlZmluZSBEQ0FDSEVfQVVUT0ZTX1BFTkRJTkcgMHgwMDAxCiNkZWZp
bmUgRENBQ0hFX05GU0ZTX1JFTkFNRUQgMHgwMDAyCgoKCiNkZWZpbmUgRENBQ0hFX05GU0RfRElT
Q09OTkVDVEVEIDB4MDAwNAoKCgoKCiNkZWZpbmUgRENBQ0hFX1JFRkVSRU5DRUQgMHgwMDA4Cgpl
eHRlcm4gc3BpbmxvY2tfdCBkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExOwojIDE0NiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIF9faW5saW5lX18g
dm9pZCBkX2Ryb3Aoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKewogICAgICAgIF9fYXNtX18gX192
b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIx
OlxuIiAibGQ0IHIyID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAi
KHA3KSBici5jb25kLnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCBy
MjksIGFyLmNjdlxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIu
Y29uZC5zcG50LmZldyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdj
MzJjYTEpLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgbGlzdF9kZWwo
JmRlbnRyeS0+ZF9oYXNoKTsKICAgICAgICBkbyB7ICgmZGVudHJ5LT5kX2hhc2gpLT5uZXh0ID0g
KCZkZW50cnktPmRfaGFzaCk7ICgmZGVudHJ5LT5kX2hhc2gpLT5wcmV2ID0gKCZkZW50cnktPmRf
aGFzaCk7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2Ex
KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgZG5hbWVf
ZXh0ZXJuYWwoc3RydWN0IGRlbnRyeSAqZCkKewogICAgICAgIHJldHVybiBkLT5kX25hbWUubmFt
ZSAhPSBkLT5kX2luYW1lOwp9CgoKCgpleHRlcm4gdm9pZCBkX2luc3RhbnRpYXRlX1JzbXBfMDIx
ZTI1OTIoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIGRfZGVs
ZXRlX1JzbXBfYzcxOGI1NTcoc3RydWN0IGRlbnRyeSAqKTsKCgpleHRlcm4gc3RydWN0IGRlbnRy
eSAqIGRfYWxsb2NfUnNtcF8yMDRlY2Q2MihzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IHN0cnVjdCBx
c3RyICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3NiX1JzbXBfNjg1OGYzZGUoc3RydWN0
IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3BhcmVudF9Sc21wXzE0
M2MyYmI4KHN0cnVjdCBkZW50cnkgKik7CmV4dGVybiBpbnQgZF9pbnZhbGlkYXRlX1JzbXBfNWEw
NGQ4ZWQoc3RydWN0IGRlbnRyeSAqKTsKCiNkZWZpbmUgc2hyaW5rX2RjYWNoZSgpIHBydW5lX2Rj
YWNoZSgwKQpzdHJ1Y3Qgem9uZV9zdHJ1Y3Q7CgpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX21l
bW9yeShpbnQsIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBydW5lX2RjYWNoZV9Sc21wXzZj
ZjI4Zjc3KGludCk7CgoKZXh0ZXJuIHZvaWQgc2hyaW5rX2ljYWNoZV9tZW1vcnkoaW50LCBpbnQp
OwpleHRlcm4gdm9pZCBwcnVuZV9pY2FjaGUoaW50KTsKCgpleHRlcm4gc3RydWN0IGRlbnRyeSAq
IGRfYWxsb2Nfcm9vdF9Sc21wX2UyMjRjNGM1KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4gdm9p
ZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9m
aW5kX2FsaWFzX1JzbXBfYjYwNTg4MDIoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBkX3By
dW5lX2FsaWFzZXNfUnNtcF9jOWJhZDQ3YihzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0ZXJuIGludCBo
YXZlX3N1Ym1vdW50c19Sc21wX2IzYjI5YzBlKHN0cnVjdCBkZW50cnkgKik7CgoKCgpleHRlcm4g
dm9pZCBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKHN0cnVjdCBkZW50cnkgKik7CiMgMjA3ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19pbmxpbmVf
XyB2b2lkIGRfYWRkKHN0cnVjdCBkZW50cnkgKiBlbnRyeSwgc3RydWN0IGlub2RlICogaW5vZGUp
CnsKICAgICAgICBkX2luc3RhbnRpYXRlX1JzbXBfMDIxZTI1OTIoZW50cnksIGlub2RlKTsKICAg
ICAgICBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKGVudHJ5KTsKfQoKCmV4dGVybiB2b2lkIGRfbW92
ZV9Sc21wXzZhNmNjNjdjKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKCgpleHRl
cm4gc3RydWN0IGRlbnRyeSAqIGRfbG9va3VwX1JzbXBfZTljNTYzZTEoc3RydWN0IGRlbnRyeSAq
LCBzdHJ1Y3QgcXN0ciAqKTsKCgpleHRlcm4gaW50IGRfdmFsaWRhdGVfUnNtcF9jNDcxM2QxOShz
dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gY2hhciAqIF9fZF9wYXRo
X1JzbXBfYWYxZDdiZmYoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0
IGRlbnRyeSAqLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqLCBjaGFyICosIGludCk7CiMgMjQw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19p
bmxpbmVfXyBzdHJ1Y3QgZGVudHJ5ICogZGdldChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAg
ICAgICBpZiAoZGVudHJ5KSB7CiAgICAgICAgICAgICAgICBpZiAoISgoJmRlbnRyeS0+ZF9jb3Vu
dCktPmNvdW50ZXIpKQogICAgICAgICAgICAgICAgICAgICAgICBkbyB7IHByaW50a19Sc21wXzgy
N2Q1ODA3KCJrZXJuZWwgQlVHIGF0ICVzOiVkIVxuIiwgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvZGNhY2hlLmgiLCAyNDQpOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCk7CiAg
ICAgICAgICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAoKDEpID09IDEp
IHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAoKDEpID09IC0x
KSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikpKSA/ICh7IF9f
dTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+
Y291bnRlcikpICpfdiA9ICgmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcik7IHN3aXRj
aCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZGVudHJ5LT5kX2Nv
dW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi
bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50
cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9f
ICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJp
IigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgi
IiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigt
OCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNo
X2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigo
KCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls
ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks
ICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0
X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3aXRjaCAoc2l6ZW9m
KCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChz
aXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug
NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1
bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVh
azsgfSAoX190eXBlb2ZfXygqJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSAoX3Rt
cCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZkZW50cnktPmRfY291bnQp
KSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZGVudHJ5Owp9CgpleHRlcm4gc3RydWN0IGRl
bnRyeSAqIGRnZXRfbG9ja2VkX1JzbXBfZDI4MmI4MDcoc3RydWN0IGRlbnRyeSAqKTsKIyAyNTkg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBfX2lu
bGluZV9fIGludCBkX3VuaGFzaGVkKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJl
dHVybiBsaXN0X2VtcHR5KCZkZW50cnktPmRfaGFzaCk7Cn0KCmV4dGVybiB2b2lkIGRwdXRfUnNt
cF81NzRlNmJhMyhzdHJ1Y3QgZGVudHJ5ICopOwoKc3RhdGljIF9faW5saW5lX18gaW50IGRfbW91
bnRwb2ludChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICByZXR1cm4gZGVudHJ5LT5k
X21vdW50ZWQ7Cn0KCmV4dGVybiBzdHJ1Y3QgdmZzbW91bnQgKmxvb2t1cF9tbnRfUnNtcF9lZmU3
MTUzZChzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0IGRlbnRyeSAqKTsKIyAyMCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdGF0LmgiIDEKCiNkZWZpbmUgX0xJTlVYX1NUQVRfSAoKCgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N0YXQuaCIgMQoKI2RlZmluZSBfQVNN
X0lBNjRfU1RBVF9ICgoKCgoKCnN0cnVjdCBzdGF0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0
X2RldjsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0X2lubzsKICAgICAgICB1bnNpZ25lZCBsb25n
IHN0X25saW5rOwogICAgICAgIHVuc2lnbmVkIGludCBzdF9tb2RlOwogICAgICAgIHVuc2lnbmVk
IGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dpZDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgX19wYWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfcmRldjsKICAgICAgICB1bnNp
Z25lZCBsb25nIHN0X3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdF9hdGltZTsKICAgICAg
ICB1bnNpZ25lZCBsb25nIF9fcmVzZXJ2ZWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRp
bWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3Jlc2VydmVkMTsKICAgICAgICB1bnNpZ25lZCBs
b25nIHN0X2N0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXNlcnZlZDI7CiAgICAgICAg
dW5zaWduZWQgbG9uZyBzdF9ibGtzaXplOwogICAgICAgIGxvbmcgc3RfYmxvY2tzOwogICAgICAg
IHVuc2lnbmVkIGxvbmcgX191bnVzZWRbM107Cn07CgpzdHJ1Y3QgaWE2NF9vbGRzdGF0IHsKICAg
ICAgICB1bnNpZ25lZCBpbnQgc3RfZGV2OwogICAgICAgIHVuc2lnbmVkIGludCBzdF9pbm87CiAg
ICAgICAgdW5zaWduZWQgaW50IHN0X21vZGU7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X25saW5r
OwogICAgICAgIHVuc2lnbmVkIGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dp
ZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfcmRldjsKICAgICAgICB1bnNpZ25lZCBpbnQgX19w
YWQxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3Rfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBsb25n
IHN0X2F0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRpbWU7CiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBzdF9jdGltZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfYmxrc2l6ZTsKICAgICAg
ICBpbnQgc3RfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGludCBfX3VudXNlZDE7CiAgICAgICAg
dW5zaWduZWQgaW50IF9fdW51c2VkMjsKfTsKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3N0YXQuaCIgMgoKCgoKCiNkZWZpbmUgU19JRk1UIDAwMTcwMDAwCiNkZWZpbmUg
U19JRlNPQ0sgMDE0MDAwMAojZGVmaW5lIFNfSUZMTksgMDEyMDAwMAojZGVmaW5lIFNfSUZSRUcg
MDEwMDAwMAojZGVmaW5lIFNfSUZCTEsgMDA2MDAwMAojZGVmaW5lIFNfSUZESVIgMDA0MDAwMAoj
ZGVmaW5lIFNfSUZDSFIgMDAyMDAwMAojZGVmaW5lIFNfSUZJRk8gMDAxMDAwMAojZGVmaW5lIFNf
SVNVSUQgMDAwNDAwMAojZGVmaW5lIFNfSVNHSUQgMDAwMjAwMAojZGVmaW5lIFNfSVNWVFggMDAw
MTAwMAoKI2RlZmluZSBTX0lTTE5LKG0pICgoKG0pICYgU19JRk1UKSA9PSBTX0lGTE5LKQojZGVm
aW5lIFNfSVNSRUcobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZSRUcpCiNkZWZpbmUgU19JU0RJ
UihtKSAoKChtKSAmIFNfSUZNVCkgPT0gU19JRkRJUikKI2RlZmluZSBTX0lTQ0hSKG0pICgoKG0p
ICYgU19JRk1UKSA9PSBTX0lGQ0hSKQojZGVmaW5lIFNfSVNCTEsobSkgKCgobSkgJiBTX0lGTVQp
ID09IFNfSUZCTEspCiNkZWZpbmUgU19JU0ZJRk8obSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZJ
Rk8pCiNkZWZpbmUgU19JU1NPQ0sobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZTT0NLKQoKI2Rl
ZmluZSBTX0lSV1hVIDAwNzAwCiNkZWZpbmUgU19JUlVTUiAwMDQwMAojZGVmaW5lIFNfSVdVU1Ig
MDAyMDAKI2RlZmluZSBTX0lYVVNSIDAwMTAwCgojZGVmaW5lIFNfSVJXWEcgMDAwNzAKI2RlZmlu
ZSBTX0lSR1JQIDAwMDQwCiNkZWZpbmUgU19JV0dSUCAwMDAyMAojZGVmaW5lIFNfSVhHUlAgMDAw
MTAKCiNkZWZpbmUgU19JUldYTyAwMDAwNwojZGVmaW5lIFNfSVJPVEggMDAwMDQKI2RlZmluZSBT
X0lXT1RIIDAwMDAyCiNkZWZpbmUgU19JWE9USCAwMDAwMQoKCgoKI2RlZmluZSBTX0lSV1hVR08g
KFNfSVJXWFV8U19JUldYR3xTX0lSV1hPKQojZGVmaW5lIFNfSUFMTFVHTyAoU19JU1VJRHxTX0lT
R0lEfFNfSVNWVFh8U19JUldYVUdPKQojZGVmaW5lIFNfSVJVR08gKFNfSVJVU1J8U19JUkdSUHxT
X0lST1RIKQojZGVmaW5lIFNfSVdVR08gKFNfSVdVU1J8U19JV0dSUHxTX0lXT1RIKQojZGVmaW5l
IFNfSVhVR08gKFNfSVhVU1J8U19JWEdSUHxTX0lYT1RIKQojIDIxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9DQUNIRV9ICgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0
X0NBQ0hFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcu
aCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDIKCgoK
CgoKCiNkZWZpbmUgTDFfQ0FDSEVfU0hJRlQgQ09ORklHX0lBNjRfTDFfQ0FDSEVfU0hJRlQKI2Rl
ZmluZSBMMV9DQUNIRV9CWVRFUyAoMSA8PCBMMV9DQUNIRV9TSElGVCkKCgojZGVmaW5lIFNNUF9D
QUNIRV9TSElGVCBMMV9DQUNIRV9TSElGVAojZGVmaW5lIFNNUF9DQUNIRV9CWVRFUyBMMV9DQUNI
RV9CWVRFUwojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FjaGUuaCIg
MgoKCiNkZWZpbmUgTDFfQ0FDSEVfQUxJR04oeCkgKCgoeCkrKEwxX0NBQ0hFX0JZVEVTLTEpKSZ+
KEwxX0NBQ0hFX0JZVEVTLTEpKQoKCgoKCgoKI2RlZmluZSBfX19fY2FjaGVsaW5lX2FsaWduZWQg
X19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oU01QX0NBQ0hFX0JZVEVTKSkpCgoKCgojZGVmaW5l
IF9fY2FjaGVsaW5lX2FsaWduZWQgX19fX2NhY2hlbGluZV9hbGlnbmVkCiMgMjIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3RkZGVmLmgiIDEKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zdHJpbmcuaCIgMQojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgi
IDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyNyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgpzdHJ1Y3QgcG9sbF90YWJsZV9z
dHJ1Y3Q7CiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI3Vu
ZGVmIE5SX09QRU4KI2RlZmluZSBOUl9PUEVOICgxMDI0KjEwMjQpCiNkZWZpbmUgSU5SX09QRU4g
MTAyNAoKI2RlZmluZSBCTE9DS19TSVpFX0JJVFMgMTAKI2RlZmluZSBCTE9DS19TSVpFICgxPDxC
TE9DS19TSVpFX0JJVFMpCgoKc3RydWN0IGZpbGVzX3N0YXRfc3RydWN0IHsKICAgICAgICBpbnQg
bnJfZmlsZXM7CiAgICAgICAgaW50IG5yX2ZyZWVfZmlsZXM7CiAgICAgICAgaW50IG1heF9maWxl
czsKfTsKZXh0ZXJuIHN0cnVjdCBmaWxlc19zdGF0X3N0cnVjdCBmaWxlc19zdGF0X1JzbXBfMDNj
YWRhMjc7CgpzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7CiAgICAgICAgaW50IG5yX2lub2RlczsKICAg
ICAgICBpbnQgbnJfdW51c2VkOwogICAgICAgIGludCBkdW1teVs1XTsKfTsKZXh0ZXJuIHN0cnVj
dCBpbm9kZXNfc3RhdF90IGlub2Rlc19zdGF0OwoKZXh0ZXJuIGludCBtYXhfc3VwZXJfYmxvY2tz
LCBucl9zdXBlcl9ibG9ja3M7CmV4dGVybiBpbnQgbGVhc2VzX2VuYWJsZSwgZGlyX25vdGlmeV9l
bmFibGUsIGxlYXNlX2JyZWFrX3RpbWU7CgojZGVmaW5lIE5SX0ZJTEUgODE5MgojZGVmaW5lIE5S
X1JFU0VSVkVEX0ZJTEVTIDEwCiNkZWZpbmUgTlJfU1VQRVIgMjU2CgojZGVmaW5lIE1BWV9FWEVD
IDEKI2RlZmluZSBNQVlfV1JJVEUgMgojZGVmaW5lIE1BWV9SRUFEIDQKCiNkZWZpbmUgRk1PREVf
UkVBRCAxCiNkZWZpbmUgRk1PREVfV1JJVEUgMgoKI2RlZmluZSBSRUFEIDAKI2RlZmluZSBXUklU
RSAxCiNkZWZpbmUgUkVBREEgMgojZGVmaW5lIFNQRUNJQUwgNAoKI2RlZmluZSBTRUxfSU4gMQoj
ZGVmaW5lIFNFTF9PVVQgMgojZGVmaW5lIFNFTF9FWCA0CgoKI2RlZmluZSBGU19SRVFVSVJFU19E
RVYgMQojZGVmaW5lIEZTX05PX0RDQUNIRSAyCiNkZWZpbmUgRlNfTk9fUFJFTElNIDQKCgojZGVm
aW5lIEZTX1NJTkdMRSA4CgoKCgoKI2RlZmluZSBGU19OT01PVU5UIDE2CiNkZWZpbmUgRlNfTElU
VEVSIDMyCiNkZWZpbmUgRlNfT0REX1JFTkFNRSAzMjc2OAoKCgoKCiNkZWZpbmUgTVNfUkRPTkxZ
IDEKI2RlZmluZSBNU19OT1NVSUQgMgojZGVmaW5lIE1TX05PREVWIDQKI2RlZmluZSBNU19OT0VY
RUMgOAojZGVmaW5lIE1TX1NZTkNIUk9OT1VTIDE2CiNkZWZpbmUgTVNfUkVNT1VOVCAzMgojZGVm
aW5lIE1TX01BTkRMT0NLIDY0CiNkZWZpbmUgTVNfTk9BVElNRSAxMDI0CiNkZWZpbmUgTVNfTk9E
SVJBVElNRSAyMDQ4CiNkZWZpbmUgTVNfQklORCA0MDk2CgoKCgojZGVmaW5lIE1TX1JNVF9NQVNL
IChNU19SRE9OTFl8TVNfTk9TVUlEfE1TX05PREVWfE1TX05PRVhFQ3wgTVNfU1lOQ0hST05PVVN8
TVNfTUFORExPQ0t8TVNfTk9BVElNRXxNU19OT0RJUkFUSU1FKQoKCgoKCiNkZWZpbmUgTVNfTUdD
X1ZBTCAweEMwRUQwMDAwCiNkZWZpbmUgTVNfTUdDX01TSyAweGZmZmYwMDAwCgoKCiNkZWZpbmUg
U19TWU5DIDEKI2RlZmluZSBTX05PQVRJTUUgMgojZGVmaW5lIFNfUVVPVEEgNAojZGVmaW5lIFNf
QVBQRU5EIDgKI2RlZmluZSBTX0lNTVVUQUJMRSAxNgojZGVmaW5lIFNfREVBRCAzMgojIDE1MiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgojZGVmaW5lIF9fSVNfRkxH
KGlub2RlLCBmbGcpICgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKGZsZykpCgojZGVmaW5lIElT
X1JET05MWShpbm9kZSkgKChpbm9kZSktPmlfc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkpCiNkZWZp
bmUgSVNfTk9TVUlEKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9TVUlEKQojZGVmaW5lIElT
X05PREVWKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9ERVYpCiNkZWZpbmUgSVNfTk9FWEVD
KGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9FWEVDKQojZGVmaW5lIElTX1NZTkMoaW5vZGUp
IChfX0lTX0ZMRyhpbm9kZSwgTVNfU1lOQ0hST05PVVMpIHx8ICgoaW5vZGUpLT5pX2ZsYWdzICYg
U19TWU5DKSkKI2RlZmluZSBJU19NQU5ETE9DSyhpbm9kZSkgX19JU19GTEcoaW5vZGUsIE1TX01B
TkRMT0NLKQoKI2RlZmluZSBJU19RVU9UQUlOSVQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYg
U19RVU9UQSkKI2RlZmluZSBJU19BUFBFTkQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYgU19B
UFBFTkQpCiNkZWZpbmUgSVNfSU1NVVRBQkxFKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNf
SU1NVVRBQkxFKQojZGVmaW5lIElTX05PQVRJTUUoaW5vZGUpIChfX0lTX0ZMRyhpbm9kZSwgTVNf
Tk9BVElNRSkgfHwgKChpbm9kZSktPmlfZmxhZ3MgJiBTX05PQVRJTUUpKQojZGVmaW5lIElTX05P
RElSQVRJTUUoaW5vZGUpIF9fSVNfRkxHKGlub2RlLCBNU19OT0RJUkFUSU1FKQoKI2RlZmluZSBJ
U19ERUFERElSKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNfREVBRCkKCgoKCiNkZWZpbmUg
QkxLUk9TRVQgX0lPKDB4MTIsOTMpCiNkZWZpbmUgQkxLUk9HRVQgX0lPKDB4MTIsOTQpCiNkZWZp
bmUgQkxLUlJQQVJUIF9JTygweDEyLDk1KQojZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsOTYp
CiNkZWZpbmUgQkxLRkxTQlVGIF9JTygweDEyLDk3KQojZGVmaW5lIEJMS1JBU0VUIF9JTygweDEy
LDk4KQojZGVmaW5lIEJMS1JBR0VUIF9JTygweDEyLDk5KQojZGVmaW5lIEJMS0ZSQVNFVCBfSU8o
MHgxMiwxMDApCiNkZWZpbmUgQkxLRlJBR0VUIF9JTygweDEyLDEwMSkKI2RlZmluZSBCTEtTRUNU
U0VUIF9JTygweDEyLDEwMikKI2RlZmluZSBCTEtTRUNUR0VUIF9JTygweDEyLDEwMykKI2RlZmlu
ZSBCTEtTU1pHRVQgX0lPKDB4MTIsMTA0KQojIDE5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9mcy5oIgojZGVmaW5lIEJNQVBfSU9DVEwgMQojZGVmaW5lIEZJQk1BUCBfSU8o
MHgwMCwxKQojZGVmaW5lIEZJR0VUQlNaIF9JTygweDAwLDIpCgoKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NF
TUFQSE9SRV9ICgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93
YWl0LmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3Jl
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDEK
CgoKCgoKCiNkZWZpbmUgX0xJTlVYX1JXU0VNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9yd3NlbS5oIiAyCgojZGVmaW5lIFJXU0VNX0RFQlVHIDAKCgoKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTcgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5
c3RlbS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0u
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMg
MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgoKc3RydWN0
IHJ3X3NlbWFwaG9yZTsKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
cndzZW0tc3BpbmxvY2suaCIgMQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvcndzZW0tc3BpbmxvY2suaCIKI2RlZmluZSBfTElOVVhfUldTRU1fU1BJTkxPQ0tfSAoKCgoK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMg
MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIgMgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDIx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLXNwaW5sb2NrLmgiIDIK
CnN0cnVjdCByd3NlbV93YWl0ZXI7CiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcndzZW0tc3BpbmxvY2suaCIKc3RydWN0IHJ3X3NlbWFwaG9yZSB7CiAgICAgICAgX19z
MzIgYWN0aXZpdHk7CiAgICAgICAgc3BpbmxvY2tfdCB3YWl0X2xvY2s7CiAgICAgICAgc3RydWN0
IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CgoKCn07CgoKCgoKCgojZGVmaW5lIF9fUldTRU1fREVCVUdf
SU5JVAoKCiNkZWZpbmUgX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKSB7IDAsIFNQSU5fTE9DS19V
TkxPQ0tFRCwgTElTVF9IRUFEX0lOSVQoKG5hbWUpLndhaXRfbGlzdCkgX19SV1NFTV9ERUJVR19J
TklUIH0KCgojZGVmaW5lIERFQ0xBUkVfUldTRU0obmFtZSkgc3RydWN0IHJ3X3NlbWFwaG9yZSBu
YW1lID0gX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKQoKCmV4dGVybiB2b2lkIGluaXRfcndzZW1f
UnNtcF9hNTNkOTMxYShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwpleHRlcm4gdm9pZCBfX2Rv
d25fcmVhZF9Sc21wXzFjZjU3NzcyKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CmV4dGVybiB2
b2lkIF9fZG93bl93cml0ZV9Sc21wX2M5YjFmOThhKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7
CmV4dGVybiB2b2lkIF9fdXBfcmVhZF9Sc21wX2U5NTJmYzI5KHN0cnVjdCByd19zZW1hcGhvcmUg
KnNlbSk7CmV4dGVybiB2b2lkIF9fdXBfd3JpdGVfUnNtcF8zNWZkZDY3ZChzdHJ1Y3Qgcndfc2Vt
YXBob3JlICpzZW0pOwojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3
c2VtLmgiIDIKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yd3NlbS5o
IgojZGVmaW5lIHJ3c2VtdHJhY2UoU0VNLCBGTVQpCgoKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZCBk
b3duX3JlYWQoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fZG93bl9yZWFkX1JzbXBfMWNmNTc3
NzIoc2VtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CgoKc3RhdGljIGlubGluZSB2b2lkIGRvd25fd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2Vt
KQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAg
ICBfX2Rvd25fd3JpdGVfUnNtcF9jOWIxZjk4YShzZW0pOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGluZSB2b2lkIHVwX3JlYWQo
c3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKICAgICAgICBfX3VwX3JlYWRfUnNtcF9lOTUyZmMyOShzZW0pOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGlu
ZSB2b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSkKewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fdXBfd3JpdGVfUnNtcF8z
NWZkZDY3ZChzZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
Cn0KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDEKIyAxMyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIKCnN0cnVjdCBz
ZW1hcGhvcmUgewogICAgICAgIGF0b21pY190IGNvdW50OwogICAgICAgIGludCBzbGVlcGVyczsK
ICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwoKCgp9OwoKCgoKI2RlZmluZSBfX1NFTV9E
RUJVR19JTklUKG5hbWUpCgoKI2RlZmluZSBfX1NFTUFQSE9SRV9JTklUSUFMSVpFUihuYW1lLCBj
b3VudCkgeyBBVE9NSUNfSU5JVChjb3VudCksIDAsIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJQUxJ
WkVSKChuYW1lKS53YWl0KSBfX1NFTV9ERUJVR19JTklUKG5hbWUpIH0KCgoKCgojZGVmaW5lIF9f
TVVURVhfSU5JVElBTElaRVIobmFtZSkgX19TRU1BUEhPUkVfSU5JVElBTElaRVIobmFtZSwxKQoK
I2RlZmluZSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFtZSwgY291bnQpIHN0cnVjdCBz
ZW1hcGhvcmUgbmFtZSA9IF9fU0VNQVBIT1JFX0lOSVRJQUxJWkVSKG5hbWUsIGNvdW50KQoKCiNk
ZWZpbmUgREVDTEFSRV9NVVRFWChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFt
ZSwgMSkKI2RlZmluZSBERUNMQVJFX01VVEVYX0xPQ0tFRChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBI
T1JFX0dFTkVSSUMobmFtZSwgMCkKCnN0YXRpYyBpbmxpbmUgdm9pZApzZW1hX2luaXQgKHN0cnVj
dCBzZW1hcGhvcmUgKnNlbSwgaW50IHZhbCkKewogICAgICAgICpzZW0gPSAoc3RydWN0IHNlbWFw
aG9yZSkgeyAoKGF0b21pY190KSB7ICh2YWwpIH0pLCAwLCB7IGxvY2s6IChzcGlubG9ja190KSB7
IDAgfSwgdGFza19saXN0OiB7ICYoKCpzZW0pLndhaXQpLnRhc2tfbGlzdCwgJigoKnNlbSkud2Fp
dCkudGFza19saXN0IH0sIH0gfTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmluaXRfTVVURVggKHN0
cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAgIHNlbWFfaW5pdChzZW0sIDEpOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKaW5pdF9NVVRFWF9MT0NLRUQgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkK
ewogICAgICAgIHNlbWFfaW5pdChzZW0sIDApOwp9CgpleHRlcm4gdm9pZCBfX2Rvd24gKHN0cnVj
dCBzZW1hcGhvcmUgKiBzZW0pOwpleHRlcm4gaW50IF9fZG93bl9pbnRlcnJ1cHRpYmxlIChzdHJ1
Y3Qgc2VtYXBob3JlICogc2VtKTsKZXh0ZXJuIGludCBfX2Rvd25fdHJ5bG9jayAoc3RydWN0IHNl
bWFwaG9yZSAqIHNlbSk7CmV4dGVybiB2b2lkIF9fdXAgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0p
OwoKZXh0ZXJuIHNwaW5sb2NrX3Qgc2VtYXBob3JlX3dha2VfbG9jazsKCgoKCgpzdGF0aWMgaW5s
aW5lIHZvaWQKZG93biAoc3RydWN0IHNlbWFwaG9yZSAqc2VtKQp7CgoKCiAgICAgICAgaWYgKCgo
X19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9
PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0gLTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkg
fHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo
KCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAqX3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRl
cik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt
LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg
OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNl
bS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi
ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt
LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog
Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0t
PmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm
ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkg
OiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj
aGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5j
b3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50
KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5y
ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g
fSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+
Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5y
ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsg
YnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291
bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwg
JTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi
cmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFkX2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkg
KF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkg
PCAwKQogICAgICAgICAgICAgICAgX19kb3duKHNlbSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIGlu
dApkb3duX2ludGVycnVwdGlibGUgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0pCnsKICAgICAgICBp
bnQgcmV0ID0gMDsKCgoKCiAgICAgICAgaWYgKCgoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYg
KCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0g
LTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkgfHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQg
X3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAq
X3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0x
NjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz
ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
LTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAt
NDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz
ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0x
OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBf
X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog
InIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv
bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi
KF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFk
X2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f
KComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRf
YXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkgPCAwKQogICAgICAgICAgICAgICAgcmV0ID0g
X19kb3duX2ludGVycnVwdGlibGUoc2VtKTsKICAgICAgICByZXR1cm4gcmV0Owp9CgpzdGF0aWMg
aW5saW5lIGludApkb3duX3RyeWxvY2sgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAg
IGludCByZXQgPSAwOwoKCgoKICAgICAgICBpZiAoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAm
JiAoICgxID09IDEpIHx8ICgxID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9
PSAtMSkgfHwgKDEgPT0gLTQpIHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2
NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikp
ICpfdiA9ICgmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKTsgc3dpdGNoICgtKDEpKSB7IGNhc2Ug
LTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz
ZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsg
Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUy
IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl
IC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
LTE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAx
OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m
b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19i
YWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9m
X18oKiYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAoX3RtcCArICgtKDEpKSk7IH0pIDogaWE2
NF9hdG9taWNfc3ViKDEsICgmc2VtLT5jb3VudCkpKSA8IDApCiAgICAgICAgICAgICAgICByZXQg
PSBfX2Rvd25fdHJ5bG9jayhzZW0pOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRpYyBpbmxp
bmUgdm9pZAp1cCAoc3RydWN0IHNlbWFwaG9yZSAqIHNlbSkKewoKCgogICAgICAgIGlmICgoKF9f
YnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkgfHwgKDEgPT0gNCkgfHwgKDEgPT0g
OCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9PSAtNCkgfHwgKDEgPT0gLTgpIHx8
ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgm
c2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp
OyBzd2l0Y2ggKDEpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291
bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1l
bW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRk
KCk7IH0gfSk7IGJyZWFrOyBjYXNlIC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNv
dW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj
aGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVt
b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo
KTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291
bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk
OC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3Vu
dCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh
ZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1l
bW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9y
eSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7
IH0gfSk7IGJyZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQp
KS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk
NC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9y
eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7
IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9
KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7
IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUw
PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi
cmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50
ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUw
PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUx
XSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr
OyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp
KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFr
OyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0s
JTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyBicmVhazsgfSAoX190eXBlb2ZfXygqJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpIChfdG1w
ICsgKDEpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoMSwgKCZzZW0tPmNvdW50KSkpIDw9IDApCiAg
ICAgICAgICAgICAgICBfX3VwKHNlbSk7Cn0KIyAyMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L2J5dGVvcmRlci5oIiAxCiMgMjAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKCmV4dGVybiB2b2lkIHVwZGF0ZV9hdGltZV9Sc21wXzkxY2ExYTcwIChzdHJ1Y3Qg
aW5vZGUgKik7CiNkZWZpbmUgVVBEQVRFX0FUSU1FKGlub2RlKSB1cGRhdGVfYXRpbWUgKGlub2Rl
KQoKZXh0ZXJuIHZvaWQgYnVmZmVyX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIGlu
b2RlX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIG1udF9pbml0KHVuc2lnbmVkIGxv
bmcpOwoKCmVudW0gYmhfc3RhdGVfYml0cyB7CiAgICAgICAgQkhfVXB0b2RhdGUsCiAgICAgICAg
QkhfRGlydHksCiAgICAgICAgQkhfTG9jaywKICAgICAgICBCSF9SZXEsCiAgICAgICAgQkhfTWFw
cGVkLAogICAgICAgIEJIX05ldywKICAgICAgICBCSF9Qcm90ZWN0ZWQsCgogICAgICAgIEJIX1By
aXZhdGVTdGFydCwKCgp9OwojIDIzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9mcy5oIgpzdHJ1Y3QgYnVmZmVyX2hlYWQgewoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg
KmJfbmV4dDsKICAgICAgICB1bnNpZ25lZCBsb25nIGJfYmxvY2tucjsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBiX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgYl9saXN0OwogICAgICAgIGtk
ZXZfdCBiX2RldjsKCiAgICAgICAgYXRvbWljX3QgYl9jb3VudDsKICAgICAgICBrZGV2X3QgYl9y
ZGV2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYl9zdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25n
IGJfZmx1c2h0aW1lOwoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfbmV4dF9mcmVlOwog
ICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYl9wcmV2X2ZyZWU7CiAgICAgICAgc3RydWN0IGJ1
ZmZlcl9oZWFkICpiX3RoaXNfcGFnZTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfcmVx
bmV4dDsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqYl9wcHJldjsKICAgICAgICBjaGFy
ICogYl9kYXRhOwogICAgICAgIHN0cnVjdCBwYWdlICpiX3BhZ2U7CiAgICAgICAgdm9pZCAoKmJf
ZW5kX2lvKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQgdXB0b2RhdGUpOwogICAgICAgIHZv
aWQgKmJfcHJpdmF0ZTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBiX3JzZWN0b3I7CiAgICAgICAg
d2FpdF9xdWV1ZV9oZWFkX3QgYl93YWl0OwoKICAgICAgICBzdHJ1Y3QgaW5vZGUgKiBiX2lub2Rl
OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgYl9pbm9kZV9idWZmZXJzOwp9OwoKdHlwZWRlZiB2
b2lkIChiaF9lbmRfaW9fdCkoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgaW50IHVwdG9kYXRlKTsK
dm9pZCBpbml0X2J1ZmZlcl9Sc21wXzczMjM5OGUyKHN0cnVjdCBidWZmZXJfaGVhZCAqLCBiaF9l
bmRfaW9fdCAqLCB2b2lkICopOwoKI2RlZmluZSBfX2J1ZmZlcl9zdGF0ZShiaCwgc3RhdGUpICgo
KGJoKS0+Yl9zdGF0ZSAmICgxVUwgPDwgQkhfICMjIHN0YXRlKSkgIT0gMCkKCiNkZWZpbmUgYnVm
ZmVyX3VwdG9kYXRlKGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxVcHRvZGF0ZSkKI2RlZmluZSBidWZm
ZXJfZGlydHkoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLERpcnR5KQojZGVmaW5lIGJ1ZmZlcl9sb2Nr
ZWQoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLExvY2spCiNkZWZpbmUgYnVmZmVyX3JlcShiaCkgX19i
dWZmZXJfc3RhdGUoYmgsUmVxKQojZGVmaW5lIGJ1ZmZlcl9tYXBwZWQoYmgpIF9fYnVmZmVyX3N0
YXRlKGJoLE1hcHBlZCkKI2RlZmluZSBidWZmZXJfbmV3KGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxO
ZXcpCiNkZWZpbmUgYnVmZmVyX3Byb3RlY3RlZChiaCkgX19idWZmZXJfc3RhdGUoYmgsUHJvdGVj
dGVkKQoKI2RlZmluZSBiaF9vZmZzZXQoYmgpICgodW5zaWduZWQgbG9uZykoYmgpLT5iX2RhdGEg
JiB+UEFHRV9NQVNLKQoKZXh0ZXJuIHZvaWQgc2V0X2JoX3BhZ2Uoc3RydWN0IGJ1ZmZlcl9oZWFk
ICpiaCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKCiNkZWZpbmUg
dG91Y2hfYnVmZmVyKGJoKSBTZXRQYWdlUmVmZXJlbmNlZChiaC0+Yl9wYWdlKQoKCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQoKI2RlZmluZSBf
TElOVVhfUElQRV9GU19JX0gKCiNkZWZpbmUgUElQRUZTX01BR0lDIDB4NTA0OTUwNDUKc3RydWN0
IHBpcGVfaW5vZGVfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKICAgICAg
ICBjaGFyICpiYXNlOwogICAgICAgIHVuc2lnbmVkIGludCBsZW47CiAgICAgICAgdW5zaWduZWQg
aW50IHN0YXJ0OwogICAgICAgIHVuc2lnbmVkIGludCByZWFkZXJzOwogICAgICAgIHVuc2lnbmVk
IGludCB3cml0ZXJzOwogICAgICAgIHVuc2lnbmVkIGludCB3YWl0aW5nX3JlYWRlcnM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHdhaXRpbmdfd3JpdGVyczsKICAgICAgICB1bnNpZ25lZCBpbnQgcl9j
b3VudGVyOwogICAgICAgIHVuc2lnbmVkIGludCB3X2NvdW50ZXI7Cn07CgoKCiNkZWZpbmUgUElQ
RV9TSVpFIFBBR0VfU0laRQoKI2RlZmluZSBQSVBFX1NFTShpbm9kZSkgKCYoaW5vZGUpLmlfc2Vt
KQojZGVmaW5lIFBJUEVfV0FJVChpbm9kZSkgKCYoaW5vZGUpLmlfcGlwZS0+d2FpdCkKI2RlZmlu
ZSBQSVBFX0JBU0UoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+YmFzZSkKI2RlZmluZSBQSVBFX1NU
QVJUKGlub2RlKSAoKGlub2RlKS5pX3BpcGUtPnN0YXJ0KQojZGVmaW5lIFBJUEVfTEVOKGlub2Rl
KSAoKGlub2RlKS5pX3BpcGUtPmxlbikKI2RlZmluZSBQSVBFX1JFQURFUlMoaW5vZGUpICgoaW5v
ZGUpLmlfcGlwZS0+cmVhZGVycykKI2RlZmluZSBQSVBFX1dSSVRFUlMoaW5vZGUpICgoaW5vZGUp
LmlfcGlwZS0+d3JpdGVycykKI2RlZmluZSBQSVBFX1dBSVRJTkdfUkVBREVSUyhpbm9kZSkgKChp
bm9kZSkuaV9waXBlLT53YWl0aW5nX3JlYWRlcnMpCiNkZWZpbmUgUElQRV9XQUlUSU5HX1dSSVRF
UlMoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d2FpdGluZ193cml0ZXJzKQojZGVmaW5lIFBJUEVf
UkNPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+cl9jb3VudGVyKQojZGVmaW5lIFBJUEVf
V0NPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d19jb3VudGVyKQoKI2RlZmluZSBQSVBF
X0VNUFRZKGlub2RlKSAoUElQRV9MRU4oaW5vZGUpID09IDApCiNkZWZpbmUgUElQRV9GVUxMKGlu
b2RlKSAoUElQRV9MRU4oaW5vZGUpID09IFBJUEVfU0laRSkKI2RlZmluZSBQSVBFX0ZSRUUoaW5v
ZGUpIChQSVBFX1NJWkUgLSBQSVBFX0xFTihpbm9kZSkpCiNkZWZpbmUgUElQRV9FTkQoaW5vZGUp
ICgoUElQRV9TVEFSVChpbm9kZSkgKyBQSVBFX0xFTihpbm9kZSkpICYgKFBJUEVfU0laRS0xKSkK
I2RlZmluZSBQSVBFX01BWF9SQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX1NUQVJUKGlu
b2RlKSkKI2RlZmluZSBQSVBFX01BWF9XQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX0VO
RChpbm9kZSkpCgoKdm9pZCBwaXBlX3dhaXQoc3RydWN0IGlub2RlICogaW5vZGUpOwoKc3RydWN0
IGlub2RlKiBwaXBlX25ldyhzdHJ1Y3QgaW5vZGUqIGlub2RlKTsKIyAyODcgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbWluaXhfZnNfaS5oIiAxCgojZGVmaW5lIF9NSU5JWF9GU19JCgoKCgpz
dHJ1Y3QgbWluaXhfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAg
X191MTYgaTFfZGF0YVsxNl07CiAgICAgICAgICAgICAgICBfX3UzMiBpMl9kYXRhWzE2XTsKICAg
ICAgICB9IHU7Cn07CiMgMjg4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfaS5o
IiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZXh0Ml9mc19pLmgi
CiNkZWZpbmUgX0xJTlVYX0VYVDJfRlNfSQoKCgoKc3RydWN0IGV4dDJfaW5vZGVfaW5mbyB7CiAg
ICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICBfX3UzMiBpX2ZsYWdzOwogICAgICAgIF9f
dTMyIGlfZmFkZHI7CiAgICAgICAgX191OCBpX2ZyYWdfbm87CiAgICAgICAgX191OCBpX2ZyYWdf
c2l6ZTsKICAgICAgICBfX3UxNiBpX29zeW5jOwogICAgICAgIF9fdTMyIGlfZmlsZV9hY2w7CiAg
ICAgICAgX191MzIgaV9kaXJfYWNsOwogICAgICAgIF9fdTMyIGlfZHRpbWU7CiAgICAgICAgX191
MzIgaV9ibG9ja19ncm91cDsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAg
ICAgX191MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgX191MzIgaV9wcmVhbGxvY19ibG9j
azsKICAgICAgICBfX3UzMiBpX3ByZWFsbG9jX2NvdW50OwogICAgICAgIGludCBpX25ld19pbm9k
ZToxOwp9OwojIDI4OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ocGZzX2ZzX2kuaCIgMQoK
I2RlZmluZSBfSFBGU19GU19JCgpzdHJ1Y3QgaHBmc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNp
Z25lZCBsb25nIG1tdV9wcml2YXRlOwogICAgICAgIGlub190IGlfcGFyZW50X2RpcjsKICAgICAg
ICB1bnNpZ25lZCBpX2RubzsKICAgICAgICB1bnNpZ25lZCBpX2Rwb3M7CiAgICAgICAgdW5zaWdu
ZWQgaV9kc3ViZG5vOwogICAgICAgIHVuc2lnbmVkIGlfZmlsZV9zZWM7CiAgICAgICAgdW5zaWdu
ZWQgaV9kaXNrX3NlYzsKICAgICAgICB1bnNpZ25lZCBpX25fc2VjczsKICAgICAgICB1bnNpZ25l
ZCBpX2VhX3NpemU7CiAgICAgICAgdW5zaWduZWQgaV9jb252IDogMjsKICAgICAgICB1bnNpZ25l
ZCBpX2VhX21vZGUgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfZWFfdWlkIDogMTsKICAgICAgICB1
bnNpZ25lZCBpX2VhX2dpZCA6IDE7CiAgICAgICAgdW5zaWduZWQgaV9kaXJ0eSA6IDE7CiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBpX3NlbTsKICAgICAgICBsb2ZmX3QgKippX3JkZGlyX29mZjsK
fTsKCiNkZWZpbmUgaV9ocGZzX2RubyB1LmhwZnNfaS5pX2RubwojZGVmaW5lIGlfaHBmc19wYXJl
bnRfZGlyIHUuaHBmc19pLmlfcGFyZW50X2RpcgojZGVmaW5lIGlfaHBmc19uX3NlY3MgdS5ocGZz
X2kuaV9uX3NlY3MKI2RlZmluZSBpX2hwZnNfZmlsZV9zZWMgdS5ocGZzX2kuaV9maWxlX3NlYwoj
ZGVmaW5lIGlfaHBmc19kaXNrX3NlYyB1LmhwZnNfaS5pX2Rpc2tfc2VjCiNkZWZpbmUgaV9ocGZz
X2Rwb3MgdS5ocGZzX2kuaV9kcG9zCiNkZWZpbmUgaV9ocGZzX2RzdWJkbm8gdS5ocGZzX2kuaV9k
c3ViZG5vCiNkZWZpbmUgaV9ocGZzX2VhX3NpemUgdS5ocGZzX2kuaV9lYV9zaXplCiNkZWZpbmUg
aV9ocGZzX2NvbnYgdS5ocGZzX2kuaV9jb252CiNkZWZpbmUgaV9ocGZzX2VhX21vZGUgdS5ocGZz
X2kuaV9lYV9tb2RlCiNkZWZpbmUgaV9ocGZzX2VhX3VpZCB1LmhwZnNfaS5pX2VhX3VpZAojZGVm
aW5lIGlfaHBmc19lYV9naWQgdS5ocGZzX2kuaV9lYV9naWQKCgojZGVmaW5lIGlfaHBmc19zZW0g
dS5ocGZzX2kuaV9zZW0KI2RlZmluZSBpX2hwZnNfcmRkaXJfb2ZmIHUuaHBmc19pLmlfcmRkaXJf
b2ZmCiNkZWZpbmUgaV9ocGZzX2RpcnR5IHUuaHBmc19pLmlfZGlydHkKIyAyOTAgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbnRmc19mc19pLmgiIDEKCiNkZWZpbmUgX0xJTlVYX05URlNfRlNf
SV9ICgoKc3RydWN0IG50ZnNfYXR0cmlidXRlOwpzdHJ1Y3QgbnRmc19zYl9pbmZvOwoKCgojZGVm
aW5lIE5URlNfSU5URUdSQUxfVFlQRVMKdHlwZWRlZiB1OCBudGZzX3U4Owp0eXBlZGVmIHUxNiBu
dGZzX3UxNjsKdHlwZWRlZiB1MzIgbnRmc191MzI7CnR5cGVkZWYgdTY0IG50ZnNfdTY0Owp0eXBl
ZGVmIHM4IG50ZnNfczg7CnR5cGVkZWYgczE2IG50ZnNfczE2Owp0eXBlZGVmIHMzMiBudGZzX3Mz
MjsKdHlwZWRlZiBzNjQgbnRmc19zNjQ7CgoKCiNkZWZpbmUgTlRNT0RFX1QKdHlwZWRlZiBfX2tl
cm5lbF9tb2RlX3QgbnRtb2RlX3Q7CgoKI2RlZmluZSBOVEZTX1VJRF9UCnR5cGVkZWYgdWlkX3Qg
bnRmc191aWRfdDsKCgojZGVmaW5lIE5URlNfR0lEX1QKdHlwZWRlZiBnaWRfdCBudGZzX2dpZF90
OwoKCiNkZWZpbmUgTlRGU19TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3QgbnRmc19zaXpl
X3Q7CgoKI2RlZmluZSBOVEZTX1RJTUVfVAp0eXBlZGVmIF9fa2VybmVsX3RpbWVfdCBudGZzX3Rp
bWVfdDsKCgoKCiNkZWZpbmUgTlRGU19XQ0hBUl9UCnR5cGVkZWYgdTE2IG50ZnNfd2NoYXJfdDsK
CgoKI2RlZmluZSBOVEZTX09GRlNFVF9UCnR5cGVkZWYgczY0IG50ZnNfb2Zmc2V0X3Q7CgoKCiNk
ZWZpbmUgTlRGU19USU1FNjRfVAp0eXBlZGVmIHU2NCBudGZzX3RpbWU2NF90OwojIDY2ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfaS5oIgojZGVmaW5lIE5URlNf
Q0xVU1RFUl9UCnR5cGVkZWYgczMyIG50ZnNfY2x1c3Rlcl90OwoKCgpzdHJ1Y3QgbnRmc19pbm9k
ZV9pbmZvewogICAgICAgIHVuc2lnbmVkIGxvbmcgbW11X3ByaXZhdGU7CiAgICAgICAgc3RydWN0
IG50ZnNfc2JfaW5mbyAqdm9sOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9udW1iZXI7CiAgICAg
ICAgX191MTYgc2VxdWVuY2VfbnVtYmVyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKmF0dHI7CiAg
ICAgICAgaW50IGF0dHJfY291bnQ7CiAgICAgICAgc3RydWN0IG50ZnNfYXR0cmlidXRlICphdHRy
czsKICAgICAgICBpbnQgcmVjb3JkX2NvdW50OwogICAgICAgIGludCAqcmVjb3JkczsKCiAgICAg
ICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHJlY29yZHNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbHVzdGVyc19w
ZXJfcmVjb3JkOwogICAgICAgICAgICAgICAgfSBpbmRleDsKICAgICAgICB9IHU7Cn07CiMgMjkx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX2kuaCIgMQoKI2RlZmluZSBfTVNE
T1NfRlNfSQoKCgoKCnN0cnVjdCBtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBs
b25nIG1tdV9wcml2YXRlOwogICAgICAgIGludCBpX3N0YXJ0OwogICAgICAgIGludCBpX2xvZ3N0
YXJ0OwogICAgICAgIGludCBpX2F0dHJzOwogICAgICAgIGludCBpX2N0aW1lX21zOwogICAgICAg
IGludCBpX2xvY2F0aW9uOwogICAgICAgIHN0cnVjdCBpbm9kZSAqaV9mYXRfaW5vZGU7CiAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCBpX2ZhdF9oYXNoOwp9OwojIDI5MiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAxCgojZGVmaW5lIFVNU0RPU19GU19JX0gKCgoKCgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbXNkb3NfZnNfaS5oIiAxCiMg
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQojIDEw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vtc2Rvc19mc19pLmgiIDIKIyAz
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIgpzdHJ1
Y3QgZGlyX2xvY2tpbmdfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgcDsKICAgICAg
ICBzaG9ydCBpbnQgbG9va2luZzsKICAgICAgICBzaG9ydCBpbnQgY3JlYXRpbmc7CgoKCiAgICAg
ICAgbG9uZyBwaWQ7Cgp9OwoKc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICBzdHJ1
Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pbmZvOwogICAgICAgIHN0cnVjdCBkaXJfbG9ja2lu
Z19pbmZvIGRpcl9pbmZvOwogICAgICAgIGludCBpX3BhdGNoZWQ7CiAgICAgICAgaW50IGlfaXNf
aGxpbms7CiAgICAgICAgb2ZmX3QgcG9zOwp9OwojIDI5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9pc29fZnNfaS5oIiAxCgojZGVmaW5lIF9JU09fRlNfSQoKCgoKc3RydWN0IGlzb19pbm9k
ZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBpbnQgaV9maXJzdF9leHRlbnQ7CiAgICAgICAgdW5z
aWduZWQgY2hhciBpX2ZpbGVfZm9ybWF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9uZXh0X3Nl
Y3Rpb25faW5vOwogICAgICAgIG9mZl90IGlfc2VjdGlvbl9zaXplOwp9OwojIDI5NCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9ORlNfRlNfSQoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgNSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0LmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L25mc19mc19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L25mcy5oIiAxCgoKCgoKCgojZGVmaW5lIF9MSU5VWF9ORlNfSAoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N1bnJwYy9tc2dfcHJvdC5oIiAx
CgoKCgoKCgojZGVmaW5lIF9MSU5VWF9TVU5SUENfTVNHUFJPVF9IXwoKCgojZGVmaW5lIFJQQ19W
RVJTSU9OIDIKCmVudW0gcnBjX2F1dGhfZmxhdm9yIHsKICAgICAgICBSUENfQVVUSF9OVUxMID0g
MCwKICAgICAgICBSUENfQVVUSF9VTklYID0gMSwKICAgICAgICBSUENfQVVUSF9TSE9SVCA9IDIs
CiAgICAgICAgUlBDX0FVVEhfREVTID0gMywKICAgICAgICBSUENfQVVUSF9LUkIgPSA0LAp9OwoK
ZW51bSBycGNfbXNnX3R5cGUgewogICAgICAgIFJQQ19DQUxMID0gMCwKICAgICAgICBSUENfUkVQ
TFkgPSAxCn07CgplbnVtIHJwY19yZXBseV9zdGF0IHsKICAgICAgICBSUENfTVNHX0FDQ0VQVEVE
ID0gMCwKICAgICAgICBSUENfTVNHX0RFTklFRCA9IDEKfTsKCmVudW0gcnBjX2FjY2VwdF9zdGF0
IHsKICAgICAgICBSUENfU1VDQ0VTUyA9IDAsCiAgICAgICAgUlBDX1BST0dfVU5BVkFJTCA9IDEs
CiAgICAgICAgUlBDX1BST0dfTUlTTUFUQ0ggPSAyLAogICAgICAgIFJQQ19QUk9DX1VOQVZBSUwg
PSAzLAogICAgICAgIFJQQ19HQVJCQUdFX0FSR1MgPSA0LAogICAgICAgIFJQQ19TWVNURU1fRVJS
ID0gNQp9OwoKZW51bSBycGNfcmVqZWN0X3N0YXQgewogICAgICAgIFJQQ19NSVNNQVRDSCA9IDAs
CiAgICAgICAgUlBDX0FVVEhfRVJST1IgPSAxCn07CgplbnVtIHJwY19hdXRoX3N0YXQgewogICAg
ICAgIFJQQ19BVVRIX09LID0gMCwKICAgICAgICBSUENfQVVUSF9CQURDUkVEID0gMSwKICAgICAg
ICBSUENfQVVUSF9SRUpFQ1RFRENSRUQgPSAyLAogICAgICAgIFJQQ19BVVRIX0JBRFZFUkYgPSAz
LAogICAgICAgIFJQQ19BVVRIX1JFSkVDVEVEVkVSRiA9IDQsCiAgICAgICAgUlBDX0FVVEhfVE9P
V0VBSyA9IDUKfTsKCiNkZWZpbmUgUlBDX1BNQVBfUFJPR1JBTSAxMDAwMDAKI2RlZmluZSBSUENf
UE1BUF9WRVJTSU9OIDIKI2RlZmluZSBSUENfUE1BUF9QT1JUIDExMQoKI2RlZmluZSBSUENfTUFY
TkVUTkFNRUxFTiAyNTYKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u
ZnMuaCIgMgoKI2RlZmluZSBORlNfUFJPR1JBTSAxMDAwMDMKI2RlZmluZSBORlNfUE9SVCAyMDQ5
CiNkZWZpbmUgTkZTX01BWERBVEEgODE5MgojZGVmaW5lIE5GU19NQVhQQVRITEVOIDEwMjQKI2Rl
ZmluZSBORlNfTUFYTkFNTEVOIDI1NQojZGVmaW5lIE5GU19NQVhHUk9VUFMgMTYKI2RlZmluZSBO
RlNfRkhTSVpFIDMyCiNkZWZpbmUgTkZTX0NPT0tJRVNJWkUgNAojZGVmaW5lIE5GU19GSUZPX0RF
ViAoLTEpCiNkZWZpbmUgTkZTTU9ERV9GTVQgMDE3MDAwMAojZGVmaW5lIE5GU01PREVfRElSIDAw
NDAwMDAKI2RlZmluZSBORlNNT0RFX0NIUiAwMDIwMDAwCiNkZWZpbmUgTkZTTU9ERV9CTEsgMDA2
MDAwMAojZGVmaW5lIE5GU01PREVfUkVHIDAxMDAwMDAKI2RlZmluZSBORlNNT0RFX0xOSyAwMTIw
MDAwCiNkZWZpbmUgTkZTTU9ERV9TT0NLIDAxNDAwMDAKI2RlZmluZSBORlNNT0RFX0ZJRk8gMDAx
MDAwMAoKI2RlZmluZSBORlNfTU5UX1BST0dSQU0gMTAwMDA1CiNkZWZpbmUgTkZTX01OVF9QT1JU
IDYyNwojIDQxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25mcy5oIgogZW51
bSBuZnNfc3RhdCB7CiAgICAgICAgTkZTX09LID0gMCwKICAgICAgICBORlNFUlJfUEVSTSA9IDEs
CiAgICAgICAgTkZTRVJSX05PRU5UID0gMiwKICAgICAgICBORlNFUlJfSU8gPSA1LAogICAgICAg
IE5GU0VSUl9OWElPID0gNiwKICAgICAgICBORlNFUlJfRUFHQUlOID0gMTEsCiAgICAgICAgTkZT
RVJSX0FDQ0VTID0gMTMsCiAgICAgICAgTkZTRVJSX0VYSVNUID0gMTcsCiAgICAgICAgTkZTRVJS
X1hERVYgPSAxOCwKICAgICAgICBORlNFUlJfTk9ERVYgPSAxOSwKICAgICAgICBORlNFUlJfTk9U
RElSID0gMjAsCiAgICAgICAgTkZTRVJSX0lTRElSID0gMjEsCiAgICAgICAgTkZTRVJSX0lOVkFM
ID0gMjIsCiAgICAgICAgTkZTRVJSX0ZCSUcgPSAyNywKICAgICAgICBORlNFUlJfTk9TUEMgPSAy
OCwKICAgICAgICBORlNFUlJfUk9GUyA9IDMwLAogICAgICAgIE5GU0VSUl9NTElOSyA9IDMxLAog
ICAgICAgIE5GU0VSUl9PUE5PVFNVUFAgPSA0NSwKICAgICAgICBORlNFUlJfTkFNRVRPT0xPTkcg
PSA2MywKICAgICAgICBORlNFUlJfTk9URU1QVFkgPSA2NiwKICAgICAgICBORlNFUlJfRFFVT1Qg
PSA2OSwKICAgICAgICBORlNFUlJfU1RBTEUgPSA3MCwKICAgICAgICBORlNFUlJfUkVNT1RFID0g
NzEsCiAgICAgICAgTkZTRVJSX1dGTFVTSCA9IDk5LAogICAgICAgIE5GU0VSUl9CQURIQU5ETEUg
PSAxMDAwMSwKICAgICAgICBORlNFUlJfTk9UX1NZTkMgPSAxMDAwMiwKICAgICAgICBORlNFUlJf
QkFEX0NPT0tJRSA9IDEwMDAzLAogICAgICAgIE5GU0VSUl9OT1RTVVBQID0gMTAwMDQsCiAgICAg
ICAgTkZTRVJSX1RPT1NNQUxMID0gMTAwMDUsCiAgICAgICAgTkZTRVJSX1NFUlZFUkZBVUxUID0g
MTAwMDYsCiAgICAgICAgTkZTRVJSX0JBRFRZUEUgPSAxMDAwNywKICAgICAgICBORlNFUlJfSlVL
RUJPWCA9IDEwMDA4CiB9OwoKCgplbnVtIG5mc19mdHlwZSB7CiAgICAgICAgTkZOT04gPSAwLAog
ICAgICAgIE5GUkVHID0gMSwKICAgICAgICBORkRJUiA9IDIsCiAgICAgICAgTkZCTEsgPSAzLAog
ICAgICAgIE5GQ0hSID0gNCwKICAgICAgICBORkxOSyA9IDUsCiAgICAgICAgTkZTT0NLID0gNiwK
ICAgICAgICBORkJBRCA9IDcsCiAgICAgICAgTkZGSUZPID0gOAp9OwoKCgoKCiNkZWZpbmUgTkZT
X01BWEZIU0laRSA2NApzdHJ1Y3QgbmZzX2ZoIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXpl
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVs2NF07Cn07CgoKCgoKI2RlZmluZSBORlNfT0ZG
U0VUX01BWCAoKF9fczY0KSgofihfX3U2NCkwKSA+PiAxKSkKCgplbnVtIG5mczNfc3RhYmxlX2hv
dyB7CiAgICAgICAgTkZTX1VOU1RBQkxFID0gMCwKICAgICAgICBORlNfREFUQV9TWU5DID0gMSwK
ICAgICAgICBORlNfRklMRV9TWU5DID0gMgp9OwojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIgMgoKCgoKc3RydWN0IG5mc19pbm9kZV9pbmZvIHsKCgoK
ICAgICAgICBfX3U2NCBmc2lkOwogICAgICAgIF9fdTY0IGZpbGVpZDsKCgoKCiAgICAgICAgc3Ry
dWN0IG5mc19maCBmaDsKCgoKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CiMgNDUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIKICAgICAgICB1bnNp
Z25lZCBsb25nIHJlYWRfY2FjaGVfamlmZmllczsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2N0
aW1lOwogICAgICAgIF9fdTY0IHJlYWRfY2FjaGVfbXRpbWU7CiAgICAgICAgX191NjQgcmVhZF9j
YWNoZV9hdGltZTsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2lzaXplOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgYXR0cnRpbWVvOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnRpbWVvX3RpbWVz
dGFtcDsKCgoKCgogICAgICAgIF9fdTMyIGNvb2tpZXZlcmZbMl07CgoKCgogICAgICAgIHN0cnVj
dCBsaXN0X2hlYWQgcmVhZDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRpcnR5OwogICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgY29tbWl0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgd3JpdGVi
YWNrOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmRpcnR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jb21taXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzOwoKCiAgICAgICAgc3RydWN0
IGlub2RlICpoYXNoX25leHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmhhc2hf
cHJldjsKICAgICAgICB1bnNpZ25lZCBsb25nIG5leHRzY2FuOwp9OwoKCgoKI2RlZmluZSBORlNf
SU5PX1NUQUxFIDB4MDAwMQojZGVmaW5lIE5GU19JTk9fQURWSVNFX1JEUExVUyAweDAwMDIKI2Rl
ZmluZSBORlNfSU5PX1JFVkFMSURBVElORyAweDAwMDQKI2RlZmluZSBORlNfSVNfU05BUFNIT1Qg
MHgwMDEwCiNkZWZpbmUgTkZTX0lOT19GTFVTSCAweDAwMjAKCgoKCnN0cnVjdCBuZnNfbG9ja19p
bmZvIHsKICAgICAgICB1MzIgc3RhdGU7CiAgICAgICAgdTMyIGZsYWdzOwogICAgICAgIHN0cnVj
dCBubG1faG9zdCAqaG9zdDsKfTsKCgoKCiNkZWZpbmUgTkZTX0xDS19HUkFOVEVEIDB4MDAwMQoj
IDI5NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX2kuaCIgMQoKI2RlZmluZSBf
U1lTVl9GU19JCgoKCgpzdHJ1Y3Qgc3lzdl9pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9kYXRh
WzEwKzErMSsxXTsKCgoKCn07CiMgMjk2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FmZnNf
ZnNfaS5oIiAxCgojZGVmaW5lIF9BRkZTX0ZTX0kKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9hLm91dC5oIiAxCgojZGVmaW5lIF9fQV9PVVRfR05VX0hfXwoKI2RlZmlu
ZSBfX0dOVV9FWEVDX01BQ1JPU19fCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vYS5vdXQuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfQV9PVVRfSAojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hLm91dC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9hLm91dC5oIiAyCgpzdHJ1Y3QgZXhlYyB7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBhX2luZm87CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX3RleHQ7CiAgICAgICAgdW5zaWduZWQg
bG9uZyBhX2RhdGE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX2JzczsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGFfZW50cnk7Cn07CgojZGVmaW5lIE5fVFhUQUREUih4KSAwCiNkZWZpbmUgTl9EQVRB
RERSKHgpIDAKI2RlZmluZSBOX0JTU0FERFIoeCkgMAojZGVmaW5lIE5fRFJTSVpFKHgpIDAKI2Rl
ZmluZSBOX1RSU0laRSh4KSAwCiNkZWZpbmUgTl9TWU1TSVpFKHgpIDAKI2RlZmluZSBOX1RYVE9G
Rih4KSAwCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEK
IyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYS5vdXQuaCIgMgojZGVmaW5l
IFNUQUNLX1RPUCAoMHg4MDAwMDAwMDAwMDAwMDAwVUwgKyAoMVVMIDw8ICg0KlBBR0VfU0hJRlQg
LSAxMikpIC0gUEFHRV9TSVpFKQojZGVmaW5lIElBNjRfUkJTX0JPVCAoU1RBQ0tfVE9QIC0gMHg4
MDAwMDAwMEwgKyBQQUdFX1NJWkUpCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9hLm91dC5oIiAyCgoKCgplbnVtIG1hY2hpbmVfdHlwZSB7CgoKCiAgTV9PTERTVU4yID0g
MCwKCgoKCiAgTV82ODAxMCA9IDEsCgoKCgogIE1fNjgwMjAgPSAyLAoKCgoKICBNX1NQQVJDID0g
MywKCgogIE1fMzg2ID0gMTAwLAogIE1fTUlQUzEgPSAxNTEsCiAgTV9NSVBTMiA9IDE1Mgp9OwoK
CiNkZWZpbmUgTl9NQUdJQyhleGVjKSAoKGV4ZWMpLmFfaW5mbyAmIDB4ZmZmZikKCiNkZWZpbmUg
Tl9NQUNIVFlQRShleGVjKSAoKGVudW0gbWFjaGluZV90eXBlKSgoKGV4ZWMpLmFfaW5mbyA+PiAx
NikgJiAweGZmKSkKI2RlZmluZSBOX0ZMQUdTKGV4ZWMpICgoKGV4ZWMpLmFfaW5mbyA+PiAyNCkg
JiAweGZmKQojZGVmaW5lIE5fU0VUX0lORk8oZXhlYywgbWFnaWMsIHR5cGUsIGZsYWdzKSAoKGV4
ZWMpLmFfaW5mbyA9ICgobWFnaWMpICYgMHhmZmZmKSB8ICgoKGludCkodHlwZSkgJiAweGZmKSA8
PCAxNikgfCAoKChmbGFncykgJiAweGZmKSA8PCAyNCkpCgoKCiNkZWZpbmUgTl9TRVRfTUFHSUMo
ZXhlYywgbWFnaWMpICgoZXhlYykuYV9pbmZvID0gKCgoZXhlYykuYV9pbmZvICYgMHhmZmZmMDAw
MCkgfCAoKG1hZ2ljKSAmIDB4ZmZmZikpKQoKCiNkZWZpbmUgTl9TRVRfTUFDSFRZUEUoZXhlYywg
bWFjaHR5cGUpICgoZXhlYykuYV9pbmZvID0gKChleGVjKS5hX2luZm8mMHhmZjAwZmZmZikgfCAo
KCgoaW50KShtYWNodHlwZSkpJjB4ZmYpIDw8IDE2KSkKCgoKI2RlZmluZSBOX1NFVF9GTEFHUyhl
eGVjLCBmbGFncykgKChleGVjKS5hX2luZm8gPSAoKGV4ZWMpLmFfaW5mbyYweDAwZmZmZmZmKSB8
ICgoKGZsYWdzKSAmIDB4ZmYpIDw8IDI0KSkKCgoKCiNkZWZpbmUgT01BR0lDIDA0MDcKCiNkZWZp
bmUgTk1BR0lDIDA0MTAKCiNkZWZpbmUgWk1BR0lDIDA0MTMKCgojZGVmaW5lIFFNQUdJQyAwMzE0
CgoKI2RlZmluZSBDTUFHSUMgMDQyMQoKCiNkZWZpbmUgTl9CQURNQUcoeCkgKE5fTUFHSUMoeCkg
IT0gT01BR0lDICYmIE5fTUFHSUMoeCkgIT0gTk1BR0lDICYmIE5fTUFHSUMoeCkgIT0gWk1BR0lD
ICYmIE5fTUFHSUMoeCkgIT0gUU1BR0lDKQoKCgoKCiNkZWZpbmUgX05fSERST0ZGKHgpICgxMDI0
IC0gc2l6ZW9mIChzdHJ1Y3QgZXhlYykpCiMgODkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX0RBVE9GRih4KSAoTl9UWFRPRkYoeCkgKyAoeCku
YV90ZXh0KQoKCgojZGVmaW5lIE5fVFJFTE9GRih4KSAoTl9EQVRPRkYoeCkgKyAoeCkuYV9kYXRh
KQoKCgojZGVmaW5lIE5fRFJFTE9GRih4KSAoTl9UUkVMT0ZGKHgpICsgTl9UUlNJWkUoeCkpCgoK
CiNkZWZpbmUgTl9TWU1PRkYoeCkgKE5fRFJFTE9GRih4KSArIE5fRFJTSVpFKHgpKQoKCgojZGVm
aW5lIE5fU1RST0ZGKHgpIChOX1NZTU9GRih4KSArIE5fU1lNU0laRSh4KSkKIyAxMzEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvYS5vdXQuaCIgMgoKCgoKI2RlZmluZSBTRUdNRU5UX1NJWkUgUEFHRV9T
SVpFCgoKCgojZGVmaW5lIF9OX1NFR01FTlRfUk9VTkQoeCkgKCgoeCkgKyBTRUdNRU5UX1NJWkUg
LSAxKSAmIH4oU0VHTUVOVF9TSVpFIC0gMSkpCgojZGVmaW5lIF9OX1RYVEVOREFERFIoeCkgKE5f
VFhUQUREUih4KSsoeCkuYV90ZXh0KQojIDE1NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hLm91dC5oIgpzdHJ1Y3Qgbmxpc3QgewogIHVuaW9uIHsKICAgIGNoYXIgKm5fbmFt
ZTsKICAgIHN0cnVjdCBubGlzdCAqbl9uZXh0OwogICAgbG9uZyBuX3N0cng7CiAgfSBuX3VuOwog
IHVuc2lnbmVkIGNoYXIgbl90eXBlOwogIGNoYXIgbl9vdGhlcjsKICBzaG9ydCBuX2Rlc2M7CiAg
dW5zaWduZWQgbG9uZyBuX3ZhbHVlOwp9OwoKCgojZGVmaW5lIE5fVU5ERiAwCgoKI2RlZmluZSBO
X0FCUyAyCgoKI2RlZmluZSBOX1RFWFQgNAoKCiNkZWZpbmUgTl9EQVRBIDYKCgojZGVmaW5lIE5f
QlNTIDgKCgojZGVmaW5lIE5fRk4gMTUKCgoKI2RlZmluZSBOX0VYVCAxCgoKI2RlZmluZSBOX1RZ
UEUgMDM2CgoKI2RlZmluZSBOX1NUQUIgMDM0MAojIDIwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9hLm91dC5oIgojZGVmaW5lIE5fSU5EUiAweGEKIyAyMjEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX1NFVEEgMHgxNAoj
ZGVmaW5lIE5fU0VUVCAweDE2CiNkZWZpbmUgTl9TRVREIDB4MTgKI2RlZmluZSBOX1NFVEIgMHgx
QQoKCiNkZWZpbmUgTl9TRVRWIDB4MUMKCgoKCgoKCnN0cnVjdCByZWxvY2F0aW9uX2luZm8KewoK
ICBpbnQgcl9hZGRyZXNzOwoKICB1bnNpZ25lZCBpbnQgcl9zeW1ib2xudW06MjQ7CgoKCiAgdW5z
aWduZWQgaW50IHJfcGNyZWw6MTsKCgogIHVuc2lnbmVkIGludCByX2xlbmd0aDoyOwoKCgoKCgog
IHVuc2lnbmVkIGludCByX2V4dGVybjoxOwoKCgoKCgoKICB1bnNpZ25lZCBpbnQgcl9wYWQ6NDsK
Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX2kuaCIg
MgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKCiNk
ZWZpbmUgX0xJTlVYX1RJTUVfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9wYXJhbS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9QQVJBTV9ICiMgMTEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9wYXJhbS5oIiAyCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhcmFtLmgiCiNkZWZpbmUgSFogMTAyNAoKCiNkZWZpbmUgRVhFQ19QQUdFU0laRSA2NTUzNgoK
CiNkZWZpbmUgTkdST1VQUyAzMgoKCgojZGVmaW5lIE5PR1JPVVAgKC0xKQoKCiNkZWZpbmUgTUFY
SE9TVE5BTUVMRU4gNjQKCgojZGVmaW5lIENMT0NLU19QRVJfU0VDIEhaCiMgNSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3RpbWUuaCIgMgoKCiNkZWZpbmUgX1NUUlVDVF9USU1FU1BFQwpzdHJ1Y3Qg
dGltZXNwZWMgewogICAgICAgIHRpbWVfdCB0dl9zZWM7CiAgICAgICAgbG9uZyB0dl9uc2VjOwp9
OwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIKI2RlZmlu
ZSBNQVhfSklGRllfT0ZGU0VUICgofjBVTCA+PiAxKS0xKQoKc3RhdGljIF9faW5saW5lX18gdW5z
aWduZWQgbG9uZwp0aW1lc3BlY190b19qaWZmaWVzKHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHNlYyA9IHZhbHVlLT50dl9zZWM7CiAgICAgICAgbG9uZyBu
c2VjID0gdmFsdWUtPnR2X25zZWM7CgogICAgICAgIGlmIChzZWMgPj0gKCgofjBVTCA+PiAxKS0x
KSAvIDEwMjQpKQogICAgICAgICAgICAgICAgcmV0dXJuICgofjBVTCA+PiAxKS0xKTsKICAgICAg
ICBuc2VjICs9IDEwMDAwMDAwMDBMIC8gMTAyNCAtIDE7CiAgICAgICAgbnNlYyAvPSAxMDAwMDAw
MDAwTCAvIDEwMjQ7CiAgICAgICAgcmV0dXJuIDEwMjQgKiBzZWMgKyBuc2VjOwp9CgpzdGF0aWMg
X19pbmxpbmVfXyB2b2lkCmppZmZpZXNfdG9fdGltZXNwZWModW5zaWduZWQgbG9uZyBqaWZmaWVz
X1JzbXBfMGRhMDJkNjcsIHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsKICAgICAgICB2YWx1ZS0+
dHZfbnNlYyA9IChqaWZmaWVzX1JzbXBfMGRhMDJkNjcgJSAxMDI0KSAqICgxMDAwMDAwMDAwTCAv
IDEwMjQpOwogICAgICAgIHZhbHVlLT50dl9zZWMgPSBqaWZmaWVzX1JzbXBfMGRhMDJkNjcgLyAx
MDI0Owp9CiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZS5oIgpz
dGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKbWt0aW1lICh1bnNpZ25lZCBpbnQgeWVhciwgdW5z
aWduZWQgaW50IG1vbiwKICAgICAgICB1bnNpZ25lZCBpbnQgZGF5LCB1bnNpZ25lZCBpbnQgaG91
ciwKICAgICAgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgc2VjKQp7CiAgICAgICAg
aWYgKDAgPj0gKGludCkgKG1vbiAtPSAyKSkgewogICAgICAgICAgICAgICAgbW9uICs9IDEyOwog
ICAgICAgICAgICAgICAgeWVhciAtPSAxOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICgoKAog
ICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpICh5ZWFyLzQgLSB5ZWFyLzEwMCArIHllYXIv
NDAwICsgMzY3Km1vbi8xMiArIGRheSkgKwogICAgICAgICAgICAgICAgICAgICAgICB5ZWFyKjM2
NSAtIDcxOTQ5OQogICAgICAgICAgICApKjI0ICsgaG91cgogICAgICAgICAgKSo2MCArIG1pbgog
ICAgICAgICkqNjAgKyBzZWM7Cn0KCgoKCnN0cnVjdCB0aW1ldmFsIHsKICAgICAgICB0aW1lX3Qg
dHZfc2VjOwogICAgICAgIHN1c2Vjb25kc190IHR2X3VzZWM7Cn07CgpzdHJ1Y3QgdGltZXpvbmUg
ewogICAgICAgIGludCB0el9taW51dGVzd2VzdDsKICAgICAgICBpbnQgdHpfZHN0dGltZTsKfTsK
CiNkZWZpbmUgTkZEQklUUyBfX05GREJJVFMKCgpleHRlcm4gdm9pZCBkb19nZXR0aW1lb2ZkYXlf
UnNtcF83MjI3MGUzNShzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBkb19zZXR0aW1l
b2ZkYXlfUnNtcF8xOWQ3YjFmZihzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBnZXRf
ZmFzdF90aW1lX1JzbXBfNjA3NDMwMjIoc3RydWN0IHRpbWV2YWwgKnR2KTsKZXh0ZXJuIHZvaWQg
KCpkb19nZXRfZmFzdF90aW1lKShzdHJ1Y3QgdGltZXZhbCAqKTsKCgojZGVmaW5lIEZEX1NFVFNJ
WkUgX19GRF9TRVRTSVpFCiNkZWZpbmUgRkRfU0VUKGZkLCBmZHNldHApIF9fRkRfU0VUKGZkLGZk
c2V0cCkKI2RlZmluZSBGRF9DTFIoZmQsIGZkc2V0cCkgX19GRF9DTFIoZmQsZmRzZXRwKQojZGVm
aW5lIEZEX0lTU0VUKGZkLCBmZHNldHApIF9fRkRfSVNTRVQoZmQsZmRzZXRwKQojZGVmaW5lIEZE
X1pFUk8oZmRzZXRwKSBfX0ZEX1pFUk8oZmRzZXRwKQoKCgoKCiNkZWZpbmUgSVRJTUVSX1JFQUwg
MAojZGVmaW5lIElUSU1FUl9WSVJUVUFMIDEKI2RlZmluZSBJVElNRVJfUFJPRiAyCgpzdHJ1Y3Qg
aXRpbWVyc3BlYyB7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIGl0X2ludGVydmFsOwogICAgICAg
IHN0cnVjdCB0aW1lc3BlYyBpdF92YWx1ZTsKfTsKCnN0cnVjdCBpdGltZXJ2YWwgewogICAgICAg
IHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X3Zh
bHVlOwp9OwojIDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19p
LmgiIDIKCiNkZWZpbmUgQUZGU19DQUNIRV9TSVpFIFBBR0VfU0laRQoKCiNkZWZpbmUgQUZGU19N
QVhfUFJFQUxMT0MgMzIKI2RlZmluZSBBRkZTX0xDX1NJWkUgKEFGRlNfQ0FDSEVfU0laRS9zaXpl
b2YodTMyKS8yKQojZGVmaW5lIEFGRlNfQUNfU0laRSAoQUZGU19DQUNIRV9TSVpFL3NpemVvZihz
dHJ1Y3QgYWZmc19leHRfa2V5KS8yKQojZGVmaW5lIEFGRlNfQUNfTUFTSyAoQUZGU19BQ19TSVpF
LTEpCgpzdHJ1Y3QgYWZmc19leHRfa2V5IHsKICAgICAgICB1MzIgZXh0OwogICAgICAgIHUzMiBr
ZXk7Cn07CgoKCgpzdHJ1Y3QgYWZmc19pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9vcGVuY250
OwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV9saW5rX2xvY2s7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBpX2V4dF9sb2NrOwojZGVmaW5lIGlfaGFzaF9sb2NrIGlfZXh0X2xvY2sKIHUzMiBp
X2Jsa2NudDsKICAgICAgICB1MzIgaV9leHRjbnQ7CiAgICAgICAgdTMyICppX2xjOwogICAgICAg
IHUzMiBpX2xjX3NpemU7CiAgICAgICAgdTMyIGlfbGNfc2hpZnQ7CiAgICAgICAgdTMyIGlfbGNf
bWFzazsKICAgICAgICBzdHJ1Y3QgYWZmc19leHRfa2V5ICppX2FjOwogICAgICAgIHUzMiBpX2V4
dF9sYXN0OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqaV9leHRfYmg7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAgICB1MzIgaV9wcm90ZWN0OwogICAgICAgIHUz
MiBpX2xhc3RhbGxvYzsKICAgICAgICBpbnQgaV9wYV9jbnQ7CiMgNTEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19pLmgiCn07CgoKI2RlZmluZSBBRkZTX0lOT0RF
ICgmaW5vZGUtPnUuYWZmc19pKQojZGVmaW5lIEFGRlNfRElSICgmZGlyLT51LmFmZnNfaSkKIyAy
OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzX2kuaCIgMQojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VG
U19GU19JX0gKCnN0cnVjdCB1ZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAg
ICAgICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICAgICAgICAgIF9fdTggaV9zeW1saW5r
WzQqMTVdOwogICAgICAgIH0gaV91MTsKICAgICAgICBfX3U2NCBpX3NpemU7CiAgICAgICAgX191
MzIgaV9mbGFnczsKICAgICAgICBfX3UzMiBpX2dlbjsKICAgICAgICBfX3UzMiBpX3NoYWRvdzsK
ICAgICAgICBfX3UzMiBpX3VudXNlZDE7CiAgICAgICAgX191MzIgaV91bnVzZWQyOwogICAgICAg
IF9fdTMyIGlfb2VmdGZsYWc7CiAgICAgICAgX191MTYgaV9vc3luYzsKICAgICAgICBfX3UzMiBp
X2xhc3RmcmFnOwp9OwojIDI5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9lZnNfZnNfaS5o
IiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX2kuaCIK
I2RlZmluZSBfX0VGU19GU19JX0hfXwoKdHlwZWRlZiBpbnQzMl90IGVmc19ibG9ja190Owp0eXBl
ZGVmIHVpbnQzMl90IGVmc19pbm9fdDsKCiNkZWZpbmUgRUZTX0RJUkVDVEVYVEVOVFMgMTIKCgoK
CnR5cGVkZWYgdW5pb24gZXh0ZW50X3UgewogICAgICAgIHVuc2lnbmVkIGNoYXIgcmF3WzhdOwog
ICAgICAgIHN0cnVjdCBleHRlbnRfcyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhf
bWFnaWM6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBleF9ibjoyNDsKICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBleF9sZW5ndGg6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBleF9vZmZzZXQ6MjQ7CiAgICAgICAgfSBjb29rZWQ7Cn0gZWZzX2V4dGVudDsKCnR5cGVk
ZWYgc3RydWN0IGVkZXZzIHsKICAgICAgICBzaG9ydCBvZGV2OwogICAgICAgIHVuc2lnbmVkIGlu
dCBuZGV2Owp9IGVmc19kZXZzOwoKCgoKCnN0cnVjdCBlZnNfZGlub2RlIHsKICAgICAgICB1X3No
b3J0IGRpX21vZGU7CiAgICAgICAgc2hvcnQgZGlfbmxpbms7CiAgICAgICAgdV9zaG9ydCBkaV91
aWQ7CiAgICAgICAgdV9zaG9ydCBkaV9naWQ7CiAgICAgICAgaW50MzJfdCBkaV9zaXplOwogICAg
ICAgIGludDMyX3QgZGlfYXRpbWU7CiAgICAgICAgaW50MzJfdCBkaV9tdGltZTsKICAgICAgICBp
bnQzMl90IGRpX2N0aW1lOwogICAgICAgIHVpbnQzMl90IGRpX2dlbjsKICAgICAgICBzaG9ydCBk
aV9udW1leHRlbnRzOwogICAgICAgIHVfY2hhciBkaV92ZXJzaW9uOwogICAgICAgIHVfY2hhciBk
aV9zcGFyZTsKICAgICAgICB1bmlvbiBkaV9hZGRyIHsKICAgICAgICAgICAgICAgIGVmc19leHRl
bnQgZGlfZXh0ZW50c1sxMl07CiAgICAgICAgICAgICAgICBlZnNfZGV2cyBkaV9kZXY7CiAgICAg
ICAgfSBkaV91Owp9OwoKCnN0cnVjdCBlZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgaW50IG51bWV4
dGVudHM7CiAgICAgICAgaW50IGxhc3RleHRlbnQ7CgogICAgICAgIGVmc19leHRlbnQgZXh0ZW50
c1sxMl07Cn07CiMgMjk5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAx
CiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb2RhX2ZzX2kuaCIKI2Rl
ZmluZSBfTElOVVhfQ09EQV9GU19JCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3R5cGVzLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jb2RhX2ZzX2kuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bGlzdC5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYV9m
c19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIg
MQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIKI2RlZmlu
ZSBfQ09EQV9IRUFERVJfCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
Y29kYS5oIgojZGVmaW5lIENPREFfTUFYU1lNTElOS1MgMTAKIyAxMDIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIGNkZXZfdCB1X3F1YWRfdAoKCgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1X3F1YWRfdDsKIyAxMzYgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIENPREFfTUFYTkFNTEVOIDI1
NQojZGVmaW5lIENPREFfTUFYUEFUSExFTiAxMDI0CiNkZWZpbmUgQ09EQV9NQVhTWU1MSU5LIDEw
CgoKCgojZGVmaW5lIENfT19SRUFEIDB4MDAxCiNkZWZpbmUgQ19PX1dSSVRFIDB4MDAyCiNkZWZp
bmUgQ19PX1RSVU5DIDB4MDEwCiNkZWZpbmUgQ19PX0VYQ0wgMHgxMDAKI2RlZmluZSBDX09fQ1JF
QVQgMHgyMDAKCgojZGVmaW5lIENfTV9SRUFEIDAwNDAwCiNkZWZpbmUgQ19NX1dSSVRFIDAwMjAw
CgoKI2RlZmluZSBDX0FfQ19PSyA4CiNkZWZpbmUgQ19BX1JfT0sgNAojZGVmaW5lIENfQV9XX09L
IDIKI2RlZmluZSBDX0FfWF9PSyAxCiNkZWZpbmUgQ19BX0ZfT0sgMAoKCgoKI2RlZmluZSBfVkVO
VVNfRElSRU5UX1RfIDEKc3RydWN0IHZlbnVzX2RpcmVudCB7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBkX2ZpbGVubzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkX3JlY2xlbjsKICAgICAgICB1bnNp
Z25lZCBjaGFyIGRfdHlwZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfbmFtbGVuOwogICAgICAg
IGNoYXIgZF9uYW1lWzI1NSArIDFdOwp9OwoKI2RlZmluZSBESVJTSVooZHApICgoc2l6ZW9mIChz
dHJ1Y3QgdmVudXNfZGlyZW50KSAtIChDT0RBX01BWE5BTUxFTisxKSkgKyAoKChkcCktPmRfbmFt
bGVuKzEgKyAzKSAmfiAzKSkKCgoKCgojZGVmaW5lIENEVF9VTktOT1dOIDAKI2RlZmluZSBDRFRf
RklGTyAxCiNkZWZpbmUgQ0RUX0NIUiAyCiNkZWZpbmUgQ0RUX0RJUiA0CiNkZWZpbmUgQ0RUX0JM
SyA2CiNkZWZpbmUgQ0RUX1JFRyA4CiNkZWZpbmUgQ0RUX0xOSyAxMAojZGVmaW5lIENEVF9TT0NL
IDEyCiNkZWZpbmUgQ0RUX1dIVCAxNAoKCgoKI2RlZmluZSBJRlRPQ0RUKG1vZGUpICgoKG1vZGUp
ICYgMDE3MDAwMCkgPj4gMTIpCiNkZWZpbmUgQ0RUVE9JRihkaXJ0eXBlKSAoKGRpcnR5cGUpIDw8
IDEyKQoKCgoKI2RlZmluZSBfRklEX1RfIDEKdHlwZWRlZiB1X2xvbmcgVm9sdW1lSWQ7CnR5cGVk
ZWYgdV9sb25nIFZub2RlSWQ7CnR5cGVkZWYgdV9sb25nIFVuaXF1ZV90Owp0eXBlZGVmIHVfbG9u
ZyBGaWxlVmVyc2lvbjsKCgoKI2RlZmluZSBfVklDRUZJRF9UXyAxCnR5cGVkZWYgc3RydWN0IFZp
Y2VGaWQgewogICAgVm9sdW1lSWQgVm9sdW1lOwogICAgVm5vZGVJZCBWbm9kZTsKICAgIFVuaXF1
ZV90IFVuaXF1ZTsKfSBWaWNlRmlkOwoKCgoKc3RhdGljIF9faW5saW5lX18gaW5vX3QgY29kYV9m
Mmkoc3RydWN0IFZpY2VGaWQgKmZpZCkKewogICAgICAgIGlmICggISBmaWQgKQogICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgaWYgKGZpZC0+Vm5vZGUgPT0gMHhmZmZmZmZmZSB8fCBm
aWQtPlZub2RlID09IDB4ZmZmZmZmZmYpCiAgICAgICAgICAgICAgICByZXR1cm4gKChmaWQtPlZv
bHVtZSA8PCAyMCkgfCAoZmlkLT5VbmlxdWUgJiAweGZmZmZmKSk7CiAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgcmV0dXJuIChmaWQtPlVuaXF1ZSArIChmaWQtPlZub2RlPDwxMCkgKyAoZmlk
LT5Wb2x1bWU8PDIwKSk7Cn0KIyAyMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvY29kYS5oIgojZGVmaW5lIF9WVUlEX1RfCnR5cGVkZWYgdV9pbnQzMl90IHZ1aWRfdDsKdHlw
ZWRlZiB1X2ludDMyX3QgdmdpZF90OwoKCgojZGVmaW5lIF9DT0RBQ1JFRF9UXwpzdHJ1Y3QgY29k
YV9jcmVkIHsKICAgIHZ1aWRfdCBjcl91aWQsIGNyX2V1aWQsIGNyX3N1aWQsIGNyX2ZzdWlkOwog
ICAgdmdpZF90IGNyX2dyb3VwaWQsIGNyX2VnaWQsIGNyX3NnaWQsIGNyX2ZzZ2lkOwp9OwoKCgoj
ZGVmaW5lIF9WRU5VU19WQVRUUl9UXwoKCgplbnVtIGNvZGFfdnR5cGUgeyBDX1ZOT04sIENfVlJF
RywgQ19WRElSLCBDX1ZCTEssIENfVkNIUiwgQ19WTE5LLCBDX1ZTT0NLLCBDX1ZGSUZPLCBDX1ZC
QUQgfTsKCnN0cnVjdCBjb2RhX3ZhdHRyIHsKICAgICAgICBsb25nIHZhX3R5cGU7CiAgICAgICAg
dV9zaG9ydCB2YV9tb2RlOwogICAgICAgIHNob3J0IHZhX25saW5rOwogICAgICAgIHZ1aWRfdCB2
YV91aWQ7CiAgICAgICAgdmdpZF90IHZhX2dpZDsKICAgICAgICBsb25nIHZhX2ZpbGVpZDsKICAg
ICAgICB1X3F1YWRfdCB2YV9zaXplOwogICAgICAgIGxvbmcgdmFfYmxvY2tzaXplOwogICAgICAg
IHN0cnVjdCB0aW1lc3BlYyB2YV9hdGltZTsKICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdmFfbXRp
bWU7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIHZhX2N0aW1lOwogICAgICAgIHVfbG9uZyB2YV9n
ZW47CiAgICAgICAgdV9sb25nIHZhX2ZsYWdzOwogICAgICAgIHVfcXVhZF90IHZhX3JkZXY7CiAg
ICAgICAgdV9xdWFkX3QgdmFfYnl0ZXM7CiAgICAgICAgdV9xdWFkX3QgdmFfZmlsZXJldjsKfTsK
CgoKCnN0cnVjdCBjb2RhX3N0YXRmcyB7CiAgICBpbnQzMl90IGZfYmxvY2tzOwogICAgaW50MzJf
dCBmX2JmcmVlOwogICAgaW50MzJfdCBmX2JhdmFpbDsKICAgIGludDMyX3QgZl9maWxlczsKICAg
IGludDMyX3QgZl9mZnJlZTsKfTsKCgoKCgojZGVmaW5lIENPREFfUk9PVCAyCiNkZWZpbmUgQ09E
QV9PUEVOX0JZX0ZEIDMKI2RlZmluZSBDT0RBX09QRU4gNAojZGVmaW5lIENPREFfQ0xPU0UgNQoj
ZGVmaW5lIENPREFfSU9DVEwgNgojZGVmaW5lIENPREFfR0VUQVRUUiA3CiNkZWZpbmUgQ09EQV9T
RVRBVFRSIDgKI2RlZmluZSBDT0RBX0FDQ0VTUyA5CiNkZWZpbmUgQ09EQV9MT09LVVAgMTAKI2Rl
ZmluZSBDT0RBX0NSRUFURSAxMQojZGVmaW5lIENPREFfUkVNT1ZFIDEyCiNkZWZpbmUgQ09EQV9M
SU5LIDEzCiNkZWZpbmUgQ09EQV9SRU5BTUUgMTQKI2RlZmluZSBDT0RBX01LRElSIDE1CiNkZWZp
bmUgQ09EQV9STURJUiAxNgojZGVmaW5lIENPREFfU1lNTElOSyAxOAojZGVmaW5lIENPREFfUkVB
RExJTksgMTkKI2RlZmluZSBDT0RBX0ZTWU5DIDIwCiNkZWZpbmUgQ09EQV9WR0VUIDIyCiNkZWZp
bmUgQ09EQV9TSUdOQUwgMjMKI2RlZmluZSBDT0RBX1JFUExBQ0UgMjQKI2RlZmluZSBDT0RBX0ZM
VVNIIDI1CiNkZWZpbmUgQ09EQV9QVVJHRVVTRVIgMjYKI2RlZmluZSBDT0RBX1pBUEZJTEUgMjcK
I2RlZmluZSBDT0RBX1pBUERJUiAyOAojZGVmaW5lIENPREFfUFVSR0VGSUQgMzAKI2RlZmluZSBD
T0RBX09QRU5fQllfUEFUSCAzMQojZGVmaW5lIENPREFfUkVTT0xWRSAzMgojZGVmaW5lIENPREFf
UkVJTlRFR1JBVEUgMzMKI2RlZmluZSBDT0RBX1NUQVRGUyAzNAojZGVmaW5lIENPREFfU1RPUkUg
MzUKI2RlZmluZSBDT0RBX1JFTEVBU0UgMzYKI2RlZmluZSBDT0RBX05DQUxMUyAzNwoKI2RlZmlu
ZSBET1dOQ0FMTChvcGNvZGUpIChvcGNvZGUgPj0gQ09EQV9SRVBMQUNFICYmIG9wY29kZSA8PSBD
T0RBX1BVUkdFRklEKQoKI2RlZmluZSBWQ19NQVhEQVRBU0laRSA4MTkyCiNkZWZpbmUgVkNfTUFY
TVNHU0laRSBzaXplb2YodW5pb24gaW5wdXRBcmdzKStzaXplb2YodW5pb24gb3V0cHV0QXJncykg
KyBWQ19NQVhEQVRBU0laRQoKCiNkZWZpbmUgQ0lPQ19LRVJORUxfVkVSU0lPTiBfSU9XUignYycs
IDEwLCBzaXplb2YgKGludCkpCgoKCgoKI2RlZmluZSBDT0RBX0tFUk5FTF9WRVJTSU9OIDIKCgoK
CnN0cnVjdCBjb2RhX2luX2hkciB7CiAgICB1bnNpZ25lZCBsb25nIG9wY29kZTsKICAgIHVuc2ln
bmVkIGxvbmcgdW5pcXVlOwogICAgdV9zaG9ydCBwaWQ7CiAgICB1X3Nob3J0IHBnaWQ7CiAgICB1
X3Nob3J0IHNpZDsKICAgIHN0cnVjdCBjb2RhX2NyZWQgY3JlZDsKfTsKCgpzdHJ1Y3QgY29kYV9v
dXRfaGRyIHsKICAgIHVuc2lnbmVkIGxvbmcgb3Bjb2RlOwogICAgdW5zaWduZWQgbG9uZyB1bmlx
dWU7CiAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKfTsKCgpzdHJ1Y3QgY29kYV9yb290X291dCB7
CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0
IGNvZGFfcm9vdF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaW47Cn07CgoKc3RydWN0IGNv
ZGFfb3Blbl9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX291dCB7CiAgICBzdHJ1Y3QgY29k
YV9vdXRfaGRyIG9oOwogICAgdV9xdWFkX3QgZGV2OwogICAgaW5vX3QgaW5vZGU7Cn07CgoKCnN0
cnVjdCBjb2RhX3N0b3JlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VG
aWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX3N0b3JlX291dCB7CiAgICBz
dHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9yZWxlYXNlX2luIHsKICAg
IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsK
fTsKCnN0cnVjdCBjb2RhX3JlbGVhc2Vfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0
Owp9OwoKCnN0cnVjdCBjb2RhX2Nsb3NlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsK
ICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX2Nsb3NlX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9pb2N0bF9p
biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQg
Y21kOwogICAgaW50IGxlbjsKICAgIGludCByd2ZsYWc7CiAgICBjaGFyICpkYXRhOwp9OwoKc3Ry
dWN0IGNvZGFfaW9jdGxfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQg
bGVuOwogICAgY2FkZHJfdCBkYXRhOwp9OwoKCgpzdHJ1Y3QgY29kYV9nZXRhdHRyX2luIHsKICAg
IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2Rh
X2dldGF0dHJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29k
YV92YXR0ciBhdHRyOwp9OwoKCgpzdHJ1Y3QgY29kYV9zZXRhdHRyX2luIHsKICAgIHN0cnVjdCBj
b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0cnVjdCBjb2RhX3ZhdHRyIGF0
dHI7Cn07CgpzdHJ1Y3QgY29kYV9zZXRhdHRyX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRy
IG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9hY2Nlc3NfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRy
IGloOwogICAgVmljZUZpZCBWRmlkOwogICAgaW50IGZsYWdzOwp9OwoKc3RydWN0IGNvZGFfYWNj
ZXNzX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgoKI2RlZmluZSBDTFVf
Q0FTRV9TRU5TSVRJVkUgMHgwMQojZGVmaW5lIENMVV9DQVNFX0lOU0VOU0lUSVZFIDB4MDIKCgpz
dHJ1Y3QgY29kYV9sb29rdXBfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAgVmlj
ZUZpZCBWRmlkOwogICAgaW50IG5hbWU7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9s
b29rdXBfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgdnR5cGU7Cn07CgoKCnN0cnVjdCBjb2RhX2NyZWF0ZV9pbiB7CiAgICBzdHJ1Y3Qg
Y29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBh
dHRyOwogICAgaW50IGV4Y2w7CiAgICBpbnQgbW9kZTsKICAgIGludCBuYW1lOwp9OwoKc3RydWN0
IGNvZGFfY3JlYXRlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp
ZCBWRmlkOwogICAgc3RydWN0IGNvZGFfdmF0dHIgYXR0cjsKfTsKCgoKc3RydWN0IGNvZGFfcmVt
b3ZlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAg
IGludCBuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVtb3ZlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9v
dXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9saW5rX2luIHsKICAgIHN0cnVjdCBjb2RhX2lu
X2hkciBpaDsKICAgIFZpY2VGaWQgc291cmNlRmlkOwogICAgVmljZUZpZCBkZXN0RmlkOwogICAg
aW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfbGlua19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0
X2hkciBvdXQ7Cn07CgoKCnN0cnVjdCBjb2RhX3JlbmFtZV9pbiB7CiAgICBzdHJ1Y3QgY29kYV9p
bl9oZHIgaWg7CiAgICBWaWNlRmlkIHNvdXJjZUZpZDsKICAgIGludCBzcmNuYW1lOwogICAgVmlj
ZUZpZCBkZXN0RmlkOwogICAgaW50IGRlc3RuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVuYW1lX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9ta2Rpcl9p
biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1
Y3QgY29kYV92YXR0ciBhdHRyOwogICAgaW50IG5hbWU7Cn07CgpzdHJ1Y3QgY29kYV9ta2Rpcl9v
dXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0
cnVjdCBjb2RhX3ZhdHRyIGF0dHI7Cn07CgoKCnN0cnVjdCBjb2RhX3JtZGlyX2luIHsKICAgIHN0
cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBuYW1lOwp9OwoK
c3RydWN0IGNvZGFfcm1kaXJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0Owp9OwoK
CnN0cnVjdCBjb2RhX3N5bWxpbmtfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAg
VmljZUZpZCBWRmlkOwogICAgaW50IHNyY25hbWU7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBhdHRy
OwogICAgaW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfc3ltbGlua19vdXQgewogICAgc3RydWN0
IGNvZGFfb3V0X2hkciBvdXQ7Cn07CgoKc3RydWN0IGNvZGFfcmVhZGxpbmtfaW4gewogICAgc3Ry
dWN0IGNvZGFfaW5faGRyIGloOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0IGNvZGFfcmVh
ZGxpbmtfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQgY291bnQ7CiAg
ICBjYWRkcl90IGRhdGE7Cn07CgoKCnN0cnVjdCBjb2RhX2ZzeW5jX2luIHsKICAgIHN0cnVjdCBj
b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2RhX2ZzeW5jX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV92Z2V0X2lu
IHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVj
dCBjb2RhX3ZnZXRfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlk
IFZGaWQ7CiAgICBpbnQgdnR5cGU7Cn07CiMgNjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NvZGEuaCIKc3RydWN0IGNvZGFfcHVyZ2V1c2VyX291dCB7CiAgICBzdHJ1Y3Qg
Y29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3JlZCBjcmVkOwp9OwoKCgpzdHJ1Y3Qg
Y29kYV96YXBmaWxlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp
ZCBDb2RhRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHsKICAgIHN0cnVjdCBjb2Rh
X291dF9oZHIgb2g7CiAgICBWaWNlRmlkIENvZGFGaWQ7Cn07CgoKCnN0cnVjdCBjb2RhX3phcHZu
b2RlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3Jl
ZCBjcmVkOwogICAgVmljZUZpZCBWRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQg
ewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgQ29kYUZpZDsKfTsKCgoK
c3RydWN0IGNvZGFfcmVwbGFjZV9vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAg
IFZpY2VGaWQgTmV3RmlkOwogICAgVmljZUZpZCBPbGRGaWQ7Cn07CgoKc3RydWN0IGNvZGFfb3Bl
bl9ieV9mZF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX2J5X2ZkX291dCB7CiAgICBzdHJ1
Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgaW50IGZkOwoKCiAgICBzdHJ1Y3QgZmlsZSAqZmg7Cgp9
OwoKCnN0cnVjdCBjb2RhX29wZW5fYnlfcGF0aF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIg
aWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVu
X2J5X3BhdGhfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICAgICAgaW50IHBh
dGg7Cn07CgoKc3RydWN0IGNvZGFfc3RhdGZzX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBp
bjsKfTsKCnN0cnVjdCBjb2RhX3N0YXRmc19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBv
aDsKICAgIHN0cnVjdCBjb2RhX3N0YXRmcyBzdGF0Owp9OwoKCgoKCgojZGVmaW5lIENPREFfTk9D
QUNIRSAweDgwMDAwMDAwCgp1bmlvbiBpbnB1dEFyZ3MgewogICAgc3RydWN0IGNvZGFfaW5faGRy
IGloOwogICAgc3RydWN0IGNvZGFfb3Blbl9pbiBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9z
dG9yZV9pbiBjb2RhX3N0b3JlOwogICAgc3RydWN0IGNvZGFfcmVsZWFzZV9pbiBjb2RhX3JlbGVh
c2U7CiAgICBzdHJ1Y3QgY29kYV9jbG9zZV9pbiBjb2RhX2Nsb3NlOwogICAgc3RydWN0IGNvZGFf
aW9jdGxfaW4gY29kYV9pb2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfaW4gY29kYV9nZXRh
dHRyOwogICAgc3RydWN0IGNvZGFfc2V0YXR0cl9pbiBjb2RhX3NldGF0dHI7CiAgICBzdHJ1Y3Qg
Y29kYV9hY2Nlc3NfaW4gY29kYV9hY2Nlc3M7CiAgICBzdHJ1Y3QgY29kYV9sb29rdXBfaW4gY29k
YV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfaW4gY29kYV9jcmVhdGU7CiAgICBzdHJ1
Y3QgY29kYV9yZW1vdmVfaW4gY29kYV9yZW1vdmU7CiAgICBzdHJ1Y3QgY29kYV9saW5rX2luIGNv
ZGFfbGluazsKICAgIHN0cnVjdCBjb2RhX3JlbmFtZV9pbiBjb2RhX3JlbmFtZTsKICAgIHN0cnVj
dCBjb2RhX21rZGlyX2luIGNvZGFfbWtkaXI7CiAgICBzdHJ1Y3QgY29kYV9ybWRpcl9pbiBjb2Rh
X3JtZGlyOwogICAgc3RydWN0IGNvZGFfc3ltbGlua19pbiBjb2RhX3N5bWxpbms7CiAgICBzdHJ1
Y3QgY29kYV9yZWFkbGlua19pbiBjb2RhX3JlYWRsaW5rOwogICAgc3RydWN0IGNvZGFfZnN5bmNf
aW4gY29kYV9mc3luYzsKICAgIHN0cnVjdCBjb2RhX3ZnZXRfaW4gY29kYV92Z2V0OwogICAgc3Ry
dWN0IGNvZGFfb3Blbl9ieV9mZF9pbiBjb2RhX29wZW5fYnlfZmQ7CiAgICBzdHJ1Y3QgY29kYV9v
cGVuX2J5X3BhdGhfaW4gY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf
aW4gY29kYV9zdGF0ZnM7Cn07Cgp1bmlvbiBvdXRwdXRBcmdzIHsKICAgIHN0cnVjdCBjb2RhX291
dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29kYV9yb290X291dCBjb2RhX3Jvb3Q7CiAgICBzdHJ1Y3Qg
Y29kYV9vcGVuX291dCBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9pb2N0bF9vdXQgY29kYV9p
b2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfb3V0IGNvZGFfZ2V0YXR0cjsKICAgIHN0cnVj
dCBjb2RhX2xvb2t1cF9vdXQgY29kYV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfb3V0
IGNvZGFfY3JlYXRlOwogICAgc3RydWN0IGNvZGFfbWtkaXJfb3V0IGNvZGFfbWtkaXI7CiAgICBz
dHJ1Y3QgY29kYV9yZWFkbGlua19vdXQgY29kYV9yZWFkbGluazsKICAgIHN0cnVjdCBjb2RhX3Zn
ZXRfb3V0IGNvZGFfdmdldDsKICAgIHN0cnVjdCBjb2RhX3B1cmdldXNlcl9vdXQgY29kYV9wdXJn
ZXVzZXI7CiAgICBzdHJ1Y3QgY29kYV96YXBmaWxlX291dCBjb2RhX3phcGZpbGU7CiAgICBzdHJ1
Y3QgY29kYV96YXBkaXJfb3V0IGNvZGFfemFwZGlyOwogICAgc3RydWN0IGNvZGFfemFwdm5vZGVf
b3V0IGNvZGFfemFwdm5vZGU7CiAgICBzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQgY29kYV9wdXJn
ZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IGNvZGFfcmVwbGFjZTsKICAgIHN0cnVj
dCBjb2RhX29wZW5fYnlfZmRfb3V0IGNvZGFfb3Blbl9ieV9mZDsKICAgIHN0cnVjdCBjb2RhX29w
ZW5fYnlfcGF0aF9vdXQgY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf
b3V0IGNvZGFfc3RhdGZzOwp9OwoKdW5pb24gY29kYV9kb3duY2FsbHMgewoKCiAgICBzdHJ1Y3Qg
Y29kYV9wdXJnZXVzZXJfb3V0IHB1cmdldXNlcjsKICAgIHN0cnVjdCBjb2RhX3phcGZpbGVfb3V0
IHphcGZpbGU7CiAgICBzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHphcGRpcjsKICAgIHN0cnVjdCBj
b2RhX3phcHZub2RlX291dCB6YXB2bm9kZTsKICAgIHN0cnVjdCBjb2RhX3B1cmdlZmlkX291dCBw
dXJnZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IHJlcGxhY2U7Cn07CgoKCgoKCiNk
ZWZpbmUgUElPQ1BBUk1fTUFTSyAweDAwMDBmZmZmCnN0cnVjdCBWaWNlSW9jdGwgewogICAgICAg
IGNhZGRyX3QgaW4sIG91dDsKICAgICAgICBzaG9ydCBpbl9zaXplOwogICAgICAgIHNob3J0IG91
dF9zaXplOwp9OwoKc3RydWN0IFBpb2N0bERhdGEgewogICAgICAgIGNvbnN0IGNoYXIgKnBhdGg7
CiAgICAgICAgaW50IGZvbGxvdzsKICAgICAgICBzdHJ1Y3QgVmljZUlvY3RsIHZpOwp9OwoKI2Rl
ZmluZSBDT0RBX0NPTlRST0wgIi5DT05UUk9MIgojZGVmaW5lIENPREFfQ09OVFJPTExFTiA4CiNk
ZWZpbmUgQ1RMX1ZPTCAtMQojZGVmaW5lIENUTF9WTk8gLTEKI2RlZmluZSBDVExfVU5JIC0xCiNk
ZWZpbmUgQ1RMX0lOTyAtMQojZGVmaW5lIENUTF9GSUxFICIvY29kYS8uQ09OVFJPTCIKCgojZGVm
aW5lIElTX0NUTF9GSUQoZmlkcCkgKChmaWRwKS0+Vm9sdW1lID09IENUTF9WT0wgJiYgKGZpZHAp
LT5Wbm9kZSA9PSBDVExfVk5PICYmIChmaWRwKS0+VW5pcXVlID09IENUTF9VTkkpCgoKCgoKI2Rl
ZmluZSBDT0RBX01PVU5UX1ZFUlNJT04gMQoKc3RydWN0IGNvZGFfbW91bnRfZGF0YSB7CiAgICAg
ICAgaW50IHZlcnNpb247CiAgICAgICAgaW50IGZkOwp9OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAyCgoKCgpzdHJ1Y3QgY29kYV9pbm9kZV9p
bmZvIHsKICAgICAgICBzdHJ1Y3QgVmljZUZpZCBjX2ZpZDsKICAgICAgICB1X3Nob3J0IGNfZmxh
Z3M7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBjX2NpbGlzdDsKICAgICAgICBzdHJ1Y3QgZmls
ZSAqY19jb250YWluZXI7CiAgICAgICAgdW5zaWduZWQgaW50IGNfY29udGNvdW50OwogICAgICAg
IHN0cnVjdCBjb2RhX2NyZWQgY19jYWNoZWRfY3JlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgY19j
YWNoZWRfcGVybTsKfTsKCgojZGVmaW5lIENfVkFUVFIgMHgxCiNkZWZpbmUgQ19GTFVTSCAweDIK
I2RlZmluZSBDX0RZSU5HIDB4NAojZGVmaW5lIENfUFVSR0UgMHg4CgppbnQgY29kYV9jbm9kZV9t
YWtlKHN0cnVjdCBpbm9kZSAqKiwgc3RydWN0IFZpY2VGaWQgKiwgc3RydWN0IHN1cGVyX2Jsb2Nr
ICopOwppbnQgY29kYV9jbm9kZV9tYWtlY3RsKHN0cnVjdCBpbm9kZSAqKmlub2RlLCBzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiKTsKc3RydWN0IGlub2RlICpjb2RhX2ZpZF90b19pbm9kZShWaWNlRmlk
ICpmaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwp2b2lkIGNvZGFfcmVwbGFjZV9maWQoc3Ry
dWN0IGlub2RlICosIFZpY2VGaWQgKiwgVmljZUZpZCAqKTsKIyAzMDAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcm9tZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9fUk9NRlNfRlNfSQoKCgpzdHJ1
Y3Qgcm9tZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX21ldGFzaXplOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgaV9kYXRhb2Zmc2V0Owp9OwojIDMwMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaG1lbV9mcy5oIiAxCgojZGVmaW5lIF9fU0hNRU1fRlNfSAoKCgojZGVm
aW5lIFNITUVNX05SX0RJUkVDVCAxNgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3NobWVtX2ZzLmgiCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBsb25n
IHZhbDsKfSBzd3BfZW50cnlfdDsKCnN0cnVjdCBzaG1lbV9pbm9kZV9pbmZvIHsKICAgICAgICBz
cGlubG9ja190IGxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5kZXg7CiAgICAgICAg
c3dwX2VudHJ5X3QgaV9kaXJlY3RbMTZdOwogICAgICAgIHN3cF9lbnRyeV90ICoqaV9pbmRpcmVj
dDsKICAgICAgICB1bnNpZ25lZCBsb25nIHN3YXBwZWQ7CiAgICAgICAgaW50IGxvY2tlZDsKICAg
ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cn07CgpzdHJ1Y3Qgc2htZW1fc2JfaW5mbyB7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJl
ZV9ibG9ja3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5vZGVzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgZnJlZV9pbm9kZXM7CiAgICAgICAgc3BpbmxvY2tfdCBzdGF0X2xvY2s7Cn07CiMg
MzAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19pLmgiIDEKIyAxMCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zbWJfZnNfaS5oIgojZGVmaW5lIF9MSU5VWF9T
TUJfRlNfSQoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5o
IiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX2kuaCIg
MgoKCgoKc3RydWN0IHNtYl9pbm9kZV9pbmZvIHsKCgoKCgogICAgICAgIHVuc2lnbmVkIGludCBv
cGVuOwogICAgICAgIF9fdTE2IGZpbGVpZDsKICAgICAgICBfX3UxNiBhdHRyOwoKICAgICAgICBf
X3UxNiBhY2Nlc3M7CiAgICAgICAgX191MTYgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBv
bGRtdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsb3NlZDsKICAgICAgICB1bnNpZ25lZCBv
cGVuZXJzOwp9OwojIDMwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfaS5oIiAx
CiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX2kuaCIKI2Rl
ZmluZSBfTElOVVhfSEZTX0ZTX0lfSAoKCgoKCgpzdHJ1Y3QgaGZzX2lub2RlX2luZm8gewogICAg
ICAgIGludCBtYWdpYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAg
ICBzdHJ1Y3QgaGZzX2NhdF9lbnRyeSAqZW50cnk7CgoKICAgICAgICBzdHJ1Y3QgaGZzX2Zvcmsg
KmZvcms7CiAgICAgICAgaW50IGNvbnZlcnQ7CgoKICAgICAgICBpbm9fdCBmaWxlX3R5cGU7CiAg
ICAgICAgY2hhciBkaXJfc2l6ZTsKCgogICAgICAgIGNvbnN0IHN0cnVjdCBoZnNfaGRyX2xheW91
dCAqZGVmYXVsdF9sYXlvdXQ7CiAgICAgICAgc3RydWN0IGhmc19oZHJfbGF5b3V0ICpsYXlvdXQ7
CgoKICAgICAgICBpbnQgdHpfc2Vjb25kc3dlc3Q7CgoKICAgICAgICB2b2lkICgqZF9kcm9wX29w
KShzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGlub190KTsKfTsKIyAzMDQgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvYWRmc19mc19pLmgiIDEKCgoKCgoKCiNkZWZpbmUgX0FERlNfRlNfSQoKCgoK
c3RydWN0IGFkZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0
ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9pZDsKICAgICAgICBfX3UzMiBsb2FkYWRk
cjsKICAgICAgICBfX3UzMiBleGVjYWRkcjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZXR5cGU7
CiAgICAgICAgdW5zaWduZWQgaW50IGF0dHI7CiAgICAgICAgaW50IHN0YW1wZWQ6MTsKfTsKIyAz
MDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54NF9mc19pLmgiIDEKIyAxMiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX2kuaCIKI2RlZmluZSBfUU5YNF9G
U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54dHlwZXMuaCIg
MQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueHR5cGVzLmgiCiNk
ZWZpbmUgX1FOWDRUWVBFU19ICgp0eXBlZGVmIF9fdTE2IHFueDRfbnh0bnRfdDsKdHlwZWRlZiBf
X3U4IHFueDRfZnR5cGVfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UzMiB4dG50X2Js
azsKICAgICAgICBfX3UzMiB4dG50X3NpemU7Cn0gcW54NF94dG50X3Q7Cgp0eXBlZGVmIF9fdTE2
IHFueDRfbW9kZV90Owp0eXBlZGVmIF9fdTE2IHFueDRfbXVpZF90Owp0eXBlZGVmIF9fdTE2IHFu
eDRfbWdpZF90Owp0eXBlZGVmIF9fdTMyIHFueDRfb2ZmX3Q7CnR5cGVkZWYgX191MTYgcW54NF9u
bGlua190OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNf
aS5oIiAyCgoKCgpzdHJ1Y3QgcW54NF9pbm9kZV9pbmZvIHsKICAgICAgICBjaGFyIGlfcmVzZXJ2
ZWRbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgaV9zaXplOwogICAgICAgIHFueDRfeHRudF90IGlf
Zmlyc3RfeHRudDsKICAgICAgICBfX3UzMiBpX3hibGs7CiAgICAgICAgX19zMzIgaV9mdGltZTsK
ICAgICAgICBfX3MzMiBpX210aW1lOwogICAgICAgIF9fczMyIGlfYXRpbWU7CiAgICAgICAgX19z
MzIgaV9jdGltZTsKICAgICAgICBxbng0X254dG50X3QgaV9udW1feHRudHM7CiAgICAgICAgcW54
NF9tb2RlX3QgaV9tb2RlOwogICAgICAgIHFueDRfbXVpZF90IGlfdWlkOwogICAgICAgIHFueDRf
bWdpZF90IGlfZ2lkOwogICAgICAgIHFueDRfbmxpbmtfdCBpX25saW5rOwogICAgICAgIF9fdTgg
aV96ZXJvWzRdOwogICAgICAgIHFueDRfZnR5cGVfdCBpX3R5cGU7CiAgICAgICAgX191OCBpX3N0
YXR1czsKICAgICAgICB1bnNpZ25lZCBsb25nIG1tdV9wcml2YXRlOwp9OwojIDMwNiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDEKCiNkZWZpbmUgX1JFSVNFUl9G
U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMg
NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDIK
CnN0cnVjdCByZWlzZXJmc19pbm9kZV9pbmZvIHsKICBfX3UzMiBpX2tleSBbNF07CgoKCgoKCiAg
aW50IGlfdmVyc2lvbjsKCiAgaW50IGlfcGFja19vbl9jbG9zZSA7CgogIF9fdTMyIGlfZmlyc3Rf
ZGlyZWN0X2J5dGU7CiMgMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcmVp
c2VyZnNfZnNfaS5oIgogIGludCBpX3ByZWFsbG9jX2Jsb2NrOwogIGludCBpX3ByZWFsbG9jX2Nv
dW50OwogIHN0cnVjdCBsaXN0X2hlYWQgaV9wcmVhbGxvY19saXN0OwoKCgoKICBpbnQgbm9wYWNr
Owp9OwojIDMwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9iZnNfZnNfaS5oIiAxCgoKCgoK
CiNkZWZpbmUgX0xJTlVYX0JGU19GU19JCgoKCgpzdHJ1Y3QgYmZzX2lub2RlX2luZm8gewogICAg
ICAgIHVuc2lnbmVkIGxvbmcgaV9kc2tfaW5vOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9zYmxv
Y2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2VibG9jazsKfTsKIyAzMDggIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX2ZzX2kuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3VkZl9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VERl9GU19JX0gKIyAzMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfaS5oIgpzdHJ1Y3QgdWRm
X2lub2RlX2luZm8KewogICAgICAgIGxvbmcgaV91bXRpbWU7CiAgICAgICAgbG9uZyBpX3VjdGlt
ZTsKICAgICAgICBsb25nIGlfY3J0aW1lOwogICAgICAgIGxvbmcgaV91Y3J0aW1lOwoKICAgICAg
ICBsYl9hZGRyIGlfbG9jYXRpb247CiAgICAgICAgX191NjQgaV91bmlxdWU7CiAgICAgICAgX191
MzIgaV9sZW5FQXR0cjsKICAgICAgICBfX3UzMiBpX2xlbkFsbG9jOwogICAgICAgIF9fdTY0IGlf
bGVuRXh0ZW50czsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAgICAgX191
MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgdW5zaWduZWQgaV9hbGxvY190eXBlIDogMzsK
ICAgICAgICB1bnNpZ25lZCBpX2V4dGVuZGVkX2ZlIDogMTsKICAgICAgICB1bnNpZ25lZCBpX3N0
cmF0XzQwOTYgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfbmV3X2lub2RlIDogMTsKICAgICAgICB1
bnNpZ25lZCByZXNlcnZlZCA6IDI2Owp9OwoKCgoKCiNkZWZpbmUgVURGX0dFVEVBU0laRSBfSU9S
KCdsJywgMHg0MCwgaW50KQojZGVmaW5lIFVERl9HRVRFQUJMT0NLIF9JT1IoJ2wnLCAweDQxLCB2
b2lkICopCiNkZWZpbmUgVURGX0dFVFZPTElERU5UIF9JT1IoJ2wnLCAweDQyLCB2b2lkICopCiNk
ZWZpbmUgVURGX1JFTE9DQVRFX0JMT0NLUyBfSU9XUignbCcsIDB4NDMsIGxvbmcpCiMgMzA5ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9GU19J
CgoKCgoKCgpzdHJ1Y3QgbmNwX2lub2RlX2luZm8gewogICAgICAgIF9fdTMyIGRpckVudE51bSBf
X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBEb3NEaXJOdW0gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgdm9sTnVtYmVyIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTMyIG53YXR0cjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIG9w
ZW5fc2VtOwogICAgICAgIGF0b21pY190IG9wZW5lZDsKICAgICAgICBpbnQgYWNjZXNzOwogICAg
ICAgIF9fdTMyIHNlcnZlcl9maWxlX2hhbmRsZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3U4IG9wZW5fY3JlYXRlX2FjdGlvbiBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3U4IGZpbGVfaGFuZGxlWzZdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9OwojIDMx
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wcm9jX2ZzX2kuaCIgMQpzdHJ1Y3QgcHJvY19p
bm9kZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAgICAgICAgaW50
IHR5cGU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50ICgqcHJvY19nZXRfbGlu
aykoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiosIHN0cnVjdCB2ZnNtb3VudCAqKik7
CiAgICAgICAgICAgICAgICBpbnQgKCpwcm9jX3JlYWQpKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz
aywgY2hhciAqcGFnZSk7CiAgICAgICAgfSBvcDsKICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZTsK
fTsKIyAzMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdXNiZGV2X2ZzX2kuaCIgMQpzdHJ1
Y3QgdXNiX2RldmljZTsKc3RydWN0IHVzYl9idXM7CgpzdHJ1Y3QgdXNiZGV2X2lub2RlX2luZm8g
ewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGxpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBzbGlzdDsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNiX2Rldmlj
ZSAqZGV2OwogICAgICAgICAgICAgICAgc3RydWN0IHVzYl9idXMgKmJ1czsKICAgICAgICB9IHA7
Cn07CiMgMzEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoK
CgojZGVmaW5lIEFUVFJfTU9ERSAxCiNkZWZpbmUgQVRUUl9VSUQgMgojZGVmaW5lIEFUVFJfR0lE
IDQKI2RlZmluZSBBVFRSX1NJWkUgOAojZGVmaW5lIEFUVFJfQVRJTUUgMTYKI2RlZmluZSBBVFRS
X01USU1FIDMyCiNkZWZpbmUgQVRUUl9DVElNRSA2NAojZGVmaW5lIEFUVFJfQVRJTUVfU0VUIDEy
OAojZGVmaW5lIEFUVFJfTVRJTUVfU0VUIDI1NgojZGVmaW5lIEFUVFJfRk9SQ0UgNTEyCiNkZWZp
bmUgQVRUUl9BVFRSX0ZMQUcgMTAyNAojIDMzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9mcy5oIgpzdHJ1Y3QgaWF0dHIgewogICAgICAgIHVuc2lnbmVkIGludCBpYV92YWxp
ZDsKICAgICAgICB1bW9kZV90IGlhX21vZGU7CiAgICAgICAgdWlkX3QgaWFfdWlkOwogICAgICAg
IGdpZF90IGlhX2dpZDsKICAgICAgICBsb2ZmX3QgaWFfc2l6ZTsKICAgICAgICB0aW1lX3QgaWFf
YXRpbWU7CiAgICAgICAgdGltZV90IGlhX210aW1lOwogICAgICAgIHRpbWVfdCBpYV9jdGltZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgaWFfYXR0cl9mbGFnczsKfTsKCgoKCiNkZWZpbmUgQVRUUl9G
TEFHX1NZTkNST05PVVMgMQojZGVmaW5lIEFUVFJfRkxBR19OT0FUSU1FIDIKI2RlZmluZSBBVFRS
X0ZMQUdfQVBQRU5EIDQKI2RlZmluZSBBVFRSX0ZMQUdfSU1NVVRBQkxFIDgKI2RlZmluZSBBVFRS
X0ZMQUdfTk9ESVJBVElNRSAxNgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3F1b3RhLmgiIDEKIyA0MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9xdW90YS5oIgojZGVmaW5lIF9MSU5VWF9RVU9UQV8KCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAxCgojZGVmaW5lIF9MSU5VWF9FUlJOT19ICgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2Vycm5vLmgiIDEKCiNkZWZpbmUgX0FT
TV9JQTY0X0VSUk5PX0gKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vZXJy
bm8uaCIKI2RlZmluZSBFUEVSTSAxCiNkZWZpbmUgRU5PRU5UIDIKI2RlZmluZSBFU1JDSCAzCiNk
ZWZpbmUgRUlOVFIgNAojZGVmaW5lIEVJTyA1CiNkZWZpbmUgRU5YSU8gNgojZGVmaW5lIEUyQklH
IDcKI2RlZmluZSBFTk9FWEVDIDgKI2RlZmluZSBFQkFERiA5CiNkZWZpbmUgRUNISUxEIDEwCiNk
ZWZpbmUgRUFHQUlOIDExCiNkZWZpbmUgRU5PTUVNIDEyCiNkZWZpbmUgRUFDQ0VTIDEzCiNkZWZp
bmUgRUZBVUxUIDE0CiNkZWZpbmUgRU5PVEJMSyAxNQojZGVmaW5lIEVCVVNZIDE2CiNkZWZpbmUg
RUVYSVNUIDE3CiNkZWZpbmUgRVhERVYgMTgKI2RlZmluZSBFTk9ERVYgMTkKI2RlZmluZSBFTk9U
RElSIDIwCiNkZWZpbmUgRUlTRElSIDIxCiNkZWZpbmUgRUlOVkFMIDIyCiNkZWZpbmUgRU5GSUxF
IDIzCiNkZWZpbmUgRU1GSUxFIDI0CiNkZWZpbmUgRU5PVFRZIDI1CiNkZWZpbmUgRVRYVEJTWSAy
NgojZGVmaW5lIEVGQklHIDI3CiNkZWZpbmUgRU5PU1BDIDI4CiNkZWZpbmUgRVNQSVBFIDI5CiNk
ZWZpbmUgRVJPRlMgMzAKI2RlZmluZSBFTUxJTksgMzEKI2RlZmluZSBFUElQRSAzMgojZGVmaW5l
IEVET00gMzMKI2RlZmluZSBFUkFOR0UgMzQKI2RlZmluZSBFREVBRExLIDM1CiNkZWZpbmUgRU5B
TUVUT09MT05HIDM2CiNkZWZpbmUgRU5PTENLIDM3CiNkZWZpbmUgRU5PU1lTIDM4CiNkZWZpbmUg
RU5PVEVNUFRZIDM5CiNkZWZpbmUgRUxPT1AgNDAKI2RlZmluZSBFV09VTERCTE9DSyBFQUdBSU4K
I2RlZmluZSBFTk9NU0cgNDIKI2RlZmluZSBFSURSTSA0MwojZGVmaW5lIEVDSFJORyA0NAojZGVm
aW5lIEVMMk5TWU5DIDQ1CiNkZWZpbmUgRUwzSExUIDQ2CiNkZWZpbmUgRUwzUlNUIDQ3CiNkZWZp
bmUgRUxOUk5HIDQ4CiNkZWZpbmUgRVVOQVRDSCA0OQojZGVmaW5lIEVOT0NTSSA1MAojZGVmaW5l
IEVMMkhMVCA1MQojZGVmaW5lIEVCQURFIDUyCiNkZWZpbmUgRUJBRFIgNTMKI2RlZmluZSBFWEZV
TEwgNTQKI2RlZmluZSBFTk9BTk8gNTUKI2RlZmluZSBFQkFEUlFDIDU2CiNkZWZpbmUgRUJBRFNM
VCA1NwoKI2RlZmluZSBFREVBRExPQ0sgRURFQURMSwoKI2RlZmluZSBFQkZPTlQgNTkKI2RlZmlu
ZSBFTk9TVFIgNjAKI2RlZmluZSBFTk9EQVRBIDYxCiNkZWZpbmUgRVRJTUUgNjIKI2RlZmluZSBF
Tk9TUiA2MwojZGVmaW5lIEVOT05FVCA2NAojZGVmaW5lIEVOT1BLRyA2NQojZGVmaW5lIEVSRU1P
VEUgNjYKI2RlZmluZSBFTk9MSU5LIDY3CiNkZWZpbmUgRUFEViA2OAojZGVmaW5lIEVTUk1OVCA2
OQojZGVmaW5lIEVDT01NIDcwCiNkZWZpbmUgRVBST1RPIDcxCiNkZWZpbmUgRU1VTFRJSE9QIDcy
CiNkZWZpbmUgRURPVERPVCA3MwojZGVmaW5lIEVCQURNU0cgNzQKI2RlZmluZSBFT1ZFUkZMT1cg
NzUKI2RlZmluZSBFTk9UVU5JUSA3NgojZGVmaW5lIEVCQURGRCA3NwojZGVmaW5lIEVSRU1DSEcg
NzgKI2RlZmluZSBFTElCQUNDIDc5CiNkZWZpbmUgRUxJQkJBRCA4MAojZGVmaW5lIEVMSUJTQ04g
ODEKI2RlZmluZSBFTElCTUFYIDgyCiNkZWZpbmUgRUxJQkVYRUMgODMKI2RlZmluZSBFSUxTRVEg
ODQKI2RlZmluZSBFUkVTVEFSVCA4NQojZGVmaW5lIEVTVFJQSVBFIDg2CiNkZWZpbmUgRVVTRVJT
IDg3CiNkZWZpbmUgRU5PVFNPQ0sgODgKI2RlZmluZSBFREVTVEFERFJSRVEgODkKI2RlZmluZSBF
TVNHU0laRSA5MAojZGVmaW5lIEVQUk9UT1RZUEUgOTEKI2RlZmluZSBFTk9QUk9UT09QVCA5Mgoj
ZGVmaW5lIEVQUk9UT05PU1VQUE9SVCA5MwojZGVmaW5lIEVTT0NLVE5PU1VQUE9SVCA5NAojZGVm
aW5lIEVPUE5PVFNVUFAgOTUKI2RlZmluZSBFUEZOT1NVUFBPUlQgOTYKI2RlZmluZSBFQUZOT1NV
UFBPUlQgOTcKI2RlZmluZSBFQUREUklOVVNFIDk4CiNkZWZpbmUgRUFERFJOT1RBVkFJTCA5OQoj
ZGVmaW5lIEVORVRET1dOIDEwMAojZGVmaW5lIEVORVRVTlJFQUNIIDEwMQojZGVmaW5lIEVORVRS
RVNFVCAxMDIKI2RlZmluZSBFQ09OTkFCT1JURUQgMTAzCiNkZWZpbmUgRUNPTk5SRVNFVCAxMDQK
I2RlZmluZSBFTk9CVUZTIDEwNQojZGVmaW5lIEVJU0NPTk4gMTA2CiNkZWZpbmUgRU5PVENPTk4g
MTA3CiNkZWZpbmUgRVNIVVRET1dOIDEwOAojZGVmaW5lIEVUT09NQU5ZUkVGUyAxMDkKI2RlZmlu
ZSBFVElNRURPVVQgMTEwCiNkZWZpbmUgRUNPTk5SRUZVU0VEIDExMQojZGVmaW5lIEVIT1NURE9X
TiAxMTIKI2RlZmluZSBFSE9TVFVOUkVBQ0ggMTEzCiNkZWZpbmUgRUFMUkVBRFkgMTE0CiNkZWZp
bmUgRUlOUFJPR1JFU1MgMTE1CiNkZWZpbmUgRVNUQUxFIDExNgojZGVmaW5lIEVVQ0xFQU4gMTE3
CiNkZWZpbmUgRU5PVE5BTSAxMTgKI2RlZmluZSBFTkFWQUlMIDExOQojZGVmaW5lIEVJU05BTSAx
MjAKI2RlZmluZSBFUkVNT1RFSU8gMTIxCiNkZWZpbmUgRURRVU9UIDEyMgoKI2RlZmluZSBFTk9N
RURJVU0gMTIzCiNkZWZpbmUgRU1FRElVTVRZUEUgMTI0CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAyCgoKCgojZGVmaW5lIEVSRVNUQVJUU1lTIDUxMgoj
ZGVmaW5lIEVSRVNUQVJUTk9JTlRSIDUxMwojZGVmaW5lIEVSRVNUQVJUTk9IQU5EIDUxNAojZGVm
aW5lIEVOT0lPQ1RMQ01EIDUxNQoKCiNkZWZpbmUgRUJBREhBTkRMRSA1MjEKI2RlZmluZSBFTk9U
U1lOQyA1MjIKI2RlZmluZSBFQkFEQ09PS0lFIDUyMwojZGVmaW5lIEVOT1RTVVBQIDUyNAojZGVm
aW5lIEVUT09TTUFMTCA1MjUKI2RlZmluZSBFU0VSVkVSRkFVTFQgNTI2CiNkZWZpbmUgRUJBRFRZ
UEUgNTI3CiNkZWZpbmUgRUpVS0VCT1ggNTI4CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgoKI2RlZmluZSBkYnRvYihudW0pIChudW0gPDwgQkxP
Q0tfU0laRV9CSVRTKQojZGVmaW5lIGJ0b2RiKG51bSkgKG51bSA+PiBCTE9DS19TSVpFX0JJVFMp
CgoKCgoKI2RlZmluZSBmc190b19kcV9ibG9ja3MobnVtLCBibGtzaXplKSAoKChudW0pICogKGJs
a3NpemUpKSAvIEJMT0NLX1NJWkUpCiMgNjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcXVvdGEuaCIKI2RlZmluZSBNQVhfSVFfVElNRSA2MDQ4MDAKI2RlZmluZSBNQVhfRFFf
VElNRSA2MDQ4MDAKCiNkZWZpbmUgTUFYUVVPVEFTIDIKI2RlZmluZSBVU1JRVU9UQSAwCiNkZWZp
bmUgR1JQUVVPVEEgMQoKCgoKI2RlZmluZSBJTklUUUZOQU1FUyB7ICJ1c2VyIiwgImdyb3VwIiwg
InVuZGVmaW5lZCIsIH07CgoKCgoKI2RlZmluZSBRVU9UQUZJTEVOQU1FICJxdW90YSIKI2RlZmlu
ZSBRVU9UQUdST1VQICJzdGFmZiIKCmV4dGVybiBpbnQgbnJfZHF1b3RzLCBucl9mcmVlX2RxdW90
czsKZXh0ZXJuIGludCBtYXhfZHF1b3RzOwpleHRlcm4gaW50IGRxdW90X3Jvb3Rfc3F1YXNoOwoK
I2RlZmluZSBOUl9EUUhBU0ggNDMKI2RlZmluZSBOUl9EUVVPVFMgMTAyNAoKCgoKCgoKI2RlZmlu
ZSBTVUJDTURNQVNLIDB4MDBmZgojZGVmaW5lIFNVQkNNRFNISUZUIDgKI2RlZmluZSBRQ01EKGNt
ZCwgdHlwZSkgKCgoY21kKSA8PCBTVUJDTURTSElGVCkgfCAoKHR5cGUpICYgU1VCQ01ETUFTSykp
CgojZGVmaW5lIFFfUVVPVEFPTiAweDAxMDAKI2RlZmluZSBRX1FVT1RBT0ZGIDB4MDIwMAojZGVm
aW5lIFFfR0VUUVVPVEEgMHgwMzAwCiNkZWZpbmUgUV9TRVRRVU9UQSAweDA0MDAKI2RlZmluZSBR
X1NFVFVTRSAweDA1MDAKI2RlZmluZSBRX1NZTkMgMHgwNjAwCiNkZWZpbmUgUV9TRVRRTElNIDB4
MDcwMAojZGVmaW5lIFFfR0VUU1RBVFMgMHgwODAwCiNkZWZpbmUgUV9SU1FVQVNIIDB4MTAwMAoK
CgoKCgpzdHJ1Y3QgZHFibGsgewogICAgICAgIF9fdTMyIGRxYl9iaGFyZGxpbWl0OwogICAgICAg
IF9fdTMyIGRxYl9ic29mdGxpbWl0OwogICAgICAgIF9fdTMyIGRxYl9jdXJibG9ja3M7CiAgICAg
ICAgX191MzIgZHFiX2loYXJkbGltaXQ7CiAgICAgICAgX191MzIgZHFiX2lzb2Z0bGltaXQ7CiAg
ICAgICAgX191MzIgZHFiX2N1cmlub2RlczsKICAgICAgICB0aW1lX3QgZHFiX2J0aW1lOwogICAg
ICAgIHRpbWVfdCBkcWJfaXRpbWU7Cn07CgoKCgojZGVmaW5lIGRxX2JoYXJkbGltaXQgZHFfZHFi
LmRxYl9iaGFyZGxpbWl0CiNkZWZpbmUgZHFfYnNvZnRsaW1pdCBkcV9kcWIuZHFiX2Jzb2Z0bGlt
aXQKI2RlZmluZSBkcV9jdXJibG9ja3MgZHFfZHFiLmRxYl9jdXJibG9ja3MKI2RlZmluZSBkcV9p
aGFyZGxpbWl0IGRxX2RxYi5kcWJfaWhhcmRsaW1pdAojZGVmaW5lIGRxX2lzb2Z0bGltaXQgZHFf
ZHFiLmRxYl9pc29mdGxpbWl0CiNkZWZpbmUgZHFfY3VyaW5vZGVzIGRxX2RxYi5kcWJfY3VyaW5v
ZGVzCiNkZWZpbmUgZHFfYnRpbWUgZHFfZHFiLmRxYl9idGltZQojZGVmaW5lIGRxX2l0aW1lIGRx
X2RxYi5kcWJfaXRpbWUKCiNkZWZpbmUgZHFvZmYoVUlEKSAoKGxvZmZfdCkoKFVJRCkgKiBzaXpl
b2YgKHN0cnVjdCBkcWJsaykpKQoKc3RydWN0IGRxc3RhdHMgewogICAgICAgIF9fdTMyIGxvb2t1
cHM7CiAgICAgICAgX191MzIgZHJvcHM7CiAgICAgICAgX191MzIgcmVhZHM7CiAgICAgICAgX191
MzIgd3JpdGVzOwogICAgICAgIF9fdTMyIGNhY2hlX2hpdHM7CiAgICAgICAgX191MzIgYWxsb2Nh
dGVkX2RxdW90czsKICAgICAgICBfX3UzMiBmcmVlX2RxdW90czsKICAgICAgICBfX3UzMiBzeW5j
czsKfTsKCgoKCgoKCiNkZWZpbmUgTUFYX1FVT1RBX01FU1NBR0UgNzUKCiNkZWZpbmUgRFFfTE9D
S0VEIDB4MDEKI2RlZmluZSBEUV9XQU5UIDB4MDIKI2RlZmluZSBEUV9NT0QgMHgwNAojZGVmaW5l
IERRX0JMS1MgMHgxMAojZGVmaW5lIERRX0lOT0RFUyAweDIwCiNkZWZpbmUgRFFfRkFLRSAweDQw
CgpzdHJ1Y3QgZHF1b3QgewogICAgICAgIHN0cnVjdCBkcXVvdCAqZHFfbmV4dDsKICAgICAgICBz
dHJ1Y3QgZHF1b3QgKipkcV9wcHJldjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRxX2ZyZWU7
CiAgICAgICAgc3RydWN0IGRxdW90ICpkcV9oYXNoX25leHQ7CiAgICAgICAgc3RydWN0IGRxdW90
ICoqZHFfaGFzaF9wcHJldjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBkcV93YWl0OwogICAg
ICAgIGludCBkcV9jb3VudDsKCgogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqZHFfc2I7CiAg
ICAgICAgdW5zaWduZWQgaW50IGRxX2lkOwogICAgICAgIGtkZXZfdCBkcV9kZXY7CiAgICAgICAg
c2hvcnQgZHFfdHlwZTsKICAgICAgICBzaG9ydCBkcV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBs
b25nIGRxX3JlZmVyZW5jZWQ7CgogICAgICAgIHN0cnVjdCBkcWJsayBkcV9kcWI7Cn07CgojZGVm
aW5lIE5PRFFVT1QgKHN0cnVjdCBkcXVvdCAqKU5VTEwKCgoKCiNkZWZpbmUgUVVPVEFfU1lTQ0FM
TCAweDAxCiNkZWZpbmUgU0VUX1FVT1RBIDB4MDIKI2RlZmluZSBTRVRfVVNFIDB4MDQKI2RlZmlu
ZSBTRVRfUUxJTUlUIDB4MDgKCiNkZWZpbmUgUVVPVEFfT0sgMAojZGVmaW5lIE5PX1FVT1RBIDEK
IyAzNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDM2NCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgoKCgpzdHJ1Y3QgcGFnZTsKc3Ry
dWN0IGFkZHJlc3Nfc3BhY2U7CgpzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHsKICAg
ICAgICBpbnQgKCp3cml0ZXBhZ2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnJlYWRw
YWdlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICAgICAgICBpbnQgKCpzeW5jX3Bh
Z2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnByZXBhcmVfd3JpdGUpKHN0cnVjdCBm
aWxlICosIHN0cnVjdCBwYWdlICosIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgICAgaW50ICgq
Y29tbWl0X3dyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCwgdW5z
aWduZWQpOwoKICAgICAgICBpbnQgKCpibWFwX1JzbXBfMTRlZDZiZGYpKHN0cnVjdCBhZGRyZXNz
X3NwYWNlICosIGxvbmcpOwp9OwoKc3RydWN0IGFkZHJlc3Nfc3BhY2UgewogICAgICAgIHN0cnVj
dCBsaXN0X2hlYWQgY2xlYW5fcGFnZXM7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBkaXJ0eV9w
YWdlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxvY2tlZF9wYWdlczsKICAgICAgICB1bnNp
Z25lZCBsb25nIG5ycGFnZXM7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9u
cyAqYV9vcHM7CiAgICAgICAgc3RydWN0IGlub2RlICpob3N0OwogICAgICAgIHN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqaV9tbWFwOwogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqaV9tbWFw
X3NoYXJlZDsKICAgICAgICBzcGlubG9ja190IGlfc2hhcmVkX2xvY2s7CiAgICAgICAgaW50IGdm
cF9tYXNrOwp9OwoKc3RydWN0IGNoYXJfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
IGhhc2g7CiAgICAgICAgYXRvbWljX3QgY291bnQ7CiAgICAgICAgZGV2X3QgZGV2OwogICAgICAg
IGF0b21pY190IG9wZW5lcnM7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07Cn07CgpzdHJ1
Y3QgYmxvY2tfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGJkX2hhc2g7CiAgICAg
ICAgYXRvbWljX3QgYmRfY291bnQ7CgogICAgICAgIGRldl90IGJkX2RldjsKICAgICAgICBhdG9t
aWNfdCBiZF9vcGVuZXJzOwogICAgICAgIGNvbnN0IHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0
aW9ucyAqYmRfb3A7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBiZF9zZW07Cn07CgpzdHJ1Y3Qg
aW5vZGUgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9oYXNoOwogICAgICAgIHN0cnVjdCBs
aXN0X2hlYWQgaV9saXN0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kZW50cnk7CgogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kaXJ0eV9idWZmZXJzOwoKICAgICAgICB1bnNpZ25lZCBs
b25nIGlfaW5vOwogICAgICAgIGF0b21pY190IGlfY291bnQ7CiAgICAgICAga2Rldl90IGlfZGV2
OwogICAgICAgIHVtb2RlX3QgaV9tb2RlOwogICAgICAgIG5saW5rX3QgaV9ubGluazsKICAgICAg
ICB1aWRfdCBpX3VpZDsKICAgICAgICBnaWRfdCBpX2dpZDsKICAgICAgICBrZGV2X3QgaV9yZGV2
OwogICAgICAgIGxvZmZfdCBpX3NpemU7CiAgICAgICAgdGltZV90IGlfYXRpbWU7CiAgICAgICAg
dGltZV90IGlfbXRpbWU7CiAgICAgICAgdGltZV90IGlfY3RpbWU7CiAgICAgICAgdW5zaWduZWQg
bG9uZyBpX2Jsa3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2Jsb2NrczsKICAgICAgICB1
bnNpZ25lZCBsb25nIGlfdmVyc2lvbjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGlfc2VtOwog
ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV96b21iaWU7CiAgICAgICAgc3RydWN0IGlub2RlX29w
ZXJhdGlvbnMgKmlfb3A7CiAgICAgICAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CiAg
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICppX3NiOwogICAgICAgIHdhaXRfcXVldWVfaGVhZF90
IGlfd2FpdDsKICAgICAgICBzdHJ1Y3QgZmlsZV9sb2NrICppX2Zsb2NrOwogICAgICAgIHN0cnVj
dCBhZGRyZXNzX3NwYWNlICppX21hcHBpbmc7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
aV9kYXRhOwogICAgICAgIHN0cnVjdCBkcXVvdCAqaV9kcXVvdFsyXTsKCiAgICAgICAgc3RydWN0
IHBpcGVfaW5vZGVfaW5mbyAqaV9waXBlOwogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmlf
YmRldjsKICAgICAgICBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmlfY2RldjsKCiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBpX2Rub3RpZnlfbWFzazsKICAgICAgICBzdHJ1Y3QgZG5vdGlmeV9zdHJ1Y3QgKmlf
ZG5vdGlmeTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBpX3N0YXRlOwoKICAgICAgICB1bnNpZ25l
ZCBpbnQgaV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGlfc29jazsKCiAgICAgICAgYXRv
bWljX3QgaV93cml0ZWNvdW50OwogICAgICAgIHVuc2lnbmVkIGludCBpX2F0dHJfZmxhZ3M7CiAg
ICAgICAgX191MzIgaV9nZW5lcmF0aW9uOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAg
IHN0cnVjdCBtaW5peF9pbm9kZV9pbmZvIG1pbml4X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
ZXh0Ml9pbm9kZV9pbmZvIGV4dDJfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBocGZzX2lub2Rl
X2luZm8gaHBmc19pOwogICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyBudGZz
X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pOwogICAg
ICAgICAgICAgICAgc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHVtc2Rvc19pOwogICAgICAgICAg
ICAgICAgc3RydWN0IGlzb19pbm9kZV9pbmZvIGlzb2ZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgbmZzX2lub2RlX2luZm8gbmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9pbm9k
ZV9pbmZvIHN5c3ZfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBhZmZzX2lub2RlX2luZm8gYWZm
c19pOwogICAgICAgICAgICAgICAgc3RydWN0IHVmc19pbm9kZV9pbmZvIHVmc19pOwogICAgICAg
ICAgICAgICAgc3RydWN0IGVmc19pbm9kZV9pbmZvIGVmc19pOwogICAgICAgICAgICAgICAgc3Ry
dWN0IHJvbWZzX2lub2RlX2luZm8gcm9tZnNfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1l
bV9pbm9kZV9pbmZvIHNobWVtX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgY29kYV9pbm9kZV9p
bmZvIGNvZGFfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzbWJfaW5vZGVfaW5mbyBzbWJmc19p
OwogICAgICAgICAgICAgICAgc3RydWN0IGhmc19pbm9kZV9pbmZvIGhmc19pOwogICAgICAgICAg
ICAgICAgc3RydWN0IGFkZnNfaW5vZGVfaW5mbyBhZGZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgcW54NF9pbm9kZV9pbmZvIHFueDRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCByZWlzZXJm
c19pbm9kZV9pbmZvIHJlaXNlcmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX2lub2Rl
X2luZm8gYmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRmX2lub2RlX2luZm8gdWRmX2k7
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbmNwX2lub2RlX2luZm8gbmNwZnNfaTsKICAgICAgICAg
ICAgICAgIHN0cnVjdCBwcm9jX2lub2RlX2luZm8gcHJvY19pOwogICAgICAgICAgICAgICAgc3Ry
dWN0IHNvY2tldCBzb2NrZXRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCB1c2JkZXZfaW5vZGVf
aW5mbyB1c2JkZXZfaTsKICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfaXA7CiAgICAgICAg
fSB1Owp9OwoKc3RydWN0IGZvd25fc3RydWN0IHsKICAgICAgICBpbnQgcGlkOwogICAgICAgIHVp
ZF90IHVpZCwgZXVpZDsKICAgICAgICBpbnQgc2lnbnVtOwp9OwoKc3RydWN0IGZpbGUgewogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgZl9saXN0OwogICAgICAgIHN0cnVjdCBkZW50cnkgKmZfZGVu
dHJ5OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqZl92ZnNtbnQ7CiAgICAgICAgc3RydWN0IGZp
bGVfb3BlcmF0aW9ucyAqZl9vcDsKICAgICAgICBhdG9taWNfdCBmX2NvdW50OwogICAgICAgIHVu
c2lnbmVkIGludCBmX2ZsYWdzOwogICAgICAgIG1vZGVfdCBmX21vZGU7CiAgICAgICAgbG9mZl90
IGZfcG9zOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9yZWFkYSwgZl9yYW1heCwgZl9yYWVuZCwg
Zl9yYWxlbiwgZl9yYXdpbjsKICAgICAgICBzdHJ1Y3QgZm93bl9zdHJ1Y3QgZl9vd25lcjsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZl91aWQsIGZfZ2lkOwogICAgICAgIGludCBmX2Vycm9yOwoKICAg
ICAgICB1bnNpZ25lZCBsb25nIGZfdmVyc2lvbjsKCgogICAgICAgIHZvaWQgKnByaXZhdGVfZGF0
YTsKfTsKZXh0ZXJuIHNwaW5sb2NrX3QgZmlsZXNfbG9ja19Sc21wX2MyYmUyMTc5OwojZGVmaW5l
IGZpbGVfbGlzdF9sb2NrKCkgc3Bpbl9sb2NrKCZmaWxlc19sb2NrKTsKI2RlZmluZSBmaWxlX2xp
c3RfdW5sb2NrKCkgc3Bpbl91bmxvY2soJmZpbGVzX2xvY2spOwoKI2RlZmluZSBnZXRfZmlsZSh4
KSBhdG9taWNfaW5jKCYoeCktPmZfY291bnQpCiNkZWZpbmUgZmlsZV9jb3VudCh4KSBhdG9taWNf
cmVhZCgmKHgpLT5mX2NvdW50KQoKZXh0ZXJuIGludCBpbml0X3ByaXZhdGVfZmlsZV9Sc21wXzFj
ZWU0YTkwKHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKCiNkZWZpbmUgTUFY
X05PTl9MRlMgKCgxVUw8PDMxKSAtIDEpCgojZGVmaW5lIEZMX1BPU0lYIDEKI2RlZmluZSBGTF9G
TE9DSyAyCiNkZWZpbmUgRkxfQlJPS0VOIDQKI2RlZmluZSBGTF9BQ0NFU1MgOAojZGVmaW5lIEZM
X0xPQ0tEIDE2CiNkZWZpbmUgRkxfTEVBU0UgMzIKIyA1NDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmbF9vd25l
cl90OwoKc3RydWN0IGZpbGVfbG9jayB7CiAgICAgICAgc3RydWN0IGZpbGVfbG9jayAqZmxfbmV4
dDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGZsX2xpbms7CiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCBmbF9ibG9jazsKICAgICAgICBmbF9vd25lcl90IGZsX293bmVyOwogICAgICAgIHVuc2ln
bmVkIGludCBmbF9waWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgZmxfd2FpdDsKICAgICAg
ICBzdHJ1Y3QgZmlsZSAqZmxfZmlsZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGZsX2ZsYWdzOwog
ICAgICAgIHVuc2lnbmVkIGNoYXIgZmxfdHlwZTsKICAgICAgICBsb2ZmX3QgZmxfc3RhcnQ7CiAg
ICAgICAgbG9mZl90IGZsX2VuZDsKCiAgICAgICAgdm9pZCAoKmZsX25vdGlmeSkoc3RydWN0IGZp
bGVfbG9jayAqKTsKICAgICAgICB2b2lkICgqZmxfaW5zZXJ0KShzdHJ1Y3QgZmlsZV9sb2NrICop
OwogICAgICAgIHZvaWQgKCpmbF9yZW1vdmUpKHN0cnVjdCBmaWxlX2xvY2sgKik7CgogICAgICAg
IHN0cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoKICAgICAgICB1bmlvbiB7CiAgICAg
ICAgICAgICAgICBzdHJ1Y3QgbmZzX2xvY2tfaW5mbyBuZnNfZmw7CiAgICAgICAgfSBmbF91Owp9
OwoKCgojZGVmaW5lIElOVF9MSU1JVCh4KSAofigoeCkxIDw8IChzaXplb2YoeCkqOCAtIDEpKSkK
I2RlZmluZSBPRkZTRVRfTUFYIElOVF9MSU1JVChsb2ZmX3QpCiNkZWZpbmUgT0ZGVF9PRkZTRVRf
TUFYIElOVF9MSU1JVChvZmZfdCkKCgpleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBmaWxlX2xvY2tf
bGlzdF9Sc21wXzZlODUxMTlkOwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2ZjbnRsLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0ZDTlRMX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vZmNudGwuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfRkNOVExf
SAojIDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mY250bC5oIgojZGVmaW5l
IE9fQUNDTU9ERSAwMDAzCiNkZWZpbmUgT19SRE9OTFkgMDAKI2RlZmluZSBPX1dST05MWSAwMQoj
ZGVmaW5lIE9fUkRXUiAwMgojZGVmaW5lIE9fQ1JFQVQgMDEwMAojZGVmaW5lIE9fRVhDTCAwMjAw
CiNkZWZpbmUgT19OT0NUVFkgMDQwMAojZGVmaW5lIE9fVFJVTkMgMDEwMDAKI2RlZmluZSBPX0FQ
UEVORCAwMjAwMAojZGVmaW5lIE9fTk9OQkxPQ0sgMDQwMDAKI2RlZmluZSBPX05ERUxBWSBPX05P
TkJMT0NLCiNkZWZpbmUgT19TWU5DIDAxMDAwMAojZGVmaW5lIEZBU1lOQyAwMjAwMDAKI2RlZmlu
ZSBPX0RJUkVDVCAwNDAwMDAKI2RlZmluZSBPX0xBUkdFRklMRSAwMTAwMDAwCiNkZWZpbmUgT19E
SVJFQ1RPUlkgMDIwMDAwMAojZGVmaW5lIE9fTk9GT0xMT1cgMDQwMDAwMAoKI2RlZmluZSBGX0RV
UEZEIDAKI2RlZmluZSBGX0dFVEZEIDEKI2RlZmluZSBGX1NFVEZEIDIKI2RlZmluZSBGX0dFVEZM
IDMKI2RlZmluZSBGX1NFVEZMIDQKI2RlZmluZSBGX0dFVExLIDUKI2RlZmluZSBGX1NFVExLIDYK
I2RlZmluZSBGX1NFVExLVyA3CgojZGVmaW5lIEZfU0VUT1dOIDgKI2RlZmluZSBGX0dFVE9XTiA5
CiNkZWZpbmUgRl9TRVRTSUcgMTAKI2RlZmluZSBGX0dFVFNJRyAxMQoKCiNkZWZpbmUgRkRfQ0xP
RVhFQyAxCgoKI2RlZmluZSBGX1JETENLIDAKI2RlZmluZSBGX1dSTENLIDEKI2RlZmluZSBGX1VO
TENLIDIKCgojZGVmaW5lIEZfRVhMQ0sgNAojZGVmaW5lIEZfU0hMQ0sgOAoKCiNkZWZpbmUgRl9J
TlBST0dSRVNTIDE2CgoKI2RlZmluZSBMT0NLX1NIIDEKI2RlZmluZSBMT0NLX0VYIDIKI2RlZmlu
ZSBMT0NLX05CIDQKCiNkZWZpbmUgTE9DS19VTiA4CgojZGVmaW5lIExPQ0tfTUFORCAzMgojZGVm
aW5lIExPQ0tfUkVBRCA2NAojZGVmaW5lIExPQ0tfV1JJVEUgMTI4CiNkZWZpbmUgTE9DS19SVyAx
OTIKCnN0cnVjdCBmbG9jayB7CiAgICAgICAgc2hvcnQgbF90eXBlOwogICAgICAgIHNob3J0IGxf
d2hlbmNlOwogICAgICAgIG9mZl90IGxfc3RhcnQ7CiAgICAgICAgb2ZmX3QgbF9sZW47CiAgICAg
ICAgcGlkX3QgbF9waWQ7Cn07CgoKI2RlZmluZSBmbG9jazY0IGZsb2NrCgoKI2RlZmluZSBGX0xJ
TlVYX1NQRUNJRklDX0JBU0UgMTAyNAojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZmNudGwuaCIgMgoKI2RlZmluZSBGX1NFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JB
U0UrMCkKI2RlZmluZSBGX0dFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMSkKCgoKCgoj
ZGVmaW5lIEZfTk9USUZZIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMikKCgoKCiNkZWZpbmUgRE5f
QUNDRVNTIDB4MDAwMDAwMDEKI2RlZmluZSBETl9NT0RJRlkgMHgwMDAwMDAwMgojZGVmaW5lIERO
X0NSRUFURSAweDAwMDAwMDA0CiNkZWZpbmUgRE5fREVMRVRFIDB4MDAwMDAwMDgKI2RlZmluZSBE
Tl9SRU5BTUUgMHgwMDAwMDAxMAojZGVmaW5lIEROX0FUVFJJQiAweDAwMDAwMDIwCiNkZWZpbmUg
RE5fTVVMVElTSE9UIDB4ODAwMDAwMDAKIyA1NzcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIGludCBmY250bF9nZXRsayh1bnNpZ25lZCBpbnQsIHN0
cnVjdCBmbG9jayAqKTsKZXh0ZXJuIGludCBmY250bF9zZXRsayh1bnNpZ25lZCBpbnQsIHVuc2ln
bmVkIGludCwgc3RydWN0IGZsb2NrICopOwoKZXh0ZXJuIGludCBmY250bF9nZXRsazY0KHVuc2ln
bmVkIGludCwgc3RydWN0IGZsb2NrICopOwpleHRlcm4gaW50IGZjbnRsX3NldGxrNjQodW5zaWdu
ZWQgaW50LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBmbG9jayAqKTsKCgpleHRlcm4gdm9pZCBsb2Nr
c19pbml0X2xvY2tfUnNtcF9mMDAzZWQxOShzdHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gdm9p
ZCBsb2Nrc19jb3B5X2xvY2tfUnNtcF85OThiOGRkMyhzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVj
dCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lkIGxvY2tzX3JlbW92ZV9wb3NpeChzdHJ1Y3QgZmls
ZSAqLCBmbF9vd25lcl90KTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVtb3ZlX2Zsb2NrKHN0cnVjdCBm
aWxlICopOwpleHRlcm4gc3RydWN0IGZpbGVfbG9jayAqcG9zaXhfdGVzdF9sb2NrX1JzbXBfZGU4
ZTAwNzIoc3RydWN0IGZpbGUgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKZXh0ZXJuIGludCBwb3Np
eF9sb2NrX2ZpbGVfUnNtcF8yNDRmNzUyZShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2Nr
ICosIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBvc2l4X2Jsb2NrX2xvY2tfUnNtcF9jMjA0
MjgwZChzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lk
IHBvc2l4X3VuYmxvY2tfbG9ja19Sc21wXzk1MGU4YWQ2KHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4
dGVybiBpbnQgX19nZXRfbGVhc2VfUnNtcF84MTFjNWE4OShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1
bnNpZ25lZCBpbnQgZmxhZ3MpOwpleHRlcm4gdGltZV90IGxlYXNlX2dldF9tdGltZV9Sc21wX2M4
ZDZiZDdmKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBsb2NrX21heV9yZWFkX1JzbXBfMzE2
ZTUwN2Yoc3RydWN0IGlub2RlICosIGxvZmZfdCBzdGFydCwgdW5zaWduZWQgbG9uZyBjb3VudCk7
CmV4dGVybiBpbnQgbG9ja19tYXlfd3JpdGVfUnNtcF84YmRhODFlYShzdHJ1Y3QgaW5vZGUgKiwg
bG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBsb25nIGNvdW50KTsKCnN0cnVjdCBmYXN5bmNfc3RydWN0
IHsKICAgICAgICBpbnQgbWFnaWM7CiAgICAgICAgaW50IGZhX2ZkOwogICAgICAgIHN0cnVjdCBm
YXN5bmNfc3RydWN0ICpmYV9uZXh0OwogICAgICAgIHN0cnVjdCBmaWxlICpmYV9maWxlOwp9OwoK
I2RlZmluZSBGQVNZTkNfTUFHSUMgMHg0NjAxCgoKZXh0ZXJuIGludCBmYXN5bmNfaGVscGVyX1Jz
bXBfYjI2ZWVmMzAoaW50LCBzdHJ1Y3QgZmlsZSAqLCBpbnQsIHN0cnVjdCBmYXN5bmNfc3RydWN0
ICoqKTsKCmV4dGVybiB2b2lkIGtpbGxfZmFzeW5jX1JzbXBfNDY4MjAzNGMoc3RydWN0IGZhc3lu
Y19zdHJ1Y3QgKiosIGludCwgaW50KTsKCmV4dGVybiB2b2lkIF9fa2lsbF9mYXN5bmNfUnNtcF8w
MmNmODc3MihzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqLCBpbnQsIGludCk7CgpzdHJ1Y3QgbmFtZWlk
YXRhIHsKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7CiAgICAgICAgc3RydWN0IHZmc21v
dW50ICptbnQ7CiAgICAgICAgc3RydWN0IHFzdHIgbGFzdDsKICAgICAgICB1bnNpZ25lZCBpbnQg
ZmxhZ3M7CiAgICAgICAgaW50IGxhc3RfdHlwZTsKfTsKCiNkZWZpbmUgRFFVT1RfVVNSX0VOQUJM
RUQgMHgwMQojZGVmaW5lIERRVU9UX0dSUF9FTkFCTEVEIDB4MDIKCnN0cnVjdCBxdW90YV9tb3Vu
dF9vcHRpb25zCnsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBkcWlvX3NlbTsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGRxb2ZmX3NlbTsKICAg
ICAgICBzdHJ1Y3QgZmlsZSAqZmlsZXNbMl07CiAgICAgICAgdGltZV90IGlub2RlX2V4cGlyZVsy
XTsKICAgICAgICB0aW1lX3QgYmxvY2tfZXhwaXJlWzJdOwogICAgICAgIGNoYXIgcnNxdWFzaFsy
XTsKfTsKCgoKCgojZGVmaW5lIE1OVF9GT1JDRSAweDAwMDAwMDAxCgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWluaXhfZnNfc2IuaCIgMQoKI2RlZmluZSBfTUlOSVhf
RlNfU0IKCgoKCnN0cnVjdCBtaW5peF9zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBzX25pbm9kZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgc19uem9uZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19p
bWFwX2Jsb2NrczsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX3ptYXBf
YmxvY2tzOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNfZmlyc3RkYXRh
em9uZTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196b25lX3Np
emU7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19tYXhfc2l6ZTsKICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHNfZGlyc2l6ZTsKICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHNfbmFtZWxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNfbGlua19tYXg7
CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2ltYXA7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX3ptYXA7CiAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqIHNfc2JoOwogICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgbWluaXhfc3VwZXJfYmxvY2sgKiBzX21zOwogICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX21vdW50X3N0YXRlOwogICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX3ZlcnNpb247Cn07CiMgNjQzICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIKI2RlZmluZSBfTElOVVhfRVhUMl9GU19TQgoK
CgoKCgoKI2RlZmluZSBFWFQyX01BWF9HUk9VUF9MT0FERUQgOAoKCgoKc3RydWN0IGV4dDJfc2Jf
aW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZyYWdfc2l6ZTsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHNfZnJhZ3NfcGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19pbm9kZXNf
cGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mcmFnc19wZXJfZ3JvdXA7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nrc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBzX2lub2Rlc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2l0Yl9wZXJfZ3Jv
dXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dkYl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHNfZGVzY19wZXJfYmxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dyb3Vwc19jb3Vu
dDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBzX3NiaDsKICAgICAgICBzdHJ1Y3QgZXh0
Ml9zdXBlcl9ibG9jayAqIHNfZXM7CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqIHNfZ3Jv
dXBfZGVzYzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX2xvYWRlZF9pbm9kZV9iaXRtYXBzOwog
ICAgICAgIHVuc2lnbmVkIHNob3J0IHNfbG9hZGVkX2Jsb2NrX2JpdG1hcHM7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzX2lub2RlX2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZl
cl9oZWFkICogc19pbm9kZV9iaXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nr
X2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICogc19ibG9ja19i
aXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21vdW50X29wdDsKICAgICAgICB1aWRf
dCBzX3Jlc3VpZDsKICAgICAgICBnaWRfdCBzX3Jlc2dpZDsKICAgICAgICB1bnNpZ25lZCBzaG9y
dCBzX21vdW50X3N0YXRlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfcGFkOwogICAgICAgIGlu
dCBzX2FkZHJfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgaW50IHNfZGVzY19wZXJfYmxvY2tfYml0
czsKICAgICAgICBpbnQgc19pbm9kZV9zaXplOwogICAgICAgIGludCBzX2ZpcnN0X2lubzsKfTsK
IyA2NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaHBmc19mc19zYi5oIiAxCgojZGVmaW5l
IF9IUEZTX0ZTX1NCCgpzdHJ1Y3QgaHBmc19zYl9pbmZvIHsKICAgICAgICBpbm9fdCBzYl9yb290
OwogICAgICAgIHVuc2lnbmVkIHNiX2ZzX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2JfYml0bWFw
czsKICAgICAgICB1bnNpZ25lZCBzYl9kaXJiYW5kX3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNi
X2RpcmJhbmRfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBzYl9kbWFwOwogICAgICAgIHVuc2lnbmVk
IHNiX25fZnJlZTsKICAgICAgICB1bnNpZ25lZCBzYl9uX2ZyZWVfZG5vZGVzOwogICAgICAgIHVp
ZF90IHNiX3VpZDsKICAgICAgICBnaWRfdCBzYl9naWQ7CiAgICAgICAgdW1vZGVfdCBzYl9tb2Rl
OwogICAgICAgIHVuc2lnbmVkIHNiX2NvbnYgOiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2VhcyA6
IDI7CiAgICAgICAgdW5zaWduZWQgc2JfZXJyIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9jaGsg
OiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2xvd2VyY2FzZSA6IDE7CiAgICAgICAgdW5zaWduZWQg
c2Jfd2FzX2Vycm9yIDogMTsKICAgICAgICB1bnNpZ25lZCBzYl9jaGtkc2sgOiAyOwogICAgICAg
IHVuc2lnbmVkIHNiX3JkX2Zub2RlIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9yZF9pbm9kZSA6
IDI7CgoKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9pZ2V0X3E7CiAgICAgICAgdW5zaWdu
ZWQgY2hhciAqc2JfY3BfdGFibGU7CgoKICAgICAgICB1bnNpZ25lZCAqc2JfYm1wX2RpcjsKICAg
ICAgICB1bnNpZ25lZCBzYl9jX2JpdG1hcDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9j
cmVhdGlvbl9kZTsKCiAgICAgICAgdW5zaWduZWQgc2JfY3JlYXRpb25fZGVfbG9jayA6IDE7Cgog
ICAgICAgIGludCBzYl90aW1lc2hpZnQ7Cn07CgojZGVmaW5lIHNfaHBmc19yb290IHUuaHBmc19z
Yi5zYl9yb290CiNkZWZpbmUgc19ocGZzX2ZzX3NpemUgdS5ocGZzX3NiLnNiX2ZzX3NpemUKI2Rl
ZmluZSBzX2hwZnNfYml0bWFwcyB1LmhwZnNfc2Iuc2JfYml0bWFwcwojZGVmaW5lIHNfaHBmc19k
aXJiYW5kX3N0YXJ0IHUuaHBmc19zYi5zYl9kaXJiYW5kX3N0YXJ0CiNkZWZpbmUgc19ocGZzX2Rp
cmJhbmRfc2l6ZSB1LmhwZnNfc2Iuc2JfZGlyYmFuZF9zaXplCiNkZWZpbmUgc19ocGZzX2RtYXAg
dS5ocGZzX3NiLnNiX2RtYXAKI2RlZmluZSBzX2hwZnNfdWlkIHUuaHBmc19zYi5zYl91aWQKI2Rl
ZmluZSBzX2hwZnNfZ2lkIHUuaHBmc19zYi5zYl9naWQKI2RlZmluZSBzX2hwZnNfbW9kZSB1Lmhw
ZnNfc2Iuc2JfbW9kZQojZGVmaW5lIHNfaHBmc19uX2ZyZWUgdS5ocGZzX3NiLnNiX25fZnJlZQoj
ZGVmaW5lIHNfaHBmc19uX2ZyZWVfZG5vZGVzIHUuaHBmc19zYi5zYl9uX2ZyZWVfZG5vZGVzCiNk
ZWZpbmUgc19ocGZzX2xvd2VyY2FzZSB1LmhwZnNfc2Iuc2JfbG93ZXJjYXNlCiNkZWZpbmUgc19o
cGZzX2NvbnYgdS5ocGZzX3NiLnNiX2NvbnYKI2RlZmluZSBzX2hwZnNfZWFzIHUuaHBmc19zYi5z
Yl9lYXMKI2RlZmluZSBzX2hwZnNfZXJyIHUuaHBmc19zYi5zYl9lcnIKI2RlZmluZSBzX2hwZnNf
Y2hrIHUuaHBmc19zYi5zYl9jaGsKI2RlZmluZSBzX2hwZnNfd2FzX2Vycm9yIHUuaHBmc19zYi5z
Yl93YXNfZXJyb3IKI2RlZmluZSBzX2hwZnNfY2hrZHNrIHUuaHBmc19zYi5zYl9jaGtkc2sKCiNk
ZWZpbmUgc19ocGZzX3JkX2lub2RlIHUuaHBmc19zYi5zYl9yZF9pbm9kZQojZGVmaW5lIHNfaHBm
c19jcF90YWJsZSB1LmhwZnNfc2Iuc2JfY3BfdGFibGUKI2RlZmluZSBzX2hwZnNfYm1wX2RpciB1
LmhwZnNfc2Iuc2JfYm1wX2RpcgojZGVmaW5lIHNfaHBmc19jX2JpdG1hcCB1LmhwZnNfc2Iuc2Jf
Y19iaXRtYXAKI2RlZmluZSBzX2hwZnNfY3JlYXRpb25fZGUgdS5ocGZzX3NiLnNiX2NyZWF0aW9u
X2RlCiNkZWZpbmUgc19ocGZzX2NyZWF0aW9uX2RlX2xvY2sgdS5ocGZzX3NiLnNiX2NyZWF0aW9u
X2RlX2xvY2sKI2RlZmluZSBzX2hwZnNfaWdldF9xIHUuaHBmc19zYi5zYl9pZ2V0X3EKCiNkZWZp
bmUgc19ocGZzX3RpbWVzaGlmdCB1LmhwZnNfc2Iuc2JfdGltZXNoaWZ0CiMgNjQ1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTElOVVhfTlRGU19G
U19TQl9ICgp0eXBlZGVmIF9fczY0IExDTjsKCnN0cnVjdCBudGZzX3NiX2luZm97CgogICAgICAg
IG50ZnNfdWlkX3QgdWlkOwogICAgICAgIG50ZnNfZ2lkX3QgZ2lkOwogICAgICAgIG50bW9kZV90
IHVtYXNrOwogICAgICAgIHVuc2lnbmVkIGludCBuY3Q7CiAgICAgICAgdm9pZCAqbmxzX21hcDsK
ICAgICAgICB1bnNpZ25lZCBpbnQgbmd0OwoKCiAgICAgICAgbnRmc19zaXplX3QgcGFydGl0aW9u
X2JpYXM7CgogICAgICAgIG50ZnNfdTMyIGF0X3N0YW5kYXJkX2luZm9ybWF0aW9uOwogICAgICAg
IG50ZnNfdTMyIGF0X2F0dHJpYnV0ZV9saXN0OwogICAgICAgIG50ZnNfdTMyIGF0X2ZpbGVfbmFt
ZTsKICAgICAgICBudGZzX3UzMiBhdF92b2x1bWVfdmVyc2lvbjsKICAgICAgICBudGZzX3UzMiBh
dF9zZWN1cml0eV9kZXNjcmlwdG9yOwogICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9uYW1lOwog
ICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9pbmZvcm1hdGlvbjsKICAgICAgICBudGZzX3UzMiBh
dF9kYXRhOwogICAgICAgIG50ZnNfdTMyIGF0X2luZGV4X3Jvb3Q7CiAgICAgICAgbnRmc191MzIg
YXRfaW5kZXhfYWxsb2NhdGlvbjsKICAgICAgICBudGZzX3UzMiBhdF9iaXRtYXA7CiAgICAgICAg
bnRmc191MzIgYXRfc3ltbGluazsKCiAgICAgICAgaW50IHNlY3Rvcl9zaXplOwogICAgICAgIGlu
dCBjbHVzdGVyX3NpemU7CiAgICAgICAgaW50IGNsdXN0ZXJfc2l6ZV9iaXRzOwogICAgICAgIGlu
dCBtZnRfY2x1c3RlcnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgbWZ0X3JlY29yZF9zaXplOwog
ICAgICAgIGludCBtZnRfcmVjb3JkX3NpemVfYml0czsKICAgICAgICBpbnQgaW5kZXhfY2x1c3Rl
cnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgaW5kZXhfcmVjb3JkX3NpemU7CiAgICAgICAgaW50
IGluZGV4X3JlY29yZF9zaXplX2JpdHM7CiAgICAgICAgTENOIG1mdF9sY247CgogICAgICAgIHVu
c2lnbmVkIGNoYXIgKm1mdDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCAqdXBjYXNlOwogICAgICAg
IHVuc2lnbmVkIGludCB1cGNhc2VfbGVuZ3RoOwoKICAgICAgICBzdHJ1Y3QgbnRmc19pbm9kZV9p
bmZvICptZnRfaW5vOwogICAgICAgIHN0cnVjdCBudGZzX2lub2RlX2luZm8gKm1mdG1pcnI7CiAg
ICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyAqYml0bWFwOwogICAgICAgIHN0cnVjdCBzdXBl
cl9ibG9jayAqc2I7CiAgICAgICAgdW5zaWduZWQgY2hhciBpbm9fZmxhZ3M7Cn07CiMgNjQ2ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX01TRE9T
X0ZTX1NCCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mYXRfY3ZmLmgi
IDEKCiNkZWZpbmUgX0ZBVF9DVkYKCiNkZWZpbmUgQ1ZGX1VTRV9SRUFEUEFHRSAweDAwMDEKCnN0
cnVjdCBjdmZfZm9ybWF0CnsgaW50IGN2Zl92ZXJzaW9uOwogIGNoYXIqIGN2Zl92ZXJzaW9uX3Rl
eHQ7CiAgdW5zaWduZWQgbG9uZyBmbGFnczsKICBpbnQgKCpkZXRlY3RfY3ZmKSAoc3RydWN0IHN1
cGVyX2Jsb2NrKnNiKTsKICBpbnQgKCptb3VudF9jdmYpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2Is
Y2hhcipvcHRpb25zKTsKICBpbnQgKCp1bm1vdW50X2N2ZikgKHN0cnVjdCBzdXBlcl9ibG9jaypz
Yik7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkKiAoKmN2Zl9icmVhZCkgKHN0cnVjdCBzdXBlcl9ibG9j
aypzYixpbnQgYmxvY2spOwogIHN0cnVjdCBidWZmZXJfaGVhZCogKCpjdmZfZ2V0YmxrKSAoc3Ry
dWN0IHN1cGVyX2Jsb2NrKnNiLGludCBibG9jayk7CiAgdm9pZCAoKmN2Zl9icmVsc2UpIChzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOwogIHZvaWQgKCpjdmZf
bWFya19idWZmZXJfZGlydHkpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX3Nl
dF91cHRvZGF0ZSkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50
IHZhbCk7CiAgaW50ICgqY3ZmX2lzX3VwdG9kYXRlKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYixz
dHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX2xsX3J3X2Jsb2NrKSAoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYiwKICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wciwKICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IG5icmVxLAogICAgICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3QgYnVmZmVyX2hlYWQgKmJoWzMyXSk7CiAgaW50ICgqZmF0X2FjY2VzcykgKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsaW50IG5yLGludCBuZXdfdmFsdWUpOwogIGludCAoKmN2Zl9zdGF0ZnMpIChz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBzdGF0ZnMgKmJ1ZiwgaW50IGJ1ZnNpeik7CiAg
aW50ICgqY3ZmX2JtYXApIChzdHJ1Y3QgaW5vZGUgKmlub2RlLGludCBibG9jayk7CiAgc3NpemVf
dCAoKmN2Zl9maWxlX3JlYWQpICggc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZf
dCAqKTsKICBzc2l6ZV90ICgqY3ZmX2ZpbGVfd3JpdGUpICggc3RydWN0IGZpbGUgKiwgY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKICBpbnQgKCpjdmZfbW1hcCkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICBpbnQgKCpjdmZfcmVhZHBhZ2UpIChzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IHBhZ2UgKik7CiAgaW50ICgqY3ZmX3dyaXRlcGFnZSkgKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICBpbnQgKCpjdmZfZGlyX2lvY3RsKSAoc3RydWN0
IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCwKICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogIHZvaWQgKCp6ZXJvX291
dF9jbHVzdGVyKSAoc3RydWN0IGlub2RlKiwgaW50IGNsdXN0ZXJucik7Cn07CgppbnQgcmVnaXN0
ZXJfY3ZmX2Zvcm1hdF9Sc21wXzliYzllMDFlKHN0cnVjdCBjdmZfZm9ybWF0KmN2Zl9mb3JtYXQp
OwppbnQgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0X1JzbXBfMTBjMGI2MjUoc3RydWN0IGN2Zl9mb3Jt
YXQqY3ZmX2Zvcm1hdCk7CnZvaWQgZGVjX2N2Zl9mb3JtYXRfdXNlX2NvdW50X2J5X3ZlcnNpb24o
aW50IHZlcnNpb24pOwppbnQgZGV0ZWN0X2N2ZihzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2IsY2hhcipm
b3JjZSk7CgpleHRlcm4gc3RydWN0IGN2Zl9mb3JtYXQgKmN2Zl9mb3JtYXRzW107CmV4dGVybiBp
bnQgY3ZmX2Zvcm1hdF91c2VfY291bnRbXTsKIyA0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDIKCgoKCgpzdHJ1Y3QgZmF0X21vdW50X29wdGlvbnMg
ewogICAgICAgIHVpZF90IGZzX3VpZDsKICAgICAgICBnaWRfdCBmc19naWQ7CiAgICAgICAgdW5z
aWduZWQgc2hvcnQgZnNfdW1hc2s7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY29kZXBhZ2U7CiAg
ICAgICAgY2hhciAqaW9jaGFyc2V0OwogICAgICAgIHVuc2lnbmVkIGNoYXIgbmFtZV9jaGVjazsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnZlcnNpb247CiAgICAgICAgdW5zaWduZWQgcXVpZXQ6
MSwKICAgICAgICAgICAgICAgICBzaG93ZXhlYzoxLAogICAgICAgICAgICAgICAgIHN5c19pbW11
dGFibGU6MSwKICAgICAgICAgICAgICAgICBkb3RzT0s6MSwKICAgICAgICAgICAgICAgICBpc3Zm
YXQ6MSwKICAgICAgICAgICAgICAgICB1dGY4OjEsCiAgICAgICAgICAgICAgICAgdW5pY29kZV94
bGF0ZToxLAogICAgICAgICAgICAgICAgIHBvc2l4ZnM6MSwKICAgICAgICAgICAgICAgICBudW10
YWlsOjEsCiAgICAgICAgICAgICAgICAgYXRhcmk6MSwKICAgICAgICAgICAgICAgICBmYXQzMjox
LAogICAgICAgICAgICAgICAgIG5vY2FzZToxOwp9OwoKc3RydWN0IHZmYXRfdW5pY29kZSB7CiAg
ICAgICAgdW5zaWduZWQgY2hhciB1bmkxOwogICAgICAgIHVuc2lnbmVkIGNoYXIgdW5pMjsKfTsK
CnN0cnVjdCBtc2Rvc19zYl9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjbHVzdGVyX3Np
emU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY2x1c3Rlcl9iaXRzOwogICAgICAgIHVuc2lnbmVk
IGNoYXIgZmF0cyxmYXRfYml0czsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBmYXRfc3RhcnQ7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBmYXRfbGVuZ3RoOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGly
X3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRpcl9lbnRyaWVzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgZGF0YV9zdGFydDsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsdXN0ZXJzOwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgcm9vdF9jbHVzdGVyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnNp
bmZvX3NlY3RvcjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBmYXRfd2FpdDsKICAgICAgICBz
dHJ1Y3Qgc2VtYXBob3JlIGZhdF9sb2NrOwogICAgICAgIGludCBwcmV2X2ZyZWU7CiAgICAgICAg
aW50IGZyZWVfY2x1c3RlcnM7CiAgICAgICAgc3RydWN0IGZhdF9tb3VudF9vcHRpb25zIG9wdGlv
bnM7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqbmxzX2Rpc2s7CiAgICAgICAgc3RydWN0IG5s
c190YWJsZSAqbmxzX2lvOwogICAgICAgIHN0cnVjdCBjdmZfZm9ybWF0KiBjdmZfZm9ybWF0Owog
ICAgICAgIHZvaWQgKmRpcl9vcHM7CiAgICAgICAgdm9pZCAqcHJpdmF0ZV9kYXRhOwogICAgICAg
IGludCBkaXJfcGVyX2Jsb2NrOwogICAgICAgIGludCBkaXJfcGVyX2Jsb2NrX2JpdHM7Cn07CiMg
NjQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lzb19mc19zYi5oIiAxCgojZGVmaW5lIF9J
U09GU19GU19TQgoKCgoKc3RydWN0IGlzb2ZzX3NiX2luZm8gewogICAgICAgIHVuc2lnbmVkIGxv
bmcgc19uaW5vZGVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19uem9uZXM7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzX2ZpcnN0ZGF0YXpvbmU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196
b25lX3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21heF9zaXplOwoKICAgICAgICB1bnNp
Z25lZCBjaGFyIHNfaGlnaF9zaWVycmE7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX21hcHBpbmc7
CiAgICAgICAgdW5zaWduZWQgY2hhciBzX3JvY2s7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2pv
bGlldF9sZXZlbDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdXRmODsKICAgICAgICB1bnNpZ25l
ZCBjaGFyIHNfY3J1ZnQ7CgoKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdW5oaWRlOwogICAgICAg
IHVuc2lnbmVkIGNoYXIgc19ub3N1aWQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX25vZGV2Owog
ICAgICAgIG1vZGVfdCBzX21vZGU7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgdWlkX3Qg
c191aWQ7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfaW9jaGFyc2V0Owp9OwojIDY0
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTkZT
X0ZTX1NCCgoKCgpzdHJ1Y3QgbmZzX3NlcnZlciB7CiAgICAgICAgc3RydWN0IHJwY19jbG50ICog
Y2xpZW50OwogICAgICAgIHN0cnVjdCBuZnNfcnBjX29wcyAqIHJwY19vcHM7CiAgICAgICAgaW50
IGZsYWdzOwogICAgICAgIHVuc2lnbmVkIGludCByc2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg
cnBhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCB3c2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg
d3BhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCBkdHNpemU7CiAgICAgICAgdW5zaWduZWQgaW50
IGJzaXplOwogICAgICAgIHVuc2lnbmVkIGludCBhY3JlZ21pbjsKICAgICAgICB1bnNpZ25lZCBp
bnQgYWNyZWdtYXg7CiAgICAgICAgdW5zaWduZWQgaW50IGFjZGlybWluOwogICAgICAgIHVuc2ln
bmVkIGludCBhY2Rpcm1heDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZWxlbjsKICAgICAgICBj
aGFyICogaG9zdG5hbWU7CiAgICAgICAgc3RydWN0IG5mc19yZXFsaXN0ICogcndfcmVxdWVzdHM7
Cn07CgoKCgpzdHJ1Y3QgbmZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBuZnNfc2VydmVyIHNf
c2VydmVyOwp9OwojIDY0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX3NiLmgi
IDEKCiNkZWZpbmUgX1NZU1ZfRlNfU0IKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zeXN2X2ZzX3NiLmgiCnN0cnVjdCBzeXN2X3NiX2luZm8gewogICAgICAgIGludCBz
X3R5cGU7CiAgICAgICAgY2hhciBzX2J5dGVzZXg7CiAgICAgICAgY2hhciBzX2tsdWRnZV9zeW1s
aW5rczsKICAgICAgICBjaGFyIHNfdHJ1bmNhdGU7CgogICAgICAgIG5saW5rX3Qgc19saW5rX21h
eDsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9kZXNfcGVyX2Jsb2NrOwogICAgICAgIHVuc2ln
bmVkIGludCBzX2lub2Rlc19wZXJfYmxvY2tfMTsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9k
ZXNfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWduZWQgaW50IHNfaW5kX3Blcl9ibG9jazsK
ICAgICAgICB1bnNpZ25lZCBpbnQgc19pbmRfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHNfaW5kX3Blcl9ibG9ja18yOwogICAgICAgIHVuc2lnbmVkIGludCBzX3Rvb2JpZ19i
bG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgc19ibG9ja19iYXNlOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHNfZmljX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc19mbGNfc2l6ZTsKCiAg
ICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2JoMTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKnNfYmgyOwoKCiAgICAgICAgY2hhciAqIHNfc2JkMTsKICAgICAgICBjaGFyICogc19zYmQy
OwogICAgICAgIHUxNiAqc19zYl9maWNfY291bnQ7CiAgICAgICAgdTE2ICpzX3NiX2ZpY19pbm9k
ZXM7CiAgICAgICAgdTE2ICpzX3NiX3RvdGFsX2ZyZWVfaW5vZGVzOwogICAgICAgIHUxNiAqc19i
Y2FjaGVfY291bnQ7CiAgICAgICAgdTMyICpzX2JjYWNoZTsKICAgICAgICB1MzIgKnNfZnJlZV9i
bG9ja3M7CiAgICAgICAgdTMyICpzX3NiX3RpbWU7CiAgICAgICAgdTMyICpzX3NiX3N0YXRlOwoK
CiAgICAgICAgdTMyIHNfZmlyc3Rpbm9kZXpvbmU7CiAgICAgICAgdTMyIHNfZmlyc3RkYXRhem9u
ZTsKICAgICAgICB1MzIgc19uaW5vZGVzOwogICAgICAgIHUzMiBzX25kYXRhem9uZXM7CiAgICAg
ICAgdTMyIHNfbnpvbmVzOwogICAgICAgIHUxNiBzX25hbWVsZW47Cn07CgoKCiNkZWZpbmUgc3Zf
dHlwZSB1LnN5c3Zfc2Iuc190eXBlCiNkZWZpbmUgc3ZfYnl0ZXNleCB1LnN5c3Zfc2Iuc19ieXRl
c2V4CiNkZWZpbmUgc3Zfa2x1ZGdlX3N5bWxpbmtzIHUuc3lzdl9zYi5zX2tsdWRnZV9zeW1saW5r
cwojZGVmaW5lIHN2X3RydW5jYXRlIHUuc3lzdl9zYi5zX3RydW5jYXRlCiNkZWZpbmUgc3ZfbGlu
a19tYXggdS5zeXN2X3NiLnNfbGlua19tYXgKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrIHUu
c3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2sKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrXzEg
dS5zeXN2X3NiLnNfaW5vZGVzX3Blcl9ibG9ja18xCiNkZWZpbmUgc3ZfaW5vZGVzX3Blcl9ibG9j
a19iaXRzIHUuc3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2tfYml0cwojZGVmaW5lIHN2X2luZF9w
ZXJfYmxvY2sgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9jawojZGVmaW5lIHN2X2luZF9wZXJfYmxv
Y2tfYml0cyB1LnN5c3Zfc2Iuc19pbmRfcGVyX2Jsb2NrX2JpdHMKI2RlZmluZSBzdl9pbmRfcGVy
X2Jsb2NrXzIgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9ja18yCiNkZWZpbmUgc3ZfdG9vYmlnX2Js
b2NrIHUuc3lzdl9zYi5zX3Rvb2JpZ19ibG9jawojZGVmaW5lIHN2X2Jsb2NrX2Jhc2UgdS5zeXN2
X3NiLnNfYmxvY2tfYmFzZQojZGVmaW5lIHN2X2ZpY19zaXplIHUuc3lzdl9zYi5zX2ZpY19zaXpl
CiNkZWZpbmUgc3ZfZmxjX3NpemUgdS5zeXN2X3NiLnNfZmxjX3NpemUKI2RlZmluZSBzdl9iaDEg
dS5zeXN2X3NiLnNfYmgxCiNkZWZpbmUgc3ZfYmgyIHUuc3lzdl9zYi5zX2JoMgojZGVmaW5lIHN2
X3NiZDEgdS5zeXN2X3NiLnNfc2JkMQojZGVmaW5lIHN2X3NiZDIgdS5zeXN2X3NiLnNfc2JkMgoj
ZGVmaW5lIHN2X3NiX2ZpY19jb3VudCB1LnN5c3Zfc2Iuc19zYl9maWNfY291bnQKI2RlZmluZSBz
dl9zYl9maWNfaW5vZGVzIHUuc3lzdl9zYi5zX3NiX2ZpY19pbm9kZXMKI2RlZmluZSBzdl9zYl90
b3RhbF9mcmVlX2lub2RlcyB1LnN5c3Zfc2Iuc19zYl90b3RhbF9mcmVlX2lub2RlcwojZGVmaW5l
IHN2X2JjYWNoZV9jb3VudCB1LnN5c3Zfc2Iuc19iY2FjaGVfY291bnQKI2RlZmluZSBzdl9iY2Fj
aGUgdS5zeXN2X3NiLnNfYmNhY2hlCiNkZWZpbmUgc3ZfZnJlZV9ibG9ja3MgdS5zeXN2X3NiLnNf
ZnJlZV9ibG9ja3MKI2RlZmluZSBzdl9zYl90aW1lIHUuc3lzdl9zYi5zX3NiX3RpbWUKI2RlZmlu
ZSBzdl9zYl9zdGF0ZSB1LnN5c3Zfc2Iuc19zYl9zdGF0ZQojZGVmaW5lIHN2X2ZpcnN0aW5vZGV6
b25lIHUuc3lzdl9zYi5zX2ZpcnN0aW5vZGV6b25lCiNkZWZpbmUgc3ZfZmlyc3RkYXRhem9uZSB1
LnN5c3Zfc2Iuc19maXJzdGRhdGF6b25lCiNkZWZpbmUgc3Zfbmlub2RlcyB1LnN5c3Zfc2Iuc19u
aW5vZGVzCiNkZWZpbmUgc3ZfbmRhdGF6b25lcyB1LnN5c3Zfc2Iuc19uZGF0YXpvbmVzCiNkZWZp
bmUgc3ZfbnpvbmVzIHUuc3lzdl9zYi5zX256b25lcwojZGVmaW5lIHN2X25hbWVsZW4gdS5zeXN2
X3NiLnNfbmFtZWxlbgojIDY1MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX3Ni
LmgiIDEKCiNkZWZpbmUgX0FGRlNfRlNfU0IKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9hZmZzX2ZzX3NiLmgiCnN0cnVjdCBhZmZzX2JtX2luZm8gewogICAgICAgIHUz
MiBibV9rZXk7CiAgICAgICAgdTMyIGJtX2ZyZWU7Cn07CgpzdHJ1Y3QgYWZmc19zYl9pbmZvIHsK
ICAgICAgICBpbnQgc19wYXJ0aXRpb25fc2l6ZTsKICAgICAgICBpbnQgc19yZXNlcnZlZDsKCiAg
ICAgICAgdTMyIHNfZGF0YV9ibGtzaXplOwogICAgICAgIHUzMiBzX3Jvb3RfYmxvY2s7CiAgICAg
ICAgaW50IHNfaGFzaHNpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZsYWdzOwogICAgICAg
IHVpZF90IHNfdWlkOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAgICAgIHVtb2RlX3Qgc19tb2Rl
OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19yb290X2JoOwogICAgICAgIHN0cnVjdCBz
ZW1hcGhvcmUgc19ibWxvY2s7CiAgICAgICAgc3RydWN0IGFmZnNfYm1faW5mbyAqc19iaXRtYXA7
CiAgICAgICAgdTMyIHNfYm1hcF9jb3VudDsKICAgICAgICB1MzIgc19ibWFwX2JpdHM7CiAgICAg
ICAgdTMyIHNfbGFzdF9ibWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19ibWFwX2Jo
OwogICAgICAgIGNoYXIgKnNfcHJlZml4OwogICAgICAgIGludCBzX3ByZWZpeF9sZW47CiAgICAg
ICAgY2hhciBzX3ZvbHVtZVszMl07Cn07CgojZGVmaW5lIFNGX0lOVEwgMHgwMDAxCiNkZWZpbmUg
U0ZfQk1fVkFMSUQgMHgwMDAyCiNkZWZpbmUgU0ZfSU1NVVRBQkxFIDB4MDAwNAojZGVmaW5lIFNG
X1FVSUVUIDB4MDAwOAojZGVmaW5lIFNGX1NFVFVJRCAweDAwMTAKI2RlZmluZSBTRl9TRVRHSUQg
MHgwMDIwCiNkZWZpbmUgU0ZfU0VUTU9ERSAweDAwNDAKI2RlZmluZSBTRl9NVUZTIDB4MDEwMAoj
ZGVmaW5lIFNGX09GUyAweDAyMDAKI2RlZmluZSBTRl9QUkVGSVggMHgwNDAwCiNkZWZpbmUgU0Zf
VkVSQk9TRSAweDA4MDAKI2RlZmluZSBTRl9SRUFET05MWSAweDEwMDAKCgojZGVmaW5lIEFGRlNf
U0IgKCZzYi0+dS5hZmZzX3NiKQojIDY1MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZnNf
ZnNfc2IuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19m
c19zYi5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX1NCX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC91ZnNfZnMuaCIgMQojIDI4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3Vmc19mcy5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX0gKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMzEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQojIDMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3Vmc19mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zdGF0LmgiIDEKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91
ZnNfZnMuaCIgMgoKI2RlZmluZSBVRlNfQkJMT0NLIDAKI2RlZmluZSBVRlNfQkJTSVpFIDgxOTIK
I2RlZmluZSBVRlNfU0JMT0NLIDgxOTIKI2RlZmluZSBVRlNfU0JTSVpFIDgxOTIKCiNkZWZpbmUg
VUZTX1NFQ1RPUl9TSVpFIDUxMgojZGVmaW5lIFVGU19TRUNUT1JfQklUUyA5CiNkZWZpbmUgVUZT
X01BR0lDIDB4MDAwMTE5NTQKI2RlZmluZSBVRlNfQ0lHQU0gMHg1NDE5MDEwMAoKCgoKI2RlZmlu
ZSBVRlNfTUFHSUNfTEZOIDB4MDAwOTUwMTQKI2RlZmluZSBVRlNfQ0lHQU1fTEZOIDB4MTQ1MDA5
MDAKCiNkZWZpbmUgVUZTX01BR0lDX1NFQyAweDAwNjEyMTk1CiNkZWZpbmUgVUZTX0NJR0FNX1NF
QyAweDk1MjE2MTAwCgojZGVmaW5lIFVGU19NQUdJQ19GRUEgMHgwMDE5NTYxMgojZGVmaW5lIFVG
U19DSUdBTV9GRUEgMHgxMjU2MTkwMAoKI2RlZmluZSBVRlNfTUFHSUNfNEdCIDB4MDUyMzE5OTQK
I2RlZmluZSBVRlNfQ0lHQU1fNEdCIDB4OTQxOTIzMDUKCgojZGVmaW5lIFVGU19GU0ZfTEZOIDB4
MDAwMDAwMDEKI2RlZmluZSBVRlNfRlNGX0IxIDB4MDAwMDAwMDIKI2RlZmluZSBVRlNfRlNGX0xG
UyAweDAwMDAwMDAyCiNkZWZpbmUgVUZTX0ZTRl9MVUlEIDB4MDAwMDAwMDQKCgoKCiNkZWZpbmUg
VUZTX0JTSVpFIDgxOTIKI2RlZmluZSBVRlNfTUlOQlNJWkUgNDA5NgojZGVmaW5lIFVGU19GU0la
RSAxMDI0CiNkZWZpbmUgVUZTX01BWEZSQUcgKFVGU19CU0laRSAvIFVGU19GU0laRSkKCiNkZWZp
bmUgVUZTX05EQUREUiAxMgojZGVmaW5lIFVGU19OSU5ESVIgMwoKI2RlZmluZSBVRlNfSU5EX0JM
T0NLIChVRlNfTkRBRERSICsgMCkKI2RlZmluZSBVRlNfRElORF9CTE9DSyAoVUZTX05EQUREUiAr
IDEpCiNkZWZpbmUgVUZTX1RJTkRfQkxPQ0sgKFVGU19OREFERFIgKyAyKQoKI2RlZmluZSBVRlNf
TkRJUl9GUkFHTUVOVCAoVUZTX05EQUREUiA8PCB1c3BpLT5zX2ZwYnNoaWZ0KQojZGVmaW5lIFVG
U19JTkRfRlJBR01FTlQgKFVGU19JTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmlu
ZSBVRlNfRElORF9GUkFHTUVOVCAoVUZTX0RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkK
I2RlZmluZSBVRlNfVElORF9GUkFHTUVOVCAoVUZTX1RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJz
aGlmdCkKCiNkZWZpbmUgVUZTX1JPT1RJTk8gMgojZGVmaW5lIFVGU19GSVJTVF9JTk8gKFVGU19S
T09USU5PICsgMSkKCiNkZWZpbmUgVUZTX1VTRUVGVCAoKF9fdTE2KTY1NTM1KQoKI2RlZmluZSBV
RlNfRlNPSyAweDdjMjY5ZDM4CiNkZWZpbmUgVUZTX0ZTQUNUSVZFICgoY2hhcikweDAwKQojZGVm
aW5lIFVGU19GU0NMRUFOICgoY2hhcikweDAxKQojZGVmaW5lIFVGU19GU1NUQUJMRSAoKGNoYXIp
MHgwMikKI2RlZmluZSBVRlNfRlNPU0YxICgoY2hhcikweDAzKQojZGVmaW5lIFVGU19GU0JBRCAo
KGNoYXIpMHhmZikKCgoKI2RlZmluZSBVRlNfQllURVNFWCAweDAwMDAwMDAxCgoKI2RlZmluZSBV
RlNfTkFUSVZFX0VORElBTiAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NXQUJCRURfRU5ESUFOIDB4
MDAwMDAwMDEKCgoKCgoKI2RlZmluZSBVRlNfREVfTUFTSyAweDAwMDAwMDEwCiNkZWZpbmUgVUZT
X0RFX09MRCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX0RFXzQ0QlNEIDB4MDAwMDAwMTAKCiNkZWZp
bmUgVUZTX1VJRF9NQVNLIDB4MDAwMDAwNjAKI2RlZmluZSBVRlNfVUlEX09MRCAweDAwMDAwMDAw
CiNkZWZpbmUgVUZTX1VJRF80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUgVUZTX1VJRF9FRlQgMHgw
MDAwMDA0MAoKI2RlZmluZSBVRlNfU1RfTUFTSyAweDAwMDAwNzAwCiNkZWZpbmUgVUZTX1NUX09M
RCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NUXzQ0QlNEIDB4MDAwMDAxMDAKI2RlZmluZSBVRlNf
U1RfU1VOIDB4MDAwMDAyMDAKI2RlZmluZSBVRlNfU1RfU1VOeDg2IDB4MDAwMDA0MDAKCiNkZWZp
bmUgVUZTX0NHX01BU0sgMHgwMDAwMzAwMAojZGVmaW5lIFVGU19DR19PTEQgMHgwMDAwMDAwMAoj
ZGVmaW5lIFVGU19DR180NEJTRCAweDAwMDAyMDAwCiNkZWZpbmUgVUZTX0NHX1NVTiAweDAwMDAx
MDAwCgoKI2RlZmluZSBVRlNfNDJJTk9ERUZNVCAtMQojZGVmaW5lIFVGU180NElOT0RFRk1UIDIK
CgojZGVmaW5lIFVGU19NT1VOVF9PTkVSUk9SIDB4MDAwMDAwMEYKI2RlZmluZSBVRlNfTU9VTlRf
T05FUlJPUl9QQU5JQyAweDAwMDAwMDAxCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfTE9DSyAw
eDAwMDAwMDAyCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfVU1PVU5UIDB4MDAwMDAwMDQKI2Rl
ZmluZSBVRlNfTU9VTlRfT05FUlJPUl9SRVBBSVIgMHgwMDAwMDAwOAoKI2RlZmluZSBVRlNfTU9V
TlRfVUZTVFlQRSAweDAwMDAwRkYwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfT0xEIDB4MDAw
MDAwMTAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUg
VUZTX01PVU5UX1VGU1RZUEVfU1VOIDB4MDAwMDAwNDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQ
RV9ORVhUU1RFUCAweDAwMDAwMDgwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfTkVYVFNURVBf
Q0QgMHgwMDAwMDEwMAojZGVmaW5lIFVGU19NT1VOVF9VRlNUWVBFX09QRU5TVEVQIDB4MDAwMDAy
MDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV9TVU54ODYgMHgwMDAwMDQwMAojZGVmaW5lIFVG
U19NT1VOVF9VRlNUWVBFX0hQIDB4MDAwMDA4MDAKCiNkZWZpbmUgdWZzX2NsZWFyX29wdChvLCBv
cHQpIG8gJj0gflVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3NldF9vcHQobywgb3B0KSBv
IHw9IFVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3Rlc3Rfb3B0KG8sIG9wdCkgKChvKSAm
IFVGU19NT1VOVF8gIyMgb3B0KQojIDE2OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC91ZnNfZnMuaCIKI2RlZmluZSBVRlNfTUlORlJFRSA1CiNkZWZpbmUgVUZTX0RFRkFVTFRP
UFQgVUZTX09QVFRJTUUKCgoKCgojZGVmaW5lIHVmc19mc2J0b2RiKHVzcGksIGIpICgoYikgPDwg
KHVzcGkpLT5zX2ZzYnRvZGIpCiNkZWZpbmUgdWZzX2RidG9mc2IodXNwaSwgYikgKChiKSA+PiAo
dXNwaSktPnNfZnNidG9kYikKCgoKCgojZGVmaW5lIHVmc19jZ2Jhc2UoYykgKHVzcGktPnNfZnBn
ICogKGMpKQojZGVmaW5lIHVmc19jZ3N0YXJ0KGMpICh1ZnNfY2diYXNlKGMpICsgdXNwaS0+c19j
Z29mZnNldCAqICgoYykgJiB+dXNwaS0+c19jZ21hc2spKQojZGVmaW5lIHVmc19jZ3NibG9jayhj
KSAodWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX3NibGtubykKI2RlZmluZSB1ZnNfY2djbWluKGMp
ICh1ZnNfY2dzdGFydChjKSArIHVzcGktPnNfY2Jsa25vKQojZGVmaW5lIHVmc19jZ2ltaW4oYykg
KHVmc19jZ3N0YXJ0KGMpICsgdXNwaS0+c19pYmxrbm8pCiNkZWZpbmUgdWZzX2NnZG1pbihjKSAo
dWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX2RibGtubykKCgoKCgoKCiNkZWZpbmUgdWZzX2lub3Rv
Y2coeCkgKCh4KSAvIHVzcGktPnNfaXBnKQojZGVmaW5lIHVmc19pbm90b2Nnb2ZmKHgpICgoeCkg
JSB1c3BpLT5zX2lwZykKI2RlZmluZSB1ZnNfaW5vdG9mc2JhKHgpICh1ZnNfY2dpbWluKHVmc19p
bm90b2NnKHgpKSArIHVmc19pbm90b2Nnb2ZmKHgpIC8gdXNwaS0+c19pbm9wZikKI2RlZmluZSB1
ZnNfaW5vdG9mc2JvKHgpICgoeCkgJSB1c3BpLT5zX2lub3BmKQoKCgoKCiNkZWZpbmUgdWZzX2R0
b2coZCkgKChkKSAvIHVzcGktPnNfZnBnKQojZGVmaW5lIHVmc19kdG9nZChkKSAoKGQpICUgdXNw
aS0+c19mcGcpCgoKCgojZGVmaW5lIHVmc19jYnRvY3lsbm8oYm5vKSAoKGJubykgKiB1c3BpLT5z
X25zcGYgLyB1c3BpLT5zX3NwYykKCiNkZWZpbmUgdWZzX2NidG9ycG9zKGJubykgKCgoKGJubykg
KiB1c3BpLT5zX25zcGYgJSB1c3BpLT5zX3NwYyAvIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX3Ry
YWNrc2tldyArIChibm8pICogdXNwaS0+c19uc3BmICUgdXNwaS0+c19zcGMgJSB1c3BpLT5zX25z
ZWN0ICogdXNwaS0+c19pbnRlcmxlYXZlKSAlIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX25ycG9z
KSAvIHVzcGktPnNfbnBzZWN0KQojIDIyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC91ZnNfZnMuaCIKI2RlZmluZSB1ZnNfYmxrb2ZmKGxvYykgKChsb2MpICYgdXNwaS0+c19x
Ym1hc2spCiNkZWZpbmUgdWZzX2ZyYWdvZmYobG9jKSAoKGxvYykgJiB1c3BpLT5zX3FmbWFzaykK
I2RlZmluZSB1ZnNfbGJsa3Rvc2l6ZShibGspICgoYmxrKSA8PCB1c3BpLT5zX2JzaGlmdCkKI2Rl
ZmluZSB1ZnNfbGJsa25vKGxvYykgKChsb2MpID4+IHVzcGktPnNfYnNoaWZ0KQojZGVmaW5lIHVm
c19udW1mcmFncyhsb2MpICgobG9jKSA+PiB1c3BpLT5zX2ZzaGlmdCkKI2RlZmluZSB1ZnNfYmxr
cm91bmR1cChzaXplKSAoKChzaXplKSArIHVzcGktPnNfcWJtYXNrKSAmIHVzcGktPnNfYm1hc2sp
CiNkZWZpbmUgdWZzX2ZyYWdyb3VuZHVwKHNpemUpICgoKHNpemUpICsgdXNwaS0+c19xZm1hc2sp
ICYgdXNwaS0+c19mbWFzaykKI2RlZmluZSB1ZnNfZnJhZ3N0b2Jsa3MoZnJhZ3MpICgoZnJhZ3Mp
ID4+IHVzcGktPnNfZnBic2hpZnQpCiNkZWZpbmUgdWZzX2Jsa3N0b2ZyYWdzKGJsa3MpICgoYmxr
cykgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmluZSB1ZnNfZnJhZ251bShmc2IpICgoZnNiKSAm
IHVzcGktPnNfZnBibWFzaykKI2RlZmluZSB1ZnNfYmxrbnVtKGZzYikgKChmc2IpICYgfnVzcGkt
PnNfZnBibWFzaykKCiNkZWZpbmUgVUZTX01BWE5BTUxFTiAyNTUKI2RlZmluZSBVRlNfTUFYTU5U
TEVOIDUxMgojZGVmaW5lIFVGU19NQVhDU0JVRlMgMzEKI2RlZmluZSBVRlNfTElOS19NQVggMzIw
MDAKCgoKCgojZGVmaW5lIFVGU19ESVJfUEFEIDQKI2RlZmluZSBVRlNfRElSX1JPVU5EIChVRlNf
RElSX1BBRCAtIDEpCiNkZWZpbmUgVUZTX0RJUl9SRUNfTEVOKG5hbWVfbGVuKSAoKChuYW1lX2xl
bikgKyAxICsgOCArIFVGU19ESVJfUk9VTkQpICYgflVGU19ESVJfUk9VTkQpCgpzdHJ1Y3QgdWZz
X3RpbWV2YWwgewogICAgICAgIF9fczMyIHR2X3NlYzsKICAgICAgICBfX3MzMiB0dl91c2VjOwp9
OwoKc3RydWN0IHVmc19kaXJfZW50cnkgewogICAgICAgIF9fdTMyIGRfaW5vOwogICAgICAgIF9f
dTE2IGRfcmVjbGVuOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIF9fdTE2IGRfbmFt
bGVuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191
OCBkX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTggZF9uYW1sZW47CiAgICAgICAg
ICAgICAgICB9IGRfNDQ7CiAgICAgICAgfSBkX3U7CiAgICAgICAgX191OCBkX25hbWVbMjU1ICsg
MV07Cn07CgpzdHJ1Y3QgdWZzX2NzdW0gewogICAgICAgIF9fdTMyIGNzX25kaXI7CiAgICAgICAg
X191MzIgY3NfbmJmcmVlOwogICAgICAgIF9fdTMyIGNzX25pZnJlZTsKICAgICAgICBfX3UzMiBj
c19uZmZyZWU7Cn07CgoKCgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrIHsKICAgICAgICBfX3UzMiBm
c19saW5rOwogICAgICAgIF9fdTMyIGZzX3JsaW5rOwogICAgICAgIF9fdTMyIGZzX3NibGtubzsK
ICAgICAgICBfX3UzMiBmc19jYmxrbm87CiAgICAgICAgX191MzIgZnNfaWJsa25vOwogICAgICAg
IF9fdTMyIGZzX2RibGtubzsKICAgICAgICBfX3UzMiBmc19jZ29mZnNldDsKICAgICAgICBfX3Uz
MiBmc19jZ21hc2s7CiAgICAgICAgX191MzIgZnNfdGltZTsKICAgICAgICBfX3UzMiBmc19zaXpl
OwogICAgICAgIF9fdTMyIGZzX2RzaXplOwogICAgICAgIF9fdTMyIGZzX25jZzsKICAgICAgICBf
X3UzMiBmc19ic2l6ZTsKICAgICAgICBfX3UzMiBmc19mc2l6ZTsKICAgICAgICBfX3UzMiBmc19m
cmFnOwoKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAgICAgIF9fdTMyIGZzX3JvdGRlbGF5
OwogICAgICAgIF9fdTMyIGZzX3JwczsKCiAgICAgICAgX191MzIgZnNfYm1hc2s7CiAgICAgICAg
X191MzIgZnNfZm1hc2s7CiAgICAgICAgX191MzIgZnNfYnNoaWZ0OwogICAgICAgIF9fdTMyIGZz
X2ZzaGlmdDsKCiAgICAgICAgX191MzIgZnNfbWF4Y29udGlnOwogICAgICAgIF9fdTMyIGZzX21h
eGJwZzsKCiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX2ZzYnRv
ZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9fdTMyIGZzX2NzbWFzazsKICAg
ICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX25pbmRpcjsKICAgICAgICBf
X3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwoKICAgICAgICBfX3UzMiBmc19v
cHRpbTsKCiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgfSBmc19zdW47
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgIH0gZnNfdTE7CiAg
ICAgICAgX191MzIgZnNfaW50ZXJsZWF2ZTsKICAgICAgICBfX3UzMiBmc190cmFja3NrZXc7CgoK
CgogICAgICAgIF9fdTMyIGZzX2lkWzJdOwoKICAgICAgICBfX3UzMiBmc19jc2FkZHI7CiAgICAg
ICAgX191MzIgZnNfY3NzaXplOwogICAgICAgIF9fdTMyIGZzX2Nnc2l6ZTsKCiAgICAgICAgX191
MzIgZnNfbnRyYWs7CiAgICAgICAgX191MzIgZnNfbnNlY3Q7CiAgICAgICAgX191MzIgZnNfc3Bj
OwoKICAgICAgICBfX3UzMiBmc19uY3lsOwoKICAgICAgICBfX3UzMiBmc19jcGc7CiAgICAgICAg
X191MzIgZnNfaXBnOwogICAgICAgIF9fdTMyIGZzX2ZwZzsKCiAgICAgICAgc3RydWN0IHVmc19j
c3VtIGZzX2NzdG90YWw7CgogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4IGZzX2Ns
ZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsKICAgICAg
ICBfX3M4IGZzX2ZzbW50WzUxMl07CgogICAgICAgIF9fdTMyIGZzX2Nncm90b3I7CiAgICAgICAg
X191MzIgZnNfY3NwWzMxXTsKICAgICAgICBfX3UzMiBmc19tYXhjbHVzdGVyOwogICAgICAgIF9f
dTMyIGZzX2NwYzsKICAgICAgICBfX3UxNiBmc19vcG9zdGJsWzE2XVs4XTsKICAgICAgICB1bmlv
biB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3Mz
MiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xh
aW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAg
ICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICAg
IF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZt
YXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAg
ICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAg
IF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNf
bnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBmc19xYm1hc2tbMl07CiAgICAg
ICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFza1syXTsKICAgICAgICAgICAgICAgIH0g
ZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19tYXhzeW1s
aW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19pbm9kZWZtdDsKICAgICAg
ICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4ZmlsZXNpemVbMl07CiAgICAgICAgICAgICAg
ICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zdGF0ZTsK
ICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAgfSBmc191MjsKICAgICAgICBfX3MzMiBm
c19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNfbnJwb3M7CiAgICAgICAgX19zMzIgZnNf
cG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX21h
Z2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07CgoKCgojZGVmaW5lIFVGU19PUFRUSU1F
IDAKI2RlZmluZSBVRlNfT1BUU1BBQ0UgMQoKCgoKI2RlZmluZSBVRlNfNDJQT1NUQkxGTVQgLTEK
I2RlZmluZSBVRlNfRFlOQU1JQ1BPU1RCTEZNVCAxCgoKCgojZGVmaW5lIGZzX2NzKGluZHgpIHUu
dWZzX3NiLnNfY3NwWyhpbmR4KSA+PiB1c3BpLT5zX2Nzc2hpZnRdWyhpbmR4KSAmIH51c3BpLT5z
X2NzbWFza10KIyA0MTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2Zz
LmgiCiNkZWZpbmUgQ0dfTUFHSUMgMHgwOTAyNTUKI2RlZmluZSB1ZnNfY2dfY2hrbWFnaWModWNn
KSAoU1dBQjMyKCh1Y2cpLT5jZ19tYWdpYykgPT0gQ0dfTUFHSUMpCgoKCgpzdHJ1Y3QgdWZzX2N5
bGluZGVyX2dyb3VwIHsKICAgICAgICBfX3UzMiBjZ19saW5rOwogICAgICAgIF9fdTMyIGNnX21h
Z2ljOwogICAgICAgIF9fdTMyIGNnX3RpbWU7CiAgICAgICAgX191MzIgY2dfY2d4OwogICAgICAg
IF9fdTE2IGNnX25jeWw7CiAgICAgICAgX191MTYgY2dfbmlibGs7CiAgICAgICAgX191MzIgY2df
bmRibGs7CiAgICAgICAgc3RydWN0IHVmc19jc3VtIGNnX2NzOwogICAgICAgIF9fdTMyIGNnX3Jv
dG9yOwogICAgICAgIF9fdTMyIGNnX2Zyb3RvcjsKICAgICAgICBfX3UzMiBjZ19pcm90b3I7CiAg
ICAgICAgX191MzIgY2dfZnJzdW1bKDgxOTIgLyAxMDI0KV07CiAgICAgICAgX191MzIgY2dfYnRv
dG9mZjsKICAgICAgICBfX3UzMiBjZ19ib2ZmOwogICAgICAgIF9fdTMyIGNnX2l1c2Vkb2ZmOwog
ICAgICAgIF9fdTMyIGNnX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY2dfbmV4dGZyZWVvZmY7CiAg
ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgX191MzIgY2dfY2x1c3RlcnN1bW9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgY2dfY2x1c3Rlcm9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgY2dfbmNsdXN0
ZXJibGtzOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBjZ19zcGFyZWNvblsxM107CiAg
ICAgICAgICAgICAgICB9IGNnXzQ0OwogICAgICAgICAgICAgICAgX191MzIgY2dfc3BhcmVjb25b
MTZdOwogICAgICAgIH0gY2dfdTsKICAgICAgICBfX3U4IGNnX3NwYWNlWzFdOwoKfTsKCgoKCnN0
cnVjdCB1ZnNfaW5vZGUgewogICAgICAgIF9fdTE2IHVpX21vZGU7CiAgICAgICAgX191MTYgdWlf
bmxpbms7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MTYgdWlfc3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MTYgdWlfc2dpZDsKICAgICAgICAgICAgICAgIH0gb2xkaWRzOwogICAgICAgICAgICAgICAgX191
MzIgdWlfaW51bWJlcjsKICAgICAgICAgICAgICAgIF9fdTMyIHVpX2F1dGhvcjsKICAgICAgICB9
IHVpX3UxOwogICAgICAgIF9fdTY0IHVpX3NpemU7CiAgICAgICAgc3RydWN0IHVmc190aW1ldmFs
IHVpX2F0aW1lOwogICAgICAgIHN0cnVjdCB1ZnNfdGltZXZhbCB1aV9tdGltZTsKICAgICAgICBz
dHJ1Y3QgdWZzX3RpbWV2YWwgdWlfY3RpbWU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgdWlfZGJbMTJdOwogICAg
ICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9pYlszXTsKICAgICAgICAgICAgICAgIH0gdWlf
YWRkcjsKICAgICAgICAgICAgICAgIF9fdTggdWlfc3ltbGlua1s0KigxMiArMyldOwogICAgICAg
IH0gdWlfdTI7CiAgICAgICAgX191MzIgdWlfZmxhZ3M7CiAgICAgICAgX191MzIgdWlfYmxvY2tz
OwogICAgICAgIF9fdTMyIHVpX2dlbjsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBz
dHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9zaGFkb3c7CiAgICAgICAg
ICAgICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgdWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9vZWZ0ZmxhZzsKICAg
ICAgICAgICAgICAgIH0gdWlfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgdWlfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3Uz
MiB1aV9naWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIHVpX3NwYXJlWzJdOwogICAg
ICAgICAgICAgICAgfSB1aV80NDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg
dWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UxNiB1aV9tb2RlaDsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MTYgdWlfc3BhcmU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9f
dTMyIHVpX3RyYW5zOwogICAgICAgICAgICAgICAgfSB1aV9odXJkOwogICAgICAgIH0gdWlfdTM7
Cn07CgoKCiNkZWZpbmUgVUZTX1VGX1NFVFRBQkxFIDB4MDAwMGZmZmYKI2RlZmluZSBVRlNfVUZf
Tk9EVU1QIDB4MDAwMDAwMDEKI2RlZmluZSBVRlNfVUZfSU1NVVRBQkxFIDB4MDAwMDAwMDIKI2Rl
ZmluZSBVRlNfVUZfQVBQRU5EIDB4MDAwMDAwMDQKI2RlZmluZSBVRlNfVUZfT1BBUVVFIDB4MDAw
MDAwMDgKI2RlZmluZSBVRlNfVUZfTk9VTkxJTksgMHgwMDAwMDAxMAoKI2RlZmluZSBVRlNfU0Zf
U0VUVEFCTEUgMHhmZmZmMDAwMAojZGVmaW5lIFVGU19TRl9BUkNISVZFRCAweDAwMDEwMDAwCiNk
ZWZpbmUgVUZTX1NGX0lNTVVUQUJMRSAweDAwMDIwMDAwCiNkZWZpbmUgVUZTX1NGX0FQUEVORCAw
eDAwMDQwMDAwCiNkZWZpbmUgVUZTX1NGX05PVU5MSU5LIDB4MDAxMDAwMDAKCgoKCmV4dGVybiB2
b2lkIHVmc19mcmVlX2ZyYWdtZW50cyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVkLCB1bnNpZ25l
ZCk7CmV4dGVybiB2b2lkIHVmc19mcmVlX2Jsb2NrcyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CmV4dGVybiB1bnNpZ25lZCB1ZnNfbmV3X2ZyYWdtZW50cyAoc3RydWN0IGlu
b2RlICosIHUzMiAqLCB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQgKik7CgoKZXh0
ZXJuIHN0cnVjdCB1ZnNfY2dfcHJpdmF0ZV9pbmZvICogdWZzX2xvYWRfY3lsaW5kZXIgKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CmV4dGVybiB2b2lkIHVmc19wdXRfY3lsaW5kZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CgoKZXh0ZXJuIHN0cnVjdCBpbm9kZV9v
cGVyYXRpb25zIHVmc19kaXJfaW5vZGVfb3BlcmF0aW9uczsKZXh0ZXJuIGludCB1ZnNfY2hlY2tf
ZGlyX2VudHJ5IChjb25zdCBjaGFyICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdWZzX2Rpcl9l
bnRyeSAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0
cnVjdCBpbm9kZV9vcGVyYXRpb25zIHVmc19maWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHVmc19maWxlX29wZXJhdGlvbnM7CgpleHRlcm4gc3RydWN0
IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZnNfYW9wczsKCgpleHRlcm4gdm9pZCB1ZnNfZnJl
ZV9pbm9kZSAoc3RydWN0IGlub2RlICppbm9kZSk7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKiB1ZnNf
bmV3X2lub2RlIChjb25zdCBzdHJ1Y3QgaW5vZGUgKiwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIGlu
dCB1ZnNfZnJhZ19tYXAgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gdm9pZCB1ZnNfcmVh
ZF9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZnNfcHV0X2lub2RlIChzdHJ1
Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVmc193cml0ZV9pbm9kZSAoc3RydWN0IGlub2RlICos
IGludCk7CmV4dGVybiBpbnQgdWZzX3N5bmNfaW5vZGUgKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdWZzX2RlbGV0ZV9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGJ1
ZmZlcl9oZWFkICogdWZzX2dldGZyYWcgKHN0cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCwgaW50LCBp
bnQgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiB1ZnNfYnJlYWQgKHN0cnVjdCBpbm9k
ZSAqLCB1bnNpZ25lZCwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgdWZzX2Rpcl9vcGVyYXRpb25zOwoKCmV4dGVybiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB1
ZnNfZnNfdHlwZTsKZXh0ZXJuIHZvaWQgdWZzX3dhcm5pbmcgKHN0cnVjdCBzdXBlcl9ibG9jayAq
LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0
IChwcmludGYsIDMsIDQpKSk7CmV4dGVybiB2b2lkIHVmc19lcnJvciAoc3RydWN0IHN1cGVyX2Js
b2NrICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXR0cmlidXRlX18gKChm
b3JtYXQgKHByaW50ZiwgMywgNCkpKTsKZXh0ZXJuIHZvaWQgdWZzX3BhbmljIChzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLikgX19hdHRyaWJ1dGVf
XyAoKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkpOwpleHRlcm4gdm9pZCB1ZnNfd3JpdGVfc3VwZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKCgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMg
dWZzX2Zhc3Rfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOwoKCmV4dGVybiB2b2lkIHVmc190cnVu
Y2F0ZSAoc3RydWN0IGlub2RlICopOwojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3Vmc19mc19zYi5oIiAyCgoKCgoKc3RydWN0IHVmc19idWZmZXJfaGVhZCB7CiAgICAg
ICAgdW5zaWduZWQgZnJhZ21lbnQ7CiAgICAgICAgdW5zaWduZWQgY291bnQ7CiAgICAgICAgc3Ry
dWN0IGJ1ZmZlcl9oZWFkICogYmhbKDgxOTIgLyAxMDI0KV07Cn07CgpzdHJ1Y3QgdWZzX2NnX3By
aXZhdGVfaW5mbyB7CiAgICAgICAgc3RydWN0IHVmc19jeWxpbmRlcl9ncm91cCB1Y2c7CiAgICAg
ICAgX191MzIgY19jZ3g7CiAgICAgICAgX191MTYgY19uY3lsOwogICAgICAgIF9fdTE2IGNfbmli
bGs7CiAgICAgICAgX191MzIgY19uZGJsazsKICAgICAgICBfX3UzMiBjX3JvdG9yOwogICAgICAg
IF9fdTMyIGNfZnJvdG9yOwogICAgICAgIF9fdTMyIGNfaXJvdG9yOwogICAgICAgIF9fdTMyIGNf
YnRvdG9mZjsKICAgICAgICBfX3UzMiBjX2JvZmY7CiAgICAgICAgX191MzIgY19pdXNlZG9mZjsK
ICAgICAgICBfX3UzMiBjX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY19uZXh0ZnJlZW9mZjsKICAg
ICAgICBfX3UzMiBjX2NsdXN0ZXJzdW1vZmY7CiAgICAgICAgX191MzIgY19jbHVzdGVyb2ZmOwog
ICAgICAgIF9fdTMyIGNfbmNsdXN0ZXJibGtzOwp9OwoKc3RydWN0IHVmc19zYl9wcml2YXRlX2lu
Zm8gewogICAgICAgIHN0cnVjdCB1ZnNfYnVmZmVyX2hlYWQgc191Ymg7CiAgICAgICAgX191MzIg
c19zYmxrbm87CiAgICAgICAgX191MzIgc19jYmxrbm87CiAgICAgICAgX191MzIgc19pYmxrbm87
CiAgICAgICAgX191MzIgc19kYmxrbm87CiAgICAgICAgX191MzIgc19jZ29mZnNldDsKICAgICAg
ICBfX3UzMiBzX2NnbWFzazsKICAgICAgICBfX3UzMiBzX3NpemU7CiAgICAgICAgX191MzIgc19k
c2l6ZTsKICAgICAgICBfX3UzMiBzX25jZzsKICAgICAgICBfX3UzMiBzX2JzaXplOwogICAgICAg
IF9fdTMyIHNfZnNpemU7CiAgICAgICAgX191MzIgc19mcGI7CiAgICAgICAgX191MzIgc19taW5m
cmVlOwogICAgICAgIF9fdTMyIHNfYm1hc2s7CiAgICAgICAgX191MzIgc19mbWFzazsKICAgICAg
ICBfX3UzMiBzX2JzaGlmdDsKICAgICAgICBfX3UzMiBzX2ZzaGlmdDsKICAgICAgICBfX3UzMiBz
X2ZwYnNoaWZ0OwogICAgICAgIF9fdTMyIHNfZnNidG9kYjsKICAgICAgICBfX3UzMiBzX3Nic2l6
ZTsKICAgICAgICBfX3UzMiBzX2NzbWFzazsKICAgICAgICBfX3UzMiBzX2Nzc2hpZnQ7CiAgICAg
ICAgX191MzIgc19uaW5kaXI7CiAgICAgICAgX191MzIgc19pbm9wYjsKICAgICAgICBfX3UzMiBz
X25zcGY7CiAgICAgICAgX191MzIgc19ucHNlY3Q7CiAgICAgICAgX191MzIgc19pbnRlcmxlYXZl
OwogICAgICAgIF9fdTMyIHNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIHNfY3NhZGRyOwogICAg
ICAgIF9fdTMyIHNfY3NzaXplOwogICAgICAgIF9fdTMyIHNfY2dzaXplOwogICAgICAgIF9fdTMy
IHNfbnRyYWs7CiAgICAgICAgX191MzIgc19uc2VjdDsKICAgICAgICBfX3UzMiBzX3NwYzsKICAg
ICAgICBfX3UzMiBzX2lwZzsKICAgICAgICBfX3UzMiBzX2ZwZzsKICAgICAgICBfX3UzMiBzX2Nw
YzsKICAgICAgICBfX3MzMiBzX2NvbnRpZ3N1bXNpemU7CiAgICAgICAgX19zNjQgc19xYm1hc2s7
CiAgICAgICAgX19zNjQgc19xZm1hc2s7CiAgICAgICAgX19zMzIgc19wb3N0Ymxmb3JtYXQ7CiAg
ICAgICAgX19zMzIgc19ucnBvczsKICAgICAgICBfX3MzMiBzX3Bvc3RibG9mZjsKICAgICAgICBf
X3MzMiBzX3JvdGJsb2ZmOwoKICAgICAgICBfX3UzMiBzX2ZwYm1hc2s7CiAgICAgICAgX191MzIg
c19hcGI7CiAgICAgICAgX191MzIgc18yYXBiOwogICAgICAgIF9fdTMyIHNfM2FwYjsKICAgICAg
ICBfX3UzMiBzX2FwYm1hc2s7CiAgICAgICAgX191MzIgc19hcGJzaGlmdDsKICAgICAgICBfX3Uz
MiBzXzJhcGJzaGlmdDsKICAgICAgICBfX3UzMiBzXzNhcGJzaGlmdDsKICAgICAgICBfX3UzMiBz
X25zcGZzaGlmdDsKICAgICAgICBfX3UzMiBzX25zcGI7CiAgICAgICAgX191MzIgc19pbm9wZjsK
ICAgICAgICBfX3UzMiBzX3NiYmFzZTsKICAgICAgICBfX3UzMiBzX2JwZjsKICAgICAgICBfX3Uz
MiBzX2JwZnNoaWZ0OwogICAgICAgIF9fdTMyIHNfYnBmbWFzazsKCiAgICAgICAgX191MzIgc19t
YXhzeW1saW5rbGVuOwp9OwoKCiNkZWZpbmUgVUZTX01BWF9HUk9VUF9MT0FERUQgOAojZGVmaW5l
IFVGU19DR05PX0VNUFRZICgodW5zaWduZWQpLTEpCgpzdHJ1Y3QgdWZzX3NiX2luZm8gewogICAg
ICAgIHN0cnVjdCB1ZnNfc2JfcHJpdmF0ZV9pbmZvICogc191c3BpOwogICAgICAgIHN0cnVjdCB1
ZnNfY3N1bSAqIHNfY3NwWzMxXTsKICAgICAgICB1bnNpZ25lZCBzX3N3YWI7CiAgICAgICAgdW5z
aWduZWQgc19mbGFnczsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiogc191Y2c7CiAgICAg
ICAgc3RydWN0IHVmc19jZ19wcml2YXRlX2luZm8gKiBzX3VjcGlbOF07CiAgICAgICAgdW5zaWdu
ZWQgc19jZ25vWzhdOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfY2dfbG9hZGVkOwogICAgICAg
IHVuc2lnbmVkIHNfbW91bnRfb3B0Owp9OwoKCgoKCgoKc3RydWN0IHVmc19zdXBlcl9ibG9ja19m
aXJzdCB7CiAgICAgICAgX191MzIgZnNfbGluazsKICAgICAgICBfX3UzMiBmc19ybGluazsKICAg
ICAgICBfX3UzMiBmc19zYmxrbm87CiAgICAgICAgX191MzIgZnNfY2Jsa25vOwogICAgICAgIF9f
dTMyIGZzX2libGtubzsKICAgICAgICBfX3UzMiBmc19kYmxrbm87CiAgICAgICAgX191MzIgZnNf
Y2dvZmZzZXQ7CiAgICAgICAgX191MzIgZnNfY2dtYXNrOwogICAgICAgIF9fdTMyIGZzX3RpbWU7
CiAgICAgICAgX191MzIgZnNfc2l6ZTsKICAgICAgICBfX3UzMiBmc19kc2l6ZTsKICAgICAgICBf
X3UzMiBmc19uY2c7CiAgICAgICAgX191MzIgZnNfYnNpemU7CiAgICAgICAgX191MzIgZnNfZnNp
emU7CiAgICAgICAgX191MzIgZnNfZnJhZzsKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAg
ICAgIF9fdTMyIGZzX3JvdGRlbGF5OwogICAgICAgIF9fdTMyIGZzX3JwczsKICAgICAgICBfX3Uz
MiBmc19ibWFzazsKICAgICAgICBfX3UzMiBmc19mbWFzazsKICAgICAgICBfX3UzMiBmc19ic2hp
ZnQ7CiAgICAgICAgX191MzIgZnNfZnNoaWZ0OwogICAgICAgIF9fdTMyIGZzX21heGNvbnRpZzsK
ICAgICAgICBfX3UzMiBmc19tYXhicGc7CiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAg
ICAgIF9fdTMyIGZzX2ZzYnRvZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9f
dTMyIGZzX2NzbWFzazsKICAgICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZz
X25pbmRpcjsKICAgICAgICBfX3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwog
ICAgICAgIF9fdTMyIGZzX29wdGltOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0
cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX25wc2VjdDsKICAgICAgICAg
ICAgICAgIH0gZnNfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICB9IGZzX3N1bng4NjsKICAg
ICAgICB9IGZzX3UxOwogICAgICAgIF9fdTMyIGZzX2ludGVybGVhdmU7CiAgICAgICAgX191MzIg
ZnNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIGZzX2lkWzJdOwogICAgICAgIF9fdTMyIGZzX2Nz
YWRkcjsKICAgICAgICBfX3UzMiBmc19jc3NpemU7CiAgICAgICAgX191MzIgZnNfY2dzaXplOwog
ICAgICAgIF9fdTMyIGZzX250cmFrOwogICAgICAgIF9fdTMyIGZzX25zZWN0OwogICAgICAgIF9f
dTMyIGZzX3NwYzsKICAgICAgICBfX3UzMiBmc19uY3lsOwogICAgICAgIF9fdTMyIGZzX2NwZzsK
ICAgICAgICBfX3UzMiBmc19pcGc7CiAgICAgICAgX191MzIgZnNfZnBnOwogICAgICAgIHN0cnVj
dCB1ZnNfY3N1bSBmc19jc3RvdGFsOwogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4
IGZzX2NsZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsK
ICAgICAgICBfX3M4IGZzX2ZzbW50WzUxMiAtIDIxMl07Cgp9OwoKc3RydWN0IHVmc19zdXBlcl9i
bG9ja19zZWNvbmQgewogICAgICAgIF9fczggZnNfZnNtbnRbMjEyXTsKICAgICAgICBfX3UzMiBm
c19jZ3JvdG9yOwogICAgICAgIF9fdTMyIGZzX2NzcFszMV07CiAgICAgICAgX191MzIgZnNfbWF4
Y2x1c3RlcjsKICAgICAgICBfX3UzMiBmc19jcGM7CiAgICAgICAgX191MTYgZnNfb3Bvc3RibFs4
Ml07Cn07CgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrX3RoaXJkIHsKICAgICAgICBfX3UxNiBmc19v
cG9zdGJsWzQ2XTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAg
ICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMy
IGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7
CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAg
ICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07
CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBf
X3UzMiBmc19xYm1hc2tbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFz
a1syXTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAg
ICAgICAgICAgICAgICAgICBfX3MzMiBmc19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAg
ICAgICAgICBfX3MzMiBmc19tYXhzeW1saW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBf
X3MzMiBmc19pbm9kZWZtdDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4Zmls
ZXNpemVbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAg
ICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAg
ICAgICAgICBfX3MzMiBmc19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAg
fSBmc191MjsKICAgICAgICBfX3MzMiBmc19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNf
bnJwb3M7CiAgICAgICAgX19zMzIgZnNfcG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJs
b2ZmOwogICAgICAgIF9fczMyIGZzX21hZ2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07
CiMgNjUyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Vmc19mc19zYi5oIiAxCiMgMTAgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX3NiLmgiCiNkZWZpbmUgX19F
RlNfRlNfU0JfSF9fCgoKI2RlZmluZSBFRlNfU1VQRVJfTUFHSUMgMHg0MTRBNTMKCgojZGVmaW5l
IEVGU19NQUdJQyAweDA3Mjk1OQojZGVmaW5lIEVGU19ORVdNQUdJQyAweDA3Mjk1YQoKI2RlZmlu
ZSBJU19FRlNfTUFHSUMoeCkgKCh4ID09IEVGU19NQUdJQykgfHwgKHggPT0gRUZTX05FV01BR0lD
KSkKCiNkZWZpbmUgRUZTX1NVUEVSIDEKI2RlZmluZSBFRlNfUk9PVElOT0RFIDIKCgpzdHJ1Y3Qg
ZWZzX3N1cGVyIHsKICAgICAgICBpbnQzMl90IGZzX3NpemU7CiAgICAgICAgaW50MzJfdCBmc19m
aXJzdGNnOwogICAgICAgIGludDMyX3QgZnNfY2dmc2l6ZTsKICAgICAgICBzaG9ydCBmc19jZ2lz
aXplOwogICAgICAgIHNob3J0IGZzX3NlY3RvcnM7CiAgICAgICAgc2hvcnQgZnNfaGVhZHM7CiAg
ICAgICAgc2hvcnQgZnNfbmNnOwogICAgICAgIHNob3J0IGZzX2RpcnR5OwogICAgICAgIGludDMy
X3QgZnNfdGltZTsKICAgICAgICBpbnQzMl90IGZzX21hZ2ljOwogICAgICAgIGNoYXIgZnNfZm5h
bWVbNl07CiAgICAgICAgY2hhciBmc19mcGFja1s2XTsKICAgICAgICBpbnQzMl90IGZzX2Jtc2l6
ZTsKICAgICAgICBpbnQzMl90IGZzX3RmcmVlOwogICAgICAgIGludDMyX3QgZnNfdGlub2RlOwog
ICAgICAgIGludDMyX3QgZnNfYm1ibG9jazsKICAgICAgICBpbnQzMl90IGZzX3JlcGxzYjsKICAg
ICAgICBpbnQzMl90IGZzX2xhc3RpYWxsb2M7CiAgICAgICAgY2hhciBmc19zcGFyZVsyMF07CiAg
ICAgICAgaW50MzJfdCBmc19jaGVja3N1bTsKfTsKCgpzdHJ1Y3QgZWZzX3NiX2luZm8gewogICAg
ICAgIGludDMyX3QgZnNfbWFnaWM7CiAgICAgICAgaW50MzJfdCBmc19zdGFydDsKICAgICAgICBp
bnQzMl90IGZpcnN0X2Jsb2NrOwogICAgICAgIGludDMyX3QgdG90YWxfYmxvY2tzOwogICAgICAg
IGludDMyX3QgZ3JvdXBfc2l6ZTsKICAgICAgICBpbnQzMl90IGRhdGFfZnJlZTsKICAgICAgICBp
bnQzMl90IGlub2RlX2ZyZWU7CiAgICAgICAgc2hvcnQgaW5vZGVfYmxvY2tzOwogICAgICAgIHNo
b3J0IHRvdGFsX2dyb3VwczsKfTsKIyA2NTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcm9t
ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfX1JPTUZTX0ZTX1NCCgoKCnN0cnVjdCByb21mc19zYl9p
bmZvIHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNfbWF4c2l6ZTsKfTsKIyA2NTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zbWJfZnNfc2IuaCIKI2RlZmluZSBfU01CX0ZTX1NCCgoKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvc21iLmgiCiNkZWZpbmUgX0xJTlVYX1NNQl9ICgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEzICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAyCgplbnVtIHNtYl9wcm90b2NvbCB7
CiAgICAgICAgU01CX1BST1RPQ09MX05PTkUsCiAgICAgICAgU01CX1BST1RPQ09MX0NPUkUsCiAg
ICAgICAgU01CX1BST1RPQ09MX0NPUkVQTFVTLAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4x
LAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4yLAogICAgICAgIFNNQl9QUk9UT0NPTF9OVDEK
fTsKCmVudW0gc21iX2Nhc2VfaG5kbCB7CiAgICAgICAgU01CX0NBU0VfREVGQVVMVCwKICAgICAg
ICBTTUJfQ0FTRV9MT1dFUiwKICAgICAgICBTTUJfQ0FTRV9VUFBFUgp9OwoKc3RydWN0IHNtYl9k
c2thdHRyIHsKICAgICAgICBfX3UxNiB0b3RhbDsKICAgICAgICBfX3UxNiBhbGxvY2Jsb2NrczsK
ICAgICAgICBfX3UxNiBibG9ja3NpemU7CiAgICAgICAgX191MTYgZnJlZTsKfTsKCnN0cnVjdCBz
bWJfY29ubl9vcHQgewoKCiAgICAgICAgdW5zaWduZWQgaW50IGZkOwoKICAgICAgICBlbnVtIHNt
Yl9wcm90b2NvbCBwcm90b2NvbDsKICAgICAgICBlbnVtIHNtYl9jYXNlX2huZGwgY2FzZV9oYW5k
bGluZzsKCgoKICAgICAgICBfX3UzMiBtYXhfeG1pdDsKICAgICAgICBfX3UxNiBzZXJ2ZXJfdWlk
OwogICAgICAgIF9fdTE2IHRpZDsKCgogICAgICAgIF9fdTE2IHNlY21vZGU7CiAgICAgICAgX191
MTYgbWF4bXV4OwogICAgICAgIF9fdTE2IG1heHZjczsKICAgICAgICBfX3UxNiByYXdtb2RlOwog
ICAgICAgIF9fdTMyIHNlc3NrZXk7CgoKICAgICAgICBfX3UzMiBtYXhyYXc7CiAgICAgICAgX191
MzIgY2FwYWJpbGl0aWVzOwogICAgICAgIF9fczE2IHNlcnZlcnpvbmU7Cn07CgoKCiNkZWZpbmUg
U01CX05MU19NQVhOQU1FTEVOIDIwCnN0cnVjdCBzbWJfbmxzX2NvZGVwYWdlIHsKICAgICAgICBj
aGFyIGxvY2FsX25hbWVbMjBdOwogICAgICAgIGNoYXIgcmVtb3RlX25hbWVbMjBdOwp9OwoKCiNk
ZWZpbmUgU01CX01BWE5BTUVMRU4gMjU1CiNkZWZpbmUgU01CX01BWFBBVEhMRU4gMTAyNAoKCgoK
c3RydWN0IHNtYl9mYXR0ciB7CgogICAgICAgIF9fdTE2IGF0dHI7CgogICAgICAgIHVuc2lnbmVk
IGxvbmcgZl9pbm87CiAgICAgICAgdW1vZGVfdCBmX21vZGU7CiAgICAgICAgbmxpbmtfdCBmX25s
aW5rOwogICAgICAgIHVpZF90IGZfdWlkOwogICAgICAgIGdpZF90IGZfZ2lkOwogICAgICAgIGtk
ZXZfdCBmX3JkZXY7CiAgICAgICAgb2ZmX3QgZl9zaXplOwogICAgICAgIHRpbWVfdCBmX2F0aW1l
OwogICAgICAgIHRpbWVfdCBmX210aW1lOwogICAgICAgIHRpbWVfdCBmX2N0aW1lOwogICAgICAg
IHVuc2lnbmVkIGxvbmcgZl9ibGtzaXplOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9ibG9ja3M7
Cn07CgplbnVtIHNtYl9jb25uX3N0YXRlIHsKICAgICAgICBDT05OX1ZBTElELAogICAgICAgIENP
Tk5fSU5WQUxJRCwKCiAgICAgICAgQ09OTl9SRVRSSUVELAogICAgICAgIENPTk5fUkVUUllJTkcK
fTsKCiNkZWZpbmUgU01CX1NVUEVSX01BR0lDIDB4NTE3QgoKI2RlZmluZSBTTUJfSEVBREVSX0xF
TiAzNwoKCiNkZWZpbmUgU01CX0lOSVRJQUxfUEFDS0VUX1NJWkUgNDAwMAojZGVmaW5lIFNNQl9N
QVhfUEFDS0VUX1NJWkUgMzI3NjgKCgoKI2RlZmluZSBTTUJfVFJBTlMyX01BWF9QQVJBTSA2NAoj
IDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19zYi5oIiAyCgoK
I2RlZmluZSBzZXJ2ZXJfZnJvbV9pbm9kZShpbm9kZSkgKCYoaW5vZGUpLT5pX3NiLT51LnNtYmZz
X3NiKQojZGVmaW5lIHNlcnZlcl9mcm9tX2RlbnRyeShkZW50cnkpICgmKGRlbnRyeSktPmRfc2It
PnUuc21iZnNfc2IpCiNkZWZpbmUgU0Jfb2Yoc2VydmVyKSAoKHN0cnVjdCBzdXBlcl9ibG9jayAq
KSAoKGNoYXIgKikoc2VydmVyKSAtICh1bnNpZ25lZCBsb25nKSgmKChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKikwKS0+dS5zbWJmc19zYikpKQoKCnN0cnVjdCBzbWJfc2JfaW5mbyB7CiAgICAgICAgZW51
bSBzbWJfY29ubl9zdGF0ZSBzdGF0ZTsKICAgICAgICBzdHJ1Y3QgZmlsZSAqIHNvY2tfZmlsZTsK
CiAgICAgICAgc3RydWN0IHNtYl9tb3VudF9kYXRhX2tlcm5lbCAqbW50OwogICAgICAgIHVuc2ln
bmVkIGNoYXIgKnRlbXBfYnVmOwoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgZ2VuZXJhdGlvbjsK
ICAgICAgICBwaWRfdCBjb25uX3BpZDsKICAgICAgICBzdHJ1Y3Qgc21iX2Nvbm5fb3B0IG9wdDsK
CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qg
d2FpdDsKCiAgICAgICAgX191MzIgcGFja2V0X3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
IHBhY2tldDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCByY2xzOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IGVycjsKCgogICAgICAgIHZvaWQgKmRhdGFfcmVhZHk7CgoKICAgICAgICBzdHJ1Y3Qgbmxz
X3RhYmxlICpyZW1vdGVfbmxzOwogICAgICAgIHN0cnVjdCBubHNfdGFibGUgKmxvY2FsX25sczsK
CgoKCiAgICAgICAgY2hhciAqbmFtZV9idWY7CgogICAgICAgIGludCAoKmNvbnZlcnQpKGNoYXIg
KiwgaW50LCBjb25zdCBjaGFyICosIGludCwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
bmxzX3RhYmxlICosIHN0cnVjdCBubHNfdGFibGUgKik7Cn07CgoKc3RhdGljIGlubGluZSB2b2lk
CnNtYl9sb2NrX3NlcnZlcihzdHJ1Y3Qgc21iX3NiX2luZm8gKnNlcnZlcikKewogICAgICAgIGRv
d24oJihzZXJ2ZXItPnNlbSkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKc21iX3VubG9ja19zZXJ2
ZXIoc3RydWN0IHNtYl9zYl9pbmZvICpzZXJ2ZXIpCnsKICAgICAgICB1cCgmKHNlcnZlci0+c2Vt
KSk7Cn0KIyA2NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX3NiLmgiIDEKIyAx
MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfc2IuaCIKI2RlZmlu
ZSBfTElOVVhfSEZTX0ZTX1NCX0gKCgpzdHJ1Y3QgaGZzX25hbWU7Cgp0eXBlZGVmIGludCAoKmhm
c19uYW1laW5fZm4pIChjaGFyICosIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqKTsKdHlwZWRlZiB2
b2lkICgqaGZzX25hbWVvdXRfZm4pIChzdHJ1Y3QgaGZzX25hbWUgKiwgY29uc3QgY2hhciAqLCBp
bnQpOwp0eXBlZGVmIHZvaWQgKCpoZnNfaWZpbGxfZm4pIChzdHJ1Y3QgaW5vZGUgKiwgaW5vX3Qs
IGNvbnN0IGludCk7CgoKCgoKCnN0cnVjdCBoZnNfc2JfaW5mbyB7CiAgICAgICAgaW50IG1hZ2lj
OwogICAgICAgIHN0cnVjdCBoZnNfbWRiICpzX21kYjsKICAgICAgICBpbnQgc19xdWlldDsKCiAg
ICAgICAgaW50IHNfbG93ZXJjYXNlOwogICAgICAgIGludCBzX2FmcGQ7CiAgICAgICAgaW50IHNf
dmVyc2lvbjsKICAgICAgICBoZnNfbmFtZWluX2ZuIHNfbmFtZWluOwoKCiAgICAgICAgaGZzX25h
bWVvdXRfZm4gc19uYW1lb3V0OwoKCiAgICAgICAgaGZzX2lmaWxsX2ZuIHNfaWZpbGw7CgogICAg
ICAgIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqc19yZXNlcnZlZDE7CiAgICAgICAgY29uc3Qgc3Ry
dWN0IGhmc19uYW1lICpzX3Jlc2VydmVkMjsKICAgICAgICBfX3UzMiBzX3R5cGU7CiAgICAgICAg
X191MzIgc19jcmVhdG9yOwogICAgICAgIHVtb2RlX3Qgc191bWFzazsKCiAgICAgICAgdWlkX3Qg
c191aWQ7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgY2hhciBzX2NvbnY7Cn07CiMgNjU2
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FkZnNfZnNfc2IuaCIgMQoKCgoKCgoKI2RlZmlu
ZSBfQURGU19GU19TQgoKCgoKc3RydWN0IGFkZnNfZGlzY21hcDsKc3RydWN0IGFkZnNfZGlyX29w
czsKCgoKCnN0cnVjdCBhZGZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBhZGZzX2Rpc2NtYXAg
KnNfbWFwOwogICAgICAgIHN0cnVjdCBhZGZzX2Rpcl9vcHMgKnNfZGlyOwoKICAgICAgICB1aWRf
dCBzX3VpZDsKICAgICAgICBnaWRfdCBzX2dpZDsKICAgICAgICB1bW9kZV90IHNfb3duZXJfbWFz
azsKICAgICAgICB1bW9kZV90IHNfb3RoZXJfbWFzazsKCiAgICAgICAgX191MzIgc19pZHNfcGVy
X3pvbmU7CiAgICAgICAgX191MzIgc19pZGxlbjsKICAgICAgICBfX3UzMiBzX21hcF9zaXplOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgc19zaXplOwogICAgICAgIHNpZ25lZCBpbnQgc19tYXAyYmxr
OwogICAgICAgIHVuc2lnbmVkIGludCBzX2xvZzJzaGFyZXNpemU7CiAgICAgICAgdW5zaWduZWQg
aW50IHNfdmVyc2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgc19uYW1lbGVuOwp9OwojIDY1NyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiIDEKIyAxMiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiCiNkZWZpbmUgX1FOWDRfRlNf
U0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiIDEK
IyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiCiNkZWZp
bmUgX0xJTlVYX1FOWDRfRlNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3FueHR5cGVzLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9xbng0X2ZzLmgiIDIKCiNkZWZpbmUgUU5YNF9ST09UX0lOTyAxCgojZGVmaW5lIFFOWDRfTUFY
X1hUTlRTX1BFUl9YQkxLIDYwCgojZGVmaW5lIFFOWDRfRklMRV9VU0VEIDB4MDEKI2RlZmluZSBR
Tlg0X0ZJTEVfTU9ESUZJRUQgMHgwMgojZGVmaW5lIFFOWDRfRklMRV9CVVNZIDB4MDQKI2RlZmlu
ZSBRTlg0X0ZJTEVfTElOSyAweDA4CiNkZWZpbmUgUU5YNF9GSUxFX0lOT0RFIDB4MTAKI2RlZmlu
ZSBRTlg0X0ZJTEVfRlNZU0NMRUFOIDB4MjAKCiNkZWZpbmUgUU5YNF9JX01BUF9TTE9UUyA4CiNk
ZWZpbmUgUU5YNF9aX01BUF9TTE9UUyA2NAojZGVmaW5lIFFOWDRfU1VQRVJfTUFHSUMgMHgwMDJm
CiNkZWZpbmUgUU5YNF9WQUxJRF9GUyAweDAwMDEKI2RlZmluZSBRTlg0X0VSUk9SX0ZTIDB4MDAw
MgojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRSAweDIwMAojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRV9C
SVRTIDkKI2RlZmluZSBRTlg0X0RJUl9FTlRSWV9TSVpFIDB4MDQwCiNkZWZpbmUgUU5YNF9ESVJf
RU5UUllfU0laRV9CSVRTIDYKI2RlZmluZSBRTlg0X1hCTEtfRU5UUllfU0laRSAweDIwMAojZGVm
aW5lIFFOWDRfSU5PREVTX1BFUl9CTE9DSyAweDA4CgoKI2RlZmluZSBRTlg0X1NIT1JUX05BTUVf
TUFYIDE2CiNkZWZpbmUgUU5YNF9OQU1FX01BWCA0OAoKCgoKc3RydWN0IHFueDRfaW5vZGVfZW50
cnkgewogICAgICAgIGNoYXIgZGlfZm5hbWVbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgZGlfc2l6
ZTsKICAgICAgICBxbng0X3h0bnRfdCBkaV9maXJzdF94dG50OwogICAgICAgIF9fdTMyIGRpX3hi
bGs7CiAgICAgICAgX19zMzIgZGlfZnRpbWU7CiAgICAgICAgX19zMzIgZGlfbXRpbWU7CiAgICAg
ICAgX19zMzIgZGlfYXRpbWU7CiAgICAgICAgX19zMzIgZGlfY3RpbWU7CiAgICAgICAgcW54NF9u
eHRudF90IGRpX251bV94dG50czsKICAgICAgICBxbng0X21vZGVfdCBkaV9tb2RlOwogICAgICAg
IHFueDRfbXVpZF90IGRpX3VpZDsKICAgICAgICBxbng0X21naWRfdCBkaV9naWQ7CiAgICAgICAg
cW54NF9ubGlua190IGRpX25saW5rOwogICAgICAgIF9fdTggZGlfemVyb1s0XTsKICAgICAgICBx
bng0X2Z0eXBlX3QgZGlfdHlwZTsKICAgICAgICBfX3U4IGRpX3N0YXR1czsKfTsKCnN0cnVjdCBx
bng0X2xpbmtfaW5mbyB7CiAgICAgICAgY2hhciBkbF9mbmFtZVs0OF07CiAgICAgICAgX191MzIg
ZGxfaW5vZGVfYmxrOwogICAgICAgIF9fdTggZGxfaW5vZGVfbmR4OwogICAgICAgIF9fdTggZGxf
c3BhcmVbMTBdOwogICAgICAgIF9fdTggZGxfc3RhdHVzOwp9OwoKc3RydWN0IHFueDRfeGJsayB7
CiAgICAgICAgX191MzIgeGJsa19uZXh0X3hibGs7CiAgICAgICAgX191MzIgeGJsa19wcmV2X3hi
bGs7CiAgICAgICAgX191OCB4YmxrX251bV94dG50czsKICAgICAgICBfX3U4IHhibGtfc3BhcmVb
M107CiAgICAgICAgX19zMzIgeGJsa19udW1fYmxvY2tzOwogICAgICAgIHFueDRfeHRudF90IHhi
bGtfeHRudHNbNjBdOwogICAgICAgIGNoYXIgeGJsa19zaWduYXR1cmVbOF07CiAgICAgICAgcW54
NF94dG50X3QgeGJsa19maXJzdF94dG50Owp9OwoKc3RydWN0IHFueDRfc3VwZXJfYmxvY2sgewog
ICAgICAgIHN0cnVjdCBxbng0X2lub2RlX2VudHJ5IFJvb3REaXI7CiAgICAgICAgc3RydWN0IHFu
eDRfaW5vZGVfZW50cnkgSW5vZGU7CiAgICAgICAgc3RydWN0IHFueDRfaW5vZGVfZW50cnkgQm9v
dDsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSBBbHRCb290Owp9OwoKCgojZGVmaW5l
IFFOWDRfREVCVUcgMAoKCgoKI2RlZmluZSBRTlg0REVCVUcoWCkgKHZvaWQpIDAKCgpleHRlcm4g
c3RydWN0IGRlbnRyeSAqcW54NF9sb29rdXAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50
cnkgKmRlbnRyeSk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfY291bnRfZnJlZV9ibG9ja3Mo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfYmxvY2tf
bWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvbmcgaWJsb2NrKTsKCmV4dGVybiBzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKnFueDRfZ2V0YmxrKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCk7CmV4dGVybiBz
dHJ1Y3QgYnVmZmVyX2hlYWQgKnFueDRfYnJlYWQoc3RydWN0IGlub2RlICosIGludCwgaW50KTsK
CmV4dGVybiBpbnQgcW54NF9jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgaW50IG1vZGUpOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcW54NF9m
aWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBxbng0
X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBxbng0
X2ZpbGVfb3BlcmF0aW9uczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcW54NF9kaXJf
b3BlcmF0aW9uczsKZXh0ZXJuIGludCBxbng0X2lzX2ZyZWUoc3RydWN0IHN1cGVyX2Jsb2NrICpz
YiwgbG9uZyBibG9jayk7CmV4dGVybiBpbnQgcW54NF9zZXRfYml0bWFwKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IsIGxvbmcgYmxvY2ssIGludCBidXN5KTsKZXh0ZXJuIGludCBxbng0X2NyZWF0ZShz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlKTsKZXh0
ZXJuIHZvaWQgcW54NF90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHZvaWQg
cW54NF9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gaW50IHFueDRfdW5s
aW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwpleHRlcm4gaW50
IHFueDRfcm1kaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CmV4
dGVybiBpbnQgcW54NF9zeW5jX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgaW50KTsKZXh0ZXJuIGludCBxbng0X3N5bmNfaW5vZGUoc3RydWN0IGlub2RlICpp
bm9kZSk7CmV4dGVybiBpbnQgcW54NF9nZXRfYmxvY2soc3RydWN0IGlub2RlICppbm9kZSwgbG9u
ZyBpYmxvY2ssIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIGludCBjcmVhdGUpOwojIDE1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNfc2IuaCIgMgoKCgoKCnN0cnVj
dCBxbng0X3NiX2luZm8gewogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc2JfYnVmOwogICAg
ICAgIHN0cnVjdCBxbng0X3N1cGVyX2Jsb2NrICpzYjsKICAgICAgICB1bnNpZ25lZCBpbnQgVmVy
c2lvbjsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSAqQml0TWFwOwp9OwojIDY1OCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19zYi5oIiAxCgoKCgojZGVmaW5l
IF9MSU5VWF9SRUlTRVJfRlNfU0IKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHF1ZXVlLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90cXVldWUuaCIKI2RlZmluZSBfTElOVVhfVFFVRVVFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3RxdWV1ZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
Yml0b3BzLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVl
dWUuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAx
CiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAz
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKc3RydWN0IHRx
X3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogICAgICAgIHVuc2lnbmVk
IGxvbmcgc3luYzsKICAgICAgICB2b2lkICgqcm91dGluZSkodm9pZCAqKTsKICAgICAgICB2b2lk
ICpkYXRhOwp9OwoKCgoKI2RlZmluZSBQUkVQQVJFX1RRVUVVRShfdHEsIF9yb3V0aW5lLCBfZGF0
YSkgZG8geyAoX3RxKS0+cm91dGluZSA9IF9yb3V0aW5lOyAoX3RxKS0+ZGF0YSA9IF9kYXRhOyB9
IHdoaWxlICgwKQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1
ZS5oIgojZGVmaW5lIElOSVRfVFFVRVVFKF90cSwgX3JvdXRpbmUsIF9kYXRhKSBkbyB7IElOSVRf
TElTVF9IRUFEKCYoX3RxKS0+bGlzdCk7IChfdHEpLT5zeW5jID0gMDsgUFJFUEFSRV9UUVVFVUUo
KF90cSksIChfcm91dGluZSksIChfZGF0YSkpOyB9IHdoaWxlICgwKQoKCgoKCgp0eXBlZGVmIHN0
cnVjdCBsaXN0X2hlYWQgdGFza19xdWV1ZTsKCiNkZWZpbmUgREVDTEFSRV9UQVNLX1FVRVVFKHEp
IExJU1RfSEVBRChxKQojZGVmaW5lIFRRX0FDVElWRShxKSAoIWxpc3RfZW1wdHkoJnEpKQoKZXh0
ZXJuIHRhc2tfcXVldWUgdHFfdGltZXJfUnNtcF9mYTNlOWFjYywgdHFfaW1tZWRpYXRlX1JzbXBf
MGRhMGRjZDEsIHRxX2Rpc2tfUnNtcF81MzczZGJiNjsKIyA5NCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKZXh0ZXJuIHNwaW5sb2NrX3QgdHF1ZXVlX2xvY2tf
UnNtcF9iN2EwYzBiNTsKCgoKCgpzdGF0aWMgaW5saW5lIGludCBxdWV1ZV90YXNrKHN0cnVjdCB0
cV9zdHJ1Y3QgKmJoX3BvaW50ZXIsIHRhc2tfcXVldWUgKmJoX2xpc3QpCnsKICAgICAgICBpbnQg
cmV0ID0gMDsKICAgICAgICBpZiAoIXRlc3RfYW5kX3NldF9iaXQoMCwmYmhfcG9pbnRlci0+c3lu
YykpIHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgICAgICAg
ICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUwPXBzcjs7IHJzbSBwc3IuaTs7IiA6
ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5Iik7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBh
ci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUw
XVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQu
ZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztc
biIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxu
IiAiOztcbiIgOjogInIiKCYoJnRxdWV1ZV9sb2NrX1JzbXBfYjdhMGMwYjUpLT5sb2NrKSA6ICJy
MiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgbGlzdF9h
ZGRfdGFpbCgmYmhfcG9pbnRlci0+bGlzdCwgYmhfbGlzdCk7CiAgICAgICAgICAgICAgICBkbyB7
IGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190
ICopICZ0cXVldWVfbG9ja19Sc21wX2I3YTBjMGI1KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOyBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IG1vdiBwc3IubD0lMDs7IHNybHouZCIgOjogInIiIChm
bGFncykgOiAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgcmV0ID0gMTsK
ICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldDsKfQoKCgoKCmV4dGVybiB2b2lkIF9fcnVuX3Rh
c2tfcXVldWVfUnNtcF8zODg5YjExYyh0YXNrX3F1ZXVlICpsaXN0KTsKCnN0YXRpYyBpbmxpbmUg
dm9pZCBydW5fdGFza19xdWV1ZSh0YXNrX3F1ZXVlICpsaXN0KQp7CiAgICAgICAgaWYgKCghbGlz
dF9lbXB0eSgmKmxpc3QpKSkKICAgICAgICAgICAgICAgIF9fcnVuX3Rhc2tfcXVldWVfUnNtcF8z
ODg5YjExYyhsaXN0KTsKfQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
cmVpc2VyZnNfZnNfc2IuaCIgMgoKCgoKCgoKI2RlZmluZSBSRUlTRVJGU19WRVJTSU9OXzIgMgoj
ZGVmaW5lIFVOU0VUX0hBU0ggMAoKI2RlZmluZSBURUFfSEFTSCAxCiNkZWZpbmUgWVVSQV9IQVNI
IDIKI2RlZmluZSBSNV9IQVNIIDMKI2RlZmluZSBERUZBVUxUX0hBU0ggUjVfSEFTSAoKCgpzdHJ1
Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2sKewogIF9fdTMyIHNfYmxvY2tfY291bnQ7CiAgX191MzIg
c19mcmVlX2Jsb2NrczsKICBfX3UzMiBzX3Jvb3RfYmxvY2s7CiAgX191MzIgc19qb3VybmFsX2Js
b2NrOwogIF9fdTMyIHNfam91cm5hbF9kZXY7CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcmVpc2VyZnNfZnNfc2IuaCIKICBfX3UzMiBzX29yaWdfam91cm5hbF9zaXpl
OwogIF9fdTMyIHNfam91cm5hbF90cmFuc19tYXggOwogIF9fdTMyIHNfam91cm5hbF9ibG9ja19j
b3VudCA7CiAgX191MzIgc19qb3VybmFsX21heF9iYXRjaCA7CiAgX191MzIgc19qb3VybmFsX21h
eF9jb21taXRfYWdlIDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X3RyYW5zX2FnZSA7CiAgX191MTYg
c19ibG9ja3NpemU7CiAgX191MTYgc19vaWRfbWF4c2l6ZTsKICBfX3UxNiBzX29pZF9jdXJzaXpl
OwogIF9fdTE2IHNfc3RhdGU7CiAgY2hhciBzX21hZ2ljWzEyXTsKICBfX3UzMiBzX2hhc2hfZnVu
Y3Rpb25fY29kZTsKICBfX3UxNiBzX3RyZWVfaGVpZ2h0OwogIF9fdTE2IHNfYm1hcF9ucjsKICBf
X3UxNiBzX3ZlcnNpb247CgoKCgogIF9fdTE2IHNfcmVzZXJ2ZWQ7CiAgX191MzIgc19pbm9kZV9n
ZW5lcmF0aW9uOwogIGNoYXIgc191bnVzZWRbMTI0XSA7Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFj
a2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRSAoc2l6ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9i
bG9jaykpCgoKc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrX3YxCnsKICBfX3UzMiBzX2Jsb2Nr
X2NvdW50OwogIF9fdTMyIHNfZnJlZV9ibG9ja3M7CiAgX191MzIgc19yb290X2Jsb2NrOwogIF9f
dTMyIHNfam91cm5hbF9ibG9jazsKICBfX3UzMiBzX2pvdXJuYWxfZGV2OwogIF9fdTMyIHNfb3Jp
Z19qb3VybmFsX3NpemU7CiAgX191MzIgc19qb3VybmFsX3RyYW5zX21heCA7CiAgX191MzIgc19q
b3VybmFsX2Jsb2NrX2NvdW50IDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X2JhdGNoIDsKICBfX3Uz
MiBzX2pvdXJuYWxfbWF4X2NvbW1pdF9hZ2UgOwogIF9fdTMyIHNfam91cm5hbF9tYXhfdHJhbnNf
YWdlIDsKICBfX3UxNiBzX2Jsb2Nrc2l6ZTsKICBfX3UxNiBzX29pZF9tYXhzaXplOwogIF9fdTE2
IHNfb2lkX2N1cnNpemU7CiAgX191MTYgc19zdGF0ZTsKICBjaGFyIHNfbWFnaWNbMTZdOwogIF9f
dTE2IHNfdHJlZV9oZWlnaHQ7CiAgX191MTYgc19ibWFwX25yOwogIF9fdTMyIHNfcmVzZXJ2ZWQ7
Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRV9WMSAoc2l6
ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9ibG9ja192MSkpCiMgMTIwICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNkZWZpbmUgSk9VUk5BTF9C
TE9DS19TSVpFIDQwOTYKI2RlZmluZSBKT1VSTkFMX01BWF9DTk9ERSAxNTAwCiNkZWZpbmUgSk9V
Uk5BTF9UUkFOU19NQVggMTAyNAojZGVmaW5lIEpPVVJOQUxfSEFTSF9TSVpFIDgxOTIKI2RlZmlu
ZSBKT1VSTkFMX05VTV9CSVRNQVBTIDUKI2RlZmluZSBKT1VSTkFMX0xJU1RfQ09VTlQgNjQKCgoK
I2RlZmluZSBCSF9KRGlydHkgMTYKI2RlZmluZSBCSF9KRGlydHlfd2FpdCAxOAojZGVmaW5lIEJI
X0pOZXcgMTkKCgoKCgoKI2RlZmluZSBCSF9KUHJlcGFyZWQgMjAKI2RlZmluZSBCSF9KUmVzdG9y
ZV9kaXJ0eSAyMgojIDE0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlz
ZXJmc19mc19zYi5oIgpzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSB7CiAgc3RydWN0IGJ1
ZmZlcl9oZWFkICpiaCA7CiAga2Rldl90IGRldiA7CiAgdW5zaWduZWQgbG9uZyBibG9ja25yIDsK
ICBpbnQgc3RhdGUgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3QgKmpsaXN0IDsKICBz
dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqbmV4dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pv
dXJuYWxfY25vZGUgKnByZXYgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpocHJl
diA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmhuZXh0IDsKfTsKCnN0cnVjdCBy
ZWlzZXJmc19iaXRtYXBfbm9kZSB7CiAgaW50IGlkIDsKICBjaGFyICpkYXRhIDsKICBzdHJ1Y3Qg
bGlzdF9oZWFkIGxpc3QgOwp9IDsKCnN0cnVjdCByZWlzZXJmc19saXN0X2JpdG1hcCB7CiAgc3Ry
dWN0IHJlaXNlcmZzX2pvdXJuYWxfbGlzdCAqam91cm5hbF9saXN0IDsKICBzdHJ1Y3QgcmVpc2Vy
ZnNfYml0bWFwX25vZGUgKipiaXRtYXBzIDsKfSA7CgoKCgpzdHJ1Y3QgcmVpc2VyZnNfdHJhbnNh
Y3Rpb25faGFuZGxlIHsKCiAgY2hhciAqdF9jYWxsZXIgOwogIGludCB0X2Jsb2Nrc19sb2dnZWQg
OwogIGludCB0X2Jsb2Nrc19hbGxvY2F0ZWQgOwogIHVuc2lnbmVkIGxvbmcgdF90cmFuc19pZCA7
CiAgc3RydWN0IHN1cGVyX2Jsb2NrICp0X3N1cGVyIDsKCgp9IDsKCgoKCgoKCnN0cnVjdCByZWlz
ZXJmc19qb3VybmFsX2xpc3QgewogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAgdW5zaWduZWQg
bG9uZyBqX2xlbiA7CiAgYXRvbWljX3Qgal9ub256ZXJvbGVuIDsKICBhdG9taWNfdCBqX2NvbW1p
dF9sZWZ0IDsKICBhdG9taWNfdCBqX2ZsdXNoaW5nIDsKICBhdG9taWNfdCBqX2NvbW1pdF9mbHVz
aGluZyA7CiAgYXRvbWljX3Qgal9vbGRlcl9jb21taXRzX2RvbmUgOwogIHVuc2lnbmVkIGxvbmcg
al90cmFuc19pZCA7CiAgdGltZV90IGpfdGltZXN0YW1wIDsKICBzdHJ1Y3QgcmVpc2VyZnNfbGlz
dF9iaXRtYXAgKmpfbGlzdF9iaXRtYXAgOwogIHN0cnVjdCBidWZmZXJfaGVhZCAqal9jb21taXRf
YmggOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX3JlYWxibG9jayA7CiAgc3Ry
dWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfZnJlZWRsaXN0IDsKICB3YWl0X3F1ZXVlX2hl
YWRfdCBqX2NvbW1pdF93YWl0IDsKICB3YWl0X3F1ZXVlX2hlYWRfdCBqX2ZsdXNoX3dhaXQgOwp9
IDsKCnN0cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgOwoKc3RydWN0IHJlaXNlcmZzX2pvdXJuYWwg
ewogIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBqX2FwX2Jsb2NrcyA7CiAgc3RydWN0IHJlaXNlcmZz
X2pvdXJuYWxfY25vZGUgKmpfbGFzdCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUg
KmpfZmlyc3QgOwoKICBpbnQgal9zdGF0ZSA7CiAgdW5zaWduZWQgbG9uZyBqX3RyYW5zX2lkIDsK
ICB1bnNpZ25lZCBsb25nIGpfbW91bnRfaWQgOwogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAg
dW5zaWduZWQgbG9uZyBqX2xlbiA7CiAgdW5zaWduZWQgbG9uZyBqX2xlbl9hbGxvYyA7CiAgYXRv
bWljX3Qgal93Y291bnQgOwogIHVuc2lnbmVkIGxvbmcgal9iY291bnQgOwogIHVuc2lnbmVkIGxv
bmcgal9maXJzdF91bmZsdXNoZWRfb2Zmc2V0IDsKICB1bnNpZ25lZCBsb25nIGpfbGFzdF9mbHVz
aF90cmFuc19pZCA7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkICpqX2hlYWRlcl9iaCA7CgoKCgogIHN0
cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgKmpfZmx1c2hfcGFnZXMgOwogIHRpbWVfdCBqX3RyYW5z
X3N0YXJ0X3RpbWUgOwogIHdhaXRfcXVldWVfaGVhZF90IGpfd2FpdCA7CiAgYXRvbWljX3Qgal93
bG9jayA7CiAgd2FpdF9xdWV1ZV9oZWFkX3Qgal9qb2luX3dhaXQgOwogIGF0b21pY190IGpfamxv
Y2sgOwogIGludCBqX2pvdXJuYWxfbGlzdF9pbmRleCA7CiAgaW50IGpfbGlzdF9iaXRtYXBfaW5k
ZXggOwogIGludCBqX211c3Rfd2FpdCA7CiAgaW50IGpfbmV4dF9mdWxsX2ZsdXNoIDsKICBpbnQg
al9uZXh0X2FzeW5jX2ZsdXNoIDsKCiAgaW50IGpfY25vZGVfdXNlZCA7CiAgaW50IGpfY25vZGVf
ZnJlZSA7CgogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX2Nub2RlX2ZyZWVfbGlz
dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfY25vZGVfZnJlZV9vcmlnIDsK
CiAgaW50IGpfZnJlZV9iaXRtYXBfbm9kZXMgOwogIGludCBqX3VzZWRfYml0bWFwX25vZGVzIDsK
ICBzdHJ1Y3QgbGlzdF9oZWFkIGpfYml0bWFwX25vZGVzIDsKICBzdHJ1Y3QgaW5vZGUgal9kdW1t
eV9pbm9kZSA7CiAgc3RydWN0IHJlaXNlcmZzX2xpc3RfYml0bWFwIGpfbGlzdF9iaXRtYXBbNV0g
OwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3Qgal9qb3VybmFsX2xpc3RbNjRdIDsKICBz
dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9oYXNoX3RhYmxlWzgxOTJdIDsKICBzdHJ1
Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9saXN0X2hhc2hfdGFibGVbODE5Ml0gOwoKICBz
dHJ1Y3QgbGlzdF9oZWFkIGpfcHJlYWxsb2NfbGlzdDsKfTsKCiNkZWZpbmUgSk9VUk5BTF9ERVND
X01BR0lDICJSZUlzRXJMQiIKCgp0eXBlZGVmIF9fdTMyICgqaGFzaGZfdCkgKGNvbnN0IGNoYXIg
KiwgaW50KTsKCgpzdHJ1Y3QgcmVpc2VyZnNfc2JfaW5mbwp7CiAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKiBzX3NiaDsKCgogICAgc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrICogc19yczsKICAg
IHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2FwX2JpdG1hcDsKICAgIHN0cnVjdCByZWlzZXJmc19q
b3VybmFsICpzX2pvdXJuYWwgOwogICAgdW5zaWduZWQgc2hvcnQgc19tb3VudF9zdGF0ZTsKCgog
ICAgdm9pZCAoKmVuZF9pb19oYW5kbGVyKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgaW50KTsKICAg
IGhhc2hmX3Qgc19oYXNoX2Z1bmN0aW9uOwoKCiAgICB1bnNpZ25lZCBsb25nIHNfbW91bnRfb3B0
OwoKCgoKICAgIHdhaXRfcXVldWVfaGVhZF90IHNfd2FpdDsKCiAgICBhdG9taWNfdCBzX2dlbmVy
YXRpb25fY291bnRlcjsKCgoKICAgIGludCBzX2ttYWxsb2NzOwogICAgaW50IHNfZGlza19yZWFk
czsKICAgIGludCBzX2Rpc2tfd3JpdGVzOwogICAgaW50IHNfZml4X25vZGVzOwogICAgaW50IHNf
ZG9fYmFsYW5jZTsKICAgIGludCBzX3VubmVlZGVkX2xlZnRfbmVpZ2hib3I7CiAgICBpbnQgc19n
b29kX3NlYXJjaF9ieV9rZXlfcmVhZGE7CiAgICBpbnQgc19ibWFwczsKICAgIGludCBzX2JtYXBz
X3dpdGhvdXRfc2VhcmNoOwogICAgaW50IHNfZGlyZWN0MmluZGlyZWN0OwogICAgaW50IHNfaW5k
aXJlY3QyZGlyZWN0Owp9OwoKCiNkZWZpbmUgTk9UQUlMIDAKI2RlZmluZSBSRVBMQVlPTkxZIDMK
I2RlZmluZSBSRUlTRVJGU19OT0xPRyA0CiNkZWZpbmUgUkVJU0VSRlNfQ09OVkVSVCA1CiMgMzI1
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNk
ZWZpbmUgRk9SQ0VfVEVBX0hBU0ggNgojZGVmaW5lIEZPUkNFX1JVUEFTT1ZfSEFTSCA3CiNkZWZp
bmUgRk9SQ0VfUjVfSEFTSCA4CiNkZWZpbmUgRk9SQ0VfSEFTSF9ERVRFQ1QgOQoKCgoKCgojZGVm
aW5lIFJFSVNFUkZTX05PX0JPUkRFUiAxMQojZGVmaW5lIFJFSVNFUkZTX05PX1VOSEFTSEVEX1JF
TE9DQVRJT04gMTIKI2RlZmluZSBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTiAxMwojZGVmaW5l
IFJFSVNFUkZTX1RFU1Q0IDE0CgojZGVmaW5lIFJFSVNFUkZTX1RFU1QxIDExCiNkZWZpbmUgUkVJ
U0VSRlNfVEVTVDIgMTIKI2RlZmluZSBSRUlTRVJGU19URVNUMyAxMwojZGVmaW5lIFJFSVNFUkZT
X1RFU1Q0IDE0CgojZGVmaW5lIHJlaXNlcmZzX3I1X2hhc2gocykgKChzKS0+dS5yZWlzZXJmc19z
Yi5zX21vdW50X29wdCAmICgxIDw8IEZPUkNFX1I1X0hBU0gpKQojZGVmaW5lIHJlaXNlcmZzX3J1
cGFzb3ZfaGFzaChzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9S
Q0VfUlVQQVNPVl9IQVNIKSkKI2RlZmluZSByZWlzZXJmc190ZWFfaGFzaChzKSAoKHMpLT51LnJl
aXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9SQ0VfVEVBX0hBU0gpKQojZGVmaW5lIHJl
aXNlcmZzX2hhc2hfZGV0ZWN0KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAo
MSA8PCBGT1JDRV9IQVNIX0RFVEVDVCkpCiNkZWZpbmUgcmVpc2VyZnNfbm9fYm9yZGVyKHMpICgo
cyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19OT19CT1JERVIp
KQojZGVmaW5lIHJlaXNlcmZzX25vX3VuaGFzaGVkX3JlbG9jYXRpb24ocykgKChzKS0+dS5yZWlz
ZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX05PX1VOSEFTSEVEX1JFTE9DQVRJ
T04pKQojZGVmaW5lIHJlaXNlcmZzX2hhc2hlZF9yZWxvY2F0aW9uKHMpICgocyktPnUucmVpc2Vy
ZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTikpCiNk
ZWZpbmUgcmVpc2VyZnNfdGVzdDQocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX21vdW50X29wdCAm
ICgxIDw8IFJFSVNFUkZTX1RFU1Q0KSkKCiNkZWZpbmUgZG9udF9oYXZlX3RhaWxzKHMpICgocykt
PnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBOT1RBSUwpKQojZGVmaW5lIHJlcGxh
eV9vbmx5KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRVBMQVlP
TkxZKSkKI2RlZmluZSByZWlzZXJmc19kb250X2xvZyhzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNf
bW91bnRfb3B0ICYgKDEgPDwgUkVJU0VSRlNfTk9MT0cpKQojZGVmaW5lIG9sZF9mb3JtYXRfb25s
eShzKSAoKFNCX1ZFUlNJT04ocykgIT0gUkVJU0VSRlNfVkVSU0lPTl8yKSAmJiAhKChzKS0+dS5y
ZWlzZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX0NPTlZFUlQpKSkKCgp2b2lk
IHJlaXNlcmZzX2ZpbGVfYnVmZmVyIChzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCwgaW50IGxpc3Qp
OwppbnQgcmVpc2VyZnNfaXNfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzKSA7CmludCBqb3Vy
bmFsX21hcmtfZGlydHkoc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqLCBzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkgOwppbnQgZmx1c2hfb2xk
X2NvbW1pdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBpbnQpIDsKaW50IHNob3dfcmVpc2VyZnNf
bG9ja3Modm9pZCkgOwppbnQgcmVpc2VyZnNfcmVzaXplKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1
bnNpZ25lZCBsb25nKSA7CgojZGVmaW5lIENBUlJZX09OIDAKI2RlZmluZSBTQ0hFRFVMRV9PQ0NV
UlJFRCAxCgoKI2RlZmluZSBTQl9CVUZGRVJfV0lUSF9TQihzKSAoKHMpLT51LnJlaXNlcmZzX3Ni
LnNfc2JoKQojZGVmaW5lIFNCX0pPVVJOQUwocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX2pvdXJu
YWwpCiNkZWZpbmUgU0JfSk9VUk5BTF9MSVNUKHMpIChTQl9KT1VSTkFMKHMpLT5qX2pvdXJuYWxf
bGlzdCkKI2RlZmluZSBTQl9KT1VSTkFMX0xJU1RfSU5ERVgocykgKFNCX0pPVVJOQUwocyktPmpf
am91cm5hbF9saXN0X2luZGV4KQojZGVmaW5lIFNCX0pPVVJOQUxfTEVOX0ZSRUUocykgKFNCX0pP
VVJOQUwocyktPmpfam91cm5hbF9sZW5fZnJlZSkKI2RlZmluZSBTQl9BUF9CSVRNQVAocykgKChz
KS0+dS5yZWlzZXJmc19zYi5zX2FwX2JpdG1hcCkKCgoKI2RlZmluZSBTQl9ESVNLX1NVUEVSX0JM
T0NLKHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19ycykKI2RlZmluZSBTQl9CTE9DS19DT1VOVChz
KSBsZTMyX3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQpKQoj
ZGVmaW5lIFNCX0ZSRUVfQkxPQ0tTKHMpIGxlMzJfdG9fY3B1ICgoU0JfRElTS19TVVBFUl9CTE9D
SyhzKS0+c19mcmVlX2Jsb2NrcykpCiNkZWZpbmUgU0JfUkVJU0VSRlNfTUFHSUMocykgKFNCX0RJ
U0tfU1VQRVJfQkxPQ0socyktPnNfbWFnaWMpCiNkZWZpbmUgU0JfUk9PVF9CTE9DSyhzKSBsZTMy
X3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfcm9vdF9ibG9jaykpCiNkZWZpbmUg
U0JfVFJFRV9IRUlHSFQocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5z
X3RyZWVfaGVpZ2h0KSkKI2RlZmluZSBTQl9SRUlTRVJGU19TVEFURShzKSBsZTE2X3RvX2NwdSAo
KFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfc3RhdGUpKQojZGVmaW5lIFNCX1ZFUlNJT04ocykg
bGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24pKQojZGVmaW5l
IFNCX0JNQVBfTlIocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2Jt
YXBfbnIpKQoKI2RlZmluZSBQVVRfU0JfQkxPQ0tfQ09VTlQocywgdmFsKSBkbyB7IFNCX0RJU0tf
U1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQgPSBjcHVfdG9fbGUzMih2YWwpOyB9IHdoaWxl
ICgwKQojZGVmaW5lIFBVVF9TQl9GUkVFX0JMT0NLUyhzLCB2YWwpIGRvIHsgU0JfRElTS19TVVBF
Ul9CTE9DSyhzKS0+c19mcmVlX2Jsb2NrcyA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDAp
CiNkZWZpbmUgUFVUX1NCX1JPT1RfQkxPQ0socywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxP
Q0socyktPnNfcm9vdF9ibG9jayA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDApCiNkZWZp
bmUgUFVUX1NCX1RSRUVfSEVJR0hUKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMp
LT5zX3RyZWVfaGVpZ2h0ID0gY3B1X3RvX2xlMTYodmFsKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBQ
VVRfU0JfUkVJU0VSRlNfU1RBVEUocywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxPQ0socykt
PnNfc3RhdGUgPSBjcHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9W
RVJTSU9OKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24gPSBj
cHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9CTUFQX05SKHMsIHZh
bCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2JtYXBfbnIgPSBjcHVfdG9fbGUxNiAo
dmFsKTsgfSB3aGlsZSAoMCkKIyA2NTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmZzX2Zz
X3NiLmgiIDEKCgoKCgoKI2RlZmluZSBfTElOVVhfQkZTX0ZTX1NCCgoKCgpzdHJ1Y3QgYmZzX3Ni
X2luZm8gewogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfYmxvY2tzOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgc2lfZnJlZWI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9mcmVlaTsKICAgICAgICB1
bnNpZ25lZCBsb25nIHNpX2xmX2lvZmY7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9sZl9zYmxr
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfbGZfZWJsazsKICAgICAgICB1bnNpZ25lZCBsb25n
IHNpX2xhc3RpOwogICAgICAgIGNoYXIgKiBzaV9pbWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJf
aGVhZCAqIHNpX3NiaDsKICAgICAgICBzdHJ1Y3QgYmZzX3N1cGVyX2Jsb2NrICogc2lfYmZzX3Ni
Owp9OwojIDY2MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfc2IuaCIgMQojIDE5
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mc19zYi5oIgojZGVmaW5l
IF9MSU5VWF9VREZfRlNfU0JfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC92ZXJzaW9uLmgiIDEKI2RlZmluZSBVVFNfUkVMRUFTRSAiMi40LjciCiNkZWZpbmUgTElO
VVhfVkVSU0lPTl9DT0RFIDEzMjEwMwojZGVmaW5lIEtFUk5FTF9WRVJTSU9OKGEsIGIsIGMpICgo
KGEpIDw8IDE2KSArICgoYikgPDwgOCkgKyAoYykpCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX2ZzX3NiLmgiIDIKCgojcHJhZ21hIHBhY2soMSkKCiNkZWZpbmUg
VURGX01BWF9CTE9DS19MT0FERUQgOAoKI2RlZmluZSBVREZfVFlQRTFfTUFQMTUgMHgxNTExVQoj
ZGVmaW5lIFVERl9WSVJUVUFMX01BUDE1IDB4MTUxMlUKI2RlZmluZSBVREZfVklSVFVBTF9NQVAy
MCAweDIwMTJVCiNkZWZpbmUgVURGX1NQQVJBQkxFX01BUDE1IDB4MTUyMlUKCnN0cnVjdCB1ZGZf
c3BhcmluZ19kYXRhCnsKICAgICAgICBfX3UxNiBzX3BhY2tldF9sZW47CiAgICAgICAgc3RydWN0
IGJ1ZmZlcl9oZWFkICpzX3NwYXJfbWFwWzRdOwp9OwoKc3RydWN0IHVkZl92aXJ0dWFsX2RhdGEK
ewogICAgICAgIF9fdTMyIHNfbnVtX2VudHJpZXM7CiAgICAgICAgX191MTYgc19zdGFydF9vZmZz
ZXQ7Cn07CgpzdHJ1Y3QgdWRmX2JpdG1hcAp7CiAgICAgICAgX191MzIgc19leHRMZW5ndGg7CiAg
ICAgICAgX191MzIgc19leHRQb3NpdGlvbjsKICAgICAgICBfX3UxNiBzX25yX2dyb3VwczsKICAg
ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKipzX2Jsb2NrX2JpdG1hcDsKfTsKCnN0cnVjdCB1ZGZf
cGFydF9tYXAKewogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgc3RydWN0
IHVkZl9iaXRtYXAgKnNfYml0bWFwOwogICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICpzX3Rh
YmxlOwogICAgICAgIH0gc191c3BhY2U7CiAgICAgICAgdW5pb24KICAgICAgICB7CiAgICAgICAg
ICAgICAgICBzdHJ1Y3QgdWRmX2JpdG1hcCAqc19iaXRtYXA7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgaW5vZGUgKnNfdGFibGU7CiAgICAgICAgfSBzX2ZzcGFjZTsKICAgICAgICBfX3UzMiBzX3Bh
cnRpdGlvbl9yb290OwogICAgICAgIF9fdTMyIHNfcGFydGl0aW9uX2xlbjsKICAgICAgICBfX3Ux
NiBzX3BhcnRpdGlvbl90eXBlOwogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uX251bTsKICAgICAg
ICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfc3BhcmluZ19kYXRh
IHNfc3BhcmluZzsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfdmlydHVhbF9kYXRhIHNfdmly
dHVhbDsKICAgICAgICB9IHNfdHlwZV9zcGVjaWZpYzsKICAgICAgICBfX3UzMiAoKnNfcGFydGl0
aW9uX2Z1bmMpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMyKTsKICAg
ICAgICBfX3UxNiBzX3ZvbHVtZXNlcW51bTsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbl9mbGFn
czsKfTsKCiNwcmFnbWEgcGFjaygpCgpzdHJ1Y3QgdWRmX3NiX2luZm8KewogICAgICAgIHN0cnVj
dCB1ZGZfcGFydF9tYXAgKnNfcGFydG1hcHM7CiAgICAgICAgX191OCBzX3ZvbGlkZW50WzMyXTsK
CgogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uczsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbjsK
CgogICAgICAgIF9fdTMyIHNfc2Vzc2lvbjsKICAgICAgICBfX3UzMiBzX2FuY2hvcls0XTsKICAg
ICAgICBfX3UzMiBzX2xhc3RibG9jazsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2x2
aWRiaDsKCgogICAgICAgIG1vZGVfdCBzX3VtYXNrOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAg
ICAgIHVpZF90IHNfdWlkOwoKCiAgICAgICAgdGltZV90IHNfcmVjb3JkdGltZTsKCgogICAgICAg
IF9fdTE2IHNfc2VyaWFsbnVtOwoKCiAgICAgICAgX191MTYgc191ZGZyZXY7CgoKICAgICAgICBf
X3UzMiBzX2ZsYWdzOwoKCiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfbWFwOwoKCiAg
ICAgICAgc3RydWN0IGlub2RlICpzX3ZhdDsKfTsKIyA2NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbmNwX2ZzX3NiLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L25jcF9mc19zYi5oIgojZGVmaW5lIF9OQ1BfRlNfU0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbmNwX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L25jcF9tb3VudC5oIiAxCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9uY3BfbW91bnQuaCIKI2RlZmluZSBfTElOVVhfTkNQX01PVU5UX0gKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmNwX21vdW50LmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbmNwLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9ICgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAyCgojZGVmaW5lIE5DUF9QVFlQRSAo
MHgxMSkKI2RlZmluZSBOQ1BfUE9SVCAoMHgwNDUxKQoKI2RlZmluZSBOQ1BfQUxMT0NfU0xPVF9S
RVFVRVNUICgweDExMTEpCiNkZWZpbmUgTkNQX1JFUVVFU1QgKDB4MjIyMikKI2RlZmluZSBOQ1Bf
REVBTExPQ19TTE9UX1JFUVVFU1QgKDB4NTU1NSkKCnN0cnVjdCBuY3BfcmVxdWVzdF9oZWFkZXIg
ewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191
OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5fbG93
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFzayBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKICAgICAgICBfX3U4IGZ1bmN0aW9uIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg
IF9fdTggZGF0YVswXSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKfTsKCiNkZWZpbmUgTkNQX1JF
UExZICgweDMzMzMpCiNkZWZpbmUgTkNQX1BPU0lUSVZFX0FDSyAoMHg5OTk5KQoKc3RydWN0IG5j
cF9yZXBseV9oZWFkZXIgewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2Vk
KSk7CiAgICAgICAgX191OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg
ICBfX3U4IGNvbm5fbG93IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFz
ayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJp
YnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbXBsZXRpb25fY29kZSBfX2F0dHJpYnV0
ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5lY3Rpb25fc3RhdGUgX19hdHRyaWJ1dGVf
XygocGFja2VkKSk7CiAgICAgICAgX191OCBkYXRhWzBdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
Owp9OwoKI2RlZmluZSBOQ1BfVk9MTkFNRV9MRU4gKDE2KQojZGVmaW5lIE5DUF9OVU1CRVJfT0Zf
Vk9MVU1FUyAoNjQpCnN0cnVjdCBuY3Bfdm9sdW1lX2luZm8gewogICAgICAgIF9fdTMyIHRvdGFs
X2Jsb2NrczsKICAgICAgICBfX3UzMiBmcmVlX2Jsb2NrczsKICAgICAgICBfX3UzMiBwdXJnZWFi
bGVfYmxvY2tzOwogICAgICAgIF9fdTMyIG5vdF95ZXRfcHVyZ2VhYmxlX2Jsb2NrczsKICAgICAg
ICBfX3UzMiB0b3RhbF9kaXJfZW50cmllczsKICAgICAgICBfX3UzMiBhdmFpbGFibGVfZGlyX2Vu
dHJpZXM7CiAgICAgICAgX191OCBzZWN0b3JzX3Blcl9ibG9jazsKICAgICAgICBjaGFyIHZvbHVt
ZV9uYW1lWygxNikgKyAxXTsKfTsKCiNkZWZpbmUgQVJfUkVBRCAobnRvaHMoMHgwMTAwKSkKI2Rl
ZmluZSBBUl9XUklURSAobnRvaHMoMHgwMjAwKSkKI2RlZmluZSBBUl9FWENMVVNJVkUgKG50b2hz
KDB4MjAwMCkpCgojZGVmaW5lIE5DUF9GSUxFX0lEX0xFTiA2CgoKI2RlZmluZSBOV19OU19ET1Mg
MAojZGVmaW5lIE5XX05TX01BQyAxCiNkZWZpbmUgTldfTlNfTkZTIDIKI2RlZmluZSBOV19OU19G
VEFNIDMKI2RlZmluZSBOV19OU19PUzIgNAoKCiNkZWZpbmUgUklNX05BTUUgKG50b2hsKDB4MDEw
MDAwMDBMKSkKI2RlZmluZSBSSU1fU1BBQ0VfQUxMT0NBVEVEIChudG9obCgweDAyMDAwMDAwTCkp
CiNkZWZpbmUgUklNX0FUVFJJQlVURVMgKG50b2hsKDB4MDQwMDAwMDBMKSkKI2RlZmluZSBSSU1f
REFUQV9TSVpFIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgUklNX1RPVEFMX1NJWkUgKG50
b2hsKDB4MTAwMDAwMDBMKSkKI2RlZmluZSBSSU1fRVhUX0FUVFJfSU5GTyAobnRvaGwoMHgyMDAw
MDAwMEwpKQojZGVmaW5lIFJJTV9BUkNISVZFIChudG9obCgweDQwMDAwMDAwTCkpCiNkZWZpbmUg
UklNX01PRElGWSAobnRvaGwoMHg4MDAwMDAwMEwpKQojZGVmaW5lIFJJTV9DUkVBVElPTiAobnRv
aGwoMHgwMDAxMDAwMEwpKQojZGVmaW5lIFJJTV9PV05JTkdfTkFNRVNQQUNFIChudG9obCgweDAw
MDIwMDAwTCkpCiNkZWZpbmUgUklNX0RJUkVDVE9SWSAobnRvaGwoMHgwMDA0MDAwMEwpKQojZGVm
aW5lIFJJTV9SSUdIVFMgKG50b2hsKDB4MDAwODAwMDBMKSkKI2RlZmluZSBSSU1fQUxMIChudG9o
bCgweEZGMEYwMDAwTCkpCiNkZWZpbmUgUklNX0NPTVBSRVNTRURfSU5GTyAobnRvaGwoMHgwMDAw
MDA4MEwpKQoKCiNkZWZpbmUgT0NfTU9ERV9PUEVOIDB4MDEKI2RlZmluZSBPQ19NT0RFX1RSVU5D
QVRFIDB4MDIKI2RlZmluZSBPQ19NT0RFX1JFUExBQ0UgMHgwMgojZGVmaW5lIE9DX01PREVfQ1JF
QVRFIDB4MDgKCgojZGVmaW5lIE9DX0FDVElPTl9OT05FIDB4MDAKI2RlZmluZSBPQ19BQ1RJT05f
T1BFTiAweDAxCiNkZWZpbmUgT0NfQUNUSU9OX0NSRUFURSAweDAyCiNkZWZpbmUgT0NfQUNUSU9O
X1RSVU5DQVRFIDB4MDQKI2RlZmluZSBPQ19BQ1RJT05fUkVQTEFDRSAweDA0CgoKCiNkZWZpbmUg
QVJfUkVBRF9PTkxZIDB4MDAwMQojZGVmaW5lIEFSX1dSSVRFX09OTFkgMHgwMDAyCiNkZWZpbmUg
QVJfREVOWV9SRUFEIDB4MDAwNAojZGVmaW5lIEFSX0RFTllfV1JJVEUgMHgwMDA4CiNkZWZpbmUg
QVJfQ09NUEFUSUJJTElUWSAweDAwMTAKI2RlZmluZSBBUl9XUklURV9USFJPVUdIIDB4MDA0MAoj
ZGVmaW5lIEFSX09QRU5fQ09NUFJFU1NFRCAweDAxMDAKCgpzdHJ1Y3QgbndfaW5mb19zdHJ1Y3Qg
ewogICAgICAgIF9fdTMyIHNwYWNlQWxsb2MgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAg
ICAgX191MzIgYXR0cmlidXRlcyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3Ux
NiBmbGFncyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkYXRhU3RyZWFt
U2l6ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiB0b3RhbFN0cmVhbVNp
emUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbnVtYmVyT2ZTdHJlYW1z
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0
dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBjcmVhdGlvbkRhdGUgX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgY3JlYXRvcklEIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTE2IG1vZGlmeVRpbWUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7
CiAgICAgICAgX191MTYgbW9kaWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg
ICBfX3UzMiBtb2RpZmllcklEIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2
IGxhc3RBY2Nlc3NEYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFy
Y2hpdmVUaW1lIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFyY2hpdmVE
YXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIGFyY2hpdmVySUQgX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgaW5oZXJpdGVkUmlnaHRzTWFzayBf
X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkaXJFbnROdW0gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgRG9zRGlyTnVtIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTMyIHZvbE51bWJlciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UzMiBFQURhdGFTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg
IF9fdTMyIEVBS2V5Q291bnQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIg
RUFLZXlTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIE5TQ3JlYXRv
ciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IG5hbWVMZW4gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191OCBlbnRyeU5hbWVbMjU2XSBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKfTsKCgojZGVmaW5lIERNX0FUVFJJQlVURVMgKG50b2hsKDB4MDIwMDAwMDBM
KSkKI2RlZmluZSBETV9DUkVBVEVfREFURSAobnRvaGwoMHgwNDAwMDAwMEwpKQojZGVmaW5lIERN
X0NSRUFURV9USU1FIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgRE1fQ1JFQVRPUl9JRCAo
bnRvaGwoMHgxMDAwMDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfREFURSAobnRvaGwoMHgyMDAw
MDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfVElNRSAobnRvaGwoMHg0MDAwMDAwMEwpKQojZGVm
aW5lIERNX0FSQ0hJVkVSX0lEIChudG9obCgweDgwMDAwMDAwTCkpCiNkZWZpbmUgRE1fTU9ESUZZ
X0RBVEUgKG50b2hsKDB4MDAwMTAwMDBMKSkKI2RlZmluZSBETV9NT0RJRllfVElNRSAobnRvaGwo
MHgwMDAyMDAwMEwpKQojZGVmaW5lIERNX01PRElGSUVSX0lEIChudG9obCgweDAwMDQwMDAwTCkp
CiNkZWZpbmUgRE1fTEFTVF9BQ0NFU1NfREFURSAobnRvaGwoMHgwMDA4MDAwMEwpKQojZGVmaW5l
IERNX0lOSEVSSVRFRF9SSUdIVFNfTUFTSyAobnRvaGwoMHgwMDEwMDAwMEwpKQojZGVmaW5lIERN
X01BWElNVU1fU1BBQ0UgKG50b2hsKDB4MDAyMDAwMDBMKSkKCnN0cnVjdCBud19tb2RpZnlfZG9z
X2luZm8gewogICAgICAgIF9fdTMyIGF0dHJpYnV0ZXMgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7
CiAgICAgICAgX191MTYgY3JlYXRpb25EYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAg
ICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBf
X3UzMiBjcmVhdG9ySUQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbW9k
aWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBtb2RpZnlUaW1l
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIG1vZGlmaWVySUQgX19hdHRy
aWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZURhdGUgX19hdHRyaWJ1dGVf
XygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZVRpbWUgX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CiAgICAgICAgX191MzIgYXJjaGl2ZXJJRCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UxNiBsYXN0QWNjZXNzRGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3UxNiBpbmhlcml0YW5jZUdyYW50TWFzayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UxNiBpbmhlcml0YW5jZVJldm9rZU1hc2sgX19hdHRyaWJ1dGVfXygocGFja2Vk
KSk7CiAgICAgICAgX191MzIgbWF4aW11bVNwYWNlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9
OwoKc3RydWN0IG53X3NlYXJjaF9zZXF1ZW5jZSB7CiAgICAgICAgX191OCB2b2xOdW1iZXIgX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgZGlyQmFzZSBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKfTsKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uY3BfbW91bnQu
aCIgMgoKI2RlZmluZSBOQ1BfTU9VTlRfVkVSU0lPTiAzCgoKI2RlZmluZSBOQ1BfTU9VTlRfU09G
VCAweDAwMDEKI2RlZmluZSBOQ1BfTU9VTlRfSU5UUiAweDAwMDIKI2RlZmluZSBOQ1BfTU9VTlRf
U1RST05HIDB4MDAwNAojZGVmaW5lIE5DUF9NT1VOVF9OT19PUzIgMHgwMDA4CiNkZWZpbmUgTkNQ
X01PVU5UX05PX05GUyAweDAwMTAKI2RlZmluZSBOQ1BfTU9VTlRfRVhUUkFTIDB4MDAyMAojZGVm
aW5lIE5DUF9NT1VOVF9TWU1MSU5LUyAweDAwNDAKCnN0cnVjdCBuY3BfbW91bnRfZGF0YSB7CiAg
ICAgICAgaW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgaW50IG5jcF9mZDsKICAgICAgICBf
X2tlcm5lbF91aWRfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9waWRfdCB3ZG9nX3Bp
ZDsKCiAgICAgICAgdW5zaWduZWQgY2hhciBtb3VudGVkX3ZvbFsoMTYpICsgMV07CiAgICAgICAg
dW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAgICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7
CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwoKICAgICAgICBfX2tlcm5lbF91aWRfdCB1aWQ7
CiAgICAgICAgX19rZXJuZWxfZ2lkX3QgZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBmaWxl
X21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9OwoKI2RlZmluZSBOQ1Bf
TU9VTlRfVkVSU0lPTl9WNCAoNCkKCnN0cnVjdCBuY3BfbW91bnRfZGF0YV92NCB7CiAgICAgICAg
aW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKCgogICAgICAgIHVuc2ln
bmVkIGxvbmcgbW91bnRlZF91aWQ7CgogICAgICAgIGxvbmcgd2RvZ19waWQ7CgogICAgICAgIHVu
c2lnbmVkIGludCBuY3BfZmQ7CiAgICAgICAgdW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7CgoKCiAgICAgICAgdW5zaWduZWQgbG9uZyB1aWQ7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBnaWQ7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgZmlsZV9t
b2RlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGlyX21vZGU7Cn07CgoKCnN0cnVjdCBuY3BfbW91
bnRfZGF0YV9rZXJuZWwgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgdW5z
aWduZWQgaW50IGludF9mbGFnczsKI2RlZmluZSBOQ1BfSU1PVU5UX0xPR0dFRElOX1BPU1NJQkxF
IDB4MDAwMQogX19rZXJuZWxfdWlkMzJfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9w
aWRfdCB3ZG9nX3BpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmNwX2ZkOwogICAgICAgIHVuc2ln
bmVkIGludCB0aW1lX291dDsKCiAgICAgICAgdW5zaWduZWQgaW50IHJldHJ5X2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIGNoYXIgbW91bnRlZF92b2xbKDE2KSArIDFdOwogICAgICAgIF9fa2VybmVs
X3VpZDMyX3QgdWlkOwogICAgICAgIF9fa2VybmVsX2dpZDMyX3QgZ2lkOwogICAgICAgIF9fa2Vy
bmVsX21vZGVfdCBmaWxlX21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9
OwojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19zYi5oIiAy
CgoKCiNkZWZpbmUgTkNQX0RFRkFVTFRfT1BUSU9OUyAwCgpzdHJ1Y3QgbmNwX3NlcnZlciB7Cgog
ICAgICAgIHN0cnVjdCBuY3BfbW91bnRfZGF0YV9rZXJuZWwgbTsKCgoKICAgICAgICBfX3U4IG5h
bWVfc3BhY2VbKDY0KSArIDJdOwoKICAgICAgICBzdHJ1Y3QgZmlsZSAqbmNwX2ZpbHA7CgogICAg
ICAgIHU4IHNlcXVlbmNlOwogICAgICAgIHU4IHRhc2s7CiAgICAgICAgdTE2IGNvbm5lY3Rpb247
CgogICAgICAgIHU4IGNvbXBsZXRpb247CiAgICAgICAgdTggY29ubl9zdGF0dXM7CgoKCiAgICAg
ICAgaW50IGJ1ZmZlcl9zaXplOwoKICAgICAgICBpbnQgcmVwbHlfc2l6ZTsKCiAgICAgICAgaW50
IHBhY2tldF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhY2tldDsKCgogICAgICAgIGlu
dCBsb2NrOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc2VtOwoKICAgICAgICBpbnQgY3VycmVu
dF9zaXplOwogICAgICAgIGludCBoYXNfc3ViZnVuY3Rpb247CiAgICAgICAgaW50IG5jcF9yZXBs
eV9zaXplOwoKICAgICAgICBpbnQgcm9vdF9zZXR1cGVkOwoKCiAgICAgICAgaW50IHNpZ25fd2Fu
dGVkOwogICAgICAgIGludCBzaWduX2FjdGl2ZTsKICAgICAgICBjaGFyIHNpZ25fcm9vdFs4XTsK
ICAgICAgICBjaGFyIHNpZ25fbGFzdFsxNl07CgoKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgICAgaW50IGF1dGhfdHlwZTsKICAgICAgICAgICAgICAgIHNpemVfdCBvYmplY3RfbmFtZV9s
ZW47CiAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3RfbmFtZTsKICAgICAgICAgICAgICAgIGlu
dCBvYmplY3RfdHlwZTsKICAgICAgICB9IGF1dGg7CgogICAgICAgIHN0cnVjdCB7CiAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgdm9pZCogZGF0YTsKICAgICAgICB9
IHByaXY7CgoKICAgICAgICBzdHJ1Y3QgbmxzX3RhYmxlICpubHNfdm9sOwogICAgICAgIHN0cnVj
dCBubHNfdGFibGUgKm5sc19pbzsKCgogICAgICAgIGludCBkZW50cnlfdHRsOwoKCiAgICAgICAg
dW5zaWduZWQgaW50IGZsYWdzOwp9OwoKI2RlZmluZSBuY3Bfc2JfaW5mbyBuY3Bfc2VydmVyCgoj
ZGVmaW5lIE5DUF9GTEFHX1VURjggMQoKI2RlZmluZSBOQ1BfQ0xSX0ZMQUcoc2VydmVyLCBmbGFn
KSAoKHNlcnZlciktPmZsYWdzICY9IH4oZmxhZykpCiNkZWZpbmUgTkNQX1NFVF9GTEFHKHNlcnZl
ciwgZmxhZykgKChzZXJ2ZXIpLT5mbGFncyB8PSAoZmxhZykpCiNkZWZpbmUgTkNQX0lTX0ZMQUco
c2VydmVyLCBmbGFnKSAoKHNlcnZlciktPmZsYWdzICYgKGZsYWcpKQoKc3RhdGljIGlubGluZSBp
bnQgbmNwX2Nvbm5fdmFsaWQoc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewogICAgICAgIHJl
dHVybiAoKHNlcnZlci0+Y29ubl9zdGF0dXMgJiAweDExKSA9PSAwKTsKfQoKc3RhdGljIGlubGlu
ZSB2b2lkIG5jcF9pbnZhbGlkYXRlX2Nvbm4oc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewog
ICAgICAgIHNlcnZlci0+Y29ubl9zdGF0dXMgfD0gMHgwMTsKfQojIDY2MiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC91c2JkZXZfZnNfc2IuaCIgMQpzdHJ1Y3QgdXNiZGV2X3NiX2luZm8gewog
ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBp
bGlzdDsKICAgICAgICB1aWRfdCBkZXZ1aWQ7CiAgICAgICAgZ2lkX3QgZGV2Z2lkOwogICAgICAg
IHVtb2RlX3QgZGV2bW9kZTsKICAgICAgICB1aWRfdCBidXN1aWQ7CiAgICAgICAgZ2lkX3QgYnVz
Z2lkOwogICAgICAgIHVtb2RlX3QgYnVzbW9kZTsKICAgICAgICB1aWRfdCBsaXN0dWlkOwogICAg
ICAgIGdpZF90IGxpc3RnaWQ7CiAgICAgICAgdW1vZGVfdCBsaXN0bW9kZTsKfTsKIyA2NjMgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY3JhbWZzX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX0NSQU1G
U19GU19TQgoKCgoKc3RydWN0IGNyYW1mc19zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgbG9uZyBtYWdpYzsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBzaXplOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJsb2NrczsK
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaWxlczsKICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKfTsKIyA2NjQgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgc3Vw
ZXJfYmxvY2tzOwoKI2RlZmluZSBzYl9lbnRyeShsaXN0KSBsaXN0X2VudHJ5KChsaXN0KSwgc3Ry
dWN0IHN1cGVyX2Jsb2NrLCBzX2xpc3QpCnN0cnVjdCBzdXBlcl9ibG9jayB7CiAgICAgICAgc3Ry
dWN0IGxpc3RfaGVhZCBzX2xpc3Q7CiAgICAgICAga2Rldl90IHNfZGV2OwogICAgICAgIHVuc2ln
bmVkIGxvbmcgc19ibG9ja3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2Jsb2Nrc2l6ZV9i
aXRzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc19kaXJ0OwogICAgICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBzX21heGJ5dGVzOwogICAgICAgIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpzX3R5cGU7
CiAgICAgICAgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgKnNfb3A7CiAgICAgICAgc3RydWN0IGRx
dW90X29wZXJhdGlvbnMgKmRxX29wOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mbGFnczsKICAg
ICAgICB1bnNpZ25lZCBsb25nIHNfbWFnaWM7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqc19yb290
OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgc191bW91bnQ7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBzX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc19kaXJ0eTsKICAgICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbG9ja2VkX2lub2RlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkIHNfZmlsZXM7CgogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKnNfYmRldjsKICAgICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbW91bnRzOwogICAgICAgIHN0cnVjdCBxdW90YV9tb3VudF9v
cHRpb25zIHNfZHF1b3Q7CgogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0cnVjdCBt
aW5peF9zYl9pbmZvIG1pbml4X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGV4dDJfc2JfaW5m
byBleHQyX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGhwZnNfc2JfaW5mbyBocGZzX3NiOwog
ICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfc2JfaW5mbyBudGZzX3NiOwogICAgICAgICAgICAg
ICAgc3RydWN0IG1zZG9zX3NiX2luZm8gbXNkb3Nfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
aXNvZnNfc2JfaW5mbyBpc29mc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuZnNfc2JfaW5m
byBuZnNfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9zYl9pbmZvIHN5c3Zfc2I7CiAg
ICAgICAgICAgICAgICBzdHJ1Y3QgYWZmc19zYl9pbmZvIGFmZnNfc2I7CiAgICAgICAgICAgICAg
ICBzdHJ1Y3QgdWZzX3NiX2luZm8gdWZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGVmc19z
Yl9pbmZvIGVmc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1lbV9zYl9pbmZvIHNobWVt
X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHJvbWZzX3NiX2luZm8gcm9tZnNfc2I7CiAgICAg
ICAgICAgICAgICBzdHJ1Y3Qgc21iX3NiX2luZm8gc21iZnNfc2I7CiAgICAgICAgICAgICAgICBz
dHJ1Y3QgaGZzX3NiX2luZm8gaGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGFkZnNfc2Jf
aW5mbyBhZGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHFueDRfc2JfaW5mbyBxbng0X3Ni
OwogICAgICAgICAgICAgICAgc3RydWN0IHJlaXNlcmZzX3NiX2luZm8gcmVpc2VyZnNfc2I7CiAg
ICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX3NiX2luZm8gYmZzX3NiOwogICAgICAgICAgICAgICAg
c3RydWN0IHVkZl9zYl9pbmZvIHVkZl9zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuY3Bfc2Vy
dmVyIG5jcGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHVzYmRldl9zYl9pbmZvIHVzYmRl
dmZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGNyYW1mc19zYl9pbmZvIGNyYW1mc19zYjsK
ICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfc2JwOwogICAgICAgIH0gdTsKCgoKCiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBzX3Zmc19yZW5hbWVfc2VtOwojIDczMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc19u
ZnNkX2ZyZWVfcGF0aF9zZW07Cn07CgoKCgpleHRlcm4gaW50IHZmc19jcmVhdGVfUnNtcF8wNGUy
N2Q0MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRlcm4gaW50IHZm
c19ta2Rpcl9Sc21wXzdiYTViMWJhKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGlu
dCk7CmV4dGVybiBpbnQgdmZzX21rbm9kX1JzbXBfYjc1MmQ0NDYoc3RydWN0IGlub2RlICosIHN0
cnVjdCBkZW50cnkgKiwgaW50LCBkZXZfdCk7CmV4dGVybiBpbnQgdmZzX3N5bWxpbmtfUnNtcF9k
NzY2NWY3ZChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBjb25zdCBjaGFyICopOwpl
eHRlcm4gaW50IHZmc19saW5rX1JzbXBfZWQzODM1MTQoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfcm1kaXJfUnNtcF83OTYz
NmE5MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfdW5s
aW5rX1JzbXBfZmVmYTQ0NDcoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CmV4dGVy
biBpbnQgdmZzX3JlbmFtZV9Sc21wXzQ2ZmM1N2IxKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVu
dHJ5ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoKCgoKI2RlZmluZSBEVF9V
TktOT1dOIDAKI2RlZmluZSBEVF9GSUZPIDEKI2RlZmluZSBEVF9DSFIgMgojZGVmaW5lIERUX0RJ
UiA0CiNkZWZpbmUgRFRfQkxLIDYKI2RlZmluZSBEVF9SRUcgOAojZGVmaW5lIERUX0xOSyAxMAoj
ZGVmaW5lIERUX1NPQ0sgMTIKI2RlZmluZSBEVF9XSFQgMTQKCgoKCgoKCnR5cGVkZWYgaW50ICgq
ZmlsbGRpcl90KSh2b2lkICosIGNvbnN0IGNoYXIgKiwgaW50LCBvZmZfdCwgaW5vX3QsIHVuc2ln
bmVkKTsKCnN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB7CiAgICAgICAgaW50ICgqb3Bl
bikgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpyZWxlYXNl
KSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAoKmlvY3RsKSAo
c3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsK
ICAgICAgICBpbnQgKCpjaGVja19tZWRpYV9jaGFuZ2UpIChrZGV2X3QpOwogICAgICAgIGludCAo
KnJldmFsaWRhdGUpIChrZGV2X3QpOwp9OwoKCgoKCgpzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsK
ICAgICAgICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKICAgICAgICBsb2ZmX3QgKCpsbHNlZWspIChz
dHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGludCk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpIChzdHJ1
Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwogICAgICAgIHNzaXplX3QgKCp3
cml0ZSkgKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CiAg
ICAgICAgaW50ICgqcmVhZGRpcikgKHN0cnVjdCBmaWxlICosIHZvaWQgKiwgZmlsbGRpcl90KTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgKCpwb2xsKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBvbGxf
dGFibGVfc3RydWN0ICopOwogICAgICAgIGludCAoKmlvY3RsKSAoc3RydWN0IGlub2RlICosIHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgICAgICAgaW50ICgq
bW1hcCkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICAgICAgICBp
bnQgKCpvcGVuKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAo
KmZsdXNoKSAoc3RydWN0IGZpbGUgKik7CiAgICAgICAgaW50ICgqcmVsZWFzZSkgKHN0cnVjdCBp
bm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpmc3luYykgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkZW50cnkgKiwgaW50IGRhdGFzeW5jKTsKICAgICAgICBpbnQgKCpmYXN5bmMp
IChpbnQsIHN0cnVjdCBmaWxlICosIGludCk7CiAgICAgICAgaW50ICgqbG9jaykgKHN0cnVjdCBm
aWxlICosIGludCwgc3RydWN0IGZpbGVfbG9jayAqKTsKICAgICAgICBzc2l6ZV90ICgqcmVhZHYp
IChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9m
Zl90ICopOwogICAgICAgIHNzaXplX3QgKCp3cml0ZXYpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBz
dHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9mZl90ICopOwogICAgICAgIHNzaXplX3Qg
KCpzZW5kcGFnZSkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICosIGludCwgc2l6ZV90LCBs
b2ZmX3QgKiwgaW50KTsKICAgICAgICB1bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWFf
UnNtcF84YjNiNzkwZCkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9u
ZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7Cn07CgpzdHJ1Y3QgaW5vZGVfb3BlcmF0
aW9ucyB7CiAgICAgICAgaW50ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0IGRlbnRy
eSAqLGludCk7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqICgqbG9va3VwKSAoc3RydWN0IGlub2Rl
ICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpsaW5rKSAoc3RydWN0IGRlbnRyeSAq
LHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50ICgqdW5saW5rKSAo
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzeW1saW5rKSAo
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CiAgICAgICAgaW50
ICgqbWtkaXIpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50KTsKICAgICAgICBp
bnQgKCpybWRpcikgKHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50
ICgqbWtub2QpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50LGludCk7CiAgICAg
ICAgaW50ICgqcmVuYW1lKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwKICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CiAgICAg
ICAgaW50ICgqcmVhZGxpbmspIChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKixpbnQpOwogICAgICAg
IGludCAoKmZvbGxvd19saW5rKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgbmFtZWlkYXRhICop
OwogICAgICAgIHZvaWQgKCp0cnVuY2F0ZSkgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICBpbnQg
KCpwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0NTcpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg
ICBpbnQgKCpyZXZhbGlkYXRlKSAoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzZXRh
dHRyKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CiAgICAgICAgaW50ICgqZ2V0
YXR0cikgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOwp9OwoKCgoKCnN0cnVjdCBz
dXBlcl9vcGVyYXRpb25zIHsKICAgICAgICB2b2lkICgqcmVhZF9pbm9kZSkgKHN0cnVjdCBpbm9k
ZSAqKTsKCgoKCgoKCiAgICAgICAgdm9pZCAoKnJlYWRfaW5vZGUyKSAoc3RydWN0IGlub2RlICos
IHZvaWQgKikgOwogICAgICAgIHZvaWQgKCpkaXJ0eV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqKTsK
ICAgICAgICB2b2lkICgqd3JpdGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg
ICB2b2lkICgqcHV0X2lub2RlKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIHZvaWQgKCpkZWxl
dGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKik7CiAgICAgICAgdm9pZCAoKnB1dF9zdXBlcikgKHN0
cnVjdCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqd3JpdGVfc3VwZXIpIChzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKik7CiAgICAgICAgdm9pZCAoKndyaXRlX3N1cGVyX2xvY2tmcykgKHN0cnVj
dCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqdW5sb2NrZnMpIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CiAgICAgICAgaW50ICgqc3RhdGZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0
cnVjdCBzdGF0ZnMgKik7CiAgICAgICAgaW50ICgqcmVtb3VudF9mcykgKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCBpbnQgKiwgY2hhciAqKTsKICAgICAgICB2b2lkICgqY2xlYXJfaW5vZGVfUnNtcF8x
NWIxMmEzNykgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICB2b2lkICgqdW1vdW50X2JlZ2luKSAo
c3RydWN0IHN1cGVyX2Jsb2NrICopOwojIDg3MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBkZW50cnkgKiAoKmZoX3RvX2RlbnRyeSkoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYiwgX191MzIgKmZoLCBpbnQgbGVuLCBpbnQgZmh0eXBlLCBpbnQg
cGFyZW50KTsKICAgICAgICBpbnQgKCpkZW50cnlfdG9fZmgpKHN0cnVjdCBkZW50cnkgKiwgX191
MzIgKmZoLCBpbnQgKmxlbnAsIGludCBuZWVkX3BhcmVudCk7Cn07CgoKI2RlZmluZSBJX0RJUlRZ
X1NZTkMgMQojZGVmaW5lIElfRElSVFlfREFUQVNZTkMgMgojZGVmaW5lIElfRElSVFlfUEFHRVMg
NAojZGVmaW5lIElfTE9DSyA4CiNkZWZpbmUgSV9GUkVFSU5HIDE2CiNkZWZpbmUgSV9DTEVBUiAz
MgoKI2RlZmluZSBJX0RJUlRZIChJX0RJUlRZX1NZTkMgfCBJX0RJUlRZX0RBVEFTWU5DIHwgSV9E
SVJUWV9QQUdFUykKCmV4dGVybiB2b2lkIF9fbWFya19pbm9kZV9kaXJ0eV9Sc21wX2ViMGYxNTVj
KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpzdGF0aWMgaW5saW5lIHZvaWQgbWFya19pbm9kZV9kaXJ0
eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lub2RlX2RpcnR5X1JzbXBf
ZWIwZjE1NWMoaW5vZGUsICgxIHwgMiB8IDQpKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtf
aW5vZGVfZGlydHlfc3luYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lu
b2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDEpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQg
bWFya19pbm9kZV9kaXJ0eV9wYWdlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19t
YXJrX2lub2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDQpOwp9CgpzdHJ1Y3QgZHF1b3Rf
b3BlcmF0aW9ucyB7CiAgICAgICAgdm9pZCAoKmluaXRpYWxpemUpIChzdHJ1Y3QgaW5vZGUgKiwg
c2hvcnQpOwogICAgICAgIHZvaWQgKCpkcm9wKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIGlu
dCAoKmFsbG9jX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcsIGNo
YXIpOwogICAgICAgIGludCAoKmFsbG9jX2lub2RlKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVu
c2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlu
b2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2lub2RlKSAoY29uc3Qg
c3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIGludCAoKnRyYW5zZmVyKSAo
c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7Cn07CgpzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBpbnQgZnNfZmxhZ3M7CiAg
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICooKnJlYWRfc3VwZXIpIChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKiwgdm9pZCAqLCBpbnQpOwogICAgICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyOwogICAgICAg
IHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tbnQ7CiAgICAgICAgc3RydWN0IGZpbGVfc3lzdGVtX3R5
cGUgKiBuZXh0Owp9OwoKI2RlZmluZSBERUNMQVJFX0ZTVFlQRSh2YXIsIHR5cGUsIHJlYWQsIGZs
YWdzKSBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB2YXIgPSB7IG5hbWU6IHR5cGUsIHJlYWRfc3Vw
ZXI6IHJlYWQsIGZzX2ZsYWdzOiBmbGFncywgb3duZXI6IFRISVNfTU9EVUxFLCB9CgoKCgoKCgoj
ZGVmaW5lIERFQ0xBUkVfRlNUWVBFX0RFVih2YXIsIHR5cGUsIHJlYWQpIERFQ0xBUkVfRlNUWVBF
KHZhcix0eXBlLHJlYWQsRlNfUkVRVUlSRVNfREVWKQoKCgojZGVmaW5lIGZvcHNfZ2V0KGZvcHMp
ICgoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpID8gKCB0cnlfaW5jX21vZF9jb3VudCgoZm9wcykt
Pm93bmVyKSA/IChmb3BzKSA6IE5VTEwgKSA6IChmb3BzKSkKCgoKCiNkZWZpbmUgZm9wc19wdXQo
Zm9wcykgZG8geyBpZiAoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpIF9fTU9EX0RFQ19VU0VfQ09V
TlQoKGZvcHMpLT5vd25lcik7IH0gd2hpbGUoMCkKCgoKCgpleHRlcm4gaW50IHJlZ2lzdGVyX2Zp
bGVzeXN0ZW1fUnNtcF81NmI2NjdmNChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqKTsKZXh0ZXJu
IGludCB1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW1fUnNtcF8wYWIyMGEyNChzdHJ1Y3QgZmlsZV9zeXN0
ZW1fdHlwZSAqKTsKZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tb3VudF9Sc21wX2M0OTBh
MDY0KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gaW50IG1heV91bW91bnRfUnNt
cF9iMzc3M2YxZShzdHJ1Y3QgdmZzbW91bnQgKik7CmV4dGVybiBsb25nIGRvX21vdW50KGNoYXIg
KiwgY2hhciAqLCBjaGFyICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CgojZGVmaW5lIGtlcm5f
dW1vdW50IG1udHB1dAoKZXh0ZXJuIGludCB2ZnNfc3RhdGZzX1JzbXBfN2EzMTBlMmUoc3RydWN0
IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBzdGF0ZnMgKik7CgoKCgojZGVmaW5lIExPQ0tfVVNFX0NM
TlQgMQoKI2RlZmluZSBGTE9DS19WRVJJRllfUkVBRCAxCiNkZWZpbmUgRkxPQ0tfVkVSSUZZX1dS
SVRFIDIKCmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2xvY2tlZChzdHJ1Y3QgaW5vZGUgKik7
CmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2FyZWFfUnNtcF83OWFiYjczMChpbnQsIHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIHNpemVfdCk7CgoKCgoKI2RlZmluZSBN
QU5EQVRPUllfTE9DSyhpbm9kZSkgKElTX01BTkRMT0NLKGlub2RlKSAmJiAoKGlub2RlKS0+aV9t
b2RlICYgKFNfSVNHSUQgfCBTX0lYR1JQKSkgPT0gU19JU0dJRCkKCgpzdGF0aWMgaW5saW5lIGlu
dCBsb2Nrc192ZXJpZnlfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKICAgICAgICBpZiAo
KCgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgw
MDAyMDAwIHwgMDAwMTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nr
c19tYW5kYXRvcnlfbG9ja2VkKGlub2RlKTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlu
bGluZSBpbnQgbG9ja3NfdmVyaWZ5X2FyZWEoaW50IHJlYWRfd3JpdGUsIHN0cnVjdCBpbm9kZSAq
aW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmaWxlICpm
aWxwLCBsb2ZmX3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgY291bnQpCnsKICAgICAgICBpZiAoaW5vZGUtPmlfZmxvY2sgJiYgKCgoaW5vZGUpLT5p
X3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgwMDAyMDAwIHwgMDAw
MTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nrc19tYW5kYXRvcnlf
YXJlYV9Sc21wXzc5YWJiNzMwKHJlYWRfd3JpdGUsIGlub2RlLCBmaWxwLCBvZmZzZXQsIGNvdW50
KTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgbG9ja3NfdmVyaWZ5X3Ry
dW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBmaWxlICpmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2ZmX3Qgc2l6ZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoKChpbm9k
ZSktPmlfc2ItPnNfZmxhZ3MgJiAoNjQpKSAmJiAoKGlub2RlKS0+aV9tb2RlICYgKDAwMDIwMDAg
fCAwMDAxMCkpID09IDAwMDIwMDApKQogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2tzX21hbmRh
dG9yeV9hcmVhX1JzbXBfNzlhYmI3MzAoCiAgICAgICAgICAgICAgICAgICAgICAgIDIsIGlub2Rl
LCBmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIDwgaW5vZGUtPmlfc2l6ZSA/IHNp
emUgOiBpbm9kZS0+aV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSA8IGlub2Rl
LT5pX3NpemUgPyBpbm9kZS0+aV9zaXplIC0gc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAg
OiBzaXplIC0gaW5vZGUtPmlfc2l6ZSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgcmV0dXJu
IDA7Cn0KCmV4dGVybiBpbmxpbmUgaW50IGdldF9sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1
bnNpZ25lZCBpbnQgbW9kZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoaW5vZGUt
PmlfZmxvY2stPmZsX2ZsYWdzICYgMzIpKQogICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2V0X2xl
YXNlX1JzbXBfODExYzVhODkoaW5vZGUsIG1vZGUpOwogICAgICAgIHJldHVybiAwOwp9CgoKCiBf
X2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19vcGVuKGNvbnN0IGNoYXIg
KiwgaW50LCBpbnQpOwogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNf
Y2xvc2VfUnNtcF9kZTc2ZTdiYyh1bnNpZ25lZCBpbnQpOwpleHRlcm4gaW50IGRvX3RydW5jYXRl
KHN0cnVjdCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0KTsKCmV4dGVybiBzdHJ1Y3QgZmlsZSAqZmls
cF9vcGVuX1JzbXBfZDc5MGRjYTQoY29uc3QgY2hhciAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1
Y3QgZmlsZSAqIGRlbnRyeV9vcGVuX1JzbXBfOTY5ZWI4NDcoc3RydWN0IGRlbnRyeSAqLCBzdHJ1
Y3QgdmZzbW91bnQgKiwgaW50KTsKZXh0ZXJuIGludCBmaWxwX2Nsb3NlX1JzbXBfMTE5ZWJiY2Io
c3RydWN0IGZpbGUgKiwgZmxfb3duZXJfdCBpZCk7CmV4dGVybiBjaGFyICogZ2V0bmFtZV9Sc21w
XzdjNjBkNjZlKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIHZvaWQgdmZzX2NhY2hlc19pbml0KHVu
c2lnbmVkIGxvbmcpOwoKI2RlZmluZSBfX2dldG5hbWUoKSBrbWVtX2NhY2hlX2FsbG9jKG5hbWVz
X2NhY2hlcCwgU0xBQl9LRVJORUwpCiNkZWZpbmUgcHV0bmFtZShuYW1lKSBrbWVtX2NhY2hlX2Zy
ZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKShuYW1lKSkKCmVudW0ge0JERVZfRklMRSwgQkRFVl9T
V0FQLCBCREVWX0ZTLCBCREVWX1JBV307CmV4dGVybiBpbnQgcmVnaXN0ZXJfYmxrZGV2X1JzbXBf
NWY5ZmI5ZTkodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIHN0cnVjdCBibG9ja19kZXZpY2Vf
b3BlcmF0aW9ucyAqKTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2Jsa2Rldl9Sc21wX2VhYzFjNGFm
KHVuc2lnbmVkIGludCwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2Ug
KmJkZ2V0X1JzbXBfOWYxMTA4NWEoZGV2X3QpOwpleHRlcm4gdm9pZCBiZHB1dF9Sc21wXzY5YTA3
YmNkKHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmNk
Z2V0X1JzbXBfZDY3Mzk1MDMoZGV2X3QpOwpleHRlcm4gdm9pZCBjZHB1dF9Sc21wX2VjNWQ1OGJk
KHN0cnVjdCBjaGFyX2RldmljZSAqKTsKZXh0ZXJuIGludCBibGtkZXZfb3Blbl9Sc21wXzdhZmMx
MDlmKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIHN0cnVjdCBmaWxlX29w
ZXJhdGlvbnMgZGVmX2Jsa19mb3BzX1JzbXBfNzRlYjRhNmE7CmV4dGVybiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIGRlZl9maWZvX2ZvcHM7CmV4dGVybiBpbnQgaW9jdGxfYnlfYmRldl9Sc21wXzAz
NmMwOTk4KHN0cnVjdCBibG9ja19kZXZpY2UgKiwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwpl
eHRlcm4gaW50IGJsa2Rldl9nZXRfUnNtcF8yZDgyZjMzZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICos
IG1vZGVfdCwgdW5zaWduZWQsIGludCk7CmV4dGVybiBpbnQgYmxrZGV2X3B1dF9Sc21wXzRkOWZm
NTUxKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgaW50KTsKCgpleHRlcm4gY29uc3Qgc3RydWN0IGJs
b2NrX2RldmljZV9vcGVyYXRpb25zICpnZXRfYmxrZm9wcyh1bnNpZ25lZCBpbnQpOwpleHRlcm4g
aW50IHJlZ2lzdGVyX2NocmRldl9Sc21wXzhlNzA5ZTMzKHVuc2lnbmVkIGludCwgY29uc3QgY2hh
ciAqLCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICopOwpleHRlcm4gaW50IHVucmVnaXN0ZXJfY2hy
ZGV2X1JzbXBfYzE5MmQ0OTEodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50
IGNocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIGNvbnN0
IGNoYXIgKiBiZGV2bmFtZV9Sc21wX2QwNDc4MmU2KGtkZXZfdCk7CmV4dGVybiBjb25zdCBjaGFy
ICogY2Rldm5hbWVfUnNtcF85NzU0NzQxZChrZGV2X3QpOwpleHRlcm4gY29uc3QgY2hhciAqIGtk
ZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKZXh0ZXJuIHZvaWQgaW5pdF9zcGVjaWFsX2lu
b2RlX1JzbXBfYjBkZTdlNDcoc3RydWN0IGlub2RlICosIHVtb2RlX3QsIGludCk7CgoKZXh0ZXJu
IHZvaWQgbWFrZV9iYWRfaW5vZGVfUnNtcF9kNjlkZDU4MihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVy
biBpbnQgaXNfYmFkX2lub2RlX1JzbXBfZjQ4OGM0ZTEoc3RydWN0IGlub2RlICopOwoKZXh0ZXJu
IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmVhZF9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIHdyaXRlX2ZpZm9fZm9wczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgcmR3cl9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJlYWRfcGlw
ZV9mb3BzOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB3cml0ZV9waXBlX2ZvcHM7CmV4
dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJkd3JfcGlwZV9mb3BzOwoKZXh0ZXJuIGludCBm
c19tYXlfcmVtb3VudF9ybyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CgpleHRlcm4gaW50IHRyeV90
b19mcmVlX2J1ZmZlcnMoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50KTsKZXh0ZXJuIHZvaWQg
cmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKHN0cnVjdCBidWZmZXJfaGVhZCAqIGJ1Zik7CmV4
dGVybiB2b2lkIGVuZF9idWZmZXJfaW9fc3luYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQg
dXB0b2RhdGUpOwoKCmV4dGVybiB2b2lkIHNldF9idWZmZXJfYXN5bmNfaW9fUnNtcF8xMDQ3ZTg4
NShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKSA7CgojZGVmaW5lIEJVRl9DTEVBTiAwCiNkZWZpbmUg
QlVGX0xPQ0tFRCAxCiNkZWZpbmUgQlVGX0RJUlRZIDIKI2RlZmluZSBCVUZfUFJPVEVDVEVEIDMK
I2RlZmluZSBOUl9MSVNUIDQKCnN0YXRpYyBpbmxpbmUgdm9pZCBnZXRfYmgoc3RydWN0IGJ1ZmZl
cl9oZWFkICogYmgpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAo
KDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAo
KDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikp
KSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJihiaCktPmJfY291
bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKTsg
c3dpdGNoICgoMSkpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYoYmgpLT5i
X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg
OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYo
YmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVf
XyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAi
aSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
IiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIo
LTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRj
aF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYo
KCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92
KSwgImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxl
X18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwg
ImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRf
ZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2Yo
KigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9p
YTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXpl
b2YoKigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv
bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi
KF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3Jf
aWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6
ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNp
emVvZigqKCYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0g
X19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlw
ZW9mX18oKiYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpIChfdG1wICsgKCgxKSkpOyB9
KSA6IGlhNjRfYXRvbWljX2FkZCgoMSksICgoJihiaCktPmJfY291bnQpKSkpOwp9CgpzdGF0aWMg
aW5saW5lIHZvaWQgcHV0X2JoKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCnsKICAgICAgICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogICAgICAgICgoX19idWlsdGluX2Nv
bnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgp
IHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0g
LTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2Zf
XygqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZiaC0+Yl9jb3Vu
dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgoMSkpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNp
emVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0
Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1w
ID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9f
dHlwZW9mX18oKiYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAoX3RtcCArICgtKCgxKSkp
KTsgfSkgOiBpYTY0X2F0b21pY19zdWIoKDEpLCAoKCZiaC0+Yl9jb3VudCkpKSk7Cn0KCgoKCnN0
YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZlcl91cHRvZGF0ZShzdHJ1Y3QgYnVmZmVyX2hlYWQg
KiBiaCwgaW50IG9uKQp7CiAgICAgICAgaWYgKG9uKQogICAgICAgICAgICAgICAgc2V0X2JpdChC
SF9VcHRvZGF0ZSwgJmJoLT5iX3N0YXRlKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBj
bGVhcl9iaXQoQkhfVXB0b2RhdGUsICZiaC0+Yl9zdGF0ZSk7Cn0KCiNkZWZpbmUgYXRvbWljX3Nl
dF9idWZmZXJfY2xlYW4oYmgpIHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCktPmJf
c3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1ZmZlcl9jbGVhbihzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJoKQp7CiAgICAgICAgcmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKGJoKTsK
fQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2NsZWFuKHN0cnVjdCBidWZmZXJfaGVh
ZCAqIGJoKQp7CiAgICAgICAgaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCkt
PmJfc3RhdGUpKQogICAgICAgICAgICAgICAgX19tYXJrX2J1ZmZlcl9jbGVhbihiaCk7Cn0KCiNk
ZWZpbmUgYXRvbWljX3NldF9idWZmZXJfcHJvdGVjdGVkKGJoKSB0ZXN0X2FuZF9zZXRfYml0KEJI
X1Byb3RlY3RlZCwgJihiaCktPmJfc3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1
ZmZlcl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKewogICAgICAgIHJlZmlsZV9i
dWZmZXJfUnNtcF85Y2FhNDhiZihiaCk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZl
cl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICogYmgpCnsKICAgICAgICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoQkhfUHJvdGVjdGVkLCAmKGJoKS0+Yl9zdGF0ZSkpCiAgICAgICAgICAgICAg
ICBfX21hcmtfYnVmZmVyX3Byb3RlY3RlZChiaCk7Cn0KCmV4dGVybiB2b2lkIF9fbWFya19idWZm
ZXJfZGlydHlfUnNtcF9jMWEzZjRhYihzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKZXh0ZXJuIHZv
aWQgbWFya19idWZmZXJfZGlydHlfUnNtcF8zMzU3YmViYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo
KTsKCiNkZWZpbmUgYXRvbWljX3NldF9idWZmZXJfZGlydHkoYmgpIHRlc3RfYW5kX3NldF9iaXQo
QkhfRGlydHksICYoYmgpLT5iX3N0YXRlKQoKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIGJ1ZmZl
cl9JT19lcnJvcihzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCkKewogICAgICAgIG1hcmtfYnVmZmVy
X2NsZWFuKGJoKTsKCgoKICAgICAgICBiaC0+Yl9lbmRfaW8oYmgsIDApOwp9CgpleHRlcm4gdm9p
ZCBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1Nzcoc3RydWN0IGJ1ZmZlcl9o
ZWFkICosIHN0cnVjdCBpbm9kZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2Rp
cnR5X2lub2RlKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
ICAgICAgICBtYXJrX2J1ZmZlcl9kaXJ0eV9Sc21wXzMzNTdiZWJjKGJoKTsKICAgICAgICBidWZm
ZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1NzcoYmgsIGlub2RlKTsKfQoKZXh0ZXJu
IHZvaWQgYmFsYW5jZV9kaXJ0eShrZGV2X3QpOwpleHRlcm4gaW50IGNoZWNrX2Rpc2tfY2hhbmdl
X1JzbXBfMTFkNDA3NmQoa2Rldl90KTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2Rlc19Sc21w
X2QxZjY2ZTkyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2Rl
dmljZV9Sc21wXzI1YTRiMGIyKGtkZXZfdCwgaW50KTsKZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9p
bm9kZV9wYWdlc19Sc21wXzRjZjUxYzAzKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgaW52
YWxpZGF0ZV9pbm9kZV9idWZmZXJzKHN0cnVjdCBpbm9kZSAqKTsKI2RlZmluZSBpbnZhbGlkYXRl
X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMCkKI2RlZmluZSBkZXN0
cm95X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMSkKZXh0ZXJuIHZv
aWQgX19pbnZhbGlkYXRlX2J1ZmZlcnNfUnNtcF85OGY1MTUzOChrZGV2X3QgZGV2LCBpbnQpOwpl
eHRlcm4gdm9pZCBzeW5jX2lub2RlcyhrZGV2X3QpOwpleHRlcm4gdm9pZCBzeW5jX3VubG9ja2Vk
X2lub2Rlcyh2b2lkKTsKZXh0ZXJuIHZvaWQgd3JpdGVfaW5vZGVfbm93X1JzbXBfZWY0Y2RiY2Mo
c3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiB2b2lkIHN5bmNfZGV2X1JzbXBfZmMwYjBmNDko
a2Rldl90KTsKZXh0ZXJuIGludCBmc3luY19kZXZfUnNtcF84ZWExMjhlMihrZGV2X3QpOwpleHRl
cm4gaW50IGZzeW5jX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIHZvaWQgc3lu
Y19pbm9kZXNfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gaW50IGZzeW5jX2lub2Rl
X2J1ZmZlcnNfUnNtcF8zZjFkZWMzYihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgb3N5bmNf
aW5vZGVfYnVmZmVycyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgaW5vZGVfaGFzX2J1ZmZl
cnMoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRhc3luY19Sc21wXzM1
YWI4ZTA0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRh
d2FpdF9Sc21wX2Q2NGRkZjMzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBz
eW5jX3N1cGVycyhrZGV2X3QpOwpleHRlcm4gaW50IGJtYXBfUnNtcF8xNGVkNmJkZihzdHJ1Y3Qg
aW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBub3RpZnlfY2hhbmdlX1JzbXBfYmI5Nzg2Njgoc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CmV4dGVybiBpbnQgcGVybWlzc2lvbl9Sc21w
XzliMzU0NDU3KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gaW50IHZmc19wZXJtaXNzaW9u
X1JzbXBfNTcwMzk5ZGYoc3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiBpbnQgZ2V0X3dyaXRl
X2FjY2Vzc19Sc21wXzc3N2JjZjc5KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBkZW55X3dy
aXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIHB1dF93cml0ZV9h
Y2Nlc3Moc3RydWN0IGlub2RlICogaW5vZGUpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKCgxKSkgJiYgKCAoKDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAo
KDEpID09IDE2KSB8fCAoKDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8
fCAoKDEpID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigm
KCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZpbm9kZS0+
aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKTsgc3dpdGNoICgtKCgxKSkpIHsgY2FzZSAtMTY6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkp
IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkp
LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9y
eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g
fSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3Jp
dGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi
ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmlu
b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls
ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks
ICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0
X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2Yo
KigmKCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBf
X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog
InIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m
b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7
IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
MTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+
Y291bnRlcikpIChfdG1wICsgKC0oKDEpKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigoMSksICgo
Jmlub2RlLT5pX3dyaXRlY291bnQpKSkpOwp9CnN0YXRpYyBpbmxpbmUgdm9pZCBhbGxvd193cml0
ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCnsKICAgICAgICBpZiAoZmlsZSkKICAgICAgICAg
ICAgICAgICgoX19idWlsdGluX2NvbnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgx
KSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgo
MSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3Rt
cDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
d3JpdGVjb3VudCkpKS0+Y291bnRlcikpICpfdiA9ICgmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpOyBzd2l0Y2ggKCgxKSkgeyBjYXNlIC0xNjog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRl
Y291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm
ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6
ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0
ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog
Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug
NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAo
eyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVj
b3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDog
Im1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh
ZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVt
b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo
KTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZf
ZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkp
LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5
Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0p
OyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2Jh
ZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2Zf
XygqJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVy
KSkgKF90bXAgKyAoKDEpKSk7IH0pIDogaWE2NF9hdG9taWNfYWRkKCgxKSwgKCgmZmlsZS0+Zl9k
ZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKSk7Cn0KZXh0ZXJuIGludCBkb19waXBlKGlu
dCAqKTsKCmV4dGVybiBpbnQgb3Blbl9uYW1laShjb25zdCBjaGFyICosIGludCwgaW50LCBzdHJ1
Y3QgbmFtZWlkYXRhICopOwoKZXh0ZXJuIGludCBrZXJuZWxfcmVhZF9Sc21wX2Q5ZjM2NWVmKHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGxvbmcsIGNoYXIgKiwgdW5zaWduZWQgbG9uZyk7CmV4dGVy
biBzdHJ1Y3QgZmlsZSAqIG9wZW5fZXhlY19Sc21wX2M1ODkyNDYxKGNvbnN0IGNoYXIgKik7CgoK
ZXh0ZXJuIGludCBpc19zdWJkaXJfUnNtcF8wYThjZDkwNChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBkZW50cnkgKik7CmV4dGVybiBpbm9fdCBmaW5kX2lub2RlX251bWJlcl9Sc21wX2Y1ZTRlZDQw
KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CiMgMTIwNSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKkVSUl9QVFIobG9u
ZyBlcnJvcikKewogICAgICAgIHJldHVybiAodm9pZCAqKSBlcnJvcjsKfQoKc3RhdGljIGlubGlu
ZSBsb25nIFBUUl9FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAgICAgcmV0dXJuIChsb25nKSBw
dHI7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZyBJU19FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAg
ICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXB0ciA+ICh1bnNpZ25lZCBsb25nKS0xMDAwTDsKfQoj
IDEyMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI2RlZmluZSBM
T09LVVBfRk9MTE9XICgxKQojZGVmaW5lIExPT0tVUF9ESVJFQ1RPUlkgKDIpCiNkZWZpbmUgTE9P
S1VQX0NPTlRJTlVFICg0KQojZGVmaW5lIExPT0tVUF9QT1NJVElWRSAoOCkKI2RlZmluZSBMT09L
VVBfUEFSRU5UICgxNikKI2RlZmluZSBMT09LVVBfTk9BTFQgKDMyKQoKCgplbnVtIHtMQVNUX05P
Uk0sIExBU1RfUk9PVCwgTEFTVF9ET1QsIExBU1RfRE9URE9ULCBMQVNUX0JJTkR9OwojIDEyNDcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3Qg
ewogICAgICAgIHNpemVfdCB3cml0dGVuOwogICAgICAgIHNpemVfdCBjb3VudDsKICAgICAgICBj
aGFyICogYnVmOwogICAgICAgIGludCBlcnJvcjsKfSByZWFkX2Rlc2NyaXB0b3JfdDsKCnR5cGVk
ZWYgaW50ICgqcmVhZF9hY3Rvcl90KShyZWFkX2Rlc2NyaXB0b3JfdCAqLCBzdHJ1Y3QgcGFnZSAq
LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgpleHRlcm4gbG9mZl90IGRlZmF1bHRf
bGxzZWVrX1JzbXBfZDJiYTIwNGIoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGlu
dCBvcmlnaW4pOwoKZXh0ZXJuIGludCBfX3VzZXJfd2Fsa19Sc21wX2IzZDQxNzE0KGNvbnN0IGNo
YXIgKiwgdW5zaWduZWQsIHN0cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgcGF0aF9pbml0
X1JzbXBfMDU0OWM0NmIoY29uc3QgY2hhciAqLCB1bnNpZ25lZCwgc3RydWN0IG5hbWVpZGF0YSAq
KTsKZXh0ZXJuIGludCBwYXRoX3dhbGtfUnNtcF9kMGFhOTViZShjb25zdCBjaGFyICosIHN0cnVj
dCBuYW1laWRhdGEgKik7CmV4dGVybiB2b2lkIHBhdGhfcmVsZWFzZV9Sc21wXzJjMTQ4M2FjKHN0
cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgZm9sbG93X2Rvd25fUnNtcF81YWUwM2U0Nihz
dHJ1Y3QgdmZzbW91bnQgKiosIHN0cnVjdCBkZW50cnkgKiopOwpleHRlcm4gaW50IGZvbGxvd191
cF9Sc21wX2FkZTNhN2EyKHN0cnVjdCB2ZnNtb3VudCAqKiwgc3RydWN0IGRlbnRyeSAqKik7CmV4
dGVybiBzdHJ1Y3QgZGVudHJ5ICogbG9va3VwX29uZV9sZW5fUnNtcF9hMDA1ZDJkZChjb25zdCBj
aGFyICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBsb29r
dXBfaGFzaF9Sc21wX2U0MGM4NWFmKHN0cnVjdCBxc3RyICosIHN0cnVjdCBkZW50cnkgKik7CiNk
ZWZpbmUgdXNlcl9wYXRoX3dhbGsobmFtZSwgbmQpIF9fdXNlcl93YWxrKG5hbWUsIExPT0tVUF9G
T0xMT1d8TE9PS1VQX1BPU0lUSVZFLCBuZCkKI2RlZmluZSB1c2VyX3BhdGhfd2Fsa19saW5rKG5h
bWUsIG5kKSBfX3VzZXJfd2FsayhuYW1lLCBMT09LVVBfUE9TSVRJVkUsIG5kKQoKZXh0ZXJuIHZv
aWQgaXB1dF9Sc21wXzVlZGJhNjJkKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgZm9yY2Vf
ZGVsZXRlX1JzbXBfYzVlMWExNTQoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGlub2Rl
ICogaWdyYWJfUnNtcF8yZDQzZTRhMyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbm9fdCBpdW5p
cXVlX1JzbXBfMmRmN2UyMWIoc3RydWN0IHN1cGVyX2Jsb2NrICosIGlub190KTsKCnR5cGVkZWYg
aW50ICgqZmluZF9pbm9kZV90KShzdHJ1Y3QgaW5vZGUgKiwgdW5zaWduZWQgbG9uZywgdm9pZCAq
KTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGlnZXQ0X1JzbXBfMTExY2M4YTEoc3RydWN0IHN1cGVy
X2Jsb2NrICosIHVuc2lnbmVkIGxvbmcsIGZpbmRfaW5vZGVfdCwgdm9pZCAqKTsKc3RhdGljIGlu
bGluZSBzdHJ1Y3QgaW5vZGUgKmlnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQg
bG9uZyBpbm8pCnsKICAgICAgICByZXR1cm4gaWdldDRfUnNtcF8xMTFjYzhhMShzYiwgaW5vLCAo
KHZvaWQgKikwKSwgKCh2b2lkICopMCkpOwp9CgpleHRlcm4gdm9pZCBjbGVhcl9pbm9kZV9Sc21w
XzE1YjEyYTM3KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGdldF9lbXB0
eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKHZvaWQpOwpzdGF0aWMgaW5saW5lIHN0cnVjdCBpbm9kZSAq
IG5ld19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiAgICAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGdldF9lbXB0eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKCk7CiAgICAgICAgaWYgKGlu
b2RlKSB7CiAgICAgICAgICAgICAgICBpbm9kZS0+aV9zYiA9IHNiOwogICAgICAgICAgICAgICAg
aW5vZGUtPmlfZGV2ID0gc2ItPnNfZGV2OwogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5vZGU7
Cn0KZXh0ZXJuIHZvaWQgcmVtb3ZlX3N1aWQoc3RydWN0IGlub2RlICppbm9kZSk7CgpleHRlcm4g
dm9pZCBpbnNlcnRfaW5vZGVfaGFzaF9Sc21wXzVjNjRiMWY4KHN0cnVjdCBpbm9kZSAqKTsKZXh0
ZXJuIHZvaWQgcmVtb3ZlX2lub2RlX2hhc2hfUnNtcF9mYjgyNGUxMShzdHJ1Y3QgaW5vZGUgKik7
CmV4dGVybiBzdHJ1Y3QgZmlsZSAqIGdldF9lbXB0eV9maWxwX1JzbXBfMTkzMjVkODIodm9pZCk7
CmV4dGVybiB2b2lkIGZpbGVfbW92ZShzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IGxpc3RfaGVhZCAq
bGlzdCk7CmV4dGVybiB2b2lkIGZpbGVfbW92ZXRvX1JzbXBfYzgzYTRkYWMoc3RydWN0IGZpbGUg
Km5ldywgc3RydWN0IGZpbGUgKm9sZCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBnZXRf
aGFzaF90YWJsZV9Sc21wXzNhZTM2ZmVhKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gc3RydWN0
IGJ1ZmZlcl9oZWFkICogZ2V0YmxrX1JzbXBfNDlhMWEzNTIoa2Rldl90LCBpbnQsIGludCk7CmV4
dGVybiB2b2lkIGxsX3J3X2Jsb2NrX1JzbXBfNGMyNWU5NWIoaW50LCBpbnQsIHN0cnVjdCBidWZm
ZXJfaGVhZCAqIGJoW10pOwpleHRlcm4gdm9pZCBzdWJtaXRfYmhfUnNtcF9lZmExNzQ4MShpbnQs
IHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCBpc19yZWFkX29ubHlfUnNtcF83NDAy
NzRjYShrZGV2X3QpOwpleHRlcm4gdm9pZCBfX2JyZWxzZV9Sc21wXzg2NThlN2ZmKHN0cnVjdCBi
dWZmZXJfaGVhZCAqKTsKc3RhdGljIGlubGluZSB2b2lkIGJyZWxzZShzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2JyZWxzZV9Sc21w
Xzg2NThlN2ZmKGJ1Zik7Cn0KZXh0ZXJuIHZvaWQgX19iZm9yZ2V0X1JzbXBfNmUwNTJiODcoc3Ry
dWN0IGJ1ZmZlcl9oZWFkICopOwpzdGF0aWMgaW5saW5lIHZvaWQgYmZvcmdldChzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2Jmb3Jn
ZXRfUnNtcF82ZTA1MmI4NyhidWYpOwp9CmV4dGVybiB2b2lkIHNldF9ibG9ja3NpemVfUnNtcF9h
ODQyNzIyYShrZGV2X3QsIGludCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBicmVhZF9S
c21wXzA5OWE5OTgzKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gdm9pZCB3YWtldXBfYmRmbHVz
aChpbnQgd2FpdCk7CgpleHRlcm4gaW50IGJyd19wYWdlX1JzbXBfMjBkYzYzNWMoaW50LCBzdHJ1
Y3QgcGFnZSAqLCBrZGV2X3QsIGludCBbXSwgaW50KTsKCnR5cGVkZWYgaW50IChnZXRfYmxvY2tf
dCkoc3RydWN0IGlub2RlKixsb25nLHN0cnVjdCBidWZmZXJfaGVhZCosaW50KTsKCgpleHRlcm4g
aW50IGJsb2NrX2ZsdXNocGFnZShzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IGludCBibG9ja19zeW1saW5rX1JzbXBfNDY1MzY5OTIoc3RydWN0IGlub2RlICosIGNvbnN0IGNo
YXIgKiwgaW50KTsKZXh0ZXJuIGludCBibG9ja193cml0ZV9mdWxsX3BhZ2VfUnNtcF83M2RjNTU2
ZihzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBpbnQgYmxvY2tfcmVhZF9mdWxs
X3BhZ2VfUnNtcF9kMGI0ZDJkMShzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBp
bnQgYmxvY2tfcHJlcGFyZV93cml0ZV9Sc21wX2RkNTdiZjZkKHN0cnVjdCBwYWdlKiwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCBnZXRfYmxvY2tfdCopOwpleHRlcm4gaW50IGNvbnRfcHJlcGFyZV93cml0
ZV9Sc21wXzMzZGJiYjBhKHN0cnVjdCBwYWdlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBnZXRfYmxv
Y2tfdCosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqKTsK
ZXh0ZXJuIGludCBibG9ja19zeW5jX3BhZ2VfUnNtcF84YTI1ZjI5NihzdHJ1Y3QgcGFnZSAqKTsK
CmludCBnZW5lcmljX2Jsb2NrX2JtYXBfUnNtcF8wMTlhZGQ5YyhzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqLCBsb25nLCBnZXRfYmxvY2tfdCAqKTsKaW50IGdlbmVyaWNfY29tbWl0X3dyaXRlX1JzbXBf
Mzc3MzZjOTEoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQsIHVuc2lnbmVk
KTsKaW50IGJsb2NrX3RydW5jYXRlX3BhZ2VfUnNtcF85ZmM1Y2M0NChzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqLCBsb2ZmX3QsIGdldF9ibG9ja190ICopOwoKZXh0ZXJuIGludCB3YWl0Zm9yX29uZV9w
YWdlX1JzbXBfOGVmNmMzNTkoc3RydWN0IHBhZ2UqKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVf
bW1hcF9Sc21wX2I2NzkxMWM5KHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
KTsKZXh0ZXJuIGludCBmaWxlX3JlYWRfYWN0b3IocmVhZF9kZXNjcmlwdG9yX3QgKiBkZXNjLCBz
dHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6
ZSk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfZmlsZV9yZWFkX1JzbXBfMTFjODdlZmYoc3RydWN0
IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgZ2VuZXJp
Y19maWxlX3dyaXRlX1JzbXBfZmIxNzg2MzYoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBz
aXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHZvaWQgZG9fZ2VuZXJpY19maWxlX3JlYWRfUnNtcF9m
YTc5MGE2ZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgcmVhZF9kZXNjcmlwdG9yX3QgKiwgcmVh
ZF9hY3Rvcl90KTsKCmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcmVhZF9kaXJfUnNtcF80ZjZlOGQz
MChzdHJ1Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwoKZXh0ZXJuIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgZ2VuZXJpY19yb19mb3BzX1JzbXBfYzA5MTkxNmU7CgpleHRlcm4g
aW50IHZmc19yZWFkbGlua19Sc21wXzcxNWMzMTQxKHN0cnVjdCBkZW50cnkgKiwgY2hhciAqLCBp
bnQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdmZzX2ZvbGxvd19saW5rX1JzbXBfYTRmY2Rk
ZjYoc3RydWN0IG5hbWVpZGF0YSAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHBhZ2VfcmVh
ZGxpbmtfUnNtcF85ZDQ5NTJlNyhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKZXh0ZXJu
IGludCBwYWdlX2ZvbGxvd19saW5rX1JzbXBfZjliYmMwYjkoc3RydWN0IGRlbnRyeSAqLCBzdHJ1
Y3QgbmFtZWlkYXRhICopOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcGFnZV9zeW1s
aW5rX2lub2RlX29wZXJhdGlvbnNfUnNtcF9iYzA5NjI4NDsKCmV4dGVybiBpbnQgdmZzX3JlYWRk
aXJfUnNtcF83ZTg0YTY1MihzdHJ1Y3QgZmlsZSAqLCBmaWxsZGlyX3QsIHZvaWQgKik7CmV4dGVy
biBpbnQgZGNhY2hlX3JlYWRkaXJfUnNtcF9iNDM3MDE2NihzdHJ1Y3QgZmlsZSAqLCB2b2lkICos
IGZpbGxkaXJfdCk7CgpleHRlcm4gc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmdldF9mc190eXBl
X1JzbXBfYTM3ZDQ1ZjIoY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKmdldF9zdXBlcl9Sc21wXzg1MTMyZjNiKGtkZXZfdCk7CnN0YXRpYyBpbmxpbmUgaW50IGlz
X21vdW50ZWQoa2Rldl90IGRldikKewogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBn
ZXRfc3VwZXJfUnNtcF84NTEzMmYzYihkZXYpOwogICAgICAgIGlmIChzYikgewoKICAgICAgICAg
ICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKfQp1bnNpZ25lZCBs
b25nIGdlbmVyYXRlX2NsdXN0ZXIoa2Rldl90LCBpbnQgYltdLCBpbnQpOwp1bnNpZ25lZCBsb25n
IGdlbmVyYXRlX2NsdXN0ZXJfc3dhYjMyKGtkZXZfdCwgaW50IGJbXSwgaW50KTsKZXh0ZXJuIGtk
ZXZfdCBST09UX0RFVl9Sc21wX2IzMjQ5NmU4OwpleHRlcm4gY2hhciByb290X2RldmljZV9uYW1l
W107CgoKZXh0ZXJuIHZvaWQgc2hvd19idWZmZXJzKHZvaWQpOwpleHRlcm4gdm9pZCBtb3VudF9y
b290KHZvaWQpOwoKCgoKCgpleHRlcm4gc3NpemVfdCBjaGFyX3JlYWQoc3RydWN0IGZpbGUgKiwg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgYmxvY2tfcmVhZF9Sc21w
XzEzZDA2NTBhKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy
biBpbnQgcmVhZF9haGVhZF9Sc21wXzBhYmI3YjA3W107CgpleHRlcm4gc3NpemVfdCBjaGFyX3dy
aXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy
biBzc2l6ZV90IGJsb2NrX3dyaXRlX1JzbXBfNWVkOTc1ZDgoc3RydWN0IGZpbGUgKiwgY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKCmV4dGVybiBpbnQgZmlsZV9mc3luY19Sc21wXzE3
MGVjMzE3KHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIGludCBn
ZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmNfUnNtcF8zYmE0NjJjNChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1bnNpZ25lZCBsb25nIHN0YXJ0X2lkeCwgdW5zaWduZWQgbG9uZyBlbmRfaWR4KTsKZXh0ZXJu
IGludCBnZW5lcmljX29zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoKZXh0ZXJuIGlu
dCBpbm9kZV9jaGFuZ2Vfb2tfUnNtcF80MDRkMGM1NyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlh
dHRyICopOwpleHRlcm4gdm9pZCBpbm9kZV9zZXRhdHRyX1JzbXBfODBhMmNlYjgoc3RydWN0IGlu
b2RlICosIHN0cnVjdCBpYXR0ciAqKTsKIyAxNDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgc3RydWN0IGRlbnRyeSAqbG9ja19wYXJlbnQo
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqZGlyID0gZGdl
dChkZW50cnktPmRfcGFyZW50KTsKCiAgICAgICAgZG93bigmZGlyLT5kX2lub2RlLT5pX3NlbSk7
CiAgICAgICAgcmV0dXJuIGRpcjsKfQoKc3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICpnZXRf
cGFyZW50KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJldHVybiBkZ2V0KGRlbnRy
eS0+ZF9wYXJlbnQpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5sb2NrX2RpcihzdHJ1Y3QgZGVu
dHJ5ICpkaXIpCnsKICAgICAgICB1cCgmZGlyLT5kX2lub2RlLT5pX3NlbSk7CiAgICAgICAgZHB1
dF9Sc21wXzU3NGU2YmEzKGRpcik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2Rv
d24oc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7CiAgICAgICAg
aWYgKHMxICE9IHMyKSB7CiAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwg
KHVuc2lnbmVkIGxvbmcpIHMyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1h
cGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICBzMiA9IHMxOyBzMSA9IHRt
cDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRvd24oczEpOwogICAgICAgIH0K
ICAgICAgICBkb3duKHMyKTsKfQojIDE0NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZnMuaCIKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV9kb3duKHN0cnVjdCBzZW1hcGhv
cmUgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAq
czIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykK
ewogICAgICAgIGlmIChzMSAhPSBzMikgewogICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBs
b25nKSBzMSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBz
MSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCBzZW1hcGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHMyID0gczE7IHMxID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxv
bmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBzMiA8ICh1bnNpZ25lZCBs
b25nKSBzMykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1hcGhv
cmUgKnRtcCA9IHMzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMzID0gczI7IHMy
ID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBkb3duKHMxKTsKICAgICAgICB9IGVsc2UgaWYgKCh1bnNpZ25lZCBsb25nKSBz
MiA8ICh1bnNpZ25lZCBsb25nKSBzMykgewogICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9y
ZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICBzMyA9IHMyOyBzMiA9IHRtcDsKICAgICAgICB9
CiAgICAgICAgZG93bihzMik7CiAgICAgICAgZG93bihzMyk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBkb3VibGVfdXAoc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7
CiAgICAgICAgdXAoczEpOwogICAgICAgIGlmIChzMSAhPSBzMikKICAgICAgICAgICAgICAgIHVw
KHMyKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV91cChzdHJ1Y3Qgc2VtYXBob3JlICpz
MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykKewogICAgICAg
IHVwKHMxKTsKICAgICAgICBpZiAoczEgIT0gczIpCiAgICAgICAgICAgICAgICB1cChzMik7CiAg
ICAgICAgdXAoczMpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2xvY2soc3RydWN0IGRl
bnRyeSAqZDEsIHN0cnVjdCBkZW50cnkgKmQyKQp7CiAgICAgICAgZG91YmxlX2Rvd24oJmQxLT5k
X2lub2RlLT5pX3NlbSwgJmQyLT5kX2lub2RlLT5pX3NlbSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBkb3VibGVfdW5sb2NrKHN0cnVjdCBkZW50cnkgKmQxLCBzdHJ1Y3QgZGVudHJ5ICpkMikKewog
ICAgICAgIGRvdWJsZV91cCgmZDEtPmRfaW5vZGUtPmlfc2VtLCZkMi0+ZF9pbm9kZS0+aV9zZW0p
OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhkMSk7CiAgICAgICAgZHB1dF9Sc21wXzU3NGU2
YmEzKGQyKTsKfQojIDE2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCgoKCgoKCgojZGVmaW5lIHVkZl9m
aXhlZF90b192YXJpYWJsZSh4KSAoICggKCAoeCkgPj4gNSApICogMzkgKSArICggKHgpICYgMHgw
MDAwMDAxRiApICkKI2RlZmluZSB1ZGZfdmFyaWFibGVfdG9fZml4ZWQoeCkgKCAoICggKHgpIC8g
MzkgKSA8PCA1ICkgKyAoICh4KSAlIDM5ICkgKQoKI2RlZmluZSBDVVJSRU5UX1VUSU1FICh4dGlt
ZS50dl91c2VjKQoKI2RlZmluZSB1ZGZfZmlsZV9lbnRyeV9hbGxvY19vZmZzZXQoaW5vZGUpICgo
VURGX0lfRVhURU5ERURfRkUoaW5vZGUpID8gc2l6ZW9mKHN0cnVjdCBFeHRlbmRlZEZpbGVFbnRy
eSkgOiBzaXplb2Yoc3RydWN0IEZpbGVFbnRyeSkpICsgVURGX0lfTEVORUFUVFIoaW5vZGUpKQoK
CgoKI2RlZmluZSB1ZGZfZXh0MF9vZmZzZXQoaW5vZGUpIChVREZfSV9BTExPQ1RZUEUoaW5vZGUp
ID09IElDQl9GTEFHX0FEX0lOX0lDQiA/IHVkZl9maWxlX2VudHJ5X2FsbG9jX29mZnNldChpbm9k
ZSkgOiAwKQoKCgojZGVmaW5lIHVkZl9nZXRfbGJfcGJsb2NrKHNiLCBsb2MsIG9mZnNldCkgdWRm
X2dldF9wYmxvY2soKHNiKSwgKGxvYykubG9naWNhbEJsb2NrTnVtLCAobG9jKS5wYXJ0aXRpb25S
ZWZlcmVuY2VOdW0sIChvZmZzZXQpKQojIDQ5ICJmcy91ZGYvdWRmZGVjbC5oIgpzdHJ1Y3QgZGVu
dHJ5OwpzdHJ1Y3QgaW5vZGU7CnN0cnVjdCB0YXNrX3N0cnVjdDsKc3RydWN0IGJ1ZmZlcl9oZWFk
OwpzdHJ1Y3Qgc3VwZXJfYmxvY2s7CgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgdWRm
X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZf
ZGlyX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9p
bm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9v
cGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZGZfYW9w
czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX2FkaW5pY2JfYW9w
czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX3N5bWxpbmtfYW9w
czsKCnN0cnVjdCB1ZGZfZmlsZWlkZW50X2JoCnsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg
KnNiaDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmViaDsKICAgICAgICBpbnQgc29mZnNl
dDsKICAgICAgICBpbnQgZW9mZnNldDsKfTsKCgoKc3RydWN0IHVkZl9kaXJlY3RvcnlfcmVjb3Jk
CnsKICAgICAgICBfX3UzMiBkX3BhcmVudDsKICAgICAgICBfX3UzMiBkX2lub2RlOwogICAgICAg
IF9fdTMyIGRfbmFtZVsyNTVdOwp9OwoKCnN0cnVjdCB1ZGZfdmRzX3JlY29yZAp7CiAgICAgICAg
X191MzIgYmxvY2s7CiAgICAgICAgX191MzIgdm9sRGVzY1NlcU51bTsKfTsKCnN0cnVjdCBrdG0K
ewogICAgICAgIGludCB0bV9zZWM7CiAgICAgICAgaW50IHRtX21pbjsKICAgICAgICBpbnQgdG1f
aG91cjsKICAgICAgICBpbnQgdG1fbWRheTsKICAgICAgICBpbnQgdG1fbW9uOwogICAgICAgIGlu
dCB0bV95ZWFyOwogICAgICAgIGludCB0bV9pc2RzdDsKfTsKCnN0cnVjdCB1c3RyCnsKICAgICAg
ICBfX3U4IHVfY21wSUQ7CiAgICAgICAgX191OCB1X25hbWVbMjU1XTsKICAgICAgICBfX3U4IHVf
bGVuOwogICAgICAgIF9fdTggcGFkZGluZzsKICAgICAgICB1bnNpZ25lZCBsb25nIHVfaGFzaDsK
fTsKCgoKCmV4dGVybiB2b2lkIHVkZl9lcnJvcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgY29uc3Qg
Y2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiB2b2lkIHVkZl93YXJuaW5nKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKCgpleHRl
cm4gaW50IHVkZl93cml0ZV9maShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgRmlsZUlkZW50
RGVzYyAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAq
LCBfX3U4ICosIF9fdTggKik7CgoKZXh0ZXJuIGludCB1ZGZfaW9jdGwoc3RydWN0IGlub2RlICos
IHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0
cnVjdCBpbm9kZSAqdWRmX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIGxiX2FkZHIpOwpleHRl
cm4gaW50IHVkZl9zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgdWRmX2V4
cGFuZF9maWxlX2FkaW5pY2Ioc3RydWN0IGlub2RlICosIGludCwgaW50ICopOwpleHRlcm4gc3Ry
dWN0IGJ1ZmZlcl9oZWFkICogdWRmX2V4cGFuZF9kaXJfYWRpbmljYihzdHJ1Y3QgaW5vZGUgKiwg
aW50ICosIGludCAqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqIHVkZl9nZXRibGsoc3Ry
dWN0IGlub2RlICosIGxvbmcsIGludCwgaW50ICopOwpleHRlcm4gc3RydWN0IGJ1ZmZlcl9oZWFk
ICogdWRmX2JyZWFkKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCwgaW50ICopOwpleHRlcm4gdm9p
ZCB1ZGZfdHJ1bmNhdGUoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZGZfcmVhZF9pbm9k
ZShzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVkZl9wdXRfaW5vZGUoc3RydWN0IGlub2Rl
ICopOwpleHRlcm4gdm9pZCB1ZGZfZGVsZXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdWRmX3dyaXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gbG9uZyB1
ZGZfYmxvY2tfbWFwKHN0cnVjdCBpbm9kZSAqLCBsb25nKTsKZXh0ZXJuIGludCBpbm9kZV9ibWFw
KHN0cnVjdCBpbm9kZSAqLCBpbnQsIGxiX2FkZHIgKiwgX191MzIgKiwgbGJfYWRkciAqLCBfX3Uz
MiAqLCBfX3UzMiAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiopOwpleHRlcm4gaW50IHVkZl9hZGRf
YWV4dChzdHJ1Y3QgaW5vZGUgKiwgbGJfYWRkciAqLCBpbnQgKiwgbGJfYWRkciwgX191MzIsIHN0
cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfd3JpdGVfYWV4dChzdHJ1
Y3QgaW5vZGUgKiwgbGJfYWRkciwgaW50ICosIGxiX2FkZHIsIF9fdTMyLCBzdHJ1Y3QgYnVmZmVy
X2hlYWQgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfaW5zZXJ0X2FleHQoc3RydWN0IGlub2RlICos
IGxiX2FkZHIsIGludCwgbGJfYWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0
ZXJuIGludCB1ZGZfZGVsZXRlX2FleHQoc3RydWN0IGlub2RlICosIGxiX2FkZHIsIGludCwgbGJf
YWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCB1ZGZfbmV4dF9h
ZXh0KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICos
IHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfY3VycmVudF9hZXh0
KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICosIHN0
cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIHZvaWQgdWRmX2Rpc2NhcmRfcHJlYWxs
b2Moc3RydWN0IGlub2RlICopOwoKCmV4dGVybiBpbnQgdWRmX3JlYWRfdGFnZ2VkX2RhdGEoY2hh
ciAqLCBpbnQgc2l6ZSwgaW50IGZkLCBpbnQgYmxvY2ssIGludCBwYXJ0cmVmKTsKZXh0ZXJuIHN0
cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RnZXRibGsoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwg
aW50KTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RyZWFkKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9h
ZGRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191MzIsIF9fdTgsIHN0cnVj
dCBidWZmZXJfaGVhZCAqKik7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9n
ZXRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191OCwgc3RydWN0IGJ1ZmZl
cl9oZWFkICoqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3JlYWRfdGFnZ2VkKHN0
cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIsIF9fdTE2ICopOwpleHRlcm4gc3RydWN0
IGJ1ZmZlcl9oZWFkICp1ZGZfcmVhZF9wdGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBsYl9h
ZGRyLCBfX3UzMiwgX191MTYgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKnVkZl9yZWFk
X3VudGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIpOwpleHRlcm4gdm9p
ZCB1ZGZfcmVsZWFzZV9kYXRhKHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKCgpleHRlcm4gdW5zaWdu
ZWQgaW50IHVkZl9nZXRfbGFzdF9zZXNzaW9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJu
IHVuc2lnbmVkIGludCB1ZGZfZ2V0X2xhc3RfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICopOwoK
CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgX191MzIs
IF9fdTE2LCBfX3UzMik7CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9ja192aXJ0MTUoc3RydWN0
IHN1cGVyX2Jsb2NrICosIF9fdTMyLCBfX3UxNiwgX191MzIpOwpleHRlcm4gX191MzIgdWRmX2dl
dF9wYmxvY2tfdmlydDIwKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMy
KTsKZXh0ZXJuIF9fdTMyIHVkZl9nZXRfcGJsb2NrX3NwYXIxNShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KiwgX191MzIsIF9fdTE2LCBfX3UzMik7CmV4dGVybiBpbnQgdWRmX3JlbG9jYXRlX2Jsb2Nrcyhz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgbG9uZywgbG9uZyAqKTsKCgpleHRlcm4gaW50IHVkZl9nZXRf
ZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICosIF9fdTggKiwgX191OCAqLCBpbnQpOwoKCmV4
dGVybiB2b2lkIHVkZl9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBp
bm9kZSAqIHVkZl9uZXdfaW5vZGUgKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCAqKTsK
CgpleHRlcm4gdm9pZCB1ZGZfdHJ1bmNhdGVfZXh0ZW50cyhzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0
ZXJuIHZvaWQgdWRmX2ZyZWVfYmxvY2tzKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyLCBf
X3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9wcmVhbGxvY19ibG9ja3MoY29uc3Qgc3RydWN0
IGlub2RlICosIF9fdTE2LCBfX3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9uZXdfYmxvY2so
Y29uc3Qgc3RydWN0IGlub2RlICosIF9fdTE2LCBfX3UzMiwgaW50ICopOwoKCmV4dGVybiBpbnQg
dWRmX2ZzeW5jX2ZpbGUoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRl
cm4gaW50IHVkZl9mc3luY19pbm9kZShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKCgpleHRlcm4gX191
OCAqIHVkZl9maWxlYWRfcmVhZChzdHJ1Y3QgaW5vZGUgKiwgX191OCAqLCBfX3U4LCBsYl9hZGRy
LCBpbnQgKiwgaW50ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50ICopOwpleHRlcm4gc3Ry
dWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZmlsZWlkZW50X3JlYWQoc3RydWN0IGlub2RlICosIGxv
ZmZfdCAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAq
LCBsYl9hZGRyICosIF9fdTMyICosIGxiX2FkZHIgKiwgX191MzIgKiwgX191MzIgKiwgc3RydWN0
IGJ1ZmZlcl9oZWFkICoqKTsKCgoKCgoKZXh0ZXJuIGludCB1ZGZfdXN0cl90b19kY2hhcnMoX191
OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3RyX3RvX2No
YXIoX191OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3Ry
X3RvX2RzdHJpbmcoZHN0cmluZyAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4g
aW50IHVkZl9kY2hhcnNfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICosIGludCk7
CmV4dGVybiBpbnQgdWRmX2NoYXJfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICos
IGludCk7CmV4dGVybiBpbnQgdWRmX2RzdHJpbmdfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25z
dCBkc3RyaW5nICosIGludCk7CmV4dGVybiBpbnQgdWRmX3RyYW5zbGF0ZV90b19saW51eChfX3U4
ICosIF9fdTggKiwgaW50LCBfX3U4ICosIGludCk7CmV4dGVybiBpbnQgdWRmX2J1aWxkX3VzdHIo
c3RydWN0IHVzdHIgKiwgZHN0cmluZyAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl9idWlsZF91c3Ry
X2V4YWN0KHN0cnVjdCB1c3RyICosIGRzdHJpbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfQ1Mw
dG9VVEY4KHN0cnVjdCB1c3RyICosIHN0cnVjdCB1c3RyICopOwpleHRlcm4gaW50IHVkZl9VVEY4
dG9DUzAoZHN0cmluZyAqLCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwoKZXh0ZXJuIGludCB1ZGZfQ1Mw
dG9OTFMoc3RydWN0IG5sc190YWJsZSAqLCBzdHJ1Y3QgdXN0ciAqLCBzdHJ1Y3QgdXN0ciAqKTsK
ZXh0ZXJuIGludCB1ZGZfTkxTdG9DUzAoc3RydWN0IG5sc190YWJsZSAqLCBkc3RyaW5nICosIHN0
cnVjdCB1c3RyICosIGludCk7CgoKCmV4dGVybiBfX3UxNiB1ZGZfY3JjKF9fdTggKiwgX191MzIs
IF9fdTE2KTsKCgpleHRlcm4gX191MzIgdWRmNjRfbG93MzIoX191NjQpOwpleHRlcm4gX191MzIg
dWRmNjRfaGlnaDMyKF9fdTY0KTsKZXh0ZXJuIHZvaWQgdWRmX3VwZGF0ZV90YWcoY2hhciAqLCBp
bnQpOwpleHRlcm4gdm9pZCB1ZGZfbmV3X3RhZyhjaGFyICosIF9fdTE2LCBfX3UxNiwgX191MTYs
IF9fdTMyLCBpbnQpOwoKCmV4dGVybiB0aW1lX3QgKnVkZl9zdGFtcF90b190aW1lKHRpbWVfdCAq
LCBsb25nICosIHRpbWVzdGFtcCk7CmV4dGVybiB0aW1lc3RhbXAgKnVkZl90aW1lX3RvX3N0YW1w
KHRpbWVzdGFtcCAqLCB0aW1lX3QsIGxvbmcpOwpleHRlcm4gdGltZV90IHVkZl9jb252ZXJ0dGlt
ZSAoc3RydWN0IGt0bSAqKTsKCgpleHRlcm4gc3RydWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZ2V0
X2ZpbGVpZGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0
ZXJuIGV4dGVudF9hZCAqIHVkZl9nZXRfZmlsZWV4dGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVm
c2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0ZXJuIGxvbmdfYWQgKiB1ZGZfZ2V0X2ZpbGVsb25nYWQo
dm9pZCAqIGJ1ZmZlciwgaW50IGJ1ZnNpemUsIGludCAqIG9mZnNldCwgaW50KTsKZXh0ZXJuIHNo
b3J0X2FkICogdWRmX2dldF9maWxlc2hvcnRhZCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwg
aW50ICogb2Zmc2V0LCBpbnQpOwpleHRlcm4gX191OCAqIHVkZl9nZXRfZmlsZWFkKHN0cnVjdCBG
aWxlRW50cnkgKiwgX191OCAqLCBpbnQsIGludCwgaW50LCBpbnQgKik7CiMgNDcgImZzL3VkZi9z
dXBlci5jIiAyCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmln
LmgiIDEKIyA0OSAiZnMvdWRmL3N1cGVyLmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3ZlcnNpb24uaCIgMQojZGVmaW5lIFVUU19SRUxFQVNFICIyLjQuNyIKI2Rl
ZmluZSBMSU5VWF9WRVJTSU9OX0NPREUgMTMyMTAzCiNkZWZpbmUgS0VSTkVMX1ZFUlNJT04oYSwg
YiwgYykgKCgoYSkgPDwgMTYpICsgKChiKSA8PCA4KSArIChjKSkKIyA1MCAiZnMvdWRmL3N1cGVy
LmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAx
CgojZGVmaW5lIF9MSU5VWF9CTEtERVZfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21ham9yLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01BSk9SX0gKIyAxNSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tYWpvci5oIgojZGVmaW5lIE1BWF9DSFJERVYg
MjU1CiNkZWZpbmUgTUFYX0JMS0RFViAyNTUKCiNkZWZpbmUgVU5OQU1FRF9NQUpPUiAwCiNkZWZp
bmUgTUVNX01BSk9SIDEKI2RlZmluZSBSQU1ESVNLX01BSk9SIDEKI2RlZmluZSBGTE9QUFlfTUFK
T1IgMgojZGVmaW5lIFBUWV9NQVNURVJfTUFKT1IgMgojZGVmaW5lIElERTBfTUFKT1IgMwojZGVm
aW5lIFBUWV9TTEFWRV9NQUpPUiAzCiNkZWZpbmUgSERfTUFKT1IgSURFMF9NQUpPUgojZGVmaW5l
IFRUWV9NQUpPUiA0CiNkZWZpbmUgVFRZQVVYX01BSk9SIDUKI2RlZmluZSBMUF9NQUpPUiA2CiNk
ZWZpbmUgVkNTX01BSk9SIDcKI2RlZmluZSBMT09QX01BSk9SIDcKI2RlZmluZSBTQ1NJX0RJU0sw
X01BSk9SIDgKI2RlZmluZSBTQ1NJX1RBUEVfTUFKT1IgOQojZGVmaW5lIE1EX01BSk9SIDkKI2Rl
ZmluZSBNSVNDX01BSk9SIDEwCiNkZWZpbmUgU0NTSV9DRFJPTV9NQUpPUiAxMQojZGVmaW5lIFFJ
QzAyX1RBUEVfTUFKT1IgMTIKI2RlZmluZSBYVF9ESVNLX01BSk9SIDEzCiNkZWZpbmUgU09VTkRf
TUFKT1IgMTQKI2RlZmluZSBDRFUzMUFfQ0RST01fTUFKT1IgMTUKI2RlZmluZSBKT1lTVElDS19N
QUpPUiAxNQojZGVmaW5lIEdPTERTVEFSX0NEUk9NX01BSk9SIDE2CiNkZWZpbmUgT1BUSUNTX0NE
Uk9NX01BSk9SIDE3CiNkZWZpbmUgU0FOWU9fQ0RST01fTUFKT1IgMTgKI2RlZmluZSBDWUNMQURF
U19NQUpPUiAxOQojZGVmaW5lIENZQ0xBREVTQVVYX01BSk9SIDIwCiNkZWZpbmUgTUlUU1VNSV9Y
X0NEUk9NX01BSk9SIDIwCiNkZWZpbmUgTUZNX0FDT1JOX01BSk9SIDIxCiNkZWZpbmUgU0NTSV9H
RU5FUklDX01BSk9SIDIxCiNkZWZpbmUgWjg1MzBfTUFKT1IgMzQKI2RlZmluZSBESUdJX01BSk9S
IDIzCiNkZWZpbmUgSURFMV9NQUpPUiAyMgojZGVmaW5lIERJR0lDVV9NQUpPUiAyMgojZGVmaW5l
IE1JVFNVTUlfQ0RST01fTUFKT1IgMjMKI2RlZmluZSBDRFU1MzVfQ0RST01fTUFKT1IgMjQKI2Rl
ZmluZSBTVExfU0VSSUFMTUFKT1IgMjQKI2RlZmluZSBNQVRTVVNISVRBX0NEUk9NX01BSk9SIDI1
CiNkZWZpbmUgU1RMX0NBTExPVVRNQUpPUiAyNQojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST00yX01B
Sk9SIDI2CiNkZWZpbmUgUUlDMTE3X1RBUEVfTUFKT1IgMjcKI2RlZmluZSBNQVRTVVNISVRBX0NE
Uk9NM19NQUpPUiAyNwojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST000X01BSk9SIDI4CiNkZWZpbmUg
U1RMX1NJT01FTU1BSk9SIDI4CiNkZWZpbmUgQUNTSV9NQUpPUiAyOAojZGVmaW5lIEFaVEVDSF9D
RFJPTV9NQUpPUiAyOQojZGVmaW5lIEdSQVBIREVWX01BSk9SIDI5CiNkZWZpbmUgU0hNSVFfTUFK
T1IgODUKI2RlZmluZSBDTTIwNl9DRFJPTV9NQUpPUiAzMgojZGVmaW5lIElERTJfTUFKT1IgMzMK
I2RlZmluZSBJREUzX01BSk9SIDM0CiNkZWZpbmUgWFBSQU1fTUFKT1IgMzUKCiNkZWZpbmUgTkVU
TElOS19NQUpPUiAzNgojZGVmaW5lIFBTMkVTRElfTUFKT1IgMzYKI2RlZmluZSBJREVUQVBFX01B
Sk9SIDM3CiNkZWZpbmUgWjJSQU1fTUFKT1IgMzcKI2RlZmluZSBBUEJMT0NLX01BSk9SIDM4CiNk
ZWZpbmUgRERWX01BSk9SIDM5CiNkZWZpbmUgTkJEX01BSk9SIDQzCiNkZWZpbmUgUklTQ09NOF9O
T1JNQUxfTUFKT1IgNDgKI2RlZmluZSBEQUM5NjBfTUFKT1IgNDgKI2RlZmluZSBSSVNDT004X0NB
TExPVVRfTUFKT1IgNDkKI2RlZmluZSBNS0lTU19NQUpPUiA1NQojZGVmaW5lIERTUDU2S19NQUpP
UiA1NQoKI2RlZmluZSBJREU0X01BSk9SIDU2CiNkZWZpbmUgSURFNV9NQUpPUiA1NwoKI2RlZmlu
ZSBMVk1fQkxLX01BSk9SIDU4CgojZGVmaW5lIFNDU0lfRElTSzFfTUFKT1IgNjUKI2RlZmluZSBT
Q1NJX0RJU0syX01BSk9SIDY2CiNkZWZpbmUgU0NTSV9ESVNLM19NQUpPUiA2NwojZGVmaW5lIFND
U0lfRElTSzRfTUFKT1IgNjgKI2RlZmluZSBTQ1NJX0RJU0s1X01BSk9SIDY5CiNkZWZpbmUgU0NT
SV9ESVNLNl9NQUpPUiA3MAojZGVmaW5lIFNDU0lfRElTSzdfTUFKT1IgNzEKCgojZGVmaW5lIENP
TVBBUV9TTUFSVDJfTUFKT1IgNzIKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SMSA3MwojZGVm
aW5lIENPTVBBUV9TTUFSVDJfTUFKT1IyIDc0CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjMg
NzUKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SNCA3NgojZGVmaW5lIENPTVBBUV9TTUFSVDJf
TUFKT1I1IDc3CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjYgNzgKI2RlZmluZSBDT01QQVFf
U01BUlQyX01BSk9SNyA3OQoKI2RlZmluZSBTUEVDSUFMSVhfTk9STUFMX01BSk9SIDc1CiNkZWZp
bmUgU1BFQ0lBTElYX0NBTExPVVRfTUFKT1IgNzYKCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1Ig
MTA0CiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1IxIDEwNQojZGVmaW5lIENPTVBBUV9DSVNTX01B
Sk9SMiAxMDYKI2RlZmluZSBDT01QQVFfQ0lTU19NQUpPUjMgMTA3CiNkZWZpbmUgQ09NUEFRX0NJ
U1NfTUFKT1I0IDEwOAojZGVmaW5lIENPTVBBUV9DSVNTX01BSk9SNSAxMDkKI2RlZmluZSBDT01Q
QVFfQ0lTU19NQUpPUjYgMTEwCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1I3IDExMQoKI2RlZmlu
ZSBEQVNEX01BSk9SIDk0CgojZGVmaW5lIE1ESVNLX01BSk9SIDk1CgojZGVmaW5lIEkyT19NQUpP
UiA4MAoKI2RlZmluZSBJREU2X01BSk9SIDg4CiNkZWZpbmUgSURFN19NQUpPUiA4OQojZGVmaW5l
IElERThfTUFKT1IgOTAKI2RlZmluZSBJREU5X01BSk9SIDkxCgojZGVmaW5lIFVCRF9NQUpPUiA5
OAoKI2RlZmluZSBBVVJPUkFfTUFKT1IgNzkKCiNkZWZpbmUgSlNGRF9NQUpPUiA5OQoKI2RlZmlu
ZSBQSE9ORV9NQUpPUiAxMDAKCiNkZWZpbmUgTFZNX0NIQVJfTUFKT1IgMTA5CgojZGVmaW5lIFJU
Rl9NQUpPUiAxNTAKI2RlZmluZSBSQVdfTUFKT1IgMTYyCgojZGVmaW5lIFVTQl9BQ01fTUFKT1Ig
MTY2CiNkZWZpbmUgVVNCX0FDTV9BVVhfTUFKT1IgMTY3CiNkZWZpbmUgVVNCX0NIQVJfTUFKT1Ig
MTgwCgojZGVmaW5lIFVOSVg5OF9QVFlfTUFTVEVSX01BSk9SIDEyOAojZGVmaW5lIFVOSVg5OF9Q
VFlfTUFKT1JfQ09VTlQgOAojZGVmaW5lIFVOSVg5OF9QVFlfU0xBVkVfTUFKT1IgKFVOSVg5OF9Q
VFlfTUFTVEVSX01BSk9SK1VOSVg5OF9QVFlfTUFKT1JfQ09VTlQpCgojZGVmaW5lIFZYVk1fTUFK
T1IgMTk5CiNkZWZpbmUgVlhTUEVDX01BSk9SIDIwMAojZGVmaW5lIFZYRE1QX01BSk9SIDIwMQoK
I2RlZmluZSBNU1JfTUFKT1IgMjAyCiNkZWZpbmUgQ1BVSURfTUFKT1IgMjAzCgojZGVmaW5lIE9T
U1RfTUFKT1IgMjA2CgojZGVmaW5lIElCTV9UVFkzMjcwX01BSk9SIDIyNwojZGVmaW5lIElCTV9G
UzMyNzBfTUFKT1IgMjI4CgoKCgoKI2RlZmluZSBTQ1NJX0RJU0tfTUFKT1IoTSkgKChNKSA9PSBT
Q1NJX0RJU0swX01BSk9SIHx8ICgoTSkgPj0gU0NTSV9ESVNLMV9NQUpPUiAmJiAoTSkgPD0gU0NT
SV9ESVNLN19NQUpPUikpCgoKI2RlZmluZSBTQ1NJX0JMS19NQUpPUihNKSAoU0NTSV9ESVNLX01B
Sk9SKE0pIHx8IChNKSA9PSBTQ1NJX0NEUk9NX01BSk9SKQoKCgpzdGF0aWMgX19pbmxpbmVfXyBp
bnQgc2NzaV9ibGtfbWFqb3IoaW50IG0pIHsKICAgICAgICByZXR1cm4gKCgobSkgPT0gOCB8fCAo
KG0pID49IDY1ICYmIChtKSA8PSA3MSkpIHx8IChtKSA9PSAxMSk7Cn0KIyA1ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCgojZGVmaW5lIF9MSU5VWF9TQ0hFRF9ICgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiIDEKIyA1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCmV4dGVybiB1bnNpZ25l
ZCBsb25nIGV2ZW50X1JzbXBfN2IxNmMzNDQ7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2JpbmZtdHMuaCIgMQoKI2RlZmluZSBfTElOVVhfQklORk1UU19ICgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BUUkFD
RV9ICgoKCgoKI2RlZmluZSBQVFJBQ0VfVFJBQ0VNRSAwCiNkZWZpbmUgUFRSQUNFX1BFRUtURVhU
IDEKI2RlZmluZSBQVFJBQ0VfUEVFS0RBVEEgMgojZGVmaW5lIFBUUkFDRV9QRUVLVVNSIDMKI2Rl
ZmluZSBQVFJBQ0VfUE9LRVRFWFQgNAojZGVmaW5lIFBUUkFDRV9QT0tFREFUQSA1CiNkZWZpbmUg
UFRSQUNFX1BPS0VVU1IgNgojZGVmaW5lIFBUUkFDRV9DT05UIDcKI2RlZmluZSBQVFJBQ0VfS0lM
TCA4CiNkZWZpbmUgUFRSQUNFX1NJTkdMRVNURVAgOQoKI2RlZmluZSBQVFJBQ0VfQVRUQUNIIDB4
MTAKI2RlZmluZSBQVFJBQ0VfREVUQUNIIDB4MTEKCiNkZWZpbmUgUFRSQUNFX1NZU0NBTEwgMjQK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDEKIyAyNSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wdHJhY2UuaCIgMgojIDUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmluZm10cy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDEKIyAxNCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgX0xJTlVYX0NB
UEFCSUxJVFlfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVz
LmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDEKIyAx
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDIKIyAz
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZp
bmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTiAweDE5OTgwMzMwCgp0eXBlZGVmIHN0cnVjdCBf
X3VzZXJfY2FwX2hlYWRlcl9zdHJ1Y3QgewogICAgICAgIF9fdTMyIHZlcnNpb247CiAgICAgICAg
aW50IHBpZDsKfSAqY2FwX3VzZXJfaGVhZGVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfX3VzZXJfY2Fw
X2RhdGFfc3RydWN0IHsKICAgICAgICBfX3UzMiBlZmZlY3RpdmU7CiAgICAgICAgX191MzIgcGVy
bWl0dGVkOwogICAgICAgIF9fdTMyIGluaGVyaXRhYmxlOwp9ICpjYXBfdXNlcl9kYXRhX3Q7CiMg
NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgp0eXBl
ZGVmIF9fdTMyIGtlcm5lbF9jYXBfdDsKCgoKI2RlZmluZSBfVVNFUl9DQVBfSEVBREVSX1NJWkUg
KDIqc2l6ZW9mKF9fdTMyKSkKI2RlZmluZSBfS0VSTkVMX0NBUF9UX1NJWkUgKHNpemVvZihrZXJu
ZWxfY2FwX3QpKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFi
aWxpdHkuaCIKI2RlZmluZSBDQVBfQ0hPV04gMAoKCgoKCiNkZWZpbmUgQ0FQX0RBQ19PVkVSUklE
RSAxCgoKCgoKI2RlZmluZSBDQVBfREFDX1JFQURfU0VBUkNIIDIKCgoKCgojZGVmaW5lIENBUF9G
T1dORVIgMwojIDEwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmls
aXR5LmgiCiNkZWZpbmUgQ0FQX0ZTRVRJRCA0CgoKCiNkZWZpbmUgQ0FQX0ZTX01BU0sgMHgxZgoK
CgoKCiNkZWZpbmUgQ0FQX0tJTEwgNQoKCgoKCiNkZWZpbmUgQ0FQX1NFVEdJRCA2CgoKCgojZGVm
aW5lIENBUF9TRVRVSUQgNwojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NFVFBDQVAgOAoKCgojZGVmaW5lIENBUF9MSU5V
WF9JTU1VVEFCTEUgOQoKCgoKI2RlZmluZSBDQVBfTkVUX0JJTkRfU0VSVklDRSAxMAoKCgojZGVm
aW5lIENBUF9ORVRfQlJPQURDQVNUIDExCiMgMTYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBDQVBfTkVUX0FETUlOIDEyCgoKCgojZGVm
aW5lIENBUF9ORVRfUkFXIDEzCgoKCgoKI2RlZmluZSBDQVBfSVBDX0xPQ0sgMTQKCgoKI2RlZmlu
ZSBDQVBfSVBDX09XTkVSIDE1CgoKCiNkZWZpbmUgQ0FQX1NZU19NT0RVTEUgMTYKCgoKCiNkZWZp
bmUgQ0FQX1NZU19SQVdJTyAxNwoKCgojZGVmaW5lIENBUF9TWVNfQ0hST09UIDE4CgoKCiNkZWZp
bmUgQ0FQX1NZU19QVFJBQ0UgMTkKCgoKI2RlZmluZSBDQVBfU1lTX1BBQ0NUIDIwCiMgMjM1ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBD
QVBfU1lTX0FETUlOIDIxCgoKCiNkZWZpbmUgQ0FQX1NZU19CT09UIDIyCgoKCgoKCgojZGVmaW5l
IENBUF9TWVNfTklDRSAyMwojIDI1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NZU19SRVNPVVJDRSAyNAoKCgoKCiNkZWZpbmUg
Q0FQX1NZU19USU1FIDI1CgoKCgojZGVmaW5lIENBUF9TWVNfVFRZX0NPTkZJRyAyNgoKCgojZGVm
aW5lIENBUF9NS05PRCAyNwoKCgojZGVmaW5lIENBUF9MRUFTRSAyOAoKCgoKCmV4dGVybiBrZXJu
ZWxfY2FwX3QgY2FwX2JzZXRfUnNtcF81OWFiNDA4MDsKIyAyOTcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgojZGVmaW5lIHRvX2NhcF90KHgpICh4KQoj
ZGVmaW5lIGNhcF90KHgpICh4KQoKCgojZGVmaW5lIENBUF9FTVBUWV9TRVQgdG9fY2FwX3QoMCkK
I2RlZmluZSBDQVBfRlVMTF9TRVQgdG9fY2FwX3QofjApCiNkZWZpbmUgQ0FQX0lOSVRfRUZGX1NF
VCB0b19jYXBfdCh+MCAmIH5DQVBfVE9fTUFTSyhDQVBfU0VUUENBUCkpCiNkZWZpbmUgQ0FQX0lO
SVRfSU5IX1NFVCB0b19jYXBfdCgwKQoKI2RlZmluZSBDQVBfVE9fTUFTSyh4KSAoMSA8PCAoeCkp
CiNkZWZpbmUgY2FwX3JhaXNlKGMsIGZsYWcpIChjYXBfdChjKSB8PSBDQVBfVE9fTUFTSyhmbGFn
KSkKI2RlZmluZSBjYXBfbG93ZXIoYywgZmxhZykgKGNhcF90KGMpICY9IH5DQVBfVE9fTUFTSyhm
bGFnKSkKI2RlZmluZSBjYXBfcmFpc2VkKGMsIGZsYWcpIChjYXBfdChjKSAmIENBUF9UT19NQVNL
KGZsYWcpKQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2NvbWJpbmUoa2VybmVsX2Nh
cF90IGEsIGtlcm5lbF9jYXBfdCBiKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAgKGRl
c3QpID0gKGEpIHwgKGIpOwogICAgIHJldHVybiBkZXN0Owp9CgpzdGF0aWMgaW5saW5lIGtlcm5l
bF9jYXBfdCBjYXBfaW50ZXJzZWN0KGtlcm5lbF9jYXBfdCBhLCBrZXJuZWxfY2FwX3QgYikKewog
ICAgIGtlcm5lbF9jYXBfdCBkZXN0OwogICAgIChkZXN0KSA9IChhKSAmIChiKTsKICAgICByZXR1
cm4gZGVzdDsKfQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2Ryb3Aoa2VybmVsX2Nh
cF90IGEsIGtlcm5lbF9jYXBfdCBkcm9wKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAg
KGRlc3QpID0gKGEpICYgfihkcm9wKTsKICAgICByZXR1cm4gZGVzdDsKfQoKc3RhdGljIGlubGlu
ZSBrZXJuZWxfY2FwX3QgY2FwX2ludmVydChrZXJuZWxfY2FwX3QgYykKewogICAgIGtlcm5lbF9j
YXBfdCBkZXN0OwogICAgIChkZXN0KSA9IH4oYyk7CiAgICAgcmV0dXJuIGRlc3Q7Cn0KCiNkZWZp
bmUgY2FwX2lzY2xlYXIoYykgKCFjYXBfdChjKSkKI2RlZmluZSBjYXBfaXNzdWJzZXQoYSwgc2V0
KSAoIShjYXBfdChhKSAmIH5jYXBfdChzZXQpKSkKCiNkZWZpbmUgY2FwX2NsZWFyKGMpIGRvIHsg
Y2FwX3QoYykgPSAwOyB9IHdoaWxlKDApCiNkZWZpbmUgY2FwX3NldF9mdWxsKGMpIGRvIHsgY2Fw
X3QoYykgPSB+MDsgfSB3aGlsZSgwKQojZGVmaW5lIGNhcF9tYXNrKGMsIG1hc2spIGRvIHsgY2Fw
X3QoYykgJj0gY2FwX3QobWFzayk7IH0gd2hpbGUoMCkKCiNkZWZpbmUgY2FwX2lzX2ZzX2NhcChj
KSAoQ0FQX1RPX01BU0soYykgJiBDQVBfRlNfTUFTSykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaCIgMgoKCgoKCgojZGVmaW5lIE1BWF9BUkdfUEFHRVMg
MzIKCgojZGVmaW5lIEJJTlBSTV9CVUZfU0laRSAxMjgKCgoKCgoKc3RydWN0IGxpbnV4X2JpbnBy
bXsKICAgICAgICBjaGFyIGJ1ZlsxMjhdOwogICAgICAgIHN0cnVjdCBwYWdlICpwYWdlWzMyXTsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHA7CiAgICAgICAgaW50IHNoX2Jhbmc7CiAgICAgICAgc3Ry
dWN0IGZpbGUgKiBmaWxlOwogICAgICAgIGludCBlX3VpZCwgZV9naWQ7CiAgICAgICAga2VybmVs
X2NhcF90IGNhcF9pbmhlcml0YWJsZSwgY2FwX3Blcm1pdHRlZCwgY2FwX2VmZmVjdGl2ZTsKICAg
ICAgICBpbnQgYXJnYywgZW52YzsKICAgICAgICBjaGFyICogZmlsZW5hbWU7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBsb2FkZXIsIGV4ZWM7Cn07CgoKCgoKc3RydWN0IGxpbnV4X2JpbmZtdCB7CiAg
ICAgICAgc3RydWN0IGxpbnV4X2JpbmZtdCAqIG5leHQ7CiAgICAgICAgc3RydWN0IG1vZHVsZSAq
bW9kdWxlOwogICAgICAgIGludCAoKmxvYWRfYmluYXJ5KShzdHJ1Y3QgbGludXhfYmlucHJtICos
IHN0cnVjdCBwdF9yZWdzICogcmVncyk7CiAgICAgICAgaW50ICgqbG9hZF9zaGxpYikoc3RydWN0
IGZpbGUgKik7CiAgICAgICAgaW50ICgqY29yZV9kdW1wKShsb25nIHNpZ25yLCBzdHJ1Y3QgcHRf
cmVncyAqIHJlZ3MsIHN0cnVjdCBmaWxlICogZmlsZSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBt
aW5fY29yZWR1bXA7Cn07CgpleHRlcm4gaW50IHJlZ2lzdGVyX2JpbmZtdF9Sc21wXzhhMzI5Mzc4
KHN0cnVjdCBsaW51eF9iaW5mbXQgKik7CmV4dGVybiBpbnQgdW5yZWdpc3Rlcl9iaW5mbXRfUnNt
cF8yODMyMmNmMChzdHJ1Y3QgbGludXhfYmluZm10ICopOwoKZXh0ZXJuIGludCBwcmVwYXJlX2Jp
bnBybV9Sc21wXzZiZWQ3OWI5KHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVybiB2b2lkIHJl
bW92ZV9hcmdfemVyb19Sc21wXzMyMGFiNGVhKHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVy
biBpbnQgc2VhcmNoX2JpbmFyeV9oYW5kbGVyX1JzbXBfMjQ1YmZmODYoc3RydWN0IGxpbnV4X2Jp
bnBybSAqLHN0cnVjdCBwdF9yZWdzICopOwpleHRlcm4gaW50IGZsdXNoX29sZF9leGVjX1JzbXBf
NGU2NDA1YTgoc3RydWN0IGxpbnV4X2JpbnBybSAqIGJwcm0pOwpleHRlcm4gaW50IHNldHVwX2Fy
Z19wYWdlc19Sc21wX2RhYmJiZjZmKHN0cnVjdCBsaW51eF9iaW5wcm0gKiBicHJtKTsKZXh0ZXJu
IGludCBjb3B5X3N0cmluZ3MoaW50IGFyZ2MsY2hhciAqKiBhcmd2LHN0cnVjdCBsaW51eF9iaW5w
cm0gKmJwcm0pOwpleHRlcm4gaW50IGNvcHlfc3RyaW5nc19rZXJuZWxfUnNtcF8xNzkzODQzZShp
bnQgYXJnYyxjaGFyICoqIGFyZ3Ysc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSk7CmV4dGVybiB2
b2lkIGNvbXB1dGVfY3JlZHNfUnNtcF9kYjNkZTg3ZShzdHJ1Y3QgbGludXhfYmlucHJtICpiaW5w
cm0pOwpleHRlcm4gaW50IGRvX2NvcmVkdW1wKGxvbmcgc2lnbnIsIHN0cnVjdCBwdF9yZWdzICog
cmVncyk7CmV4dGVybiB2b2lkIHNldF9iaW5mbXRfUnNtcF81YjM4NjI1YyhzdHJ1Y3QgbGludXhf
YmluZm10ICpuZXcpOwojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nj
aGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3BlcnNvbmFs
aXR5LmgiIDEKCiNkZWZpbmUgX1BFUlNPTkFMSVRZX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3BlcnNvbmFsaXR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3B0cmFjZS5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9wZXJzb25hbGl0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vY3VycmVudC5oIiAxCiMgNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9wZXJzb25hbGl0eS5oIiAyCgoKI2RlZmluZSBTVElDS1lfVElNRU9VVFMgMHg0MDAwMDAwCiNk
ZWZpbmUgV0hPTEVfU0VDT05EUyAweDIwMDAwMDAKI2RlZmluZSBBRERSX0xJTUlUXzMyQklUIDB4
MDgwMDAwMAoKCgoKI2RlZmluZSBQRVJfTUFTSyAoMHgwMGZmKQojZGVmaW5lIFBFUl9MSU5VWCAo
MHgwMDAwKQojZGVmaW5lIFBFUl9MSU5VWF8zMkJJVCAoMHgwMDAwIHwgQUREUl9MSU1JVF8zMkJJ
VCkKI2RlZmluZSBQRVJfU1ZSNCAoMHgwMDAxIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBF
Ul9TVlIzICgweDAwMDIgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX1NDT1NWUjMgKDB4
MDAwMyB8IFNUSUNLWV9USU1FT1VUUyB8IFdIT0xFX1NFQ09ORFMpCiNkZWZpbmUgUEVSX1dZU0VW
Mzg2ICgweDAwMDQgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0lTQ1I0ICgweDAwMDUg
fCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0JTRCAoMHgwMDA2KQojZGVmaW5lIFBFUl9T
VU5PUyAoUEVSX0JTRCB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfWEVOSVggKDB4MDAw
NyB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfTElOVVgzMiAoMHgwMDA4KQojZGVmaW5l
IFBFUl9JUklYMzIgKDB4MDAwOSB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfSVJJWE4z
MiAoMHgwMDBhIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBFUl9JUklYNjQgKDB4MDAwYiB8
IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfUklTQ09TICgweDAwMGMpCiNkZWZpbmUgUEVS
X1NPTEFSSVMgKDB4MDAwZCB8IFNUSUNLWV9USU1FT1VUUykKCgp0eXBlZGVmIHZvaWQgKCpsY2Fs
bDdfZnVuYykoaW50LCBzdHJ1Y3QgcHRfcmVncyAqKTsKCgoKCgoKCnN0cnVjdCBleGVjX2RvbWFp
biB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBsY2FsbDdfZnVuYyBoYW5kbGVy
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGVyc19sb3csIHBlcnNfaGlnaDsKICAgICAgICB1bnNp
Z25lZCBsb25nICogc2lnbmFsX21hcDsKICAgICAgICB1bnNpZ25lZCBsb25nICogc2lnbmFsX2lu
dm1hcDsKICAgICAgICBzdHJ1Y3QgbW9kdWxlICogbW9kdWxlOwogICAgICAgIHN0cnVjdCBleGVj
X2RvbWFpbiAqbmV4dDsKfTsKCmV4dGVybiBzdHJ1Y3QgZXhlY19kb21haW4gZGVmYXVsdF9leGVj
X2RvbWFpbjsKCmV4dGVybiBpbnQgcmVnaXN0ZXJfZXhlY19kb21haW5fUnNtcF83MDFmMDI0Yihz
dHJ1Y3QgZXhlY19kb21haW4gKml0KTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWlu
X1JzbXBfNWY0MDZhNGEoc3RydWN0IGV4ZWNfZG9tYWluICppdCk7CiNkZWZpbmUgcHV0X2V4ZWNf
ZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVsZSkgX19NT0RfREVDX1VTRV9DT1VOVChpdC0+
bW9kdWxlKTsKCiNkZWZpbmUgZ2V0X2V4ZWNfZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVs
ZSkgX19NT0RfSU5DX1VTRV9DT1VOVChpdC0+bW9kdWxlKTsKCmV4dGVybiB2b2lkIF9fc2V0X3Bl
cnNvbmFsaXR5X1JzbXBfN2Q2NzhiNjkodW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eSk7CiNkZWZp
bmUgc2V0X3BlcnNvbmFsaXR5KHBlcnMpIGRvIHsgaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICE9
IHBlcnMpIF9fc2V0X3BlcnNvbmFsaXR5KHBlcnMpOyB9IHdoaWxlICgwKQoKCgogX19hdHRyaWJ1
dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfcGVyc29uYWxpdHkodW5zaWduZWQgbG9u
ZyBwZXJzb25hbGl0eSk7CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFk
cy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXMuaCIgMQoKI2RlZmluZSBfTElOVVhfVElNRVNfSAoK
c3RydWN0IHRtcyB7CiAgICAgICAgY2xvY2tfdCB0bXNfdXRpbWU7CiAgICAgICAgY2xvY2tfdCB0
bXNfc3RpbWU7CiAgICAgICAgY2xvY2tfdCB0bXNfY3V0aW1lOwogICAgICAgIGNsb2NrX3QgdG1z
X2NzdGltZTsKfTsKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hl
ZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAx
CiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmlu
ZSBfTElOVVhfVElNRVhfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9w
YXJhbS5oIiAxCiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXgu
aCIgMgojIDc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNk
ZWZpbmUgU0hJRlRfSFogMTAKIyA5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90aW1leC5oIgojZGVmaW5lIFNISUZUX0tHIDYKI2RlZmluZSBTSElGVF9LRiAxNgojZGVmaW5l
IFNISUZUX0tIIDIKI2RlZmluZSBNQVhUQyA2CiMgMTExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNkZWZpbmUgU0hJRlRfU0NBTEUgMjIKI2RlZmluZSBTSElG
VF9VUERBVEUgKFNISUZUX0tHICsgTUFYVEMpCiNkZWZpbmUgU0hJRlRfVVNFQyAxNgojZGVmaW5l
IEZJTkVVU0VDICgxTCA8PCBTSElGVF9TQ0FMRSkKCiNkZWZpbmUgTUFYUEhBU0UgNTEyMDAwTAoj
ZGVmaW5lIE1BWEZSRVEgKDUxMkwgPDwgU0hJRlRfVVNFQykKI2RlZmluZSBNQVhUSU1FICgyMDBM
IDw8IFBQU19BVkcpCiNkZWZpbmUgTUlOU0VDIDE2TAojZGVmaW5lIE1BWFNFQyAxMjAwTAojZGVm
aW5lIE5UUF9QSEFTRV9MSU1JVCAoTUFYUEhBU0UgPDwgNSkKIyAxNDMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmluZSBQUFNfQVZHIDIKI2RlZmluZSBQ
UFNfU0hJRlQgMgojZGVmaW5lIFBQU19TSElGVE1BWCA4CiNkZWZpbmUgUFBTX1ZBTElEIDEyMAoj
ZGVmaW5lIE1BWEdMSVRDSCAzMAoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2FzbS90aW1leC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9USU1FWF9ICiMgMTMgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3RpbWV4LmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBj
eWNsZXNfdDsKCnN0YXRpYyBpbmxpbmUgY3ljbGVzX3QKZ2V0X2N5Y2xlcyAodm9pZCkKewogICAg
ICAgIGN5Y2xlc190IHJldDsKCiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgJTA9
YXIuaXRjIiA6ICI9ciIocmV0KSk7CiAgICAgICAgcmV0dXJuIHJldDsKfQojIDE1MyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAyCgoKI2RlZmluZSBMQVRDSCAo
KENMT0NLX1RJQ0tfUkFURSArIEhaLzIpIC8gSFopCgoKCgoKc3RydWN0IHRpbWV4IHsKICAgICAg
ICB1bnNpZ25lZCBpbnQgbW9kZXM7CiAgICAgICAgbG9uZyBvZmZzZXQ7CiAgICAgICAgbG9uZyBm
cmVxOwogICAgICAgIGxvbmcgbWF4ZXJyb3I7CiAgICAgICAgbG9uZyBlc3RlcnJvcjsKICAgICAg
ICBpbnQgc3RhdHVzOwogICAgICAgIGxvbmcgY29uc3RhbnQ7CiAgICAgICAgbG9uZyBwcmVjaXNp
b247CiAgICAgICAgbG9uZyB0b2xlcmFuY2U7CgoKICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1l
OwogICAgICAgIGxvbmcgdGljazsKCiAgICAgICAgbG9uZyBwcHNmcmVxOwogICAgICAgIGxvbmcg
aml0dGVyOwogICAgICAgIGludCBzaGlmdDsKICAgICAgICBsb25nIHN0YWJpbDsKICAgICAgICBs
b25nIGppdGNudDsKICAgICAgICBsb25nIGNhbGNudDsKICAgICAgICBsb25nIGVycmNudDsKICAg
ICAgICBsb25nIHN0YmNudDsKCiAgICAgICAgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsgaW50
IDozMjsKICAgICAgICBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwogICAgICAg
IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7Cn07CgoKCgojZGVmaW5lIEFESl9P
RkZTRVQgMHgwMDAxCiNkZWZpbmUgQURKX0ZSRVFVRU5DWSAweDAwMDIKI2RlZmluZSBBREpfTUFY
RVJST1IgMHgwMDA0CiNkZWZpbmUgQURKX0VTVEVSUk9SIDB4MDAwOAojZGVmaW5lIEFESl9TVEFU
VVMgMHgwMDEwCiNkZWZpbmUgQURKX1RJTUVDT05TVCAweDAwMjAKI2RlZmluZSBBREpfVElDSyAw
eDQwMDAKI2RlZmluZSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QgMHg4MDAxCgoKI2RlZmluZSBNT0Rf
T0ZGU0VUIEFESl9PRkZTRVQKI2RlZmluZSBNT0RfRlJFUVVFTkNZIEFESl9GUkVRVUVOQ1kKI2Rl
ZmluZSBNT0RfTUFYRVJST1IgQURKX01BWEVSUk9SCiNkZWZpbmUgTU9EX0VTVEVSUk9SIEFESl9F
U1RFUlJPUgojZGVmaW5lIE1PRF9TVEFUVVMgQURKX1NUQVRVUwojZGVmaW5lIE1PRF9USU1FQ09O
U1QgQURKX1RJTUVDT05TVAojZGVmaW5lIE1PRF9DTEtCIEFESl9USUNLCiNkZWZpbmUgTU9EX0NM
S0EgQURKX09GRlNFVF9TSU5HTEVTSE9UCgoKCgoKI2RlZmluZSBTVEFfUExMIDB4MDAwMQojZGVm
aW5lIFNUQV9QUFNGUkVRIDB4MDAwMgojZGVmaW5lIFNUQV9QUFNUSU1FIDB4MDAwNAojZGVmaW5l
IFNUQV9GTEwgMHgwMDA4CgojZGVmaW5lIFNUQV9JTlMgMHgwMDEwCiNkZWZpbmUgU1RBX0RFTCAw
eDAwMjAKI2RlZmluZSBTVEFfVU5TWU5DIDB4MDA0MAojZGVmaW5lIFNUQV9GUkVRSE9MRCAweDAw
ODAKCiNkZWZpbmUgU1RBX1BQU1NJR05BTCAweDAxMDAKI2RlZmluZSBTVEFfUFBTSklUVEVSIDB4
MDIwMAojZGVmaW5lIFNUQV9QUFNXQU5ERVIgMHgwNDAwCiNkZWZpbmUgU1RBX1BQU0VSUk9SIDB4
MDgwMAoKI2RlZmluZSBTVEFfQ0xPQ0tFUlIgMHgxMDAwCgojZGVmaW5lIFNUQV9ST05MWSAoU1RB
X1BQU1NJR05BTCB8IFNUQV9QUFNKSVRURVIgfCBTVEFfUFBTV0FOREVSIHwgU1RBX1BQU0VSUk9S
IHwgU1RBX0NMT0NLRVJSKQoKCgoKCiNkZWZpbmUgVElNRV9PSyAwCiNkZWZpbmUgVElNRV9JTlMg
MQojZGVmaW5lIFRJTUVfREVMIDIKI2RlZmluZSBUSU1FX09PUCAzCiNkZWZpbmUgVElNRV9XQUlU
IDQKI2RlZmluZSBUSU1FX0VSUk9SIDUKI2RlZmluZSBUSU1FX0JBRCBUSU1FX0VSUk9SCgoKCgoK
CgpleHRlcm4gbG9uZyB0aWNrOwpleHRlcm4gaW50IHRpY2thZGo7CgoKCgpleHRlcm4gaW50IHRp
bWVfc3RhdGU7CmV4dGVybiBpbnQgdGltZV9zdGF0dXM7CmV4dGVybiBsb25nIHRpbWVfb2Zmc2V0
OwpleHRlcm4gbG9uZyB0aW1lX2NvbnN0YW50OwpleHRlcm4gbG9uZyB0aW1lX3RvbGVyYW5jZTsK
ZXh0ZXJuIGxvbmcgdGltZV9wcmVjaXNpb247CmV4dGVybiBsb25nIHRpbWVfbWF4ZXJyb3I7CmV4
dGVybiBsb25nIHRpbWVfZXN0ZXJyb3I7CgpleHRlcm4gbG9uZyB0aW1lX3BoYXNlOwpleHRlcm4g
bG9uZyB0aW1lX2ZyZXE7CmV4dGVybiBsb25nIHRpbWVfYWRqOwpleHRlcm4gbG9uZyB0aW1lX3Jl
ZnRpbWU7CgpleHRlcm4gbG9uZyB0aW1lX2FkanVzdDsKCgpleHRlcm4gbG9uZyBwcHNfb2Zmc2V0
OwpleHRlcm4gbG9uZyBwcHNfaml0dGVyOwpleHRlcm4gbG9uZyBwcHNfZnJlcTsKZXh0ZXJuIGxv
bmcgcHBzX3N0YWJpbDsKZXh0ZXJuIGxvbmcgcHBzX3ZhbGlkOwoKCmV4dGVybiBpbnQgcHBzX3No
aWZ0OwpleHRlcm4gbG9uZyBwcHNfaml0Y250OwpleHRlcm4gbG9uZyBwcHNfY2FsY250OwpleHRl
cm4gbG9uZyBwcHNfZXJyY250OwpleHRlcm4gbG9uZyBwcHNfc3RiY250OwojIDE2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vc2VtYXBob3JlLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
cGFnZS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAxCiMg
MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdS5oIiAxCgojZGVmaW5lIF9fTU1VX0gK
Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbW1fY29udGV4dF90OwojIDIyICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zbXAuaCIgMQoKI2RlZmluZSBfX0xJTlVYX1NNUF9ICgoKCgoKCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEwICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCgoKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc21wLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vc21wLmgiCiNkZWZpbmUgX0FTTV9JQTY0X1NNUF9ICgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc21wLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2luaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfSU5JVF9ICgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2luaXQuaCIgMgojIDExNiAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9pbml0LmgiCiNkZWZpbmUgX19pbml0CiNkZWZpbmUgX19leGl0CiNk
ZWZpbmUgX19pbml0ZGF0YQojZGVmaW5lIF9fZXhpdGRhdGEKI2RlZmluZSBfX2luaXRjYWxsKGZu
KQoKI2RlZmluZSBfX0lOSVQKI2RlZmluZSBfX0ZJTklUCiNkZWZpbmUgX19JTklUREFUQQoKCgoK
Cgp0eXBlZGVmIGludCAoKl9faW5pdF9tb2R1bGVfZnVuY190KSh2b2lkKTsKdHlwZWRlZiB2b2lk
ICgqX19jbGVhbnVwX21vZHVsZV9mdW5jX3QpKHZvaWQpOwojZGVmaW5lIG1vZHVsZV9pbml0KHgp
IGludCBpbml0X21vZHVsZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJu
IGlubGluZSBfX2luaXRfbW9kdWxlX2Z1bmNfdCBfX2luaXRfbW9kdWxlX2lubGluZSh2b2lkKSB7
IHJldHVybiB4OyB9CgoKCiNkZWZpbmUgbW9kdWxlX2V4aXQoeCkgdm9pZCBjbGVhbnVwX21vZHVs
ZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJuIGlubGluZSBfX2NsZWFu
dXBfbW9kdWxlX2Z1bmNfdCBfX2NsZWFudXBfbW9kdWxlX2lubGluZSh2b2lkKSB7IHJldHVybiB4
OyB9CgoKCgojZGVmaW5lIF9fc2V0dXAoc3RyLCBmdW5jKQoKCgoKI2RlZmluZSBfX2RldmluaXQK
I2RlZmluZSBfX2RldmluaXRkYXRhCiNkZWZpbmUgX19kZXZleGl0CiNkZWZpbmUgX19kZXZleGl0
ZGF0YQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAxCiMgMTggIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9pby5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT19ICiMgMjMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCiNkZWZpbmUgX19TTE9XX0RPV05fSU8gZG8geyB9
IHdoaWxlICgwKQojZGVmaW5lIFNMT1dfRE9XTl9JTyBkbyB7IH0gd2hpbGUgKDApCgojZGVmaW5l
IF9fSUE2NF9VTkNBQ0hFRF9PRkZTRVQgMHhjMDAwMDAwMDAwMDAwMDAwCgojZGVmaW5lIElPX1NQ
QUNFX0xJTUlUIDB4ZmZmZgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L21hY2h2ZWMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tYWNo
dmVjLmgiCiNkZWZpbmUgX0FTTV9JQTY0X01BQ0hWRUNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9tYWNodmVjLmgiIDIKCgpzdHJ1Y3QgcGNpX2RldjsKc3RydWN0IHB0X3JlZ3M7CnN0cnVjdCBz
Y2F0dGVybGlzdDsKc3RydWN0IGlycV9kZXNjOwoKdHlwZWRlZiB2b2lkIGlhNjRfbXZfc2V0dXBf
dCAoY2hhciAqKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2lycV9pbml0X3QgKHZvaWQpOwp0eXBl
ZGVmIHZvaWQgaWE2NF9tdl9wY2lfZml4dXBfdCAoaW50KTsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGlhNjRfbXZfbWFwX25yX3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9t
Y2FfaW5pdF90ICh2b2lkKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAodm9p
ZCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X2NtY2lfaGFuZGxlcl90IChpbnQsIHZvaWQgKiwgc3Ry
dWN0IHB0X3JlZ3MgKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2xvZ19wcmludF90ICh2b2lkKTsK
dHlwZWRlZiB2b2lkIGlhNjRfbXZfc2VuZF9pcGlfdCAoaW50LCBpbnQsIGludCwgaW50KTsKdHlw
ZWRlZiBzdHJ1Y3QgaXJxX2Rlc2MgKmlhNjRfbXZfaXJxX2Rlc2MgKHVuc2lnbmVkIGludCk7CnR5
cGVkZWYgdTggaWE2NF9tdl9pcnFfdG9fdmVjdG9yICh1OCk7CnR5cGVkZWYgdW5zaWduZWQgaW50
IGlhNjRfbXZfbG9jYWxfdmVjdG9yX3RvX2lycSAodTggdmVjdG9yKTsKCgp0eXBlZGVmIHZvaWQg
aWE2NF9tdl9wY2lfZG1hX2luaXQgKHZvaWQpOwp0eXBlZGVmIHZvaWQgKmlhNjRfbXZfcGNpX2Fs
bG9jX2NvbnNpc3RlbnQgKHN0cnVjdCBwY2lfZGV2ICosIHNpemVfdCwgZG1hX2FkZHJfdCAqKTsK
dHlwZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2ZyZWVfY29uc2lzdGVudCAoc3RydWN0IHBjaV9kZXYg
Kiwgc2l6ZV90LCB2b2lkICosIGRtYV9hZGRyX3QpOwp0eXBlZGVmIGRtYV9hZGRyX3QgaWE2NF9t
dl9wY2lfbWFwX3NpbmdsZSAoc3RydWN0IHBjaV9kZXYgKiwgdm9pZCAqLCBzaXplX3QsIGludCk7
CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV91bm1hcF9zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICos
IGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlwZWRlZiBpbnQgaWE2NF9tdl9wY2lfbWFwX3Nn
IChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBl
ZGVmIHZvaWQgaWE2NF9tdl9wY2lfdW5tYXBfc2cgKHN0cnVjdCBwY2lfZGV2ICosIHN0cnVjdCBz
Y2F0dGVybGlzdCAqLCBpbnQsIGludCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV9kbWFfc3lu
Y19zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICosIGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlw
ZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3NnIChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1
Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaWE2NF9t
dl9wY2lfZG1hX2FkZHJlc3MgKHN0cnVjdCBzY2F0dGVybGlzdCAqKTsKIyA1NSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgp0eXBlZGVmIHVuc2lnbmVkIGludCBp
YTY0X212X2luYl90ICh1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgaWE2NF9t
dl9pbndfdCAodW5zaWduZWQgbG9uZyk7CnR5cGVkZWYgdW5zaWduZWQgaW50IGlhNjRfbXZfaW5s
X3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXRiX3QgKHVuc2lnbmVk
IGNoYXIsIHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXR3X3QgKHVuc2ln
bmVkIHNob3J0LCB1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfb3V0bF90ICh1
bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgbWFjaHZlY19ub29wICh2
b2lkKTsKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlY19k
aWcuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfTUFDSFZFQ19ESUdfaAoKZXh0ZXJuIGlhNjRfbXZf
c2V0dXBfdCBkaWdfc2V0dXA7CmV4dGVybiBpYTY0X212X2lycV9pbml0X3QgZGlnX2lycV9pbml0
OwpleHRlcm4gaWE2NF9tdl9wY2lfZml4dXBfdCBpb3NhcGljX3BjaV9maXh1cDsKZXh0ZXJuIGlh
NjRfbXZfbWFwX25yX3QgbWFwX25yX2RlbnNlOwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9tYWNodmVjX2RpZy5oIgojZGVmaW5lIHBsYXRmb3JtX25hbWUgImRpZyIKI2Rl
ZmluZSBwbGF0Zm9ybV9zZXR1cCBkaWdfc2V0dXAKI2RlZmluZSBwbGF0Zm9ybV9pcnFfaW5pdCBk
aWdfaXJxX2luaXQKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZml4dXAgaW9zYXBpY19wY2lfZml4dXAK
I2RlZmluZSBwbGF0Zm9ybV9tYXBfbnIgbWFwX25yX2RlbnNlCiMgNjggIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDE4MSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgpleHRlcm4gaWE2NF9tdl9wY2lfZG1hX2luaXQgc3dp
b3RsYl9pbml0X1JzbXBfY2NkNzE4OTA7CmV4dGVybiBpYTY0X212X3BjaV9hbGxvY19jb25zaXN0
ZW50IHN3aW90bGJfYWxsb2NfY29uc2lzdGVudF9Sc21wXzAxZjZkMDYxOwpleHRlcm4gaWE2NF9t
dl9wY2lfZnJlZV9jb25zaXN0ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50X1JzbXBfYzkwNWVm
Mzk7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2luZ2xlIHN3aW90bGJfbWFwX3NpbmdsZV9Sc21w
XzYwOTU1MDJkOwpleHRlcm4gaWE2NF9tdl9wY2lfdW5tYXBfc2luZ2xlIHN3aW90bGJfdW5tYXBf
c2luZ2xlX1JzbXBfZTYwMzUxYTM7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2cgc3dpb3RsYl9t
YXBfc2dfUnNtcF9iYTEzMjA0MjsKZXh0ZXJuIGlhNjRfbXZfcGNpX3VubWFwX3NnIHN3aW90bGJf
dW5tYXBfc2dfUnNtcF8wOTUyZmZjNTsKZXh0ZXJuIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3Npbmds
ZSBzd2lvdGxiX3N5bmNfc2luZ2xlX1JzbXBfNzkyYzMxMWY7CmV4dGVybiBpYTY0X212X3BjaV9k
bWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2dfUnNtcF83MzNjNzM4MzsKZXh0ZXJuIGlhNjRfbXZf
cGNpX2RtYV9hZGRyZXNzIHN3aW90bGJfZG1hX2FkZHJlc3NfUnNtcF9kMzk1MzFlZjsKIyAyMDMg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIKI2RlZmluZSBwbGF0
Zm9ybV9tY2FfaW5pdCAoKGlhNjRfbXZfbWNhX2luaXRfdCAqKSBtYWNodmVjX25vb3ApCgoKI2Rl
ZmluZSBwbGF0Zm9ybV9tY2FfaGFuZGxlciAoKGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAqKSBtYWNo
dmVjX25vb3ApCgoKI2RlZmluZSBwbGF0Zm9ybV9jbWNpX2hhbmRsZXIgKChpYTY0X212X2NtY2lf
aGFuZGxlcl90ICopIG1hY2h2ZWNfbm9vcCkKCgojZGVmaW5lIHBsYXRmb3JtX2xvZ19wcmludCAo
KGlhNjRfbXZfbG9nX3ByaW50X3QgKikgbWFjaHZlY19ub29wKQoKCgoKCiNkZWZpbmUgcGxhdGZv
cm1fc2VuZF9pcGkgaWE2NF9zZW5kX2lwaQoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2RtYV9pbml0
IHN3aW90bGJfaW5pdAoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2FsbG9jX2NvbnNpc3RlbnQgc3dp
b3RsYl9hbGxvY19jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZnJlZV9jb25zaXN0
ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfbWFwX3Np
bmdsZSBzd2lvdGxiX21hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zaW5n
bGUgc3dpb3RsYl91bm1hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9tYXBfc2cgc3dp
b3RsYl9tYXBfc2cKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zZyBzd2lvdGxiX3VubWFw
X3NnCgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZG1hX3N5bmNfc2luZ2xlIHN3aW90bGJfc3luY19z
aW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2cK
CgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfYWRkcmVzcyBzd2lvdGxiX2RtYV9hZGRyZXNzCgoK
I2RlZmluZSBwbGF0Zm9ybV9pcnFfZGVzYyBfX2lhNjRfaXJxX2Rlc2MKCgojZGVmaW5lIHBsYXRm
b3JtX2lycV90b192ZWN0b3IgX19pYTY0X2lycV90b192ZWN0b3IKCgojZGVmaW5lIHBsYXRmb3Jt
X2xvY2FsX3ZlY3Rvcl90b19pcnEgX19pYTY0X2xvY2FsX3ZlY3Rvcl90b19pcnEKCgojZGVmaW5l
IHBsYXRmb3JtX2luYiBfX2lhNjRfaW5iCgoKI2RlZmluZSBwbGF0Zm9ybV9pbncgX19pYTY0X2lu
dwoKCiNkZWZpbmUgcGxhdGZvcm1faW5sIF9faWE2NF9pbmwKCgojZGVmaW5lIHBsYXRmb3JtX291
dGIgX19pYTY0X291dGIKCgojZGVmaW5lIHBsYXRmb3JtX291dHcgX19pYTY0X291dHcKCgojZGVm
aW5lIHBsYXRmb3JtX291dGwgX19pYTY0X291dGwKIyAzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vaW8uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhZ2UuaCIgMQojIDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pby5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAzNSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vaW8uaCIgMgoKCgoKc3RhdGljIGlubGlu
ZSB1bnNpZ25lZCBsb25nCnZpcnRfdG9fcGh5cyAodm9sYXRpbGUgdm9pZCAqYWRkcmVzcykKewog
ICAgICAgIHJldHVybiAodW5zaWduZWQgbG9uZykgYWRkcmVzcyAtIDB4ZTAwMDAwMDAwMDAwMDAw
MDsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpwaHlzX3RvX3ZpcnQodW5zaWduZWQgbG9uZyBhZGRy
ZXNzKQp7CiAgICAgICAgcmV0dXJuICh2b2lkICopIChhZGRyZXNzICsgMHhlMDAwMDAwMDAwMDAw
MDAwKTsKfQoKCgoKCiNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiNkZWZpbmUgdmly
dF90b19idXMgdmlydF90b19waHlzCgoKCgoKCgojZGVmaW5lIF9faWE2NF9tZl9hKCkgX19hc21f
XyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpCgpzdGF0aWMgaW5saW5lIGNvbnN0
IHVuc2lnbmVkIGxvbmcKX19pYTY0X2dldF9pb19wb3J0X2Jhc2UgKHZvaWQpCnsKICAgICAgICBl
eHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X2lvYmFzZV9Sc21wXzA4ZTZiMDA3OwoKICAgICAgICBy
ZXR1cm4gaWE2NF9pb2Jhc2VfUnNtcF8wOGU2YjAwNzsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpf
X2lhNjRfbWtfaW9fYWRkciAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyBpb19iYXNlID0gX19pYTY0X2dldF9pb19wb3J0X2Jhc2UoKTsKICAgICAgICB1
bnNpZ25lZCBsb25nIGFkZHI7CgogICAgICAgIGFkZHIgPSBpb19iYXNlIHwgKChwb3J0ID4+IDIp
IDw8IDEyKSB8IChwb3J0ICYgMHhmZmYpOwogICAgICAgIHJldHVybiAodm9pZCAqKSBhZGRyOwp9
CiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCnN0YXRpYyBpbmxp
bmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbmIgKHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAg
IHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAg
X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVy
biByZXQ7Cn0KCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbncgKHVuc2lnbmVk
IGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICphZGRyID0gX19p
YTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcmV0OwoKICAgICAg
ICByZXQgPSAqYWRkcjsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAi
bWVtb3J5Iik7CiAgICAgICAgcmV0dXJuIHJldDsKfQoKc3RhdGljIGlubGluZSB1bnNpZ25lZCBp
bnQKX19pYTY0X2lubCAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgdm9sYXRpbGUgdW5z
aWduZWQgaW50ICphZGRyID0gX19pYTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZApfX2lhNjRfb3V0YiAodW5zaWduZWQgY2hhciB2YWwsIHVuc2lnbmVkIGxv
bmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRf
bWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBf
X3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQK
X19pYTY0X291dHcgKHVuc2lnbmVkIHNob3J0IHZhbCwgdW5zaWduZWQgbG9uZyBwb3J0KQp7CiAg
ICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihw
b3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18g
KCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pYTY0X291dGwg
KHVuc2lnbmVkIGludCB2YWwsIHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxl
IHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAq
YWRkciA9IHZhbDsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVt
b3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX2luc2IgKHVuc2lnbmVkIGxvbmcgcG9ydCwg
dm9pZCAqZHN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQp7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
ZHAgPSBkc3Q7CgogICAgICAgIGlmIChfX2lhNjRfaW5iID09IF9faWE2NF9pbmIpIHsKICAgICAg
ICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRk
cihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6
OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh
dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqZHArKyA9IF9faWE2
NF9pbmIocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pbnN3
ICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkKewog
ICAgICAgIHVuc2lnbmVkIHNob3J0ICpkcCA9IGRzdDsKCiAgICAgICAgaWYgKF9faWE2NF9pbncg
PT0gX19pYTY0X2ludykgewogICAgICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQg
KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGls
ZSAoY291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAg
ICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAg
ICAgICAgICAgICAqZHArKyA9IF9faWE2NF9pbncocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9Cgpz
dGF0aWMgaW5saW5lIHZvaWQKX19pbnNsICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwg
dW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAgIHVuc2lnbmVkIGludCAqZHAgPSBkc3Q7Cgog
ICAgICAgIGlmIChfX2lhNjRfaW5sID09IF9faWE2NF9pbmwpIHsKICAgICAgICAgICAgICAgIHZv
bGF0aWxlIHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAg
ICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsK
ICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAq
ZHArKyA9ICphZGRyOwogICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5h
IiA6OjogIm1lbW9yeSIpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNv
dW50LS0pCiAgICAgICAgICAgICAgICAgICAgICAgICpkcCsrID0gX19pYTY0X2lubChwb3J0KTsK
ICAgICAgICByZXR1cm47Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX291dHNiICh1bnNpZ25lZCBs
b25nIHBvcnQsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAg
IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0X291dGIg
PT0gX19pYTY0X291dGIpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIg
KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAo
Y291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAg
ICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAg
ICAgICAgICBfX2lhNjRfb3V0Yigqc3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKX19vdXRzdyAodW5zaWduZWQgbG9uZyBwb3J0LCBjb25zdCB2b2lkICpz
cmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsKICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAq
c3AgPSBzcmM7CgogICAgICAgIGlmIChfX2lhNjRfb3V0dyA9PSBfX2lhNjRfb3V0dykgewogICAg
ICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9f
YWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh
dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICBfX2lhNjRfb3V0dygq
c3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19vdXRz
bCAodW5zaWduZWQgbG9uZyBwb3J0LCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsK
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0
X291dGwgPT0gX19pYTY0X291dGwpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVk
IGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAgICAgICAgIHdo
aWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqYWRkciA9ICpzcCsrOwogICAg
ICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwog
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50LS0pCiAgICAgICAgICAg
ICAgICAgICAgICAgIF9faWE2NF9vdXRsKCpzcCsrLCBwb3J0KTsKICAgICAgICByZXR1cm47Cn0K
CgoKCgoKI2RlZmluZSBfX2luYiBwbGF0Zm9ybV9pbmIKI2RlZmluZSBfX2ludyBwbGF0Zm9ybV9p
bncKI2RlZmluZSBfX2lubCBwbGF0Zm9ybV9pbmwKI2RlZmluZSBfX291dGIgcGxhdGZvcm1fb3V0
YgojZGVmaW5lIF9fb3V0dyBwbGF0Zm9ybV9vdXR3CiNkZWZpbmUgX19vdXRsIHBsYXRmb3JtX291
dGwKCiNkZWZpbmUgaW5iIF9faW5iCiNkZWZpbmUgaW53IF9faW53CiNkZWZpbmUgaW5sIF9faW5s
CiNkZWZpbmUgaW5zYiBfX2luc2IKI2RlZmluZSBpbnN3IF9faW5zdwojZGVmaW5lIGluc2wgX19p
bnNsCiNkZWZpbmUgb3V0YiBfX291dGIKI2RlZmluZSBvdXR3IF9fb3V0dwojZGVmaW5lIG91dGwg
X19vdXRsCiNkZWZpbmUgb3V0c2IgX19vdXRzYgojZGVmaW5lIG91dHN3IF9fb3V0c3cKI2RlZmlu
ZSBvdXRzbCBfX291dHNsCgoKCgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIKX19yZWFkYiAo
dm9pZCAqYWRkcikKewogICAgICAgIHJldHVybiAqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilh
ZGRyOwp9CgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0Cl9fcmVhZHcgKHZvaWQgKmFkZHIp
CnsKICAgICAgICByZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKWFkZHI7Cn0KCnN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9fcmVhZGwgKHZvaWQgKmFkZHIpCnsKICAgICAgICBy
ZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgYWRkcjsKfQoKc3RhdGljIGlubGluZSB1
bnNpZ25lZCBsb25nCl9fcmVhZHEgKHZvaWQgKmFkZHIpCnsKICAgICAgICByZXR1cm4gKih2b2xh
dGlsZSB1bnNpZ25lZCBsb25nICopIGFkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl
YiAodW5zaWduZWQgY2hhciB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu
c2lnbmVkIGNoYXIgKikgYWRkciA9IHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCl9fd3JpdGV3
ICh1bnNpZ25lZCBzaG9ydCB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu
c2lnbmVkIHNob3J0ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl
bCAodW5zaWduZWQgaW50IHZhbCwgdm9pZCAqYWRkcikKewogICAgICAgICoodm9sYXRpbGUgdW5z
aWduZWQgaW50ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRlcSAo
dW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVuc2ln
bmVkIGxvbmcgKikgYWRkciA9IHZhbDsKfQoKI2RlZmluZSByZWFkYihhKSBfX3JlYWRiKCh2b2lk
ICopKGEpKQojZGVmaW5lIHJlYWR3KGEpIF9fcmVhZHcoKHZvaWQgKikoYSkpCiNkZWZpbmUgcmVh
ZGwoYSkgX19yZWFkbCgodm9pZCAqKShhKSkKI2RlZmluZSByZWFkcShhKSBfX3JlYWRxKCh2b2lk
ICopKGEpKQojZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCiNkZWZpbmUgX19yYXdfcmVhZHcgcmVh
ZHcKI2RlZmluZSBfX3Jhd19yZWFkbCByZWFkbAojZGVmaW5lIF9fcmF3X3JlYWRxIHJlYWRxCiNk
ZWZpbmUgd3JpdGViKHYsIGEpIF9fd3JpdGViKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIHdy
aXRldyh2LCBhKSBfX3dyaXRldygodiksICh2b2lkICopIChhKSkKI2RlZmluZSB3cml0ZWwodiwg
YSkgX193cml0ZWwoKHYpLCAodm9pZCAqKSAoYSkpCiNkZWZpbmUgd3JpdGVxKHYsIGEpIF9fd3Jp
dGVxKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIF9fcmF3X3dyaXRlYiB3cml0ZWIKI2RlZmlu
ZSBfX3Jhd193cml0ZXcgd3JpdGV3CiNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAojZGVmaW5l
IF9fcmF3X3dyaXRlcSB3cml0ZXEKCgojZGVmaW5lIGluYl9wIGluYgoKCiNkZWZpbmUgaW53X3Ag
aW53CgoKI2RlZmluZSBpbmxfcCBpbmwKCgoKI2RlZmluZSBvdXRiX3Agb3V0YgoKCiNkZWZpbmUg
b3V0d19wIG91dHcKCgojZGVmaW5lIG91dGxfcCBvdXRsCiMgMzc2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9pby5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKgppb3JlbWFwICh1bnNp
Z25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgcmV0dXJuICh2
b2lkICopICgweGMwMDAwMDAwMDAwMDAwMDAgfCAob2Zmc2V0KSk7Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZAppb3VubWFwICh2b2lkICphZGRyKQp7Cn0KCiNkZWZpbmUgaW9yZW1hcF9ub2NhY2hlKG8s
IHMpIGlvcmVtYXAobyxzKQoKCgoKCgpleHRlcm4gdm9pZCBfX2lhNjRfbWVtY3B5X2Zyb21pb19S
c21wX2FjNGY1YTNjICh2b2lkICosIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwpleHRlcm4gdm9pZCBf
X2lhNjRfbWVtY3B5X3RvaW9fUnNtcF82NGUwODBkYyAodW5zaWduZWQgbG9uZywgdm9pZCAqLCBs
b25nKTsKZXh0ZXJuIHZvaWQgX19pYTY0X21lbXNldF9jX2lvX1JzbXBfYmZmNzBjODggKHVuc2ln
bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwoKI2RlZmluZSBtZW1jcHlfZnJvbWlvKHRv
LCBmcm9tLCBsZW4pIF9faWE2NF9tZW1jcHlfZnJvbWlvKCh0byksKHVuc2lnbmVkIGxvbmcpKGZy
b20pLChsZW4pKQoKI2RlZmluZSBtZW1jcHlfdG9pbyh0bywgZnJvbSwgbGVuKSBfX2lhNjRfbWVt
Y3B5X3RvaW8oKHVuc2lnbmVkIGxvbmcpKHRvKSwoZnJvbSksKGxlbikpCgojZGVmaW5lIG1lbXNl
dF9pbyhhZGRyLCBjLCBsZW4pIF9faWE2NF9tZW1zZXRfY19pbygodW5zaWduZWQgbG9uZykoYWRk
ciksMHgwMTAxMDEwMTAxMDEwMTAxVUwqKHU4KShjKSwobGVuKSkKIyAyMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc21wLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zbXAuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0
cmFjZS5oIiAxCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAy
CgojZGVmaW5lIFhUUF9PRkZTRVQgMHgxZTAwMDgKCiNkZWZpbmUgU01QX0lSUV9SRURJUkVDVElP
TiAoMSA8PCAwKQojZGVmaW5lIFNNUF9JUElfUkVESVJFQ1RJT04gKDEgPDwgMSkKCiNkZWZpbmUg
c21wX3Byb2Nlc3Nvcl9pZCgpIChjdXJyZW50LT5wcm9jZXNzb3IpCgpleHRlcm4gc3RydWN0IHNt
cF9ib290X2RhdGEgewogICAgICAgIGludCBjcHVfY291bnQ7CiAgICAgICAgaW50IGNwdV9waHlz
X2lkWzMyXTsKfSBzbXBfYm9vdF9kYXRhIDsKCmV4dGVybiBjaGFyIG5vX2ludF9yb3V0aW5nIDsK
CmV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGNwdV9vbmxpbmVfbWFwX1JzbXBfNTcxYjZh
ODk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGlwaV9iYXNlX2FkZHI7CmV4dGVybiB1bnNpZ25lZCBj
aGFyIHNtcF9pbnRfcmVkaXJlY3Q7CmV4dGVybiBpbnQgc21wX251bV9jcHVzX1JzbXBfM2I4NjMz
NGQ7CgpleHRlcm4gdm9sYXRpbGUgaW50IGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1
ZltdOwojZGVmaW5lIGNwdV9waHlzaWNhbF9pZChpKSBpYTY0X2NwdV90b19zYXBpY2lkW2ldCiNk
ZWZpbmUgY3B1X251bWJlcl9tYXAoaSkgKGkpCiNkZWZpbmUgY3B1X2xvZ2ljYWxfbWFwKGkpIChp
KQoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYXBfd2FrZXVwX3ZlY3RvcjsKCgoKCgpzdGF0aWMgaW5s
aW5lIGludApjcHVfbG9naWNhbF9pZCAoaW50IGNwdWlkKQp7CiAgICAgICAgaW50IGk7CgogICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzbXBfbnVtX2NwdXNfUnNtcF8zYjg2MzM0ZDsgKytpKQogICAg
ICAgICAgICAgICAgaWYgKGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1ZltpXSA9PSAo
X191MzIpIGNwdWlkKQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICByZXR1
cm4gaTsKfQojIDcyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIKc3Rh
dGljIGlubGluZSB2b2lkCm1pbl94dHAgKHZvaWQpCnsKICAgICAgICBpZiAoc21wX2ludF9yZWRp
cmVjdCAmICgxIDw8IDApKQogICAgICAgICAgICAgICAgX193cml0ZWIoKDB4MDApLCAodm9pZCAq
KSAoaXBpX2Jhc2VfYWRkciB8IDB4MWUwMDA4KSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApub3Jt
YWxfeHRwICh2b2lkKQp7CiAgICAgICAgaWYgKHNtcF9pbnRfcmVkaXJlY3QgJiAoMSA8PCAwKSkK
ICAgICAgICAgICAgICAgIF9fd3JpdGViKCgweDA4KSwgKHZvaWQgKikgKGlwaV9iYXNlX2FkZHIg
fCAweDFlMDAwOCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKbWF4X3h0cCAodm9pZCkKewogICAg
ICAgIGlmIChzbXBfaW50X3JlZGlyZWN0ICYgKDEgPDwgMCkpCiAgICAgICAgICAgICAgICBfX3dy
aXRlYigoMHgwZiksICh2b2lkICopIChpcGlfYmFzZV9hZGRyIHwgMHgxZTAwMDgpKTsKfQoKc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBpbnQKaGFyZF9zbXBfcHJvY2Vzc29yX2lkICh2b2lkKQp7CiAg
ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgbG9uZyByZXNlcnZlZCA6IDE2OwogICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsb25nIGVpZCA6IDg7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgaWQgOiA4OwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGlnbm9y
ZWQgOiAzMjsKICAgICAgICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv
bmcgYml0czsKICAgICAgICB9IGxpZDsKCiAgICAgICAgbGlkLmJpdHMgPSBpYTY0X2dldF9saWQo
KTsKICAgICAgICByZXR1cm4gbGlkLmYuaWQgPDwgOCB8IGxpZC5mLmVpZDsKfQoKI2RlZmluZSBO
T19QUk9DX0lEICgtMSkKI2RlZmluZSBQUk9DX0NIQU5HRV9QRU5BTFRZIDIwCgpleHRlcm4gdm9p
ZCBpbml0X3NtcF9jb25maWcgKHZvaWQpOwpleHRlcm4gdm9pZCBzbXBfZG9fdGltZXIgKHN0cnVj
dCBwdF9yZWdzICpyZWdzKTsKCmV4dGVybiBpbnQgc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlX1Jz
bXBfYWY3ZTY4MDEgKGludCBjcHVpZCwgdm9pZCAoKmZ1bmMpICh2b2lkICppbmZvKSwgdm9pZCAq
aW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXRyeSwgaW50
IHdhaXQpOwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAy
CiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21wLmgiCmV4dGVybiB2
b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBzbXBfc2VuZF9yZXNjaGVk
dWxlKGludCBjcHUpOwoKCgoKCmV4dGVybiB2b2lkIHNtcF9ib290X2NwdXModm9pZCk7CgoKCgpl
eHRlcm4gdm9pZCBzbXBfY2FsbGluKHZvaWQpOwoKCgoKZXh0ZXJuIHZvaWQgc21wX2NvbW1lbmNl
KHZvaWQpOwoKCgoKZXh0ZXJuIGludCBzbXBfY2FsbF9mdW5jdGlvbl9Sc21wXzAwMTRiZmQxICh2
b2lkICgqZnVuYykgKHZvaWQgKmluZm8pLCB2b2lkICppbmZvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgcmV0cnksIGludCB3YWl0KTsKCgoKCmV4dGVybiB2b2xhdGlsZSBpbnQg
c21wX3RocmVhZHNfcmVhZHk7CgpleHRlcm4gaW50IHNtcF9udW1fY3B1c19Sc21wXzNiODYzMzRk
OwoKZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc21wX21zZ19kYXRhOwpleHRlcm4gdm9s
YXRpbGUgaW50IHNtcF9zcmNfY3B1OwpleHRlcm4gdm9sYXRpbGUgaW50IHNtcF9tc2dfaWQ7Cgoj
ZGVmaW5lIE1TR19BTExfQlVUX1NFTEYgMHg4MDAwCiNkZWZpbmUgTVNHX0FMTCAweDgwMDEKCiNk
ZWZpbmUgTVNHX0lOVkFMSURBVEVfVExCIDB4MDAwMQojZGVmaW5lIE1TR19TVE9QX0NQVSAweDAw
MDIKCgojZGVmaW5lIE1TR19SRVNDSEVEVUxFIDB4MDAwMwojZGVmaW5lIE1TR19DQUxMX0ZVTkNU
SU9OIDB4MDAwNAojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9UVFlfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3R0eS5oIgojZGVmaW5lIE1JTl9OUl9DT05TT0xFUyAxCiNkZWZpbmUgTUFYX05SX0NPTlNP
TEVTIDYzCiNkZWZpbmUgTUFYX05SX1VTRVJfQ09OU09MRVMgNjMKCgoKCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDIwICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21h
am9yLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlvcy5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9URVJNSU9TX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC90eXBlcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJt
aW9zLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1RFUk1JT1NfSAojIDExICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vdGVybWJpdHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfVEVSTUJJVFNfSAoj
IDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQojIDEyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIiAyCgp0eXBlZGVmIHVu
c2lnbmVkIGNoYXIgY2NfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc3BlZWRfdDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgdGNmbGFnX3Q7CgojZGVmaW5lIE5DQ1MgMTkKc3RydWN0IHRlcm1pb3Mgewog
ICAgICAgIHRjZmxhZ190IGNfaWZsYWc7CiAgICAgICAgdGNmbGFnX3QgY19vZmxhZzsKICAgICAg
ICB0Y2ZsYWdfdCBjX2NmbGFnOwogICAgICAgIHRjZmxhZ190IGNfbGZsYWc7CiAgICAgICAgY2Nf
dCBjX2xpbmU7CiAgICAgICAgY2NfdCBjX2NjWzE5XTsKfTsKCgojZGVmaW5lIFZJTlRSIDAKI2Rl
ZmluZSBWUVVJVCAxCiNkZWZpbmUgVkVSQVNFIDIKI2RlZmluZSBWS0lMTCAzCiNkZWZpbmUgVkVP
RiA0CiNkZWZpbmUgVlRJTUUgNQojZGVmaW5lIFZNSU4gNgojZGVmaW5lIFZTV1RDIDcKI2RlZmlu
ZSBWU1RBUlQgOAojZGVmaW5lIFZTVE9QIDkKI2RlZmluZSBWU1VTUCAxMAojZGVmaW5lIFZFT0wg
MTEKI2RlZmluZSBWUkVQUklOVCAxMgojZGVmaW5lIFZESVNDQVJEIDEzCiNkZWZpbmUgVldFUkFT
RSAxNAojZGVmaW5lIFZMTkVYVCAxNQojZGVmaW5lIFZFT0wyIDE2CgoKI2RlZmluZSBJR05CUksg
MDAwMDAwMQojZGVmaW5lIEJSS0lOVCAwMDAwMDAyCiNkZWZpbmUgSUdOUEFSIDAwMDAwMDQKI2Rl
ZmluZSBQQVJNUksgMDAwMDAxMAojZGVmaW5lIElOUENLIDAwMDAwMjAKI2RlZmluZSBJU1RSSVAg
MDAwMDA0MAojZGVmaW5lIElOTENSIDAwMDAxMDAKI2RlZmluZSBJR05DUiAwMDAwMjAwCiNkZWZp
bmUgSUNSTkwgMDAwMDQwMAojZGVmaW5lIElVQ0xDIDAwMDEwMDAKI2RlZmluZSBJWE9OIDAwMDIw
MDAKI2RlZmluZSBJWEFOWSAwMDA0MDAwCiNkZWZpbmUgSVhPRkYgMDAxMDAwMAojZGVmaW5lIElN
QVhCRUwgMDAyMDAwMAoKCiNkZWZpbmUgT1BPU1QgMDAwMDAwMQojZGVmaW5lIE9MQ1VDIDAwMDAw
MDIKI2RlZmluZSBPTkxDUiAwMDAwMDA0CiNkZWZpbmUgT0NSTkwgMDAwMDAxMAojZGVmaW5lIE9O
T0NSIDAwMDAwMjAKI2RlZmluZSBPTkxSRVQgMDAwMDA0MAojZGVmaW5lIE9GSUxMIDAwMDAxMDAK
I2RlZmluZSBPRkRFTCAwMDAwMjAwCiNkZWZpbmUgTkxETFkgMDAwMDQwMAojZGVmaW5lIE5MMCAw
MDAwMDAwCiNkZWZpbmUgTkwxIDAwMDA0MDAKI2RlZmluZSBDUkRMWSAwMDAzMDAwCiNkZWZpbmUg
Q1IwIDAwMDAwMDAKI2RlZmluZSBDUjEgMDAwMTAwMAojZGVmaW5lIENSMiAwMDAyMDAwCiNkZWZp
bmUgQ1IzIDAwMDMwMDAKI2RlZmluZSBUQUJETFkgMDAxNDAwMAojZGVmaW5lIFRBQjAgMDAwMDAw
MAojZGVmaW5lIFRBQjEgMDAwNDAwMAojZGVmaW5lIFRBQjIgMDAxMDAwMAojZGVmaW5lIFRBQjMg
MDAxNDAwMAojZGVmaW5lIFhUQUJTIDAwMTQwMDAKI2RlZmluZSBCU0RMWSAwMDIwMDAwCiNkZWZp
bmUgQlMwIDAwMDAwMDAKI2RlZmluZSBCUzEgMDAyMDAwMAojZGVmaW5lIFZURExZIDAwNDAwMDAK
I2RlZmluZSBWVDAgMDAwMDAwMAojZGVmaW5lIFZUMSAwMDQwMDAwCiNkZWZpbmUgRkZETFkgMDEw
MDAwMAojZGVmaW5lIEZGMCAwMDAwMDAwCiNkZWZpbmUgRkYxIDAxMDAwMDAKCgojZGVmaW5lIENC
QVVEIDAwMTAwMTcKI2RlZmluZSBCMCAwMDAwMDAwCiNkZWZpbmUgQjUwIDAwMDAwMDEKI2RlZmlu
ZSBCNzUgMDAwMDAwMgojZGVmaW5lIEIxMTAgMDAwMDAwMwojZGVmaW5lIEIxMzQgMDAwMDAwNAoj
ZGVmaW5lIEIxNTAgMDAwMDAwNQojZGVmaW5lIEIyMDAgMDAwMDAwNgojZGVmaW5lIEIzMDAgMDAw
MDAwNwojZGVmaW5lIEI2MDAgMDAwMDAxMAojZGVmaW5lIEIxMjAwIDAwMDAwMTEKI2RlZmluZSBC
MTgwMCAwMDAwMDEyCiNkZWZpbmUgQjI0MDAgMDAwMDAxMwojZGVmaW5lIEI0ODAwIDAwMDAwMTQK
I2RlZmluZSBCOTYwMCAwMDAwMDE1CiNkZWZpbmUgQjE5MjAwIDAwMDAwMTYKI2RlZmluZSBCMzg0
MDAgMDAwMDAxNwojZGVmaW5lIEVYVEEgQjE5MjAwCiNkZWZpbmUgRVhUQiBCMzg0MDAKI2RlZmlu
ZSBDU0laRSAwMDAwMDYwCiNkZWZpbmUgQ1M1IDAwMDAwMDAKI2RlZmluZSBDUzYgMDAwMDAyMAoj
ZGVmaW5lIENTNyAwMDAwMDQwCiNkZWZpbmUgQ1M4IDAwMDAwNjAKI2RlZmluZSBDU1RPUEIgMDAw
MDEwMAojZGVmaW5lIENSRUFEIDAwMDAyMDAKI2RlZmluZSBQQVJFTkIgMDAwMDQwMAojZGVmaW5l
IFBBUk9ERCAwMDAxMDAwCiNkZWZpbmUgSFVQQ0wgMDAwMjAwMAojZGVmaW5lIENMT0NBTCAwMDA0
MDAwCiNkZWZpbmUgQ0JBVURFWCAwMDEwMDAwCiNkZWZpbmUgQjU3NjAwIDAwMTAwMDEKI2RlZmlu
ZSBCMTE1MjAwIDAwMTAwMDIKI2RlZmluZSBCMjMwNDAwIDAwMTAwMDMKI2RlZmluZSBCNDYwODAw
IDAwMTAwMDQKI2RlZmluZSBCNTAwMDAwIDAwMTAwMDUKI2RlZmluZSBCNTc2MDAwIDAwMTAwMDYK
I2RlZmluZSBCOTIxNjAwIDAwMTAwMDcKI2RlZmluZSBCMTAwMDAwMCAwMDEwMDEwCiNkZWZpbmUg
QjExNTIwMDAgMDAxMDAxMQojZGVmaW5lIEIxNTAwMDAwIDAwMTAwMTIKI2RlZmluZSBCMjAwMDAw
MCAwMDEwMDEzCiNkZWZpbmUgQjI1MDAwMDAgMDAxMDAxNAojZGVmaW5lIEIzMDAwMDAwIDAwMTAw
MTUKI2RlZmluZSBCMzUwMDAwMCAwMDEwMDE2CiNkZWZpbmUgQjQwMDAwMDAgMDAxMDAxNwojZGVm
aW5lIENJQkFVRCAwMDIwMDM2MDAwMDAKI2RlZmluZSBDTVNQQVIgMDEwMDAwMDAwMDAwCiNkZWZp
bmUgQ1JUU0NUUyAwMjAwMDAwMDAwMDAKCgojZGVmaW5lIElTSUcgMDAwMDAwMQojZGVmaW5lIElD
QU5PTiAwMDAwMDAyCiNkZWZpbmUgWENBU0UgMDAwMDAwNAojZGVmaW5lIEVDSE8gMDAwMDAxMAoj
ZGVmaW5lIEVDSE9FIDAwMDAwMjAKI2RlZmluZSBFQ0hPSyAwMDAwMDQwCiNkZWZpbmUgRUNIT05M
IDAwMDAxMDAKI2RlZmluZSBOT0ZMU0ggMDAwMDIwMAojZGVmaW5lIFRPU1RPUCAwMDAwNDAwCiNk
ZWZpbmUgRUNIT0NUTCAwMDAxMDAwCiNkZWZpbmUgRUNIT1BSVCAwMDAyMDAwCiNkZWZpbmUgRUNI
T0tFIDAwMDQwMDAKI2RlZmluZSBGTFVTSE8gMDAxMDAwMAojZGVmaW5lIFBFTkRJTiAwMDQwMDAw
CiNkZWZpbmUgSUVYVEVOIDAxMDAwMDAKCgojZGVmaW5lIFRDT09GRiAwCiNkZWZpbmUgVENPT04g
MQojZGVmaW5lIFRDSU9GRiAyCiNkZWZpbmUgVENJT04gMwoKCiNkZWZpbmUgVENJRkxVU0ggMAoj
ZGVmaW5lIFRDT0ZMVVNIIDEKI2RlZmluZSBUQ0lPRkxVU0ggMgoKCiNkZWZpbmUgVENTQU5PVyAw
CiNkZWZpbmUgVENTQURSQUlOIDEKI2RlZmluZSBUQ1NBRkxVU0ggMgojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9pb2N0bHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfSU9DVExTX0gK
CgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pb2N0bC5oIiAxCiMg
MTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3Rscy5oIiAyCgoKCiNkZWZp
bmUgVENHRVRTIDB4NTQwMQojZGVmaW5lIFRDU0VUUyAweDU0MDIKI2RlZmluZSBUQ1NFVFNXIDB4
NTQwMwojZGVmaW5lIFRDU0VUU0YgMHg1NDA0CiNkZWZpbmUgVENHRVRBIDB4NTQwNQojZGVmaW5l
IFRDU0VUQSAweDU0MDYKI2RlZmluZSBUQ1NFVEFXIDB4NTQwNwojZGVmaW5lIFRDU0VUQUYgMHg1
NDA4CiNkZWZpbmUgVENTQlJLIDB4NTQwOQojZGVmaW5lIFRDWE9OQyAweDU0MEEKI2RlZmluZSBU
Q0ZMU0ggMHg1NDBCCiNkZWZpbmUgVElPQ0VYQ0wgMHg1NDBDCiNkZWZpbmUgVElPQ05YQ0wgMHg1
NDBECiNkZWZpbmUgVElPQ1NDVFRZIDB4NTQwRQojZGVmaW5lIFRJT0NHUEdSUCAweDU0MEYKI2Rl
ZmluZSBUSU9DU1BHUlAgMHg1NDEwCiNkZWZpbmUgVElPQ09VVFEgMHg1NDExCiNkZWZpbmUgVElP
Q1NUSSAweDU0MTIKI2RlZmluZSBUSU9DR1dJTlNaIDB4NTQxMwojZGVmaW5lIFRJT0NTV0lOU1og
MHg1NDE0CiNkZWZpbmUgVElPQ01HRVQgMHg1NDE1CiNkZWZpbmUgVElPQ01CSVMgMHg1NDE2CiNk
ZWZpbmUgVElPQ01CSUMgMHg1NDE3CiNkZWZpbmUgVElPQ01TRVQgMHg1NDE4CiNkZWZpbmUgVElP
Q0dTT0ZUQ0FSIDB4NTQxOQojZGVmaW5lIFRJT0NTU09GVENBUiAweDU0MUEKI2RlZmluZSBGSU9O
UkVBRCAweDU0MUIKI2RlZmluZSBUSU9DSU5RIEZJT05SRUFECiNkZWZpbmUgVElPQ0xJTlVYIDB4
NTQxQwojZGVmaW5lIFRJT0NDT05TIDB4NTQxRAojZGVmaW5lIFRJT0NHU0VSSUFMIDB4NTQxRQoj
ZGVmaW5lIFRJT0NTU0VSSUFMIDB4NTQxRgojZGVmaW5lIFRJT0NQS1QgMHg1NDIwCiNkZWZpbmUg
RklPTkJJTyAweDU0MjEKI2RlZmluZSBUSU9DTk9UVFkgMHg1NDIyCiNkZWZpbmUgVElPQ1NFVEQg
MHg1NDIzCiNkZWZpbmUgVElPQ0dFVEQgMHg1NDI0CiNkZWZpbmUgVENTQlJLUCAweDU0MjUKI2Rl
ZmluZSBUSU9DVFRZR1NUUlVDVCAweDU0MjYKI2RlZmluZSBUSU9DU0JSSyAweDU0MjcKI2RlZmlu
ZSBUSU9DQ0JSSyAweDU0MjgKI2RlZmluZSBUSU9DR1NJRCAweDU0MjkKI2RlZmluZSBUSU9DR1BU
TiBfSU9SKCdUJywweDMwLCB1bnNpZ25lZCBpbnQpCiNkZWZpbmUgVElPQ1NQVExDSyBfSU9XKCdU
JywweDMxLCBpbnQpCgojZGVmaW5lIEZJT05DTEVYIDB4NTQ1MAojZGVmaW5lIEZJT0NMRVggMHg1
NDUxCiNkZWZpbmUgRklPQVNZTkMgMHg1NDUyCiNkZWZpbmUgVElPQ1NFUkNPTkZJRyAweDU0NTMK
I2RlZmluZSBUSU9DU0VSR1dJTEQgMHg1NDU0CiNkZWZpbmUgVElPQ1NFUlNXSUxEIDB4NTQ1NQoj
ZGVmaW5lIFRJT0NHTENLVFJNSU9TIDB4NTQ1NgojZGVmaW5lIFRJT0NTTENLVFJNSU9TIDB4NTQ1
NwojZGVmaW5lIFRJT0NTRVJHU1RSVUNUIDB4NTQ1OAojZGVmaW5lIFRJT0NTRVJHRVRMU1IgMHg1
NDU5CiNkZWZpbmUgVElPQ1NFUkdFVE1VTFRJIDB4NTQ1QQojZGVmaW5lIFRJT0NTRVJTRVRNVUxU
SSAweDU0NUIKCiNkZWZpbmUgVElPQ01JV0FJVCAweDU0NUMKI2RlZmluZSBUSU9DR0lDT1VOVCAw
eDU0NUQKI2RlZmluZSBUSU9DR0hBWUVTRVNQIDB4NTQ1RQojZGVmaW5lIFRJT0NTSEFZRVNFU1Ag
MHg1NDVGCgoKI2RlZmluZSBUSU9DUEtUX0RBVEEgMAojZGVmaW5lIFRJT0NQS1RfRkxVU0hSRUFE
IDEKI2RlZmluZSBUSU9DUEtUX0ZMVVNIV1JJVEUgMgojZGVmaW5lIFRJT0NQS1RfU1RPUCA0CiNk
ZWZpbmUgVElPQ1BLVF9TVEFSVCA4CiNkZWZpbmUgVElPQ1BLVF9OT1NUT1AgMTYKI2RlZmluZSBU
SU9DUEtUX0RPU1RPUCAzMgoKI2RlZmluZSBUSU9DU0VSX1RFTVQgMHgwMQojIDEzICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKCnN0cnVjdCB3aW5zaXplIHsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCB3c19yb3c7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgd3Nf
Y29sOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHdzX3hwaXhlbDsKICAgICAgICB1bnNpZ25lZCBz
aG9ydCB3c195cGl4ZWw7Cn07CgojZGVmaW5lIE5DQyA4CnN0cnVjdCB0ZXJtaW8gewogICAgICAg
IHVuc2lnbmVkIHNob3J0IGNfaWZsYWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY19vZmxhZzsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBjX2NmbGFnOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGNf
bGZsYWc7CiAgICAgICAgdW5zaWduZWQgY2hhciBjX2xpbmU7CiAgICAgICAgdW5zaWduZWQgY2hh
ciBjX2NjWzhdOwp9OwoKCiNkZWZpbmUgVElPQ01fTEUgMHgwMDEKI2RlZmluZSBUSU9DTV9EVFIg
MHgwMDIKI2RlZmluZSBUSU9DTV9SVFMgMHgwMDQKI2RlZmluZSBUSU9DTV9TVCAweDAwOAojZGVm
aW5lIFRJT0NNX1NSIDB4MDEwCiNkZWZpbmUgVElPQ01fQ1RTIDB4MDIwCiNkZWZpbmUgVElPQ01f
Q0FSIDB4MDQwCiNkZWZpbmUgVElPQ01fUk5HIDB4MDgwCiNkZWZpbmUgVElPQ01fRFNSIDB4MTAw
CiNkZWZpbmUgVElPQ01fQ0QgVElPQ01fQ0FSCiNkZWZpbmUgVElPQ01fUkkgVElPQ01fUk5HCiNk
ZWZpbmUgVElPQ01fT1VUMSAweDIwMDAKI2RlZmluZSBUSU9DTV9PVVQyIDB4NDAwMAojZGVmaW5l
IFRJT0NNX0xPT1AgMHg4MDAwCgoKCgojZGVmaW5lIE5fVFRZIDAKI2RlZmluZSBOX1NMSVAgMQoj
ZGVmaW5lIE5fTU9VU0UgMgojZGVmaW5lIE5fUFBQIDMKI2RlZmluZSBOX1NUUklQIDQKI2RlZmlu
ZSBOX0FYMjUgNQojZGVmaW5lIE5fWDI1IDYKI2RlZmluZSBOXzZQQUNLIDcKI2RlZmluZSBOX01B
U0MgOAojZGVmaW5lIE5fUjM5NjQgOQojZGVmaW5lIE5fUFJPRklCVVNfRkRMIDEwCiNkZWZpbmUg
Tl9JUkRBIDExCiNkZWZpbmUgTl9TTVNCTE9DSyAxMgojZGVmaW5lIE5fSERMQyAxMwojZGVmaW5l
IE5fU1lOQ19QUFAgMTQKI2RlZmluZSBOX0hDSSAxNQojIDc1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiNkZWZpbmUgSU5JVF9DX0NDICJcMDAzXDAzNFwxNzdc
MDI1XDAwNFwwXDFcMFwwMjFcMDIzXDAzMlwwXDAyMlwwMTdcMDI3XDAyNlwwIgoKCgoKI2RlZmlu
ZSBTRVRfTE9XX1RFUk1JT1NfQklUUyh0ZXJtaW9zLCB0ZXJtaW8sIHgpIHsgdW5zaWduZWQgc2hv
cnQgX190bXA7IGdldF91c2VyKF9fdG1wLCYodGVybWlvKS0+eCk7ICoodW5zaWduZWQgc2hvcnQg
KikgJih0ZXJtaW9zKS0+eCA9IF9fdG1wOyB9CgoKCgoKI2RlZmluZSB1c2VyX3Rlcm1pb190b19r
ZXJuZWxfdGVybWlvcyh0ZXJtaW9zLCB0ZXJtaW8pICh7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRl
cm1pb3MsIHRlcm1pbywgY19pZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRl
cm1pbywgY19vZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19j
ZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19sZmxhZyk7IGNv
cHlfZnJvbV91c2VyKCh0ZXJtaW9zKS0+Y19jYywgKHRlcm1pbyktPmNfY2MsIE5DQyk7IH0pCiMg
OTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Rlcm1pb3MuaCIKI2RlZmluZSBr
ZXJuZWxfdGVybWlvc190b191c2VyX3Rlcm1pbyh0ZXJtaW8sIHRlcm1pb3MpICh7IHB1dF91c2Vy
KCh0ZXJtaW9zKS0+Y19pZmxhZywgJih0ZXJtaW8pLT5jX2lmbGFnKTsgcHV0X3VzZXIoKHRlcm1p
b3MpLT5jX29mbGFnLCAmKHRlcm1pbyktPmNfb2ZsYWcpOyBwdXRfdXNlcigodGVybWlvcyktPmNf
Y2ZsYWcsICYodGVybWlvKS0+Y19jZmxhZyk7IHB1dF91c2VyKCh0ZXJtaW9zKS0+Y19sZmxhZywg
Jih0ZXJtaW8pLT5jX2xmbGFnKTsgcHV0X3VzZXIoKHRlcm1pb3MpLT5jX2xpbmUsICYodGVybWlv
KS0+Y19saW5lKTsgY29weV90b191c2VyKCh0ZXJtaW8pLT5jX2NjLCAodGVybWlvcyktPmNfY2Ms
IE5DQyk7IH0pCiMgMTA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9z
LmgiCiNkZWZpbmUgdXNlcl90ZXJtaW9zX3RvX2tlcm5lbF90ZXJtaW9zKGssIHUpIGNvcHlfZnJv
bV91c2VyKGssIHUsIHNpemVvZihzdHJ1Y3QgdGVybWlvcykpCiNkZWZpbmUga2VybmVsX3Rlcm1p
b3NfdG9fdXNlcl90ZXJtaW9zKHUsIGspIGNvcHlfdG9fdXNlcih1LCBrLCBzaXplb2Yoc3RydWN0
IHRlcm1pb3MpKQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlv
cy5oIiAyCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1ZS5oIiAxCiMgMjQg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaCIgMQoKI2RlZmluZSBfTElO
VVhfVFRZX0RSSVZFUl9ICiMgMTE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3R0eV9kcml2ZXIuaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz
LmgiIDEKIyAxMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2RyaXZl
ci5oIiAyCgpzdHJ1Y3QgdHR5X2RyaXZlciB7CiAgICAgICAgaW50IG1hZ2ljOwogICAgICAgIGNv
bnN0IGNoYXIgKmRyaXZlcl9uYW1lOwogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgICAg
aW50IG5hbWVfYmFzZTsKICAgICAgICBzaG9ydCBtYWpvcjsKICAgICAgICBzaG9ydCBtaW5vcl9z
dGFydDsKICAgICAgICBzaG9ydCBudW07CiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICBzaG9y
dCBzdWJ0eXBlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9zIGluaXRfdGVybWlvczsKICAgICAgICBp
bnQgZmxhZ3M7CiAgICAgICAgaW50ICpyZWZjb3VudDsKICAgICAgICBzdHJ1Y3QgcHJvY19kaXJf
ZW50cnkgKnByb2NfZW50cnk7CiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm90aGVyOwoKCgoK
ICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqKnRhYmxlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9z
ICoqdGVybWlvczsKICAgICAgICBzdHJ1Y3QgdGVybWlvcyAqKnRlcm1pb3NfbG9ja2VkOwogICAg
ICAgIHZvaWQgKmRyaXZlcl9zdGF0ZTsKCgoKCgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0
dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwogICAgICAgIHZvaWQgKCpjbG9z
ZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVjdCBmaWxlICogZmlscCk7CiAgICAgICAg
aW50ICgqd3JpdGUpKHN0cnVjdCB0dHlfc3RydWN0ICogdHR5LCBpbnQgZnJvbV91c2VyLAogICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOwog
ICAgICAgIHZvaWQgKCpwdXRfY2hhcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgdW5zaWduZWQg
Y2hhciBjaCk7CiAgICAgICAgdm9pZCAoKmZsdXNoX2NoYXJzKShzdHJ1Y3QgdHR5X3N0cnVjdCAq
dHR5KTsKICAgICAgICBpbnQgKCp3cml0ZV9yb29tKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsK
ICAgICAgICBpbnQgKCpjaGFyc19pbl9idWZmZXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwog
ICAgICAgIGludCAoKmlvY3RsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAq
IGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9u
ZyBhcmcpOwogICAgICAgIHZvaWQgKCpzZXRfdGVybWlvcykoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0
eSwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOwogICAgICAgIHZvaWQgKCp0aHJvdHRsZSkoc3RydWN0
IHR0eV9zdHJ1Y3QgKiB0dHkpOwogICAgICAgIHZvaWQgKCp1bnRocm90dGxlKShzdHJ1Y3QgdHR5
X3N0cnVjdCAqIHR0eSk7CiAgICAgICAgdm9pZCAoKnN0b3ApKHN0cnVjdCB0dHlfc3RydWN0ICp0
dHkpOwogICAgICAgIHZvaWQgKCpzdGFydCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAg
ICAgdm9pZCAoKmhhbmd1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgdm9pZCAo
KmJyZWFrX2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IHN0YXRlKTsKICAgICAgICB2
b2lkICgqZmx1c2hfYnVmZmVyKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lk
ICgqc2V0X2xkaXNjKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lkICgqd2Fp
dF91bnRpbF9zZW50KShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgdGltZW91dCk7CiAgICAg
ICAgdm9pZCAoKnNlbmRfeGNoYXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgY2gpOwog
ICAgICAgIGludCAoKnJlYWRfcHJvYykoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBv
ZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAq
ZGF0YSk7CiAgICAgICAgaW50ICgqd3JpdGVfcHJvYykoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0
IGNoYXIgKmJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGNv
dW50LCB2b2lkICpkYXRhKTsKCgoKCiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm5leHQ7CiAg
ICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKnByZXY7Cn07CgoKI2RlZmluZSBUVFlfRFJJVkVSX01B
R0lDIDB4NTQwMgojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlf
ZHJpdmVyLmgiCiNkZWZpbmUgVFRZX0RSSVZFUl9JTlNUQUxMRUQgMHgwMDAxCiNkZWZpbmUgVFRZ
X0RSSVZFUl9SRVNFVF9URVJNSU9TIDB4MDAwMgojZGVmaW5lIFRUWV9EUklWRVJfUkVBTF9SQVcg
MHgwMDA0CiNkZWZpbmUgVFRZX0RSSVZFUl9OT19ERVZGUyAweDAwMDgKCgojZGVmaW5lIFRUWV9E
UklWRVJfVFlQRV9TWVNURU0gMHgwMDAxCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX0NPTlNPTEUg
MHgwMDAyCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NFUklBTCAweDAwMDMKI2RlZmluZSBUVFlf
RFJJVkVSX1RZUEVfUFRZIDB4MDAwNAojZGVmaW5lIFRUWV9EUklWRVJfVFlQRV9TQ0MgMHgwMDA1
CiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NZU0NPTlMgMHgwMDA2CgoKI2RlZmluZSBTWVNURU1f
VFlQRV9UVFkgMHgwMDAxCiNkZWZpbmUgU1lTVEVNX1RZUEVfQ09OU09MRSAweDAwMDIKI2RlZmlu
ZSBTWVNURU1fVFlQRV9TWVNDT05TIDB4MDAwMwojZGVmaW5lIFNZU1RFTV9UWVBFX1NZU1BUTVgg
MHgwMDA0CgoKI2RlZmluZSBQVFlfVFlQRV9NQVNURVIgMHgwMDAxCiNkZWZpbmUgUFRZX1RZUEVf
U0xBVkUgMHgwMDAyCgoKI2RlZmluZSBTRVJJQUxfVFlQRV9OT1JNQUwgMQojZGVmaW5lIFNFUklB
TF9UWVBFX0NBTExPVVQgMgojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlfbGRp
c2MuaCIgMQoKI2RlZmluZSBfTElOVVhfVFRZX0xESVNDX0gKIyAxMDAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2xkaXNjLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMTAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3R0eV9sZGlzYy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC93YWl0LmgiIDEKIyAxMDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvdHR5X2xkaXNjLmgiIDIKCnN0cnVjdCB0dHlfbGRpc2MgewogICAgICAgIGludCBtYWdpYzsK
ICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGZsYWdzOwoK
CgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0dHlfc3RydWN0ICopOwogICAgICAgIHZvaWQg
KCpjbG9zZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7CiAgICAgICAgdm9pZCAoKmZsdXNoX2J1ZmZl
cikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKmNoYXJzX2luX2J1
ZmZlcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpKHN0
cnVjdCB0dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBidWYsIHNpemVfdCBucik7CiAgICAgICAgc3NpemVf
dCAoKndyaXRlKShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwgc3RydWN0IGZpbGUgKiBmaWxlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqIGJ1Ziwgc2l6ZV90
IG5yKTsKICAgICAgICBpbnQgKCppb2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVj
dCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjbWQs
IHVuc2lnbmVkIGxvbmcgYXJnKTsKICAgICAgICB2b2lkICgqc2V0X3Rlcm1pb3MpKHN0cnVjdCB0
dHlfc3RydWN0ICp0dHksIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKICAgICAgICB1bnNpZ25lZCBp
bnQgKCpwb2xsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBzdHJ1Y3QgZmlsZSAqLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqKTsKCgoKCiAgICAg
ICAgdm9pZCAoKnJlY2VpdmVfYnVmKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBjb25zdCB1bnNpZ25l
ZCBjaGFyICpjcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZwLCBpbnQg
Y291bnQpOwogICAgICAgIGludCAoKnJlY2VpdmVfcm9vbSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7
CiAgICAgICAgdm9pZCAoKndyaXRlX3dha2V1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7Cn07Cgoj
ZGVmaW5lIFRUWV9MRElTQ19NQUdJQyAweDU0MDMKCiNkZWZpbmUgTERJU0NfRkxBR19ERUZJTkVE
IDB4MDAwMDAwMDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHku
aCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoj
IDI4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMzYgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiCiNkZWZpbmUgTlJfUFRZUyAy
NTYKI2RlZmluZSBOUl9MRElTQ1MgMTYKCgoKCgoKCiNkZWZpbmUgVU5JWDk4X05SX01BSk9SUyAo
KENPTkZJR19VTklYOThfUFRZX0NPVU5UK05SX1BUWVMtMSkvTlJfUFRZUykKIyA1OSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHNjcmVlbl9pbmZvIHsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfeDsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdf
eTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkb250dXNlMTsKICAgICAgICB1bnNpZ25lZCBzaG9y
dCBvcmlnX3ZpZGVvX3BhZ2U7CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX21vZGU7
CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX2NvbHM7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgdW51c2VkMjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBvcmlnX3ZpZGVvX2VnYV9ieDsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bnVzZWQzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgb3Jp
Z192aWRlb19saW5lczsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfdmlkZW9faXNWR0E7CiAg
ICAgICAgdW5zaWduZWQgc2hvcnQgb3JpZ192aWRlb19wb2ludHM7CgoKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBsZmJfd2lkdGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbGZiX2hlaWdodDsKICAg
ICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfZGVwdGg7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsZmJf
YmFzZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxmYl9zaXplOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IGRvbnR1c2UyLCBkb250dXNlMzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfbGluZWxl
bmd0aDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJlZF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNo
YXIgcmVkX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGdyZWVuX3NpemU7CiAgICAgICAgdW5z
aWduZWQgY2hhciBncmVlbl9wb3M7CiAgICAgICAgdW5zaWduZWQgY2hhciBibHVlX3NpemU7CiAg
ICAgICAgdW5zaWduZWQgY2hhciBibHVlX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRf
c2l6ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRfcG9zOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IHZlc2FwbV9zZWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdmVzYXBtX29mZjsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCBwYWdlczsKCn07CgpleHRlcm4gc3RydWN0IHNjcmVlbl9pbmZvIHNj
cmVlbl9pbmZvOwoKI2RlZmluZSBPUklHX1ggKHNjcmVlbl9pbmZvLm9yaWdfeCkKI2RlZmluZSBP
UklHX1kgKHNjcmVlbl9pbmZvLm9yaWdfeSkKI2RlZmluZSBPUklHX1ZJREVPX01PREUgKHNjcmVl
bl9pbmZvLm9yaWdfdmlkZW9fbW9kZSkKI2RlZmluZSBPUklHX1ZJREVPX0NPTFMgKHNjcmVlbl9p
bmZvLm9yaWdfdmlkZW9fY29scykKI2RlZmluZSBPUklHX1ZJREVPX0VHQV9CWCAoc2NyZWVuX2lu
Zm8ub3JpZ192aWRlb19lZ2FfYngpCiNkZWZpbmUgT1JJR19WSURFT19MSU5FUyAoc2NyZWVuX2lu
Zm8ub3JpZ192aWRlb19saW5lcykKI2RlZmluZSBPUklHX1ZJREVPX0lTVkdBIChzY3JlZW5faW5m
by5vcmlnX3ZpZGVvX2lzVkdBKQojZGVmaW5lIE9SSUdfVklERU9fUE9JTlRTIChzY3JlZW5faW5m
by5vcmlnX3ZpZGVvX3BvaW50cykKCiNkZWZpbmUgVklERU9fVFlQRV9NREEgMHgxMAojZGVmaW5l
IFZJREVPX1RZUEVfQ0dBIDB4MTEKI2RlZmluZSBWSURFT19UWVBFX0VHQU0gMHgyMAojZGVmaW5l
IFZJREVPX1RZUEVfRUdBQyAweDIxCiNkZWZpbmUgVklERU9fVFlQRV9WR0FDIDB4MjIKI2RlZmlu
ZSBWSURFT19UWVBFX1ZMRkIgMHgyMwoKI2RlZmluZSBWSURFT19UWVBFX1BJQ0FfUzMgMHgzMAoj
ZGVmaW5lIFZJREVPX1RZUEVfTUlQU19HMzY0IDB4MzEKI2RlZmluZSBWSURFT19UWVBFX1NOSV9S
TSAweDMyCiNkZWZpbmUgVklERU9fVFlQRV9TR0kgMHgzMwoKI2RlZmluZSBWSURFT19UWVBFX1RH
QUMgMHg0MAoKI2RlZmluZSBWSURFT19UWVBFX1NVTiAweDUwCiNkZWZpbmUgVklERU9fVFlQRV9T
VU5QQ0kgMHg1MQoKI2RlZmluZSBWSURFT19UWVBFX1BNQUMgMHg2MAoKCgoKCgojZGVmaW5lIF9f
RElTQUJMRURfQ0hBUiAnXDAnCgoKCgoKCiNkZWZpbmUgVFRZX0ZMSVBCVUZfU0laRSA1MTIKCnN0
cnVjdCB0dHlfZmxpcF9idWZmZXIgewogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgdHF1ZXVlOwog
ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgcHR5X3NlbTsKICAgICAgICBjaGFyICpjaGFyX2J1Zl9w
dHI7CiAgICAgICAgdW5zaWduZWQgY2hhciAqZmxhZ19idWZfcHRyOwogICAgICAgIGludCBjb3Vu
dDsKICAgICAgICBpbnQgYnVmX251bTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGNoYXJfYnVmWzIq
NTEyXTsKICAgICAgICBjaGFyIGZsYWdfYnVmWzIqNTEyXTsKICAgICAgICB1bnNpZ25lZCBjaGFy
IHNsb3BbNF07Cn07CgoKCiNkZWZpbmUgUFRZX0JVRl9TSVpFIDQqVFRZX0ZMSVBCVUZfU0laRQoK
CgoKCiNkZWZpbmUgVFRZX05PUk1BTCAwCiNkZWZpbmUgVFRZX0JSRUFLIDEKI2RlZmluZSBUVFlf
RlJBTUUgMgojZGVmaW5lIFRUWV9QQVJJVFkgMwojZGVmaW5lIFRUWV9PVkVSUlVOIDQKCiNkZWZp
bmUgSU5UUl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZJTlRSXSkKI2RlZmluZSBR
VUlUX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVlFVSVRdKQojZGVmaW5lIEVSQVNF
X0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVkVSQVNFXSkKI2RlZmluZSBLSUxMX0NI
QVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVktJTExdKQojZGVmaW5lIEVPRl9DSEFSKHR0
eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0ZdKQojZGVmaW5lIFRJTUVfQ0hBUih0dHkpICgo
dHR5KS0+dGVybWlvcy0+Y19jY1tWVElNRV0pCiNkZWZpbmUgTUlOX0NIQVIodHR5KSAoKHR0eSkt
PnRlcm1pb3MtPmNfY2NbVk1JTl0pCiNkZWZpbmUgU1dUQ19DSEFSKHR0eSkgKCh0dHkpLT50ZXJt
aW9zLT5jX2NjW1ZTV1RDXSkKI2RlZmluZSBTVEFSVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9z
LT5jX2NjW1ZTVEFSVF0pCiNkZWZpbmUgU1RPUF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5j
X2NjW1ZTVE9QXSkKI2RlZmluZSBTVVNQX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2Nb
VlNVU1BdKQojZGVmaW5lIEVPTF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0xd
KQojZGVmaW5lIFJFUFJJTlRfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWUkVQUklO
VF0pCiNkZWZpbmUgRElTQ0FSRF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZESVND
QVJEXSkKI2RlZmluZSBXRVJBU0VfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWV0VS
QVNFXSkKI2RlZmluZSBMTkVYVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZMTkVY
VF0pCiNkZWZpbmUgRU9MMl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0wyXSkK
CiNkZWZpbmUgX0lfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19pZmxhZyAmIChmKSkK
I2RlZmluZSBfT19GTEFHKHR0eSwgZikgKCh0dHkpLT50ZXJtaW9zLT5jX29mbGFnICYgKGYpKQoj
ZGVmaW5lIF9DX0ZMQUcodHR5LCBmKSAoKHR0eSktPnRlcm1pb3MtPmNfY2ZsYWcgJiAoZikpCiNk
ZWZpbmUgX0xfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19sZmxhZyAmIChmKSkKCiNk
ZWZpbmUgSV9JR05CUksodHR5KSBfSV9GTEFHKCh0dHkpLElHTkJSSykKI2RlZmluZSBJX0JSS0lO
VCh0dHkpIF9JX0ZMQUcoKHR0eSksQlJLSU5UKQojZGVmaW5lIElfSUdOUEFSKHR0eSkgX0lfRkxB
RygodHR5KSxJR05QQVIpCiNkZWZpbmUgSV9QQVJNUksodHR5KSBfSV9GTEFHKCh0dHkpLFBBUk1S
SykKI2RlZmluZSBJX0lOUENLKHR0eSkgX0lfRkxBRygodHR5KSxJTlBDSykKI2RlZmluZSBJX0lT
VFJJUCh0dHkpIF9JX0ZMQUcoKHR0eSksSVNUUklQKQojZGVmaW5lIElfSU5MQ1IodHR5KSBfSV9G
TEFHKCh0dHkpLElOTENSKQojZGVmaW5lIElfSUdOQ1IodHR5KSBfSV9GTEFHKCh0dHkpLElHTkNS
KQojZGVmaW5lIElfSUNSTkwodHR5KSBfSV9GTEFHKCh0dHkpLElDUk5MKQojZGVmaW5lIElfSVVD
TEModHR5KSBfSV9GTEFHKCh0dHkpLElVQ0xDKQojZGVmaW5lIElfSVhPTih0dHkpIF9JX0ZMQUco
KHR0eSksSVhPTikKI2RlZmluZSBJX0lYQU5ZKHR0eSkgX0lfRkxBRygodHR5KSxJWEFOWSkKI2Rl
ZmluZSBJX0lYT0ZGKHR0eSkgX0lfRkxBRygodHR5KSxJWE9GRikKI2RlZmluZSBJX0lNQVhCRUwo
dHR5KSBfSV9GTEFHKCh0dHkpLElNQVhCRUwpCgojZGVmaW5lIE9fT1BPU1QodHR5KSBfT19GTEFH
KCh0dHkpLE9QT1NUKQojZGVmaW5lIE9fT0xDVUModHR5KSBfT19GTEFHKCh0dHkpLE9MQ1VDKQoj
ZGVmaW5lIE9fT05MQ1IodHR5KSBfT19GTEFHKCh0dHkpLE9OTENSKQojZGVmaW5lIE9fT0NSTkwo
dHR5KSBfT19GTEFHKCh0dHkpLE9DUk5MKQojZGVmaW5lIE9fT05PQ1IodHR5KSBfT19GTEFHKCh0
dHkpLE9OT0NSKQojZGVmaW5lIE9fT05MUkVUKHR0eSkgX09fRkxBRygodHR5KSxPTkxSRVQpCiNk
ZWZpbmUgT19PRklMTCh0dHkpIF9PX0ZMQUcoKHR0eSksT0ZJTEwpCiNkZWZpbmUgT19PRkRFTCh0
dHkpIF9PX0ZMQUcoKHR0eSksT0ZERUwpCiNkZWZpbmUgT19OTERMWSh0dHkpIF9PX0ZMQUcoKHR0
eSksTkxETFkpCiNkZWZpbmUgT19DUkRMWSh0dHkpIF9PX0ZMQUcoKHR0eSksQ1JETFkpCiNkZWZp
bmUgT19UQUJETFkodHR5KSBfT19GTEFHKCh0dHkpLFRBQkRMWSkKI2RlZmluZSBPX0JTRExZKHR0
eSkgX09fRkxBRygodHR5KSxCU0RMWSkKI2RlZmluZSBPX1ZURExZKHR0eSkgX09fRkxBRygodHR5
KSxWVERMWSkKI2RlZmluZSBPX0ZGRExZKHR0eSkgX09fRkxBRygodHR5KSxGRkRMWSkKCiNkZWZp
bmUgQ19CQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDQkFVRCkKI2RlZmluZSBDX0NTSVpFKHR0eSkg
X0NfRkxBRygodHR5KSxDU0laRSkKI2RlZmluZSBDX0NTVE9QQih0dHkpIF9DX0ZMQUcoKHR0eSks
Q1NUT1BCKQojZGVmaW5lIENfQ1JFQUQodHR5KSBfQ19GTEFHKCh0dHkpLENSRUFEKQojZGVmaW5l
IENfUEFSRU5CKHR0eSkgX0NfRkxBRygodHR5KSxQQVJFTkIpCiNkZWZpbmUgQ19QQVJPREQodHR5
KSBfQ19GTEFHKCh0dHkpLFBBUk9ERCkKI2RlZmluZSBDX0hVUENMKHR0eSkgX0NfRkxBRygodHR5
KSxIVVBDTCkKI2RlZmluZSBDX0NMT0NBTCh0dHkpIF9DX0ZMQUcoKHR0eSksQ0xPQ0FMKQojZGVm
aW5lIENfQ0lCQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDSUJBVUQpCiNkZWZpbmUgQ19DUlRTQ1RT
KHR0eSkgX0NfRkxBRygodHR5KSxDUlRTQ1RTKQoKI2RlZmluZSBMX0lTSUcodHR5KSBfTF9GTEFH
KCh0dHkpLElTSUcpCiNkZWZpbmUgTF9JQ0FOT04odHR5KSBfTF9GTEFHKCh0dHkpLElDQU5PTikK
I2RlZmluZSBMX1hDQVNFKHR0eSkgX0xfRkxBRygodHR5KSxYQ0FTRSkKI2RlZmluZSBMX0VDSE8o
dHR5KSBfTF9GTEFHKCh0dHkpLEVDSE8pCiNkZWZpbmUgTF9FQ0hPRSh0dHkpIF9MX0ZMQUcoKHR0
eSksRUNIT0UpCiNkZWZpbmUgTF9FQ0hPSyh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0spCiNkZWZp
bmUgTF9FQ0hPTkwodHR5KSBfTF9GTEFHKCh0dHkpLEVDSE9OTCkKI2RlZmluZSBMX05PRkxTSCh0
dHkpIF9MX0ZMQUcoKHR0eSksTk9GTFNIKQojZGVmaW5lIExfVE9TVE9QKHR0eSkgX0xfRkxBRygo
dHR5KSxUT1NUT1ApCiNkZWZpbmUgTF9FQ0hPQ1RMKHR0eSkgX0xfRkxBRygodHR5KSxFQ0hPQ1RM
KQojZGVmaW5lIExfRUNIT1BSVCh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT1BSVCkKI2RlZmluZSBM
X0VDSE9LRSh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0tFKQojZGVmaW5lIExfRkxVU0hPKHR0eSkg
X0xfRkxBRygodHR5KSxGTFVTSE8pCiNkZWZpbmUgTF9QRU5ESU4odHR5KSBfTF9GTEFHKCh0dHkp
LFBFTkRJTikKI2RlZmluZSBMX0lFWFRFTih0dHkpIF9MX0ZMQUcoKHR0eSksSUVYVEVOKQojIDI1
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHR0eV9z
dHJ1Y3QgewogICAgICAgIGludCBtYWdpYzsKICAgICAgICBzdHJ1Y3QgdHR5X2RyaXZlciBkcml2
ZXI7CiAgICAgICAgc3RydWN0IHR0eV9sZGlzYyBsZGlzYzsKICAgICAgICBzdHJ1Y3QgdGVybWlv
cyAqdGVybWlvcywgKnRlcm1pb3NfbG9ja2VkOwogICAgICAgIGludCBwZ3JwOwogICAgICAgIGlu
dCBzZXNzaW9uOwogICAgICAgIGtkZXZfdCBkZXZpY2U7CiAgICAgICAgdW5zaWduZWQgbG9uZyBm
bGFnczsKICAgICAgICBpbnQgY291bnQ7CiAgICAgICAgc3RydWN0IHdpbnNpemUgd2luc2l6ZTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIHN0b3BwZWQ6MSwgaHdfc3RvcHBlZDoxLCBmbG93X3N0b3Bw
ZWQ6MSwgcGFja2V0OjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBsb3dfbGF0ZW5jeToxLCB3YXJu
ZWQ6MTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGN0cmxfc3RhdHVzOwoKICAgICAgICBzdHJ1Y3Qg
dHR5X3N0cnVjdCAqbGluazsKICAgICAgICBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jOwog
ICAgICAgIHN0cnVjdCB0dHlfZmxpcF9idWZmZXIgZmxpcDsKICAgICAgICBpbnQgbWF4X2ZsaXBf
Y250OwogICAgICAgIGludCBhbHRfc3BlZWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd3Jp
dGVfd2FpdDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCByZWFkX3dhaXQ7CiAgICAgICAgc3Ry
dWN0IHRxX3N0cnVjdCB0cV9oYW5ndXA7CiAgICAgICAgdm9pZCAqZGlzY19kYXRhOwogICAgICAg
IHZvaWQgKmRyaXZlcl9kYXRhOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgdHR5X2ZpbGVzOwoK
I2RlZmluZSBOX1RUWV9CVUZfU0laRSA0MDk2CgoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgY29s
dW1uOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbG5leHQ6MSwgZXJhc2luZzoxLCByYXc6MSwgcmVh
bF9yYXc6MSwgaWNhbm9uOjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBjbG9zaW5nOjE7CiAgICAg
ICAgdW5zaWduZWQgc2hvcnQgbWluaW11bV90b193YWtlOwogICAgICAgIHVuc2lnbmVkIG92ZXJy
dW5fdGltZTsKICAgICAgICBpbnQgbnVtX292ZXJydW47CiAgICAgICAgdW5zaWduZWQgbG9uZyBw
cm9jZXNzX2NoYXJfbWFwWzI1Ni8oOCpzaXplb2YodW5zaWduZWQgbG9uZykpXTsKICAgICAgICBj
aGFyICpyZWFkX2J1ZjsKICAgICAgICBpbnQgcmVhZF9oZWFkOwogICAgICAgIGludCByZWFkX3Rh
aWw7CiAgICAgICAgaW50IHJlYWRfY250OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVhZF9mbGFn
c1s0MDk2Lyg4KnNpemVvZih1bnNpZ25lZCBsb25nKSldOwogICAgICAgIGludCBjYW5vbl9kYXRh
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgY2Fub25faGVhZDsKICAgICAgICB1bnNpZ25lZCBpbnQg
Y2Fub25fY29sdW1uOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgYXRvbWljX3JlYWQ7CiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBhdG9taWNfd3JpdGU7CiAgICAgICAgc3BpbmxvY2tfdCByZWFk
X2xvY2s7CgogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgU0FLX3RxOwp9OwoKCiNkZWZpbmUgVFRZ
X01BR0lDIDB4NTQwMQojIDMyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90
dHkuaCIKI2RlZmluZSBUVFlfVEhST1RUTEVEIDAKI2RlZmluZSBUVFlfSU9fRVJST1IgMQojZGVm
aW5lIFRUWV9PVEhFUl9DTE9TRUQgMgojZGVmaW5lIFRUWV9FWENMVVNJVkUgMwojZGVmaW5lIFRU
WV9ERUJVRyA0CiNkZWZpbmUgVFRZX0RPX1dSSVRFX1dBS0VVUCA1CiNkZWZpbmUgVFRZX1BVU0gg
NgojZGVmaW5lIFRUWV9DTE9TSU5HIDcKI2RlZmluZSBUVFlfRE9OVF9GTElQIDgKI2RlZmluZSBU
VFlfSFdfQ09PS19PVVQgMTQKI2RlZmluZSBUVFlfSFdfQ09PS19JTiAxNQojZGVmaW5lIFRUWV9Q
VFlfTE9DSyAxNgojZGVmaW5lIFRUWV9OT19XUklURV9TUExJVCAxNwoKI2RlZmluZSBUVFlfV1JJ
VEVfRkxVU0godHR5KSB0dHlfd3JpdGVfZmx1c2goKHR0eSkpCgpleHRlcm4gdm9pZCB0dHlfd3Jp
dGVfZmx1c2goc3RydWN0IHR0eV9zdHJ1Y3QgKik7CgpleHRlcm4gc3RydWN0IHRlcm1pb3MgdHR5
X3N0ZF90ZXJtaW9zX1JzbXBfODlhYzUyNTQ7CmV4dGVybiBzdHJ1Y3QgdHR5X3N0cnVjdCAqIHJl
ZGlyZWN0OwpleHRlcm4gc3RydWN0IHR0eV9sZGlzYyBsZGlzY3NbXTsKZXh0ZXJuIGludCBmZ19j
b25zb2xlX1JzbXBfNGU2ZThlYTcsIGxhc3RfY29uc29sZSwgd2FudF9jb25zb2xlOwoKZXh0ZXJu
IGludCBrbXNnX3JlZGlyZWN0OwoKZXh0ZXJuIHZvaWQgY29uX2luaXQodm9pZCk7CmV4dGVybiB2
b2lkIGNvbnNvbGVfaW5pdCh2b2lkKTsKCmV4dGVybiBpbnQgbHBfaW5pdCh2b2lkKTsKZXh0ZXJu
IGludCBwdHlfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgdHR5X2luaXQodm9pZCk7CmV4dGVybiBp
bnQgbXhzZXJfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBtb3hhX2luaXQodm9pZCk7CmV4dGVybiBp
bnQgaXAyX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcGN4ZV9pbml0KHZvaWQpOwpleHRlcm4gaW50
IHBjX2luaXQodm9pZCk7CmV4dGVybiBpbnQgdmNzX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcnBf
aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBjeV9pbml0KHZvaWQpOwpleHRlcm4gaW50IHN0bF9pbml0
KHZvaWQpOwpleHRlcm4gaW50IHN0bGlfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBzcGVjaWFsaXhf
aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBlc3BzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBt
YWNzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBhMjIzMmJvYXJkX2luaXQodm9pZCk7Cgpl
eHRlcm4gaW50IHR0eV9wYXJhbm9pYV9jaGVjayhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBrZGV2
X3QgZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyb3V0
aW5lKTsKZXh0ZXJuIGNoYXIgKnR0eV9uYW1lKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIg
KmJ1Zik7CmV4dGVybiB2b2lkIHR0eV93YWl0X3VudGlsX3NlbnRfUnNtcF9mZGNiMjQ1ZihzdHJ1
Y3QgdHR5X3N0cnVjdCAqIHR0eSwgbG9uZyB0aW1lb3V0KTsKZXh0ZXJuIGludCB0dHlfY2hlY2tf
Y2hhbmdlX1JzbXBfODQ4YTdiZjAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHkpOwpleHRlcm4gdm9p
ZCBzdG9wX3R0eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiB2b2lkIHN0YXJ0X3R0
eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2xkaXNj
X1JzbXBfODY5YzA4YjUoaW50IGRpc2MsIHN0cnVjdCB0dHlfbGRpc2MgKm5ld19sZGlzYyk7CmV4
dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2RyaXZlcl9Sc21wXzRhMDZlZDNmKHN0cnVjdCB0dHlfZHJp
dmVyICpkcml2ZXIpOwpleHRlcm4gaW50IHR0eV91bnJlZ2lzdGVyX2RyaXZlcl9Sc21wXzJmYWU0
YWI1KHN0cnVjdCB0dHlfZHJpdmVyICpkcml2ZXIpOwpleHRlcm4gdm9pZCB0dHlfcmVnaXN0ZXJf
ZGV2ZnNfUnNtcF8yNzFmMTIzNCAoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQg
aW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1pbm9y
KTsKZXh0ZXJuIHZvaWQgdHR5X3VucmVnaXN0ZXJfZGV2ZnNfUnNtcF8wMDhhN2E0MiAoc3RydWN0
IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQgbWlub3IpOwpleHRlcm4gaW50IHR0eV9yZWFk
X3Jhd19kYXRhKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHVuc2lnbmVkIGNoYXIgKmJ1ZnAsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1Zmxlbik7CmV4dGVybiB2b2lkIHR0eV93
cml0ZV9tZXNzYWdlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgKm1zZyk7CgpleHRlcm4g
aW50IGlzX29ycGhhbmVkX3BncnAoaW50IHBncnApOwpleHRlcm4gaW50IGlzX2lnbm9yZWQoaW50
IHNpZyk7CmV4dGVybiBpbnQgdHR5X3NpZ25hbChpbnQgc2lnLCBzdHJ1Y3QgdHR5X3N0cnVjdCAq
dHR5KTsKZXh0ZXJuIHZvaWQgdHR5X2hhbmd1cF9Sc21wX2ZlYWU0NjVmKHN0cnVjdCB0dHlfc3Ry
dWN0ICogdHR5KTsKZXh0ZXJuIHZvaWQgdHR5X3ZoYW5ndXAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0
dHkpOwpleHRlcm4gdm9pZCB0dHlfdW5oYW5ndXAoc3RydWN0IGZpbGUgKmZpbHApOwpleHRlcm4g
aW50IHR0eV9odW5nX3VwX3BfUnNtcF8xNzdkNGI3OChzdHJ1Y3QgZmlsZSAqIGZpbHApOwpleHRl
cm4gdm9pZCBkb19TQUtfUnNtcF9lMmJhYzdjYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKZXh0
ZXJuIHZvaWQgZGlzYXNzb2NpYXRlX2N0dHkoaW50IHByaXYpOwpleHRlcm4gdm9pZCB0dHlfZmxp
cF9idWZmZXJfcHVzaF9Sc21wXzA0Njk3NDcyKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwpleHRl
cm4gaW50IHR0eV9nZXRfYmF1ZF9yYXRlX1JzbXBfNTBkZTg3Y2Eoc3RydWN0IHR0eV9zdHJ1Y3Qg
KnR0eSk7CgoKZXh0ZXJuIHN0cnVjdCB0dHlfbGRpc2MgdHR5X2xkaXNjX05fVFRZOwoKCmV4dGVy
biBpbnQgbl90dHlfaW9jdGxfUnNtcF83NmUyMGI3MChzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwg
c3RydWN0IGZpbGUgKiBmaWxlLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBj
bWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKCgoKZXh0ZXJuIHZvaWQgc2VyaWFsX2NvbnNvbGVfaW5p
dCh2b2lkKTsKCgoKZXh0ZXJuIGludCBwY3hlX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwg
c3RydWN0IGZpbGUgKmZpbHApOwoKCgpleHRlcm4gdm9pZCBjb25zb2xlX3ByaW50X1JzbXBfYjcx
NGE5ODEoY29uc3QgY2hhciAqKTsKCgoKZXh0ZXJuIGludCB2dF9pb2N0bChzdHJ1Y3QgdHR5X3N0
cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NlbS5oIiAxCgojZGVmaW5lIF9MSU5VWF9TRU1fSAoKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAxCgojZGVmaW5lIF9MSU5VWF9JUENfSAoK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA1ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAyCgojZGVmaW5lIElQQ19Q
UklWQVRFICgoX19rZXJuZWxfa2V5X3QpIDApCgoKc3RydWN0IGlwY19wZXJtCnsKICAgICAgICBf
X2tlcm5lbF9rZXlfdCBrZXk7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgdWlkOwogICAgICAgIF9f
a2VybmVsX2dpZF90IGdpZDsKICAgICAgICBfX2tlcm5lbF91aWRfdCBjdWlkOwogICAgICAgIF9f
a2VybmVsX2dpZF90IGNnaWQ7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IG1vZGU7CiAgICAgICAg
dW5zaWduZWQgc2hvcnQgc2VxOwp9OwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vaXBjYnVmLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0lQQ0JVRl9ICiMgMTQgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lwY2J1Zi5oIgpzdHJ1Y3QgaXBjNjRfcGVybQp7
CiAgICAgICAgX19rZXJuZWxfa2V5X3Qga2V5OwogICAgICAgIF9fa2VybmVsX3VpZF90IHVpZDsK
ICAgICAgICBfX2tlcm5lbF9naWRfdCBnaWQ7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgY3VpZDsK
ICAgICAgICBfX2tlcm5lbF9naWRfdCBjZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBtb2Rl
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNlcTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBfX3Bh
ZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBfX3VudXNlZDI7Cn07CiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
aXBjLmgiIDIKCgojZGVmaW5lIElQQ19DUkVBVCAwMDAwMTAwMAojZGVmaW5lIElQQ19FWENMIDAw
MDAyMDAwCiNkZWZpbmUgSVBDX05PV0FJVCAwMDAwNDAwMAoKCgoKI2RlZmluZSBJUENfRElQQyAw
MDAxMDAwMAojZGVmaW5lIElQQ19PV04gMDAwMjAwMDAKCgoKCgojZGVmaW5lIElQQ19STUlEIDAK
I2RlZmluZSBJUENfU0VUIDEKI2RlZmluZSBJUENfU1RBVCAyCiNkZWZpbmUgSVBDX0lORk8gMwoK
CgoKCiNkZWZpbmUgSVBDX09MRCAwCgojZGVmaW5lIElQQ182NCAweDAxMDAKCgoKCiNkZWZpbmUg
SVBDTU5JIDMyNzY4CgoKc3RydWN0IGtlcm5faXBjX3Blcm0KewogICAgICAgIGtleV90IGtleTsK
ICAgICAgICB1aWRfdCB1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkOwogICAgICAgIHVpZF90IGN1aWQ7
CiAgICAgICAgZ2lkX3QgY2dpZDsKICAgICAgICBtb2RlX3QgbW9kZTsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHNlcTsKfTsKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nl
bS5oIiAyCgoKI2RlZmluZSBTRU1fVU5ETyAweDEwMDAKCgojZGVmaW5lIEdFVFBJRCAxMQojZGVm
aW5lIEdFVFZBTCAxMgojZGVmaW5lIEdFVEFMTCAxMwojZGVmaW5lIEdFVE5DTlQgMTQKI2RlZmlu
ZSBHRVRaQ05UIDE1CiNkZWZpbmUgU0VUVkFMIDE2CiNkZWZpbmUgU0VUQUxMIDE3CgoKI2RlZmlu
ZSBTRU1fU1RBVCAxOAojZGVmaW5lIFNFTV9JTkZPIDE5CgoKc3RydWN0IHNlbWlkX2RzIHsKICAg
ICAgICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CiAgICAgICAgX19rZXJuZWxfdGltZV90IHNl
bV9vdGltZTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX2N0aW1lOwogICAgICAgIHN0cnVj
dCBzZW0gKnNlbV9iYXNlOwogICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKnNlbV9wZW5kaW5nOwog
ICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKipzZW1fcGVuZGluZ19sYXN0OwogICAgICAgIHN0cnVj
dCBzZW1fdW5kbyAqdW5kbzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnNlbXM7Cn07CgoK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zZW1idWYuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfU0VNQlVGX0gKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vc2VtYnVmLmgiCnN0cnVjdCBzZW1pZDY0X2RzIHsKICAgICAgICBzdHJ1Y3QgaXBjNjRfcGVy
bSBzZW1fcGVybTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX290aW1lOwogICAgICAgIF9f
a2VybmVsX3RpbWVfdCBzZW1fY3RpbWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzZW1fbnNlbXM7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBf
X3VudXNlZDI7Cn07CiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2Vt
LmgiIDIKCgpzdHJ1Y3Qgc2VtYnVmIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnVtOwog
ICAgICAgIHNob3J0IHNlbV9vcDsKICAgICAgICBzaG9ydCBzZW1fZmxnOwp9OwoKCnVuaW9uIHNl
bXVuIHsKICAgICAgICBpbnQgdmFsOwogICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqYnVmOwogICAg
ICAgIHVuc2lnbmVkIHNob3J0ICphcnJheTsKICAgICAgICBzdHJ1Y3Qgc2VtaW5mbyAqX19idWY7
CiAgICAgICAgdm9pZCAqX19wYWQ7Cn07CgpzdHJ1Y3Qgc2VtaW5mbyB7CiAgICAgICAgaW50IHNl
bW1hcDsKICAgICAgICBpbnQgc2VtbW5pOwogICAgICAgIGludCBzZW1tbnM7CiAgICAgICAgaW50
IHNlbW1udTsKICAgICAgICBpbnQgc2VtbXNsOwogICAgICAgIGludCBzZW1vcG07CiAgICAgICAg
aW50IHNlbXVtZTsKICAgICAgICBpbnQgc2VtdXN6OwogICAgICAgIGludCBzZW12bXg7CiAgICAg
ICAgaW50IHNlbWFlbTsKfTsKCiNkZWZpbmUgU0VNTU5JIDEyOAojZGVmaW5lIFNFTU1TTCAyNTAK
I2RlZmluZSBTRU1NTlMgKFNFTU1OSSpTRU1NU0wpCiNkZWZpbmUgU0VNT1BNIDMyCiNkZWZpbmUg
U0VNVk1YIDMyNzY3CgoKI2RlZmluZSBTRU1VTUUgU0VNT1BNCiNkZWZpbmUgU0VNTU5VIFNFTU1O
UwojZGVmaW5lIFNFTUFFTSAoU0VNVk1YID4+IDEpCiNkZWZpbmUgU0VNTUFQIFNFTU1OUwojZGVm
aW5lIFNFTVVTWiAyMAoKCgoKc3RydWN0IHNlbSB7CiAgICAgICAgaW50IHNlbXZhbDsKICAgICAg
ICBpbnQgc2VtcGlkOwp9OwoKCnN0cnVjdCBzZW1fYXJyYXkgewogICAgICAgIHN0cnVjdCBrZXJu
X2lwY19wZXJtIHNlbV9wZXJtOwogICAgICAgIHRpbWVfdCBzZW1fb3RpbWU7CiAgICAgICAgdGlt
ZV90IHNlbV9jdGltZTsKICAgICAgICBzdHJ1Y3Qgc2VtICpzZW1fYmFzZTsKICAgICAgICBzdHJ1
Y3Qgc2VtX3F1ZXVlICpzZW1fcGVuZGluZzsKICAgICAgICBzdHJ1Y3Qgc2VtX3F1ZXVlICoqc2Vt
X3BlbmRpbmdfbGFzdDsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKnVuZG87CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzZW1fbnNlbXM7Cn07CgoKc3RydWN0IHNlbV9xdWV1ZSB7CiAgICAgICAgc3Ry
dWN0IHNlbV9xdWV1ZSAqIG5leHQ7CiAgICAgICAgc3RydWN0IHNlbV9xdWV1ZSAqKiBwcmV2Owog
ICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCogc2xlZXBlcjsKICAgICAgICBzdHJ1Y3Qgc2VtX3Vu
ZG8gKiB1bmRvOwogICAgICAgIGludCBwaWQ7CiAgICAgICAgaW50IHN0YXR1czsKICAgICAgICBz
dHJ1Y3Qgc2VtX2FycmF5ICogc21hOwogICAgICAgIGludCBpZDsKICAgICAgICBzdHJ1Y3Qgc2Vt
YnVmICogc29wczsKICAgICAgICBpbnQgbnNvcHM7CiAgICAgICAgaW50IGFsdGVyOwp9OwoKCgoK
c3RydWN0IHNlbV91bmRvIHsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKiBwcm9jX25leHQ7CiAg
ICAgICAgc3RydWN0IHNlbV91bmRvICogaWRfbmV4dDsKICAgICAgICBpbnQgc2VtaWQ7CiAgICAg
ICAgc2hvcnQgKiBzZW1hZGo7Cn07CgogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkg
bG9uZyBzeXNfc2VtZ2V0IChrZXlfdCBrZXksIGludCBuc2VtcywgaW50IHNlbWZsZyk7CiBfX2F0
dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1vcCAoaW50IHNlbWlkLCBz
dHJ1Y3Qgc2VtYnVmICpzb3BzLCB1bnNpZ25lZCBuc29wcyk7CiBfX2F0dHJpYnV0ZV9fKChzeXNj
YWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1jdGwgKGludCBzZW1pZCwgaW50IHNlbW51bSwgaW50
IGNtZCwgdW5pb24gc2VtdW4gYXJnKTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zaWduYWwuaCIgMQoKI2RlZmluZSBfTElOVVhfU0lHTkFMX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR05B
TF9ICiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NpZ25hbC5oIgojZGVm
aW5lIFNJR0hVUCAxCiNkZWZpbmUgU0lHSU5UIDIKI2RlZmluZSBTSUdRVUlUIDMKI2RlZmluZSBT
SUdJTEwgNAojZGVmaW5lIFNJR1RSQVAgNQojZGVmaW5lIFNJR0FCUlQgNgojZGVmaW5lIFNJR0lP
VCA2CiNkZWZpbmUgU0lHQlVTIDcKI2RlZmluZSBTSUdGUEUgOAojZGVmaW5lIFNJR0tJTEwgOQoj
ZGVmaW5lIFNJR1VTUjEgMTAKI2RlZmluZSBTSUdTRUdWIDExCiNkZWZpbmUgU0lHVVNSMiAxMgoj
ZGVmaW5lIFNJR1BJUEUgMTMKI2RlZmluZSBTSUdBTFJNIDE0CiNkZWZpbmUgU0lHVEVSTSAxNQoj
ZGVmaW5lIFNJR1NUS0ZMVCAxNgojZGVmaW5lIFNJR0NITEQgMTcKI2RlZmluZSBTSUdDT05UIDE4
CiNkZWZpbmUgU0lHU1RPUCAxOQojZGVmaW5lIFNJR1RTVFAgMjAKI2RlZmluZSBTSUdUVElOIDIx
CiNkZWZpbmUgU0lHVFRPVSAyMgojZGVmaW5lIFNJR1VSRyAyMwojZGVmaW5lIFNJR1hDUFUgMjQK
I2RlZmluZSBTSUdYRlNaIDI1CiNkZWZpbmUgU0lHVlRBTFJNIDI2CiNkZWZpbmUgU0lHUFJPRiAy
NwojZGVmaW5lIFNJR1dJTkNIIDI4CiNkZWZpbmUgU0lHSU8gMjkKI2RlZmluZSBTSUdQT0xMIFNJ
R0lPCgoKCiNkZWZpbmUgU0lHUFdSIDMwCiNkZWZpbmUgU0lHU1lTIDMxCgojZGVmaW5lIFNJR1VO
VVNFRCAzMQoKCiNkZWZpbmUgU0lHUlRNSU4gMzIKI2RlZmluZSBTSUdSVE1BWCAoX05TSUctMSkK
IyA2OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUg
U0FfTk9DTERTVE9QIDB4MDAwMDAwMDEKI2RlZmluZSBTQV9OT0NMRFdBSVQgMHgwMDAwMDAwMgoj
ZGVmaW5lIFNBX1NJR0lORk8gMHgwMDAwMDAwNAojZGVmaW5lIFNBX09OU1RBQ0sgMHgwODAwMDAw
MAojZGVmaW5lIFNBX1JFU1RBUlQgMHgxMDAwMDAwMAojZGVmaW5lIFNBX05PREVGRVIgMHg0MDAw
MDAwMAojZGVmaW5lIFNBX1JFU0VUSEFORCAweDgwMDAwMDAwCgojZGVmaW5lIFNBX05PTUFTSyBT
QV9OT0RFRkVSCiNkZWZpbmUgU0FfT05FU0hPVCBTQV9SRVNFVEhBTkQKI2RlZmluZSBTQV9JTlRF
UlJVUFQgMHgyMDAwMDAwMAoKI2RlZmluZSBTQV9SRVNUT1JFUiAweDA0MDAwMDAwCgoKCgojZGVm
aW5lIFNTX09OU1RBQ0sgMQojZGVmaW5lIFNTX0RJU0FCTEUgMgoKI2RlZmluZSBNSU5TSUdTVEtT
WiAyMDQ4CiNkZWZpbmUgU0lHU1RLU1ogODE5MgoKCgojZGVmaW5lIF9OU0lHIDY0CiNkZWZpbmUg
X05TSUdfQlBXIDY0CiNkZWZpbmUgX05TSUdfV09SRFMgKF9OU0lHIC8gX05TSUdfQlBXKQojIDEw
NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUgU0Ff
UFJPQkUgU0FfT05FU0hPVAojZGVmaW5lIFNBX1NBTVBMRV9SQU5ET00gU0FfUkVTVEFSVAojZGVm
aW5lIFNBX1NISVJRIDB4MDQwMDAwMDAKCgoKI2RlZmluZSBTSUdfQkxPQ0sgMAojZGVmaW5lIFNJ
R19VTkJMT0NLIDEKI2RlZmluZSBTSUdfU0VUTUFTSyAyCgojZGVmaW5lIFNJR19ERkwgKChfX3Np
Z2hhbmRsZXJfdCkwKQojZGVmaW5lIFNJR19JR04gKChfX3NpZ2hhbmRsZXJfdCkxKQojZGVmaW5l
IFNJR19FUlIgKChfX3NpZ2hhbmRsZXJfdCktMSkKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvYXNtL3NpZ25hbC5oIiAyCgoKc3RydWN0IHNpZ2luZm87CgoKdHlwZWRlZiB2b2lkICgq
X19zaWdoYW5kbGVyX3QpKGludCk7Cgp0eXBlZGVmIHN0cnVjdCBzaWdhbHRzdGFjayB7CiAgICAg
ICAgdm9pZCAqc3Nfc3A7CiAgICAgICAgaW50IHNzX2ZsYWdzOwogICAgICAgIHNpemVfdCBzc19z
aXplOwp9IHN0YWNrX3Q7CgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2lnc2V0X3Q7
Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWdbKDY0IC8gNjQpXTsK
fSBzaWdzZXRfdDsKCnN0cnVjdCBzaWdhY3Rpb24gewogICAgICAgIF9fc2lnaGFuZGxlcl90IHNh
X2hhbmRsZXI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKICAgICAgICBzaWdzZXRf
dCBzYV9tYXNrOwp9OwoKc3RydWN0IGtfc2lnYWN0aW9uIHsKICAgICAgICBzdHJ1Y3Qgc2lnYWN0
aW9uIHNhOwp9OwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdjb250
ZXh0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0NPTlRFWFRfSAoKCgoKCgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaCIgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdf
T05TVEFDS19CSVQgMQojZGVmaW5lIElBNjRfU0NfRkxBR19JTl9TWVNDQUxMX0JJVCAxCiNkZWZp
bmUgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdfT05T
VEFDSyAoMSA8PCBJQTY0X1NDX0ZMQUdfT05TVEFDS19CSVQpCiNkZWZpbmUgSUE2NF9TQ19GTEFH
X0lOX1NZU0NBTEwgKDEgPDwgSUE2NF9TQ19GTEFHX0lOX1NZU0NBTExfQklUKQojZGVmaW5lIElB
NjRfU0NfRkxBR19GUEhfVkFMSUQgKDEgPDwgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQpCgoK
CnN0cnVjdCBzaWdjb250ZXh0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2ZsYWdzOwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgc2NfbmF0OwogICAgICAgIHN0YWNrX3Qgc2Nfc3RhY2s7CgogICAg
ICAgIHVuc2lnbmVkIGxvbmcgc2NfaXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19jZm07CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBzY191bTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3Jz
YzsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX2JzcDsKICAgICAgICB1bnNpZ25lZCBsb25n
IHNjX2FyX3JuYXQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19hcl9jY3Y7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzY19hcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfYXJfZnBzcjsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3BmczsKICAgICAgICB1bnNpZ25lZCBsb25nIHNj
X2FyX2xjOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfcHI7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBzY19icls4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19nclszMl07CiAgICAgICAgc3Ry
dWN0IGlhNjRfZnByZWcgc2NfZnJbMTI4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19yc3Zk
WzE2XTsKCgoKCgogICAgICAgIHNpZ3NldF90IHNjX21hc2s7Cn07CiMgMTU3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMgojIDUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc2lnbmFsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9zaWdpbmZvLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0lORk9fSAoKCgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnR5cGVkZWYg
dW5pb24gc2lndmFsIHsKICAgICAgICBpbnQgc2l2YWxfaW50OwogICAgICAgIHZvaWQgKnNpdmFs
X3B0cjsKfSBzaWd2YWxfdDsKCiNkZWZpbmUgU0lfTUFYX1NJWkUgMTI4CiNkZWZpbmUgU0lfUEFE
X1NJWkUgKChTSV9NQVhfU0laRS9zaXplb2YoaW50KSkgLSA0KQoKdHlwZWRlZiBzdHJ1Y3Qgc2ln
aW5mbyB7CiAgICAgICAgaW50IHNpX3NpZ25vOwogICAgICAgIGludCBzaV9lcnJubzsKICAgICAg
ICBpbnQgc2lfY29kZTsKICAgICAgICBpbnQgX19wYWQwOwoKICAgICAgICB1bmlvbiB7CiAgICAg
ICAgICAgICAgICBpbnQgX3BhZFsoKDEyOC9zaXplb2YoaW50KSkgLSA0KV07CgoKICAgICAgICAg
ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBpZF90IF9waWQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgIHVpZF90IF91aWQ7CiAgICAgICAgICAgICAgICB9IF9raWxsOwoK
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgX3RpbWVyMTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF90aW1l
cjI7CiAgICAgICAgICAgICAgICB9IF90aW1lcjsKCgogICAgICAgICAgICAgICAgc3RydWN0IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3QgX3BpZDsKICAgICAgICAgICAgICAgICAgICAg
ICAgdWlkX3QgX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgc2lndmFsX3QgX3NpZ3ZhbDsK
ICAgICAgICAgICAgICAgIH0gX3J0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAg
ICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1aWRf
dCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3N0YXR1czsKICAgICAgICAgICAg
ICAgICAgICAgICAgY2xvY2tfdCBfdXRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsb2Nr
X3QgX3N0aW1lOwogICAgICAgICAgICAgICAgfSBfc2lnY2hsZDsKCgogICAgICAgICAgICAgICAg
c3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqX2FkZHI7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBfaW1tOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3BhZDA7
CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX2lzcjsKICAgICAgICAgICAg
ICAgIH0gX3NpZ2ZhdWx0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAg
ICAgICAgICAgICBsb25nIF9iYW5kOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX2ZkOwog
ICAgICAgICAgICAgICAgfSBfc2lncG9sbDsKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1
aWRfdCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9wZm1fb3Zm
bF9jb3VudGVyczsKICAgICAgICAgICAgICAgIH0gX3NpZ3Byb2Y7CiAgICAgICAgfSBfc2lmaWVs
ZHM7Cn0gc2lnaW5mb190OwoKCgoKI2RlZmluZSBzaV9waWQgX3NpZmllbGRzLl9raWxsLl9waWQK
I2RlZmluZSBzaV91aWQgX3NpZmllbGRzLl9raWxsLl91aWQKI2RlZmluZSBzaV9zdGF0dXMgX3Np
ZmllbGRzLl9zaWdjaGxkLl9zdGF0dXMKI2RlZmluZSBzaV91dGltZSBfc2lmaWVsZHMuX3NpZ2No
bGQuX3V0aW1lCiNkZWZpbmUgc2lfc3RpbWUgX3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQojZGVm
aW5lIHNpX3ZhbHVlIF9zaWZpZWxkcy5fcnQuX3NpZ3ZhbAojZGVmaW5lIHNpX2ludCBfc2lmaWVs
ZHMuX3J0Ll9zaWd2YWwuc2l2YWxfaW50CiNkZWZpbmUgc2lfcHRyIF9zaWZpZWxkcy5fcnQuX3Np
Z3ZhbC5zaXZhbF9wdHIKI2RlZmluZSBzaV9hZGRyIF9zaWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIK
I2RlZmluZSBzaV9pbW0gX3NpZmllbGRzLl9zaWdmYXVsdC5faW1tCiNkZWZpbmUgc2lfaXNyIF9z
aWZpZWxkcy5fc2lnZmF1bHQuX2lzcgojZGVmaW5lIHNpX2JhbmQgX3NpZmllbGRzLl9zaWdwb2xs
Ll9iYW5kCiNkZWZpbmUgc2lfZmQgX3NpZmllbGRzLl9zaWdwb2xsLl9mZAojZGVmaW5lIHNpX3Bm
bV9vdmZsIF9zaWZpZWxkcy5fc2lncHJvZi5fcGZtX292ZmxfY291bnRlcnMKCgoKCgoKI2RlZmlu
ZSBfX1NJX01BU0sgMHhmZmZmMDAwMAojZGVmaW5lIF9fU0lfS0lMTCAoMCA8PCAxNikKI2RlZmlu
ZSBfX1NJX1RJTUVSICgxIDw8IDE2KQojZGVmaW5lIF9fU0lfUE9MTCAoMiA8PCAxNikKI2RlZmlu
ZSBfX1NJX0ZBVUxUICgzIDw8IDE2KQojZGVmaW5lIF9fU0lfQ0hMRCAoNCA8PCAxNikKI2RlZmlu
ZSBfX1NJX1JUICg1IDw8IDE2KQojZGVmaW5lIF9fU0lfUFJPRiAoNiA8PCAxNikKI2RlZmluZSBf
X1NJX0NPREUoVCwgTikgKChUKSA8PCAxNiB8ICgoTikgJiAweGZmZmYpKQojIDEyMCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJX1VTRVIgMAoj
ZGVmaW5lIFNJX0tFUk5FTCAweDgwCiNkZWZpbmUgU0lfUVVFVUUgLTEKI2RlZmluZSBTSV9USU1F
UiBfX1NJX0NPREUoX19TSV9USU1FUiwtMikKI2RlZmluZSBTSV9NRVNHUSAtMwojZGVmaW5lIFNJ
X0FTWU5DSU8gLTQKI2RlZmluZSBTSV9TSUdJTyAtNQoKI2RlZmluZSBTSV9GUk9NVVNFUihzaXB0
cikgKChzaXB0ciktPnNpX2NvZGUgPD0gMCkKI2RlZmluZSBTSV9GUk9NS0VSTkVMKHNpcHRyKSAo
KHNpcHRyKS0+c2lfY29kZSA+IDApCgoKCgojZGVmaW5lIElMTF9JTExPUEMgKF9fU0lfRkFVTFR8
MSkKI2RlZmluZSBJTExfSUxMT1BOIChfX1NJX0ZBVUxUfDIpCiNkZWZpbmUgSUxMX0lMTEFEUiAo
X19TSV9GQVVMVHwzKQojZGVmaW5lIElMTF9JTExUUlAgKF9fU0lfRkFVTFR8NCkKI2RlZmluZSBJ
TExfUFJWT1BDIChfX1NJX0ZBVUxUfDUpCiNkZWZpbmUgSUxMX1BSVlJFRyAoX19TSV9GQVVMVHw2
KQojZGVmaW5lIElMTF9DT1BST0MgKF9fU0lfRkFVTFR8NykKI2RlZmluZSBJTExfQkFEU1RLIChf
X1NJX0ZBVUxUfDgpCiNkZWZpbmUgSUxMX0JBRElBRERSIChfX1NJX0ZBVUxUfDkpCiNkZWZpbmUg
X19JTExfQlJFQUsgKF9fU0lfRkFVTFR8MTApCiNkZWZpbmUgTlNJR0lMTCAxMAoKCgoKI2RlZmlu
ZSBGUEVfSU5URElWIChfX1NJX0ZBVUxUfDEpCiNkZWZpbmUgRlBFX0lOVE9WRiAoX19TSV9GQVVM
VHwyKQojZGVmaW5lIEZQRV9GTFRESVYgKF9fU0lfRkFVTFR8MykKI2RlZmluZSBGUEVfRkxUT1ZG
IChfX1NJX0ZBVUxUfDQpCiNkZWZpbmUgRlBFX0ZMVFVORCAoX19TSV9GQVVMVHw1KQojZGVmaW5l
IEZQRV9GTFRSRVMgKF9fU0lfRkFVTFR8NikKI2RlZmluZSBGUEVfRkxUSU5WIChfX1NJX0ZBVUxU
fDcpCiNkZWZpbmUgRlBFX0ZMVFNVQiAoX19TSV9GQVVMVHw4KQojZGVmaW5lIF9fRlBFX0RFQ09W
RiAoX19TSV9GQVVMVHw5KQojZGVmaW5lIF9fRlBFX0RFQ0RJViAoX19TSV9GQVVMVHwxMCkKI2Rl
ZmluZSBfX0ZQRV9ERUNFUlIgKF9fU0lfRkFVTFR8MTEpCiNkZWZpbmUgX19GUEVfSU5WQVNDIChf
X1NJX0ZBVUxUfDEyKQojZGVmaW5lIF9fRlBFX0lOVkRFQyAoX19TSV9GQVVMVHwxMykKI2RlZmlu
ZSBOU0lHRlBFIDEzCgoKCgojZGVmaW5lIFNFR1ZfTUFQRVJSIChfX1NJX0ZBVUxUfDEpCiNkZWZp
bmUgU0VHVl9BQ0NFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBfX1NFR1ZfUFNUS09WRiAoX19T
SV9GQVVMVHwzKQojZGVmaW5lIE5TSUdTRUdWIDMKCgoKCiNkZWZpbmUgQlVTX0FEUkFMTiAoX19T
SV9GQVVMVHwxKQojZGVmaW5lIEJVU19BRFJFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBCVVNf
T0JKRVJSIChfX1NJX0ZBVUxUfDMpCiNkZWZpbmUgTlNJR0JVUyAzCgoKCgojZGVmaW5lIFRSQVBf
QlJLUFQgKF9fU0lfRkFVTFR8MSkKI2RlZmluZSBUUkFQX1RSQUNFIChfX1NJX0ZBVUxUfDIpCiNk
ZWZpbmUgVFJBUF9CUkFOQ0ggKF9fU0lfRkFVTFR8MykKI2RlZmluZSBUUkFQX0hXQktQVCAoX19T
SV9GQVVMVHw0KQojZGVmaW5lIE5TSUdUUkFQIDQKCgoKCiNkZWZpbmUgQ0xEX0VYSVRFRCAoX19T
SV9DSExEfDEpCiNkZWZpbmUgQ0xEX0tJTExFRCAoX19TSV9DSExEfDIpCiNkZWZpbmUgQ0xEX0RV
TVBFRCAoX19TSV9DSExEfDMpCiNkZWZpbmUgQ0xEX1RSQVBQRUQgKF9fU0lfQ0hMRHw0KQojZGVm
aW5lIENMRF9TVE9QUEVEIChfX1NJX0NITER8NSkKI2RlZmluZSBDTERfQ09OVElOVUVEIChfX1NJ
X0NITER8NikKI2RlZmluZSBOU0lHQ0hMRCA2CgoKCgojZGVmaW5lIFBPTExfSU4gKF9fU0lfUE9M
THwxKQojZGVmaW5lIFBPTExfT1VUIChfX1NJX1BPTEx8MikKI2RlZmluZSBQT0xMX01TRyAoX19T
SV9QT0xMfDMpCiNkZWZpbmUgUE9MTF9FUlIgKF9fU0lfUE9MTHw0KQojZGVmaW5lIFBPTExfUFJJ
IChfX1NJX1BPTEx8NSkKI2RlZmluZSBQT0xMX0hVUCAoX19TSV9QT0xMfDYpCiNkZWZpbmUgTlNJ
R1BPTEwgNgoKCgoKI2RlZmluZSBQUk9GX09WRkwgKF9fU0lfUFJPRnwxKQojIDIyMyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJR0VWX1NJR05B
TCAwCiNkZWZpbmUgU0lHRVZfTk9ORSAxCiNkZWZpbmUgU0lHRVZfVEhSRUFEIDIKCiNkZWZpbmUg
U0lHRVZfTUFYX1NJWkUgNjQKI2RlZmluZSBTSUdFVl9QQURfU0laRSAoKFNJR0VWX01BWF9TSVpF
L3NpemVvZihpbnQpKSAtIDQpCgp0eXBlZGVmIHN0cnVjdCBzaWdldmVudCB7CiAgICAgICAgc2ln
dmFsX3Qgc2lnZXZfdmFsdWU7CiAgICAgICAgaW50IHNpZ2V2X3NpZ25vOwogICAgICAgIGludCBz
aWdldl9ub3RpZnk7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50IF9wYWRbKCg2
NC9zaXplb2YoaW50KSkgLSA0KV07CgogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCAoKl9mdW5jdGlvbikoc2lndmFsX3QpOwogICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkICpfYXR0cmlidXRlOwogICAgICAgICAgICAgICAgfSBfc2lnZXZfdGhy
ZWFkOwogICAgICAgIH0gX3NpZ2V2X3VuOwp9IHNpZ2V2ZW50X3Q7CgojZGVmaW5lIHNpZ2V2X25v
dGlmeV9mdW5jdGlvbiBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fZnVuY3Rpb24KI2RlZmluZSBz
aWdldl9ub3RpZnlfYXR0cmlidXRlcyBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fYXR0cmlidXRl
CgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAxCiMg
MjQ5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnN0YXRp
YyBpbmxpbmUgdm9pZApjb3B5X3NpZ2luZm8gKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJv
bSkKewogICAgICAgIGlmIChmcm9tLT5zaV9jb2RlIDwgMCkKICAgICAgICAgICAgICAgIG1lbWNw
eSh0bywgZnJvbSwgc2l6ZW9mKHNpZ2luZm9fdCkpOwogICAgICAgIGVsc2UKCiAgICAgICAgICAg
ICAgICBtZW1jcHkodG8sIGZyb20sIDMqc2l6ZW9mKGludCkgKyBzaXplb2YoZnJvbS0+X3NpZmll
bGRzLl9zaWdjaGxkKSk7Cn0KCmV4dGVybiBpbnQgY29weV9zaWdpbmZvX3RvX3VzZXIoc2lnaW5m
b190ICp0bywgc2lnaW5mb190ICpmcm9tKTsKZXh0ZXJuIGludCBjb3B5X3NpZ2luZm9fZnJvbV91
c2VyKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJvbSk7CiMgNiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgoKCgpzdHJ1Y3Qgc2lncXVldWUgewog
ICAgICAgIHN0cnVjdCBzaWdxdWV1ZSAqbmV4dDsKICAgICAgICBzaWdpbmZvX3QgaW5mbzsKfTsK
CnN0cnVjdCBzaWdwZW5kaW5nIHsKICAgICAgICBzdHJ1Y3Qgc2lncXVldWUgKmhlYWQsICoqdGFp
bDsKICAgICAgICBzaWdzZXRfdCBzaWduYWw7Cn07CgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0
KHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBf
c2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQpID09IDEpCiAgICAgICAgICAgICAgICBzZXQt
PnNpZ1swXSB8PSAxVUwgPDwgc2lnOwogICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHNldC0+
c2lnW3NpZyAvIDY0XSB8PSAxVUwgPDwgKHNpZyAlIDY0KTsKfQoKc3RhdGljIGlubGluZSB2b2lk
IHNpZ2RlbHNldChzaWdzZXRfdCAqc2V0LCBpbnQgX3NpZykKewogICAgICAgIHVuc2lnbmVkIGxv
bmcgc2lnID0gX3NpZyAtIDE7CiAgICAgICAgaWYgKCg2NCAvIDY0KSA9PSAxKQogICAgICAgICAg
ICAgICAgc2V0LT5zaWdbMF0gJj0gfigxVUwgPDwgc2lnKTsKICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICBzZXQtPnNpZ1tzaWcgLyA2NF0gJj0gfigxVUwgPDwgKHNpZyAlIDY0KSk7Cn0KCnN0
YXRpYyBpbmxpbmUgaW50IHNpZ2lzbWVtYmVyKHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBfc2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQp
ID09IDEpCiAgICAgICAgICAgICAgICByZXR1cm4gMSAmIChzZXQtPnNpZ1swXSA+PiBzaWcpOwog
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiAxICYgKHNldC0+c2lnW3NpZyAvIDY0
XSA+PiAoc2lnICUgNjQpKTsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lnZmluZGlud29yZCh1bnNp
Z25lZCBsb25nIHdvcmQpCnsKICAgICAgICByZXR1cm4gZmZ6KH53b3JkKTsKfQoKI2RlZmluZSBz
aWdtYXNrKHNpZykgKDFVTCA8PCAoKHNpZykgLSAxKSkKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMQojIDY5ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIiAyCgojZGVmaW5lIF9TSUdfU0VUX0JJTk9QKG5hbWUs
IG9wKSBzdGF0aWMgaW5saW5lIHZvaWQgbmFtZShzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3Qg
KmEsIGNvbnN0IHNpZ3NldF90ICpiKSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIw
LCBiMSwgYjIsIGIzOyB1bnNpZ25lZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCBfTlNJR19XT1JE
Uy80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0g
YS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIx
ID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9IGItPnNpZ1s0KmkrM107
IHItPnNpZ1s0KmkrMF0gPSBvcChhMCwgYjApOyByLT5zaWdbNCppKzFdID0gb3AoYTEsIGIxKTsg
ci0+c2lnWzQqaSsyXSA9IG9wKGEyLCBiMik7IHItPnNpZ1s0KmkrM10gPSBvcChhMywgYjMpOyB9
IHN3aXRjaCAoX05TSUdfV09SRFMgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdbNCppKzBdOyBh
MSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5zaWdbNCppKzBd
OyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2lnWzQqaSswXSA9
IG9wKGEwLCBiMCk7IHItPnNpZ1s0KmkrMV0gPSBvcChhMSwgYjEpOyByLT5zaWdbNCppKzJdID0g
b3AoYTIsIGIyKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp
Z1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5zaWdbNCppKzFdOyByLT5zaWdb
NCppKzBdID0gb3AoYTAsIGIwKTsgci0+c2lnWzQqaSsxXSA9IG9wKGExLCBiMSk7IGJyZWFrOyBj
YXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBiLT5zaWdbNCppKzBdOyByLT5zaWdbNCpp
KzBdID0gb3AoYTAsIGIwKTsgYnJlYWs7IH0gfQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaWduYWwuaCIKI2RlZmluZSBfc2lnX29yKHgsIHkpICgoeCkgfCAoeSkp
CnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdvcnNldHMoc2lnc2V0X3QgKnIsIGNvbnN0IHNpZ3NldF90
ICphLCBjb25zdCBzaWdzZXRfdCAqYikgeyB1bnNpZ25lZCBsb25nIGEwLCBhMSwgYTIsIGEzLCBi
MCwgYjEsIGIyLCBiMzsgdW5zaWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQp
LzQ7ICsraSkgeyBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBh
LT5zaWdbNCppKzJdOyBhMyA9IGEtPnNpZ1s0KmkrM107IGIwID0gYi0+c2lnWzQqaSswXTsgYjEg
PSBiLT5zaWdbNCppKzFdOyBiMiA9IGItPnNpZ1s0KmkrMl07IGIzID0gYi0+c2lnWzQqaSszXTsg
ci0+c2lnWzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChi
MSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgci0+c2lnWzQqaSszXSA9ICgoYTMp
IHwgKGIzKSk7IH0gc3dpdGNoICgoNjQgLyA2NCkgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdb
NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5z
aWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2ln
WzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChiMSkpOyBy
LT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdb
NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5z
aWdbNCppKzFdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgci0+c2lnWzQqaSsxXSA9
ICgoYTEpIHwgKGIxKSk7IGJyZWFrOyBjYXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBi
LT5zaWdbNCppKzBdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgYnJlYWs7IH0gfQoK
I2RlZmluZSBfc2lnX2FuZCh4LCB5KSAoKHgpICYgKHkpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2ln
YW5kc2V0cyhzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3QgKmEsIGNvbnN0IHNpZ3NldF90ICpi
KSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIwLCBiMSwgYjIsIGIzOyB1bnNpZ25l
ZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCAoNjQgLyA2NCkvNDsgKytpKSB7IGEwID0gYS0+c2ln
WzQqaSswXTsgYTEgPSBhLT5zaWdbNCppKzFdOyBhMiA9IGEtPnNpZ1s0KmkrMl07IGEzID0gYS0+
c2lnWzQqaSszXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0g
Yi0+c2lnWzQqaSsyXTsgYjMgPSBiLT5zaWdbNCppKzNdOyByLT5zaWdbNCppKzBdID0gKChhMCkg
JiAoYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAo
KGEyKSAmIChiMikpOyByLT5zaWdbNCppKzNdID0gKChhMykgJiAoYjMpKTsgfSBzd2l0Y2ggKCg2
NCAvIDY0KSAlIDQpIHsgY2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq
aSsxXTsgYTIgPSBhLT5zaWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2ln
WzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiAoYjAp
KTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAoKGEyKSAm
IChiMikpOyBicmVhazsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq
aSsxXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0Kmkr
MF0gPSAoKGEwKSAmIChiMCkpOyByLT5zaWdbNCppKzFdID0gKChhMSkgJiAoYjEpKTsgYnJlYWs7
IGNhc2UgMTogYTAgPSBhLT5zaWdbNCppKzBdOyBiMCA9IGItPnNpZ1s0KmkrMF07IHItPnNpZ1s0
KmkrMF0gPSAoKGEwKSAmIChiMCkpOyBicmVhazsgfSB9CgojZGVmaW5lIF9zaWdfbmFuZCh4LCB5
KSAoKHgpICYgfih5KSkKc3RhdGljIGlubGluZSB2b2lkIHNpZ25hbmRzZXRzKHNpZ3NldF90ICpy
LCBjb25zdCBzaWdzZXRfdCAqYSwgY29uc3Qgc2lnc2V0X3QgKmIpIHsgdW5zaWduZWQgbG9uZyBh
MCwgYTEsIGEyLCBhMywgYjAsIGIxLCBiMiwgYjM7IHVuc2lnbmVkIGxvbmcgaTsgZm9yIChpID0g
MDsgaSA8ICg2NCAvIDY0KS80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp
Z1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGIt
PnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9
IGItPnNpZ1s0KmkrM107IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAmIH4oYjApKTsgci0+c2lnWzQq
aSsxXSA9ICgoYTEpICYgfihiMSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgJiB+KGIyKSk7IHIt
PnNpZ1s0KmkrM10gPSAoKGEzKSAmIH4oYjMpKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAlIDQpIHsg
Y2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBhLT5z
aWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBi
LT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiB+KGIwKSk7IHItPnNpZ1s0Kmkr
MV0gPSAoKGExKSAmIH4oYjEpKTsgci0+c2lnWzQqaSsyXSA9ICgoYTIpICYgfihiMikpOyBicmVh
azsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYjAgPSBi
LT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAm
IH4oYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgfihiMSkpOyBicmVhazsgY2FzZSAxOiBh
MCA9IGEtPnNpZ1s0KmkrMF07IGIwID0gYi0+c2lnWzQqaSswXTsgci0+c2lnWzQqaSswXSA9ICgo
YTApICYgfihiMCkpOyBicmVhazsgfSB9CgojdW5kZWYgX1NJR19TRVRfQklOT1AKI3VuZGVmIF9z
aWdfb3IKI3VuZGVmIF9zaWdfYW5kCiN1bmRlZiBfc2lnX25hbmQKCiNkZWZpbmUgX1NJR19TRVRf
T1AobmFtZSwgb3ApIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHNpZ3NldF90ICpzZXQpIHsgdW5z
aWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgX05TSUdfV09SRFMvNDsgKytpKSB7IHNldC0+
c2lnWzQqaSswXSA9IG9wKHNldC0+c2lnWzQqaSswXSk7IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNl
dC0+c2lnWzQqaSsxXSk7IHNldC0+c2lnWzQqaSsyXSA9IG9wKHNldC0+c2lnWzQqaSsyXSk7IHNl
dC0+c2lnWzQqaSszXSA9IG9wKHNldC0+c2lnWzQqaSszXSk7IH0gc3dpdGNoIChfTlNJR19XT1JE
UyAlIDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSBvcChzZXQtPnNpZ1s0KmkrMl0pOyBj
YXNlIDI6IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNldC0+c2lnWzQqaSsxXSk7IGNhc2UgMTogc2V0
LT5zaWdbNCppKzBdID0gb3Aoc2V0LT5zaWdbNCppKzBdKTsgfSB9CiMgMTM5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIgojZGVmaW5lIF9zaWdfbm90KHgpICh+
KHgpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2lnbm90c2V0KHNpZ3NldF90ICpzZXQpIHsgdW5zaWdu
ZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQpLzQ7ICsraSkgeyBzZXQtPnNpZ1s0
KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgc2V0LT5zaWdbNCppKzFdID0gKH4oc2V0LT5z
aWdbNCppKzFdKSk7IHNldC0+c2lnWzQqaSsyXSA9ICh+KHNldC0+c2lnWzQqaSsyXSkpOyBzZXQt
PnNpZ1s0KmkrM10gPSAofihzZXQtPnNpZ1s0KmkrM10pKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAl
IDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSAofihzZXQtPnNpZ1s0KmkrMl0pKTsgY2Fz
ZSAyOiBzZXQtPnNpZ1s0KmkrMV0gPSAofihzZXQtPnNpZ1s0KmkrMV0pKTsgY2FzZSAxOiBzZXQt
PnNpZ1s0KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgfSB9CgojdW5kZWYgX1NJR19TRVRf
T1AKI3VuZGVmIF9zaWdfbm90CgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnZW1wdHlzZXQoc2lnc2V0
X3QgKnNldCkKewogICAgICAgIHN3aXRjaCAoKDY0IC8gNjQpKSB7CiAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgICAgIG1lbXNldChzZXQsIDAsIHNpemVvZihzaWdzZXRfdCkpOwogICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOiBzZXQtPnNpZ1sxXSA9IDA7CiAgICAgICAg
Y2FzZSAxOiBzZXQtPnNpZ1swXSA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9
Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdmaWxsc2V0KHNpZ3NldF90ICpzZXQpCnsKICAgICAg
ICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBt
ZW1zZXQoc2V0LCAtMSwgc2l6ZW9mKHNpZ3NldF90KSk7CiAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICBjYXNlIDI6IHNldC0+c2lnWzFdID0gLTE7CiAgICAgICAgY2FzZSAxOiBzZXQtPnNp
Z1swXSA9IC0xOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQp9CgpleHRlcm4gY2hh
ciAqIHJlbmRlcl9zaWdzZXRfdChzaWdzZXRfdCAqc2V0LCBjaGFyICpidWZmZXIpOwoKCgpzdGF0
aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25n
IG1hc2spCnsKICAgICAgICBzZXQtPnNpZ1swXSB8PSBtYXNrOwp9CgpzdGF0aWMgaW5saW5lIHZv
aWQgc2lnZGVsc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25nIG1hc2spCnsKICAg
ICAgICBzZXQtPnNpZ1swXSAmPSB+bWFzazsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lndGVzdHNl
dG1hc2soc2lnc2V0X3QgKnNldCwgdW5zaWduZWQgbG9uZyBtYXNrKQp7CiAgICAgICAgcmV0dXJu
IChzZXQtPnNpZ1swXSAmIG1hc2spICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdpbml0
c2V0KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewogICAgICAgIHNldC0+c2ln
WzBdID0gbWFzazsKICAgICAgICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICBtZW1zZXQoJnNldC0+c2lnWzFdLCAwLCBzaXplb2YobG9uZykqKCg2
NCAvIDY0KS0xKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDI6IHNldC0+
c2lnWzFdID0gMDsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZCBzaWdpbml0c2V0aW52KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewog
ICAgICAgIHNldC0+c2lnWzBdID0gfm1hc2s7CiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVtc2V0KCZzZXQtPnNpZ1sxXSwgLTEs
IHNpemVvZihsb25nKSooKDY0IC8gNjQpLTEpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgIGNhc2UgMjogc2V0LT5zaWdbMV0gPSAtMTsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9
Cn0KCgoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfc2lncGVuZGluZyhzdHJ1Y3Qgc2lncGVuZGlu
ZyAqc2lnKQp7CiAgICAgICAgc2lnZW1wdHlzZXQoJnNpZy0+c2lnbmFsKTsKICAgICAgICBzaWct
PmhlYWQgPSAoKHZvaWQgKikwKTsKICAgICAgICBzaWctPnRhaWwgPSAmc2lnLT5oZWFkOwp9Cgpl
eHRlcm4gbG9uZyBkb19zaWdwZW5kaW5nKHZvaWQgKiwgdW5zaWduZWQgbG9uZyk7CiMgMjcgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2VjdXJlYml0cy5oIiAxCgojZGVmaW5lIF9MSU5V
WF9TRUNVUkVCSVRTX0ggMQoKI2RlZmluZSBTRUNVUkVCSVRTX0RFRkFVTFQgMHgwMDAwMDAwMAoK
ZXh0ZXJuIHVuc2lnbmVkIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NDsKCgoKCgoKCiNkZWZpbmUg
U0VDVVJFX05PUk9PVCAwCgoKCgojZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURfRklYVVAgMgoKCgoK
CgojZGVmaW5lIGlzc2VjdXJlKFgpICggKDEgPDwgKFgrMSkpICYgU0VDVVJFQklUU19ERUZBVUxU
ID8gKDEgPDwgKFgpKSAmIFNFQ1VSRUJJVFNfREVGQVVMVCA6ICgxIDw8IChYKSkgJiBzZWN1cmVi
aXRzICkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mc19zdHJ1Y3QuaCIgMQoK
I2RlZmluZSBfTElOVVhfRlNfU1RSVUNUX0gKCgpzdHJ1Y3QgZnNfc3RydWN0IHsKICAgICAgICBh
dG9taWNfdCBjb3VudDsKICAgICAgICByd2xvY2tfdCBsb2NrOwogICAgICAgIGludCB1bWFzazsK
ICAgICAgICBzdHJ1Y3QgZGVudHJ5ICogcm9vdCwgKiBwd2QsICogYWx0cm9vdDsKICAgICAgICBz
dHJ1Y3QgdmZzbW91bnQgKiByb290bW50LCAqIHB3ZG1udCwgKiBhbHRyb290bW50Owp9OwoKI2Rl
ZmluZSBJTklUX0ZTIHsgQVRPTUlDX0lOSVQoMSksIFJXX0xPQ0tfVU5MT0NLRUQsIDAwMjIsIE5V
TEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfQoKCgoKCgpleHRlcm4gdm9pZCBleGl0
X2ZzX1JzbXBfZGM1MzZmNTIoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBzZXRf
ZnNfYWx0cm9vdCh2b2lkKTsKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIHNldF9mc19yb290KHN0
cnVjdCBmc19zdHJ1Y3QgKmZzLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqbW50LAogICAgICAg
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHN0cnVjdCBkZW50cnkgKm9sZF9yb290
OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3Jvb3RtbnQ7CiAgICAgICAgZG8geyBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAw
MDAwMFxuIiAiOztcbiIgIjE6XG4iICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBw
MCxwNyA9IHIwLHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0
LmFjcSByMiA9IFslMF0sIHIyOSwgYXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIw
LCByMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJmZzLT5s
b2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgb2xkX3Jv
b3QgPSBmcy0+cm9vdDsKICAgICAgICBvbGRfcm9vdG1udCA9IGZzLT5yb290bW50OwogICAgICAg
IGZzLT5yb290bW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnJvb3QgPSBkZ2V0KGRlbnRy
eSk7CiAgICAgICAgKHtjbGVhcl9iaXQoMzEsICgmZnMtPmxvY2spKTsgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKTt9KTsKICAgICAgICBpZiAob2xkX3Jvb3QpIHsKICAg
ICAgICAgICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhvbGRfcm9vdCk7CiAgICAgICAgICAgICAg
ICBtbnRwdXQob2xkX3Jvb3RtbnQpOwogICAgICAgIH0KfQoKCgoKCgpzdGF0aWMgaW5saW5lIHZv
aWQgc2V0X2ZzX3B3ZChzdHJ1Y3QgZnNfc3RydWN0ICpmcywKICAgICAgICBzdHJ1Y3QgdmZzbW91
bnQgKm1udCwKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpvbGRfcHdkOwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3B3ZG1udDsKICAg
ICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92
bCByMjkgPSAweDgwMDAwMDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7
XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBc
biIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0
LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4i
IDo6ICJyIigmZnMtPmxvY2spIDogInIyIiwgInIyOSIsICJtZW1vcnkiKTsgfSB3aGlsZSgwKTsK
ICAgICAgICBvbGRfcHdkID0gZnMtPnB3ZDsKICAgICAgICBvbGRfcHdkbW50ID0gZnMtPnB3ZG1u
dDsKICAgICAgICBmcy0+cHdkbW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnB3ZCA9IGRn
ZXQoZGVudHJ5KTsKICAgICAgICAoe2NsZWFyX2JpdCgzMSwgKCZmcy0+bG9jaykpOyBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOwogICAgICAgIGlmIChvbGRfcHdk
KSB7CiAgICAgICAgICAgICAgICBkcHV0X1JzbXBfNTc0ZTZiYTMob2xkX3B3ZCk7CiAgICAgICAg
ICAgICAgICBtbnRwdXQob2xkX3B3ZG1udCk7CiAgICAgICAgfQp9CgpzdHJ1Y3QgZnNfc3RydWN0
ICpjb3B5X2ZzX3N0cnVjdChzdHJ1Y3QgZnNfc3RydWN0ICpvbGQpOwp2b2lkIHB1dF9mc19zdHJ1
Y3Qoc3RydWN0IGZzX3N0cnVjdCAqZnMpOwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiIDIKCgoKCiNkZWZpbmUgQ1NJR05BTCAweDAwMDAwMGZmCiNkZWZp
bmUgQ0xPTkVfVk0gMHgwMDAwMDEwMAojZGVmaW5lIENMT05FX0ZTIDB4MDAwMDAyMDAKI2RlZmlu
ZSBDTE9ORV9GSUxFUyAweDAwMDAwNDAwCiNkZWZpbmUgQ0xPTkVfU0lHSEFORCAweDAwMDAwODAw
CiNkZWZpbmUgQ0xPTkVfUElEIDB4MDAwMDEwMDAKI2RlZmluZSBDTE9ORV9QVFJBQ0UgMHgwMDAw
MjAwMAojZGVmaW5lIENMT05FX1ZGT1JLIDB4MDAwMDQwMDAKI2RlZmluZSBDTE9ORV9QQVJFTlQg
MHgwMDAwODAwMAojZGVmaW5lIENMT05FX1RIUkVBRCAweDAwMDEwMDAwCgojZGVmaW5lIENMT05F
X1NJR05BTCAoQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCkKIyA1NiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBhdmVu
cnVuW107CgojZGVmaW5lIEZTSElGVCAxMQojZGVmaW5lIEZJWEVEXzEgKDE8PEZTSElGVCkKI2Rl
ZmluZSBMT0FEX0ZSRVEgKDUqSFopCiNkZWZpbmUgRVhQXzEgMTg4NAojZGVmaW5lIEVYUF81IDIw
MTQKI2RlZmluZSBFWFBfMTUgMjAzNwoKI2RlZmluZSBDQUxDX0xPQUQobG9hZCwgZXhwLCBuKSBs
b2FkICo9IGV4cDsgbG9hZCArPSBuKihGSVhFRF8xLWV4cCk7IGxvYWQgPj49IEZTSElGVDsKCgoK
CiNkZWZpbmUgQ1RfVE9fU0VDUyh4KSAoKHgpIC8gSFopCiNkZWZpbmUgQ1RfVE9fVVNFQ1MoeCkg
KCgoeCkgJSBIWikgKiAxMDAwMDAwL0haKQoKZXh0ZXJuIGludCBucl9ydW5uaW5nX1JzbXBfY2Ez
YzZkNzgsIG5yX3RocmVhZHM7CmV4dGVybiBpbnQgbGFzdF9waWQ7CgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMQojIDc3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3RpbWUuaCIgMQojIDc4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Bh
cmFtLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BBUkFNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcGFyYW0uaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvcGFyYW0uaCIgMgojIDc5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Jl
c291cmNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1JFU09VUkNFX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9yZXNvdXJjZS5oIgojZGVmaW5lIFJVU0FHRV9TRUxGIDAKI2RlZmluZSBS
VVNBR0VfQ0hJTERSRU4gKC0xKQojZGVmaW5lIFJVU0FHRV9CT1RIICgtMikKCnN0cnVjdCBydXNh
Z2UgewogICAgICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1l
dmFsIHJ1X3N0aW1lOwogICAgICAgIGxvbmcgcnVfbWF4cnNzOwogICAgICAgIGxvbmcgcnVfaXhy
c3M7CiAgICAgICAgbG9uZyBydV9pZHJzczsKICAgICAgICBsb25nIHJ1X2lzcnNzOwogICAgICAg
IGxvbmcgcnVfbWluZmx0OwogICAgICAgIGxvbmcgcnVfbWFqZmx0OwogICAgICAgIGxvbmcgcnVf
bnN3YXA7CiAgICAgICAgbG9uZyBydV9pbmJsb2NrOwogICAgICAgIGxvbmcgcnVfb3VibG9jazsK
ICAgICAgICBsb25nIHJ1X21zZ3NuZDsKICAgICAgICBsb25nIHJ1X21zZ3JjdjsKICAgICAgICBs
b25nIHJ1X25zaWduYWxzOwogICAgICAgIGxvbmcgcnVfbnZjc3c7CiAgICAgICAgbG9uZyBydV9u
aXZjc3c7Cn07CgpzdHJ1Y3QgcmxpbWl0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHJsaW1fY3Vy
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmxpbV9tYXg7Cn07CgojZGVmaW5lIFBSSU9fTUlOICgt
MjApCiNkZWZpbmUgUFJJT19NQVggMjAKCiNkZWZpbmUgUFJJT19QUk9DRVNTIDAKI2RlZmluZSBQ
UklPX1BHUlAgMQojZGVmaW5lIFBSSU9fVVNFUiAyCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9yZXNvdXJjZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SRVNPVVJD
RV9ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Jlc291cmNlLmgiCiNk
ZWZpbmUgUkxJTUlUX0NQVSAwCiNkZWZpbmUgUkxJTUlUX0ZTSVpFIDEKI2RlZmluZSBSTElNSVRf
REFUQSAyCiNkZWZpbmUgUkxJTUlUX1NUQUNLIDMKI2RlZmluZSBSTElNSVRfQ09SRSA0CiNkZWZp
bmUgUkxJTUlUX1JTUyA1CiNkZWZpbmUgUkxJTUlUX05QUk9DIDYKI2RlZmluZSBSTElNSVRfTk9G
SUxFIDcKI2RlZmluZSBSTElNSVRfTUVNTE9DSyA4CiNkZWZpbmUgUkxJTUlUX0FTIDkKI2RlZmlu
ZSBSTElNSVRfTE9DS1MgMTAKCiNkZWZpbmUgUkxJTV9OTElNSVRTIDExCgoKCgoKI2RlZmluZSBS
TElNX0lORklOSVRZICh+MFVMKQoKCgojZGVmaW5lIElOSVRfUkxJTUlUUyB7IHsgUkxJTV9JTkZJ
TklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1fSU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwg
eyBSTElNX0lORklOSVRZLCBSTElNX0lORklOSVRZIH0sIHsgX1NUS19MSU0sIFJMSU1fSU5GSU5J
VFkgfSwgeyAwLCBSTElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklU
WSB9LCB7IDAsIDAgfSwgeyBJTlJfT1BFTiwgSU5SX09QRU4gfSwgeyBSTElNX0lORklOSVRZLCBS
TElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1f
SU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwgfQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyA4MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC90aW1lci5oIiAxCgojZGVmaW5lIF9MSU5VWF9USU1FUl9ICgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdGltZXIuaCIgMgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3RpbWVyLmgiCnN0cnVjdCB0aW1lcl9saXN0IHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxp
c3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcg
ZGF0YTsKICAgICAgICB2b2lkICgqZnVuY3Rpb24pKHVuc2lnbmVkIGxvbmcpOwp9OwoKZXh0ZXJu
IHZvaWQgYWRkX3RpbWVyX1JzbXBfYTE5ZWFjZjgoc3RydWN0IHRpbWVyX2xpc3QgKiB0aW1lcik7
CmV4dGVybiBpbnQgZGVsX3RpbWVyX1JzbXBfZmM2MmYxNmQoc3RydWN0IHRpbWVyX2xpc3QgKiB0
aW1lcik7CgoKZXh0ZXJuIGludCBkZWxfdGltZXJfc3luY19Sc21wX2RhZmYyNjZhKHN0cnVjdCB0
aW1lcl9saXN0ICogdGltZXIpOwpleHRlcm4gdm9pZCBzeW5jX3RpbWVycyh2b2lkKTsKIyA0MSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgppbnQgbW9kX3RpbWVy
X1JzbXBfMWYxM2QzMDkoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4
cGlyZXMpOwoKZXh0ZXJuIHZvaWQgaXRfcmVhbF9mbih1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBp
bmxpbmUgdm9pZCBpbml0X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICogdGltZXIpCnsKICAgICAg
ICB0aW1lci0+bGlzdC5uZXh0ID0gdGltZXItPmxpc3QucHJldiA9ICgodm9pZCAqKTApOwp9Cgpz
dGF0aWMgaW5saW5lIGludCB0aW1lcl9wZW5kaW5nIChjb25zdCBzdHJ1Y3QgdGltZXJfbGlzdCAq
IHRpbWVyKQp7CiAgICAgICAgcmV0dXJuIHRpbWVyLT5saXN0Lm5leHQgIT0gKCh2b2lkICopMCk7
Cn0KIyA2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgojZGVm
aW5lIHRpbWVfYWZ0ZXIoYSwgYikgKChsb25nKShiKSAtIChsb25nKShhKSA8IDApCiNkZWZpbmUg
dGltZV9iZWZvcmUoYSwgYikgdGltZV9hZnRlcihiLGEpCgojZGVmaW5lIHRpbWVfYWZ0ZXJfZXEo
YSwgYikgKChsb25nKShhKSAtIChsb25nKShiKSA+PSAwKQojZGVmaW5lIHRpbWVfYmVmb3JlX2Vx
KGEsIGIpIHRpbWVfYWZ0ZXJfZXEoYixhKQojIDgxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgiIDEKIyA4MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zY2hlZC5oIiAyCgojZGVmaW5lIFRBU0tfUlVOTklORyAwCiNkZWZpbmUgVEFTS19JTlRFUlJV
UFRJQkxFIDEKI2RlZmluZSBUQVNLX1VOSU5URVJSVVBUSUJMRSAyCiNkZWZpbmUgVEFTS19aT01C
SUUgNAojZGVmaW5lIFRBU0tfU1RPUFBFRCA4CgojZGVmaW5lIF9fc2V0X3Rhc2tfc3RhdGUodHNr
LCBzdGF0ZV92YWx1ZSkgZG8geyAodHNrKS0+c3RhdGUgPSAoc3RhdGVfdmFsdWUpOyB9IHdoaWxl
ICgwKQoKCiNkZWZpbmUgc2V0X3Rhc2tfc3RhdGUodHNrLCBzdGF0ZV92YWx1ZSkgc2V0X21iKCh0
c2spLT5zdGF0ZSwgKHN0YXRlX3ZhbHVlKSkKCgoKCgoKI2RlZmluZSBfX3NldF9jdXJyZW50X3N0
YXRlKHN0YXRlX3ZhbHVlKSBkbyB7IGN1cnJlbnQtPnN0YXRlID0gKHN0YXRlX3ZhbHVlKTsgfSB3
aGlsZSAoMCkKCgojZGVmaW5lIHNldF9jdXJyZW50X3N0YXRlKHN0YXRlX3ZhbHVlKSBzZXRfbWIo
Y3VycmVudC0+c3RhdGUsIChzdGF0ZV92YWx1ZSkpCiMgMTEzICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgU0NIRURfT1RIRVIgMAojZGVmaW5lIFND
SEVEX0ZJRk8gMQojZGVmaW5lIFNDSEVEX1JSIDIKCgoKCgojZGVmaW5lIFNDSEVEX1lJRUxEIDB4
MTAKCnN0cnVjdCBzY2hlZF9wYXJhbSB7CiAgICAgICAgaW50IHNjaGVkX3ByaW9yaXR5Owp9OwoK
c3RydWN0IGNvbXBsZXRpb247CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zcGlubG9jay5oIiAxCiMgMTMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKCgoKCgoKCmV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrX1JzbXBf
ZWJjOTM1NzQ7CmV4dGVybiBzcGlubG9ja190IHJ1bnF1ZXVlX2xvY2s7CmV4dGVybiBzcGlubG9j
a190IG1tbGlzdF9sb2NrOwoKZXh0ZXJuIHZvaWQgc2NoZWRfaW5pdCh2b2lkKTsKZXh0ZXJuIHZv
aWQgaW5pdF9pZGxlKHZvaWQpOwpleHRlcm4gdm9pZCBzaG93X3N0YXRlKHZvaWQpOwpleHRlcm4g
dm9pZCBjcHVfaW5pdCAodm9pZCk7CmV4dGVybiB2b2lkIHRyYXBfaW5pdCh2b2lkKTsKZXh0ZXJu
IHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVzZXIpOwpleHRlcm4gdm9pZCB1cGRhdGVf
b25lX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBsb25nIHVzZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN5c3RlbSwgaW50IGNw
dSk7CgojZGVmaW5lIE1BWF9TQ0hFRFVMRV9USU1FT1VUIExPTkdfTUFYCmV4dGVybiBzaWduZWQg
bG9uZyBzY2hlZHVsZV90aW1lb3V0X1JzbXBfZDYyYzgzM2Yoc2lnbmVkIGxvbmcgdGltZW91dCk7
CiBfX2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSB2b2lkIHNjaGVkdWxlX1JzbXBfYTQ0
ZmZmYzEodm9pZCk7CgpleHRlcm4gaW50IHNjaGVkdWxlX3Rhc2tfUnNtcF8yZDZjM2QwNChzdHJ1
Y3QgdHFfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzX1Jz
bXBfN2MzMjQyYjQodm9pZCk7CmV4dGVybiBpbnQgc3RhcnRfY29udGV4dF90aHJlYWQodm9pZCk7
CmV4dGVybiBpbnQgY3VycmVudF9pc19rZXZlbnRkKHZvaWQpOwoKCgoKCiNkZWZpbmUgTlJfT1BF
Tl9ERUZBVUxUIEJJVFNfUEVSX0xPTkcKCgoKCnN0cnVjdCBmaWxlc19zdHJ1Y3QgewogICAgICAg
IGF0b21pY190IGNvdW50OwogICAgICAgIHJ3bG9ja190IGZpbGVfbG9jazsKICAgICAgICBpbnQg
bWF4X2ZkczsKICAgICAgICBpbnQgbWF4X2Zkc2V0OwogICAgICAgIGludCBuZXh0X2ZkOwogICAg
ICAgIHN0cnVjdCBmaWxlICoqIGZkOwogICAgICAgIGZkX3NldCAqY2xvc2Vfb25fZXhlYzsKICAg
ICAgICBmZF9zZXQgKm9wZW5fZmRzOwogICAgICAgIGZkX3NldCBjbG9zZV9vbl9leGVjX2luaXQ7
CiAgICAgICAgZmRfc2V0IG9wZW5fZmRzX2luaXQ7CiAgICAgICAgc3RydWN0IGZpbGUgKiBmZF9h
cnJheVs2NF07Cn07CgojZGVmaW5lIElOSVRfRklMRVMgeyBjb3VudDogQVRPTUlDX0lOSVQoMSks
IGZpbGVfbG9jazogUldfTE9DS19VTkxPQ0tFRCwgbWF4X2ZkczogTlJfT1BFTl9ERUZBVUxULCBt
YXhfZmRzZXQ6IF9fRkRfU0VUU0laRSwgbmV4dF9mZDogMCwgZmQ6ICZpbml0X2ZpbGVzLmZkX2Fy
cmF5WzBdLCBjbG9zZV9vbl9leGVjOiAmaW5pdF9maWxlcy5jbG9zZV9vbl9leGVjX2luaXQsIG9w
ZW5fZmRzOiAmaW5pdF9maWxlcy5vcGVuX2Zkc19pbml0LCBjbG9zZV9vbl9leGVjX2luaXQ6IHsg
eyAwLCB9IH0sIG9wZW5fZmRzX2luaXQ6IHsgeyAwLCB9IH0sIGZkX2FycmF5OiB7IE5VTEwsIH0g
fQojIDIwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgojZGVm
aW5lIE1BWF9NQVBfQ09VTlQgKDY1NTM2KQoKCiNkZWZpbmUgQVZMX01JTl9NQVBfQ09VTlQgMzIK
CnN0cnVjdCBtbV9zdHJ1Y3QgewogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIG1tYXA7
CiAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogbW1hcF9hdmw7CiAgICAgICAgc3RydWN0
IHZtX2FyZWFfc3RydWN0ICogbW1hcF9jYWNoZTsKICAgICAgICBwZ2RfdCAqIHBnZDsKICAgICAg
ICBhdG9taWNfdCBtbV91c2VyczsKICAgICAgICBhdG9taWNfdCBtbV9jb3VudDsKICAgICAgICBp
bnQgbWFwX2NvdW50OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgbW1hcF9zZW07CiAgICAg
ICAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg
bW1saXN0OwoKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2NvZGUsIGVuZF9jb2RlLCBz
dGFydF9kYXRhLCBlbmRfZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2JyaywgYnJr
LCBzdGFydF9zdGFjazsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyZ19zdGFydCwgYXJnX2VuZCwg
ZW52X3N0YXJ0LCBlbnZfZW5kOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnNzLCB0b3RhbF92bSwg
bG9ja2VkX3ZtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGVmX2ZsYWdzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgY3B1X3ZtX21hc2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzd2FwX2FkZHJlc3M7
CgogICAgICAgIHVuc2lnbmVkIGR1bXBhYmxlOjE7CgoKICAgICAgICBtbV9jb250ZXh0X3QgY29u
dGV4dDsKfTsKCmV4dGVybiBpbnQgbW1saXN0X25yOwoKI2RlZmluZSBJTklUX01NKG5hbWUpIHsg
bW1hcDogJmluaXRfbW1hcCwgbW1hcF9hdmw6IE5VTEwsIG1tYXBfY2FjaGU6IE5VTEwsIHBnZDog
c3dhcHBlcl9wZ19kaXIsIG1tX3VzZXJzOiBBVE9NSUNfSU5JVCgyKSwgbW1fY291bnQ6IEFUT01J
Q19JTklUKDEpLCBtYXBfY291bnQ6IDEsIG1tYXBfc2VtOiBfX1JXU0VNX0lOSVRJQUxJWkVSKG5h
bWUubW1hcF9zZW0pLCBwYWdlX3RhYmxlX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCwgbW1saXN0
OiBMSVNUX0hFQURfSU5JVChuYW1lLm1tbGlzdCksIH0KIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHNpZ25hbF9zdHJ1Y3QgewogICAgICAg
IGF0b21pY190IGNvdW50OwogICAgICAgIHN0cnVjdCBrX3NpZ2FjdGlvbiBhY3Rpb25bNjRdOwog
ICAgICAgIHNwaW5sb2NrX3Qgc2lnbG9jazsKfTsKCgojZGVmaW5lIElOSVRfU0lHTkFMUyB7IGNv
dW50OiBBVE9NSUNfSU5JVCgxKSwgYWN0aW9uOiB7IHt7MCx9fSwgfSwgc2lnbG9jazogU1BJTl9M
T0NLX1VOTE9DS0VEIH0KIyAyNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKc3RydWN0IHVzZXJfc3RydWN0IHsKICAgICAgICBhdG9taWNfdCBfX2NvdW50Owog
ICAgICAgIGF0b21pY190IHByb2Nlc3NlczsKICAgICAgICBhdG9taWNfdCBmaWxlczsKCgogICAg
ICAgIHN0cnVjdCB1c2VyX3N0cnVjdCAqbmV4dCwgKipwcHJldjsKICAgICAgICB1aWRfdCB1aWQ7
Cn07CgojZGVmaW5lIGdldF9jdXJyZW50X3VzZXIoKSAoeyBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKl9f
dXNlciA9IGN1cnJlbnQtPnVzZXI7IGF0b21pY19pbmMoJl9fdXNlci0+X19jb3VudCk7IF9fdXNl
cjsgfSkKCgoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qgcm9vdF91c2VyOwojZGVmaW5lIElO
SVRfVVNFUiAoJnJvb3RfdXNlcikKCnN0cnVjdCB0YXNrX3N0cnVjdCB7CgoKCiAgICAgICAgdm9s
YXRpbGUgbG9uZyBzdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgICAgIGlu
dCBzaWdwZW5kaW5nOwogICAgICAgIG1tX3NlZ21lbnRfdCBhZGRyX2xpbWl0OwoKCgogICAgICAg
IHN0cnVjdCBleGVjX2RvbWFpbiAqZXhlY19kb21haW47CiAgICAgICAgdm9sYXRpbGUgbG9uZyBu
ZWVkX3Jlc2NoZWQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBwdHJhY2U7CgogICAgICAgIGludCBs
b2NrX2RlcHRoOwoKCgoKCgogICAgICAgIGxvbmcgY291bnRlcjsKICAgICAgICBsb25nIG5pY2U7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBwb2xpY3k7CiAgICAgICAgc3RydWN0IG1tX3N0cnVjdCAq
bW07CiAgICAgICAgaW50IGhhc19jcHUsIHByb2Nlc3NvcjsKICAgICAgICB1bnNpZ25lZCBsb25n
IGNwdXNfYWxsb3dlZDsKCgoKCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBydW5fbGlzdDsKICAg
ICAgICB1bnNpZ25lZCBsb25nIHNsZWVwX3RpbWU7CgogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVj
dCAqbmV4dF90YXNrLCAqcHJldl90YXNrOwogICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKmFjdGl2
ZV9tbTsKCgogICAgICAgIHN0cnVjdCBsaW51eF9iaW5mbXQgKmJpbmZtdDsKICAgICAgICBpbnQg
ZXhpdF9jb2RlLCBleGl0X3NpZ25hbDsKICAgICAgICBpbnQgcGRlYXRoX3NpZ25hbDsKCiAgICAg
ICAgdW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eTsKICAgICAgICBpbnQgZGlkX2V4ZWM6MTsKICAg
ICAgICBwaWRfdCBwaWQ7CiAgICAgICAgcGlkX3QgcGdycDsKICAgICAgICBwaWRfdCB0dHlfb2xk
X3BncnA7CiAgICAgICAgcGlkX3Qgc2Vzc2lvbjsKICAgICAgICBwaWRfdCB0Z2lkOwoKICAgICAg
ICBpbnQgbGVhZGVyOwoKCgoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwX29wcHRyLCAq
cF9wcHRyLCAqcF9jcHRyLCAqcF95c3B0ciwgKnBfb3NwdHI7CiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCB0aHJlYWRfZ3JvdXA7CgoKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpZGhhc2hf
bmV4dDsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKipwaWRoYXNoX3BwcmV2OwoKICAgICAg
ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X2NobGRleGl0OwogICAgICAgIHN0cnVjdCBjb21wbGV0
aW9uICp2Zm9ya19kb25lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnRfcHJpb3JpdHk7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBpdF9yZWFsX3ZhbHVlLCBpdF9wcm9mX3ZhbHVlLCBpdF92aXJ0X3Zh
bHVlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaXRfcmVhbF9pbmNyLCBpdF9wcm9mX2luY3IsIGl0
X3ZpcnRfaW5jcjsKICAgICAgICBzdHJ1Y3QgdGltZXJfbGlzdCByZWFsX3RpbWVyOwogICAgICAg
IHN0cnVjdCB0bXMgdGltZXM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF90aW1lOwogICAg
ICAgIGxvbmcgcGVyX2NwdV91dGltZVszMl0sIHBlcl9jcHVfc3RpbWVbMzJdOwoKICAgICAgICB1
bnNpZ25lZCBsb25nIG1pbl9mbHQsIG1hal9mbHQsIG5zd2FwLCBjbWluX2ZsdCwgY21hal9mbHQs
IGNuc3dhcDsKICAgICAgICBpbnQgc3dhcHBhYmxlOjE7CgogICAgICAgIHVpZF90IHVpZCxldWlk
LHN1aWQsZnN1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkLGVnaWQsc2dpZCxmc2dpZDsKICAgICAgICBp
bnQgbmdyb3VwczsKICAgICAgICBnaWRfdCBncm91cHNbMzJdOwogICAgICAgIGtlcm5lbF9jYXBf
dCBjYXBfZWZmZWN0aXZlLCBjYXBfaW5oZXJpdGFibGUsIGNhcF9wZXJtaXR0ZWQ7CiAgICAgICAg
aW50IGtlZXBfY2FwYWJpbGl0aWVzOjE7CiAgICAgICAgc3RydWN0IHVzZXJfc3RydWN0ICp1c2Vy
OwoKICAgICAgICBzdHJ1Y3QgcmxpbWl0IHJsaW1bMTFdOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IHVzZWRfbWF0aDsKICAgICAgICBjaGFyIGNvbW1bMTZdOwoKICAgICAgICBpbnQgbGlua19jb3Vu
dDsKICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogICAgICAgIHVuc2lnbmVkIGludCBs
b2NrczsKCiAgICAgICAgc3RydWN0IHNlbV91bmRvICpzZW11bmRvOwogICAgICAgIHN0cnVjdCBz
ZW1fcXVldWUgKnNlbXNsZWVwaW5nOwoKICAgICAgICBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB0aHJl
YWQ7CgogICAgICAgIHN0cnVjdCBmc19zdHJ1Y3QgKmZzOwoKICAgICAgICBzdHJ1Y3QgZmlsZXNf
c3RydWN0ICpmaWxlczsKCiAgICAgICAgc3BpbmxvY2tfdCBzaWdtYXNrX2xvY2s7CiAgICAgICAg
c3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZzsKCiAgICAgICAgc2lnc2V0X3QgYmxvY2tlZDsKICAg
ICAgICBzdHJ1Y3Qgc2lncGVuZGluZyBwZW5kaW5nOwoKICAgICAgICB1bnNpZ25lZCBsb25nIHNh
c19zc19zcDsKICAgICAgICBzaXplX3Qgc2FzX3NzX3NpemU7CiAgICAgICAgaW50ICgqbm90aWZp
ZXIpKHZvaWQgKnByaXYpOwogICAgICAgIHZvaWQgKm5vdGlmaWVyX2RhdGE7CiAgICAgICAgc2ln
c2V0X3QgKm5vdGlmaWVyX21hc2s7CgoKICAgICAgICB1MzIgcGFyZW50X2V4ZWNfaWQ7CiAgICAg
ICAgdTMyIHNlbGZfZXhlY19pZDsKCiAgICAgICAgc3BpbmxvY2tfdCBhbGxvY19sb2NrOwp9OwoK
CgoKI2RlZmluZSBQRl9BTElHTldBUk4gMHgwMDAwMDAwMQoKI2RlZmluZSBQRl9TVEFSVElORyAw
eDAwMDAwMDAyCiNkZWZpbmUgUEZfRVhJVElORyAweDAwMDAwMDA0CiNkZWZpbmUgUEZfRk9SS05P
RVhFQyAweDAwMDAwMDQwCiNkZWZpbmUgUEZfU1VQRVJQUklWIDB4MDAwMDAxMDAKI2RlZmluZSBQ
Rl9EVU1QQ09SRSAweDAwMDAwMjAwCiNkZWZpbmUgUEZfU0lHTkFMRUQgMHgwMDAwMDQwMAojZGVm
aW5lIFBGX01FTUFMTE9DIDB4MDAwMDA4MDAKCiNkZWZpbmUgUEZfVVNFREZQVSAweDAwMTAwMDAw
CgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEIDB4MDAwMDAwMDEKI2RlZmluZSBQVF9UUkFDRVNZUyAw
eDAwMDAwMDAyCiNkZWZpbmUgUFRfRFRSQUNFIDB4MDAwMDAwMDQKI2RlZmluZSBQVF9UUkFDRVNZ
U0dPT0QgMHgwMDAwMDAwOAoKCgoKCiNkZWZpbmUgX1NUS19MSU0gKDgqMTAyNCoxMDI0KQoKI2Rl
ZmluZSBERUZfQ09VTlRFUiAoMTAqSFovMTAwKQojZGVmaW5lIE1BWF9DT1VOVEVSICgyMCpIWi8x
MDApCiNkZWZpbmUgREVGX05JQ0UgKDApCgoKCgoKI2RlZmluZSBJTklUX1RBU0sodHNrKSB7IHN0
YXRlOiAwLCBmbGFnczogMCwgc2lncGVuZGluZzogMCwgYWRkcl9saW1pdDogS0VSTkVMX0RTLCBl
eGVjX2RvbWFpbjogJmRlZmF1bHRfZXhlY19kb21haW4sIGxvY2tfZGVwdGg6IC0xLCBjb3VudGVy
OiBERUZfQ09VTlRFUiwgbmljZTogREVGX05JQ0UsIHBvbGljeTogU0NIRURfT1RIRVIsIG1tOiBO
VUxMLCBhY3RpdmVfbW06ICZpbml0X21tLCBjcHVzX2FsbG93ZWQ6IC0xLCBydW5fbGlzdDogTElT
VF9IRUFEX0lOSVQodHNrLnJ1bl9saXN0KSwgbmV4dF90YXNrOiAmdHNrLCBwcmV2X3Rhc2s6ICZ0
c2ssIHBfb3BwdHI6ICZ0c2ssIHBfcHB0cjogJnRzaywgdGhyZWFkX2dyb3VwOiBMSVNUX0hFQURf
SU5JVCh0c2sudGhyZWFkX2dyb3VwKSwgd2FpdF9jaGxkZXhpdDogX19XQUlUX1FVRVVFX0hFQURf
SU5JVElBTElaRVIodHNrLndhaXRfY2hsZGV4aXQpLCByZWFsX3RpbWVyOiB7IGZ1bmN0aW9uOiBp
dF9yZWFsX2ZuIH0sIGNhcF9lZmZlY3RpdmU6IENBUF9JTklUX0VGRl9TRVQsIGNhcF9pbmhlcml0
YWJsZTogQ0FQX0lOSVRfSU5IX1NFVCwgY2FwX3Blcm1pdHRlZDogQ0FQX0ZVTExfU0VULCBrZWVw
X2NhcGFiaWxpdGllczogMCwgcmxpbTogSU5JVF9STElNSVRTLCB1c2VyOiBJTklUX1VTRVIsIGNv
bW06ICJzd2FwcGVyIiwgdGhyZWFkOiBJTklUX1RIUkVBRCwgZnM6ICZpbml0X2ZzLCBmaWxlczog
JmluaXRfZmlsZXMsIHNpZ21hc2tfbG9jazogU1BJTl9MT0NLX1VOTE9DS0VELCBzaWc6ICZpbml0
X3NpZ25hbHMsIHBlbmRpbmc6IHsgTlVMTCwgJnRzay5wZW5kaW5nLmhlYWQsIHt7MH19fSwgYmxv
Y2tlZDoge3swfX0sIGFsbG9jX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCB9CiMgNDkwICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnVuaW9uIHRhc2tfdW5pb24g
ewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCB0YXNrOwogICAgICAgIHVuc2lnbmVkIGxvbmcg
c3RhY2tbKCgxIDw8IDEpKigxVUwgPDwgMTQpKS9zaXplb2YobG9uZyldOwp9OwoKZXh0ZXJuIHVu
aW9uIHRhc2tfdW5pb24gaW5pdF90YXNrX3VuaW9uX1JzbXBfY2U0ODE5MDQ7CgpleHRlcm4gc3Ry
dWN0IG1tX3N0cnVjdCBpbml0X21tX1JzbXBfMzlkNTZlZDk7CmV4dGVybiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKmluaXRfdGFza3NbMzJdOwoKCiNkZWZpbmUgUElESEFTSF9TWiAoNDA5NiA+PiAyKQpl
eHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpwaWRoYXNoX1JzbXBfYjQ4ZTA5NmNbKDQwOTYgPj4g
MildOwoKI2RlZmluZSBwaWRfaGFzaGZuKHgpICgoKCh4KSA+PiA4KSBeICh4KSkgJiAoUElESEFT
SF9TWiAtIDEpKQoKc3RhdGljIGlubGluZSB2b2lkIGhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0cnVj
dCAqcCkKewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqKmh0YWJsZSA9ICZwaWRoYXNoX1Jz
bXBfYjQ4ZTA5NmNbKCgoKHAtPnBpZCkgPj4gOCkgXiAocC0+cGlkKSkgJiAoKDQwOTYgPj4gMikg
LSAxKSldOwoKICAgICAgICBpZigocC0+cGlkaGFzaF9uZXh0ID0gKmh0YWJsZSkgIT0gKCh2b2lk
ICopMCkpCiAgICAgICAgICAgICAgICAoKmh0YWJsZSktPnBpZGhhc2hfcHByZXYgPSAmcC0+cGlk
aGFzaF9uZXh0OwogICAgICAgICpodGFibGUgPSBwOwogICAgICAgIHAtPnBpZGhhc2hfcHByZXYg
PSBodGFibGU7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB1bmhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0
cnVjdCAqcCkKewogICAgICAgIGlmKHAtPnBpZGhhc2hfbmV4dCkKICAgICAgICAgICAgICAgIHAt
PnBpZGhhc2hfbmV4dC0+cGlkaGFzaF9wcHJldiA9IHAtPnBpZGhhc2hfcHByZXY7CiAgICAgICAg
KnAtPnBpZGhhc2hfcHByZXYgPSBwLT5waWRoYXNoX25leHQ7Cn0KCnN0YXRpYyBpbmxpbmUgc3Ry
dWN0IHRhc2tfc3RydWN0ICpmaW5kX3Rhc2tfYnlfcGlkKGludCBwaWQpCnsKICAgICAgICBzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnAsICoqaHRhYmxlID0gJnBpZGhhc2hfUnNtcF9iNDhlMDk2Y1soKCgo
cGlkKSA+PiA4KSBeIChwaWQpKSAmICgoNDA5NiA+PiAyKSAtIDEpKV07CgogICAgICAgIGZvcihw
ID0gKmh0YWJsZTsgcCAmJiBwLT5waWQgIT0gcGlkOyBwID0gcC0+cGlkaGFzaF9uZXh0KQogICAg
ICAgICAgICAgICAgOwoKICAgICAgICByZXR1cm4gcDsKfQoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9z
dHJ1Y3QgKiBhbGxvY191aWQodWlkX3QpOwpleHRlcm4gdm9pZCBmcmVlX3VpZChzdHJ1Y3QgdXNl
cl9zdHJ1Y3QgKik7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2N1cnJl
bnQuaCIgMQojIDUzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5o
IiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBqaWZmaWVzX1JzbXBfMGRhMDJkNjc7
CmV4dGVybiB1bnNpZ25lZCBsb25nIGl0aW1lcl90aWNrczsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
aXRpbWVyX25leHQ7CmV4dGVybiBzdHJ1Y3QgdGltZXZhbCB4dGltZV9Sc21wX2YzMWRkZjgzOwpl
eHRlcm4gdm9pZCBkb190aW1lcihzdHJ1Y3QgcHRfcmVncyAqKTsKCmV4dGVybiB1bnNpZ25lZCBp
bnQgKiBwcm9mX2J1ZmZlcjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcHJvZl9sZW47CmV4dGVybiB1
bnNpZ25lZCBsb25nIHByb2Zfc2hpZnQ7CgojZGVmaW5lIENVUlJFTlRfVElNRSAoeHRpbWUudHZf
c2VjKQoKZXh0ZXJuIHZvaWQgX193YWtlX3VwX1JzbXBfNjlkZGJmMTUod2FpdF9xdWV1ZV9oZWFk
X3QgKnEsIHVuc2lnbmVkIGludCBtb2RlLCBpbnQgbnIpOwpleHRlcm4gdm9pZCBfX3dha2VfdXBf
c3luYyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgdW5zaWduZWQgaW50IG1vZGUsIGludCBucik7CmV4
dGVybiB2b2lkIHNsZWVwX29uX1JzbXBfOGVhMjMxZmIod2FpdF9xdWV1ZV9oZWFkX3QgKnEpOwpl
eHRlcm4gbG9uZyBzbGVlcF9vbl90aW1lb3V0X1JzbXBfNTY0NTBiM2Uod2FpdF9xdWV1ZV9oZWFk
X3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIHZvaWQgaW50ZXJydXB0aWJsZV9z
bGVlcF9vbl9Sc21wXzQ4NGM1ZGI2KHdhaXRfcXVldWVfaGVhZF90ICpxKTsKZXh0ZXJuIGxvbmcg
aW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0X1JzbXBfMzJhMDhjZDMod2FpdF9xdWV1ZV9o
ZWFkX3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIGludCB3YWtlX3VwX3Byb2Nl
c3NfUnNtcF81NTBkODRhNShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiB0c2spOwoKI2RlZmluZSB3YWtl
X3VwKHgpIF9fd2FrZV91cCgoeCksVEFTS19VTklOVEVSUlVQVElCTEUgfCBUQVNLX0lOVEVSUlVQ
VElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9ucih4LCBucikgX193YWtlX3VwKCh4KSxUQVNLX1VO
SU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBUSUJMRSwgbnIpCiNkZWZpbmUgd2FrZV91cF9h
bGwoeCkgX193YWtlX3VwKCh4KSxUQVNLX1VOSU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBU
SUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX3N5bmMoeCkgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tf
VU5JTlRFUlJVUFRJQkxFIHwgVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf
c3luY19ucih4LCBucikgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tfVU5JTlRFUlJVUFRJQkxFIHwg
VEFTS19JTlRFUlJVUFRJQkxFLCBucikKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGUoeCkg
X193YWtlX3VwKCh4KSxUQVNLX0lOVEVSUlVQVElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9pbnRl
cnJ1cHRpYmxlX25yKHgsIG5yKSBfX3dha2VfdXAoKHgpLFRBU0tfSU5URVJSVVBUSUJMRSwgbnIp
CiNkZWZpbmUgd2FrZV91cF9pbnRlcnJ1cHRpYmxlX2FsbCh4KSBfX3dha2VfdXAoKHgpLFRBU0tf
SU5URVJSVVBUSUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGVfc3luYyh4KSBf
X3dha2VfdXBfc3luYygoeCksVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf
aW50ZXJydXB0aWJsZV9zeW5jX25yKHgpIF9fd2FrZV91cF9zeW5jKCh4KSxUQVNLX0lOVEVSUlVQ
VElCTEUsIG5yKQogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfd2Fp
dDQocGlkX3QgcGlkLHVuc2lnbmVkIGludCAqIHN0YXRfYWRkciwgaW50IG9wdGlvbnMsIHN0cnVj
dCBydXNhZ2UgKiBydSk7CgpleHRlcm4gaW50IGluX2dyb3VwX3BfUnNtcF8zMWViYWRjZChnaWRf
dCk7CmV4dGVybiBpbnQgaW5fZWdyb3VwX3BfUnNtcF80MmE0YmRmMihnaWRfdCk7CgpleHRlcm4g
dm9pZCBwcm9jX2NhY2hlc19pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBmbHVzaF9zaWduYWxzX1Jz
bXBfZmVhZjkxN2Qoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBmbHVzaF9zaWdu
YWxfaGFuZGxlcnMoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGRlcXVldWVfc2ln
bmFsX1JzbXBfNjcyYTgxMGEoc2lnc2V0X3QgKiwgc2lnaW5mb190ICopOwpleHRlcm4gdm9pZCBi
bG9ja19hbGxfc2lnbmFsc19Sc21wXzRlZGQ3MmY3KGludCAoKm5vdGlmaWVyKSh2b2lkICpwcml2
KSwgdm9pZCAqcHJpdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnc2V0X3QgKm1h
c2spOwpleHRlcm4gdm9pZCB1bmJsb2NrX2FsbF9zaWduYWxzX1JzbXBfMGEyNDg3ZTAodm9pZCk7
CmV4dGVybiBpbnQgc2VuZF9zaWdfaW5mb19Sc21wX2ViZTg1MmE4KGludCwgc3RydWN0IHNpZ2lu
Zm8gKiwgc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGZvcmNlX3NpZ19pbmZvX1Jz
bXBfY2MyYjQyZTEoaW50LCBzdHJ1Y3Qgc2lnaW5mbyAqLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7
CmV4dGVybiBpbnQga2lsbF9wZ19pbmZvX1JzbXBfYWM3YzgwMDYoaW50LCBzdHJ1Y3Qgc2lnaW5m
byAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9zbF9pbmZvX1JzbXBfNzcxMzA5MWQoaW50LCBz
dHJ1Y3Qgc2lnaW5mbyAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9wcm9jX2luZm9fUnNtcF9j
ZTE3ZTc5MyhpbnQsIHN0cnVjdCBzaWdpbmZvICosIHBpZF90KTsKZXh0ZXJuIHZvaWQgbm90aWZ5
X3BhcmVudF9Sc21wX2U3NmFmMTQzKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g
dm9pZCBkb19ub3RpZnlfcGFyZW50KHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g
dm9pZCBmb3JjZV9zaWdfUnNtcF82NTVjY2JhYShpbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK
ZXh0ZXJuIGludCBzZW5kX3NpZ19Sc21wXzkzMzZkZDAxKGludCwgc3RydWN0IHRhc2tfc3RydWN0
ICosIGludCk7CmV4dGVybiBpbnQga2lsbF9wZ19Sc21wXzM4ZjI5NzE5KHBpZF90LCBpbnQsIGlu
dCk7CmV4dGVybiBpbnQga2lsbF9zbF9Sc21wX2ZiYTEyZmQwKHBpZF90LCBpbnQsIGludCk7CmV4
dGVybiBpbnQga2lsbF9wcm9jX1JzbXBfOTMyZGE2N2UocGlkX3QsIGludCwgaW50KTsKZXh0ZXJu
IGludCBkb19zaWdhY3Rpb24oaW50LCBjb25zdCBzdHJ1Y3Qga19zaWdhY3Rpb24gKiwgc3RydWN0
IGtfc2lnYWN0aW9uICopOwpleHRlcm4gaW50IGRvX3NpZ2FsdHN0YWNrKGNvbnN0IHN0YWNrX3Qg
Kiwgc3RhY2tfdCAqLCB1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBpbmxpbmUgaW50IHNpZ25hbF9w
ZW5kaW5nKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogICAgICAgIHJldHVybiAocC0+c2lncGVu
ZGluZyAhPSAwKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgaW50IGhhc19wZW5kaW5nX3NpZ25hbHMo
c2lnc2V0X3QgKnNpZ25hbCwgc2lnc2V0X3QgKmJsb2NrZWQpCnsKICAgICAgICB1bnNpZ25lZCBs
b25nIHJlYWR5OwogICAgICAgIGxvbmcgaTsKCiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgZm9yIChpID0gKDY0IC8gNjQpLCByZWFk
eSA9IDA7IC0taSA+PSAwIDspCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5IHw9IHNpZ25h
bC0+c2lnW2ldICZ+IGJsb2NrZWQtPnNpZ1tpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAg
ICAgICBjYXNlIDQ6IHJlYWR5ID0gc2lnbmFsLT5zaWdbM10gJn4gYmxvY2tlZC0+c2lnWzNdOwog
ICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMl0gJn4gYmxvY2tlZC0+c2lnWzJd
OwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMV0gJn4gYmxvY2tlZC0+c2ln
WzFdOwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMF0gJn4gYmxvY2tlZC0+
c2lnWzBdOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMjogcmVhZHkgPSBz
aWduYWwtPnNpZ1sxXSAmfiBibG9ja2VkLT5zaWdbMV07CiAgICAgICAgICAgICAgICByZWFkeSB8
PSBzaWduYWwtPnNpZ1swXSAmfiBibG9ja2VkLT5zaWdbMF07CiAgICAgICAgICAgICAgICBicmVh
azsKCiAgICAgICAgY2FzZSAxOiByZWFkeSA9IHNpZ25hbC0+c2lnWzBdICZ+IGJsb2NrZWQtPnNp
Z1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlYWR5ICE9IDA7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIHZvaWQgcmVjYWxjX3NpZ3BlbmRpbmdfUnNtcF83Njk4N2IxZihzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnQpCnsKICAgICAgICB0LT5zaWdwZW5kaW5nID0gaGFzX3BlbmRpbmdfc2lnbmFscygm
dC0+cGVuZGluZy5zaWduYWwsICZ0LT5ibG9ja2VkKTsKfQoKCgpzdGF0aWMgaW5saW5lIGludCBv
bl9zaWdfc3RhY2sodW5zaWduZWQgbG9uZyBzcCkKewogICAgICAgIHJldHVybiAoc3AgLSBjdXJy
ZW50LT5zYXNfc3Nfc3AgPCBjdXJyZW50LT5zYXNfc3Nfc2l6ZSk7Cn0KCnN0YXRpYyBpbmxpbmUg
aW50IHNhc19zc19mbGFncyh1bnNpZ25lZCBsb25nIHNwKQp7CiAgICAgICAgcmV0dXJuIChjdXJy
ZW50LT5zYXNfc3Nfc2l6ZSA9PSAwID8gMgogICAgICAgICAgICAgICAgOiBvbl9zaWdfc3RhY2so
c3ApID8gMSA6IDApOwp9CgpleHRlcm4gaW50IHJlcXVlc3RfaXJxX1JzbXBfYWJiNzZhMjcodW5z
aWduZWQgaW50LAogICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpoYW5kbGVyKShpbnQsIHZv
aWQgKiwgc3RydWN0IHB0X3JlZ3MgKiksCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZywgY29uc3QgY2hhciAqLCB2b2lkICopOwpleHRlcm4gdm9pZCBmcmVlX2lycV9Sc21wX2Yy
MGRhYmQ4KHVuc2lnbmVkIGludCwgdm9pZCAqKTsKIyA2NzQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RhdGljIGlubGluZSBpbnQgc3VzZXIodm9pZCkKewog
ICAgICAgIGlmICghKCAoMSA8PCAoMCArMSkpICYgMHgwMDAwMDAwMCA/ICgxIDw8ICgwKSkgJiAw
eDAwMDAwMDAwIDogKDEgPDwgKDApKSAmIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NCApICYmIGN1
cnJlbnQtPmV1aWQgPT0gMCkgewogICAgICAgICAgICAgICAgY3VycmVudC0+ZmxhZ3MgfD0gMHgw
MDAwMDEwMDsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1
cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgZnN1c2VyKHZvaWQpCnsKICAgICAgICBpZiAoISgg
KDEgPDwgKDAgKzEpKSAmIDB4MDAwMDAwMDAgPyAoMSA8PCAoMCkpICYgMHgwMDAwMDAwMCA6ICgx
IDw8ICgwKSkgJiBzZWN1cmViaXRzX1JzbXBfYWJlNzc0ODQgKSAmJiBjdXJyZW50LT5mc3VpZCA9
PSAwKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50LT5mbGFncyB8PSAweDAwMDAwMTAwOwogICAg
ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwp9CgoKCgoK
CgpzdGF0aWMgaW5saW5lIGludCBjYXBhYmxlKGludCBjYXApCnsKCiAgICAgICAgaWYgKCgoY3Vy
cmVudC0+Y2FwX2VmZmVjdGl2ZSkgJiAoMSA8PCAoY2FwKSkpKQoKCgogICAgICAgIHsKICAgICAg
ICAgICAgICAgIGN1cnJlbnQtPmZsYWdzIHw9IDB4MDAwMDAxMDA7CiAgICAgICAgICAgICAgICBy
ZXR1cm4gMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7Cn0KCgoKCmV4dGVybiBzdHJ1Y3Qg
bW1fc3RydWN0ICogbW1fYWxsb2Modm9pZCk7CgpleHRlcm4gc3RydWN0IG1tX3N0cnVjdCAqIHN0
YXJ0X2xhenlfdGxiKHZvaWQpOwpleHRlcm4gdm9pZCBlbmRfbGF6eV90bGIoc3RydWN0IG1tX3N0
cnVjdCAqbW0pOwoKCmV4dGVybiBpbmxpbmUgdm9pZCBfX21tZHJvcChzdHJ1Y3QgbW1fc3RydWN0
ICopOwpzdGF0aWMgaW5saW5lIHZvaWQgbW1kcm9wKHN0cnVjdCBtbV9zdHJ1Y3QgKiBtbSkKewog
ICAgICAgIGlmICgoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoICgxID09IDEpIHx8ICgx
ID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9PSAtMSkgfHwgKDEgPT0gLTQp
IHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBf
X3R5cGVvZl9fKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZtbS0+
bW1fY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBf
X2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBl
b2ZfXygqJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6
IGlhNjRfYXRvbWljX3N1YigxLCAoJm1tLT5tbV9jb3VudCkpKSA9PSAwKSkKICAgICAgICAgICAg
ICAgIF9fbW1kcm9wKG1tKTsKfQoKCmV4dGVybiB2b2lkIG1tcHV0KHN0cnVjdCBtbV9zdHJ1Y3Qg
Kik7CgpleHRlcm4gdm9pZCBtbV9yZWxlYXNlKHZvaWQpOwoKCgoKZXh0ZXJuIHN0cnVjdCBmaWxl
ICoqIGFsbG9jX2ZkX2FycmF5KGludCk7CmV4dGVybiBpbnQgZXhwYW5kX2ZkX2FycmF5KHN0cnVj
dCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJuIHZvaWQgZnJlZV9mZF9hcnJheShzdHJ1
Y3QgZmlsZSAqKiwgaW50KTsKCmV4dGVybiBmZF9zZXQgKmFsbG9jX2Zkc2V0KGludCk7CmV4dGVy
biBpbnQgZXhwYW5kX2Zkc2V0KHN0cnVjdCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJu
IHZvaWQgZnJlZV9mZHNldChmZF9zZXQgKiwgaW50KTsKCmV4dGVybiBpbnQgY29weV90aHJlYWQo
aW50LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKik7CmV4dGVybiB2b2lkIGZsdXNoX3RocmVh
ZCh2b2lkKTsKZXh0ZXJuIHZvaWQgZXhpdF90aHJlYWQodm9pZCk7CgpleHRlcm4gdm9pZCBleGl0
X21tX1JzbXBfODZkMjQ3MTgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBleGl0
X2ZpbGVzX1JzbXBfODBhYTUzMzgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBl
eGl0X3NpZ2hhbmRfUnNtcF81ZDE3OWE0OChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CgpleHRlcm4g
dm9pZCBkYWVtb25pemVfUnNtcF9kNjZhMzU0YSh2b2lkKTsKCmV4dGVybiBpbnQgZG9fZXhlY3Zl
X1JzbXBfZGUxOWYwM2IoY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBzdHJ1Y3QgcHRfcmVncyAq
KTsKZXh0ZXJuIGludCBkb19mb3JrKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVj
dCBwdF9yZWdzICosIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgYWRkX3dhaXRfcXVldWVf
UnNtcF83Njg4NDJlNyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1ZV90ICogd2FpdCk7
CmV4dGVybiB2b2lkIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZV9Sc21wXzAwMjg3Yzk5KHdhaXRf
cXVldWVfaGVhZF90ICpxLCB3YWl0X3F1ZXVlX3QgKiB3YWl0KTsKZXh0ZXJuIHZvaWQgcmVtb3Zl
X3dhaXRfcXVldWVfUnNtcF8xMzNhYWVkOCh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1
ZV90ICogd2FpdCk7CgojZGVmaW5lIF9fd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7IHdh
aXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5KCZfX3dhaXQsIGN1cnJlbnQp
OyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7KSB7IHNldF9jdXJyZW50X3N0
YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsgaWYgKGNvbmRpdGlvbikgYnJlYWs7IHNjaGVkdWxl
KCk7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNLX1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3
cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMgNzc3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7
IGlmIChjb25kaXRpb24pIGJyZWFrOyBfX3dhaXRfZXZlbnQod3EsIGNvbmRpdGlvbik7IH0gd2hp
bGUgKDApCgoKCgoKCiNkZWZpbmUgX193YWl0X2V2ZW50X2ludGVycnVwdGlibGUod3EsIGNvbmRp
dGlvbiwgcmV0KSBkbyB7IHdhaXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5
KCZfX3dhaXQsIGN1cnJlbnQpOyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7
KSB7IHNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7IGlmIChjb25kaXRpb24p
IGJyZWFrOyBpZiAoIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7IHNjaGVkdWxlKCk7IGNvbnRp
bnVlOyB9IHJldCA9IC1FUkVTVEFSVFNZUzsgYnJlYWs7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNL
X1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMg
ODA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUg
d2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRpb24pICh7IGludCBfX3JldCA9IDA7
IGlmICghKGNvbmRpdGlvbikpIF9fd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRp
b24sIF9fcmV0KTsgX19yZXQ7IH0pCgoKCgoKCgojZGVmaW5lIFJFTU9WRV9MSU5LUyhwKSBkbyB7
IChwKS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rh
c2stPm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBf
b3NwdHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95
c3B0ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0g
KHApLT5wX29zcHRyOyB9IHdoaWxlICgwKQojIDgyNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9zY2hlZC5oIgojZGVmaW5lIFNFVF9MSU5LUyhwKSBkbyB7IChwKS0+bmV4dF90
YXNrID0gJmluaXRfdGFzazsgKHApLT5wcmV2X3Rhc2sgPSBpbml0X3Rhc2sucHJldl90YXNrOyBp
bml0X3Rhc2sucHJldl90YXNrLT5uZXh0X3Rhc2sgPSAocCk7IGluaXRfdGFzay5wcmV2X3Rhc2sg
PSAocCk7IChwKS0+cF95c3B0ciA9IE5VTEw7IGlmICgoKHApLT5wX29zcHRyID0gKHApLT5wX3Bw
dHItPnBfY3B0cikgIT0gTlVMTCkgKHApLT5wX29zcHRyLT5wX3lzcHRyID0gcDsgKHApLT5wX3Bw
dHItPnBfY3B0ciA9IHA7IH0gd2hpbGUgKDApCiMgODM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgZm9yX2VhY2hfdGFzayhwKSBmb3IgKHAgPSAm
aW5pdF90YXNrIDsgKHAgPSBwLT5uZXh0X3Rhc2spICE9ICZpbml0X3Rhc2sgOyApCgoKI2RlZmlu
ZSBuZXh0X3RocmVhZChwKSBsaXN0X2VudHJ5KChwKS0+dGhyZWFkX2dyb3VwLm5leHQsIHN0cnVj
dCB0YXNrX3N0cnVjdCwgdGhyZWFkX2dyb3VwKQoKCnN0YXRpYyBpbmxpbmUgdm9pZCBkZWxfZnJv
bV9ydW5xdWV1ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwKQp7CiAgICAgICAgbnJfcnVubmluZ19S
c21wX2NhM2M2ZDc4LS07CiAgICAgICAgcC0+c2xlZXBfdGltZSA9IGppZmZpZXNfUnNtcF8wZGEw
MmQ2NzsKICAgICAgICBsaXN0X2RlbCgmcC0+cnVuX2xpc3QpOwogICAgICAgIHAtPnJ1bl9saXN0
Lm5leHQgPSAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBpbnQgdGFza19vbl9ydW5xdWV1
ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCnsKICAgICAgICByZXR1cm4gKHAtPnJ1bl9saXN0Lm5l
eHQgIT0gKCh2b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5oYXNoX3Byb2Nlc3Mo
c3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CiAgICAgICAgaWYgKHRhc2tfb25fcnVucXVldWUocCkp
IGRvIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiwgODU2KTsgKihpbnQgKikw
PTA7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBy
c20gcHNyLmk7OyIgOjo6ICJtZW1vcnkiKTsgZG8geyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoICJt
b3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAwMDAwMFxuIiAiOztcbiIgIjE6XG4i
ICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLHIyXG4iICIocDcp
IGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0LmFjcSByMiA9IFslMF0sIHIyOSwg
YXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLCByMlxuIiAiKHA3KSBici5jb25k
LnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5MzU3
NCkgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApOyB9IHdoaWxlICgwKTsKICAg
ICAgICBucl90aHJlYWRzLS07CiAgICAgICAgdW5oYXNoX3BpZChwKTsKICAgICAgICBkbyB7IChw
KS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rhc2st
Pm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBfb3Nw
dHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95c3B0
ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0gKHAp
LT5wX29zcHRyOyB9IHdoaWxlICgwKTsKICAgICAgICBsaXN0X2RlbCgmcC0+dGhyZWFkX2dyb3Vw
KTsKICAgICAgICBkbyB7ICh7Y2xlYXJfYml0KDMxLCAoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5
MzU3NCkpOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOyBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIjs7IHNzbSBwc3IuaTs7IHNybHouZCIgOjo6ICJtZW1vcnkiKTsg
fSB3aGlsZSAoMCk7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQgdGFza19sb2NrKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkKewogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3Yg
PSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUwXVxuIiAi
OztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFi
IFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztcbiIgImNt
cDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxuIiAiOztc
biIgOjogInIiKCYoJnAtPmFsbG9jX2xvY2spLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5
Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB0YXNrX3VubG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApCnsKICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
ICgoc3BpbmxvY2tfdCAqKSAmcC0+YWxsb2NfbG9jayktPmxvY2sgPSAwOyB9IHdoaWxlICgwKTsK
fQoKCnN0YXRpYyBpbmxpbmUgY2hhciAqIGRfcGF0aChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCB2ZnNtb3VudCAqdmZzbW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKmJ1ZiwgaW50IGJ1ZmxlbikKewogICAgICAgIGNoYXIgKnJlczsKICAgICAgICBzdHJ1Y3Qg
dmZzbW91bnQgKnJvb3RtbnQ7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqcm9vdDsKICAgICAgICBk
byB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjE6XHQiIiIiZmV0Y2hhZGQ0
LmFjcSAlMCA9IFslMV0sIDFcbiIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIo
cDYpIGJyLmNvbmQuc3B0ay5mZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4i
ICIyOlx0IiIiImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQu
YWNxICUwID0gWyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikg
YnIuY29uZC5zcHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5w
cmV2aW91c1xuIiA6ICI9JnIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2spOiAibWVt
b3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgcm9vdG1udCA9IG1udGdldChjdXJyZW50LT5mcy0+
cm9vdG1udCk7CiAgICAgICAgcm9vdCA9IGRnZXQoY3VycmVudC0+ZnMtPnJvb3QpOwogICAgICAg
IGRvIHsgaW50IHRtcCA9IDA7IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwID0gWyUxXSwgLTFcbiIgOiAiPXIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2sp
IDogIm1lbW9yeSIpOyB9IHdoaWxlKDApOwogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgg
Im1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIy
ID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25k
LnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxu
IiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZl
dyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdjMzJjYTEpLT5sb2Nr
KSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgcmVzID0gX19kX3BhdGhfUnNtcF9h
ZjFkN2JmZihkZW50cnksIHZmc21udCwgcm9vdCwgcm9vdG1udCwgYnVmLCBidWZsZW4pOwogICAg
ICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9j
a190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExKS0+bG9jayA9IDA7IH0gd2hpbGUgKDAp
OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhyb290KTsKICAgICAgICBtbnRwdXQocm9vdG1u
dCk7CiAgICAgICAgcmV0dXJuIHJlczsKfQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvYmxrZGV2LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2dlbmhkLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0dFTkhEX0gKIyAxMiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9nZW5oZC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9nZW5oZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
Z2VuaGQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWFqb3Iu
aCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2dlbmhkLmgiIDIK
CgoKCgoKCiNkZWZpbmUgRE9TX0VYVEVOREVEX1BBUlRJVElPTiA1CiNkZWZpbmUgTElOVVhfRVhU
RU5ERURfUEFSVElUSU9OIDB4ODUKI2RlZmluZSBXSU45OF9FWFRFTkRFRF9QQVJUSVRJT04gMHgw
ZgoKI2RlZmluZSBMSU5VWF9TV0FQX1BBUlRJVElPTiAweDgyCiNkZWZpbmUgTElOVVhfUkFJRF9Q
QVJUSVRJT04gMHhmZAoKCgoKCiNkZWZpbmUgRE02X1BBUlRJVElPTiAweDU0CiNkZWZpbmUgRVpE
X1BBUlRJVElPTiAweDU1CiNkZWZpbmUgRE02X0FVWDFQQVJUSVRJT04gMHg1MQojZGVmaW5lIERN
Nl9BVVgzUEFSVElUSU9OIDB4NTMKCnN0cnVjdCBwYXJ0aXRpb24gewogICAgICAgIHVuc2lnbmVk
IGNoYXIgYm9vdF9pbmQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBoZWFkOwogICAgICAgIHVuc2ln
bmVkIGNoYXIgc2VjdG9yOwogICAgICAgIHVuc2lnbmVkIGNoYXIgY3lsOwogICAgICAgIHVuc2ln
bmVkIGNoYXIgc3lzX2luZDsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9oZWFkOwogICAgICAg
IHVuc2lnbmVkIGNoYXIgZW5kX3NlY3RvcjsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9jeWw7
CiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X3NlY3Q7CiAgICAgICAgdW5zaWduZWQgaW50IG5y
X3NlY3RzOwp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19mc19rZXJuZWwuaCIgMQoKI2RlZmluZSBfTElOVVhf
REVWRlNfRlNfS0VSTkVMX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9mcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19m
c19rZXJuZWwuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29u
ZmlnLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RldmZzX2Zz
X2tlcm5lbC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9sb2Nr
cy5oIiAxCgojZGVmaW5lIF9MSU5VWF9MT0NLU19ICgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21tLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NX0gKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMgNSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9lcnJuby5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tbS5oIiAyCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jb25maWcuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21t
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAx
CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NWk9ORV9ICgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgOSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKCgoKCgojZGVmaW5lIE1BWF9PUkRFUiAxMAoK
dHlwZWRlZiBzdHJ1Y3QgZnJlZV9hcmVhX3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBmcmVlX2xpc3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqbWFwOwp9IGZyZWVfYXJlYV90OwoK
c3RydWN0IHBnbGlzdF9kYXRhOwojIDMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21tem9uZS5oIgp0eXBlZGVmIHN0cnVjdCB6b25lX3N0cnVjdCB7CgoKCiAgICAgICAgc3Bp
bmxvY2tfdCBsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZV9wYWdlc19Sc21wX2I1MTM2
NTA2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW5hY3RpdmVfY2xlYW5fcGFnZXM7CiAgICAgICAg
dW5zaWduZWQgbG9uZyBpbmFjdGl2ZV9kaXJ0eV9wYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25n
IHBhZ2VzX21pbiwgcGFnZXNfbG93LCBwYWdlc19oaWdoOwoKCgoKICAgICAgICBzdHJ1Y3QgbGlz
dF9oZWFkIGluYWN0aXZlX2NsZWFuX2xpc3Q7CiAgICAgICAgZnJlZV9hcmVhX3QgZnJlZV9hcmVh
WzEwXTsKCgoKCiAgICAgICAgc3RydWN0IHBnbGlzdF9kYXRhICp6b25lX3BnZGF0OwogICAgICAg
IHN0cnVjdCBwYWdlICp6b25lX21lbV9tYXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyB6b25lX3N0
YXJ0X3BhZGRyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9tYXBucjsKCgoKCiAg
ICAgICAgY2hhciAqbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7Cn0gem9uZV90OwoK
I2RlZmluZSBaT05FX0RNQSAwCiNkZWZpbmUgWk9ORV9OT1JNQUwgMQojZGVmaW5lIFpPTkVfSElH
SE1FTSAyCiNkZWZpbmUgTUFYX05SX1pPTkVTIDMKIyA3OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKdHlwZWRlZiBzdHJ1Y3Qgem9uZWxpc3Rfc3RydWN0IHsK
ICAgICAgICB6b25lX3QgKiB6b25lcyBbMyArMV07Cn0gem9uZWxpc3RfdDsKCiNkZWZpbmUgR0ZQ
X1pPTkVNQVNLIDB4MGYKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
bXpvbmUuaCIKc3RydWN0IGJvb3RtZW1fZGF0YTsKdHlwZWRlZiBzdHJ1Y3QgcGdsaXN0X2RhdGEg
ewogICAgICAgIHpvbmVfdCBub2RlX3pvbmVzWzNdOwogICAgICAgIHpvbmVsaXN0X3Qgbm9kZV96
b25lbGlzdHNbMHgwZiArMV07CiAgICAgICAgc3RydWN0IHBhZ2UgKm5vZGVfbWVtX21hcDsKICAg
ICAgICB1bnNpZ25lZCBsb25nICp2YWxpZF9hZGRyX2JpdG1hcDsKICAgICAgICBzdHJ1Y3QgYm9v
dG1lbV9kYXRhICpiZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIG5vZGVfc3RhcnRfcGFkZHI7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X21hcG5yOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgbm9kZV9zaXplOwogICAgICAgIGludCBub2RlX2lkOwogICAgICAgIHN0cnVjdCBwZ2xp
c3RfZGF0YSAqbm9kZV9uZXh0Owp9IHBnX2RhdGFfdDsKCmV4dGVybiBpbnQgbnVtbm9kZXM7CmV4
dGVybiBwZ19kYXRhX3QgKnBnZGF0X2xpc3Q7CgojZGVmaW5lIG1lbWNsYXNzKHBnem9uZSwgdHpv
bmUpICgoKHBnem9uZSktPnpvbmVfcGdkYXQgPT0gKHR6b25lKS0+em9uZV9wZ2RhdCkgJiYgKChw
Z3pvbmUpIDw9ICh0em9uZSkpKQoKCgoKCgpzdHJ1Y3QgcGFnZTsKZXh0ZXJuIHZvaWQgc2hvd19m
cmVlX2FyZWFzX2NvcmUocGdfZGF0YV90ICpwZ2RhdCk7CmV4dGVybiB2b2lkIGZyZWVfYXJlYV9p
bml0X2NvcmUoaW50IG5pZCwgcGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHBhZ2UgKipnbWFwLAog
IHVuc2lnbmVkIGxvbmcgKnpvbmVzX3NpemUsIHVuc2lnbmVkIGxvbmcgcGFkZHIsIHVuc2lnbmVk
IGxvbmcgKnpob2xlc19zaXplLAogIHN0cnVjdCBwYWdlICpwbWFwKTsKCmV4dGVybiBwZ19kYXRh
X3QgY29udGlnX3BhZ2VfZGF0YTsKCgoKI2RlZmluZSBOT0RFX0RBVEEobmlkKSAoJmNvbnRpZ19w
YWdlX2RhdGEpCiNkZWZpbmUgTk9ERV9NRU1fTUFQKG5pZCkgbWVtX21hcAoKCgoKCgoKI2RlZmlu
ZSBNQVBfQUxJR04oeCkgKCgoKHgpICUgc2l6ZW9mKG1lbV9tYXBfdCkpID09IDApID8gKHgpIDog
KCh4KSArIHNpemVvZihtZW1fbWFwX3QpIC0gKCh4KSAlIHNpemVvZihtZW1fbWFwX3QpKSkpCiMg
MTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIiAxCgojZGVmaW5lIF9MSU5VWF9T
V0FQX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o
IiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyA2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIgMgoKI2RlZmluZSBTV0FQX0ZMQUdf
UFJFRkVSIDB4ODAwMAojZGVmaW5lIFNXQVBfRkxBR19QUklPX01BU0sgMHg3ZmZmCiNkZWZpbmUg
U1dBUF9GTEFHX1BSSU9fU0hJRlQgMAoKI2RlZmluZSBNQVhfU1dBUEZJTEVTIDgKIyAyNSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiCnVuaW9uIHN3YXBfaGVhZGVy
IHsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFyIHJlc2VydmVk
WygxVUwgPDwgMTQpIC0gMTBdOwogICAgICAgICAgICAgICAgY2hhciBtYWdpY1sxMF07CiAgICAg
ICAgfSBtYWdpYzsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFy
IGJvb3RiaXRzWzEwMjRdOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZlcnNpb247CiAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGFzdF9wYWdlOwogICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IG5yX2JhZHBhZ2VzOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZGRp
bmdbMTI1XTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBiYWRwYWdlc1sxXTsKICAgICAg
ICB9IGluZm87Cn07CgoKCgoKCiNkZWZpbmUgX19zd2Fwb2Zmc2V0KHgpICgodW5zaWduZWQgbG9u
ZykmKCh1bmlvbiBzd2FwX2hlYWRlciAqKTApLT54KQojZGVmaW5lIE1BWF9TV0FQX0JBRFBBR0VT
ICgoX19zd2Fwb2Zmc2V0KG1hZ2ljLm1hZ2ljKSAtIF9fc3dhcG9mZnNldChpbmZvLmJhZHBhZ2Vz
KSkgLyBzaXplb2YoaW50KSkKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L2F0b21pYy5oIiAxCiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dh
cC5oIiAyCgojZGVmaW5lIFNXUF9VU0VEIDEKI2RlZmluZSBTV1BfV1JJVEVPSyAzCgojZGVmaW5l
IFNXQVBfQ0xVU1RFUl9NQVggMzIKCiNkZWZpbmUgU1dBUF9NQVBfTUFYIDB4N2ZmZgojZGVmaW5l
IFNXQVBfTUFQX0JBRCAweDgwMDAKCgoKCnN0cnVjdCBzd2FwX2luZm9fc3RydWN0IHsKICAgICAg
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAga2Rldl90IHN3YXBfZGV2aWNlOwogICAgICAg
IHNwaW5sb2NrX3Qgc2Rldl9sb2NrOwogICAgICAgIHN0cnVjdCBkZW50cnkgKiBzd2FwX2ZpbGU7
CiAgICAgICAgc3RydWN0IHZmc21vdW50ICpzd2FwX3Zmc21udDsKICAgICAgICB1bnNpZ25lZCBz
aG9ydCAqIHN3YXBfbWFwOwogICAgICAgIHVuc2lnbmVkIGludCBsb3dlc3RfYml0OwogICAgICAg
IHVuc2lnbmVkIGludCBoaWdoZXN0X2JpdDsKICAgICAgICB1bnNpZ25lZCBpbnQgY2x1c3Rlcl9u
ZXh0OwogICAgICAgIHVuc2lnbmVkIGludCBjbHVzdGVyX25yOwogICAgICAgIGludCBwcmlvOwog
ICAgICAgIGludCBwYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25nIG1heDsKICAgICAgICBpbnQg
bmV4dDsKfTsKCmV4dGVybiBpbnQgbnJfc3dhcF9wYWdlczsKZXh0ZXJuIHVuc2lnbmVkIGludCBu
cl9mcmVlX3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2luYWN0aXZlX2NsZWFu
X3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKHZv
aWQpOwpleHRlcm4gaW50IG5yX2FjdGl2ZV9wYWdlczsKZXh0ZXJuIGludCBucl9pbmFjdGl2ZV9k
aXJ0eV9wYWdlczsKZXh0ZXJuIGF0b21pY190IG5yX2FzeW5jX3BhZ2VzX1JzbXBfYWIzN2FjNTg7
CmV4dGVybiBzdHJ1Y3QgYWRkcmVzc19zcGFjZSBzd2FwcGVyX3NwYWNlOwpleHRlcm4gYXRvbWlj
X3QgcGFnZV9jYWNoZV9zaXplOwpleHRlcm4gYXRvbWljX3QgYnVmZmVybWVtX3BhZ2VzOwpleHRl
cm4gc3BpbmxvY2tfdCBwYWdlY2FjaGVfbG9jazsKZXh0ZXJuIHZvaWQgX19yZW1vdmVfaW5vZGVf
cGFnZShzdHJ1Y3QgcGFnZSAqKTsKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CnN0cnVjdCB2bV9hcmVh
X3N0cnVjdDsKc3RydWN0IHN5c2luZm87CgpzdHJ1Y3Qgem9uZV90OwoKCmV4dGVybiBpbnQgbWVt
b3J5X3ByZXNzdXJlOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV91cChzdHJ1Y3QgcGFnZSAqKTsKZXh0
ZXJuIHZvaWQgYWdlX3BhZ2VfdXBfbm9sb2NrKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBh
Z2VfcGFnZV9kb3duKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV9kb3duX25v
bG9jayhzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWdlX3BhZ2VfZG93bl9hZ2Vvbmx5KHN0
cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBkZWFjdGl2YXRlX3BhZ2VfUnNtcF9mMjY0ODI0OChz
dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgZGVhY3RpdmF0ZV9wYWdlX25vbG9jayhzdHJ1Y3Qg
cGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWN0aXZhdGVfcGFnZShzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJu
IHZvaWQgYWN0aXZhdGVfcGFnZV9ub2xvY2soc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIGxy
dV9jYWNoZV9hZGQoc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIF9fbHJ1X2NhY2hlX2RlbChz
dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgbHJ1X2NhY2hlX2RlbChzdHJ1Y3QgcGFnZSAqKTsK
ZXh0ZXJuIHZvaWQgcmVjYWxjdWxhdGVfdm1fc3RhdHModm9pZCk7CmV4dGVybiB2b2lkIHN3YXBf
c2V0dXAodm9pZCk7CgoKZXh0ZXJuIHN0cnVjdCBwYWdlICogcmVjbGFpbV9wYWdlKHpvbmVfdCAq
KTsKZXh0ZXJuIHdhaXRfcXVldWVfaGVhZF90IGtzd2FwZF93YWl0OwpleHRlcm4gd2FpdF9xdWV1
ZV9oZWFkX3Qga3JlY2xhaW1kX3dhaXQ7CmV4dGVybiBpbnQgcGFnZV9sYXVuZGVyKGludCwgaW50
KTsKZXh0ZXJuIGludCBmcmVlX3Nob3J0YWdlKHZvaWQpOwpleHRlcm4gaW50IGluYWN0aXZlX3No
b3J0YWdlKHZvaWQpOwpleHRlcm4gdm9pZCB3YWtldXBfa3N3YXBkKHZvaWQpOwpleHRlcm4gaW50
IHRyeV90b19mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBnZnBfbWFzayk7CgoKZXh0ZXJuIHZvaWQg
cndfc3dhcF9wYWdlKGludCwgc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIHJ3X3N3YXBfcGFn
ZV9ub2xvY2soaW50LCBzd3BfZW50cnlfdCwgY2hhciAqKTsKCgoKCmV4dGVybiB2b2lkIHNob3df
c3dhcF9jYWNoZV9pbmZvKHZvaWQpOwpleHRlcm4gdm9pZCBhZGRfdG9fc3dhcF9jYWNoZShzdHJ1
Y3QgcGFnZSAqLCBzd3BfZW50cnlfdCk7CmV4dGVybiBpbnQgc3dhcF9jaGVja19lbnRyeSh1bnNp
Z25lZCBsb25nKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICogbG9va3VwX3N3YXBfY2FjaGUoc3dwX2Vu
dHJ5X3QpOwpleHRlcm4gc3RydWN0IHBhZ2UgKiByZWFkX3N3YXBfY2FjaGVfYXN5bmMoc3dwX2Vu
dHJ5X3QpOwoKCmV4dGVybiBpbnQgb3V0X29mX21lbW9yeSh2b2lkKTsKZXh0ZXJuIHZvaWQgb29t
X2tpbGwodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBfX2RlbGV0ZV9mcm9tX3N3YXBfY2FjaGUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBkZWxldGVfZnJvbV9zd2FwX2NhY2hlKHN0cnVj
dCBwYWdlICpwYWdlKTsKZXh0ZXJuIHZvaWQgZGVsZXRlX2Zyb21fc3dhcF9jYWNoZV9ub2xvY2so
c3RydWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBmcmVlX3BhZ2VfYW5kX3N3YXBfY2FjaGUo
c3RydWN0IHBhZ2UgKnBhZ2UpOwoKCmV4dGVybiB1bnNpZ25lZCBpbnQgbnJfc3dhcGZpbGVzOwpl
eHRlcm4gc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Qgc3dhcF9pbmZvW107CmV4dGVybiBpbnQgaXNf
c3dhcF9wYXJ0aXRpb24oa2Rldl90KTsKZXh0ZXJuIHZvaWQgc2lfc3dhcGluZm8oc3RydWN0IHN5
c2luZm8gKik7CmV4dGVybiBzd3BfZW50cnlfdCBfX2dldF9zd2FwX3BhZ2UodW5zaWduZWQgc2hv
cnQpOwpleHRlcm4gdm9pZCBnZXRfc3dhcGhhbmRsZV9pbmZvKHN3cF9lbnRyeV90LCB1bnNpZ25l
ZCBsb25nICosIGtkZXZfdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IGlub2RlICoqKTsKZXh0ZXJuIGludCBzd2FwX2R1cGxpY2F0ZShzd3BfZW50cnlf
dCk7CmV4dGVybiBpbnQgc3dhcF9jb3VudChzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIGludCB2YWxp
ZF9zd2FwaGFuZGxlcyhzd3BfZW50cnlfdCwgdW5zaWduZWQgbG9uZyAqKTsKI2RlZmluZSBnZXRf
c3dhcF9wYWdlKCkgX19nZXRfc3dhcF9wYWdlKDEpCmV4dGVybiB2b2lkIF9fc3dhcF9mcmVlKHN3
cF9lbnRyeV90LCB1bnNpZ25lZCBzaG9ydCk7CiNkZWZpbmUgc3dhcF9mcmVlKGVudHJ5KSBfX3N3
YXBfZnJlZSgoZW50cnkpLCAxKQpzdHJ1Y3Qgc3dhcF9saXN0X3QgewogICAgICAgIGludCBoZWFk
OwogICAgICAgIGludCBuZXh0Owp9OwpleHRlcm4gc3RydWN0IHN3YXBfbGlzdF90IHN3YXBfbGlz
dDsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3YXBvZmYoY29u
c3QgY2hhciAqKTsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3
YXBvbihjb25zdCBjaGFyICosIGludCk7CgojZGVmaW5lIFNXQVBfQ0FDSEVfSU5GTwoKCmV4dGVy
biB1bnNpZ25lZCBsb25nIHN3YXBfY2FjaGVfYWRkX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9u
ZyBzd2FwX2NhY2hlX2RlbF90b3RhbDsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3dhcF9jYWNoZV9m
aW5kX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9uZyBzd2FwX2NhY2hlX2ZpbmRfc3VjY2VzczsK
CgpleHRlcm4gc3BpbmxvY2tfdCBwYWdlbWFwX2xydV9sb2NrOwoKCgoKCgojZGVmaW5lIFBBR0Vf
QUdFX1NUQVJUIDIKI2RlZmluZSBQQUdFX0FHRV9BRFYgMwojZGVmaW5lIFBBR0VfQUdFX01BWCA2
NAoKCgoKCiNkZWZpbmUgREVCVUdfQUREX1BBR0UgaWYgKFBhZ2VBY3RpdmUocGFnZSkgfHwgUGFn
ZUluYWN0aXZlRGlydHkocGFnZSkgfHwgUGFnZUluYWN0aXZlQ2xlYW4ocGFnZSkpIEJVRygpOwoK
CgojZGVmaW5lIFpFUk9fUEFHRV9CVUcgaWYgKHBhZ2VfY291bnQocGFnZSkgPT0gMCkgQlVHKCk7
CgoKI2RlZmluZSBhZGRfcGFnZV90b19hY3RpdmVfbGlzdChwYWdlKSB7IERFQlVHX0FERF9QQUdF
IFpFUk9fUEFHRV9CVUcgU2V0UGFnZUFjdGl2ZShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1
LCAmYWN0aXZlX2xpc3QpOyBucl9hY3RpdmVfcGFnZXMrKzsgfQoKCgoKCgoKI2RlZmluZSBhZGRf
cGFnZV90b19pbmFjdGl2ZV9kaXJ0eV9saXN0KHBhZ2UpIHsgREVCVUdfQUREX1BBR0UgWkVST19Q
QUdFX0JVRyBTZXRQYWdlSW5hY3RpdmVEaXJ0eShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1
LCAmaW5hY3RpdmVfZGlydHlfbGlzdCk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzKys7IHBhZ2Ut
PnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzKys7IH0KIyAyMjMgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIGFkZF9wYWdlX3RvX2luYWN0aXZlX2Ns
ZWFuX2xpc3QocGFnZSkgeyBERUJVR19BRERfUEFHRSBaRVJPX1BBR0VfQlVHIFNldFBhZ2VJbmFj
dGl2ZUNsZWFuKHBhZ2UpOyBsaXN0X2FkZCgmKHBhZ2UpLT5scnUsICZwYWdlLT56b25lLT5pbmFj
dGl2ZV9jbGVhbl9saXN0KTsgcGFnZS0+em9uZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMrKzsgfQoK
CgoKCgoKI2RlZmluZSBkZWxfcGFnZV9mcm9tX2FjdGl2ZV9saXN0KHBhZ2UpIHsgbGlzdF9kZWwo
JihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOyBucl9hY3RpdmVfcGFnZXMtLTsg
REVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9CgoKCgoKCgojZGVmaW5lIGRlbF9wYWdlX2Zy
b21faW5hY3RpdmVfZGlydHlfbGlzdChwYWdlKSB7IGxpc3RfZGVsKCYocGFnZSktPmxydSk7IENs
ZWFyUGFnZUluYWN0aXZlRGlydHkocGFnZSk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzLS07IHBh
Z2UtPnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzLS07IERFQlVHX0FERF9QQUdFIFpFUk9fUEFH
RV9CVUcgfQojIDI0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgi
CiNkZWZpbmUgZGVsX3BhZ2VfZnJvbV9pbmFjdGl2ZV9jbGVhbl9saXN0KHBhZ2UpIHsgbGlzdF9k
ZWwoJihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlSW5hY3RpdmVDbGVhbihwYWdlKTsgcGFnZS0+em9u
ZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMtLTsgREVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9
CiMgMjYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIKI2RlZmlu
ZSBJTkFDVElWRV9TSElGVCA2CiNkZWZpbmUgaW5hY3RpdmVfbWluKGEsIGIpICgoYSkgPCAoYikg
PyAoYSkgOiAoYikpCiNkZWZpbmUgaW5hY3RpdmVfdGFyZ2V0IGluYWN0aXZlX21pbigobWVtb3J5
X3ByZXNzdXJlID4+IElOQUNUSVZFX1NISUZUKSwgKG51bV9waHlzcGFnZXMgLyA0KSkKIyAyODEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIHBhZ2Vf
cmFtZGlzayhwYWdlKSAocGFnZS0+YnVmZmVycyAmJiAoTUFKT1IocGFnZS0+YnVmZmVycy0+Yl9k
ZXYpID09IFJBTURJU0tfTUFKT1IpKQoKCmV4dGVybiBzcGlubG9ja190IHN3YXBsb2NrOwoKI2Rl
ZmluZSBzd2FwX2xpc3RfbG9jaygpIHNwaW5fbG9jaygmc3dhcGxvY2spCiNkZWZpbmUgc3dhcF9s
aXN0X3VubG9jaygpIHNwaW5fdW5sb2NrKCZzd2FwbG9jaykKI2RlZmluZSBzd2FwX2RldmljZV9s
b2NrKHApIHNwaW5fbG9jaygmcC0+c2Rldl9sb2NrKQojZGVmaW5lIHN3YXBfZGV2aWNlX3VubG9j
ayhwKSBzcGluX3VubG9jaygmcC0+c2Rldl9sb2NrKQoKZXh0ZXJuIHZvaWQgc2htZW1fdW51c2Uo
c3dwX2VudHJ5X3QgZW50cnksIHN0cnVjdCBwYWdlICpwYWdlKTsKIyAxNCAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhf
bWFwbnJfUnNtcF8wMTEzOWZmYzsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtX3BoeXNwYWdlc19S
c21wXzA5NDhjZGU5OwpleHRlcm4gdm9pZCAqIGhpZ2hfbWVtb3J5X1JzbXBfOGE3ZDFjMzE7CmV4
dGVybiBpbnQgcGFnZV9jbHVzdGVyOwoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xp
c3Q7CmV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGluYWN0aXZlX2RpcnR5X2xpc3Q7CgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDI0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BHVEFCTEVfSAoj
IDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDE2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vbW1hbi5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9NTUFOX0gK
CgoKCgoKI2RlZmluZSBQUk9UX1JFQUQgMHgxCiNkZWZpbmUgUFJPVF9XUklURSAweDIKI2RlZmlu
ZSBQUk9UX0VYRUMgMHg0CiNkZWZpbmUgUFJPVF9OT05FIDB4MAoKI2RlZmluZSBNQVBfU0hBUkVE
IDB4MDEKI2RlZmluZSBNQVBfUFJJVkFURSAweDAyCiNkZWZpbmUgTUFQX1RZUEUgMHgwZgojZGVm
aW5lIE1BUF9GSVhFRCAweDEwCiNkZWZpbmUgTUFQX0FOT05ZTU9VUyAweDIwCgojZGVmaW5lIE1B
UF9HUk9XU0RPV04gMHgwMTAwCiNkZWZpbmUgTUFQX0dST1dTVVAgMHgwMjAwCiNkZWZpbmUgTUFQ
X0RFTllXUklURSAweDA4MDAKI2RlZmluZSBNQVBfRVhFQ1VUQUJMRSAweDEwMDAKI2RlZmluZSBN
QVBfTE9DS0VEIDB4MjAwMAojZGVmaW5lIE1BUF9OT1JFU0VSVkUgMHg0MDAwCiNkZWZpbmUgTUFQ
X1dSSVRFQ09NQklORUQgMHgxMDAwMAojZGVmaW5lIE1BUF9OT05DQUNIRUQgMHgyMDAwMAoKI2Rl
ZmluZSBNU19BU1lOQyAxCiNkZWZpbmUgTVNfSU5WQUxJREFURSAyCiNkZWZpbmUgTVNfU1lOQyA0
CgojZGVmaW5lIE1DTF9DVVJSRU5UIDEKI2RlZmluZSBNQ0xfRlVUVVJFIDIKCiNkZWZpbmUgTUFE
Vl9OT1JNQUwgMHgwCiNkZWZpbmUgTUFEVl9SQU5ET00gMHgxCiNkZWZpbmUgTUFEVl9TRVFVRU5U
SUFMIDB4MgojZGVmaW5lIE1BRFZfV0lMTE5FRUQgMHgzCiNkZWZpbmUgTUFEVl9ET05UTkVFRCAw
eDQKCgojZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKI2RlZmluZSBNQVBfRklMRSAwCiMg
MTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDE5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zeXN0ZW0uaCIgMQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBl
cy5oIiAxCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIg
MgoKI2RlZmluZSBJQTY0X01BWF9QSFlTX0JJVFMgNTAKCgoKCgoKI2RlZmluZSBfUEFHRV9QX0JJ
VCAwCiNkZWZpbmUgX1BBR0VfQV9CSVQgNQojZGVmaW5lIF9QQUdFX0RfQklUIDYKCiNkZWZpbmUg
X1BBR0VfUCAoMSA8PCBfUEFHRV9QX0JJVCkKI2RlZmluZSBfUEFHRV9NQV9XQiAoMHgwIDw8IDIp
CiNkZWZpbmUgX1BBR0VfTUFfVUMgKDB4NCA8PCAyKQojZGVmaW5lIF9QQUdFX01BX1VDRSAoMHg1
IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfV0MgKDB4NiA8PCAyKQojZGVmaW5lIF9QQUdFX01BX05B
VCAoMHg3IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfTUFTSyAoMHg3IDw8IDIpCiNkZWZpbmUgX1BB
R0VfUExfMCAoMCA8PCA3KQojZGVmaW5lIF9QQUdFX1BMXzEgKDEgPDwgNykKI2RlZmluZSBfUEFH
RV9QTF8yICgyIDw8IDcpCiNkZWZpbmUgX1BBR0VfUExfMyAoMyA8PCA3KQojZGVmaW5lIF9QQUdF
X1BMX01BU0sgKDMgPDwgNykKI2RlZmluZSBfUEFHRV9BUl9SICgwIDw8IDkpCiNkZWZpbmUgX1BB
R0VfQVJfUlggKDEgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SVyAoMiA8PCA5KQojZGVmaW5lIF9Q
QUdFX0FSX1JXWCAoMyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1JfUlcgKDQgPDwgOSkKI2RlZmlu
ZSBfUEFHRV9BUl9SWF9SV1ggKDUgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SV1hfUlcgKDYgPDwg
OSkKI2RlZmluZSBfUEFHRV9BUl9YX1JYICg3IDw8IDkpCiNkZWZpbmUgX1BBR0VfQVJfTUFTSyAo
NyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1NISUZUIDkKI2RlZmluZSBfUEFHRV9BICgxIDw8IF9Q
QUdFX0FfQklUKQojZGVmaW5lIF9QQUdFX0QgKDEgPDwgX1BBR0VfRF9CSVQpCiNkZWZpbmUgX1BB
R0VfUFBOX01BU0sgKCgoX19JQTY0X1VMKDEpIDw8IElBNjRfTUFYX1BIWVNfQklUUykgLSAxKSAm
IH4weGZmZlVMKQojZGVmaW5lIF9QQUdFX0VEIChfX0lBNjRfVUwoMSkgPDwgNTIpCiNkZWZpbmUg
X1BBR0VfUFJPVE5PTkUgKF9fSUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgX1BGTl9NQVNLIF9Q
QUdFX1BQTl9NQVNLCiNkZWZpbmUgX1BBR0VfQ0hHX01BU0sgKF9QRk5fTUFTSyB8IF9QQUdFX0Eg
fCBfUEFHRV9EKQoKI2RlZmluZSBfUEFHRV9TSVpFXzRLIDEyCiNkZWZpbmUgX1BBR0VfU0laRV84
SyAxMwojZGVmaW5lIF9QQUdFX1NJWkVfMTZLIDE0CiNkZWZpbmUgX1BBR0VfU0laRV82NEsgMTYK
I2RlZmluZSBfUEFHRV9TSVpFXzI1NksgMTgKI2RlZmluZSBfUEFHRV9TSVpFXzFNIDIwCiNkZWZp
bmUgX1BBR0VfU0laRV80TSAyMgojZGVmaW5lIF9QQUdFX1NJWkVfMTZNIDI0CiNkZWZpbmUgX1BB
R0VfU0laRV82NE0gMjYKI2RlZmluZSBfUEFHRV9TSVpFXzI1Nk0gMjgKCiNkZWZpbmUgX19BQ0NF
U1NfQklUUyBfUEFHRV9FRCB8IF9QQUdFX0EgfCBfUEFHRV9QIHwgX1BBR0VfTUFfV0IKI2RlZmlu
ZSBfX0RJUlRZX0JJVFNfTk9fRUQgX1BBR0VfQSB8IF9QQUdFX1AgfCBfUEFHRV9EIHwgX1BBR0Vf
TUFfV0IKI2RlZmluZSBfX0RJUlRZX0JJVFMgX1BBR0VfRUQgfCBfX0RJUlRZX0JJVFNfTk9fRUQK
CgoKCgoKI2RlZmluZSBQR0RJUl9TSElGVCAoUEFHRV9TSElGVCArIDIqKFBBR0VfU0hJRlQtMykp
CiNkZWZpbmUgUEdESVJfU0laRSAoX19JQTY0X1VMKDEpIDw8IFBHRElSX1NISUZUKQojZGVmaW5l
IFBHRElSX01BU0sgKH4oUEdESVJfU0laRS0xKSkKI2RlZmluZSBQVFJTX1BFUl9QR0QgKF9fSUE2
NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0zKSkKI2RlZmluZSBVU0VSX1BUUlNfUEVSX1BHRCAoNSpQ
VFJTX1BFUl9QR0QvOCkKI2RlZmluZSBGSVJTVF9VU0VSX1BHRF9OUiAwCgoKCgoKCgojZGVmaW5l
IFBNRF9TSElGVCAoUEFHRV9TSElGVCArIChQQUdFX1NISUZULTMpKQojZGVmaW5lIFBNRF9TSVpF
IChfX0lBNjRfVUwoMSkgPDwgUE1EX1NISUZUKQojZGVmaW5lIFBNRF9NQVNLICh+KFBNRF9TSVpF
LTEpKQojZGVmaW5lIFBUUlNfUEVSX1BNRCAoX19JQTY0X1VMKDEpIDw8IChQQUdFX1NISUZULTMp
KQoKCgoKI2RlZmluZSBQVFJTX1BFUl9QVEUgKF9fSUE2NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0z
KSkKIyAxMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIKI2Rl
ZmluZSBQQUdFX05PTkUgX19wZ3Byb3QoX1BBR0VfUFJPVE5PTkUgfCBfUEFHRV9BKQojZGVmaW5l
IFBBR0VfU0hBUkVEIF9fcGdwcm90KF9fQUNDRVNTX0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0Vf
QVJfUlcpCiNkZWZpbmUgUEFHRV9SRUFET05MWSBfX3BncHJvdChfX0FDQ0VTU19CSVRTIHwgX1BB
R0VfUExfMyB8IF9QQUdFX0FSX1IpCiNkZWZpbmUgUEFHRV9DT1BZIF9fcGdwcm90KF9fQUNDRVNT
X0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUikKI2RlZmluZSBQQUdFX0dBVEUgX19wZ3By
b3QoX19BQ0NFU1NfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9YX1JYKQojZGVmaW5lIFBB
R0VfS0VSTkVMIF9fcGdwcm90KF9fRElSVFlfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9S
V1gpCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEK
IyAxMjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDEKCiNkZWZp
bmUgX0FTTV9JQTY0X01NVV9DT05URVhUX0gKIyAyMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vbW11X2NvbnRleHQuaCIKI2RlZmluZSBJQTY0X1JFR0lPTl9JRF9LRVJORUwgMAoK
I2RlZmluZSBpYTY0X3JpZChjdHgsIGFkZHIpICgoKGN0eCkgPDwgMykgfCAoYWRkciA+PiA2MSkp
CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMg
MjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDEKIyAyOCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCIgMgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDMwICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oIiAyCgpzdHJ1Y3QgaWE2
NF9jdHggewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgbmV4
dDsKICAgICAgICB1bnNpZ25lZCBpbnQgbGltaXQ7CiAgICAgICAgdW5zaWduZWQgaW50IG1heF9j
dHg7Cn07CgpleHRlcm4gc3RydWN0IGlhNjRfY3R4IGlhNjRfY3R4OwoKZXh0ZXJuIHZvaWQgd3Jh
cF9tbXVfY29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pOwoKc3RhdGljIGlubGluZSB2b2lk
CmVudGVyX2xhenlfdGxiIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0
ICp0c2ssIHVuc2lnbmVkIGNwdSkKewp9CgpzdGF0aWMgaW5saW5lIHZvaWQKZ2V0X25ld19tbXVf
Y29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRp
bGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIg
ImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykg
YnIuY29uZC5zcG50LmZldyAxYiBcbiIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBh
ci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQu
c3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKCZpYTY0X2N0eC5sb2NrKS0+bG9jaykgOiAi
cjIiLCAicjI5IiwgIm1lbW9yeSIpOwogICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpYTY0
X2N0eC5uZXh0ID49IGlhNjRfY3R4LmxpbWl0KQogICAgICAgICAgICAgICAgICAgICAgICB3cmFw
X21tdV9jb250ZXh0KG1tKTsKICAgICAgICAgICAgICAgIG1tLT5jb250ZXh0ID0gaWE2NF9jdHgu
bmV4dCsrOwogICAgICAgIH0KICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7ICgoc3BpbmxvY2tfdCAqKSAmaWE2NF9jdHgubG9jayktPmxvY2sgPSAwOyB9
IHdoaWxlICgwKTsKCn0KCnN0YXRpYyBpbmxpbmUgdm9pZApnZXRfbW11X2NvbnRleHQgKHN0cnVj
dCBtbV9zdHJ1Y3QgKm1tKQp7CgogICAgICAgIGlmIChtbS0+Y29udGV4dCA9PSAwKQogICAgICAg
ICAgICAgICAgZ2V0X25ld19tbXVfY29udGV4dChtbSk7Cn0KCnN0YXRpYyBpbmxpbmUgaW50Cmlu
aXRfbmV3X2NvbnRleHQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1tX3N0cnVjdCAq
bW0pCnsKICAgICAgICBtbS0+Y29udGV4dCA9IDA7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZApkZXN0cm95X2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7Cgp9
CgpzdGF0aWMgaW5saW5lIHZvaWQKcmVsb2FkX2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t
KQp7
reply other threads:[~2001-07-24 0:03 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590693005891@msgid-missing \
--to=davidm@hpl.hp.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.