public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/5203: initializer element is not constant
@ 2002-04-26  2:19 rth
  0 siblings, 0 replies; 2+ messages in thread
From: rth @ 2002-04-26  2:19 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, georg.wild, nobody

Synopsis: initializer element is not constant

State-Changed-From-To: open->closed
State-Changed-By: rth
State-Changed-When: Fri Apr 26 02:18:56 2002
State-Changed-Why:
    Fixed for gcc 3.1.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5203


^ permalink raw reply	[flat|nested] 2+ messages in thread

* c/5203: initializer element is not constant
@ 2001-12-27  2:26 georg.wild
  0 siblings, 0 replies; 2+ messages in thread
From: georg.wild @ 2001-12-27  2:26 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5203
>Category:       c
>Synopsis:       initializer element is not constant
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 27 02:26:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     georg.wild@gmx.de
>Release:        latest cvs
>Organization:
>Environment:
glibc-2.2.90 i686-pc-linux-gnu
>Description:
I don't exactly know whether this is really a bug! It might also be possible that this is only because of less error tolerance.
When I compile the attachment with gcc 3.0.1 it works, with current cvs I got errors in the following manor:
libsmb/errormap.c:1357: initializer element is not constant
libsmb/errormap.c:1357: (near initialization for `ntstatus_to_werror_map[531]')
>How-To-Repeat:
gcc errormap.i
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="errormap.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="errormap.i"

IyAxICJsaWJzbWIvZXJyb3JtYXAuYyIKIyAxICI8YnVpbHQtaW4+IgojIDEgIjxjb21tYW5kIGxp
bmU+IgojIDEgImxpYnNtYi9lcnJvcm1hcC5jIgojIDIyICJsaWJzbWIvZXJyb3JtYXAuYyIKIyAx
ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDEKIyAyNSAiaW5jbHVkZS9pbmNsdWRlcy5oIgojIDEgImlu
Y2x1ZGUvY29uZmlnLmgiIDEKIyAyNiAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgoKIyAxICJpbmNs
dWRlL2xvY2FsLmgiIDEKIyAyOSAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgNzYgImluY2x1ZGUv
aW5jbHVkZXMuaCIKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDEgMwojIDI2
ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMjkxICIvdXNyL2xvY2FsL2luY2x1ZGUvZmVhdHVyZXMuaCIg
MwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAzCiMgMjkyICIvdXNyL2xv
Y2FsL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCiMgMzIwICIvdXNyL2xvY2FsL2luY2x1ZGUvZmVh
dHVyZXMuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9nbnUvc3R1YnMuaCIgMSAzCiMgMzIx
ICIvdXNyL2xvY2FsL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCiMgMjcgIi91c3IvbG9jYWwvaW5j
bHVkZS9zeXMvdHlwZXMuaCIgMiAzCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvdHlw
ZXMuaCIgMSAzCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMKIyAxICIv
dXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRl
L3N0ZGRlZi5oIiAxIDMKIyAyMDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1w
Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiB1bnNpZ25lZCBpbnQg
c2l6ZV90OwojIDMwICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMKCgp0eXBl
ZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX191X3No
b3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
X191X2xvbmc7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBf
X3VfcXVhZF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIGludCBfX3F1YWRfdDsK
IyA0OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwp0eXBlZGVmIHNpZ25lZCBj
aGFyIF9faW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90Owp0eXBlZGVmIHNp
Z25lZCBzaG9ydCBpbnQgX19pbnQxNl90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX3Vp
bnQxNl90Owp0eXBlZGVmIHNpZ25lZCBpbnQgX19pbnQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGlu
dCBfX3VpbnQzMl90OwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50
IF9faW50NjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQg
X191aW50NjRfdDsKCnR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsKCnR5cGVkZWYgX191X3F1
YWRfdCBfX2Rldl90Owp0eXBlZGVmIF9fdV9pbnQgX191aWRfdDsKdHlwZWRlZiBfX3VfaW50IF9f
Z2lkX3Q7CnR5cGVkZWYgX191X2xvbmcgX19pbm9fdDsKdHlwZWRlZiBfX3VfaW50IF9fbW9kZV90
Owp0eXBlZGVmIF9fdV9pbnQgX19ubGlua190Owp0eXBlZGVmIGxvbmcgaW50IF9fb2ZmX3Q7CnR5
cGVkZWYgX19xdWFkX3QgX19sb2ZmX3Q7CnR5cGVkZWYgaW50IF9fcGlkX3Q7CnR5cGVkZWYgaW50
IF9fc3NpemVfdDsKdHlwZWRlZiBfX3VfbG9uZyBfX3JsaW1fdDsKdHlwZWRlZiBfX3VfcXVhZF90
IF9fcmxpbTY0X3Q7CnR5cGVkZWYgX191X2ludCBfX2lkX3Q7Cgp0eXBlZGVmIHN0cnVjdAogIHsK
ICAgIGludCBfX3ZhbFsyXTsKICB9IF9fZnNpZF90OwoKCnR5cGVkZWYgaW50IF9fZGFkZHJfdDsK
dHlwZWRlZiBjaGFyICpfX2NhZGRyX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX190aW1lX3Q7CnR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fdXNlY29uZHNfdDsKdHlwZWRlZiBsb25nIGludCBfX3N1c2Vjb25k
c190Owp0eXBlZGVmIGxvbmcgaW50IF9fc3dibGtfdDsKCnR5cGVkZWYgbG9uZyBpbnQgX19jbG9j
a190OwoKCnR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoKCnR5cGVkZWYgaW50IF9fdGltZXJfdDsK
CgoKCgoKdHlwZWRlZiBpbnQgX19rZXlfdDsKCgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBf
X2lwY19waWRfdDsKCgoKdHlwZWRlZiBsb25nIGludCBfX2Jsa3NpemVfdDsKCgoKCnR5cGVkZWYg
bG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2Jsa2NudDY0X3Q7CgoKdHlw
ZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7CnR5cGVkZWYgX191X3F1YWRfdCBfX2ZzYmxrY250
NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNmaWxjbnRfdDsKdHlwZWRlZiBfX3VfcXVhZF90
IF9fZnNmaWxjbnQ2NF90OwoKCnR5cGVkZWYgX191X3F1YWRfdCBfX2lubzY0X3Q7CgoKdHlwZWRl
ZiBfX2xvZmZfdCBfX29mZjY0X3Q7CgoKdHlwZWRlZiBsb25nIGludCBfX3Rfc2NhbGFyX3Q7CnR5
cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX190X3VzY2FsYXJfdDsKCgp0eXBlZGVmIGludCBfX2lu
dHB0cl90OwoKCnR5cGVkZWYgdW5zaWduZWQgaW50IF9fc29ja2xlbl90OwoKCgoKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMSAzCiMgMjMgIi91c3IvbG9jYWwv
aW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2Jp
dHMvc2NoZWQuaCIgMSAzCiMgNjggIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NjaGVkLmgiIDMK
c3RydWN0IF9fc2NoZWRfcGFyYW0KICB7CiAgICBpbnQgX19zY2hlZF9wcmlvcml0eTsKICB9Owoj
IDI0ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMiAzCgoKc3RydWN0
IF9wdGhyZWFkX2Zhc3Rsb2NrCnsKICBsb25nIGludCBfX3N0YXR1czsKICBpbnQgX19zcGlubG9j
azsKCn07CgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX2Rlc2NyX3N0cnVjdCAqX3B0aHJlYWRf
ZGVzY3I7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2F0dHJfcwp7CiAgaW50IF9fZGV0
YWNoc3RhdGU7CiAgaW50IF9fc2NoZWRwb2xpY3k7CiAgc3RydWN0IF9fc2NoZWRfcGFyYW0gX19z
Y2hlZHBhcmFtOwogIGludCBfX2luaGVyaXRzY2hlZDsKICBpbnQgX19zY29wZTsKICBzaXplX3Qg
X19ndWFyZHNpemU7CiAgaW50IF9fc3RhY2thZGRyX3NldDsKICB2b2lkICpfX3N0YWNrYWRkcjsK
ICBzaXplX3QgX19zdGFja3NpemU7Cn0gcHRocmVhZF9hdHRyX3Q7CgoKCnR5cGVkZWYgc3RydWN0
CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19jX2xvY2s7CiAgX3B0aHJlYWRfZGVzY3Ig
X19jX3dhaXRpbmc7Cn0gcHRocmVhZF9jb25kX3Q7CgoKCnR5cGVkZWYgc3RydWN0CnsKICBpbnQg
X19kdW1teTsKfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgcHRo
cmVhZF9rZXlfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbV9yZXNlcnZlZDsKICBp
bnQgX19tX2NvdW50OwogIF9wdGhyZWFkX2Rlc2NyIF9fbV9vd25lcjsKICBpbnQgX19tX2tpbmQ7
CiAgc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrIF9fbV9sb2NrOwp9IHB0aHJlYWRfbXV0ZXhfdDsK
CgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX211dGV4a2luZDsKfSBwdGhyZWFkX211dGV4YXR0
cl90OwoKCgp0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKCgoKCnR5cGVkZWYgc3RydWN0IF9w
dGhyZWFkX3J3bG9ja190CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19yd19sb2NrOwog
IGludCBfX3J3X3JlYWRlcnM7CiAgX3B0aHJlYWRfZGVzY3IgX19yd193cml0ZXI7CiAgX3B0aHJl
YWRfZGVzY3IgX19yd19yZWFkX3dhaXRpbmc7CiAgX3B0aHJlYWRfZGVzY3IgX19yd193cml0ZV93
YWl0aW5nOwogIGludCBfX3J3X2tpbmQ7CiAgaW50IF9fcndfcHNoYXJlZDsKfSBwdGhyZWFkX3J3
bG9ja190OwoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbG9ja2tpbmQ7CiAgaW50IF9fcHNo
YXJlZDsKfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKCgoKCnR5cGVkZWYgdm9sYXRpbGUgaW50IHB0
aHJlYWRfc3BpbmxvY2tfdDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgc3RydWN0IF9wdGhyZWFkX2Zh
c3Rsb2NrIF9fYmFfbG9jazsKICBpbnQgX19iYV9yZXF1aXJlZDsKICBpbnQgX19iYV9wcmVzZW50
OwogIF9wdGhyZWFkX2Rlc2NyIF9fYmFfd2FpdGluZzsKfSBwdGhyZWFkX2JhcnJpZXJfdDsKCgp0
eXBlZGVmIHN0cnVjdCB7CiAgaW50IF9fcHNoYXJlZDsKfSBwdGhyZWFkX2JhcnJpZXJhdHRyX3Q7
CgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBwdGhyZWFkX3Q7CiMgMTQ0ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMKIyAzMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5
cy90eXBlcy5oIiAyIDMKCgoKdHlwZWRlZiBfX3VfY2hhciB1X2NoYXI7CnR5cGVkZWYgX191X3No
b3J0IHVfc2hvcnQ7CnR5cGVkZWYgX191X2ludCB1X2ludDsKdHlwZWRlZiBfX3VfbG9uZyB1X2xv
bmc7CnR5cGVkZWYgX19xdWFkX3QgcXVhZF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgdV9xdWFkX3Q7
CnR5cGVkZWYgX19mc2lkX3QgZnNpZF90OwoKCgoKdHlwZWRlZiBfX2xvZmZfdCBsb2ZmX3Q7CgoK
CgoKdHlwZWRlZiBfX2lubzY0X3QgaW5vX3Q7CgoKCgp0eXBlZGVmIF9faW5vNjRfdCBpbm82NF90
OwoKCgoKdHlwZWRlZiBfX2Rldl90IGRldl90OwoKCgoKdHlwZWRlZiBfX2dpZF90IGdpZF90OwoK
CgoKdHlwZWRlZiBfX21vZGVfdCBtb2RlX3Q7CgoKCgp0eXBlZGVmIF9fbmxpbmtfdCBubGlua190
OwoKCgoKdHlwZWRlZiBfX3VpZF90IHVpZF90OwoKCgoKCgoKdHlwZWRlZiBfX29mZjY0X3Qgb2Zm
X3Q7CgoKCgp0eXBlZGVmIF9fb2ZmNjRfdCBvZmY2NF90OwoKCgoKdHlwZWRlZiBfX3BpZF90IHBp
ZF90OwoKCgoKdHlwZWRlZiBfX2lkX3QgaWRfdDsKCgoKCnR5cGVkZWYgX19zc2l6ZV90IHNzaXpl
X3Q7CgoKCgoKdHlwZWRlZiBfX2RhZGRyX3QgZGFkZHJfdDsKdHlwZWRlZiBfX2NhZGRyX3QgY2Fk
ZHJfdDsKCgoKCgp0eXBlZGVmIF9fa2V5X3Qga2V5X3Q7CiMgMTMyICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3lzL3R5cGVzLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAxIDMKIyA1
OSAiL3Vzci9sb2NhbC9pbmNsdWRlL3RpbWUuaCIgMwp0eXBlZGVmIF9fY2xvY2tfdCBjbG9ja190
OwojIDcwICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAzCnR5cGVkZWYgX190aW1lX3QgdGlt
ZV90OwojIDgyICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAzCnR5cGVkZWYgX19jbG9ja2lk
X3QgY2xvY2tpZF90OwojIDk0ICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAzCnR5cGVkZWYg
X190aW1lcl90IHRpbWVyX3Q7CiMgMTMzICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgi
IDIgMwoKCgp0eXBlZGVmIF9fdXNlY29uZHNfdCB1c2Vjb25kc190OwoKCgp0eXBlZGVmIF9fc3Vz
ZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoKCgoKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2Mt
bGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAxNDcgIi91
c3IvbG9jYWwvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBpbnQgdWxvbmc7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVzaG9ydDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgdWludDsKIyAxOTAgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvdHlwZXMuaCIg
Mwp0eXBlZGVmIGludCBpbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7
CnR5cGVkZWYgaW50IGludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7
CnR5cGVkZWYgaW50IGludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7
CnR5cGVkZWYgaW50IGludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7
CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f
IChfX1FJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBfX2F0dHJpYnV0ZV9f
ICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQzMl90IF9f
YXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCB1
X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7Cgp0eXBlZGVmIGlu
dCByZWdpc3Rlcl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX193b3JkX18pKSk7CiMgMjEy
ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvZW5kaWFuLmgiIDEgMwojIDM3ICIvdXNyL2xvY2FsL2luY2x1ZGUvZW5kaWFuLmgiIDMKIyAx
ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9lbmRpYW4uaCIgMSAzCiMgMzggIi91c3IvbG9jYWwv
aW5jbHVkZS9lbmRpYW4uaCIgMiAzCiMgMjEzICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVz
LmgiIDIgMwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMSAzCiMgMzEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvYml0cy9zZWxlY3QuaCIgMSAzCiMgMzIgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc2VsZWN0
LmgiIDIgMwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2lnc2V0LmgiIDEgMwojIDIz
ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMwp0eXBlZGVmIGludCBfX3NpZ19h
dG9taWNfdDsKCgoKCnR5cGVkZWYgc3RydWN0CiAgewogICAgdW5zaWduZWQgbG9uZyBpbnQgX192
YWxbKDEwMjQgLyAoOCAqIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSldOwogIH0gX19zaWdz
ZXRfdDsKIyAzNSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzCgoKCnR5cGVk
ZWYgX19zaWdzZXRfdCBzaWdzZXRfdDsKCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS90aW1l
LmgiIDEgMwojIDEwNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3RpbWUuaCIgMwpzdHJ1Y3QgdGltZXNw
ZWMKICB7CiAgICBfX3RpbWVfdCB0dl9zZWM7CiAgICBsb25nIGludCB0dl9uc2VjOwogIH07CiMg
NDUgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDIgMwoKIyAxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy90aW1lLmgiIDEgMwojIDY3ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy90
aW1lLmgiIDMKc3RydWN0IHRpbWV2YWwKICB7CiAgICBfX3RpbWVfdCB0dl9zZWM7CiAgICBfX3N1
c2Vjb25kc190IHR2X3VzZWM7CiAgfTsKIyA0NyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zZWxl
Y3QuaCIgMiAzCiMgNTUgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMKdHlwZWRl
ZiBsb25nIGludCBfX2ZkX21hc2s7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdAogIHsKCgoKICAgIF9f
ZmRfbWFzayBmZHNfYml0c1sxMDI0IC8gKDggKiBzaXplb2YgKF9fZmRfbWFzaykpXTsKCgoKCgog
IH0gZmRfc2V0OwoKCgoKCgp0eXBlZGVmIF9fZmRfbWFzayBmZF9tYXNrOwojIDk1ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzCgoKCgoKCgpleHRlcm4gaW50IHNlbGVjdCAoaW50
IF9fbmZkcywgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fcmVhZGZkcywKICAgICAgICAgICAgICAgICAg
IGZkX3NldCAqX19yZXN0cmljdCBfX3dyaXRlZmRzLAogICAgICAgICAgICAgICAgICAgZmRfc2V0
ICpfX3Jlc3RyaWN0IF9fZXhjZXB0ZmRzLAogICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWV2
YWwgKl9fcmVzdHJpY3QgX190aW1lb3V0KSA7CgoKCgoKZXh0ZXJuIGludCBwc2VsZWN0IChpbnQg
X19uZmRzLCBmZF9zZXQgKl9fcmVzdHJpY3QgX19yZWFkZmRzLAogICAgICAgICAgICAgICAgICAg
IGZkX3NldCAqX19yZXN0cmljdCBfX3dyaXRlZmRzLAogICAgICAgICAgICAgICAgICAgIGZkX3Nl
dCAqX19yZXN0cmljdCBfX2V4Y2VwdGZkcywKICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1
Y3QgdGltZXNwZWMgKl9fcmVzdHJpY3QgX190aW1lb3V0LAogICAgICAgICAgICAgICAgICAgIGNv
bnN0IF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zaWdtYXNrKSA7CgoKCiMgMjE2ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5
cy9zeXNtYWNyb3MuaCIgMSAzCiMgMjE5ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3R5cGVzLmgi
IDIgMwoKCgoKdHlwZWRlZiBfX2Jsa3NpemVfdCBibGtzaXplX3Q7CiMgMjQzICIvdXNyL2xvY2Fs
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiBfX2Jsa2NudDY0X3QgYmxrY250X3Q7CgoK
CnR5cGVkZWYgX19mc2Jsa2NudDY0X3QgZnNibGtjbnRfdDsKCgoKdHlwZWRlZiBfX2ZzZmlsY250
NjRfdCBmc2ZpbGNudF90OwoKCgoKCnR5cGVkZWYgX19ibGtjbnQ2NF90IGJsa2NudDY0X3Q7CnR5
cGVkZWYgX19mc2Jsa2NudDY0X3QgZnNibGtjbnQ2NF90Owp0eXBlZGVmIF9fZnNmaWxjbnQ2NF90
IGZzZmlsY250NjRfdDsKCgoKIyA3NyAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgoKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3RpbWUuaCIgMSAzCiMgMjYgIi91c3IvbG9jYWwvaW5jbHVkZS9z
eXMvdGltZS5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3RpbWUuaCIgMSAzCiMgMjcgIi91
c3IvbG9jYWwvaW5jbHVkZS9zeXMvdGltZS5oIiAyIDMKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2JpdHMvdGltZS5oIiAxIDMKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy90aW1lLmgiIDIg
MwojIDM4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3RpbWUuaCIgMwoKIyA1NiAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N5cy90aW1lLmgiIDMKc3RydWN0IHRpbWV6b25lCiAgewogICAgaW50IHR6X21p
bnV0ZXN3ZXN0OwogICAgaW50IHR6X2RzdHRpbWU7CiAgfTsKCnR5cGVkZWYgc3RydWN0IHRpbWV6
b25lICpfX3Jlc3RyaWN0IF9fdGltZXpvbmVfcHRyX3Q7CiMgNzIgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zeXMvdGltZS5oIiAzCmV4dGVybiBpbnQgZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXZhbCAq
X19yZXN0cmljdCBfX3R2LAogICAgICAgICAgICAgICAgICAgICAgICAgX190aW1lem9uZV9wdHJf
dCBfX3R6KSA7CgoKCgpleHRlcm4gaW50IHNldHRpbWVvZmRheSAoX19jb25zdCBzdHJ1Y3QgdGlt
ZXZhbCAqX190diwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3Qgc3RydWN0IHRpbWV6
b25lICpfX3R6KSA7CgoKCgoKZXh0ZXJuIGludCBhZGp0aW1lIChfX2NvbnN0IHN0cnVjdCB0aW1l
dmFsICpfX2RlbHRhLAogICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFsICpfX29sZGRl
bHRhKSA7CgoKCgplbnVtIF9faXRpbWVyX3doaWNoCiAgewoKICAgIElUSU1FUl9SRUFMID0gMCwK
CgogICAgSVRJTUVSX1ZJUlRVQUwgPSAxLAoKCgogICAgSVRJTUVSX1BST0YgPSAyCgogIH07CgoK
CnN0cnVjdCBpdGltZXJ2YWwKICB7CgogICAgc3RydWN0IHRpbWV2YWwgaXRfaW50ZXJ2YWw7Cgog
ICAgc3RydWN0IHRpbWV2YWwgaXRfdmFsdWU7CiAgfTsKCgoKCnR5cGVkZWYgZW51bSBfX2l0aW1l
cl93aGljaCBfX2l0aW1lcl93aGljaF90OwoKCgoKCgpleHRlcm4gaW50IGdldGl0aW1lciAoX19p
dGltZXJfd2hpY2hfdCBfX3doaWNoLAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGl0aW1l
cnZhbCAqX192YWx1ZSkgOwoKCgoKZXh0ZXJuIGludCBzZXRpdGltZXIgKF9faXRpbWVyX3doaWNo
X3QgX193aGljaCwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3Qgc3RydWN0IGl0aW1lcnZh
bCAqX19yZXN0cmljdCBfX25ldywKICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpdGltZXJ2
YWwgKl9fcmVzdHJpY3QgX19vbGQpIDsKCgoKZXh0ZXJuIGludCB1dGltZXMgKF9fY29uc3QgY2hh
ciAqX19maWxlLCBfX2NvbnN0IHN0cnVjdCB0aW1ldmFsIF9fdHZwWzJdKQogICAgIDsKIyAxNzEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zeXMvdGltZS5oIiAzCgojIDgwICJpbmNsdWRlL2luY2x1ZGVz
LmgiIDIKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAxIDMKIyAzMCAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3RpbWUuaCIgMwoKCgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2Nj
LWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzkgIi91
c3IvbG9jYWwvaW5jbHVkZS90aW1lLmgiIDIgMwoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9i
aXRzL3RpbWUuaCIgMSAzCiMgNDMgIi91c3IvbG9jYWwvaW5jbHVkZS90aW1lLmgiIDIgMwojIDEx
OCAiL3Vzci9sb2NhbC9pbmNsdWRlL3RpbWUuaCIgMwpzdHJ1Y3QgdG0KewogIGludCB0bV9zZWM7
CiAgaW50IHRtX21pbjsKICBpbnQgdG1faG91cjsKICBpbnQgdG1fbWRheTsKICBpbnQgdG1fbW9u
OwogIGludCB0bV95ZWFyOwogIGludCB0bV93ZGF5OwogIGludCB0bV95ZGF5OwogIGludCB0bV9p
c2RzdDsKCgogIGxvbmcgaW50IHRtX2dtdG9mZjsKICBfX2NvbnN0IGNoYXIgKnRtX3pvbmU7CgoK
Cgp9OwoKCgoKc3RydWN0IGl0aW1lcnNwZWMKICB7CiAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfaW50
ZXJ2YWw7CiAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFsdWU7CiAgfTsKCgpzdHJ1Y3Qgc2lnZXZl
bnQ7CiMgMTYzICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAzCmV4dGVybiBjbG9ja190IGNs
b2NrICh2b2lkKSA7CgoKZXh0ZXJuIHRpbWVfdCB0aW1lICh0aW1lX3QgKl9fdGltZXIpIDsKCgpl
eHRlcm4gZG91YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApCiAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiB0aW1lX3QgbWt0aW1lIChz
dHJ1Y3QgdG0gKl9fdHApIDsKCgoKCgpleHRlcm4gc2l6ZV90IHN0cmZ0aW1lIChjaGFyICpfX3Jl
c3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICBf
X2NvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CgoKCgpleHRlcm4gY2hhciAqc3Ry
cHRpbWUgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBzdHJ1Y3QgdG0gKl9fdHApCiAgICAg
OwoKCgoKCmV4dGVybiBzdHJ1Y3QgdG0gKmdtdGltZSAoX19jb25zdCB0aW1lX3QgKl9fdGltZXIp
IDsKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChfX2NvbnN0IHRpbWVfdCAqX190aW1l
cikgOwoKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lX3IgKF9fY29uc3QgdGltZV90ICpfX3Jl
c3RyaWN0IF9fdGltZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKl9f
cmVzdHJpY3QgX190cCkgOwoKCgpleHRlcm4gc3RydWN0IHRtICpsb2NhbHRpbWVfciAoX19jb25z
dCB0aW1lX3QgKl9fcmVzdHJpY3QgX190aW1lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CgoKCgpleHRlcm4gY2hhciAqYXNjdGlt
ZSAoX19jb25zdCBzdHJ1Y3QgdG0gKl9fdHApIDsKCgpleHRlcm4gY2hhciAqY3RpbWUgKF9fY29u
c3QgdGltZV90ICpfX3RpbWVyKSA7CgoKCgoKCmV4dGVybiBjaGFyICphc2N0aW1lX3IgKF9fY29u
c3Qgc3RydWN0IHRtICpfX3Jlc3RyaWN0IF9fdHAsCiAgICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgpleHRlcm4gY2hhciAqY3RpbWVfciAoX19jb25zdCB0
aW1lX3QgKl9fcmVzdHJpY3QgX190aW1lciwKICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9f
cmVzdHJpY3QgX19idWYpIDsKCgoKCmV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKZXh0ZXJuIGlu
dCBfX2RheWxpZ2h0OwpleHRlcm4gbG9uZyBpbnQgX190aW1lem9uZTsKCgoKCmV4dGVybiBjaGFy
ICp0em5hbWVbMl07CgoKCmV4dGVybiB2b2lkIHR6c2V0ICh2b2lkKSA7CgoKCmV4dGVybiBpbnQg
ZGF5bGlnaHQ7CmV4dGVybiBsb25nIGludCB0aW1lem9uZTsKCgoKCgpleHRlcm4gaW50IHN0aW1l
IChfX2NvbnN0IHRpbWVfdCAqX193aGVuKSA7CiMgMjcxICIvdXNyL2xvY2FsL2luY2x1ZGUvdGlt
ZS5oIiAzCmV4dGVybiB0aW1lX3QgdGltZWdtIChzdHJ1Y3QgdG0gKl9fdHApIDsKCgpleHRlcm4g
dGltZV90IHRpbWVsb2NhbCAoc3RydWN0IHRtICpfX3RwKSA7CgoKZXh0ZXJuIGludCBkeXNpemUg
KGludCBfX3llYXIpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKCgpleHRlcm4gaW50
IG5hbm9zbGVlcCAoX19jb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVxdWVzdGVkX3RpbWUsCiAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVtYWluaW5nKSA7CgoKCmV4
dGVybiBpbnQgY2xvY2tfZ2V0cmVzIChjbG9ja2lkX3QgX19jbG9ja19pZCwgc3RydWN0IHRpbWVz
cGVjICpfX3JlcykgOwoKCmV4dGVybiBpbnQgY2xvY2tfZ2V0dGltZSAoY2xvY2tpZF90IF9fY2xv
Y2tfaWQsIHN0cnVjdCB0aW1lc3BlYyAqX190cCkgOwoKCmV4dGVybiBpbnQgY2xvY2tfc2V0dGlt
ZSAoY2xvY2tpZF90IF9fY2xvY2tfaWQsIF9fY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3RwKQog
ICAgIDsKCgoKZXh0ZXJuIGludCBjbG9ja19uYW5vc2xlZXAgKGNsb2NraWRfdCBfX2Nsb2NrX2lk
LCBpbnQgX19mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3Qgc3RydWN0
IHRpbWVzcGVjICpfX3JlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1l
c3BlYyAqX19yZW0pIDsKCgpleHRlcm4gaW50IGNsb2NrX2dldGNwdWNsb2NraWQgKHBpZF90IF9f
cGlkLCBjbG9ja2lkX3QgKl9fY2xvY2tfaWQpIDsKCgoKCmV4dGVybiBpbnQgdGltZXJfY3JlYXRl
IChjbG9ja2lkX3QgX19jbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBz
aWdldmVudCAqX19yZXN0cmljdCBfX2V2cCwKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVy
X3QgKl9fcmVzdHJpY3QgX190aW1lcmlkKSA7CgoKZXh0ZXJuIGludCB0aW1lcl9kZWxldGUgKHRp
bWVyX3QgX190aW1lcmlkKSA7CgoKZXh0ZXJuIGludCB0aW1lcl9zZXR0aW1lICh0aW1lcl90IF9f
dGltZXJpZCwgaW50IF9fZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBz
dHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmljdCBfX3ZhbHVlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fb3ZhbHVlKSA7CgoKZXh0ZXJu
IGludCB0aW1lcl9nZXR0aW1lICh0aW1lcl90IF9fdGltZXJpZCwgc3RydWN0IGl0aW1lcnNwZWMg
Kl9fdmFsdWUpCiAgICAgOwoKCmV4dGVybiBpbnQgdGltZXJfZ2V0b3ZlcnJ1biAodGltZXJfdCBf
X3RpbWVyaWQpIDsKIyAzNDIgIi91c3IvbG9jYWwvaW5jbHVkZS90aW1lLmgiIDMKZXh0ZXJuIGlu
dCBnZXRkYXRlX2VycjsKCgoKCgpleHRlcm4gc3RydWN0IHRtICpnZXRkYXRlIChfX2NvbnN0IGNo
YXIgKl9fc3RyaW5nKSA7CiMgMzU3ICIvdXNyL2xvY2FsL2luY2x1ZGUvdGltZS5oIiAzCmV4dGVy
biBpbnQgZ2V0ZGF0ZV9yIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zdHJpbmcsCiAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX19yZXNidWZwKSA7CgoKCgoj
IDgxICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyA5MCAiaW5jbHVkZS9pbmNsdWRlcy5oIgojIDEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMSAzCiMgMjUgIi91c3IvbG9jYWwv
aW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3Jl
c291cmNlLmgiIDEgMwojIDMyICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9yZXNvdXJjZS5oIiAz
CmVudW0gX19ybGltaXRfcmVzb3VyY2UKewoKICBSTElNSVRfQ1BVID0gMCwKCgoKICBSTElNSVRf
RlNJWkUgPSAxLAoKCgogIFJMSU1JVF9EQVRBID0gMiwKCgoKICBSTElNSVRfU1RBQ0sgPSAzLAoK
CgogIFJMSU1JVF9DT1JFID0gNCwKCgoKCgoKICBSTElNSVRfUlNTID0gNSwKCgoKICBSTElNSVRf
Tk9GSUxFID0gNywKICBSTElNSVRfT0ZJTEUgPSBSTElNSVRfTk9GSUxFLAoKCgoKICBSTElNSVRf
QVMgPSA5LAoKCgogIFJMSU1JVF9OUFJPQyA9IDYsCgoKCiAgUkxJTUlUX01FTUxPQ0sgPSA4LAoK
CgogIFJMSU1JVF9MT0NLUyA9IDEwLAoKCiAgUkxJTUlUX05MSU1JVFMgPSAxMSwKICBSTElNX05M
SU1JVFMgPSBSTElNSVRfTkxJTUlUUwoKCn07CiMgMTA5ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0
cy9yZXNvdXJjZS5oIiAzCnR5cGVkZWYgX19ybGltNjRfdCBybGltX3Q7CgoKdHlwZWRlZiBfX3Js
aW02NF90IHJsaW02NF90OwoKCnN0cnVjdCBybGltaXQKICB7CgogICAgcmxpbV90IHJsaW1fY3Vy
OwoKICAgIHJsaW1fdCBybGltX21heDsKICB9OwoKCnN0cnVjdCBybGltaXQ2NAogIHsKCiAgICBy
bGltNjRfdCBybGltX2N1cjsKCiAgICBybGltNjRfdCBybGltX21heDsKIH07CgoKCmVudW0gX19y
dXNhZ2Vfd2hvCnsKCiAgUlVTQUdFX1NFTEYgPSAwLAoKCgogIFJVU0FHRV9DSElMRFJFTiA9IC0x
LAoKCgogIFJVU0FHRV9CT1RIID0gLTIKCn07CgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0
cy90aW1lLmgiIDEgMwojIDE1MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIg
MiAzCgoKc3RydWN0IHJ1c2FnZQogIHsKCiAgICBzdHJ1Y3QgdGltZXZhbCBydV91dGltZTsKCiAg
ICBzdHJ1Y3QgdGltZXZhbCBydV9zdGltZTsKCiAgICBsb25nIGludCBydV9tYXhyc3M7CgoKICAg
IGxvbmcgaW50IHJ1X2l4cnNzOwoKICAgIGxvbmcgaW50IHJ1X2lkcnNzOwoKICAgIGxvbmcgaW50
IHJ1X2lzcnNzOwoKCiAgICBsb25nIGludCBydV9taW5mbHQ7CgogICAgbG9uZyBpbnQgcnVfbWFq
Zmx0OwoKICAgIGxvbmcgaW50IHJ1X25zd2FwOwoKCiAgICBsb25nIGludCBydV9pbmJsb2NrOwoK
ICAgIGxvbmcgaW50IHJ1X291YmxvY2s7CgogICAgbG9uZyBpbnQgcnVfbXNnc25kOwoKICAgIGxv
bmcgaW50IHJ1X21zZ3JjdjsKCiAgICBsb25nIGludCBydV9uc2lnbmFsczsKCgoKICAgIGxvbmcg
aW50IHJ1X252Y3N3OwoKCiAgICBsb25nIGludCBydV9uaXZjc3c7CiAgfTsKCgoKCgoKCmVudW0g
X19wcmlvcml0eV93aGljaAp7CiAgUFJJT19QUk9DRVNTID0gMCwKCiAgUFJJT19QR1JQID0gMSwK
CiAgUFJJT19VU0VSID0gMgoKfTsKIyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9yZXNvdXJj
ZS5oIiAyIDMKCgoKCgoKCgoKCgoKCnR5cGVkZWYgZW51bSBfX3JsaW1pdF9yZXNvdXJjZSBfX3Js
aW1pdF9yZXNvdXJjZV90Owp0eXBlZGVmIGVudW0gX19ydXNhZ2Vfd2hvIF9fcnVzYWdlX3dob190
Owp0eXBlZGVmIGVudW0gX19wcmlvcml0eV93aGljaCBfX3ByaW9yaXR5X3doaWNoX3Q7CiMgNTUg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMwpleHRlcm4gaW50IGdldHJsaW1p
dCAoX19ybGltaXRfcmVzb3VyY2VfdCBfX3Jlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1p
dHMpIF9fYXNtX18gKCIiICJnZXRybGltaXQ2NCIpOwoKCgoKCgoKZXh0ZXJuIGludCBnZXRybGlt
aXQ2NCAoX19ybGltaXRfcmVzb3VyY2VfdCBfX3Jlc291cmNlLAogICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgcmxpbWl0NjQgKl9fcmxpbWl0cykgOwojIDc1ICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3lzL3Jlc291cmNlLmgiIDMKZXh0ZXJuIGludCBzZXRybGltaXQgKF9fcmxpbWl0X3Jlc291
cmNlX3QgX19yZXNvdXJjZSwgX19jb25zdCBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1pdHMpIF9fYXNt
X18gKCIiICJzZXRybGltaXQ2NCIpOwoKCgoKCgoKZXh0ZXJuIGludCBzZXRybGltaXQ2NCAoX19y
bGltaXRfcmVzb3VyY2VfdCBfX3Jlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICBfX2Nv
bnN0IHN0cnVjdCBybGltaXQ2NCAqX19ybGltaXRzKSA7CgoKCgpleHRlcm4gaW50IGdldHJ1c2Fn
ZSAoX19ydXNhZ2Vfd2hvX3QgX193aG8sIHN0cnVjdCBydXNhZ2UgKl9fdXNhZ2UpIDsKCgoKCgpl
eHRlcm4gaW50IGdldHByaW9yaXR5IChfX3ByaW9yaXR5X3doaWNoX3QgX193aGljaCwgaWRfdCBf
X3dobykgOwoKCgpleHRlcm4gaW50IHNldHByaW9yaXR5IChfX3ByaW9yaXR5X3doaWNoX3QgX193
aGljaCwgaWRfdCBfX3dobywgaW50IF9fcHJpbykKICAgICA7CgoKIyA5MSAiaW5jbHVkZS9pbmNs
dWRlcy5oIiAyCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAxIDMKIyAyOCAi
L3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAzCgojIDE3NSAiL3Vzci9sb2NhbC9pbmNsdWRl
L3VuaXN0ZC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvcG9zaXhfb3B0LmgiIDEg
MwojIDE3NiAiL3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAyIDMKCgoKIyAxICIvdXNyL2xv
Y2FsL2luY2x1ZGUvYml0cy9lbnZpcm9ubWVudHMuaCIgMSAzCiMgMjMgIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL2Vudmlyb25tZW50cy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMv
d29yZHNpemUuaCIgMSAzCiMgMjQgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2Vudmlyb25tZW50
cy5oIiAyIDMKIyAxODAgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMiAzCiMgMTk5ICIv
dXNyL2xvY2FsL2luY2x1ZGUvdW5pc3RkLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9n
Y2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAyMDAg
Ii91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMiAzCiMgMjQwICIvdXNyL2xvY2FsL2luY2x1
ZGUvdW5pc3RkLmgiIDMKdHlwZWRlZiBfX2ludHB0cl90IGludHB0cl90OwoKCgoKCgp0eXBlZGVm
IF9fc29ja2xlbl90IHNvY2tsZW5fdDsKIyAyNjAgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQu
aCIgMwpleHRlcm4gaW50IGFjY2VzcyAoX19jb25zdCBjaGFyICpfX25hbWUsIGludCBfX3R5cGUp
IDsKCgoKCmV4dGVybiBpbnQgZXVpZGFjY2VzcyAoX19jb25zdCBjaGFyICpfX25hbWUsIGludCBf
X3R5cGUpIDsKIyAyOTMgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gX19v
ZmY2NF90IGxzZWVrIChpbnQgX19mZCwgX19vZmY2NF90IF9fb2Zmc2V0LCBpbnQgX193aGVuY2Up
IF9fYXNtX18gKCIiICJsc2VlazY0Iik7CiMgMzAyICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5pc3Rk
LmgiIDMKZXh0ZXJuIF9fb2ZmNjRfdCBsc2VlazY0IChpbnQgX19mZCwgX19vZmY2NF90IF9fb2Zm
c2V0LCBpbnQgX193aGVuY2UpIDsKCgoKZXh0ZXJuIGludCBjbG9zZSAoaW50IF9fZmQpIDsKCgoK
ZXh0ZXJuIHNzaXplX3QgcmVhZCAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0
ZXMpIDsKCgpleHRlcm4gc3NpemVfdCB3cml0ZSAoaW50IF9fZmQsIF9fY29uc3Qgdm9pZCAqX19i
dWYsIHNpemVfdCBfX24pIDsKIyAzMjMgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMwpl
eHRlcm4gc3NpemVfdCBwcmVhZCAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0
ZXMsIF9fb2ZmNjRfdCBfX29mZnNldCkgX19hc21fXyAoIiIgInByZWFkNjQiKTsKCgpleHRlcm4g
c3NpemVfdCBwd3JpdGUgKGludCBfX2ZkLCBfX2NvbnN0IHZvaWQgKl9fYnVmLCBzaXplX3QgX19u
Ynl0ZXMsIF9fb2ZmNjRfdCBfX29mZnNldCkgX19hc21fXyAoIiIgInB3cml0ZTY0Iik7CiMgMzQw
ICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIHNzaXplX3QgcHJlYWQ2NCAo
aW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0ZXMsCiAgICAgICAgICAgICAgICAg
ICAgICAgIF9fb2ZmNjRfdCBfX29mZnNldCkgOwoKCmV4dGVybiBzc2l6ZV90IHB3cml0ZTY0IChp
bnQgX19mZCwgX19jb25zdCB2b2lkICpfX2J1Ziwgc2l6ZV90IF9fbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgIF9fb2ZmNjRfdCBfX29mZnNldCkgOwoKCgoKCgoKZXh0ZXJuIGludCBwaXBlIChp
bnQgX19waXBlZGVzWzJdKSA7CiMgMzYyICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5pc3RkLmgiIDMK
ZXh0ZXJuIHVuc2lnbmVkIGludCBhbGFybSAodW5zaWduZWQgaW50IF9fc2Vjb25kcykgOwojIDM3
MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiB1bnNpZ25lZCBpbnQgc2xl
ZXAgKHVuc2lnbmVkIGludCBfX3NlY29uZHMpIDsKCgoKCgoKZXh0ZXJuIF9fdXNlY29uZHNfdCB1
YWxhcm0gKF9fdXNlY29uZHNfdCBfX3ZhbHVlLCBfX3VzZWNvbmRzX3QgX19pbnRlcnZhbCkKICAg
ICA7CgoKCmV4dGVybiBpbnQgdXNsZWVwIChfX3VzZWNvbmRzX3QgX191c2Vjb25kcykgOwoKCgoK
CmV4dGVybiBpbnQgcGF1c2UgKHZvaWQpIDsKCgoKZXh0ZXJuIGludCBjaG93biAoX19jb25zdCBj
aGFyICpfX2ZpbGUsIF9fdWlkX3QgX19vd25lciwgX19naWRfdCBfX2dyb3VwKQogICAgIDsKCgoK
ZXh0ZXJuIGludCBmY2hvd24gKGludCBfX2ZkLCBfX3VpZF90IF9fb3duZXIsIF9fZ2lkX3QgX19n
cm91cCkgOwoKCgoKZXh0ZXJuIGludCBsY2hvd24gKF9fY29uc3QgY2hhciAqX19maWxlLCBfX3Vp
ZF90IF9fb3duZXIsIF9fZ2lkX3QgX19ncm91cCkKICAgICA7CgoKCgpleHRlcm4gaW50IGNoZGly
IChfX2NvbnN0IGNoYXIgKl9fcGF0aCkgOwoKCgpleHRlcm4gaW50IGZjaGRpciAoaW50IF9fZmQp
IDsKIyA0MjMgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gY2hhciAqZ2V0
Y3dkIChjaGFyICpfX2J1Ziwgc2l6ZV90IF9fc2l6ZSkgOwoKCgoKCmV4dGVybiBjaGFyICpnZXRf
Y3VycmVudF9kaXJfbmFtZSAodm9pZCkgOwoKCgoKCgpleHRlcm4gY2hhciAqZ2V0d2QgKGNoYXIg
Kl9fYnVmKSA7CgoKCgpleHRlcm4gaW50IGR1cCAoaW50IF9fZmQpIDsKCgpleHRlcm4gaW50IGR1
cDIgKGludCBfX2ZkLCBpbnQgX19mZDIpIDsKCgpleHRlcm4gY2hhciAqKl9fZW52aXJvbjsKCmV4
dGVybiBjaGFyICoqZW52aXJvbjsKCgoKCgpleHRlcm4gaW50IGV4ZWN2ZSAoX19jb25zdCBjaGFy
ICpfX3BhdGgsIGNoYXIgKl9fY29uc3QgX19hcmd2W10sCiAgICAgICAgICAgICAgICAgICBjaGFy
ICpfX2NvbnN0IF9fZW52cFtdKSA7CgoKCgpleHRlcm4gaW50IGZleGVjdmUgKGludCBfX2ZkLCBj
aGFyICpfX2NvbnN0IF9fYXJndltdLCBjaGFyICpfX2NvbnN0IF9fZW52cFtdKQogICAgIDsKCgoK
CmV4dGVybiBpbnQgZXhlY3YgKF9fY29uc3QgY2hhciAqX19wYXRoLCBjaGFyICpfX2NvbnN0IF9f
YXJndltdKSA7CgoKCmV4dGVybiBpbnQgZXhlY2xlIChfX2NvbnN0IGNoYXIgKl9fcGF0aCwgX19j
b25zdCBjaGFyICpfX2FyZywgLi4uKSA7CgoKCmV4dGVybiBpbnQgZXhlY2wgKF9fY29uc3QgY2hh
ciAqX19wYXRoLCBfX2NvbnN0IGNoYXIgKl9fYXJnLCAuLi4pIDsKCgoKZXh0ZXJuIGludCBleGVj
dnAgKF9fY29uc3QgY2hhciAqX19maWxlLCBjaGFyICpfX2NvbnN0IF9fYXJndltdKSA7CgoKCgpl
eHRlcm4gaW50IGV4ZWNscCAoX19jb25zdCBjaGFyICpfX2ZpbGUsIF9fY29uc3QgY2hhciAqX19h
cmcsIC4uLikgOwoKCgoKZXh0ZXJuIGludCBuaWNlIChpbnQgX19pbmMpIDsKCgoKCmV4dGVybiB2
b2lkIF9leGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsK
CgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2NvbmZuYW1lLmgiIDEgMwojIDI1ICIv
dXNyL2xvY2FsL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAzCmVudW0KICB7CiAgICBfUENfTElO
S19NQVgsCgogICAgX1BDX01BWF9DQU5PTiwKCiAgICBfUENfTUFYX0lOUFVULAoKICAgIF9QQ19O
QU1FX01BWCwKCiAgICBfUENfUEFUSF9NQVgsCgogICAgX1BDX1BJUEVfQlVGLAoKICAgIF9QQ19D
SE9XTl9SRVNUUklDVEVELAoKICAgIF9QQ19OT19UUlVOQywKCiAgICBfUENfVkRJU0FCTEUsCgog
ICAgX1BDX1NZTkNfSU8sCgogICAgX1BDX0FTWU5DX0lPLAoKICAgIF9QQ19QUklPX0lPLAoKICAg
IF9QQ19TT0NLX01BWEJVRiwKCiAgICBfUENfRklMRVNJWkVCSVRTLAoKICAgIF9QQ19SRUNfSU5D
Ul9YRkVSX1NJWkUsCgogICAgX1BDX1JFQ19NQVhfWEZFUl9TSVpFLAoKICAgIF9QQ19SRUNfTUlO
X1hGRVJfU0laRSwKCiAgICBfUENfUkVDX1hGRVJfQUxJR04sCgogICAgX1BDX0FMTE9DX1NJWkVf
TUlOLAoKICAgIF9QQ19TWU1MSU5LX01BWAoKICB9OwoKCmVudW0KICB7CiAgICBfU0NfQVJHX01B
WCwKCiAgICBfU0NfQ0hJTERfTUFYLAoKICAgIF9TQ19DTEtfVENLLAoKICAgIF9TQ19OR1JPVVBT
X01BWCwKCiAgICBfU0NfT1BFTl9NQVgsCgogICAgX1NDX1NUUkVBTV9NQVgsCgogICAgX1NDX1Ra
TkFNRV9NQVgsCgogICAgX1NDX0pPQl9DT05UUk9MLAoKICAgIF9TQ19TQVZFRF9JRFMsCgogICAg
X1NDX1JFQUxUSU1FX1NJR05BTFMsCgogICAgX1NDX1BSSU9SSVRZX1NDSEVEVUxJTkcsCgogICAg
X1NDX1RJTUVSUywKCiAgICBfU0NfQVNZTkNIUk9OT1VTX0lPLAoKICAgIF9TQ19QUklPUklUSVpF
RF9JTywKCiAgICBfU0NfU1lOQ0hST05JWkVEX0lPLAoKICAgIF9TQ19GU1lOQywKCiAgICBfU0Nf
TUFQUEVEX0ZJTEVTLAoKICAgIF9TQ19NRU1MT0NLLAoKICAgIF9TQ19NRU1MT0NLX1JBTkdFLAoK
ICAgIF9TQ19NRU1PUllfUFJPVEVDVElPTiwKCiAgICBfU0NfTUVTU0FHRV9QQVNTSU5HLAoKICAg
IF9TQ19TRU1BUEhPUkVTLAoKICAgIF9TQ19TSEFSRURfTUVNT1JZX09CSkVDVFMsCgogICAgX1ND
X0FJT19MSVNUSU9fTUFYLAoKICAgIF9TQ19BSU9fTUFYLAoKICAgIF9TQ19BSU9fUFJJT19ERUxU
QV9NQVgsCgogICAgX1NDX0RFTEFZVElNRVJfTUFYLAoKICAgIF9TQ19NUV9PUEVOX01BWCwKCiAg
ICBfU0NfTVFfUFJJT19NQVgsCgogICAgX1NDX1ZFUlNJT04sCgogICAgX1NDX1BBR0VTSVpFLAoK
CiAgICBfU0NfUlRTSUdfTUFYLAoKICAgIF9TQ19TRU1fTlNFTVNfTUFYLAoKICAgIF9TQ19TRU1f
VkFMVUVfTUFYLAoKICAgIF9TQ19TSUdRVUVVRV9NQVgsCgogICAgX1NDX1RJTUVSX01BWCwKCgoK
CiAgICBfU0NfQkNfQkFTRV9NQVgsCgogICAgX1NDX0JDX0RJTV9NQVgsCgogICAgX1NDX0JDX1ND
QUxFX01BWCwKCiAgICBfU0NfQkNfU1RSSU5HX01BWCwKCiAgICBfU0NfQ09MTF9XRUlHSFRTX01B
WCwKCiAgICBfU0NfRVFVSVZfQ0xBU1NfTUFYLAoKICAgIF9TQ19FWFBSX05FU1RfTUFYLAoKICAg
IF9TQ19MSU5FX01BWCwKCiAgICBfU0NfUkVfRFVQX01BWCwKCiAgICBfU0NfQ0hBUkNMQVNTX05B
TUVfTUFYLAoKCiAgICBfU0NfMl9WRVJTSU9OLAoKICAgIF9TQ18yX0NfQklORCwKCiAgICBfU0Nf
Ml9DX0RFViwKCiAgICBfU0NfMl9GT1JUX0RFViwKCiAgICBfU0NfMl9GT1JUX1JVTiwKCiAgICBf
U0NfMl9TV19ERVYsCgogICAgX1NDXzJfTE9DQUxFREVGLAoKCiAgICBfU0NfUElJLAoKICAgIF9T
Q19QSUlfWFRJLAoKICAgIF9TQ19QSUlfU09DS0VULAoKICAgIF9TQ19QSUlfSU5URVJORVQsCgog
ICAgX1NDX1BJSV9PU0ksCgogICAgX1NDX1BPTEwsCgogICAgX1NDX1NFTEVDVCwKCiAgICBfU0Nf
VUlPX01BWElPViwKCiAgICBfU0NfSU9WX01BWCA9IF9TQ19VSU9fTUFYSU9WLAoKICAgIF9TQ19Q
SUlfSU5URVJORVRfU1RSRUFNLAoKICAgIF9TQ19QSUlfSU5URVJORVRfREdSQU0sCgogICAgX1ND
X1BJSV9PU0lfQ09UUywKCiAgICBfU0NfUElJX09TSV9DTFRTLAoKICAgIF9TQ19QSUlfT1NJX00s
CgogICAgX1NDX1RfSU9WX01BWCwKCgoKICAgIF9TQ19USFJFQURTLAoKICAgIF9TQ19USFJFQURf
U0FGRV9GVU5DVElPTlMsCgogICAgX1NDX0dFVEdSX1JfU0laRV9NQVgsCgogICAgX1NDX0dFVFBX
X1JfU0laRV9NQVgsCgogICAgX1NDX0xPR0lOX05BTUVfTUFYLAoKICAgIF9TQ19UVFlfTkFNRV9N
QVgsCgogICAgX1NDX1RIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMsCgogICAgX1NDX1RIUkVB
RF9LRVlTX01BWCwKCiAgICBfU0NfVEhSRUFEX1NUQUNLX01JTiwKCiAgICBfU0NfVEhSRUFEX1RI
UkVBRFNfTUFYLAoKICAgIF9TQ19USFJFQURfQVRUUl9TVEFDS0FERFIsCgogICAgX1NDX1RIUkVB
RF9BVFRSX1NUQUNLU0laRSwKCiAgICBfU0NfVEhSRUFEX1BSSU9SSVRZX1NDSEVEVUxJTkcsCgog
ICAgX1NDX1RIUkVBRF9QUklPX0lOSEVSSVQsCgogICAgX1NDX1RIUkVBRF9QUklPX1BST1RFQ1Qs
CgogICAgX1NDX1RIUkVBRF9QUk9DRVNTX1NIQVJFRCwKCgogICAgX1NDX05QUk9DRVNTT1JTX0NP
TkYsCgogICAgX1NDX05QUk9DRVNTT1JTX09OTE4sCgogICAgX1NDX1BIWVNfUEFHRVMsCgogICAg
X1NDX0FWUEhZU19QQUdFUywKCiAgICBfU0NfQVRFWElUX01BWCwKCiAgICBfU0NfUEFTU19NQVgs
CgoKICAgIF9TQ19YT1BFTl9WRVJTSU9OLAoKICAgIF9TQ19YT1BFTl9YQ1VfVkVSU0lPTiwKCiAg
ICBfU0NfWE9QRU5fVU5JWCwKCiAgICBfU0NfWE9QRU5fQ1JZUFQsCgogICAgX1NDX1hPUEVOX0VO
SF9JMThOLAoKICAgIF9TQ19YT1BFTl9TSE0sCgoKICAgIF9TQ18yX0NIQVJfVEVSTSwKCiAgICBf
U0NfMl9DX1ZFUlNJT04sCgogICAgX1NDXzJfVVBFLAoKCiAgICBfU0NfWE9QRU5fWFBHMiwKCiAg
ICBfU0NfWE9QRU5fWFBHMywKCiAgICBfU0NfWE9QRU5fWFBHNCwKCgogICAgX1NDX0NIQVJfQklU
LAoKICAgIF9TQ19DSEFSX01BWCwKCiAgICBfU0NfQ0hBUl9NSU4sCgogICAgX1NDX0lOVF9NQVgs
CgogICAgX1NDX0lOVF9NSU4sCgogICAgX1NDX0xPTkdfQklULAoKICAgIF9TQ19XT1JEX0JJVCwK
CiAgICBfU0NfTUJfTEVOX01BWCwKCiAgICBfU0NfTlpFUk8sCgogICAgX1NDX1NTSVpFX01BWCwK
CiAgICBfU0NfU0NIQVJfTUFYLAoKICAgIF9TQ19TQ0hBUl9NSU4sCgogICAgX1NDX1NIUlRfTUFY
LAoKICAgIF9TQ19TSFJUX01JTiwKCiAgICBfU0NfVUNIQVJfTUFYLAoKICAgIF9TQ19VSU5UX01B
WCwKCiAgICBfU0NfVUxPTkdfTUFYLAoKICAgIF9TQ19VU0hSVF9NQVgsCgoKICAgIF9TQ19OTF9B
UkdNQVgsCgogICAgX1NDX05MX0xBTkdNQVgsCgogICAgX1NDX05MX01TR01BWCwKCiAgICBfU0Nf
TkxfTk1BWCwKCiAgICBfU0NfTkxfU0VUTUFYLAoKICAgIF9TQ19OTF9URVhUTUFYLAoKCiAgICBf
U0NfWEJTNV9JTFAzMl9PRkYzMiwKCiAgICBfU0NfWEJTNV9JTFAzMl9PRkZCSUcsCgogICAgX1ND
X1hCUzVfTFA2NF9PRkY2NCwKCiAgICBfU0NfWEJTNV9MUEJJR19PRkZCSUcsCgoKICAgIF9TQ19Y
T1BFTl9MRUdBQ1ksCgogICAgX1NDX1hPUEVOX1JFQUxUSU1FLAoKICAgIF9TQ19YT1BFTl9SRUFM
VElNRV9USFJFQURTLAoKCiAgICBfU0NfQURWSVNPUllfSU5GTywKCiAgICBfU0NfQkFSUklFUlMs
CgogICAgX1NDX0JBU0UsCgogICAgX1NDX0NfTEFOR19TVVBQT1JULAoKICAgIF9TQ19DX0xBTkdf
U1VQUE9SVF9SLAoKICAgIF9TQ19DTE9DS19TRUxFQ1RJT04sCgogICAgX1NDX0NQVVRJTUUsCgog
ICAgX1NDX1RIUkVBRF9DUFVUSU1FLAoKICAgIF9TQ19ERVZJQ0VfSU8sCgogICAgX1NDX0RFVklD
RV9TUEVDSUZJQywKCiAgICBfU0NfREVWSUNFX1NQRUNJRklDX1IsCgogICAgX1NDX0ZEX01HTVQs
CgogICAgX1NDX0ZJRk8sCgogICAgX1NDX1BJUEUsCgogICAgX1NDX0ZJTEVfQVRUUklCVVRFUywK
CiAgICBfU0NfRklMRV9MT0NLSU5HLAoKICAgIF9TQ19GSUxFX1NZU1RFTSwKCiAgICBfU0NfTU9O
T1RPTklDX0NMT0NLLAoKICAgIF9TQ19NVUxUSV9QUk9DRVNTLAoKICAgIF9TQ19TSU5HTEVfUFJP
Q0VTUywKCiAgICBfU0NfTkVUV09SS0lORywKCiAgICBfU0NfUkVBREVSX1dSSVRFUl9MT0NLUywK
CiAgICBfU0NfU1BJTl9MT0NLUywKCiAgICBfU0NfUkVHRVhQLAoKICAgIF9TQ19SRUdFWF9WRVJT
SU9OLAoKICAgIF9TQ19TSEVMTCwKCiAgICBfU0NfU0lHTkFMUywKCiAgICBfU0NfU1BBV04sCgog
ICAgX1NDX1NQT1JBRElDX1NFUlZFUiwKCiAgICBfU0NfVEhSRUFEX1NQT1JBRElDX1NFUlZFUiwK
CiAgICBfU0NfU1lTVEVNX0RBVEFCQVNFLAoKICAgIF9TQ19TWVNURU1fREFUQUJBU0VfUiwKCiAg
ICBfU0NfVElNRU9VVFMsCgogICAgX1NDX1RZUEVEX01FTU9SWV9PQkpFQ1RTLAoKICAgIF9TQ19V
U0VSX0dST1VQUywKCiAgICBfU0NfVVNFUl9HUk9VUFNfUiwKCiAgICBfU0NfMl9QQlMsCgogICAg
X1NDXzJfUEJTX0FDQ09VTlRJTkcsCgogICAgX1NDXzJfUEJTX0xPQ0FURSwKCiAgICBfU0NfMl9Q
QlNfTUVTU0FHRSwKCiAgICBfU0NfMl9QQlNfVFJBQ0ssCgogICAgX1NDX1NZTUxPT1BfTUFYLAoK
ICAgIF9TQ19TVFJFQU1TLAoKICAgIF9TQ18yX1BCU19DSEVDS1BPSU5ULAoKCiAgICBfU0NfVjZf
SUxQMzJfT0ZGMzIsCgogICAgX1NDX1Y2X0lMUDMyX09GRkJJRywKCiAgICBfU0NfVjZfTFA2NF9P
RkY2NCwKCiAgICBfU0NfVjZfTFBCSUdfT0ZGQklHLAoKCiAgICBfU0NfSE9TVF9OQU1FX01BWCwK
CiAgICBfU0NfVFJBQ0UsCgogICAgX1NDX1RSQUNFX0VWRU5UX0ZJTFRFUiwKCiAgICBfU0NfVFJB
Q0VfSU5IRVJJVCwKCiAgICBfU0NfVFJBQ0VfTE9HCgogIH07CgoKCgoKZW51bQogIHsKICAgIF9D
U19QQVRILAoKCgoKICAgIF9DU19MRlNfQ0ZMQUdTID0gMTAwMCwKCiAgICBfQ1NfTEZTX0xERkxB
R1MsCgogICAgX0NTX0xGU19MSUJTLAoKICAgIF9DU19MRlNfTElOVEZMQUdTLAoKICAgIF9DU19M
RlM2NF9DRkxBR1MsCgogICAgX0NTX0xGUzY0X0xERkxBR1MsCgogICAgX0NTX0xGUzY0X0xJQlMs
CgogICAgX0NTX0xGUzY0X0xJTlRGTEFHUywKCgoKCiAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9D
RkxBR1MgPSAxMTAwLAoKICAgIF9DU19YQlM1X0lMUDMyX09GRjMyX0xERkxBR1MsCgogICAgX0NT
X1hCUzVfSUxQMzJfT0ZGMzJfTElCUywKCiAgICBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MSU5URkxB
R1MsCgogICAgX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0NGTEFHUywKCiAgICBfQ1NfWEJTNV9JTFAz
Ml9PRkZCSUdfTERGTEFHUywKCiAgICBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfTElCUywKCiAgICBf
Q1NfWEJTNV9JTFAzMl9PRkZCSUdfTElOVEZMQUdTLAoKICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRf
Q0ZMQUdTLAoKICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRfTERGTEFHUywKCiAgICBfQ1NfWEJTNV9M
UDY0X09GRjY0X0xJQlMsCgogICAgX0NTX1hCUzVfTFA2NF9PRkY2NF9MSU5URkxBR1MsCgogICAg
X0NTX1hCUzVfTFBCSUdfT0ZGQklHX0NGTEFHUywKCiAgICBfQ1NfWEJTNV9MUEJJR19PRkZCSUdf
TERGTEFHUywKCiAgICBfQ1NfWEJTNV9MUEJJR19PRkZCSUdfTElCUywKCiAgICBfQ1NfWEJTNV9M
UEJJR19PRkZCSUdfTElOVEZMQUdTLAoKCgogICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0NG
TEFHUywKCiAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTERGTEFHUywKCiAgICBfQ1NfUE9T
SVhfVjZfSUxQMzJfT0ZGMzJfTElCUywKCiAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTElO
VEZMQUdTLAoKICAgIF9DU19QT1NJWF9WNl9JTFAzMl9PRkZCSUdfQ0ZMQUdTLAoKICAgIF9DU19Q
T1NJWF9WNl9JTFAzMl9PRkZCSUdfTERGTEFHUywKCiAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZG
QklHX0xJQlMsCgogICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCgogICAg
X0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfQ0ZMQUdTLAoKICAgIF9DU19QT1NJWF9WNl9MUDY0X09G
RjY0X0xERkxBR1MsCgogICAgX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTElCUywKCiAgICBfQ1Nf
UE9TSVhfVjZfTFA2NF9PRkY2NF9MSU5URkxBR1MsCgogICAgX0NTX1BPU0lYX1Y2X0xQQklHX09G
RkJJR19DRkxBR1MsCgogICAgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19MREZMQUdTLAoKICAg
IF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTElCUywKCiAgICBfQ1NfUE9TSVhfVjZfTFBCSUdf
T0ZGQklHX0xJTlRGTEFHUywKCgoKICAgIF9DU19WNl9XSURUSF9SRVNUUklDVEVEX0VOVlMKCiAg
fTsKIyA1MDEgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMiAzCgoKZXh0ZXJuIGxvbmcg
aW50IHBhdGhjb25mIChfX2NvbnN0IGNoYXIgKl9fcGF0aCwgaW50IF9fbmFtZSkgOwoKCmV4dGVy
biBsb25nIGludCBmcGF0aGNvbmYgKGludCBfX2ZkLCBpbnQgX19uYW1lKSA7CgoKZXh0ZXJuIGxv
bmcgaW50IHN5c2NvbmYgKGludCBfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK
CgoKZXh0ZXJuIHNpemVfdCBjb25mc3RyIChpbnQgX19uYW1lLCBjaGFyICpfX2J1Ziwgc2l6ZV90
IF9fbGVuKSA7CgoKCgpleHRlcm4gX19waWRfdCBnZXRwaWQgKHZvaWQpIDsKCgpleHRlcm4gX19w
aWRfdCBnZXRwcGlkICh2b2lkKSA7CgoKCgpleHRlcm4gX19waWRfdCBnZXRwZ3JwICh2b2lkKSA7
CiMgNTM2ICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIF9fcGlkX3QgX19n
ZXRwZ2lkIChfX3BpZF90IF9fcGlkKSA7CgpleHRlcm4gX19waWRfdCBnZXRwZ2lkIChfX3BpZF90
IF9fcGlkKSA7CgoKCgoKCmV4dGVybiBpbnQgc2V0cGdpZCAoX19waWRfdCBfX3BpZCwgX19waWRf
dCBfX3BnaWQpIDsKIyA1NjIgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4g
aW50IHNldHBncnAgKHZvaWQpIDsKIyA1ODAgIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIg
MwpleHRlcm4gX19waWRfdCBzZXRzaWQgKHZvaWQpIDsKCgoKZXh0ZXJuIF9fcGlkX3QgZ2V0c2lk
IChfX3BpZF90IF9fcGlkKSA7CgoKCmV4dGVybiBfX3VpZF90IGdldHVpZCAodm9pZCkgOwoKCmV4
dGVybiBfX3VpZF90IGdldGV1aWQgKHZvaWQpIDsKCgpleHRlcm4gX19naWRfdCBnZXRnaWQgKHZv
aWQpIDsKCgpleHRlcm4gX19naWRfdCBnZXRlZ2lkICh2b2lkKSA7CgoKCgpleHRlcm4gaW50IGdl
dGdyb3VwcyAoaW50IF9fc2l6ZSwgX19naWRfdCBfX2xpc3RbXSkgOwoKCgpleHRlcm4gaW50IGdy
b3VwX21lbWJlciAoX19naWRfdCBfX2dpZCkgOwoKCgoKCgpleHRlcm4gaW50IHNldHVpZCAoX191
aWRfdCBfX3VpZCkgOwoKCgoKZXh0ZXJuIGludCBzZXRyZXVpZCAoX191aWRfdCBfX3J1aWQsIF9f
dWlkX3QgX19ldWlkKSA7CgoKCgpleHRlcm4gaW50IHNldGV1aWQgKF9fdWlkX3QgX191aWQpIDsK
CgoKCgoKZXh0ZXJuIGludCBzZXRnaWQgKF9fZ2lkX3QgX19naWQpIDsKCgoKCmV4dGVybiBpbnQg
c2V0cmVnaWQgKF9fZ2lkX3QgX19yZ2lkLCBfX2dpZF90IF9fZWdpZCkgOwoKCgoKZXh0ZXJuIGlu
dCBzZXRlZ2lkIChfX2dpZF90IF9fZ2lkKSA7CgoKCgoKCmV4dGVybiBfX3BpZF90IGZvcmsgKHZv
aWQpIDsKCgoKCgoKZXh0ZXJuIF9fcGlkX3QgdmZvcmsgKHZvaWQpIDsKCgoKCgpleHRlcm4gY2hh
ciAqdHR5bmFtZSAoaW50IF9fZmQpIDsKCgoKZXh0ZXJuIGludCB0dHluYW1lX3IgKGludCBfX2Zk
LCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuKSA7CgoKCmV4dGVybiBpbnQgaXNhdHR5IChp
bnQgX19mZCkgOwoKCgoKCmV4dGVybiBpbnQgdHR5c2xvdCAodm9pZCkgOwoKCgoKZXh0ZXJuIGlu
dCBsaW5rIChfX2NvbnN0IGNoYXIgKl9fZnJvbSwgX19jb25zdCBjaGFyICpfX3RvKSA7CgoKCmV4
dGVybiBpbnQgc3ltbGluayAoX19jb25zdCBjaGFyICpfX2Zyb20sIF9fY29uc3QgY2hhciAqX190
bykgOwoKCgoKZXh0ZXJuIGludCByZWFkbGluayAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
cGF0aCwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IF9fbGVuKSA7CgoKCmV4dGVybiBpbnQgdW5saW5rIChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoK
CmV4dGVybiBpbnQgcm1kaXIgKF9fY29uc3QgY2hhciAqX19wYXRoKSA7CgoKCmV4dGVybiBfX3Bp
ZF90IHRjZ2V0cGdycCAoaW50IF9fZmQpIDsKCgpleHRlcm4gaW50IHRjc2V0cGdycCAoaW50IF9f
ZmQsIF9fcGlkX3QgX19wZ3JwX2lkKSA7CgoKCmV4dGVybiBjaGFyICpnZXRsb2dpbiAodm9pZCkg
OwoKCgoKZXh0ZXJuIGludCBnZXRsb2dpbl9yIChjaGFyICpfX25hbWUsIHNpemVfdCBfX25hbWVf
bGVuKSA7CgoKCgpleHRlcm4gaW50IHNldGxvZ2luIChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoj
IDcyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNs
dWRlL2dldG9wdC5oIiAxIDMKIyA0NyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dldG9wdC5oIiAzCmV4
dGVybiBjaGFyICpvcHRhcmc7CiMgNjEgIi91c3IvbG9jYWwvaW5jbHVkZS9nZXRvcHQuaCIgMwpl
eHRlcm4gaW50IG9wdGluZDsKCgoKCmV4dGVybiBpbnQgb3B0ZXJyOwoKCgpleHRlcm4gaW50IG9w
dG9wdDsKIyAxNDUgIi91c3IvbG9jYWwvaW5jbHVkZS9nZXRvcHQuaCIgMwpleHRlcm4gaW50IGdl
dG9wdCAoaW50IF9fX2FyZ2MsIGNoYXIgKmNvbnN0ICpfX19hcmd2LCBjb25zdCBjaGFyICpfX3No
b3J0b3B0cyk7CiMgNzI3ICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5pc3RkLmgiIDIgMwoKCgoKCgoK
ZXh0ZXJuIGludCBnZXRob3N0bmFtZSAoY2hhciAqX19uYW1lLCBzaXplX3QgX19sZW4pIDsKCgoK
CgoKZXh0ZXJuIGludCBzZXRob3N0bmFtZSAoX19jb25zdCBjaGFyICpfX25hbWUsIHNpemVfdCBf
X2xlbikgOwoKCgpleHRlcm4gaW50IHNldGhvc3RpZCAobG9uZyBpbnQgX19pZCkgOwoKCgoKCmV4
dGVybiBpbnQgZ2V0ZG9tYWlubmFtZSAoY2hhciAqX19uYW1lLCBzaXplX3QgX19sZW4pIDsKZXh0
ZXJuIGludCBzZXRkb21haW5uYW1lIChfX2NvbnN0IGNoYXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVu
KSA7CgoKCgoKZXh0ZXJuIGludCB2aGFuZ3VwICh2b2lkKSA7CgoKZXh0ZXJuIGludCByZXZva2Ug
KF9fY29uc3QgY2hhciAqX19maWxlKSA7CgoKCgoKCgpleHRlcm4gaW50IHByb2ZpbCAodW5zaWdu
ZWQgc2hvcnQgaW50ICpfX3NhbXBsZV9idWZmZXIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAg
ICAgICAgICBzaXplX3QgX19vZmZzZXQsIHVuc2lnbmVkIGludCBfX3NjYWxlKSA7CgoKCgoKZXh0
ZXJuIGludCBhY2N0IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgpleHRlcm4gY2hhciAqZ2V0
dXNlcnNoZWxsICh2b2lkKSA7CmV4dGVybiB2b2lkIGVuZHVzZXJzaGVsbCAodm9pZCkgOwpleHRl
cm4gdm9pZCBzZXR1c2Vyc2hlbGwgKHZvaWQpIDsKCgoKCgpleHRlcm4gaW50IGRhZW1vbiAoaW50
IF9fbm9jaGRpciwgaW50IF9fbm9jbG9zZSkgOwoKCgoKCgpleHRlcm4gaW50IGNocm9vdCAoX19j
b25zdCBjaGFyICpfX3BhdGgpIDsKCgoKZXh0ZXJuIGNoYXIgKmdldHBhc3MgKF9fY29uc3QgY2hh
ciAqX19wcm9tcHQpIDsKCgoKCgpleHRlcm4gaW50IGZzeW5jIChpbnQgX19mZCkgOwoKCgoKCgpl
eHRlcm4gbG9uZyBpbnQgZ2V0aG9zdGlkICh2b2lkKSA7CgoKZXh0ZXJuIHZvaWQgc3luYyAodm9p
ZCkgOwoKCgoKZXh0ZXJuIGludCBnZXRwYWdlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9f
Y29uc3RfXykpOwoKCgoKCgoKZXh0ZXJuIGludCB0cnVuY2F0ZSAoX19jb25zdCBjaGFyICpfX2Zp
bGUsIF9fb2ZmNjRfdCBfX2xlbmd0aCkgX19hc21fXyAoIiIgInRydW5jYXRlNjQiKTsKCgoKCgoK
CmV4dGVybiBpbnQgdHJ1bmNhdGU2NCAoX19jb25zdCBjaGFyICpfX2ZpbGUsIF9fb2ZmNjRfdCBf
X2xlbmd0aCkgOwoKCgoKCgoKZXh0ZXJuIGludCBmdHJ1bmNhdGUgKGludCBfX2ZkLCBfX29mZjY0
X3QgX19sZW5ndGgpIF9fYXNtX18gKCIiICJmdHJ1bmNhdGU2NCIpOwoKCgoKCgpleHRlcm4gaW50
IGZ0cnVuY2F0ZTY0IChpbnQgX19mZCwgX19vZmY2NF90IF9fbGVuZ3RoKSA7CgoKCgoKZXh0ZXJu
IGludCBnZXRkdGFibGVzaXplICh2b2lkKSA7CiMgODY2ICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5p
c3RkLmgiIDMKZXh0ZXJuIGludCBicmsgKHZvaWQgKl9fYWRkcikgOwoKCgoKCmV4dGVybiB2b2lk
ICpzYnJrIChpbnRwdHJfdCBfX2RlbHRhKSA7CiMgODg3ICIvdXNyL2xvY2FsL2luY2x1ZGUvdW5p
c3RkLmgiIDMKZXh0ZXJuIGxvbmcgaW50IHN5c2NhbGwgKGxvbmcgaW50IF9fc3lzbm8sIC4uLikg
OwojIDkxMCAiL3Vzci9sb2NhbC9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBpbnQgbG9ja2Yg
KGludCBfX2ZkLCBpbnQgX19jbWQsIF9fb2ZmNjRfdCBfX2xlbikgX19hc21fXyAoIiIgImxvY2tm
NjQiKTsKCgoKCgoKZXh0ZXJuIGludCBsb2NrZjY0IChpbnQgX19mZCwgaW50IF9fY21kLCBfX29m
ZjY0X3QgX19sZW4pIDsKIyA5MzggIi91c3IvbG9jYWwvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRl
cm4gaW50IGZkYXRhc3luYyAoaW50IF9fZmlsZGVzKSA7CgoKCgoKCgpleHRlcm4gY2hhciAqY3J5
cHQgKF9fY29uc3QgY2hhciAqX19rZXksIF9fY29uc3QgY2hhciAqX19zYWx0KSA7CgoKCmV4dGVy
biB2b2lkIGVuY3J5cHQgKGNoYXIgKl9fYmxvY2ssIGludCBfX2VkZmxhZykgOwoKCgoKCgpleHRl
cm4gdm9pZCBzd2FiIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19mcm9tLCB2b2lkICpfX3Jl
c3RyaWN0IF9fdG8sCiAgICAgICAgICAgICAgICAgIHNzaXplX3QgX19uKSA7CgoKCgoKCgpleHRl
cm4gY2hhciAqY3Rlcm1pZCAoY2hhciAqX19zKSA7CiMgOTgzICIvdXNyL2xvY2FsL2luY2x1ZGUv
dW5pc3RkLmgiIDMKZXh0ZXJuIGludCBwdGhyZWFkX2F0Zm9yayAodm9pZCAoKl9fcHJlcGFyZSkg
KHZvaWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqX19wYXJlbnQpICh2b2lk
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKl9fY2hpbGQpICh2b2lkKSkgOwoK
CgojIDk1ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9z
dGRpby5oIiAxIDMKIyAzMCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoKCiMgMSAi
L3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzCiMgMzUgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAyIDMKIyA0
NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUg
RklMRTsKIyA1NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3Qg
X0lPX0ZJTEUgX19GSUxFOwojIDY1ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwojIDEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAxIDMKIyAzMiAiL3Vzci9sb2NhbC9pbmNsdWRl
L2xpYmlvLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDEgMwojIDE0
ICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8z
L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMK
IyAyOTMgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4x
L2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiBsb25nIGludCB3Y2hhcl90OwojIDMyMCAiL3Vz
ci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9z
dGRkZWYuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGludCB3aW50X3Q7CiMgMTUgIi91c3IvbG9jYWwv
aW5jbHVkZS9fR19jb25maWcuaCIgMiAzCiMgMjQgIi91c3IvbG9jYWwvaW5jbHVkZS9fR19jb25m
aWcuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS93Y2hhci5oIiAxIDMKIyA0OCAiL3Vzci9s
b2NhbC9pbmNsdWRlL3djaGFyLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGli
L2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyA0OSAiL3Vzci9s
b2NhbC9pbmNsdWRlL3djaGFyLmgiIDIgMwoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy93
Y2hhci5oIiAxIDMKIyA1MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3djaGFyLmgiIDIgMwojIDY3ICIv
dXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIgMwp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fY291
bnQ7CiAgdW5pb24KICB7CiAgICB3aW50X3QgX193Y2g7CiAgICBjaGFyIF9fd2NoYls0XTsKICB9
IF9fdmFsdWU7Cn0gX19tYnN0YXRlX3Q7CiMgMjUgIi91c3IvbG9jYWwvaW5jbHVkZS9fR19jb25m
aWcuaCIgMiAzCgp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmZfdCBfX3BvczsKICBfX21ic3RhdGVf
dCBfX3N0YXRlOwp9IF9HX2Zwb3NfdDsKdHlwZWRlZiBzdHJ1Y3QKewogIF9fb2ZmNjRfdCBfX3Bv
czsKICBfX21ic3RhdGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3M2NF90OwojIDQ0ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2NvbnYuaCIg
MSAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9nY29udi5oIiAzCiMgMSAiL3Vzci9sb2NhbC9p
bmNsdWRlL3djaGFyLmgiIDEgMwojIDQ4ICIvdXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIgMwoj
IDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2lu
Y2x1ZGUvc3RkZGVmLmgiIDEgMwojIDQ5ICIvdXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIgMiAz
CiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9nY29udi5oIiAyIDMKCgojIDEgIi91c3IvbG9jYWwv
Z2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgi
IDEgMwojIDMyICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2NvbnYuaCIgMiAzCgoKCgoKZW51bQp7CiAg
X19HQ09OVl9PSyA9IDAsCiAgX19HQ09OVl9OT0NPTlYsCiAgX19HQ09OVl9OT0RCLAogIF9fR0NP
TlZfTk9NRU0sCgogIF9fR0NPTlZfRU1QVFlfSU5QVVQsCiAgX19HQ09OVl9GVUxMX09VVFBVVCwK
ICBfX0dDT05WX0lMTEVHQUxfSU5QVVQsCiAgX19HQ09OVl9JTkNPTVBMRVRFX0lOUFVULAoKICBf
X0dDT05WX0lMTEVHQUxfREVTQ1JJUFRPUiwKICBfX0dDT05WX0lOVEVSTkFMX0VSUk9SCn07CgoK
CmVudW0KewogIF9fR0NPTlZfSVNfTEFTVCA9IDB4MDAwMSwKICBfX0dDT05WX0lHTk9SRV9FUlJP
UlMgPSAweDAwMDIKfTsKCgoKc3RydWN0IF9fZ2NvbnZfc3RlcDsKc3RydWN0IF9fZ2NvbnZfc3Rl
cF9kYXRhOwpzdHJ1Y3QgX19nY29udl9sb2FkZWRfb2JqZWN0OwpzdHJ1Y3QgX19nY29udl90cmFu
c19kYXRhOwoKCgp0eXBlZGVmIGludCAoKl9fZ2NvbnZfZmN0KSAoc3RydWN0IF9fZ2NvbnZfc3Rl
cCAqLCBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgKiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqKiwgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqLCBzaXplX3QgKiwgaW50
LCBpbnQpOwoKCnR5cGVkZWYgaW50ICgqX19nY29udl9pbml0X2ZjdCkgKHN0cnVjdCBfX2djb252
X3N0ZXAgKik7CnR5cGVkZWYgdm9pZCAoKl9fZ2NvbnZfZW5kX2ZjdCkgKHN0cnVjdCBfX2djb252
X3N0ZXAgKik7CgoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19mY3QpIChzdHJ1Y3QgX19n
Y29udl9zdGVwICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX19n
Y29udl9zdGVwX2RhdGEgKiwgdm9pZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKCgp0eXBlZGVmIGludCAoKl9f
Z2NvbnZfdHJhbnNfY29udGV4dF9mY3QpICh2b2lkICosIF9fY29uc3QgdW5zaWduZWQgY2hhciAq
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2ln
bmVkIGNoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFyICopOwoKCnR5cGVkZWYgaW50ICgqX19nY29udl90
cmFuc19xdWVyeV9mY3QpIChfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBjaGFyICoqKiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKCgp0eXBlZGVmIGlu
dCAoKl9fZ2NvbnZfdHJhbnNfaW5pdF9mY3QpICh2b2lkICoqLCBjb25zdCBjaGFyICopOwp0eXBl
ZGVmIHZvaWQgKCpfX2djb252X3RyYW5zX2VuZF9mY3QpICh2b2lkICopOwoKc3RydWN0IF9fZ2Nv
bnZfdHJhbnNfZGF0YQp7CgogIF9fZ2NvbnZfdHJhbnNfZmN0IF9fdHJhbnNfZmN0OwogIF9fZ2Nv
bnZfdHJhbnNfY29udGV4dF9mY3QgX190cmFuc19jb250ZXh0X2ZjdDsKICBfX2djb252X3RyYW5z
X2VuZF9mY3QgX190cmFuc19lbmRfZmN0OwogIHZvaWQgKl9fZGF0YTsKICBzdHJ1Y3QgX19nY29u
dl90cmFuc19kYXRhICpfX25leHQ7Cn07CgoKCnN0cnVjdCBfX2djb252X3N0ZXAKewogIHN0cnVj
dCBfX2djb252X2xvYWRlZF9vYmplY3QgKl9fc2hsaWJfaGFuZGxlOwogIF9fY29uc3QgY2hhciAq
X19tb2RuYW1lOwoKICBpbnQgX19jb3VudGVyOwoKICBjaGFyICpfX2Zyb21fbmFtZTsKICBjaGFy
ICpfX3RvX25hbWU7CgogIF9fZ2NvbnZfZmN0IF9fZmN0OwogIF9fZ2NvbnZfaW5pdF9mY3QgX19p
bml0X2ZjdDsKICBfX2djb252X2VuZF9mY3QgX19lbmRfZmN0OwoKCgogIGludCBfX21pbl9uZWVk
ZWRfZnJvbTsKICBpbnQgX19tYXhfbmVlZGVkX2Zyb207CiAgaW50IF9fbWluX25lZWRlZF90bzsK
ICBpbnQgX19tYXhfbmVlZGVkX3RvOwoKCiAgaW50IF9fc3RhdGVmdWw7CgogIHZvaWQgKl9fZGF0
YTsKfTsKCgoKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhCnsKICB1bnNpZ25lZCBjaGFyICpfX291
dGJ1ZjsKICB1bnNpZ25lZCBjaGFyICpfX291dGJ1ZmVuZDsKCgoKICBpbnQgX19mbGFnczsKCgoK
ICBpbnQgX19pbnZvY2F0aW9uX2NvdW50ZXI7CgoKCiAgaW50IF9faW50ZXJuYWxfdXNlOwoKICBf
X21ic3RhdGVfdCAqX19zdGF0ZXA7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKCgoKICBzdHJ1Y3Qg
X19nY29udl90cmFuc19kYXRhICpfX3RyYW5zOwp9OwoKCgp0eXBlZGVmIHN0cnVjdCBfX2djb252
X2luZm8KewogIHNpemVfdCBfX25zdGVwczsKICBzdHJ1Y3QgX19nY29udl9zdGVwICpfX3N0ZXBz
OwogIF9fZXh0ZW5zaW9uX18gc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhIF9fZGF0YSBbXTsKfSAq
X19nY29udl90OwojIDQ1ICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDIgMwp0eXBl
ZGVmIHVuaW9uCnsKICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgc3RydWN0CiAgewogICAg
c3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwogICAgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhIF9f
ZGF0YTsKICB9IF9fY29tYmluZWQ7Cn0gX0dfaWNvbnZfdDsKCnR5cGVkZWYgaW50IF9HX2ludDE2
X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgaW50IF9HX2lu
dDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CnR5cGVkZWYgdW5zaWdu
ZWQgaW50IF9HX3VpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwp0
eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18g
KF9fU0lfXykpKTsKIyAzMyAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpYmlvLmgiIDIgMwojIDUzICIv
dXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2dj
Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMwojIDQzICIv
dXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRl
L3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3QgX19nbnVjX3ZhX2xpc3Q7CiMg
NTQgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAyIDMKIyAxNjAgIi91c3IvbG9jYWwvaW5j
bHVkZS9saWJpby5oIiAzCnN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7CiMgMTcw
ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwp0eXBlZGVmIHZvaWQgX0lPX2xvY2tfdDsK
CgoKCgpzdHJ1Y3QgX0lPX21hcmtlciB7CiAgc3RydWN0IF9JT19tYXJrZXIgKl9uZXh0OwogIHN0
cnVjdCBfSU9fRklMRSAqX3NidWY7CgoKCiAgaW50IF9wb3M7CiMgMTkzICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvbGliaW8uaCIgMwp9OwoKCmVudW0gX19jb2RlY3Z0X3Jlc3VsdAp7CiAgX19jb2RlY3Z0
X29rLAogIF9fY29kZWN2dF9wYXJ0aWFsLAogIF9fY29kZWN2dF9lcnJvciwKICBfX2NvZGVjdnRf
bm9jb252Cn07CiMgMjYxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwpzdHJ1Y3QgX0lP
X0ZJTEUgewogIGludCBfZmxhZ3M7CgoKCgogIGNoYXIqIF9JT19yZWFkX3B0cjsKICBjaGFyKiBf
SU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfYmFz
ZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIqIF9JT193cml0ZV9lbmQ7CiAgY2hhciog
X0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5kOwoKICBjaGFyICpfSU9fc2F2ZV9iYXNl
OwogIGNoYXIgKl9JT19iYWNrdXBfYmFzZTsKICBjaGFyICpfSU9fc2F2ZV9lbmQ7CgogIHN0cnVj
dCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47CgogIGlu
dCBfZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90IF9vbGRfb2Zmc2V0OwoKCgogIHVu
c2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNpZ25lZCBjaGFyIF92dGFibGVfb2Zmc2V0Owog
IGNoYXIgX3Nob3J0YnVmWzFdOwoKCgogIF9JT19sb2NrX3QgKl9sb2NrOwojIDMwNSAiL3Vzci9s
b2NhbC9pbmNsdWRlL2xpYmlvLmgiIDMKICBfX29mZjY0X3QgX29mZnNldDsKCgoKCgogIHZvaWQg
Kl9fcGFkMTsKICB2b2lkICpfX3BhZDI7CgogIGludCBfbW9kZTsKCiAgY2hhciBfdW51c2VkMlsx
NSAqIHNpemVvZiAoaW50KSAtIDIgKiBzaXplb2YgKHZvaWQgKildOwoKfTsKCgp0eXBlZGVmIHN0
cnVjdCBfSU9fRklMRSBfSU9fRklMRTsKCgpzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsKCmV4dGVybiBz
dHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGluXzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklM
RV9wbHVzIF9JT18yXzFfc3Rkb3V0XzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18y
XzFfc3RkZXJyXzsKIyAzNDQgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAzCnR5cGVkZWYg
X19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBzaXpl
X3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9p
ZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBfX24pOwoKCgoKCgoKdHlwZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2
b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3BvcywgaW50IF9fdyk7CgoKdHlwZWRlZiBpbnQg
X19pb19jbG9zZV9mbiAodm9pZCAqX19jb29raWUpOwoKCgoKdHlwZWRlZiBfX2lvX3JlYWRfZm4g
Y29va2llX3JlYWRfZnVuY3Rpb25fdDsKdHlwZWRlZiBfX2lvX3dyaXRlX2ZuIGNvb2tpZV93cml0
ZV9mdW5jdGlvbl90Owp0eXBlZGVmIF9faW9fc2Vla19mbiBjb29raWVfc2Vla19mdW5jdGlvbl90
Owp0eXBlZGVmIF9faW9fY2xvc2VfZm4gY29va2llX2Nsb3NlX2Z1bmN0aW9uX3Q7CgoKdHlwZWRl
ZiBzdHJ1Y3QKewogIF9faW9fcmVhZF9mbiAqcmVhZDsKICBfX2lvX3dyaXRlX2ZuICp3cml0ZTsK
ICBfX2lvX3NlZWtfZm4gKnNlZWs7CiAgX19pb19jbG9zZV9mbiAqY2xvc2U7Cn0gX0lPX2Nvb2tp
ZV9pb19mdW5jdGlvbnNfdDsKdHlwZWRlZiBfSU9fY29va2llX2lvX2Z1bmN0aW9uc190IGNvb2tp
ZV9pb19mdW5jdGlvbnNfdDsKCnN0cnVjdCBfSU9fY29va2llX2ZpbGU7CgoKZXh0ZXJuIHZvaWQg
X0lPX2Nvb2tpZV9pbml0IChzdHJ1Y3QgX0lPX2Nvb2tpZV9maWxlICpfX2NmaWxlLCBpbnQgX19y
ZWFkX3dyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKl9fY29va2llLCBf
SU9fY29va2llX2lvX2Z1bmN0aW9uc190IF9fZm5zKTsKCgoKCgoKCmV4dGVybiBpbnQgX191bmRl
cmZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIGludCBfX3VmbG93IChfSU9fRklMRSAqKSA7CmV4
dGVybiBpbnQgX19vdmVyZmxvdyAoX0lPX0ZJTEUgKiwgaW50KSA7CmV4dGVybiB3aW50X3QgX193
dW5kZXJmbG93IChfSU9fRklMRSAqKSA7CmV4dGVybiB3aW50X3QgX193dWZsb3cgKF9JT19GSUxF
ICopIDsKZXh0ZXJuIHdpbnRfdCBfX3dvdmVyZmxvdyAoX0lPX0ZJTEUgKiwgd2ludF90KSA7CiMg
NDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwpleHRlcm4gaW50IF9JT19nZXRjIChf
SU9fRklMRSAqX19mcCkgOwpleHRlcm4gaW50IF9JT19wdXRjIChpbnQgX19jLCBfSU9fRklMRSAq
X19mcCkgOwpleHRlcm4gaW50IF9JT19mZW9mIChfSU9fRklMRSAqX19mcCkgOwpleHRlcm4gaW50
IF9JT19mZXJyb3IgKF9JT19GSUxFICpfX2ZwKSA7CgpleHRlcm4gaW50IF9JT19wZWVrY19sb2Nr
ZWQgKF9JT19GSUxFICpfX2ZwKSA7CgoKCgoKZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lP
X0ZJTEUgKikgOwpleHRlcm4gdm9pZCBfSU9fZnVubG9ja2ZpbGUgKF9JT19GSUxFICopIDsKZXh0
ZXJuIGludCBfSU9fZnRyeWxvY2tmaWxlIChfSU9fRklMRSAqKSA7CiMgNDU2ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvbGliaW8uaCIgMwpleHRlcm4gaW50IF9JT192ZnNjYW5mIChfSU9fRklMRSAqIF9f
cmVzdHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LAogICAgICAgICAgICAgICAgICAgICAg
ICBfX2dudWNfdmFfbGlzdCwgaW50ICpfX3Jlc3RyaWN0KSA7CmV4dGVybiBpbnQgX0lPX3ZmcHJp
bnRmIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0KSA7CmV4dGVybiBfX3NzaXplX3QgX0lP
X3BhZG4gKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90KSA7CmV4dGVybiBzaXplX3QgX0lPX3Nn
ZXRuIChfSU9fRklMRSAqLCB2b2lkICosIHNpemVfdCkgOwoKZXh0ZXJuIF9fb2ZmNjRfdCBfSU9f
c2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2NF90LCBpbnQsIGludCkgOwpleHRlcm4gX19vZmY2
NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCkgOwoKZXh0ZXJuIHZv
aWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEgKF9JT19GSUxFICopIDsKIyA2NiAiL3Vzci9sb2NhbC9p
bmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgoKdHlwZWRlZiBfX2dudWNfdmFfbGlzdCB2YV9saXN0Owoj
IDgyICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwp0eXBlZGVmIF9HX2Zwb3M2NF90IGZw
b3NfdDsKCgp0eXBlZGVmIF9HX2Zwb3M2NF90IGZwb3M2NF90OwojIDEyOSAiL3Vzci9sb2NhbC9p
bmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zdGRpb19saW0u
aCIgMSAzCiMgMTMwICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMiAzCgoKCmV4dGVybiBG
SUxFICpzdGRpbjsKZXh0ZXJuIEZJTEUgKnN0ZG91dDsKZXh0ZXJuIEZJTEUgKnN0ZGVycjsKCgoK
CgoKZXh0ZXJuIGludCByZW1vdmUgKF9fY29uc3QgY2hhciAqX19maWxlbmFtZSkgOwoKZXh0ZXJu
IGludCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29uc3QgY2hhciAqX19uZXcpIDsK
CgoKCgoKCmV4dGVybiBGSUxFICp0bXBmaWxlICh2b2lkKSBfX2FzbV9fICgiIiAidG1wZmlsZTY0
Iik7CgoKCgoKZXh0ZXJuIEZJTEUgKnRtcGZpbGU2NCAodm9pZCkgOwoKCmV4dGVybiBjaGFyICp0
bXBuYW0gKGNoYXIgKl9fcykgOwoKCgoKZXh0ZXJuIGNoYXIgKnRtcG5hbV9yIChjaGFyICpfX3Mp
IDsKIyAxNzggIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBjaGFyICp0ZW1w
bmFtIChfX2NvbnN0IGNoYXIgKl9fZGlyLCBfX2NvbnN0IGNoYXIgKl9fcGZ4KQogICAgIF9fYXR0
cmlidXRlX18gKChfX21hbGxvY19fKSk7CgoKCgpleHRlcm4gaW50IGZjbG9zZSAoRklMRSAqX19z
dHJlYW0pIDsKCmV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSkgOwoKCgpleHRlcm4g
aW50IGZmbHVzaF91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZmNs
b3NlYWxsICh2b2lkKSA7CiMgMjA5ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRl
cm4gRklMRSAqZm9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLCBfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19tb2RlcykgX19hc21fXyAoIiIgImZvcGVuNjQiKTsKCgpl
eHRlcm4gRklMRSAqZnJlb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUs
IF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX21vZGVzLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtKSBfX2FzbV9fICgiIiAiZnJlb3BlbjY0Iik7CiMgMjIyICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3RkaW8uaCIgMwpleHRlcm4gRklMRSAqZm9wZW42NCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19tb2RlcykgOwpleHRlcm4gRklMRSAqZnJlb3BlbjY0IChfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0pIDsKCgoKCmV4dGVybiBGSUxFICpmZG9wZW4gKGludCBfX2ZkLCBfX2NvbnN0
IGNoYXIgKl9fbW9kZXMpIDsKCgoKCgpleHRlcm4gRklMRSAqZm9wZW5jb29raWUgKHZvaWQgKl9f
cmVzdHJpY3QgX19tYWdpY19jb29raWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX0lP
X2Nvb2tpZV9pb19mdW5jdGlvbnNfdCBfX2lvX2Z1bmNzKSA7CgoKZXh0ZXJuIEZJTEUgKmZtZW1v
cGVuICh2b2lkICpfX3MsIHNpemVfdCBfX2xlbiwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7CgoK
CgpleHRlcm4gRklMRSAqb3Blbl9tZW1zdHJlYW0gKGNoYXIgKipfX3Jlc3RyaWN0IF9fYnVmbG9j
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX3NpemVs
b2MpIDsKCgoKCgpleHRlcm4gdm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0s
IGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgoKZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpf
X3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAogICAgICAgICAgICAg
ICAgICAgIGludCBfX21vZGVzLCBzaXplX3QgX19uKSA7CgoKCgpleHRlcm4gdm9pZCBzZXRidWZm
ZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc2l6ZSkgOwoKCmV4dGVybiB2b2lkIHNldGxp
bmVidWYgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKCmV4dGVybiBpbnQgcHJpbnRmIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpf
X3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19mb3JtYXQsIC4uLikgOwoKCmV4dGVybiBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJp
Y3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAgICAgICAg
ICAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKSA7CgpleHRlcm4gaW50IHZwcmludGYgKF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAg
OwoKZXh0ZXJuIGludCB2c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xp
c3QgX19hcmcpIDsKCgoKZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3Ms
IHNpemVfdCBfX21heGxlbiwKICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fZm9ybWF0LCAuLi4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9f
cHJpbnRmX18sIDMsIDQpKSk7CgpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0cmlj
dCBfX3MsIHNpemVfdCBfX21heGxlbiwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDApKSk7CgoKCgoKZXh0ZXJuIGlu
dCB2YXNwcmludGYgKGNoYXIgKipfX3Jlc3RyaWN0IF9fcHRyLCBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mLAogICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDApKSk7CmV4dGVy
biBpbnQgX19hc3ByaW50ZiAoY2hhciAqKl9fcmVzdHJpY3QgX19wdHIsCiAgICAgICAgICAgICAg
ICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4pCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDIsIDMpKSk7CmV4dGVybiBpbnQgYXNw
cmludGYgKGNoYXIgKipfX3Jlc3RyaWN0IF9fcHRyLAogICAgICAgICAgICAgICAgICAgICBfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19m
b3JtYXRfXyAoX19wcmludGZfXywgMiwgMykpKTsKCgpleHRlcm4gaW50IHZkcHJpbnRmIChpbnQg
X19mZCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LAogICAgICAgICAgICAgICAgICAg
ICBfX2dudWNfdmFfbGlzdCBfX2FyZykKICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAo
X19wcmludGZfXywgMiwgMCkpKTsKZXh0ZXJuIGludCBkcHJpbnRmIChpbnQgX19mZCwgX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCAuLi4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9y
bWF0X18gKF9fcHJpbnRmX18sIDIsIDMpKSk7CgoKCgpleHRlcm4gaW50IGZzY2FuZiAoRklMRSAq
X19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNjYW5mIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBzc2NhbmYgKF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKCgpleHRlcm4gaW50IHZmc2NhbmYgKEZJTEUgKl9f
cmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAg
ICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
Zm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsKCgpleHRlcm4gaW50IHZzY2FuZiAoX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykKICAgICBf
X2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAxLCAwKSkpOwoKCmV4dGVybiBp
bnQgdnNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAg
ICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9f
YXJnKQogICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIDIsIDApKSk7
CgoKCgpleHRlcm4gaW50IGZnZXRjIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGdldGMg
KEZJTEUgKl9fc3RyZWFtKSA7CgoKZXh0ZXJuIGludCBnZXRjaGFyICh2b2lkKSA7CgoKCgoKCgpl
eHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZ2V0
Y2hhcl91bmxvY2tlZCAodm9pZCkgOwoKCgoKZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tlZCAoRklM
RSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZnB1dGMgKGludCBfX2MsIEZJTEUgKl9fc3Ry
ZWFtKSA7CmV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKCgpleHRl
cm4gaW50IHB1dGNoYXIgKGludCBfX2MpIDsKCgoKCgoKCmV4dGVybiBpbnQgZnB1dGNfdW5sb2Nr
ZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IHB1dGNfdW5sb2Nr
ZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgcHV0Y2hhcl91bmxvY2tl
ZCAoaW50IF9fYykgOwoKCgoKCmV4dGVybiBpbnQgZ2V0dyAoRklMRSAqX19zdHJlYW0pIDsKCgpl
eHRlcm4gaW50IHB1dHcgKGludCBfX3csIEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gY2hh
ciAqZmdldHMgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLCBGSUxFICpfX3Jlc3RyaWN0
IF9fc3RyZWFtKQogICAgIDsKCgoKZXh0ZXJuIGNoYXIgKmZnZXRzX3VubG9ja2VkIChjaGFyICpf
X3Jlc3RyaWN0IF9fcywgaW50IF9fbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CgoKCgpleHRlcm4gY2hhciAqZ2V0cyAoY2hhciAqX19z
KSA7CiMgNDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gX19zc2l6ZV90
IF9fZ2V0ZGVsaW0gKGNoYXIgKipfX3Jlc3RyaWN0IF9fbGluZXB0ciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGludCBfX2RlbGltaXRlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0p
IDsKZXh0ZXJuIF9fc3NpemVfdCBnZXRkZWxpbSAoY2hhciAqKl9fcmVzdHJpY3QgX19saW5lcHRy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sIGlu
dCBfX2RlbGltaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFICpfX3Jlc3Ry
aWN0IF9fc3RyZWFtKSA7CgoKZXh0ZXJuIF9fc3NpemVfdCBnZXRsaW5lIChjaGFyICoqX19yZXN0
cmljdCBfX2xpbmVwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKl9fcmVz
dHJpY3QgX19uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqX19yZXN0cmljdCBf
X3N0cmVhbSkgOwoKCgoKZXh0ZXJuIGludCBmcHV0cyAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcywgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKICAgICA7CgoKCmV4dGVybiBpbnQgZnB1
dHNfdW5sb2NrZWQgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKCgoKZXh0ZXJuIGludCBw
dXRzIChfX2NvbnN0IGNoYXIgKl9fcykgOwoKCgpleHRlcm4gaW50IHVuZ2V0YyAoaW50IF9fYywg
RklMRSAqX19zdHJlYW0pIDsKCgoKZXh0ZXJuIHNpemVfdCBmcmVhZCAodm9pZCAqX19yZXN0cmlj
dCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbiwg
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwoKZXh0ZXJuIHNpemVfdCBmd3JpdGUgKF9fY29u
c3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zKSA7CgoKCmV4dGVybiBzaXpl
X3QgZnJlYWRfdW5sb2NrZWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0pIDsKZXh0ZXJuIHNpemVfdCBmd3JpdGVfdW5sb2NrZWQgKF9fY29uc3Qgdm9p
ZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKCgoKCmV4
dGVybiBpbnQgZnNlZWsgKEZJTEUgKl9fc3RyZWFtLCBsb25nIGludCBfX29mZiwgaW50IF9fd2hl
bmNlKSA7CgpleHRlcm4gbG9uZyBpbnQgZnRlbGwgKEZJTEUgKl9fc3RyZWFtKSA7CgpleHRlcm4g
dm9pZCByZXdpbmQgKEZJTEUgKl9fc3RyZWFtKSA7CiMgNTAyICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3RkaW8uaCIgMwpleHRlcm4gaW50IGZzZWVrbyAoRklMRSAqX19zdHJlYW0sIF9fb2ZmNjRfdCBf
X29mZiwgaW50IF9fd2hlbmNlKSBfX2FzbV9fICgiIiAiZnNlZWtvNjQiKTsKCgpleHRlcm4gX19v
ZmY2NF90IGZ0ZWxsbyAoRklMRSAqX19zdHJlYW0pIF9fYXNtX18gKCIiICJmdGVsbG82NCIpOwoK
ZXh0ZXJuIGludCBmZ2V0cG9zIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9f
cmVzdHJpY3QgX19wb3MpIF9fYXNtX18gKCIiICJmZ2V0cG9zNjQiKTsKCmV4dGVybiBpbnQgZnNl
dHBvcyAoRklMRSAqX19zdHJlYW0sIF9fY29uc3QgZnBvc190ICpfX3BvcykgX19hc21fXyAoIiIg
ImZzZXRwb3M2NCIpOwojIDUyMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJu
IGludCBmc2Vla282NCAoRklMRSAqX19zdHJlYW0sIF9fb2ZmNjRfdCBfX29mZiwgaW50IF9fd2hl
bmNlKSA7CmV4dGVybiBfX29mZjY0X3QgZnRlbGxvNjQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVy
biBpbnQgZmdldHBvczY0IChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zNjRfdCAqX19y
ZXN0cmljdCBfX3BvcykKICAgICA7CmV4dGVybiBpbnQgZnNldHBvczY0IChGSUxFICpfX3N0cmVh
bSwgX19jb25zdCBmcG9zNjRfdCAqX19wb3MpIDsKCgoKZXh0ZXJuIHZvaWQgY2xlYXJlcnIgKEZJ
TEUgKl9fc3RyZWFtKSA7CgpleHRlcm4gaW50IGZlb2YgKEZJTEUgKl9fc3RyZWFtKSA7CgpleHRl
cm4gaW50IGZlcnJvciAoRklMRSAqX19zdHJlYW0pIDsKCgoKZXh0ZXJuIHZvaWQgY2xlYXJlcnJf
dW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklM
RSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBmZXJyb3JfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFt
KSA7CgoKCgpleHRlcm4gdm9pZCBwZXJyb3IgKF9fY29uc3QgY2hhciAqX19zKSA7CgoKCgpleHRl
cm4gaW50IHN5c19uZXJyOwpleHRlcm4gX19jb25zdCBjaGFyICpfX2NvbnN0IHN5c19lcnJsaXN0
W107CgoKZXh0ZXJuIGludCBfc3lzX25lcnI7CmV4dGVybiBfX2NvbnN0IGNoYXIgKl9fY29uc3Qg
X3N5c19lcnJsaXN0W107CgoKCgoKZXh0ZXJuIGludCBmaWxlbm8gKEZJTEUgKl9fc3RyZWFtKSA7
CgoKCgpleHRlcm4gaW50IGZpbGVub191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKCgoKCgoK
ZXh0ZXJuIEZJTEUgKnBvcGVuIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCwgX19jb25zdCBjaGFy
ICpfX21vZGVzKSA7CgoKZXh0ZXJuIGludCBwY2xvc2UgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgoK
ZXh0ZXJuIGNoYXIgKmN0ZXJtaWQgKGNoYXIgKl9fcykgOwoKCgoKCmV4dGVybiBjaGFyICpjdXNl
cmlkIChjaGFyICpfX3MpIDsKCgoKCnN0cnVjdCBvYnN0YWNrOwoKCmV4dGVybiBpbnQgb2JzdGFj
a19wcmludGYgKHN0cnVjdCBvYnN0YWNrICpfX3Jlc3RyaWN0IF9fb2JzdGFjaywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p
IDsKZXh0ZXJuIGludCBvYnN0YWNrX3ZwcmludGYgKHN0cnVjdCBvYnN0YWNrICpfX3Jlc3RyaWN0
IF9fb2JzdGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9s
aXN0IF9fYXJncykgOwoKCgoKCgoKZXh0ZXJuIHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVh
bSkgOwoKCgpleHRlcm4gaW50IGZ0cnlsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKCgpleHRl
cm4gdm9pZCBmdW5sb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKIyA2MzAgIi91c3IvbG9jYWwv
aW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RkaW8uaCIg
MSAzCiMgMzMgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0ZGlvLmgiIDMKZXh0ZXJuIF9faW5s
aW5lIGludAp2cHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIF9fZ251Y192
YV9saXN0IF9fYXJnKQp7CiAgcmV0dXJuIHZmcHJpbnRmIChzdGRvdXQsIF9fZm10LCBfX2FyZyk7
Cn0KCgpleHRlcm4gX19pbmxpbmUgaW50CmdldGNoYXIgKHZvaWQpCnsKICByZXR1cm4gX0lPX2dl
dGMgKHN0ZGluKTsKfQoKCgoKZXh0ZXJuIF9faW5saW5lIGludApnZXRjX3VubG9ja2VkIChGSUxF
ICpfX2ZwKQp7CiAgcmV0dXJuICgoX19mcCktPl9JT19yZWFkX3B0ciA+PSAoX19mcCktPl9JT19y
ZWFkX2VuZCA/IF9fdWZsb3cgKF9fZnApIDogKih1bnNpZ25lZCBjaGFyICopIChfX2ZwKS0+X0lP
X3JlYWRfcHRyKyspOwp9CgoKZXh0ZXJuIF9faW5saW5lIGludApnZXRjaGFyX3VubG9ja2VkICh2
b2lkKQp7CiAgcmV0dXJuICgoc3RkaW4pLT5fSU9fcmVhZF9wdHIgPj0gKHN0ZGluKS0+X0lPX3Jl
YWRfZW5kID8gX191ZmxvdyAoc3RkaW4pIDogKih1bnNpZ25lZCBjaGFyICopIChzdGRpbiktPl9J
T19yZWFkX3B0cisrKTsKfQoKCgoKZXh0ZXJuIF9faW5saW5lIGludApwdXRjaGFyIChpbnQgX19j
KQp7CiAgcmV0dXJuIF9JT19wdXRjIChfX2MsIHN0ZG91dCk7Cn0KCgoKCmV4dGVybiBfX2lubGlu
ZSBpbnQKZnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJu
ICgoKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0ciA+PSAoX19zdHJlYW0pLT5fSU9fd3JpdGVfZW5k
KSA/IF9fb3ZlcmZsb3cgKF9fc3RyZWFtLCAodW5zaWduZWQgY2hhcikgKF9fYykpIDogKHVuc2ln
bmVkIGNoYXIpICgqKF9fc3RyZWFtKS0+X0lPX3dyaXRlX3B0cisrID0gKF9fYykpKTsKfQoKCgoK
CmV4dGVybiBfX2lubGluZSBpbnQKcHV0Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJl
YW0pCnsKICByZXR1cm4gKCgoX19zdHJlYW0pLT5fSU9fd3JpdGVfcHRyID49IChfX3N0cmVhbSkt
Pl9JT193cml0ZV9lbmQpID8gX19vdmVyZmxvdyAoX19zdHJlYW0sICh1bnNpZ25lZCBjaGFyKSAo
X19jKSkgOiAodW5zaWduZWQgY2hhcikgKCooX19zdHJlYW0pLT5fSU9fd3JpdGVfcHRyKysgPSAo
X19jKSkpOwp9CgoKZXh0ZXJuIF9faW5saW5lIGludApwdXRjaGFyX3VubG9ja2VkIChpbnQgX19j
KQp7CiAgcmV0dXJuICgoKHN0ZG91dCktPl9JT193cml0ZV9wdHIgPj0gKHN0ZG91dCktPl9JT193
cml0ZV9lbmQpID8gX19vdmVyZmxvdyAoc3Rkb3V0LCAodW5zaWduZWQgY2hhcikgKF9fYykpIDog
KHVuc2lnbmVkIGNoYXIpICgqKHN0ZG91dCktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7Cn0K
CgoKCgpleHRlcm4gX19pbmxpbmUgX19zc2l6ZV90CmdldGxpbmUgKGNoYXIgKipfX2xpbmVwdHIs
IHNpemVfdCAqX19uLCBGSUxFICpfX3N0cmVhbSkKewogIHJldHVybiBfX2dldGRlbGltIChfX2xp
bmVwdHIsIF9fbiwgJ1xuJywgX19zdHJlYW0pOwp9CgoKCgoKZXh0ZXJuIF9faW5saW5lIGludApm
ZW9mX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkKewogIHJldHVybiAoKChfX3N0cmVhbSktPl9m
bGFncyAmIDB4MTApICE9IDApOwp9CgoKZXh0ZXJuIF9faW5saW5lIGludApmZXJyb3JfdW5sb2Nr
ZWQgKEZJTEUgKl9fc3RyZWFtKQp7CiAgcmV0dXJuICgoKF9fc3RyZWFtKS0+X2ZsYWdzICYgMHgy
MCkgIT0gMCk7Cn0KIyA2MzEgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKIyA5
OCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxp
Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMTQ3ICIvdXNy
L2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0
ZGRlZi5oIiAzCnR5cGVkZWYgaW50IHB0cmRpZmZfdDsKIyA5OSAiaW5jbHVkZS9pbmNsdWRlcy5o
IiAyCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3BhcmFtLmgiIDEgMwojIDIyICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3BhcmFtLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGlt
aXRzLmgiIDEgMwojIDEyNCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAzCiMgMSAiL3Vz
ci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9s
aW1pdHMuaCIgMSAzCiMgMTI1ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGltaXRzLmgiIDIgMwojIDE0
NCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2JpdHMvcG9zaXgxX2xpbS5oIiAxIDMKIyAxMjYgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3Bv
c2l4MV9saW0uaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2xvY2FsX2xpbS5oIiAx
IDMKIyAzNiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvbG9jYWxfbGltLmgiIDMKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvbGludXgvbGltaXRzLmgiIDEgMwojIDM3ICIvdXNyL2xvY2FsL2luY2x1
ZGUvYml0cy9sb2NhbF9saW0uaCIgMiAzCiMgMTI3ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9w
b3NpeDFfbGltLmgiIDIgMwojIDE0NSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAyIDMK
CgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9wb3NpeDJfbGltLmgiIDEgMwojIDE0OSAi
L3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAyIDMKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvYml0cy94b3Blbl9saW0uaCIgMSAzCiMgMzQgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3hv
cGVuX2xpbS5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RkaW9fbGltLmgiIDEg
MwojIDM1ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy94b3Blbl9saW0uaCIgMiAzCiMgMTUzICIv
dXNyL2xvY2FsL2luY2x1ZGUvbGltaXRzLmgiIDIgMwojIDIzICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3lzL3BhcmFtLmgiIDIgMwoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGludXgvcGFyYW0uaCIg
MSAzCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2FzbS9wYXJhbS5oIiAxIDMKIyA1ICIvdXNy
L2xvY2FsL2luY2x1ZGUvbGludXgvcGFyYW0uaCIgMiAzCiMgMjUgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zeXMvcGFyYW0uaCIgMiAzCiMgMTAyICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3RkbGliLmgiIDEgMwojIDMzICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3RkbGliLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGlu
dXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzNCAiL3Vzci9sb2NhbC9pbmNsdWRl
L3N0ZGxpYi5oIiAyIDMKCgoKCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3dhaXRm
bGFncy5oIiAxIDMKIyA0MyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAyIDMKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvYml0cy93YWl0c3RhdHVzLmgiIDEgMwojIDY1ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy93YWl0c3RhdHVzLmgiIDMKdW5pb24gd2FpdAogIHsKICAgIGludCB3X3N0
YXR1czsKICAgIHN0cnVjdAogICAgICB7CgogICAgICAgIHVuc2lnbmVkIGludCBfX3dfdGVybXNp
Zzo3OwogICAgICAgIHVuc2lnbmVkIGludCBfX3dfY29yZWR1bXA6MTsKICAgICAgICB1bnNpZ25l
ZCBpbnQgX193X3JldGNvZGU6ODsKICAgICAgICB1bnNpZ25lZCBpbnQ6MTY7CgoKCgoKCgogICAg
ICB9IF9fd2FpdF90ZXJtaW5hdGVkOwogICAgc3RydWN0CiAgICAgIHsKCiAgICAgICAgdW5zaWdu
ZWQgaW50IF9fd19zdG9wdmFsOjg7CiAgICAgICAgdW5zaWduZWQgaW50IF9fd19zdG9wc2lnOjg7
CiAgICAgICAgdW5zaWduZWQgaW50OjE2OwoKCgoKCgogICAgICB9IF9fd2FpdF9zdG9wcGVkOwog
IH07CiMgNDQgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRsaWIuaCIgMiAzCiMgNjggIi91c3IvbG9j
YWwvaW5jbHVkZS9zdGRsaWIuaCIgMwp0eXBlZGVmIHVuaW9uCiAgewogICAgdW5pb24gd2FpdCAq
X191cHRyOwogICAgaW50ICpfX2lwdHI7CiAgfSBfX1dBSVRfU1RBVFVTIF9fYXR0cmlidXRlX18g
KChfX3RyYW5zcGFyZW50X3VuaW9uX18pKTsKIyA5NCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxp
Yi5oIiAzCnR5cGVkZWYgc3RydWN0CiAgewogICAgaW50IHF1b3Q7CiAgICBpbnQgcmVtOwogIH0g
ZGl2X3Q7CgoKCnR5cGVkZWYgc3RydWN0CiAgewogICAgbG9uZyBpbnQgcXVvdDsKICAgIGxvbmcg
aW50IHJlbTsKICB9IGxkaXZfdDsKCgoKCgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgc3RydWN0CiAg
ewogICAgbG9uZyBsb25nIGludCBxdW90OwogICAgbG9uZyBsb25nIGludCByZW07CiAgfSBsbGRp
dl90OwojIDEzMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBzaXplX3Qg
X19jdHlwZV9nZXRfbWJfY3VyX21heCAodm9pZCkgOwoKCgpleHRlcm4gZG91YmxlIGF0b2YgKF9f
Y29uc3QgY2hhciAqX19ucHRyKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCmV4dGVybiBp
bnQgYXRvaSAoX19jb25zdCBjaGFyICpfX25wdHIpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp
OwoKZXh0ZXJuIGxvbmcgaW50IGF0b2wgKF9fY29uc3QgY2hhciAqX19ucHRyKSBfX2F0dHJpYnV0
ZV9fICgoX19wdXJlX18pKTsKCgoKX19leHRlbnNpb25fXyBleHRlcm4gbG9uZyBsb25nIGludCBh
dG9sbCAoX19jb25zdCBjaGFyICpfX25wdHIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9f
KSk7CgoKCmV4dGVybiBkb3VibGUgc3RydG9kIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19u
cHRyLAogICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIpIDsK
CgoKZXh0ZXJuIGZsb2F0IHN0cnRvZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwK
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIpIDsKCmV4dGVy
biBsb25nIGRvdWJsZSBzdHJ0b2xkIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIpIDsK
CgoKZXh0ZXJuIGxvbmcgaW50IHN0cnRvbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0
ciwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGlu
dCBfX2Jhc2UpIDsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGludCBzdHJ0b3VsIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UpCiAgICAgOwoKCgpfX2V4dGVu
c2lvbl9fCmV4dGVybiBsb25nIGxvbmcgaW50IHN0cnRvcSAoX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmlj
dCBfX2VuZHB0ciwgaW50IF9fYmFzZSkgOwoKX19leHRlbnNpb25fXwpleHRlcm4gdW5zaWduZWQg
bG9uZyBsb25nIGludCBzdHJ0b3VxIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBf
X2VuZHB0ciwgaW50IF9fYmFzZSkKICAgICA7CgoKCgoKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIGxv
bmcgbG9uZyBpbnQgc3RydG9sbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGlu
dCBfX2Jhc2UpIDsKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQg
c3RydG91bGwgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50
IF9fYmFzZSkKICAgICA7CiMgMjExICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkbGliLmgiIDMKIyAx
ICIvdXNyL2xvY2FsL2luY2x1ZGUveGxvY2FsZS5oIiAxIDMKIyAyOCAiL3Vzci9sb2NhbC9pbmNs
dWRlL3hsb2NhbGUuaCIgMwp0eXBlZGVmIHN0cnVjdCBfX2xvY2FsZV9zdHJ1Y3QKewoKICBzdHJ1
Y3QgbG9jYWxlX2RhdGEgKl9fbG9jYWxlc1sxM107CgoKICBjb25zdCB1bnNpZ25lZCBzaG9ydCBp
bnQgKl9fY3R5cGVfYjsKICBjb25zdCBpbnQgKl9fY3R5cGVfdG9sb3dlcjsKICBjb25zdCBpbnQg
Kl9fY3R5cGVfdG91cHBlcjsKfSAqX19sb2NhbGVfdDsKIyAyMTIgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zdGRsaWIuaCIgMiAzCgoKCmV4dGVybiBsb25nIGludCBfX3N0cnRvbF9sIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
Kl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfX2xvY2FsZV90IF9fbG9jKSA7CgpleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQgX19zdHJ0
b3VsX2wgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYmFzZSwgX19sb2NhbGVfdCBfX2xv
YykgOwoKX19leHRlbnNpb25fXwpleHRlcm4gbG9uZyBsb25nIGludCBfX3N0cnRvbGxfbCAoX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19sb2NhbGVfdCBfX2xvYykgOwoKX19leHRlbnNpb25f
XwpleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3N0cnRvdWxsX2wgKF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYmFzZSwgX19sb2NhbGVfdCBfX2xvYykKICAg
ICA7CgpleHRlcm4gZG91YmxlIF9fc3RydG9kX2wgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRw
dHIsIF9fbG9jYWxlX3QgX19sb2MpCiAgICAgOwoKZXh0ZXJuIGZsb2F0IF9fc3RydG9mX2wgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgX19sb2NhbGVfdCBfX2xvYykgOwoKZXh0ZXJuIGxv
bmcgZG91YmxlIF9fc3RydG9sZF9sIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbG9jYWxlX3QgX19sb2MpIDsKCgoK
CgoKZXh0ZXJuIGRvdWJsZSBfX3N0cnRvZF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVz
dHJpY3QgX19lbmRwdHIsIGludCBfX2dyb3VwKQogICAgIDsKZXh0ZXJuIGZsb2F0IF9fc3RydG9m
X2ludGVybmFsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19ncm91
cCkKICAgICA7CmV4dGVybiBsb25nIGRvdWJsZSBfX3N0cnRvbGRfaW50ZXJuYWwgKF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgX19ncm91cCkgOwoKZXh0ZXJuIGxvbmcgaW50IF9fc3RydG9s
X2ludGVybmFsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2Jhc2UsIGludCBfX2dyb3VwKSA7CgoK
CmV4dGVybiB1bnNpZ25lZCBsb25nIGludCBfX3N0cnRvdWxfaW50ZXJuYWwgKF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iYXNlLCBpbnQgX19ncm91cCkgOwoKCgoK
X19leHRlbnNpb25fXwpleHRlcm4gbG9uZyBsb25nIGludCBfX3N0cnRvbGxfaW50ZXJuYWwgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXApIDsKCgoK
X19leHRlbnNpb25fXwpleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3N0cnRvdWxsX2lu
dGVybmFsIChfX2NvbnN0IGNoYXIgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBf
X2Jhc2UsIGludCBfX2dyb3VwKQogICAgIDsKCgoKCgoKCmV4dGVybiBfX2lubGluZSBkb3VibGUK
c3RydG9kIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmlj
dCBfX2VuZHB0cikKewogIHJldHVybiBfX3N0cnRvZF9pbnRlcm5hbCAoX19ucHRyLCBfX2VuZHB0
ciwgMCk7Cn0KZXh0ZXJuIF9faW5saW5lIGxvbmcgaW50CnN0cnRvbCAoX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fbnB0ciwgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCiAgICAgICAgaW50
IF9fYmFzZSkKewogIHJldHVybiBfX3N0cnRvbF9pbnRlcm5hbCAoX19ucHRyLCBfX2VuZHB0ciwg
X19iYXNlLCAwKTsKfQpleHRlcm4gX19pbmxpbmUgdW5zaWduZWQgbG9uZyBpbnQKc3RydG91bCAo
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRw
dHIsCiAgICAgICAgIGludCBfX2Jhc2UpCnsKICByZXR1cm4gX19zdHJ0b3VsX2ludGVybmFsIChf
X25wdHIsIF9fZW5kcHRyLCBfX2Jhc2UsIDApOwp9CgoKZXh0ZXJuIF9faW5saW5lIGZsb2F0CnN0
cnRvZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwgY2hhciAqKl9fcmVzdHJpY3Qg
X19lbmRwdHIpCnsKICByZXR1cm4gX19zdHJ0b2ZfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIs
IDApOwp9CmV4dGVybiBfX2lubGluZSBsb25nIGRvdWJsZQpzdHJ0b2xkIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikKewogIHJldHVy
biBfX3N0cnRvbGRfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIsIDApOwp9CgoKCl9fZXh0ZW5z
aW9uX18gZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBpbnQKc3RydG9xIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwKICAgICAgICBp
bnQgX19iYXNlKQp7CiAgcmV0dXJuIF9fc3RydG9sbF9pbnRlcm5hbCAoX19ucHRyLCBfX2VuZHB0
ciwgX19iYXNlLCAwKTsKfQpfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1bnNpZ25lZCBs
b25nIGxvbmcgaW50CnN0cnRvdXEgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsIGNo
YXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICBpbnQgX19iYXNlKQp7CiAgcmV0dXJu
IF9fc3RydG91bGxfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIsIF9fYmFzZSwgMCk7Cn0KCgoK
X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIGludApzdHJ0b2xsIChfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwK
ICAgICAgICAgaW50IF9fYmFzZSkKewogIHJldHVybiBfX3N0cnRvbGxfaW50ZXJuYWwgKF9fbnB0
ciwgX19lbmRwdHIsIF9fYmFzZSwgMCk7Cn0KX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg
dW5zaWduZWQgbG9uZyBsb25nIGludApzdHJ0b3VsbCAoX19jb25zdCBjaGFyICogX19yZXN0cmlj
dCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICAgaW50IF9fYmFz
ZSkKewogIHJldHVybiBfX3N0cnRvdWxsX2ludGVybmFsIChfX25wdHIsIF9fZW5kcHRyLCBfX2Jh
c2UsIDApOwp9CgoKZXh0ZXJuIF9faW5saW5lIGRvdWJsZQphdG9mIChfX2NvbnN0IGNoYXIgKl9f
bnB0cikKewogIHJldHVybiBzdHJ0b2QgKF9fbnB0ciwgKGNoYXIgKiopICgodm9pZCAqKTApKTsK
fQpleHRlcm4gX19pbmxpbmUgaW50CmF0b2kgKF9fY29uc3QgY2hhciAqX19ucHRyKQp7CiAgcmV0
dXJuIChpbnQpIHN0cnRvbCAoX19ucHRyLCAoY2hhciAqKikgKCh2b2lkICopMCksIDEwKTsKfQpl
eHRlcm4gX19pbmxpbmUgbG9uZyBpbnQKYXRvbCAoX19jb25zdCBjaGFyICpfX25wdHIpCnsKICBy
ZXR1cm4gc3RydG9sIChfX25wdHIsIChjaGFyICoqKSAoKHZvaWQgKikwKSwgMTApOwp9CgoKX19l
eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIGludAphdG9sbCAoX19jb25zdCBj
aGFyICpfX25wdHIpCnsKICByZXR1cm4gc3RydG9sbCAoX19ucHRyLCAoY2hhciAqKikgKCh2b2lk
ICopMCksIDEwKTsKfQojIDM4NCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVy
biBjaGFyICpsNjRhIChsb25nIGludCBfX24pIDsKCgpleHRlcm4gbG9uZyBpbnQgYTY0bCAoX19j
b25zdCBjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwojIDM5NyAiL3Vzci9s
b2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBsb25nIGludCByYW5kb20gKHZvaWQpIDsK
CgpleHRlcm4gdm9pZCBzcmFuZG9tICh1bnNpZ25lZCBpbnQgX19zZWVkKSA7CgoKCgoKZXh0ZXJu
IGNoYXIgKmluaXRzdGF0ZSAodW5zaWduZWQgaW50IF9fc2VlZCwgY2hhciAqX19zdGF0ZWJ1ZiwK
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc3RhdGVsZW4pIDsKCgoKZXh0ZXJuIGNo
YXIgKnNldHN0YXRlIChjaGFyICpfX3N0YXRlYnVmKSA7CgoKCgoKCgpzdHJ1Y3QgcmFuZG9tX2Rh
dGEKICB7CiAgICBpbnQzMl90ICpmcHRyOwogICAgaW50MzJfdCAqcnB0cjsKICAgIGludDMyX3Qg
KnN0YXRlOwogICAgaW50IHJhbmRfdHlwZTsKICAgIGludCByYW5kX2RlZzsKICAgIGludCByYW5k
X3NlcDsKICAgIGludDMyX3QgKmVuZF9wdHI7CiAgfTsKCmV4dGVybiBpbnQgcmFuZG9tX3IgKHN0
cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1ZiwKICAgICAgICAgICAgICAgICAgICAg
aW50MzJfdCAqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKZXh0ZXJuIGludCBzcmFuZG9tX3IgKHVu
c2lnbmVkIGludCBfX3NlZWQsIHN0cnVjdCByYW5kb21fZGF0YSAqX19idWYpIDsKCmV4dGVybiBp
bnQgaW5pdHN0YXRlX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIgKl9fcmVzdHJpY3QgX19z
dGF0ZWJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc3RhdGVsZW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBfX2J1Zikg
OwoKZXh0ZXJuIGludCBzZXRzdGF0ZV9yIChjaGFyICpfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCiAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJhbmRvbV9kYXRhICpfX3Jlc3RyaWN0IF9fYnVm
KSA7CgoKCgoKZXh0ZXJuIGludCByYW5kICh2b2lkKSA7CgpleHRlcm4gdm9pZCBzcmFuZCAodW5z
aWduZWQgaW50IF9fc2VlZCkgOwoKCgpleHRlcm4gaW50IHJhbmRfciAodW5zaWduZWQgaW50ICpf
X3NlZWQpIDsKCgoKCgoKCmV4dGVybiBkb3VibGUgZHJhbmQ0OCAodm9pZCkgOwpleHRlcm4gZG91
YmxlIGVyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKSA7CgoKZXh0ZXJuIGxv
bmcgaW50IGxyYW5kNDggKHZvaWQpIDsKZXh0ZXJuIGxvbmcgaW50IG5yYW5kNDggKHVuc2lnbmVk
IHNob3J0IGludCBfX3hzdWJpWzNdKSA7CgoKZXh0ZXJuIGxvbmcgaW50IG1yYW5kNDggKHZvaWQp
IDsKZXh0ZXJuIGxvbmcgaW50IGpyYW5kNDggKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNd
KSA7CgoKZXh0ZXJuIHZvaWQgc3JhbmQ0OCAobG9uZyBpbnQgX19zZWVkdmFsKSA7CmV4dGVybiB1
bnNpZ25lZCBzaG9ydCBpbnQgKnNlZWQ0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlsz
XSkgOwpleHRlcm4gdm9pZCBsY29uZzQ4ICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3XSkg
OwoKCgoKCnN0cnVjdCBkcmFuZDQ4X2RhdGEKICB7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX194
WzNdOwogICAgdW5zaWduZWQgc2hvcnQgaW50IF9fb2xkX3hbM107CiAgICB1bnNpZ25lZCBzaG9y
dCBpbnQgX19jOwogICAgdW5zaWduZWQgc2hvcnQgaW50IF9faW5pdDsKICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgX19hOwogIH07CgoKZXh0ZXJuIGludCBkcmFuZDQ4X3IgKHN0cnVjdCBkcmFu
ZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGUgKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKZXh0ZXJuIGludCBlcmFuZDQ4X3IgKHVuc2lnbmVk
IHNob3J0IGludCBfX3hzdWJpWzNdLAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRyYW5k
NDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgIGRvdWJs
ZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKCmV4dGVybiBpbnQgbHJhbmQ0OF9yIChzdHJ1Y3Qg
ZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAg
bG9uZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKZXh0ZXJuIGludCBucmFuZDQ4X3IgKHVu
c2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdLAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAg
IGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSA7CgoKZXh0ZXJuIGludCBtcmFuZDQ4X3Ig
KHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCiAgICAgICAgICAgICAg
ICAgICAgICBsb25nIGludCAqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwpleHRlcm4gaW50IGpyYW5k
NDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCiAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAogICAgICAgICAgICAg
ICAgICAgICAgbG9uZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsKCgpleHRlcm4gaW50IHNy
YW5kNDhfciAobG9uZyBpbnQgX19zZWVkdmFsLCBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZl
cikKICAgICA7CgpleHRlcm4gaW50IHNlZWQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVk
MTZ2WzNdLAogICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZl
cikgOwoKZXh0ZXJuIGludCBsY29uZzQ4X3IgKHVuc2lnbmVkIHNob3J0IGludCBfX3BhcmFtWzdd
LAogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpIDsK
IyA1MjcgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gdm9pZCAqbWFsbG9j
IChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpOwoKZXh0ZXJuIHZv
aWQgKmNhbGxvYyAoc2l6ZV90IF9fbm1lbWIsIHNpemVfdCBfX3NpemUpCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbWFsbG9jX18pKTsKCgoKCgpleHRlcm4gdm9pZCAqcmVhbGxvYyAodm9pZCAqX19w
dHIsIHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7CgpleHRlcm4g
dm9pZCBmcmVlICh2b2lkICpfX3B0cikgOwoKCgpleHRlcm4gdm9pZCBjZnJlZSAodm9pZCAqX19w
dHIpIDsKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYWxsb2NhLmgiIDEgMwojIDI1ICIvdXNy
L2xvY2FsL2luY2x1ZGUvYWxsb2NhLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2Mt
bGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAyNiAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2FsbG9jYS5oIiAyIDMKCgoKCgoKCmV4dGVybiB2b2lkICphbGxvY2Eg
KHNpemVfdCBfX3NpemUpIDsKCgoKCgoKIyA1NDcgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRsaWIu
aCIgMiAzCgoKCgpleHRlcm4gdm9pZCAqdmFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0
ZV9fICgoX19tYWxsb2NfXykpOwoKCgoKZXh0ZXJuIGludCBwb3NpeF9tZW1hbGlnbiAodm9pZCAq
Kl9fbWVtcHRyLCBzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKCgoKZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpIF9fYXR0
cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgoKZXh0ZXJuIGludCBhdGV4aXQgKHZvaWQgKCpf
X2Z1bmMpICh2b2lkKSkgOwoKCgoKZXh0ZXJuIGludCBvbl9leGl0ICh2b2lkICgqX19mdW5jKSAo
aW50IF9fc3RhdHVzLCB2b2lkICpfX2FyZyksIHZvaWQgKl9fYXJnKQogICAgIDsKCgoKCgpleHRl
cm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18p
KTsKCgoKCmV4dGVybiB2b2lkIF9FeGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChf
X25vcmV0dXJuX18pKTsKCgoKCmV4dGVybiBjaGFyICpnZXRlbnYgKF9fY29uc3QgY2hhciAqX19u
YW1lKSA7CgoKCmV4dGVybiBjaGFyICpfX3NlY3VyZV9nZXRlbnYgKF9fY29uc3QgY2hhciAqX19u
YW1lKSA7CgoKCgoKZXh0ZXJuIGludCBwdXRlbnYgKGNoYXIgKl9fc3RyaW5nKSA7CgoKCgoKZXh0
ZXJuIGludCBzZXRlbnYgKF9fY29uc3QgY2hhciAqX19uYW1lLCBfX2NvbnN0IGNoYXIgKl9fdmFs
dWUsIGludCBfX3JlcGxhY2UpCiAgICAgOwoKCmV4dGVybiBpbnQgdW5zZXRlbnYgKF9fY29uc3Qg
Y2hhciAqX19uYW1lKSA7CgoKCgoKCmV4dGVybiBpbnQgY2xlYXJlbnYgKHZvaWQpIDsKIyA2MjMg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gY2hhciAqbWt0ZW1wIChjaGFy
ICpfX3RlbXBsYXRlKSA7CiMgNjM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0
ZXJuIGludCBta3N0ZW1wIChjaGFyICpfX3RlbXBsYXRlKSBfX2FzbV9fICgiIiAibWtzdGVtcDY0
Iik7CgoKCgoKZXh0ZXJuIGludCBta3N0ZW1wNjQgKGNoYXIgKl9fdGVtcGxhdGUpIDsKIyA2NTAg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gY2hhciAqbWtkdGVtcCAoY2hh
ciAqX190ZW1wbGF0ZSkgOwoKCgoKZXh0ZXJuIGludCBzeXN0ZW0gKF9fY29uc3QgY2hhciAqX19j
b21tYW5kKSA7CgoKCgoKCmV4dGVybiBjaGFyICpjYW5vbmljYWxpemVfZmlsZV9uYW1lIChfX2Nv
bnN0IGNoYXIgKl9fbmFtZSkgOwojIDY3MiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAz
CmV4dGVybiBjaGFyICpyZWFscGF0aCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fcmVzb2x2ZWQpIDsKCgoK
CgoKdHlwZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoX19jb25zdCB2b2lkICosIF9fY29uc3Qg
dm9pZCAqKTsKCgp0eXBlZGVmIF9fY29tcGFyX2ZuX3QgY29tcGFyaXNvbl9mbl90OwoKCgoKCmV4
dGVybiB2b2lkICpic2VhcmNoIChfX2NvbnN0IHZvaWQgKl9fa2V5LCBfX2NvbnN0IHZvaWQgKl9f
YmFzZSwKICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXpl
LCBfX2NvbXBhcl9mbl90IF9fY29tcGFyKTsKCgoKZXh0ZXJuIHZvaWQgcXNvcnQgKHZvaWQgKl9f
YmFzZSwgc2l6ZV90IF9fbm1lbWIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICBf
X2NvbXBhcl9mbl90IF9fY29tcGFyKTsKCgoKZXh0ZXJuIGludCBhYnMgKGludCBfX3gpIF9fYXR0
cmlidXRlX18gKChfX2NvbnN0X18pKTsKZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcgaW50IF9f
eCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKX19leHRlbnNpb25fXyBleHRlcm4gbG9u
ZyBsb25nIGludCBsbGFicyAobG9uZyBsb25nIGludCBfX3gpCiAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOwoKCgoKCgpleHRlcm4gZGl2X3QgZGl2IChpbnQgX19udW1lciwgaW50IF9f
ZGVub20pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwpleHRlcm4gbGRpdl90IGxk
aXYgKGxvbmcgaW50IF9fbnVtZXIsIGxvbmcgaW50IF9fZGVub20pCiAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fY29uc3RfXykpOwoKX19leHRlbnNpb25fXyBleHRlcm4gbGxkaXZfdCBsbGRpdiAobG9u
ZyBsb25nIGludCBfX251bWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b25nIGxvbmcgaW50IF9fZGVub20pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoj
IDcyOCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBjaGFyICplY3Z0IChk
b3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwKICAg
ICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24pIDsKCgoKCmV4dGVybiBjaGFy
ICpmY3Z0IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19k
ZWNwdCwKICAgICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24pIDsKCgoKCmV4
dGVybiBjaGFyICpnY3Z0IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBjaGFyICpfX2J1
ZikgOwoKCgoKZXh0ZXJuIGNoYXIgKnFlY3Z0IChsb25nIGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19u
ZGlnaXQsCiAgICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAq
X19yZXN0cmljdCBfX3NpZ24pIDsKZXh0ZXJuIGNoYXIgKnFmY3Z0IChsb25nIGRvdWJsZSBfX3Zh
bHVlLCBpbnQgX19uZGlnaXQsCiAgICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9f
ZGVjcHQsIGludCAqX19yZXN0cmljdCBfX3NpZ24pIDsKZXh0ZXJuIGNoYXIgKnFnY3Z0IChsb25n
IGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNoYXIgKl9fYnVmKSA7CgoKCgpleHRlcm4g
aW50IGVjdnRfciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0
IF9fZGVjcHQsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduLCBjaGFy
ICpfX3Jlc3RyaWN0IF9fYnVmLAogICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbGVuKSA7CmV4
dGVybiBpbnQgZmN2dF9yIChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVz
dHJpY3QgX19kZWNwdCwKICAgICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX3NpZ24s
IGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAgICAgICBzaXplX3QgX19sZW4p
IDsKCmV4dGVybiBpbnQgcWVjdnRfciAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0
LAogICAgICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVz
dHJpY3QgX19zaWduLAogICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYs
IHNpemVfdCBfX2xlbikgOwpleHRlcm4gaW50IHFmY3Z0X3IgKGxvbmcgZG91YmxlIF9fdmFsdWUs
IGludCBfX25kaWdpdCwKICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNw
dCwgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwKICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jl
c3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pIDsKCgoKCgoKZXh0ZXJuIGludCBtYmxlbiAoX19j
b25zdCBjaGFyICpfX3MsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gaW50IG1idG93YyAod2NoYXJf
dCAqX19yZXN0cmljdCBfX3B3YywKICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX3MsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gaW50IHdjdG9tYiAoY2hhciAqX19z
LCB3Y2hhcl90IF9fd2NoYXIpIDsKCgoKZXh0ZXJuIHNpemVfdCBtYnN0b3djcyAod2NoYXJfdCAq
X19yZXN0cmljdCBfX3B3Y3MsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24pIDsKCmV4dGVybiBzaXplX3Qgd2NzdG9tYnMgKGNo
YXIgKl9fcmVzdHJpY3QgX19zLAogICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHdjaGFy
X3QgKl9fcmVzdHJpY3QgX19wd2NzLCBzaXplX3QgX19uKQogICAgIDsKCgoKCgoKCmV4dGVybiBp
bnQgcnBtYXRjaCAoX19jb25zdCBjaGFyICpfX3Jlc3BvbnNlKSA7CiMgODA4ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGludCBnZXRzdWJvcHQgKGNoYXIgKipfX3Jlc3Ry
aWN0IF9fb3B0aW9ucCwKICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fY29uc3QgKl9fcmVz
dHJpY3QgX190b2tlbnMsCiAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBf
X3ZhbHVlcCkgOwoKCgoKCmV4dGVybiB2b2lkIHNldGtleSAoX19jb25zdCBjaGFyICpfX2tleSkg
OwoKCgoKCgoKZXh0ZXJuIGludCBwb3NpeF9vcGVucHQgKGludCBfX29mbGFnKSA7CgoKCgoKCgpl
eHRlcm4gaW50IGdyYW50cHQgKGludCBfX2ZkKSA7CgoKCmV4dGVybiBpbnQgdW5sb2NrcHQgKGlu
dCBfX2ZkKSA7CgoKCgpleHRlcm4gY2hhciAqcHRzbmFtZSAoaW50IF9fZmQpIDsKCgoKCgoKZXh0
ZXJuIGludCBwdHNuYW1lX3IgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fYnVmbGVu
KSA7CgoKZXh0ZXJuIGludCBnZXRwdCAodm9pZCkgOwoKCgoKCgpleHRlcm4gaW50IGdldGxvYWRh
dmcgKGRvdWJsZSBfX2xvYWRhdmdbXSwgaW50IF9fbmVsZW0pIDsKCgoKCgoKIyAxMDYgImluY2x1
ZGUvaW5jbHVkZXMuaCIgMgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc29ja2V0Lmgi
IDEgMwojIDI1ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzCgoKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3Vpby5oIiAxIDMKIyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5
cy91aW8uaCIgMwoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3Vpby5oIiAxIDMKIyA0
MiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvdWlvLmgiIDMKc3RydWN0IGlvdmVjCiAgewogICAg
dm9pZCAqaW92X2Jhc2U7CiAgICBzaXplX3QgaW92X2xlbjsKICB9OwojIDMwICIvdXNyL2xvY2Fs
L2luY2x1ZGUvc3lzL3Vpby5oIiAyIDMKCgoKCgoKCmV4dGVybiBzc2l6ZV90IHJlYWR2IChpbnQg
X19mZCwgX19jb25zdCBzdHJ1Y3QgaW92ZWMgKl9fdmVjdG9yLCBpbnQgX19jb3VudCkKICAgICA7
CgoKCgoKCmV4dGVybiBzc2l6ZV90IHdyaXRldiAoaW50IF9fZmQsIF9fY29uc3Qgc3RydWN0IGlv
dmVjICpfX3ZlY3RvciwgaW50IF9fY291bnQpCiAgICAgOwoKCiMgMjggIi91c3IvbG9jYWwvaW5j
bHVkZS9zeXMvc29ja2V0LmgiIDIgMwoKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGli
L2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzMCAiL3Vzci9s
b2NhbC9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMiAzCgoKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvYml0cy9zb2NrZXQuaCIgMSAzCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NvY2tl
dC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
dS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzAgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRz
L3NvY2tldC5oIiAyIDMKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAxIDMKIyAz
MiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDIgMwojIDQxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMwplbnVtIF9fc29ja2V0X3R5cGUKewogIFNPQ0tfU1RS
RUFNID0gMSwKCgogIFNPQ0tfREdSQU0gPSAyLAoKCiAgU09DS19SQVcgPSAzLAoKICBTT0NLX1JE
TSA9IDQsCgogIFNPQ0tfU0VRUEFDS0VUID0gNSwKCgogIFNPQ0tfUEFDS0VUID0gMTAKCgoKfTsK
IyAxNDIgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMSAzCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9i
aXRzL3NvY2thZGRyLmgiIDMKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgc2FfZmFtaWx5X3Q7
CiMgMTQzICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zb2NrZXQuaCIgMiAzCgoKc3RydWN0IHNv
Y2thZGRyCiAgewogICAgc2FfZmFtaWx5X3Qgc2FfZmFtaWx5OwogICAgY2hhciBzYV9kYXRhWzE0
XTsKICB9OwojIDE2MiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDMKc3RydWN0
IHNvY2thZGRyX3N0b3JhZ2UKICB7CiAgICBzYV9mYW1pbHlfdCBzc19mYW1pbHk7CiAgICBfX3Vp
bnQzMl90IF9fc3NfYWxpZ247CiAgICBjaGFyIF9fc3NfcGFkZGluZ1soMTI4IC0gKDIgKiBzaXpl
b2YgKF9fdWludDMyX3QpKSldOwogIH07CgoKCmVudW0KICB7CiAgICBNU0dfT09CID0gMHgwMSwK
CiAgICBNU0dfUEVFSyA9IDB4MDIsCgogICAgTVNHX0RPTlRST1VURSA9IDB4MDQsCgoKCiAgICBN
U0dfVFJZSEFSRCA9IE1TR19ET05UUk9VVEUsCgoKICAgIE1TR19DVFJVTkMgPSAweDA4LAoKICAg
IE1TR19QUk9YWSA9IDB4MTAsCgogICAgTVNHX1RSVU5DID0gMHgyMCwKCiAgICBNU0dfRE9OVFdB
SVQgPSAweDQwLAoKICAgIE1TR19FT1IgPSAweDgwLAoKICAgIE1TR19XQUlUQUxMID0gMHgxMDAs
CgogICAgTVNHX0ZJTiA9IDB4MjAwLAoKICAgIE1TR19TWU4gPSAweDQwMCwKCiAgICBNU0dfQ09O
RklSTSA9IDB4ODAwLAoKICAgIE1TR19SU1QgPSAweDEwMDAsCgogICAgTVNHX0VSUlFVRVVFID0g
MHgyMDAwLAoKICAgIE1TR19OT1NJR05BTCA9IDB4NDAwMCwKCiAgICBNU0dfTU9SRSA9IDB4ODAw
MAoKICB9OwoKCgoKc3RydWN0IG1zZ2hkcgogIHsKICAgIHZvaWQgKm1zZ19uYW1lOwogICAgc29j
a2xlbl90IG1zZ19uYW1lbGVuOwoKICAgIHN0cnVjdCBpb3ZlYyAqbXNnX2lvdjsKICAgIGludCBt
c2dfaW92bGVuOwoKICAgIHZvaWQgKm1zZ19jb250cm9sOwogICAgc29ja2xlbl90IG1zZ19jb250
cm9sbGVuOwoKICAgIGludCBtc2dfZmxhZ3M7CiAgfTsKCgpzdHJ1Y3QgY21zZ2hkcgogIHsKICAg
IHNpemVfdCBjbXNnX2xlbjsKCiAgICBpbnQgY21zZ19sZXZlbDsKICAgIGludCBjbXNnX3R5cGU7
CgogICAgX19leHRlbnNpb25fXyB1bnNpZ25lZCBjaGFyIF9fY21zZ19kYXRhIFtdOwoKICB9Owoj
IDI1NyAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDMKZXh0ZXJuIHN0cnVjdCBj
bXNnaGRyICpfX2Ntc2dfbnh0aGRyIChzdHJ1Y3QgbXNnaGRyICpfX21oZHIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNtc2doZHIgKl9fY21zZykgOwoKCgoK
ZXh0ZXJuIF9faW5saW5lIHN0cnVjdCBjbXNnaGRyICoKX19jbXNnX254dGhkciAoc3RydWN0IG1z
Z2hkciAqX19taGRyLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgaWYgKChzaXplX3QpIF9f
Y21zZy0+Y21zZ19sZW4gPCBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkKCiAgICByZXR1cm4gMDsK
CiAgX19jbXNnID0gKHN0cnVjdCBjbXNnaGRyICopICgodW5zaWduZWQgY2hhciAqKSBfX2Ntc2cK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKCgoX19jbXNnLT5jbXNnX2xlbikgKyBz
aXplb2YgKHNpemVfdCkgLSAxKSAmIChzaXplX3QpIH4oc2l6ZW9mIChzaXplX3QpIC0gMSkpKTsK
ICBpZiAoKHVuc2lnbmVkIGNoYXIgKikgKF9fY21zZyArIDEpID4gKCh1bnNpZ25lZCBjaGFyICop
IF9fbWhkci0+bXNnX2NvbnRyb2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICsgX19taGRyLT5tc2dfY29udHJvbGxlbikKICAgICAgfHwgKCh1bnNpZ25lZCBjaGFyICop
IF9fY21zZyArICgoKF9fY21zZy0+Y21zZ19sZW4pICsgc2l6ZW9mIChzaXplX3QpIC0gMSkgJiAo
c2l6ZV90KSB+KHNpemVvZiAoc2l6ZV90KSAtIDEpKQogICAgICAgICAgPiAoKHVuc2lnbmVkIGNo
YXIgKikgX19taGRyLT5tc2dfY29udHJvbCArIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4pKSkKCiAg
ICByZXR1cm4gMDsKICByZXR1cm4gX19jbXNnOwp9CgoKCgplbnVtCiAgewogICAgU0NNX1JJR0hU
UyA9IDB4MDEsCgoKICAgIFNDTV9DUkVERU5USUFMUyA9IDB4MDIsCgoKICAgIF9fU0NNX0NPTk5F
Q1QgPSAweDAzCiAgfTsKCgoKc3RydWN0IHVjcmVkCnsKICBwaWRfdCBwaWQ7CiAgdWlkX3QgdWlk
OwogIGdpZF90IGdpZDsKfTsKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9hc20vc29ja2V0Lmgi
IDEgMwoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9hc20vc29ja2lvcy5oIiAxIDMKIyA1ICIv
dXNyL2xvY2FsL2luY2x1ZGUvYXNtL3NvY2tldC5oIiAyIDMKIyAzMDYgIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL3NvY2tldC5oIiAyIDMKCgoKc3RydWN0IGxpbmdlcgogIHsKICAgIGludCBsX29u
b2ZmOwogICAgaW50IGxfbGluZ2VyOwogIH07CiMgMzYgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMv
c29ja2V0LmgiIDIgMwoKCgoKc3RydWN0IG9zb2NrYWRkcgogIHsKICAgIHVuc2lnbmVkIHNob3J0
IGludCBzYV9mYW1pbHk7CiAgICB1bnNpZ25lZCBjaGFyIHNhX2RhdGFbMTRdOwogIH07CgoKCgpl
bnVtCnsKICBTSFVUX1JEID0gMCwKCiAgU0hVVF9XUiwKCiAgU0hVVF9SRFdSCgp9OwojIDg3ICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzCnR5cGVkZWYgdW5pb24geyBzdHJ1Y3Qg
c29ja2FkZHIgKl9fcmVzdHJpY3QgX19zb2NrYWRkcl9fOyBzdHJ1Y3Qgc29ja2FkZHJfYXQgKl9f
cmVzdHJpY3QgX19zb2NrYWRkcl9hdF9fOyBzdHJ1Y3Qgc29ja2FkZHJfYXgyNSAqX19yZXN0cmlj
dCBfX3NvY2thZGRyX2F4MjVfXzsgc3RydWN0IHNvY2thZGRyX2RsICpfX3Jlc3RyaWN0IF9fc29j
a2FkZHJfZGxfXzsgc3RydWN0IHNvY2thZGRyX2VvbiAqX19yZXN0cmljdCBfX3NvY2thZGRyX2Vv
bl9fOyBzdHJ1Y3Qgc29ja2FkZHJfaW4gKl9fcmVzdHJpY3QgX19zb2NrYWRkcl9pbl9fOyBzdHJ1
Y3Qgc29ja2FkZHJfaW42ICpfX3Jlc3RyaWN0IF9fc29ja2FkZHJfaW42X187IHN0cnVjdCBzb2Nr
YWRkcl9pbmFycCAqX19yZXN0cmljdCBfX3NvY2thZGRyX2luYXJwX187IHN0cnVjdCBzb2NrYWRk
cl9pcHggKl9fcmVzdHJpY3QgX19zb2NrYWRkcl9pcHhfXzsgc3RydWN0IHNvY2thZGRyX2lzbyAq
X19yZXN0cmljdCBfX3NvY2thZGRyX2lzb19fOyBzdHJ1Y3Qgc29ja2FkZHJfbnMgKl9fcmVzdHJp
Y3QgX19zb2NrYWRkcl9uc19fOyBzdHJ1Y3Qgc29ja2FkZHJfdW4gKl9fcmVzdHJpY3QgX19zb2Nr
YWRkcl91bl9fOyBzdHJ1Y3Qgc29ja2FkZHJfeDI1ICpfX3Jlc3RyaWN0IF9fc29ja2FkZHJfeDI1
X187CiAgICAgICAgICAgICAgfSBfX1NPQ0tBRERSX0FSRyBfX2F0dHJpYnV0ZV9fICgoX190cmFu
c3BhcmVudF91bmlvbl9fKSk7CgoKdHlwZWRlZiB1bmlvbiB7IF9fY29uc3Qgc3RydWN0IHNvY2th
ZGRyICpfX3Jlc3RyaWN0IF9fc29ja2FkZHJfXzsgX19jb25zdCBzdHJ1Y3Qgc29ja2FkZHJfYXQg
Kl9fcmVzdHJpY3QgX19zb2NrYWRkcl9hdF9fOyBfX2NvbnN0IHN0cnVjdCBzb2NrYWRkcl9heDI1
ICpfX3Jlc3RyaWN0IF9fc29ja2FkZHJfYXgyNV9fOyBfX2NvbnN0IHN0cnVjdCBzb2NrYWRkcl9k
bCAqX19yZXN0cmljdCBfX3NvY2thZGRyX2RsX187IF9fY29uc3Qgc3RydWN0IHNvY2thZGRyX2Vv
biAqX19yZXN0cmljdCBfX3NvY2thZGRyX2Vvbl9fOyBfX2NvbnN0IHN0cnVjdCBzb2NrYWRkcl9p
biAqX19yZXN0cmljdCBfX3NvY2thZGRyX2luX187IF9fY29uc3Qgc3RydWN0IHNvY2thZGRyX2lu
NiAqX19yZXN0cmljdCBfX3NvY2thZGRyX2luNl9fOyBfX2NvbnN0IHN0cnVjdCBzb2NrYWRkcl9p
bmFycCAqX19yZXN0cmljdCBfX3NvY2thZGRyX2luYXJwX187IF9fY29uc3Qgc3RydWN0IHNvY2th
ZGRyX2lweCAqX19yZXN0cmljdCBfX3NvY2thZGRyX2lweF9fOyBfX2NvbnN0IHN0cnVjdCBzb2Nr
YWRkcl9pc28gKl9fcmVzdHJpY3QgX19zb2NrYWRkcl9pc29fXzsgX19jb25zdCBzdHJ1Y3Qgc29j
a2FkZHJfbnMgKl9fcmVzdHJpY3QgX19zb2NrYWRkcl9uc19fOyBfX2NvbnN0IHN0cnVjdCBzb2Nr
YWRkcl91biAqX19yZXN0cmljdCBfX3NvY2thZGRyX3VuX187IF9fY29uc3Qgc3RydWN0IHNvY2th
ZGRyX3gyNSAqX19yZXN0cmljdCBfX3NvY2thZGRyX3gyNV9fOwogICAgICAgICAgICAgIH0gX19D
T05TVF9TT0NLQUREUl9BUkcgX19hdHRyaWJ1dGVfXyAoKF9fdHJhbnNwYXJlbnRfdW5pb25fXykp
OwoKCgoKCgoKZXh0ZXJuIGludCBzb2NrZXQgKGludCBfX2RvbWFpbiwgaW50IF9fdHlwZSwgaW50
IF9fcHJvdG9jb2wpIDsKCgoKCgpleHRlcm4gaW50IHNvY2tldHBhaXIgKGludCBfX2RvbWFpbiwg
aW50IF9fdHlwZSwgaW50IF9fcHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgaW50IF9f
ZmRzWzJdKSA7CgoKZXh0ZXJuIGludCBiaW5kIChpbnQgX19mZCwgX19DT05TVF9TT0NLQUREUl9B
UkcgX19hZGRyLCBzb2NrbGVuX3QgX19sZW4pCiAgICAgOwoKCmV4dGVybiBpbnQgZ2V0c29ja25h
bWUgKGludCBfX2ZkLCBfX1NPQ0tBRERSX0FSRyBfX2FkZHIsCiAgICAgICAgICAgICAgICAgICAg
ICAgIHNvY2tsZW5fdCAqX19yZXN0cmljdCBfX2xlbikgOwoKCgoKCmV4dGVybiBpbnQgY29ubmVj
dCAoaW50IF9fZmQsIF9fQ09OU1RfU09DS0FERFJfQVJHIF9fYWRkciwgc29ja2xlbl90IF9fbGVu
KQogICAgIDsKCgoKZXh0ZXJuIGludCBnZXRwZWVybmFtZSAoaW50IF9fZmQsIF9fU09DS0FERFJf
QVJHIF9fYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0
IF9fbGVuKSA7CgoKCmV4dGVybiBzc2l6ZV90IHNlbmQgKGludCBfX2ZkLCBfX2NvbnN0IHZvaWQg
Kl9fYnVmLCBzaXplX3QgX19uLCBpbnQgX19mbGFncykKICAgICA7CgoKCmV4dGVybiBzc2l6ZV90
IHJlY3YgKGludCBfX2ZkLCB2b2lkICpfX2J1Ziwgc2l6ZV90IF9fbiwgaW50IF9fZmxhZ3MpCiAg
ICAgOwoKCgpleHRlcm4gc3NpemVfdCBzZW5kdG8gKGludCBfX2ZkLCBfX2NvbnN0IHZvaWQgKl9f
YnVmLCBzaXplX3QgX19uLAogICAgICAgICAgICAgICAgICAgICAgIGludCBfX2ZsYWdzLCBfX0NP
TlNUX1NPQ0tBRERSX0FSRyBfX2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgc29ja2xlbl90
IF9fYWRkcl9sZW4pIDsKCgoKCgpleHRlcm4gc3NpemVfdCByZWN2ZnJvbSAoaW50IF9fZmQsIHZv
aWQgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX24sIGludCBfX2ZsYWdzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgX19TT0NLQUREUl9BUkcgX19hZGRyLCBzb2NrbGVuX3QgKl9fcmVzdHJp
Y3QgX19hZGRyX2xlbikKICAgICA7CgoKCgpleHRlcm4gc3NpemVfdCBzZW5kbXNnIChpbnQgX19m
ZCwgX19jb25zdCBzdHJ1Y3QgbXNnaGRyICpfX21lc3NhZ2UsIGludCBfX2ZsYWdzKQogICAgIDsK
CgoKZXh0ZXJuIHNzaXplX3QgcmVjdm1zZyAoaW50IF9fZmQsIHN0cnVjdCBtc2doZHIgKl9fbWVz
c2FnZSwgaW50IF9fZmxhZ3MpCiAgICAgOwoKCgoKCmV4dGVybiBpbnQgZ2V0c29ja29wdCAoaW50
IF9fZmQsIGludCBfX2xldmVsLCBpbnQgX19vcHRuYW1lLAogICAgICAgICAgICAgICAgICAgICAg
IHZvaWQgKl9fcmVzdHJpY3QgX19vcHR2YWwsCiAgICAgICAgICAgICAgICAgICAgICAgc29ja2xl
bl90ICpfX3Jlc3RyaWN0IF9fb3B0bGVuKSA7CgoKCgpleHRlcm4gaW50IHNldHNvY2tvcHQgKGlu
dCBfX2ZkLCBpbnQgX19sZXZlbCwgaW50IF9fb3B0bmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICBfX2NvbnN0IHZvaWQgKl9fb3B0dmFsLCBzb2NrbGVuX3QgX19vcHRsZW4pIDsKCgoKCgpleHRl
cm4gaW50IGxpc3RlbiAoaW50IF9fZmQsIGludCBfX24pIDsKCgoKCgoKZXh0ZXJuIGludCBhY2Nl
cHQgKGludCBfX2ZkLCBfX1NPQ0tBRERSX0FSRyBfX2FkZHIsCiAgICAgICAgICAgICAgICAgICBz
b2NrbGVuX3QgKl9fcmVzdHJpY3QgX19hZGRyX2xlbikKICAgICA7CgoKCgoKCgpleHRlcm4gaW50
IHNodXRkb3duIChpbnQgX19mZCwgaW50IF9faG93KSA7CgoKCgpleHRlcm4gaW50IHNvY2thdG1h
cmsgKGludCBfX2ZkKSA7CgoKCgoKCgpleHRlcm4gaW50IGlzZmR0eXBlIChpbnQgX19mZCwgaW50
IF9fZmR0eXBlKSA7CgoKCiMgMTEwICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3VuLmgiIDEgMwojIDI3ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lz
L3VuLmgiIDMKCgoKc3RydWN0IHNvY2thZGRyX3VuCiAgewogICAgc2FfZmFtaWx5X3Qgc3VuX2Zh
bWlseTsKICAgIGNoYXIgc3VuX3BhdGhbMTA4XTsKICB9OwoKCgojIDEgIi91c3IvbG9jYWwvaW5j
bHVkZS9zdHJpbmcuaCIgMSAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIgMwoK
CgoKCiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8z
LjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMzQgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcu
aCIgMiAzCgoKCmV4dGVybiB2b2lkICptZW1jcHkgKHZvaWQgKl9fcmVzdHJpY3QgX19kZXN0LAog
ICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVf
dCBfX24pIDsKCgpleHRlcm4gdm9pZCAqbWVtbW92ZSAodm9pZCAqX19kZXN0LCBfX2NvbnN0IHZv
aWQgKl9fc3JjLCBzaXplX3QgX19uKQogICAgIDsKCgoKCgpleHRlcm4gdm9pZCAqbWVtY2NweSAo
dm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywK
ICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MsIHNpemVfdCBfX24pCiAgICAgOwoKCgoKZXh0
ZXJuIHZvaWQgKm1lbXNldCAodm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKSA7CgoKZXh0
ZXJuIGludCBtZW1jbXAgKF9fY29uc3Qgdm9pZCAqX19zMSwgX19jb25zdCB2b2lkICpfX3MyLCBz
aXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCmV4dGVybiB2b2lk
ICptZW1jaHIgKF9fY29uc3Qgdm9pZCAqX19zLCBpbnQgX19jLCBzaXplX3QgX19uKQogICAgICBf
X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgoKCmV4dGVybiB2b2lkICpyYXdtZW1jaHIgKF9f
Y29uc3Qgdm9pZCAqX19zLCBpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgpl
eHRlcm4gdm9pZCAqbWVtcmNociAoX19jb25zdCB2b2lkICpfX3MsIGludCBfX2MsIHNpemVfdCBf
X24pCiAgICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCgoKZXh0ZXJuIGNoYXIgKnN0
cmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3NyYykKICAgICA7CgpleHRlcm4gY2hhciAqc3RybmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rl
c3QsCiAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMs
IHNpemVfdCBfX24pIDsKCgpleHRlcm4gY2hhciAqc3RyY2F0IChjaGFyICpfX3Jlc3RyaWN0IF9f
ZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQogICAgIDsKCmV4dGVybiBjaGFy
ICpzdHJuY2F0IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fc3JjLAogICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbikgOwoKCmV4dGVybiBp
bnQgc3RyY21wIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19zMikKICAgICBf
X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCmV4dGVybiBpbnQgc3RybmNtcCAoX19jb25zdCBj
aGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fcHVyZV9fKSk7CgoKZXh0ZXJuIGludCBzdHJjb2xsIChfX2NvbnN0IGNoYXIgKl9f
czEsIF9fY29uc3QgY2hhciAqX19zMikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsK
CmV4dGVybiBzaXplX3Qgc3RyeGZybSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19u
KSA7CiMgMTExICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIGludCBfX3N0
cmNvbGxfbCAoX19jb25zdCBjaGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIsIF9fbG9jYWxl
X3QgX19sKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIHNpemVfdCBf
X3N0cnhmcm1fbCAoY2hhciAqX19kZXN0LCBfX2NvbnN0IGNoYXIgKl9fc3JjLCBzaXplX3QgX19u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2xvY2FsZV90IF9fbCkgOwoKCgoKZXh0ZXJu
IGNoYXIgKnN0cmR1cCAoX19jb25zdCBjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChfX21hbGxv
Y19fKSk7CgoKCgoKCmV4dGVybiBjaGFyICpzdHJuZHVwIChfX2NvbnN0IGNoYXIgKl9fc3RyaW5n
LCBzaXplX3QgX19uKQogICAgIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7CiMgMTU1ICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIGNoYXIgKnN0cmNociAoX19jb25z
dCBjaGFyICpfX3MsIGludCBfX2MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJu
IGNoYXIgKnN0cnJjaHIgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19jKSBfX2F0dHJpYnV0ZV9f
ICgoX19wdXJlX18pKTsKCgoKCmV4dGVybiBjaGFyICpzdHJjaHJudWwgKF9fY29uc3QgY2hhciAq
X19zLCBpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgoKCmV4dGVybiBzaXpl
X3Qgc3RyY3NwbiAoX19jb25zdCBjaGFyICpfX3MsIF9fY29uc3QgY2hhciAqX19yZWplY3QpCiAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgoKZXh0ZXJuIHNpemVfdCBzdHJzcG4gKF9f
Y29uc3QgY2hhciAqX19zLCBfX2NvbnN0IGNoYXIgKl9fYWNjZXB0KQogICAgIF9fYXR0cmlidXRl
X18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIGNoYXIgKnN0cnBicmsgKF9fY29uc3QgY2hhciAqX19z
LCBfX2NvbnN0IGNoYXIgKl9fYWNjZXB0KQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykp
OwoKZXh0ZXJuIGNoYXIgKnN0cnN0ciAoX19jb25zdCBjaGFyICpfX2hheXN0YWNrLCBfX2NvbnN0
IGNoYXIgKl9fbmVlZGxlKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCgpleHRl
cm4gY2hhciAqc3RyY2FzZXN0ciAoX19jb25zdCBjaGFyICpfX2hheXN0YWNrLCBfX2NvbnN0IGNo
YXIgKl9fbmVlZGxlKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCgpleHRlcm4g
Y2hhciAqc3RydG9rIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZGVsaW0pCiAgICAgOwoKCgpleHRlcm4gY2hhciAqX19zdHJ0b2tfciAoY2hhciAqX19y
ZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19kZWxpbSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0
IF9fc2F2ZV9wdHIpIDsKCmV4dGVybiBjaGFyICpzdHJ0b2tfciAoY2hhciAqX19yZXN0cmljdCBf
X3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2RlbGltLAogICAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fc2F2ZV9wdHIpIDsKCgoKCgoKZXh0ZXJuIHZvaWQgKm1l
bW1lbSAoX19jb25zdCB2b2lkICpfX2hheXN0YWNrLCBzaXplX3QgX19oYXlzdGFja2xlbiwKICAg
ICAgICAgICAgICAgICAgICAgX19jb25zdCB2b2lkICpfX25lZWRsZSwgc2l6ZV90IF9fbmVlZGxl
bGVuKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCgpleHRlcm4gdm9pZCAqX19t
ZW1wY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
X19jb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKSA7CmV4dGVybiB2b2lk
ICptZW1wY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwKICAgICAgICAgICAgICAgICAgICAg
IF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikgOwoKCgoKZXh0ZXJu
IHNpemVfdCBzdHJsZW4gKF9fY29uc3QgY2hhciAqX19zKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl
X18pKTsKCgoKCmV4dGVybiBzaXplX3Qgc3RybmxlbiAoX19jb25zdCBjaGFyICpfX3N0cmluZywg
c2l6ZV90IF9fbWF4bGVuKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKCgoKZXh0
ZXJuIGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0pIDsKCgoKZXh0ZXJuIGNoYXIgKnN0cmVy
cm9yX3IgKGludCBfX2Vycm51bSwgY2hhciAqX19idWYsIHNpemVfdCBfX2J1ZmxlbikgOwoKCgoK
ZXh0ZXJuIHZvaWQgX19iemVybyAodm9pZCAqX19zLCBzaXplX3QgX19uKSA7CgoKCmV4dGVybiB2
b2lkIGJjb3B5IChfX2NvbnN0IHZvaWQgKl9fc3JjLCB2b2lkICpfX2Rlc3QsIHNpemVfdCBfX24p
IDsKCgpleHRlcm4gdm9pZCBiemVybyAodm9pZCAqX19zLCBzaXplX3QgX19uKSA7CgoKZXh0ZXJu
IGludCBiY21wIChfX2NvbnN0IHZvaWQgKl9fczEsIF9fY29uc3Qgdm9pZCAqX19zMiwgc2l6ZV90
IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgpleHRlcm4gY2hhciAqaW5k
ZXggKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p
KTsKCgpleHRlcm4gY2hhciAqcmluZGV4IChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYykgX19h
dHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgoKCmV4dGVybiBpbnQgZmZzIChpbnQgX19pKSBfX2F0
dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKCgpleHRlcm4gaW50IGZmc2wgKGxvbmcgaW50IF9f
bCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKX19leHRlbnNpb25fXyBleHRlcm4gaW50
IGZmc2xsIChsb25nIGxvbmcgaW50IF9fbGwpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3Rf
XykpOwoKCgoKZXh0ZXJuIGludCBzdHJjYXNlY21wIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29u
c3QgY2hhciAqX19zMikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgpleHRlcm4g
aW50IHN0cm5jYXNlY21wIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19zMiwg
c2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgoKCgpleHRlcm4g
aW50IF9fc3RyY2FzZWNtcF9sIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19z
MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19sb2NhbGVfdCBfX2xvYykgX19hdHRyaWJ1
dGVfXyAoKF9fcHVyZV9fKSk7CgpleHRlcm4gaW50IF9fc3RybmNhc2VjbXBfbCAoX19jb25zdCBj
aGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgX19uLCBfX2xvY2FsZV90IF9fbG9jKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1
cmVfXykpOwoKCgoKCmV4dGVybiBjaGFyICpzdHJzZXAgKGNoYXIgKipfX3Jlc3RyaWN0IF9fc3Ry
aW5ncCwKICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVs
aW0pIDsKCgoKCmV4dGVybiBpbnQgc3RydmVyc2NtcCAoX19jb25zdCBjaGFyICpfX3MxLCBfX2Nv
bnN0IGNoYXIgKl9fczIpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgoKZXh0ZXJu
IGNoYXIgKnN0cnNpZ25hbCAoaW50IF9fc2lnKSA7CgoKZXh0ZXJuIGNoYXIgKl9fc3RwY3B5IChj
aGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQog
ICAgIDsKZXh0ZXJuIGNoYXIgKnN0cGNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKICAgICA7CgoKCmV4dGVybiBjaGFyICpfX3N0cG5j
cHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAgICAgICAgICAgICAgICAgICBfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24pIDsKZXh0ZXJuIGNoYXIgKnN0
cG5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAgICAgICAgICAgICAgICAgX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKSA7CgoKZXh0ZXJuIGNoYXIg
KnN0cmZyeSAoY2hhciAqX19zdHJpbmcpIDsKCgpleHRlcm4gdm9pZCAqbWVtZnJvYiAodm9pZCAq
X19zLCBzaXplX3QgX19uKSA7CgoKCgoKCmV4dGVybiBjaGFyICpiYXNlbmFtZSAoX19jb25zdCBj
aGFyICpfX2ZpbGVuYW1lKSA7CiMgMzU3ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5nLmgiIDMK
IyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zdHJpbmcuaCIgMSAzCiMgMzU4ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3RyaW5nLmgiIDIgMwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMv
c3RyaW5nMi5oIiAxIDMKIyAyMjEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIg
MwpleHRlcm4gX19pbmxpbmUgdm9pZCAqX19tZW1wY3B5X3NtYWxsICh2b2lkICosIGNoYXIsIGNo
YXIsIGNoYXIsIGNoYXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9f
dWludDE2X3QsIF9fdWludDE2X3QsIF9fdWludDMyX3QsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fdWludDMyX3QsIHNpemVfdCk7CmV4dGVybiBfX2lubGluZSB2b2lk
ICoKX19tZW1wY3B5X3NtYWxsICh2b2lkICpfX2Rlc3QxLAogICAgICAgICAgICAgICAgIGNoYXIg
X19zcmMwXzEsIGNoYXIgX19zcmMyXzEsIGNoYXIgX19zcmM0XzEsIGNoYXIgX19zcmM2XzEsCiAg
ICAgICAgICAgICAgICAgX191aW50MTZfdCBfX3NyYzBfMiwgX191aW50MTZfdCBfX3NyYzRfMiwK
ICAgICAgICAgICAgICAgICBfX3VpbnQzMl90IF9fc3JjMF80LCBfX3VpbnQzMl90IF9fc3JjNF80
LAogICAgICAgICAgICAgICAgIHNpemVfdCBfX3NyY2xlbikKewogIHVuaW9uIHsKICAgIF9fdWlu
dDMyX3QgX191aTsKICAgIF9fdWludDE2X3QgX191c2k7CiAgICB1bnNpZ25lZCBjaGFyIF9fdWM7
CiAgICB1bnNpZ25lZCBjaGFyIF9fYzsKICB9ICpfX3UgPSBfX2Rlc3QxOwogIHN3aXRjaCAoKHVu
c2lnbmVkIGludCkgX19zcmNsZW4pCiAgICB7CiAgICBjYXNlIDE6CiAgICAgIF9fdS0+X19jID0g
X19zcmMwXzE7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDEpOwog
ICAgICBicmVhazsKICAgIGNhc2UgMjoKICAgICAgX191LT5fX3VzaSA9IF9fc3JjMF8yOwogICAg
ICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAyKTsKICAgICAgYnJlYWs7CiAg
ICBjYXNlIDM6CiAgICAgIF9fdS0+X191c2kgPSBfX3NyYzBfMjsKICAgICAgX191ID0gX19leHRl
bnNpb25fXyAoKHZvaWQgKikgX191ICsgMik7CiAgICAgIF9fdS0+X19jID0gX19zcmMyXzE7CiAg
ICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDEpOwogICAgICBicmVhazsK
ICAgIGNhc2UgNDoKICAgICAgX191LT5fX3VpID0gX19zcmMwXzQ7CiAgICAgIF9fdSA9IF9fZXh0
ZW5zaW9uX18gKCh2b2lkICopIF9fdSArIDQpOwogICAgICBicmVhazsKICAgIGNhc2UgNToKICAg
ICAgX191LT5fX3VpID0gX19zcmMwXzQ7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lk
ICopIF9fdSArIDQpOwogICAgICBfX3UtPl9fYyA9IF9fc3JjNF8xOwogICAgICBfX3UgPSBfX2V4
dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAxKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDY6CiAg
ICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9p
ZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VzaSA9IF9fc3JjNF8yOwogICAgICBfX3UgPSBf
X2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAyKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDc6
CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgo
dm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VzaSA9IF9fc3JjNF8yOwogICAgICBfX3Ug
PSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAyKTsKICAgICAgX191LT5fX2MgPSBfX3Ny
YzZfMTsKICAgICAgX191ID0gX19leHRlbnNpb25fXyAoKHZvaWQgKikgX191ICsgMSk7CiAgICAg
IGJyZWFrOwogICAgY2FzZSA4OgogICAgICBfX3UtPl9fdWkgPSBfX3NyYzBfNDsKICAgICAgX191
ID0gX19leHRlbnNpb25fXyAoKHZvaWQgKikgX191ICsgNCk7CiAgICAgIF9fdS0+X191aSA9IF9f
c3JjNF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsKICAg
ICAgYnJlYWs7CiAgICB9CiAgcmV0dXJuICh2b2lkICopIF9fdTsKfQojIDM3NyAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiB2b2lkICpfX3Jhd21lbWNociAoY29u
c3Qgdm9pZCAqX19zLCBpbnQgX19jKTsKIyA0MDUgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0
cmluZzIuaCIgMwpleHRlcm4gX19pbmxpbmUgY2hhciAqX19zdHJjcHlfc21hbGwgKGNoYXIgKiwg
X191aW50MTZfdCwgX191aW50MTZfdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfX3VpbnQzMl90LCBfX3VpbnQzMl90LCBzaXplX3QpOwpleHRlcm4gX19pbmxpbmUgY2hh
ciAqCl9fc3RyY3B5X3NtYWxsIChjaGFyICpfX2Rlc3QsCiAgICAgICAgICAgICAgICBfX3VpbnQx
Nl90IF9fc3JjMF8yLCBfX3VpbnQxNl90IF9fc3JjNF8yLAogICAgICAgICAgICAgICAgX191aW50
MzJfdCBfX3NyYzBfNCwgX191aW50MzJfdCBfX3NyYzRfNCwKICAgICAgICAgICAgICAgIHNpemVf
dCBfX3NyY2xlbikKewogIHVuaW9uIHsKICAgIF9fdWludDMyX3QgX191aTsKICAgIF9fdWludDE2
X3QgX191c2k7CiAgICB1bnNpZ25lZCBjaGFyIF9fdWM7CiAgfSAqX191ID0gKHZvaWQgKikgX19k
ZXN0OwogIHN3aXRjaCAoKHVuc2lnbmVkIGludCkgX19zcmNsZW4pCiAgICB7CiAgICBjYXNlIDE6
CiAgICAgIF9fdS0+X191YyA9ICdcMCc7CiAgICAgIGJyZWFrOwogICAgY2FzZSAyOgogICAgICBf
X3UtPl9fdXNpID0gX19zcmMwXzI7CiAgICAgIGJyZWFrOwogICAgY2FzZSAzOgogICAgICBfX3Ut
Pl9fdXNpID0gX19zcmMwXzI7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9f
dSArIDIpOwogICAgICBfX3UtPl9fdWMgPSAnXDAnOwogICAgICBicmVhazsKICAgIGNhc2UgNDoK
ICAgICAgX191LT5fX3VpID0gX19zcmMwXzQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSA1OgogICAg
ICBfX3UtPl9fdWkgPSBfX3NyYzBfNDsKICAgICAgX191ID0gX19leHRlbnNpb25fXyAoKHZvaWQg
KikgX191ICsgNCk7CiAgICAgIF9fdS0+X191YyA9ICdcMCc7CiAgICAgIGJyZWFrOwogICAgY2Fz
ZSA2OgogICAgICBfX3UtPl9fdWkgPSBfX3NyYzBfNDsKICAgICAgX191ID0gX19leHRlbnNpb25f
XyAoKHZvaWQgKikgX191ICsgNCk7CiAgICAgIF9fdS0+X191c2kgPSBfX3NyYzRfMjsKICAgICAg
YnJlYWs7CiAgICBjYXNlIDc6CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3Ug
PSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VzaSA9IF9f
c3JjNF8yOwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAyKTsKICAg
ICAgX191LT5fX3VjID0gJ1wwJzsKICAgICAgYnJlYWs7CiAgICBjYXNlIDg6CiAgICAgIF9fdS0+
X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3Ug
KyA0KTsKICAgICAgX191LT5fX3VpID0gX19zcmM0XzQ7CiAgICAgIGJyZWFrOwogICAgfQogIHJl
dHVybiBfX2Rlc3Q7Cn0KIyA1NzAgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIg
MwpleHRlcm4gX19pbmxpbmUgY2hhciAqX19zdHBjcHlfc21hbGwgKGNoYXIgKiwgX191aW50MTZf
dCwgX191aW50MTZfdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3Vp
bnQzMl90LCBfX3VpbnQzMl90LCBzaXplX3QpOwpleHRlcm4gX19pbmxpbmUgY2hhciAqCl9fc3Rw
Y3B5X3NtYWxsIChjaGFyICpfX2Rlc3QsCiAgICAgICAgICAgICAgICBfX3VpbnQxNl90IF9fc3Jj
MF8yLCBfX3VpbnQxNl90IF9fc3JjNF8yLAogICAgICAgICAgICAgICAgX191aW50MzJfdCBfX3Ny
YzBfNCwgX191aW50MzJfdCBfX3NyYzRfNCwKICAgICAgICAgICAgICAgIHNpemVfdCBfX3NyY2xl
bikKewogIHVuaW9uIHsKICAgIHVuc2lnbmVkIGludCBfX3VpOwogICAgdW5zaWduZWQgc2hvcnQg
aW50IF9fdXNpOwogICAgdW5zaWduZWQgY2hhciBfX3VjOwogICAgY2hhciBfX2M7CiAgfSAqX191
ID0gKHZvaWQgKikgX19kZXN0OwogIHN3aXRjaCAoKHVuc2lnbmVkIGludCkgX19zcmNsZW4pCiAg
ICB7CiAgICBjYXNlIDE6CiAgICAgIF9fdS0+X191YyA9ICdcMCc7CiAgICAgIGJyZWFrOwogICAg
Y2FzZSAyOgogICAgICBfX3UtPl9fdXNpID0gX19zcmMwXzI7CiAgICAgIF9fdSA9IF9fZXh0ZW5z
aW9uX18gKCh2b2lkICopIF9fdSArIDEpOwogICAgICBicmVhazsKICAgIGNhc2UgMzoKICAgICAg
X191LT5fX3VzaSA9IF9fc3JjMF8yOwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAq
KSBfX3UgKyAyKTsKICAgICAgX191LT5fX3VjID0gJ1wwJzsKICAgICAgYnJlYWs7CiAgICBjYXNl
IDQ6CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9f
ICgodm9pZCAqKSBfX3UgKyAzKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDU6CiAgICAgIF9fdS0+
X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3Ug
KyA0KTsKICAgICAgX191LT5fX3VjID0gJ1wwJzsKICAgICAgYnJlYWs7CiAgICBjYXNlIDY6CiAg
ICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9p
ZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VzaSA9IF9fc3JjNF8yOwogICAgICBfX3UgPSBf
X2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAxKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIDc6
CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80OwogICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgo
dm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5fX3VzaSA9IF9fc3JjNF8yOwogICAgICBfX3Ug
PSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyAyKTsKICAgICAgX191LT5fX3VjID0gJ1ww
JzsKICAgICAgYnJlYWs7CiAgICBjYXNlIDg6CiAgICAgIF9fdS0+X191aSA9IF9fc3JjMF80Owog
ICAgICBfX3UgPSBfX2V4dGVuc2lvbl9fICgodm9pZCAqKSBfX3UgKyA0KTsKICAgICAgX191LT5f
X3VpID0gX19zcmM0XzQ7CiAgICAgIF9fdSA9IF9fZXh0ZW5zaW9uX18gKCh2b2lkICopIF9fdSAr
IDMpOwogICAgICBicmVhazsKICAgIH0KICByZXR1cm4gJl9fdS0+X19jOwp9CiMgODkzICIvdXNy
L2xvY2FsL2luY2x1ZGUvYml0cy9zdHJpbmcyLmgiIDMKZXh0ZXJuIF9faW5saW5lIHNpemVfdCBf
X3N0cmNzcG5fYzEgKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19yZWplY3QpOwpleHRlcm4gX19p
bmxpbmUgc2l6ZV90Cl9fc3RyY3Nwbl9jMSAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX3JlamVj
dCkKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9IDA7CiAgd2hpbGUgKF9fc1tfX3Jlc3Vs
dF0gIT0gJ1wwJyAmJiBfX3NbX19yZXN1bHRdICE9IF9fcmVqZWN0KQogICAgKytfX3Jlc3VsdDsK
ICByZXR1cm4gX19yZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBzaXplX3QgX19zdHJjc3BuX2My
IChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fcmVqZWN0MSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBfX3JlamVjdDIpOwpleHRlcm4gX19pbmxpbmUgc2l6ZV90Cl9f
c3RyY3Nwbl9jMiAoX19jb25zdCBjaGFyICpfX3MsIGludCBfX3JlamVjdDEsIGludCBfX3JlamVj
dDIpCnsKICByZWdpc3RlciBzaXplX3QgX19yZXN1bHQgPSAwOwogIHdoaWxlIChfX3NbX19yZXN1
bHRdICE9ICdcMCcgJiYgX19zW19fcmVzdWx0XSAhPSBfX3JlamVjdDEKICAgICAgICAgJiYgX19z
W19fcmVzdWx0XSAhPSBfX3JlamVjdDIpCiAgICArK19fcmVzdWx0OwogIHJldHVybiBfX3Jlc3Vs
dDsKfQoKZXh0ZXJuIF9faW5saW5lIHNpemVfdCBfX3N0cmNzcG5fYzMgKF9fY29uc3QgY2hhciAq
X19zLCBpbnQgX19yZWplY3QxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IF9fcmVqZWN0MiwgaW50IF9fcmVqZWN0Myk7CmV4dGVybiBfX2lubGluZSBzaXplX3QKX19z
dHJjc3BuX2MzIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fcmVqZWN0MSwgaW50IF9fcmVqZWN0
MiwKICAgICAgICAgICAgICBpbnQgX19yZWplY3QzKQp7CiAgcmVnaXN0ZXIgc2l6ZV90IF9fcmVz
dWx0ID0gMDsKICB3aGlsZSAoX19zW19fcmVzdWx0XSAhPSAnXDAnICYmIF9fc1tfX3Jlc3VsdF0g
IT0gX19yZWplY3QxCiAgICAgICAgICYmIF9fc1tfX3Jlc3VsdF0gIT0gX19yZWplY3QyICYmIF9f
c1tfX3Jlc3VsdF0gIT0gX19yZWplY3QzKQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4gX19yZXN1
bHQ7Cn0KIyA5NTAgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMwpleHRlcm4g
X19pbmxpbmUgc2l6ZV90IF9fc3Ryc3BuX2MxIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNj
ZXB0KTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cnNwbl9jMSAoX19jb25zdCBjaGFyICpf
X3MsIGludCBfX2FjY2VwdCkKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9IDA7CgogIHdo
aWxlIChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0KQogICAgKytfX3Jlc3VsdDsKICByZXR1cm4g
X19yZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBzaXplX3QgX19zdHJzcG5fYzIgKF9fY29uc3Qg
Y2hhciAqX19zLCBpbnQgX19hY2NlcHQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgX19hY2NlcHQyKTsKZXh0ZXJuIF9faW5saW5lIHNpemVfdApfX3N0cnNwbl9jMiAo
X19jb25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsIGludCBfX2FjY2VwdDIpCnsKICByZWdp
c3RlciBzaXplX3QgX19yZXN1bHQgPSAwOwoKICB3aGlsZSAoX19zW19fcmVzdWx0XSA9PSBfX2Fj
Y2VwdDEgfHwgX19zW19fcmVzdWx0XSA9PSBfX2FjY2VwdDIpCiAgICArK19fcmVzdWx0OwogIHJl
dHVybiBfX3Jlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIHNpemVfdCBfX3N0cnNwbl9jMyAoX19j
b25zdCBjaGFyICpfX3MsIGludCBfX2FjY2VwdDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBfX2FjY2VwdDIsIGludCBfX2FjY2VwdDMpOwpleHRlcm4gX19pbmxpbmUg
c2l6ZV90Cl9fc3Ryc3BuX2MzIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwgaW50
IF9fYWNjZXB0MiwgaW50IF9fYWNjZXB0MykKewogIHJlZ2lzdGVyIHNpemVfdCBfX3Jlc3VsdCA9
IDA7CgogIHdoaWxlIChfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MSB8fCBfX3NbX19yZXN1bHRd
ID09IF9fYWNjZXB0MgogICAgICAgICB8fCBfX3NbX19yZXN1bHRdID09IF9fYWNjZXB0MykKICAg
ICsrX19yZXN1bHQ7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CiMgMTAwNyAiL3Vzci9sb2NhbC9pbmNs
dWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiBfX2lubGluZSBjaGFyICpfX3N0cnBicmtfYzIg
KF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19hY2NlcHQxLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IF9fYWNjZXB0Mik7CmV4dGVybiBfX2lubGluZSBjaGFyICoKX19z
dHJwYnJrX2MyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwgaW50IF9fYWNjZXB0
MikKewoKICB3aGlsZSAoKl9fcyAhPSAnXDAnICYmICpfX3MgIT0gX19hY2NlcHQxICYmICpfX3Mg
IT0gX19hY2NlcHQyKQogICAgKytfX3M7CiAgcmV0dXJuICpfX3MgPT0gJ1wwJyA/ICgodm9pZCAq
KTApIDogKGNoYXIgKikgKHNpemVfdCkgX19zOwp9CgpleHRlcm4gX19pbmxpbmUgY2hhciAqX19z
dHJwYnJrX2MzIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYWNjZXB0MSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2FjY2VwdDIsIGludCBfX2FjY2VwdDMpOwpl
eHRlcm4gX19pbmxpbmUgY2hhciAqCl9fc3RycGJya19jMyAoX19jb25zdCBjaGFyICpfX3MsIGlu
dCBfX2FjY2VwdDEsIGludCBfX2FjY2VwdDIsCiAgICAgICAgICAgICAgaW50IF9fYWNjZXB0MykK
ewoKICB3aGlsZSAoKl9fcyAhPSAnXDAnICYmICpfX3MgIT0gX19hY2NlcHQxICYmICpfX3MgIT0g
X19hY2NlcHQyCiAgICAgICAgICYmICpfX3MgIT0gX19hY2NlcHQzKQogICAgKytfX3M7CiAgcmV0
dXJuICpfX3MgPT0gJ1wwJyA/ICgodm9pZCAqKTApIDogKGNoYXIgKikgKHNpemVfdCkgX19zOwp9
CiMgMTA1OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiBfX2lu
bGluZSBjaGFyICpfX3N0cnRva19yXzFjIChjaGFyICpfX3MsIGNoYXIgX19zZXAsIGNoYXIgKipf
X25leHRwKTsKZXh0ZXJuIF9faW5saW5lIGNoYXIgKgpfX3N0cnRva19yXzFjIChjaGFyICpfX3Ms
IGNoYXIgX19zZXAsIGNoYXIgKipfX25leHRwKQp7CiAgY2hhciAqX19yZXN1bHQ7CiAgaWYgKF9f
cyA9PSAoKHZvaWQgKikwKSkKICAgIF9fcyA9ICpfX25leHRwOwogIHdoaWxlICgqX19zID09IF9f
c2VwKQogICAgKytfX3M7CiAgX19yZXN1bHQgPSAoKHZvaWQgKikwKTsKICBpZiAoKl9fcyAhPSAn
XDAnKQogICAgewogICAgICBfX3Jlc3VsdCA9IF9fcysrOwogICAgICB3aGlsZSAoKl9fcyAhPSAn
XDAnKQogICAgICAgIGlmICgqX19zKysgPT0gX19zZXApCiAgICAgICAgICB7CiAgICAgICAgICAg
IF9fc1stMV0gPSAnXDAnOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgKl9f
bmV4dHAgPSBfX3M7CiAgICB9CiAgcmV0dXJuIF9fcmVzdWx0Owp9CiMgMTA5MSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiBjaGFyICpfX3N0cnNlcF9nIChjaGFy
ICoqX19zdHJpbmdwLCBfX2NvbnN0IGNoYXIgKl9fZGVsaW0pOwojIDExMDkgIi91c3IvbG9jYWwv
aW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMwpleHRlcm4gX19pbmxpbmUgY2hhciAqX19zdHJzZXBf
MWMgKGNoYXIgKipfX3MsIGNoYXIgX19yZWplY3QpOwpleHRlcm4gX19pbmxpbmUgY2hhciAqCl9f
c3Ryc2VwXzFjIChjaGFyICoqX19zLCBjaGFyIF9fcmVqZWN0KQp7CiAgcmVnaXN0ZXIgY2hhciAq
X19yZXR2YWwgPSAqX19zOwogIGlmIChfX3JldHZhbCAhPSAoKHZvaWQgKikwKSAmJiAoKl9fcyA9
IChfX2V4dGVuc2lvbl9fIChfX2J1aWx0aW5fY29uc3RhbnRfcCAoX19yZWplY3QpICYmIChfX3Jl
amVjdCkgPT0gJ1wwJyA/IChjaGFyICopIF9fcmF3bWVtY2hyIChfX3JldHZhbCwgX19yZWplY3Qp
IDogc3RyY2hyIChfX3JldHZhbCwgX19yZWplY3QpKSkpICE9ICgodm9pZCAqKTApKQogICAgKigq
X19zKSsrID0gJ1wwJzsKICByZXR1cm4gX19yZXR2YWw7Cn0KCmV4dGVybiBfX2lubGluZSBjaGFy
ICpfX3N0cnNlcF8yYyAoY2hhciAqKl9fcywgY2hhciBfX3JlamVjdDEsIGNoYXIgX19yZWplY3Qy
KTsKZXh0ZXJuIF9faW5saW5lIGNoYXIgKgpfX3N0cnNlcF8yYyAoY2hhciAqKl9fcywgY2hhciBf
X3JlamVjdDEsIGNoYXIgX19yZWplY3QyKQp7CiAgcmVnaXN0ZXIgY2hhciAqX19yZXR2YWwgPSAq
X19zOwogIGlmIChfX3JldHZhbCAhPSAoKHZvaWQgKikwKSkKICAgIHsKICAgICAgcmVnaXN0ZXIg
Y2hhciAqX19jcCA9IF9fcmV0dmFsOwogICAgICB3aGlsZSAoMSkKICAgICAgICB7CiAgICAgICAg
ICBpZiAoKl9fY3AgPT0gJ1wwJykKICAgICAgICAgICAgewogICAgICAgICAgICAgIF9fY3AgPSAo
KHZvaWQgKikwKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICBpZiAo
Kl9fY3AgPT0gX19yZWplY3QxIHx8ICpfX2NwID09IF9fcmVqZWN0MikKICAgICAgICAgICAgewog
ICAgICAgICAgICAgICpfX2NwKysgPSAnXDAnOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICB9CiAgICAgICAgICArK19fY3A7CiAgICAgICAgfQogICAgICAqX19zID0gX19jcDsKICAg
IH0KICByZXR1cm4gX19yZXR2YWw7Cn0KCmV4dGVybiBfX2lubGluZSBjaGFyICpfX3N0cnNlcF8z
YyAoY2hhciAqKl9fcywgY2hhciBfX3JlamVjdDEsIGNoYXIgX19yZWplY3QyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgX19yZWplY3QzKTsKZXh0ZXJuIF9faW5saW5l
IGNoYXIgKgpfX3N0cnNlcF8zYyAoY2hhciAqKl9fcywgY2hhciBfX3JlamVjdDEsIGNoYXIgX19y
ZWplY3QyLCBjaGFyIF9fcmVqZWN0MykKewogIHJlZ2lzdGVyIGNoYXIgKl9fcmV0dmFsID0gKl9f
czsKICBpZiAoX19yZXR2YWwgIT0gKCh2b2lkICopMCkpCiAgICB7CiAgICAgIHJlZ2lzdGVyIGNo
YXIgKl9fY3AgPSBfX3JldHZhbDsKICAgICAgd2hpbGUgKDEpCiAgICAgICAgewogICAgICAgICAg
aWYgKCpfX2NwID09ICdcMCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBfX2NwID0gKCh2
b2lkICopMCk7CiAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgaWYgKCpf
X2NwID09IF9fcmVqZWN0MSB8fCAqX19jcCA9PSBfX3JlamVjdDIgfHwgKl9fY3AgPT0gX19yZWpl
Y3QzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgKl9fY3ArKyA9ICdcMCc7CiAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICsrX19jcDsKICAgICAgICB9CiAg
ICAgICpfX3MgPSBfX2NwOwogICAgfQogIHJldHVybiBfX3JldHZhbDsKfQojIDExOTAgIi91c3Iv
bG9jYWwvaW5jbHVkZS9iaXRzL3N0cmluZzIuaCIgMwpleHRlcm4gY2hhciAqX19zdHJkdXAgKF9f
Y29uc3QgY2hhciAqX19zdHJpbmcpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7CiMgMTIw
OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RyaW5nMi5oIiAzCmV4dGVybiBjaGFyICpfX3N0
cm5kdXAgKF9fY29uc3QgY2hhciAqX19zdHJpbmcsIHNpemVfdCBfX24pCiAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbWFsbG9jX18pKTsKIyAzNjEgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIg
MiAzCgoKCgojIDM5ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3VuLmgiIDIgMwoKCgoKCgoKIyAx
MTQgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMv
c3lzY2FsbC5oIiAxIDMKIyAyNSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zeXNjYWxsLmgiIDMK
IyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYXNtL3VuaXN0ZC5oIiAxIDMKIyAyNiAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N5cy9zeXNjYWxsLmgiIDIgMwoKCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9iaXRzL3N5c2NhbGwuaCIgMSAzCiMgMzMgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3lzY2Fs
bC5oIiAyIDMKIyAxMTggImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDEyNyAiaW5jbHVkZS9pbmNs
dWRlcy5oIgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmdzLmgiIDEgMwojIDEyOCAiaW5j
bHVkZS9pbmNsdWRlcy5oIiAyCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL21lbW9yeS5oIiAx
IDMKIyAxMzIgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgoKCgoKIyAxICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvZmNudGwuaCIgMSAzCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9mY250bC5oIiAzCgoK
CgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2ZjbnRsLmgiIDEgMwojIDEzNiAiL3Vzci9s
b2NhbC9pbmNsdWRlL2JpdHMvZmNudGwuaCIgMwpzdHJ1Y3QgZmxvY2sKICB7CiAgICBzaG9ydCBp
bnQgbF90eXBlOwogICAgc2hvcnQgaW50IGxfd2hlbmNlOwoKCgoKICAgIF9fb2ZmNjRfdCBsX3N0
YXJ0OwogICAgX19vZmY2NF90IGxfbGVuOwoKICAgIF9fcGlkX3QgbF9waWQ7CiAgfTsKCgpzdHJ1
Y3QgZmxvY2s2NAogIHsKICAgIHNob3J0IGludCBsX3R5cGU7CiAgICBzaG9ydCBpbnQgbF93aGVu
Y2U7CiAgICBfX29mZjY0X3QgbF9zdGFydDsKICAgIF9fb2ZmNjRfdCBsX2xlbjsKICAgIF9fcGlk
X3QgbF9waWQ7CiAgfTsKIyAzNCAiL3Vzci9sb2NhbC9pbmNsdWRlL2ZjbnRsLmgiIDIgMwoKCgoj
IDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3RhdC5oIiAxIDMKIyA5NiAiL3Vzci9sb2NhbC9p
bmNsdWRlL3N5cy9zdGF0LmgiIDMKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0YXQu
aCIgMSAzCiMgMzYgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMwpzdHJ1Y3Qgc3Rh
dAogIHsKICAgIF9fZGV2X3Qgc3RfZGV2OwogICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMTsK
CgoKICAgIF9faW5vX3QgX19zdF9pbm87CgogICAgX19tb2RlX3Qgc3RfbW9kZTsKICAgIF9fbmxp
bmtfdCBzdF9ubGluazsKICAgIF9fdWlkX3Qgc3RfdWlkOwogICAgX19naWRfdCBzdF9naWQ7CiAg
ICBfX2Rldl90IHN0X3JkZXY7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQyOwoKCgogICAg
X19vZmY2NF90IHN0X3NpemU7CgogICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsKCgoKCiAgICBf
X2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwoKICAgIF9fdGltZV90IHN0X2F0aW1lOwogICAgdW5zaWdu
ZWQgbG9uZyBpbnQgX191bnVzZWQxOwogICAgX190aW1lX3Qgc3RfbXRpbWU7CiAgICB1bnNpZ25l
ZCBsb25nIGludCBfX3VudXNlZDI7CiAgICBfX3RpbWVfdCBzdF9jdGltZTsKICAgIHVuc2lnbmVk
IGxvbmcgaW50IF9fdW51c2VkMzsKCgoKCiAgICBfX2lubzY0X3Qgc3RfaW5vOwoKICB9OwoKCnN0
cnVjdCBzdGF0NjQKICB7CiAgICBfX2Rldl90IHN0X2RldjsKICAgIHVuc2lnbmVkIGludCBfX3Bh
ZDE7CgogICAgX19pbm9fdCBfX3N0X2lubzsKICAgIF9fbW9kZV90IHN0X21vZGU7CiAgICBfX25s
aW5rX3Qgc3Rfbmxpbms7CiAgICBfX3VpZF90IHN0X3VpZDsKICAgIF9fZ2lkX3Qgc3RfZ2lkOwog
ICAgX19kZXZfdCBzdF9yZGV2OwogICAgdW5zaWduZWQgaW50IF9fcGFkMjsKICAgIF9fb2ZmNjRf
dCBzdF9zaXplOwogICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsKCiAgICBfX2Jsa2NudDY0X3Qg
c3RfYmxvY2tzOwogICAgX190aW1lX3Qgc3RfYXRpbWU7CiAgICB1bnNpZ25lZCBsb25nIGludCBf
X3VudXNlZDE7CiAgICBfX3RpbWVfdCBzdF9tdGltZTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9f
dW51c2VkMjsKICAgIF9fdGltZV90IHN0X2N0aW1lOwogICAgdW5zaWduZWQgbG9uZyBpbnQgX191
bnVzZWQzOwogICAgX19pbm82NF90IHN0X2lubzsKICB9OwojIDk5ICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3lzL3N0YXQuaCIgMiAzCiMgMjA4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3N0YXQuaCIg
MwpleHRlcm4gaW50IHN0YXQgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGUsIHN0cnVj
dCBzdGF0ICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2FzbV9fICgiIiAic3RhdDY0Iik7CgoKCmV4dGVy
biBpbnQgZnN0YXQgKGludCBfX2ZkLCBzdHJ1Y3Qgc3RhdCAqX19idWYpIF9fYXNtX18gKCIiICJm
c3RhdDY0Iik7CgoKCgoKCmV4dGVybiBpbnQgc3RhdDY0IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19maWxlLAogICAgICAgICAgICAgICAgICAgc3RydWN0IHN0YXQ2NCAqX19yZXN0cmljdCBf
X2J1ZikgOwpleHRlcm4gaW50IGZzdGF0NjQgKGludCBfX2ZkLCBzdHJ1Y3Qgc3RhdDY0ICpfX2J1
ZikgOwojIDIzMiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zdGF0LmgiIDMKZXh0ZXJuIGludCBs
c3RhdCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZSwgc3RydWN0IHN0YXQgKl9fcmVz
dHJpY3QgX19idWYpIF9fYXNtX18gKCIiICJsc3RhdDY0Iik7CiMgMjQxICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvc3lzL3N0YXQuaCIgMwpleHRlcm4gaW50IGxzdGF0NjQgKF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgc3RydWN0IHN0YXQ2NCAqX19yZXN0
cmljdCBfX2J1ZikgOwoKCgoKCgpleHRlcm4gaW50IGNobW9kIChfX2NvbnN0IGNoYXIgKl9fZmls
ZSwgX19tb2RlX3QgX19tb2RlKSA7CgoKCmV4dGVybiBpbnQgZmNobW9kIChpbnQgX19mZCwgX19t
b2RlX3QgX19tb2RlKSA7CgoKCgoKZXh0ZXJuIF9fbW9kZV90IHVtYXNrIChfX21vZGVfdCBfX21h
c2spIDsKCgoKCmV4dGVybiBfX21vZGVfdCBnZXR1bWFzayAodm9pZCkgOwoKCgpleHRlcm4gaW50
IG1rZGlyIChfX2NvbnN0IGNoYXIgKl9fcGF0aCwgX19tb2RlX3QgX19tb2RlKSA7CgoKCgoKZXh0
ZXJuIGludCBta25vZCAoX19jb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSwgX19k
ZXZfdCBfX2RldikKICAgICA7CgoKCgpleHRlcm4gaW50IG1rZmlmbyAoX19jb25zdCBjaGFyICpf
X3BhdGgsIF9fbW9kZV90IF9fbW9kZSkgOwojIDMxMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9z
dGF0LmgiIDMKZXh0ZXJuIGludCBfX2Z4c3RhdCAoaW50IF9fdmVyLCBpbnQgX19maWxkZXMsIHN0
cnVjdCBzdGF0ICpfX3N0YXRfYnVmKSBfX2FzbV9fICgiIiAiX19meHN0YXQ2NCIpOwoKCmV4dGVy
biBpbnQgX194c3RhdCAoaW50IF9fdmVyLCBfX2NvbnN0IGNoYXIgKl9fZmlsZW5hbWUsIHN0cnVj
dCBzdGF0ICpfX3N0YXRfYnVmKSBfX2FzbV9fICgiIiAiX194c3RhdDY0Iik7CgpleHRlcm4gaW50
IF9fbHhzdGF0IChpbnQgX192ZXIsIF9fY29uc3QgY2hhciAqX19maWxlbmFtZSwgc3RydWN0IHN0
YXQgKl9fc3RhdF9idWYpIF9fYXNtX18gKCIiICJfX2x4c3RhdDY0Iik7CiMgMzMwICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3lzL3N0YXQuaCIgMwpleHRlcm4gaW50IF9fZnhzdGF0NjQgKGludCBfX3Zl
ciwgaW50IF9fZmlsZGVzLCBzdHJ1Y3Qgc3RhdDY0ICpfX3N0YXRfYnVmKQogICAgIDsKZXh0ZXJu
IGludCBfX3hzdGF0NjQgKGludCBfX3ZlciwgX19jb25zdCBjaGFyICpfX2ZpbGVuYW1lLAogICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IHN0YXQ2NCAqX19zdGF0X2J1ZikgOwpleHRlcm4gaW50
IF9fbHhzdGF0NjQgKGludCBfX3ZlciwgX19jb25zdCBjaGFyICpfX2ZpbGVuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBzdGF0NjQgKl9fc3RhdF9idWYpIDsKCmV4dGVybiBpbnQg
X194bWtub2QgKGludCBfX3ZlciwgX19jb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9k
ZSwKICAgICAgICAgICAgICAgICAgICAgX19kZXZfdCAqX19kZXYpIDsKCgoKCmV4dGVybiBfX2lu
bGluZV9fIGludCBzdGF0IChfX2NvbnN0IGNoYXIgKl9fcGF0aCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBzdGF0ICpfX3N0YXRidWYpCnsKICByZXR1cm4gX194c3RhdCAoMywg
X19wYXRoLCBfX3N0YXRidWYpOwp9CgoKZXh0ZXJuIF9faW5saW5lX18gaW50IGxzdGF0IChfX2Nv
bnN0IGNoYXIgKl9fcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3Rh
dCAqX19zdGF0YnVmKQp7CiAgcmV0dXJuIF9fbHhzdGF0ICgzLCBfX3BhdGgsIF9fc3RhdGJ1Zik7
Cn0KCgpleHRlcm4gX19pbmxpbmVfXyBpbnQgZnN0YXQgKGludCBfX2ZkLCBzdHJ1Y3Qgc3RhdCAq
X19zdGF0YnVmKQp7CiAgcmV0dXJuIF9fZnhzdGF0ICgzLCBfX2ZkLCBfX3N0YXRidWYpOwp9CgoK
ZXh0ZXJuIF9faW5saW5lX18gaW50IG1rbm9kIChfX2NvbnN0IGNoYXIgKl9fcGF0aCwgX19tb2Rl
X3QgX19tb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZGV2X3QgX19kZXYpCnsK
ICByZXR1cm4gX194bWtub2QgKDEsIF9fcGF0aCwgX19tb2RlLCAmX19kZXYpOwp9CgoKCgoKZXh0
ZXJuIF9faW5saW5lX18gaW50IHN0YXQ2NCAoX19jb25zdCBjaGFyICpfX3BhdGgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzdGF0NjQgKl9fc3RhdGJ1ZikKewogIHJldHVy
biBfX3hzdGF0NjQgKDMsIF9fcGF0aCwgX19zdGF0YnVmKTsKfQoKCmV4dGVybiBfX2lubGluZV9f
IGludCBsc3RhdDY0IChfX2NvbnN0IGNoYXIgKl9fcGF0aCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBzdGF0NjQgKl9fc3RhdGJ1ZikKewogIHJldHVybiBfX2x4c3RhdDY0
ICgzLCBfX3BhdGgsIF9fc3RhdGJ1Zik7Cn0KCgpleHRlcm4gX19pbmxpbmVfXyBpbnQgZnN0YXQ2
NCAoaW50IF9fZmQsIHN0cnVjdCBzdGF0NjQgKl9fc3RhdGJ1ZikKewogIHJldHVybiBfX2Z4c3Rh
dDY0ICgzLCBfX2ZkLCBfX3N0YXRidWYpOwp9CgoKCgoKIyAzOCAiL3Vzci9sb2NhbC9pbmNsdWRl
L2ZjbnRsLmgiIDIgMwojIDYwICIvdXNyL2xvY2FsL2luY2x1ZGUvZmNudGwuaCIgMwpleHRlcm4g
aW50IGZjbnRsIChpbnQgX19mZCwgaW50IF9fY21kLCAuLi4pIDsKIyA2OSAiL3Vzci9sb2NhbC9p
bmNsdWRlL2ZjbnRsLmgiIDMKZXh0ZXJuIGludCBvcGVuIChfX2NvbnN0IGNoYXIgKl9fZmlsZSwg
aW50IF9fb2ZsYWcsIC4uLikgX19hc21fXyAoIiIgIm9wZW42NCIpOwoKCgoKCgpleHRlcm4gaW50
IG9wZW42NCAoX19jb25zdCBjaGFyICpfX2ZpbGUsIGludCBfX29mbGFnLCAuLi4pIDsKIyA4NiAi
L3Vzci9sb2NhbC9pbmNsdWRlL2ZjbnRsLmgiIDMKZXh0ZXJuIGludCBjcmVhdCAoX19jb25zdCBj
aGFyICpfX2ZpbGUsIF9fbW9kZV90IF9fbW9kZSkgX19hc21fXyAoIiIgImNyZWF0NjQiKTsKCgoK
CgoKZXh0ZXJuIGludCBjcmVhdDY0IChfX2NvbnN0IGNoYXIgKl9fZmlsZSwgX19tb2RlX3QgX19t
b2RlKSA7CiMgMTM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvZmNudGwuaCIgMwpleHRlcm4gaW50IHBv
c2l4X2ZhZHZpc2UgKGludCBfX2ZkLCBfX29mZjY0X3QgX19vZmZzZXQsIHNpemVfdCBfX2xlbiwg
aW50IF9fYWR2aXNlKSBfX2FzbV9fICgiIiAicG9zaXhfZmFkdmlzZTY0Iik7CgoKCgoKCgpleHRl
cm4gaW50IHBvc2l4X2ZhZHZpc2U2NCAoaW50IF9fZmQsIF9fb2ZmNjRfdCBfX29mZnNldCwgc2l6
ZV90IF9fbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYWR2aXNlKSA7CiMg
MTUyICIvdXNyL2xvY2FsL2luY2x1ZGUvZmNudGwuaCIgMwpleHRlcm4gaW50IHBvc2l4X2ZhbGxv
Y2F0ZSAoaW50IF9fZmQsIF9fb2ZmNjRfdCBfX29mZnNldCwgc2l6ZV90IF9fbGVuKSBfX2FzbV9f
ICgiIiAicG9zaXhfZmFsbG9jYXRlNjQiKTsKCgoKCgoKCmV4dGVybiBpbnQgcG9zaXhfZmFsbG9j
YXRlNjQgKGludCBfX2ZkLCBfX29mZjY0X3QgX19vZmZzZXQsIHNpemVfdCBfX2xlbikKICAgICA7
CgoKCgojIDE0MCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMTQ5ICJpbmNsdWRlL2luY2x1ZGVz
LmgiCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbWl0cy5oIiAxIDMKIyAxNTAgImluY2x1ZGUv
aW5jbHVkZXMuaCIgMgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvaW9jdGwuaCIgMSAz
CiMgMjQgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvaW9jdGwuaCIgMwoKCgojIDEgIi91c3IvbG9j
YWwvaW5jbHVkZS9iaXRzL2lvY3Rscy5oIiAxIDMKIyAyNCAiL3Vzci9sb2NhbC9pbmNsdWRlL2Jp
dHMvaW9jdGxzLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYXNtL2lvY3Rscy5oIiAxIDMK
CgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYXNtL2lvY3RsLmgiIDEgMwojIDUgIi91c3IvbG9j
YWwvaW5jbHVkZS9hc20vaW9jdGxzLmgiIDIgMwojIDI1ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0
cy9pb2N0bHMuaCIgMiAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvaW9jdGwuaCIgMiAz
CgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9pb2N0bC10eXBlcy5oIiAxIDMKIyAyOCAi
L3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvaW9jdGwtdHlwZXMuaCIgMwpzdHJ1Y3Qgd2luc2l6ZQog
IHsKICAgIHVuc2lnbmVkIHNob3J0IGludCB3c19yb3c7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQg
d3NfY29sOwogICAgdW5zaWduZWQgc2hvcnQgaW50IHdzX3hwaXhlbDsKICAgIHVuc2lnbmVkIHNo
b3J0IGludCB3c195cGl4ZWw7CiAgfTsKCgpzdHJ1Y3QgdGVybWlvCiAgewogICAgdW5zaWduZWQg
c2hvcnQgaW50IGNfaWZsYWc7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgY19vZmxhZzsKICAgIHVu
c2lnbmVkIHNob3J0IGludCBjX2NmbGFnOwogICAgdW5zaWduZWQgc2hvcnQgaW50IGNfbGZsYWc7
CiAgICB1bnNpZ25lZCBjaGFyIGNfbGluZTsKICAgIHVuc2lnbmVkIGNoYXIgY19jY1s4XTsKfTsK
IyAzMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9pb2N0bC5oIiAyIDMKCgoKCgoKIyAxICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3R0eWRlZmF1bHRzLmgiIDEgMwojIDM4ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvc3lzL2lvY3RsLmgiIDIgMwoKCgoKZXh0ZXJuIGludCBpb2N0bCAoaW50IF9fZmQsIHVu
c2lnbmVkIGxvbmcgaW50IF9fcmVxdWVzdCwgLi4uKSA7CgoKIyAxNTQgImluY2x1ZGUvaW5jbHVk
ZXMuaCIgMgoKCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zaWduYWwuaCIgMSAzCiMgMzEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zaWduYWwuaCIgMwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2JpdHMvc2lnc2V0LmgiIDEgMwojIDEwMyAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2lnc2V0
LmgiIDMKZXh0ZXJuIGludCBfX3NpZ2lzbWVtYmVyIChfX2NvbnN0IF9fc2lnc2V0X3QgKiwgaW50
KTsKZXh0ZXJuIGludCBfX3NpZ2FkZHNldCAoX19zaWdzZXRfdCAqLCBpbnQpOwpleHRlcm4gaW50
IF9fc2lnZGVsc2V0IChfX3NpZ3NldF90ICosIGludCk7CiMgMTE3ICIvdXNyL2xvY2FsL2luY2x1
ZGUvYml0cy9zaWdzZXQuaCIgMwpleHRlcm4gX19pbmxpbmUgaW50IF9fc2lnaXNtZW1iZXIgKF9f
Y29uc3QgX19zaWdzZXRfdCAqX19zZXQsIGludCBfX3NpZykgeyB1bnNpZ25lZCBsb25nIGludCBf
X21hc2sgPSAoKCh1bnNpZ25lZCBsb25nIGludCkgMSkgPDwgKCgoX19zaWcpIC0gMSkgJSAoOCAq
IHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSkpOyB1bnNpZ25lZCBsb25nIGludCBfX3dvcmQg
PSAoKChfX3NpZykgLSAxKSAvICg4ICogc2l6ZW9mICh1bnNpZ25lZCBsb25nIGludCkpKTsgcmV0
dXJuIChfX3NldC0+X192YWxbX193b3JkXSAmIF9fbWFzaykgPyAxIDogMDsgfQpleHRlcm4gX19p
bmxpbmUgaW50IF9fc2lnYWRkc2V0ICggX19zaWdzZXRfdCAqX19zZXQsIGludCBfX3NpZykgeyB1
bnNpZ25lZCBsb25nIGludCBfX21hc2sgPSAoKCh1bnNpZ25lZCBsb25nIGludCkgMSkgPDwgKCgo
X19zaWcpIC0gMSkgJSAoOCAqIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSkpOyB1bnNpZ25l
ZCBsb25nIGludCBfX3dvcmQgPSAoKChfX3NpZykgLSAxKSAvICg4ICogc2l6ZW9mICh1bnNpZ25l
ZCBsb25nIGludCkpKTsgcmV0dXJuICgoX19zZXQtPl9fdmFsW19fd29yZF0gfD0gX19tYXNrKSwg
MCk7IH0KZXh0ZXJuIF9faW5saW5lIGludCBfX3NpZ2RlbHNldCAoIF9fc2lnc2V0X3QgKl9fc2V0
LCBpbnQgX19zaWcpIHsgdW5zaWduZWQgbG9uZyBpbnQgX19tYXNrID0gKCgodW5zaWduZWQgbG9u
ZyBpbnQpIDEpIDw8ICgoKF9fc2lnKSAtIDEpICUgKDggKiBzaXplb2YgKHVuc2lnbmVkIGxvbmcg
aW50KSkpKTsgdW5zaWduZWQgbG9uZyBpbnQgX193b3JkID0gKCgoX19zaWcpIC0gMSkgLyAoOCAq
IHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSk7IHJldHVybiAoKF9fc2V0LT5fX3ZhbFtfX3dv
cmRdICY9IH5fX21hc2spLCAwKTsgfQojIDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgi
IDIgMwoKCgoKCgp0eXBlZGVmIF9fc2lnX2F0b21pY190IHNpZ19hdG9taWNfdDsKIyA1NiAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3NpZ25hbC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMv
c2lnbnVtLmgiIDEgMwojIDU3ICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgiIDIgMwojIDcx
ICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgiIDMKdHlwZWRlZiB2b2lkICgqX19zaWdoYW5k
bGVyX3QpIChpbnQpOwoKCgoKZXh0ZXJuIF9fc2lnaGFuZGxlcl90IF9fc3lzdl9zaWduYWwgKGlu
dCBfX3NpZywgX19zaWdoYW5kbGVyX3QgX19oYW5kbGVyKQogICAgIDsKCmV4dGVybiBfX3NpZ2hh
bmRsZXJfdCBzeXN2X3NpZ25hbCAoaW50IF9fc2lnLCBfX3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIp
CiAgICAgOwoKCgoKCgpleHRlcm4gX19zaWdoYW5kbGVyX3Qgc2lnbmFsIChpbnQgX19zaWcsIF9f
c2lnaGFuZGxlcl90IF9faGFuZGxlcikgOwojIDEwMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3NpZ25h
bC5oIiAzCmV4dGVybiBfX3NpZ2hhbmRsZXJfdCBic2Rfc2lnbmFsIChpbnQgX19zaWcsIF9fc2ln
aGFuZGxlcl90IF9faGFuZGxlcikgOwoKCgoKCgpleHRlcm4gaW50IGtpbGwgKF9fcGlkX3QgX19w
aWQsIGludCBfX3NpZykgOwoKCgoKCgpleHRlcm4gaW50IGtpbGxwZyAoX19waWRfdCBfX3BncnAs
IGludCBfX3NpZykgOwoKCgpleHRlcm4gaW50IHJhaXNlIChpbnQgX19zaWcpIDsKCgoKZXh0ZXJu
IF9fc2lnaGFuZGxlcl90IHNzaWduYWwgKGludCBfX3NpZywgX19zaWdoYW5kbGVyX3QgX19oYW5k
bGVyKSA7CmV4dGVybiBpbnQgZ3NpZ25hbCAoaW50IF9fc2lnKSA7CgoKCgpleHRlcm4gdm9pZCBw
c2lnbmFsIChpbnQgX19zaWcsIF9fY29uc3QgY2hhciAqX19zKSA7CiMgMTQwICIvdXNyL2xvY2Fs
L2luY2x1ZGUvc2lnbmFsLmgiIDMKZXh0ZXJuIGludCBfX3NpZ3BhdXNlIChpbnQgX19zaWdfb3Jf
bWFzaywgaW50IF9faXNfc2lnKSA7CgoKCgpleHRlcm4gaW50IHNpZ3BhdXNlIChpbnQgX19tYXNr
KSA7CiMgMTY4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgiIDMKZXh0ZXJuIGludCBzaWdi
bG9jayAoaW50IF9fbWFzaykgOwoKCmV4dGVybiBpbnQgc2lnc2V0bWFzayAoaW50IF9fbWFzaykg
OwoKCmV4dGVybiBpbnQgc2lnZ2V0bWFzayAodm9pZCkgOwojIDE4MyAiL3Vzci9sb2NhbC9pbmNs
dWRlL3NpZ25hbC5oIiAzCnR5cGVkZWYgX19zaWdoYW5kbGVyX3Qgc2lnaGFuZGxlcl90OwoKCgoK
dHlwZWRlZiBfX3NpZ2hhbmRsZXJfdCBzaWdfdDsKIyAxOTkgIi91c3IvbG9jYWwvaW5jbHVkZS9z
aWduYWwuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMSAzCiMg
MjUgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMwojIDEgIi91c3IvbG9jYWwv
aW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMwojIDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0
cy9zaWdpbmZvLmgiIDIgMwoKCgoKCgoKdHlwZWRlZiB1bmlvbiBzaWd2YWwKICB7CiAgICBpbnQg
c2l2YWxfaW50OwogICAgdm9pZCAqc2l2YWxfcHRyOwogIH0gc2lndmFsX3Q7CiMgNTEgIi91c3Iv
bG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMwp0eXBlZGVmIHN0cnVjdCBzaWdpbmZvCiAg
ewogICAgaW50IHNpX3NpZ25vOwogICAgaW50IHNpX2Vycm5vOwoKICAgIGludCBzaV9jb2RlOwoK
ICAgIHVuaW9uCiAgICAgIHsKICAgICAgICBpbnQgX3BhZFsoKDEyOCAvIHNpemVvZiAoaW50KSkg
LSAzKV07CgoKICAgICAgICBzdHJ1Y3QKICAgICAgICAgIHsKICAgICAgICAgICAgX19waWRfdCBz
aV9waWQ7CiAgICAgICAgICAgIF9fdWlkX3Qgc2lfdWlkOwogICAgICAgICAgfSBfa2lsbDsKCgog
ICAgICAgIHN0cnVjdAogICAgICAgICAgewogICAgICAgICAgICB1bnNpZ25lZCBpbnQgX3RpbWVy
MTsKICAgICAgICAgICAgdW5zaWduZWQgaW50IF90aW1lcjI7CiAgICAgICAgICB9IF90aW1lcjsK
CgogICAgICAgIHN0cnVjdAogICAgICAgICAgewogICAgICAgICAgICBfX3BpZF90IHNpX3BpZDsK
ICAgICAgICAgICAgX191aWRfdCBzaV91aWQ7CiAgICAgICAgICAgIHNpZ3ZhbF90IHNpX3NpZ3Zh
bDsKICAgICAgICAgIH0gX3J0OwoKCiAgICAgICAgc3RydWN0CiAgICAgICAgICB7CiAgICAgICAg
ICAgIF9fcGlkX3Qgc2lfcGlkOwogICAgICAgICAgICBfX3VpZF90IHNpX3VpZDsKICAgICAgICAg
ICAgaW50IHNpX3N0YXR1czsKICAgICAgICAgICAgX19jbG9ja190IHNpX3V0aW1lOwogICAgICAg
ICAgICBfX2Nsb2NrX3Qgc2lfc3RpbWU7CiAgICAgICAgICB9IF9zaWdjaGxkOwoKCiAgICAgICAg
c3RydWN0CiAgICAgICAgICB7CiAgICAgICAgICAgIHZvaWQgKnNpX2FkZHI7CiAgICAgICAgICB9
IF9zaWdmYXVsdDsKCgogICAgICAgIHN0cnVjdAogICAgICAgICAgewogICAgICAgICAgICBsb25n
IGludCBzaV9iYW5kOwogICAgICAgICAgICBpbnQgc2lfZmQ7CiAgICAgICAgICB9IF9zaWdwb2xs
OwogICAgICB9IF9zaWZpZWxkczsKICB9IHNpZ2luZm9fdDsKIyAxMjggIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL3NpZ2luZm8uaCIgMwplbnVtCnsKICBTSV9BU1lOQ05MID0gLTYsCgogIFNJX1NJ
R0lPLAoKICBTSV9BU1lOQ0lPLAoKICBTSV9NRVNHUSwKCiAgU0lfVElNRVIsCgogIFNJX1FVRVVF
LAoKICBTSV9VU0VSLAoKICBTSV9LRVJORUwgPSAweDgwCgp9OwoKCgplbnVtCnsKICBJTExfSUxM
T1BDID0gMSwKCiAgSUxMX0lMTE9QTiwKCiAgSUxMX0lMTEFEUiwKCiAgSUxMX0lMTFRSUCwKCiAg
SUxMX1BSVk9QQywKCiAgSUxMX1BSVlJFRywKCiAgSUxMX0NPUFJPQywKCiAgSUxMX0JBRFNUSwoK
fTsKCgplbnVtCnsKICBGUEVfSU5URElWID0gMSwKCiAgRlBFX0lOVE9WRiwKCiAgRlBFX0ZMVERJ
ViwKCiAgRlBFX0ZMVE9WRiwKCiAgRlBFX0ZMVFVORCwKCiAgRlBFX0ZMVFJFUywKCiAgRlBFX0ZM
VElOViwKCiAgRlBFX0ZMVFNVQgoKfTsKCgplbnVtCnsKICBTRUdWX01BUEVSUiA9IDEsCgogIFNF
R1ZfQUNDRVJSCgp9OwoKCmVudW0KewogIEJVU19BRFJBTE4gPSAxLAoKICBCVVNfQURSRVJSLAoK
ICBCVVNfT0JKRVJSCgp9OwoKCmVudW0KewogIFRSQVBfQlJLUFQgPSAxLAoKICBUUkFQX1RSQUNF
Cgp9OwoKCmVudW0KewogIENMRF9FWElURUQgPSAxLAoKICBDTERfS0lMTEVELAoKICBDTERfRFVN
UEVELAoKICBDTERfVFJBUFBFRCwKCiAgQ0xEX1NUT1BQRUQsCgogIENMRF9DT05USU5VRUQKCn07
CgoKZW51bQp7CiAgUE9MTF9JTiA9IDEsCgogIFBPTExfT1VULAoKICBQT0xMX01TRywKCiAgUE9M
TF9FUlIsCgogIFBPTExfUFJJLAoKICBQT0xMX0hVUAoKfTsKIyAyNzEgIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL3NpZ2luZm8uaCIgMwpzdHJ1Y3QgX19wdGhyZWFkX2F0dHJfczsKCnR5cGVkZWYg
c3RydWN0IHNpZ2V2ZW50CiAgewogICAgc2lndmFsX3Qgc2lnZXZfdmFsdWU7CiAgICBpbnQgc2ln
ZXZfc2lnbm87CiAgICBpbnQgc2lnZXZfbm90aWZ5OwoKICAgIHVuaW9uCiAgICAgIHsKICAgICAg
ICBpbnQgX3BhZFsoKDY0IC8gc2l6ZW9mIChpbnQpKSAtIDMpXTsKCiAgICAgICAgc3RydWN0CiAg
ICAgICAgICB7CiAgICAgICAgICAgIHZvaWQgKCpfZnVuY3Rpb24pIChzaWd2YWxfdCk7CiAgICAg
ICAgICAgIHN0cnVjdCBfX3B0aHJlYWRfYXR0cl9zICpfYXR0cmlidXRlOwogICAgICAgICAgfSBf
c2lnZXZfdGhyZWFkOwogICAgICB9IF9zaWdldl91bjsKICB9IHNpZ2V2ZW50X3Q7CgoKCgoKCmVu
dW0KewogIFNJR0VWX1NJR05BTCA9IDAsCgogIFNJR0VWX05PTkUsCgogIFNJR0VWX1RIUkVBRAoK
fTsKIyAyMDAgIi91c3IvbG9jYWwvaW5jbHVkZS9zaWduYWwuaCIgMiAzCgoKCmV4dGVybiBpbnQg
c2lnZW1wdHlzZXQgKHNpZ3NldF90ICpfX3NldCkgOwoKCmV4dGVybiBpbnQgc2lnZmlsbHNldCAo
c2lnc2V0X3QgKl9fc2V0KSA7CgoKZXh0ZXJuIGludCBzaWdhZGRzZXQgKHNpZ3NldF90ICpfX3Nl
dCwgaW50IF9fc2lnbm8pIDsKCgpleHRlcm4gaW50IHNpZ2RlbHNldCAoc2lnc2V0X3QgKl9fc2V0
LCBpbnQgX19zaWdubykgOwoKCmV4dGVybiBpbnQgc2lnaXNtZW1iZXIgKF9fY29uc3Qgc2lnc2V0
X3QgKl9fc2V0LCBpbnQgX19zaWdubykgOwoKCgpleHRlcm4gaW50IHNpZ2lzZW1wdHlzZXQgKF9f
Y29uc3Qgc2lnc2V0X3QgKl9fc2V0KSA7CgoKZXh0ZXJuIGludCBzaWdhbmRzZXQgKHNpZ3NldF90
ICpfX3NldCwgX19jb25zdCBzaWdzZXRfdCAqX19sZWZ0LAogICAgICAgICAgICAgICAgICAgICAg
X19jb25zdCBzaWdzZXRfdCAqX19yaWdodCkgOwoKCmV4dGVybiBpbnQgc2lnb3JzZXQgKHNpZ3Nl
dF90ICpfX3NldCwgX19jb25zdCBzaWdzZXRfdCAqX19sZWZ0LAogICAgICAgICAgICAgICAgICAg
ICBfX2NvbnN0IHNpZ3NldF90ICpfX3JpZ2h0KSA7CgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9iaXRzL3NpZ2FjdGlvbi5oIiAxIDMKIyAyNSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2ln
YWN0aW9uLmgiIDMKc3RydWN0IHNpZ2FjdGlvbgogIHsKCgogICAgdW5pb24KICAgICAgewoKICAg
ICAgICBfX3NpZ2hhbmRsZXJfdCBzYV9oYW5kbGVyOwoKICAgICAgICB2b2lkICgqc2Ffc2lnYWN0
aW9uKSAoaW50LCBzaWdpbmZvX3QgKiwgdm9pZCAqKTsKICAgICAgfQogICAgX19zaWdhY3Rpb25f
aGFuZGxlcjsKCgoKCgoKCiAgICBfX3NpZ3NldF90IHNhX21hc2s7CgoKICAgIGludCBzYV9mbGFn
czsKCgogICAgdm9pZCAoKnNhX3Jlc3RvcmVyKSAodm9pZCk7CiAgfTsKIyAyMzMgIi91c3IvbG9j
YWwvaW5jbHVkZS9zaWduYWwuaCIgMiAzCgoKZXh0ZXJuIGludCBzaWdwcm9jbWFzayAoaW50IF9f
aG93LCBfX2NvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICBzaWdzZXRfdCAqX19yZXN0cmljdCBfX29zZXQpIDsKCgoKZXh0ZXJuIGludCBzaWdz
dXNwZW5kIChfX2NvbnN0IHNpZ3NldF90ICpfX3NldCkgOwoKCmV4dGVybiBpbnQgc2lnYWN0aW9u
IChpbnQgX19zaWcsIF9fY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqX19yZXN0cmljdCBfX2FjdCwK
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gKl9fcmVzdHJpY3QgX19vYWN0
KSA7CgoKZXh0ZXJuIGludCBzaWdwZW5kaW5nIChzaWdzZXRfdCAqX19zZXQpIDsKCgoKZXh0ZXJu
IGludCBzaWd3YWl0IChfX2NvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LCBpbnQgKl9f
cmVzdHJpY3QgX19zaWcpCiAgICAgOwoKCgpleHRlcm4gaW50IHNpZ3dhaXRpbmZvIChfX2NvbnN0
IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LAogICAgICAgICAgICAgICAgICAgICAgICBzaWdp
bmZvX3QgKl9fcmVzdHJpY3QgX19pbmZvKSA7CgoKCmV4dGVybiBpbnQgc2lndGltZWR3YWl0IChf
X2NvbnN0IHNpZ3NldF90ICpfX3Jlc3RyaWN0IF9fc2V0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgc2lnaW5mb190ICpfX3Jlc3RyaWN0IF9faW5mbywKICAgICAgICAgICAgICAgICAgICAgICAg
IF9fY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3Jlc3RyaWN0IF9fdGltZW91dCkKICAgICA7CgoK
CmV4dGVybiBpbnQgc2lncXVldWUgKF9fcGlkX3QgX19waWQsIGludCBfX3NpZywgX19jb25zdCB1
bmlvbiBzaWd2YWwgX192YWwpCiAgICAgOwojIDI3OCAiL3Vzci9sb2NhbC9pbmNsdWRlL3NpZ25h
bC5oIiAzCmV4dGVybiBfX2NvbnN0IGNoYXIgKl9fY29uc3QgX3N5c19zaWdsaXN0WzY0XTsKZXh0
ZXJuIF9fY29uc3QgY2hhciAqX19jb25zdCBzeXNfc2lnbGlzdFs2NF07CgoKc3RydWN0IHNpZ3Zl
YwogIHsKICAgIF9fc2lnaGFuZGxlcl90IHN2X2hhbmRsZXI7CiAgICBpbnQgc3ZfbWFzazsKCiAg
ICBpbnQgc3ZfZmxhZ3M7CgogIH07CiMgMzAyICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgi
IDMKZXh0ZXJuIGludCBzaWd2ZWMgKGludCBfX3NpZywgX19jb25zdCBzdHJ1Y3Qgc2lndmVjICpf
X3ZlYywKICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzaWd2ZWMgKl9fb3ZlYykgOwoKCgojIDEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2NvbnRleHQuaCIgMSAzCiMgMjggIi91c3IvbG9j
YWwvaW5jbHVkZS9iaXRzL3NpZ2NvbnRleHQuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9h
c20vc2lnY29udGV4dC5oIiAxIDMKIyAxOCAiL3Vzci9sb2NhbC9pbmNsdWRlL2FzbS9zaWdjb250
ZXh0LmgiIDMKc3RydWN0IF9mcHJlZyB7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc2lnbmlmaWNh
bmRbNF07CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZXhwb25lbnQ7Cn07CgpzdHJ1Y3QgX2ZweHJl
ZyB7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc2lnbmlmaWNhbmRbNF07CiAgICAgICAgdW5zaWdu
ZWQgc2hvcnQgZXhwb25lbnQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcGFkZGluZ1szXTsKfTsK
CnN0cnVjdCBfeG1tcmVnIHsKICAgICAgICB1bnNpZ25lZCBsb25nIGVsZW1lbnRbNF07Cn07Cgpz
dHJ1Y3QgX2Zwc3RhdGUgewoKICAgICAgICB1bnNpZ25lZCBsb25nIGN3OwogICAgICAgIHVuc2ln
bmVkIGxvbmcgc3c7CiAgICAgICAgdW5zaWduZWQgbG9uZyB0YWc7CiAgICAgICAgdW5zaWduZWQg
bG9uZyBpcG9mZjsKICAgICAgICB1bnNpZ25lZCBsb25nIGNzc2VsOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgZGF0YW9mZjsKICAgICAgICB1bnNpZ25lZCBsb25nIGRhdGFzZWw7CiAgICAgICAgc3Ry
dWN0IF9mcHJlZyBfc3RbOF07CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzOwogICAgICAg
IHVuc2lnbmVkIHNob3J0IG1hZ2ljOwoKCiAgICAgICAgdW5zaWduZWQgbG9uZyBfZnhzcl9lbnZb
Nl07CiAgICAgICAgdW5zaWduZWQgbG9uZyBteGNzcjsKICAgICAgICB1bnNpZ25lZCBsb25nIHJl
c2VydmVkOwogICAgICAgIHN0cnVjdCBfZnB4cmVnIF9meHNyX3N0WzhdOwogICAgICAgIHN0cnVj
dCBfeG1tcmVnIF94bW1bOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBwYWRkaW5nWzU2XTsKfTsK
CgoKc3RydWN0IHNpZ2NvbnRleHQgewogICAgICAgIHVuc2lnbmVkIHNob3J0IGdzLCBfX2dzaDsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBmcywgX19mc2g7CiAgICAgICAgdW5zaWduZWQgc2hvcnQg
ZXMsIF9fZXNoOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRzLCBfX2RzaDsKICAgICAgICB1bnNp
Z25lZCBsb25nIGVkaTsKICAgICAgICB1bnNpZ25lZCBsb25nIGVzaTsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGVicDsKICAgICAgICB1bnNpZ25lZCBsb25nIGVzcDsKICAgICAgICB1bnNpZ25lZCBs
b25nIGVieDsKICAgICAgICB1bnNpZ25lZCBsb25nIGVkeDsKICAgICAgICB1bnNpZ25lZCBsb25n
IGVjeDsKICAgICAgICB1bnNpZ25lZCBsb25nIGVheDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRy
YXBubzsKICAgICAgICB1bnNpZ25lZCBsb25nIGVycjsKICAgICAgICB1bnNpZ25lZCBsb25nIGVp
cDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjcywgX19jc2g7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBlZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBlc3BfYXRfc2lnbmFsOwogICAgICAgIHVu
c2lnbmVkIHNob3J0IHNzLCBfX3NzaDsKICAgICAgICBzdHJ1Y3QgX2Zwc3RhdGUgKiBmcHN0YXRl
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgb2xkbWFzazsKICAgICAgICB1bnNpZ25lZCBsb25nIGNy
MjsKfTsKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2lnY29udGV4dC5oIiAyIDMKIyAz
MDggIi91c3IvbG9jYWwvaW5jbHVkZS9zaWduYWwuaCIgMiAzCgoKZXh0ZXJuIGludCBzaWdyZXR1
cm4gKHN0cnVjdCBzaWdjb250ZXh0ICpfX3NjcCkgOwojIDMyMCAiL3Vzci9sb2NhbC9pbmNsdWRl
L3NpZ25hbC5oIiAzCmV4dGVybiBpbnQgc2lnaW50ZXJydXB0IChpbnQgX19zaWcsIGludCBfX2lu
dGVycnVwdCkgOwoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaWdzdGFjay5oIiAxIDMK
IyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2lnc3RhY2suaCIgMwpzdHJ1Y3Qgc2lnc3Rh
Y2sKICB7CiAgICB2b2lkICpzc19zcDsKICAgIGludCBzc19vbnN0YWNrOwogIH07CgoKCmVudW0K
ewogIFNTX09OU1RBQ0sgPSAxLAoKICBTU19ESVNBQkxFCgp9OwojIDUwICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvYml0cy9zaWdzdGFjay5oIiAzCnR5cGVkZWYgc3RydWN0IHNpZ2FsdHN0YWNrCiAgewog
ICAgdm9pZCAqc3Nfc3A7CiAgICBpbnQgc3NfZmxhZ3M7CiAgICBzaXplX3Qgc3Nfc2l6ZTsKICB9
IHN0YWNrX3Q7CiMgMzIzICIvdXNyL2xvY2FsL2luY2x1ZGUvc2lnbmFsLmgiIDIgMwoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvdWNvbnRleHQuaCIgMSAzCiMgMjcgIi91c3IvbG9jYWwvaW5jbHVk
ZS91Y29udGV4dC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAx
IDMKIyAyMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy91Y29udGV4dC5oIiAzCiMgMSAiL3Vzci9s
b2NhbC9pbmNsdWRlL3NpZ25hbC5oIiAxIDMKIyAyNCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy91
Y29udGV4dC5oIiAyIDMKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaWdjb250ZXh0
LmgiIDEgMwojIDI4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3Vjb250ZXh0LmgiIDIgMwoKCgp0
eXBlZGVmIGludCBncmVnX3Q7CgoKCgoKdHlwZWRlZiBncmVnX3QgZ3JlZ3NldF90WzE5XTsKCgoK
ZW51bQp7CiAgUkVHX0dTID0gMCwKCiAgUkVHX0ZTLAoKICBSRUdfRVMsCgogIFJFR19EUywKCiAg
UkVHX0VESSwKCiAgUkVHX0VTSSwKCiAgUkVHX0VCUCwKCiAgUkVHX0VTUCwKCiAgUkVHX0VCWCwK
CiAgUkVHX0VEWCwKCiAgUkVHX0VDWCwKCiAgUkVHX0VBWCwKCiAgUkVHX1RSQVBOTywKCiAgUkVH
X0VSUiwKCiAgUkVHX0VJUCwKCiAgUkVHX0NTLAoKICBSRUdfRUZMLAoKICBSRUdfVUVTUCwKCiAg
UkVHX1NTCgp9OwoKCgpzdHJ1Y3QgX2xpYmNfZnByZWcKewogIHVuc2lnbmVkIHNob3J0IGludCBz
aWduaWZpY2FuZFs0XTsKICB1bnNpZ25lZCBzaG9ydCBpbnQgZXhwb25lbnQ7Cn07CgpzdHJ1Y3Qg
X2xpYmNfZnBzdGF0ZQp7CiAgdW5zaWduZWQgbG9uZyBpbnQgY3c7CiAgdW5zaWduZWQgbG9uZyBp
bnQgc3c7CiAgdW5zaWduZWQgbG9uZyBpbnQgdGFnOwogIHVuc2lnbmVkIGxvbmcgaW50IGlwb2Zm
OwogIHVuc2lnbmVkIGxvbmcgaW50IGNzc2VsOwogIHVuc2lnbmVkIGxvbmcgaW50IGRhdGFvZmY7
CiAgdW5zaWduZWQgbG9uZyBpbnQgZGF0YXNlbDsKICBzdHJ1Y3QgX2xpYmNfZnByZWcgX3N0Wzhd
OwogIHVuc2lnbmVkIGxvbmcgaW50IHN0YXR1czsKfTsKCgp0eXBlZGVmIHN0cnVjdCBfbGliY19m
cHN0YXRlICpmcHJlZ3NldF90OwoKCnR5cGVkZWYgc3RydWN0CiAgewogICAgZ3JlZ3NldF90IGdy
ZWdzOwoKCiAgICBmcHJlZ3NldF90IGZwcmVnczsKICAgIHVuc2lnbmVkIGxvbmcgaW50IG9sZG1h
c2s7CiAgICB1bnNpZ25lZCBsb25nIGludCBjcjI7CiAgfSBtY29udGV4dF90OwoKCnR5cGVkZWYg
c3RydWN0IHVjb250ZXh0CiAgewogICAgdW5zaWduZWQgbG9uZyBpbnQgdWNfZmxhZ3M7CiAgICBz
dHJ1Y3QgdWNvbnRleHQgKnVjX2xpbms7CiAgICBzdGFja190IHVjX3N0YWNrOwogICAgbWNvbnRl
eHRfdCB1Y19tY29udGV4dDsKICAgIF9fc2lnc2V0X3QgdWNfc2lnbWFzazsKICAgIHN0cnVjdCBf
bGliY19mcHN0YXRlIF9fZnByZWdzX21lbTsKICB9IHVjb250ZXh0X3Q7CiMgMjggIi91c3IvbG9j
YWwvaW5jbHVkZS91Y29udGV4dC5oIiAyIDMKCgoKCmV4dGVybiBpbnQgZ2V0Y29udGV4dCAodWNv
bnRleHRfdCAqX191Y3ApIDsKCgpleHRlcm4gaW50IHNldGNvbnRleHQgKF9fY29uc3QgdWNvbnRl
eHRfdCAqX191Y3ApIDsKCgoKZXh0ZXJuIGludCBzd2FwY29udGV4dCAodWNvbnRleHRfdCAqX19y
ZXN0cmljdCBfX291Y3AsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdWNvbnRleHRf
dCAqX19yZXN0cmljdCBfX3VjcCkgOwoKCgoKCgoKZXh0ZXJuIHZvaWQgbWFrZWNvbnRleHQgKHVj
b250ZXh0X3QgKl9fdWNwLCB2b2lkICgqX19mdW5jKSAodm9pZCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgX19hcmdjLCAuLi4pIDsKCgojIDMyNSAiL3Vzci9sb2NhbC9pbmNsdWRlL3Np
Z25hbC5oIiAyIDMKCgoKCgpleHRlcm4gaW50IHNpZ3N0YWNrIChzdHJ1Y3Qgc2lnc3RhY2sgKl9f
c3MsIHN0cnVjdCBzaWdzdGFjayAqX19vc3MpIDsKCgoKZXh0ZXJuIGludCBzaWdhbHRzdGFjayAo
X19jb25zdCBzdHJ1Y3Qgc2lnYWx0c3RhY2sgKl9fcmVzdHJpY3QgX19zcywKICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IHNpZ2FsdHN0YWNrICpfX3Jlc3RyaWN0IF9fb3NzKSA7CgoKCgoK
CgpleHRlcm4gaW50IHNpZ2hvbGQgKGludCBfX3NpZykgOwoKCmV4dGVybiBpbnQgc2lncmVsc2Ug
KGludCBfX3NpZykgOwoKCmV4dGVybiBpbnQgc2lnaWdub3JlIChpbnQgX19zaWcpIDsKCgpleHRl
cm4gX19zaWdoYW5kbGVyX3Qgc2lnc2V0IChpbnQgX19zaWcsIF9fc2lnaGFuZGxlcl90IF9fZGlz
cCkgOwoKCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2lndGhyZWFkLmgiIDEgMwoj
IDMxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaWd0aHJlYWQuaCIgMwpleHRlcm4gaW50IHB0
aHJlYWRfc2lnbWFzayAoaW50IF9faG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19j
b25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9fbmV3bWFzaywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9fc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19vbGRtYXNrKTsKCgpleHRlcm4gaW50
IHB0aHJlYWRfa2lsbCAocHRocmVhZF90IF9fdGhyZWFkLCBpbnQgX19zaWdubykgOwojIDM1OSAi
L3Vzci9sb2NhbC9pbmNsdWRlL3NpZ25hbC5oIiAyIDMKCgoKCgoKZXh0ZXJuIGludCBfX2xpYmNf
Y3VycmVudF9zaWdydG1pbiAodm9pZCkgOwoKZXh0ZXJuIGludCBfX2xpYmNfY3VycmVudF9zaWdy
dG1heCAodm9pZCkgOwoKCgoKIyAxNjEgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCiMgMSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3N5cy93YWl0LmgiIDEgMwojIDI4ICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3lzL3dhaXQuaCIgMwoKIyA5OCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy93YWl0LmgiIDMKdHlw
ZWRlZiBlbnVtCnsKICBQX0FMTCwKICBQX1BJRCwKICBQX1BHSUQKfSBpZHR5cGVfdDsKCgoKCgpl
eHRlcm4gX19waWRfdCB3YWl0IChfX1dBSVRfU1RBVFVTIF9fc3RhdF9sb2MpIDsKIyAxMjkgIi91
c3IvbG9jYWwvaW5jbHVkZS9zeXMvd2FpdC5oIiAzCmV4dGVybiBfX3BpZF90IHdhaXRwaWQgKF9f
cGlkX3QgX19waWQsIGludCAqX19zdGF0X2xvYywgaW50IF9fb3B0aW9ucykgOwoKCgojIDEgIi91
c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMSAzCiMgMjUgIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL3NpZ2luZm8uaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3dvcmRz
aXplLmgiIDEgMwojIDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDIgMwoj
IDEzNCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy93YWl0LmgiIDIgMwojIDE0MiAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N5cy93YWl0LmgiIDMKZXh0ZXJuIGludCB3YWl0aWQgKGlkdHlwZV90IF9faWR0
eXBlLCBfX2lkX3QgX19pZCwgc2lnaW5mb190ICpfX2luZm9wLAogICAgICAgICAgICAgICAgICAg
aW50IF9fb3B0aW9ucykgOwoKCgoKCnN0cnVjdCBydXNhZ2U7CgoKCgoKCmV4dGVybiBfX3BpZF90
IHdhaXQzIChfX1dBSVRfU1RBVFVTIF9fc3RhdF9sb2MsIGludCBfX29wdGlvbnMsCiAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgcnVzYWdlICogX191c2FnZSkgOwoKCgoKCnN0cnVjdCBydXNh
Z2U7CgoKZXh0ZXJuIF9fcGlkX3Qgd2FpdDQgKF9fcGlkX3QgX19waWQsIF9fV0FJVF9TVEFUVVMg
X19zdGF0X2xvYywgaW50IF9fb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBy
dXNhZ2UgKl9fdXNhZ2UpIDsKCgoKCiMgMTY0ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgojIDEg
Ii91c3IvbG9jYWwvaW5jbHVkZS9jdHlwZS5oIiAxIDMKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2N0eXBlLmgiIDMKCiMgNDcgIi91c3IvbG9jYWwvaW5jbHVkZS9jdHlwZS5oIiAzCmVudW0Kewog
IF9JU3VwcGVyID0gKCgwKSA8IDggPyAoKDEgPDwgKDApKSA8PCA4KSA6ICgoMSA8PCAoMCkpID4+
IDgpKSwKICBfSVNsb3dlciA9ICgoMSkgPCA4ID8gKCgxIDw8ICgxKSkgPDwgOCkgOiAoKDEgPDwg
KDEpKSA+PiA4KSksCiAgX0lTYWxwaGEgPSAoKDIpIDwgOCA/ICgoMSA8PCAoMikpIDw8IDgpIDog
KCgxIDw8ICgyKSkgPj4gOCkpLAogIF9JU2RpZ2l0ID0gKCgzKSA8IDggPyAoKDEgPDwgKDMpKSA8
PCA4KSA6ICgoMSA8PCAoMykpID4+IDgpKSwKICBfSVN4ZGlnaXQgPSAoKDQpIDwgOCA/ICgoMSA8
PCAoNCkpIDw8IDgpIDogKCgxIDw8ICg0KSkgPj4gOCkpLAogIF9JU3NwYWNlID0gKCg1KSA8IDgg
PyAoKDEgPDwgKDUpKSA8PCA4KSA6ICgoMSA8PCAoNSkpID4+IDgpKSwKICBfSVNwcmludCA9ICgo
NikgPCA4ID8gKCgxIDw8ICg2KSkgPDwgOCkgOiAoKDEgPDwgKDYpKSA+PiA4KSksCiAgX0lTZ3Jh
cGggPSAoKDcpIDwgOCA/ICgoMSA8PCAoNykpIDw8IDgpIDogKCgxIDw8ICg3KSkgPj4gOCkpLAog
IF9JU2JsYW5rID0gKCg4KSA8IDggPyAoKDEgPDwgKDgpKSA8PCA4KSA6ICgoMSA8PCAoOCkpID4+
IDgpKSwKICBfSVNjbnRybCA9ICgoOSkgPCA4ID8gKCgxIDw8ICg5KSkgPDwgOCkgOiAoKDEgPDwg
KDkpKSA+PiA4KSksCiAgX0lTcHVuY3QgPSAoKDEwKSA8IDggPyAoKDEgPDwgKDEwKSkgPDwgOCkg
OiAoKDEgPDwgKDEwKSkgPj4gOCkpLAogIF9JU2FsbnVtID0gKCgxMSkgPCA4ID8gKCgxIDw8ICgx
MSkpIDw8IDgpIDogKCgxIDw8ICgxMSkpID4+IDgpKQp9OwojIDc1ICIvdXNyL2xvY2FsL2luY2x1
ZGUvY3R5cGUuaCIgMwpleHRlcm4gX19jb25zdCB1bnNpZ25lZCBzaG9ydCBpbnQgKl9fY3R5cGVf
YjsKZXh0ZXJuIF9fY29uc3QgX19pbnQzMl90ICpfX2N0eXBlX3RvbG93ZXI7CmV4dGVybiBfX2Nv
bnN0IF9faW50MzJfdCAqX19jdHlwZV90b3VwcGVyOwojIDkxICIvdXNyL2xvY2FsL2luY2x1ZGUv
Y3R5cGUuaCIgMwpleHRlcm4gaW50IGlzYWxudW0gKGludCkgOwpleHRlcm4gaW50IGlzYWxwaGEg
KGludCkgOwpleHRlcm4gaW50IGlzY250cmwgKGludCkgOwpleHRlcm4gaW50IGlzZGlnaXQgKGlu
dCkgOwpleHRlcm4gaW50IGlzbG93ZXIgKGludCkgOwpleHRlcm4gaW50IGlzZ3JhcGggKGludCkg
OwpleHRlcm4gaW50IGlzcHJpbnQgKGludCkgOwpleHRlcm4gaW50IGlzcHVuY3QgKGludCkgOwpl
eHRlcm4gaW50IGlzc3BhY2UgKGludCkgOwpleHRlcm4gaW50IGlzdXBwZXIgKGludCkgOwpleHRl
cm4gaW50IGlzeGRpZ2l0IChpbnQpIDsKCgpleHRlcm4gaW50IGlzYmxhbmsgKGludCkgOwoKCgoK
ZXh0ZXJuIGludCB0b2xvd2VyIChpbnQgX19jKSA7CgoKZXh0ZXJuIGludCB0b3VwcGVyIChpbnQg
X19jKSA7CgoKCgoKCmV4dGVybiBpbnQgaXNhc2NpaSAoaW50IF9fYykgOwoKCgpleHRlcm4gaW50
IHRvYXNjaWkgKGludCBfX2MpIDsKCgoKZXh0ZXJuIGludCBfdG91cHBlciAoaW50KSA7CmV4dGVy
biBpbnQgX3RvbG93ZXIgKGludCkgOwojIDE2NyAiL3Vzci9sb2NhbC9pbmNsdWRlL2N0eXBlLmgi
IDMKZXh0ZXJuIF9faW5saW5lIGludAp0b2xvd2VyIChpbnQgX19jKQp7CiAgcmV0dXJuIF9fYyA+
PSAtMTI4ICYmIF9fYyA8IDI1NiA/IF9fY3R5cGVfdG9sb3dlcltfX2NdIDogX19jOwp9CgpleHRl
cm4gX19pbmxpbmUgaW50CnRvdXBwZXIgKGludCBfX2MpCnsKICByZXR1cm4gX19jID49IC0xMjgg
JiYgX19jIDwgMjU2ID8gX19jdHlwZV90b3VwcGVyW19fY10gOiBfX2M7Cn0KIyAyMjMgIi91c3Iv
bG9jYWwvaW5jbHVkZS9jdHlwZS5oIiAzCmV4dGVybiBpbnQgX19pc2FsbnVtX2wgKGludCwgX19s
b2NhbGVfdCkgOwpleHRlcm4gaW50IF9faXNhbHBoYV9sIChpbnQsIF9fbG9jYWxlX3QpIDsKZXh0
ZXJuIGludCBfX2lzY250cmxfbCAoaW50LCBfX2xvY2FsZV90KSA7CmV4dGVybiBpbnQgX19pc2Rp
Z2l0X2wgKGludCwgX19sb2NhbGVfdCkgOwpleHRlcm4gaW50IF9faXNsb3dlcl9sIChpbnQsIF9f
bG9jYWxlX3QpIDsKZXh0ZXJuIGludCBfX2lzZ3JhcGhfbCAoaW50LCBfX2xvY2FsZV90KSA7CmV4
dGVybiBpbnQgX19pc3ByaW50X2wgKGludCwgX19sb2NhbGVfdCkgOwpleHRlcm4gaW50IF9faXNw
dW5jdF9sIChpbnQsIF9fbG9jYWxlX3QpIDsKZXh0ZXJuIGludCBfX2lzc3BhY2VfbCAoaW50LCBf
X2xvY2FsZV90KSA7CmV4dGVybiBpbnQgX19pc3VwcGVyX2wgKGludCwgX19sb2NhbGVfdCkgOwpl
eHRlcm4gaW50IF9faXN4ZGlnaXRfbCAoaW50LCBfX2xvY2FsZV90KSA7CgpleHRlcm4gaW50IF9f
aXNibGFua19sIChpbnQsIF9fbG9jYWxlX3QpIDsKCgoKZXh0ZXJuIGludCBfX3RvbG93ZXJfbCAo
aW50IF9fYywgX19sb2NhbGVfdCBfX2wpIDsKCgpleHRlcm4gaW50IF9fdG91cHBlcl9sIChpbnQg
X19jLCBfX2xvY2FsZV90IF9fbCkgOwojIDI3NiAiL3Vzci9sb2NhbC9pbmNsdWRlL2N0eXBlLmgi
IDMKCiMgMTY3ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9ncnAuaCIgMSAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9ncnAuaCIgMwoKCgoKCiMgMSAi
L3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzCiMgMzQgIi91c3IvbG9jYWwvaW5jbHVkZS9ncnAuaCIgMiAzCiMgNDMg
Ii91c3IvbG9jYWwvaW5jbHVkZS9ncnAuaCIgMwpzdHJ1Y3QgZ3JvdXAKICB7CiAgICBjaGFyICpn
cl9uYW1lOwogICAgY2hhciAqZ3JfcGFzc3dkOwogICAgX19naWRfdCBncl9naWQ7CiAgICBjaGFy
ICoqZ3JfbWVtOwogIH07CiMgNjAgIi91c3IvbG9jYWwvaW5jbHVkZS9ncnAuaCIgMwpleHRlcm4g
dm9pZCBzZXRncmVudCAodm9pZCkgOwoKCmV4dGVybiB2b2lkIGVuZGdyZW50ICh2b2lkKSA7CgoK
ZXh0ZXJuIHN0cnVjdCBncm91cCAqZ2V0Z3JlbnQgKHZvaWQpIDsKCgoKCmV4dGVybiBzdHJ1Y3Qg
Z3JvdXAgKmZnZXRncmVudCAoRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgcHV0Z3Jl
bnQgKF9fY29uc3Qgc3RydWN0IGdyb3VwICpfX3Jlc3RyaWN0IF9fcCwKICAgICAgICAgICAgICAg
ICAgICAgRklMRSAqX19yZXN0cmljdCBfX2YpIDsKCgoKZXh0ZXJuIHN0cnVjdCBncm91cCAqZ2V0
Z3JnaWQgKF9fZ2lkX3QgX19naWQpIDsKCgpleHRlcm4gc3RydWN0IGdyb3VwICpnZXRncm5hbSAo
X19jb25zdCBjaGFyICpfX25hbWUpIDsKIyAxMDMgIi91c3IvbG9jYWwvaW5jbHVkZS9ncnAuaCIg
MwpleHRlcm4gaW50IGdldGdyZW50X3IgKHN0cnVjdCBncm91cCAqX19yZXN0cmljdCBfX3Jlc3Vs
dGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmZmVyLCBz
aXplX3QgX19idWZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdyb3VwICoqX19y
ZXN0cmljdCBfX3Jlc3VsdCkgOwoKCgpleHRlcm4gaW50IGdldGdyZ2lkX3IgKF9fZ2lkX3QgX19n
aWQsIHN0cnVjdCBncm91cCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IGdyb3VwICoqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoK
CmV4dGVybiBpbnQgZ2V0Z3JuYW1fciAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ3JvdXAgKl9fcmVzdHJpY3QgX19yZXN1bHRi
dWYsCiAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZmZlciwgc2l6
ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBncm91cCAqKl9fcmVz
dHJpY3QgX19yZXN1bHQpIDsKCgoKCmV4dGVybiBpbnQgZmdldGdyZW50X3IgKEZJTEUgKl9fcmVz
dHJpY3QgX19zdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBncm91cCAqX19y
ZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0
cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgZ3JvdXAgKipfX3Jlc3RyaWN0IF9fcmVzdWx0KSA7CiMgMTM0ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvZ3JwLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMt
bGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAxMzUgIi91c3IvbG9jYWwvaW5j
bHVkZS9ncnAuaCIgMiAzCgoKZXh0ZXJuIGludCBzZXRncm91cHMgKHNpemVfdCBfX24sIF9fY29u
c3QgX19naWRfdCAqX19ncm91cHMpIDsKCgoKCmV4dGVybiBpbnQgZ2V0Z3JvdXBsaXN0IChfX2Nv
bnN0IGNoYXIgKl9fdXNlciwgX19naWRfdCBfX2dyb3VwLAogICAgICAgICAgICAgICAgICAgICAg
ICAgX19naWRfdCAqX19ncm91cHMsIGludCAqX19uZ3JvdXBzKSA7CgoKCgpleHRlcm4gaW50IGlu
aXRncm91cHMgKF9fY29uc3QgY2hhciAqX191c2VyLCBfX2dpZF90IF9fZ3JvdXApIDsKCgoKCiMg
MTcwICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyAxNzggImluY2x1ZGUvaW5jbHVkZXMuaCIKIyAx
ICIvdXNyL2xvY2FsL2luY2x1ZGUvZXJybm8uaCIgMSAzCiMgMzIgIi91c3IvbG9jYWwvaW5jbHVk
ZS9lcnJuby5oIiAzCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2Vycm5vLmgiIDEg
MwojIDI1ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9lcnJuby5oIiAzCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDEgMwoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9h
c20vZXJybm8uaCIgMSAzCiMgNSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDIg
MwojIDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9lcnJuby5oIiAyIDMKIyAzNiAiL3Vzci9s
b2NhbC9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMwpleHRlcm4gaW50IGVycm5vOwoKCmV4dGVybiBp
bnQgKl9fZXJybm9fbG9jYXRpb24gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK
IyAzNyAiL3Vzci9sb2NhbC9pbmNsdWRlL2Vycm5vLmgiIDIgMwojIDU1ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvZXJybm8uaCIgMwpleHRlcm4gY2hhciAqcHJvZ3JhbV9pbnZvY2F0aW9uX25hbWUsICpw
cm9ncmFtX2ludm9jYXRpb25fc2hvcnRfbmFtZTsKCgoKCiMgNjkgIi91c3IvbG9jYWwvaW5jbHVk
ZS9lcnJuby5oIiAzCnR5cGVkZWYgaW50IGVycm9yX3Q7CiMgMTc5ICJpbmNsdWRlL2luY2x1ZGVz
LmgiIDIKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS91dGltZS5oIiAxIDMKIyAyOCAiL3Vzci9s
b2NhbC9pbmNsdWRlL3V0aW1lLmgiIDMKCiMgMzggIi91c3IvbG9jYWwvaW5jbHVkZS91dGltZS5o
IiAzCnN0cnVjdCB1dGltYnVmCiAgewogICAgX190aW1lX3QgYWN0aW1lOwogICAgX190aW1lX3Qg
bW9kdGltZTsKICB9OwoKCgpleHRlcm4gaW50IHV0aW1lIChfX2NvbnN0IGNoYXIgKl9fZmlsZSwK
ICAgICAgICAgICAgICAgICAgX19jb25zdCBzdHJ1Y3QgdXRpbWJ1ZiAqX19maWxlX3RpbWVzKSA7
CgoKIyAxODIgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDE5NiAiaW5jbHVkZS9pbmNsdWRlcy5o
IgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9nbG9iLmgiIDEgMwojIDExMSAiL3Vzci9sb2NhbC9p
bmNsdWRlL2dsb2IuaCIgMwpzdHJ1Y3Qgc3RhdDsKCgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIHNp
emVfdCBnbF9wYXRoYzsKICAgIGNoYXIgKipnbF9wYXRodjsKICAgIHNpemVfdCBnbF9vZmZzOwog
ICAgaW50IGdsX2ZsYWdzOwoKCgogICAgdm9pZCAoKmdsX2Nsb3NlZGlyKSAodm9pZCAqKTsKCiAg
ICBzdHJ1Y3QgZGlyZW50ICooKmdsX3JlYWRkaXIpICh2b2lkICopOwoKCgogICAgdm9pZCAqICgq
Z2xfb3BlbmRpcikgKF9fY29uc3QgY2hhciAqKTsKCiAgICBpbnQgKCpnbF9sc3RhdCkgKF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCwgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QpOwoKICAgIGludCAo
KmdsX3N0YXQpIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QsIHN0cnVjdCBzdGF0ICpfX3Jlc3Ry
aWN0KTsKCgoKCiAgfSBnbG9iX3Q7CgoKCnN0cnVjdCBzdGF0NjQ7Cgp0eXBlZGVmIHN0cnVjdAog
IHsKICAgIHNpemVfdCBnbF9wYXRoYzsKICAgIGNoYXIgKipnbF9wYXRodjsKICAgIHNpemVfdCBn
bF9vZmZzOwogICAgaW50IGdsX2ZsYWdzOwoKCgogICAgdm9pZCAoKmdsX2Nsb3NlZGlyKSAodm9p
ZCAqKTsKCiAgICBzdHJ1Y3QgZGlyZW50NjQgKigqZ2xfcmVhZGRpcikgKHZvaWQgKik7CgoKCiAg
ICB2b2lkICogKCpnbF9vcGVuZGlyKSAoX19jb25zdCBjaGFyICopOwoKICAgIGludCAoKmdsX2xz
dGF0KSAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0LCBzdHJ1Y3Qgc3RhdDY0ICpfX3Jlc3RyaWN0
KTsKCiAgICBpbnQgKCpnbF9zdGF0KSAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0LCBzdHJ1Y3Qg
c3RhdDY0ICpfX3Jlc3RyaWN0KTsKCgoKCgogIH0gZ2xvYjY0X3Q7CiMgMTkzICIvdXNyL2xvY2Fs
L2luY2x1ZGUvZ2xvYi5oIiAzCmV4dGVybiBpbnQgZ2xvYiAoX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fcGF0dGVybiwgaW50IF9fZmxhZ3MsIGludCAoKl9fZXJyZnVuYykgKF9fY29uc3QgY2hh
ciAqLCBpbnQpLCBnbG9iX3QgKl9fcmVzdHJpY3QgX19wZ2xvYikgX19hc21fXyAoImdsb2I2NCIp
OwoKCgpleHRlcm4gdm9pZCBnbG9iZnJlZSAoZ2xvYl90ICpfX3BnbG9iKSBfX2FzbV9fICgiZ2xv
YmZyZWU2NCIpOwoKCgpleHRlcm4gaW50IGdsb2I2NCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcGF0dGVybiwgaW50IF9fZmxhZ3MsIGludCAoKl9fZXJyZnVuYykgKF9fY29uc3QgY2hhciAq
LCBpbnQpLCBnbG9iNjRfdCAqX19yZXN0cmljdCBfX3BnbG9iKSA7CgoKCmV4dGVybiB2b2lkIGds
b2JmcmVlNjQgKGdsb2I2NF90ICpfX3BnbG9iKSA7CiMgMjE1ICIvdXNyL2xvY2FsL2luY2x1ZGUv
Z2xvYi5oIiAzCmV4dGVybiBpbnQgZ2xvYl9wYXR0ZXJuX3AgKF9fY29uc3QgY2hhciAqX19wYXR0
ZXJuLCBpbnQgX19xdW90ZSkgOwojIDE5NyAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvcHdkLmgiIDEgMwojIDI4ICIvdXNyL2xvY2FsL2luY2x1ZGUvcHdk
LmgiIDMKCgoKCgojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51
eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUv
cHdkLmgiIDIgMwojIDUwICIvdXNyL2xvY2FsL2luY2x1ZGUvcHdkLmgiIDMKc3RydWN0IHBhc3N3
ZAp7CiAgY2hhciAqcHdfbmFtZTsKICBjaGFyICpwd19wYXNzd2Q7CiAgX191aWRfdCBwd191aWQ7
CiAgX19naWRfdCBwd19naWQ7CiAgY2hhciAqcHdfZ2Vjb3M7CiAgY2hhciAqcHdfZGlyOwogIGNo
YXIgKnB3X3NoZWxsOwp9OwojIDcwICIvdXNyL2xvY2FsL2luY2x1ZGUvcHdkLmgiIDMKZXh0ZXJu
IHZvaWQgc2V0cHdlbnQgKHZvaWQpIDsKCgpleHRlcm4gdm9pZCBlbmRwd2VudCAodm9pZCkgOwoK
CmV4dGVybiBzdHJ1Y3QgcGFzc3dkICpnZXRwd2VudCAodm9pZCkgOwoKCgoKZXh0ZXJuIHN0cnVj
dCBwYXNzd2QgKmZnZXRwd2VudCAoRklMRSAqX19zdHJlYW0pIDsKCgpleHRlcm4gaW50IHB1dHB3
ZW50IChfX2NvbnN0IHN0cnVjdCBwYXNzd2QgKl9fcmVzdHJpY3QgX19wLAogICAgICAgICAgICAg
ICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fZikgOwoKCgpleHRlcm4gc3RydWN0IHBhc3N3ZCAq
Z2V0cHd1aWQgKF9fdWlkX3QgX191aWQpIDsKCgpleHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHdu
YW0gKF9fY29uc3QgY2hhciAqX19uYW1lKSA7CiMgMTExICIvdXNyL2xvY2FsL2luY2x1ZGUvcHdk
LmgiIDMKZXh0ZXJuIGludCBnZXRwd2VudF9yIChzdHJ1Y3QgcGFzc3dkICpfX3Jlc3RyaWN0IF9f
cmVzdWx0YnVmLAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWZm
ZXIsIHNpemVfdCBfX2J1ZmxlbiwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFzc3dk
ICoqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKCmV4dGVybiBpbnQgZ2V0cHd1aWRfciAoX191aWRf
dCBfX3VpZCwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICpfX3Jlc3RyaWN0
IF9fcmVzdWx0YnVmLAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19i
dWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFz
c3dkICoqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKZXh0ZXJuIGludCBnZXRwd25hbV9yIChfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCBwYXNzd2QgKl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCiAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqX19yZXN0cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBwYXNzd2QgKipfX3Jlc3RyaWN0IF9fcmVzdWx0KSA7CgoKCgoKZXh0
ZXJuIGludCBmZ2V0cHdlbnRfciAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IHBhc3N3ZCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9f
YnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFzc3dkICoqX19yZXN0cmlj
dCBfX3Jlc3VsdCkgOwojIDE0MiAiL3Vzci9sb2NhbC9pbmNsdWRlL3B3ZC5oIiAzCmV4dGVybiBp
bnQgZ2V0cHcgKF9fdWlkX3QgX191aWQsIGNoYXIgKl9fYnVmZmVyKSA7CgoKCiMgMjAwICJpbmNs
dWRlL2luY2x1ZGVzLmgiIDIKCgojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4
Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMwojIDIwMyAiaW5jbHVkZS9p
bmNsdWRlcy5oIiAyCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDEg
MwojIDIzICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAzCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N0ZGludC5oIiAxIDMKIyAyOCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGludC5o
IiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAzCiMgMjkgIi91
c3IvbG9jYWwvaW5jbHVkZS9zdGRpbnQuaCIgMiAzCiMgNTIgIi91c3IvbG9jYWwvaW5jbHVkZS9z
dGRpbnQuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludDhfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBzaG9ydCBpbnQgdWludDE2X3Q7Cgp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsKCgoK
CgpfX2V4dGVuc2lvbl9fCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCB1aW50NjRfdDsK
CgoKCgoKdHlwZWRlZiBzaWduZWQgY2hhciBpbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgc2hvcnQgaW50
IGludF9sZWFzdDE2X3Q7CnR5cGVkZWYgaW50IGludF9sZWFzdDMyX3Q7CgoKCl9fZXh0ZW5zaW9u
X18KdHlwZWRlZiBsb25nIGxvbmcgaW50IGludF9sZWFzdDY0X3Q7CgoKCnR5cGVkZWYgdW5zaWdu
ZWQgY2hhciB1aW50X2xlYXN0OF90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCB1aW50X2xl
YXN0MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9sZWFzdDMyX3Q7CgoKCl9fZXh0ZW5z
aW9uX18KdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnRfbGVhc3Q2NF90OwoKCgoK
Cgp0eXBlZGVmIHNpZ25lZCBjaGFyIGludF9mYXN0OF90OwoKCgoKCnR5cGVkZWYgaW50IGludF9m
YXN0MTZfdDsKdHlwZWRlZiBpbnQgaW50X2Zhc3QzMl90OwpfX2V4dGVuc2lvbl9fCnR5cGVkZWYg
bG9uZyBsb25nIGludCBpbnRfZmFzdDY0X3Q7CgoKCnR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50
X2Zhc3Q4X3Q7CgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9mYXN0MTZfdDsKdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgdWludF9mYXN0MzJfdDsKX19leHRlbnNpb25fXwp0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgbG9uZyBpbnQgdWludF9mYXN0NjRfdDsKIyAxMzIgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zdGRpbnQuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50cHRyX3Q7CiMgMTQxICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3RkaW50LmgiIDMKX19leHRlbnNpb25fXwp0eXBlZGVmIGxvbmcgbG9u
ZyBpbnQgaW50bWF4X3Q7Cl9fZXh0ZW5zaW9uX18KdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcg
aW50IHVpbnRtYXhfdDsKIyAyNCAiL3Vzci9sb2NhbC9pbmNsdWRlL25ldGluZXQvaW4uaCIgMiAz
CgoKCgoKCmVudW0KICB7CiAgICBJUFBST1RPX0lQID0gMCwKCiAgICBJUFBST1RPX0hPUE9QVFMg
PSAwLAoKICAgIElQUFJPVE9fSUNNUCA9IDEsCgogICAgSVBQUk9UT19JR01QID0gMiwKCiAgICBJ
UFBST1RPX0lQSVAgPSA0LAoKICAgIElQUFJPVE9fVENQID0gNiwKCiAgICBJUFBST1RPX0VHUCA9
IDgsCgogICAgSVBQUk9UT19QVVAgPSAxMiwKCiAgICBJUFBST1RPX1VEUCA9IDE3LAoKICAgIElQ
UFJPVE9fSURQID0gMjIsCgogICAgSVBQUk9UT19UUCA9IDI5LAoKICAgIElQUFJPVE9fSVBWNiA9
IDQxLAoKICAgIElQUFJPVE9fUk9VVElORyA9IDQzLAoKICAgIElQUFJPVE9fRlJBR01FTlQgPSA0
NCwKCiAgICBJUFBST1RPX1JTVlAgPSA0NiwKCiAgICBJUFBST1RPX0dSRSA9IDQ3LAoKICAgIElQ
UFJPVE9fRVNQID0gNTAsCgogICAgSVBQUk9UT19BSCA9IDUxLAoKICAgIElQUFJPVE9fSUNNUFY2
ID0gNTgsCgogICAgSVBQUk9UT19OT05FID0gNTksCgogICAgSVBQUk9UT19EU1RPUFRTID0gNjAs
CgogICAgSVBQUk9UT19NVFAgPSA5MiwKCiAgICBJUFBST1RPX0VOQ0FQID0gOTgsCgogICAgSVBQ
Uk9UT19QSU0gPSAxMDMsCgogICAgSVBQUk9UT19DT01QID0gMTA4LAoKICAgIElQUFJPVE9fUkFX
ID0gMjU1LAoKICAgIElQUFJPVE9fTUFYCiAgfTsKCgoKdHlwZWRlZiB1aW50MTZfdCBpbl9wb3J0
X3Q7CgoKZW51bQogIHsKICAgIElQUE9SVF9FQ0hPID0gNywKICAgIElQUE9SVF9ESVNDQVJEID0g
OSwKICAgIElQUE9SVF9TWVNUQVQgPSAxMSwKICAgIElQUE9SVF9EQVlUSU1FID0gMTMsCiAgICBJ
UFBPUlRfTkVUU1RBVCA9IDE1LAogICAgSVBQT1JUX0ZUUCA9IDIxLAogICAgSVBQT1JUX1RFTE5F
VCA9IDIzLAogICAgSVBQT1JUX1NNVFAgPSAyNSwKICAgIElQUE9SVF9USU1FU0VSVkVSID0gMzcs
CiAgICBJUFBPUlRfTkFNRVNFUlZFUiA9IDQyLAogICAgSVBQT1JUX1dIT0lTID0gNDMsCiAgICBJ
UFBPUlRfTVRQID0gNTcsCgogICAgSVBQT1JUX1RGVFAgPSA2OSwKICAgIElQUE9SVF9SSkUgPSA3
NywKICAgIElQUE9SVF9GSU5HRVIgPSA3OSwKICAgIElQUE9SVF9UVFlMSU5LID0gODcsCiAgICBJ
UFBPUlRfU1VQRFVQID0gOTUsCgoKICAgIElQUE9SVF9FWEVDU0VSVkVSID0gNTEyLAogICAgSVBQ
T1JUX0xPR0lOU0VSVkVSID0gNTEzLAogICAgSVBQT1JUX0NNRFNFUlZFUiA9IDUxNCwKICAgIElQ
UE9SVF9FRlNTRVJWRVIgPSA1MjAsCgoKICAgIElQUE9SVF9CSUZGVURQID0gNTEyLAogICAgSVBQ
T1JUX1dIT1NFUlZFUiA9IDUxMywKICAgIElQUE9SVF9ST1VURVNFUlZFUiA9IDUyMCwKCgogICAg
SVBQT1JUX1JFU0VSVkVEID0gMTAyNCwKCgogICAgSVBQT1JUX1VTRVJSRVNFUlZFRCA9IDUwMDAK
ICB9OwoKCgp0eXBlZGVmIHVpbnQzMl90IGluX2FkZHJfdDsKc3RydWN0IGluX2FkZHIKICB7CiAg
ICBpbl9hZGRyX3Qgc19hZGRyOwogIH07CiMgMTkwICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0aW5l
dC9pbi5oIiAzCnN0cnVjdCBpbjZfYWRkcgogIHsKICAgIHVuaW9uCiAgICAgIHsKICAgICAgICB1
aW50OF90IHU2X2FkZHI4WzE2XTsKICAgICAgICB1aW50MTZfdCB1Nl9hZGRyMTZbOF07CiAgICAg
ICAgdWludDMyX3QgdTZfYWRkcjMyWzRdOwogICAgICB9IGluNl91OwoKCgogIH07CgpleHRlcm4g
Y29uc3Qgc3RydWN0IGluNl9hZGRyIGluNmFkZHJfYW55OwpleHRlcm4gY29uc3Qgc3RydWN0IGlu
Nl9hZGRyIGluNmFkZHJfbG9vcGJhY2s7CiMgMjE2ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0aW5l
dC9pbi5oIiAzCnN0cnVjdCBzb2NrYWRkcl9pbgogIHsKICAgIHNhX2ZhbWlseV90IHNpbl9mYW1p
bHk7CiAgICBpbl9wb3J0X3Qgc2luX3BvcnQ7CiAgICBzdHJ1Y3QgaW5fYWRkciBzaW5fYWRkcjsK
CgogICAgdW5zaWduZWQgY2hhciBzaW5femVyb1tzaXplb2YgKHN0cnVjdCBzb2NrYWRkcikgLQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZW9mICh1bnNpZ25lZCBzaG9ydCBpbnQpKSAt
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoaW5fcG9ydF90KSAtCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVvZiAoc3RydWN0IGluX2FkZHIpXTsKICB9OwoKCnN0cnVj
dCBzb2NrYWRkcl9pbjYKICB7CiAgICBzYV9mYW1pbHlfdCBzaW42X2ZhbWlseTsKICAgIGluX3Bv
cnRfdCBzaW42X3BvcnQ7CiAgICB1aW50MzJfdCBzaW42X2Zsb3dpbmZvOwogICAgc3RydWN0IGlu
Nl9hZGRyIHNpbjZfYWRkcjsKICAgIHVpbnQzMl90IHNpbjZfc2NvcGVfaWQ7CiAgfTsKCgpzdHJ1
Y3QgaXB2Nl9tcmVxCiAgewoKICAgIHN0cnVjdCBpbjZfYWRkciBpcHY2bXJfbXVsdGlhZGRyOwoK
CiAgICB1bnNpZ25lZCBpbnQgaXB2Nm1yX2ludGVyZmFjZTsKICB9OwoKCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2JpdHMvaW4uaCIgMSAzCiMgNjYgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2lu
LmgiIDMKc3RydWN0IGlwX29wdHMKICB7CiAgICBzdHJ1Y3QgaW5fYWRkciBpcF9kc3Q7CiAgICBj
aGFyIGlwX29wdHNbNDBdOwogIH07CgoKc3RydWN0IGlwX21yZXEKICB7CiAgICBzdHJ1Y3QgaW5f
YWRkciBpbXJfbXVsdGlhZGRyOwogICAgc3RydWN0IGluX2FkZHIgaW1yX2ludGVyZmFjZTsKICB9
OwoKCnN0cnVjdCBpcF9tcmVxbgogIHsKICAgIHN0cnVjdCBpbl9hZGRyIGltcl9tdWx0aWFkZHI7
CiAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfYWRkcmVzczsKICAgIGludCBpbXJfaWZpbmRleDsKICB9
OwoKCnN0cnVjdCBpbl9wa3RpbmZvCiAgewogICAgaW50IGlwaV9pZmluZGV4OwogICAgc3RydWN0
IGluX2FkZHIgaXBpX3NwZWNfZHN0OwogICAgc3RydWN0IGluX2FkZHIgaXBpX2FkZHI7CiAgfTsK
IyAyNTEgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDIgMwojIDI1OSAiL3Vzci9s
b2NhbC9pbmNsdWRlL25ldGluZXQvaW4uaCIgMwpleHRlcm4gdWludDMyX3QgbnRvaGwgKHVpbnQz
Ml90IF9fbmV0bG9uZykgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwpleHRlcm4gdWludDE2
X3QgbnRvaHMgKHVpbnQxNl90IF9fbmV0c2hvcnQpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fY29u
c3RfXykpOwpleHRlcm4gdWludDMyX3QgaHRvbmwgKHVpbnQzMl90IF9faG9zdGxvbmcpCiAgICAg
X19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwpleHRlcm4gdWludDE2X3QgaHRvbnMgKHVpbnQx
Nl90IF9faG9zdHNob3J0KQogICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKCiMg
MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvYnl0ZXN3YXAuaCIgMSAzCiMgMjcxICIvdXNyL2xv
Y2FsL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAyIDMKIyAzMzMgIi91c3IvbG9jYWwvaW5jbHVkZS9u
ZXRpbmV0L2luLmgiIDMKZXh0ZXJuIGludCBiaW5kcmVzdnBvcnQgKGludCBfX3NvY2tmZCwgc3Ry
dWN0IHNvY2thZGRyX2luICpfX3NvY2tfaW4pIDsKCgpleHRlcm4gaW50IGJpbmRyZXN2cG9ydDYg
KGludCBfX3NvY2tmZCwgc3RydWN0IHNvY2thZGRyX2luNiAqX19zb2NrX2luKQogICAgIDsKIyAz
NjEgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMKc3RydWN0IGluNl9wa3RpbmZv
CiAgewogICAgc3RydWN0IGluNl9hZGRyIGlwaTZfYWRkcjsKICAgIHVuc2lnbmVkIGludCBpcGk2
X2lmaW5kZXg7CiAgfTsKCgojIDIwOCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9pbmNsdWRlL2FycGEvaW5ldC5oIiAxIDMKIyAzMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2Fy
cGEvaW5ldC5oIiAzCgoKCgpleHRlcm4gaW5fYWRkcl90IGluZXRfYWRkciAoX19jb25zdCBjaGFy
ICpfX2NwKSA7CgoKZXh0ZXJuIGluX2FkZHJfdCBpbmV0X2xuYW9mIChzdHJ1Y3QgaW5fYWRkciBf
X2luKSA7CgoKCmV4dGVybiBzdHJ1Y3QgaW5fYWRkciBpbmV0X21ha2VhZGRyIChpbl9hZGRyX3Qg
X19uZXQsIGluX2FkZHJfdCBfX2hvc3QpCiAgICAgOwoKCmV4dGVybiBpbl9hZGRyX3QgaW5ldF9u
ZXRvZiAoc3RydWN0IGluX2FkZHIgX19pbikgOwoKCgpleHRlcm4gaW5fYWRkcl90IGluZXRfbmV0
d29yayAoX19jb25zdCBjaGFyICpfX2NwKSA7CgoKCmV4dGVybiBjaGFyICppbmV0X250b2EgKHN0
cnVjdCBpbl9hZGRyIF9faW4pIDsKCgoKCmV4dGVybiBpbnQgaW5ldF9wdG9uIChpbnQgX19hZiwg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY3AsCiAgICAgICAgICAgICAgICAgICAgICB2b2lk
ICpfX3Jlc3RyaWN0IF9fYnVmKSA7CgoKCgpleHRlcm4gX19jb25zdCBjaGFyICppbmV0X250b3Ag
KGludCBfX2FmLCBfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19jcCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzb2NrbGVuX3QgX19sZW4p
CiAgICAgOwoKCgoKCgpleHRlcm4gaW5fYWRkcl90IGluZXRfYXRvbiAoX19jb25zdCBjaGFyICpf
X2NwLCBzdHJ1Y3QgaW5fYWRkciAqX19pbnApIDsKCgoKZXh0ZXJuIGNoYXIgKmluZXRfbmV0YSAo
aW5fYWRkcl90IF9fbmV0LCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9fbGVuKSA7CgoKCgpleHRlcm4g
Y2hhciAqaW5ldF9uZXRfbnRvcCAoaW50IF9fYWYsIF9fY29uc3Qgdm9pZCAqX19jcCwgaW50IF9f
Yml0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fYnVmLCBzaXplX3QgX19s
ZW4pIDsKCgoKCmV4dGVybiBpbnQgaW5ldF9uZXRfcHRvbiAoaW50IF9fYWYsIF9fY29uc3QgY2hh
ciAqX19jcCwKICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpfX2J1Ziwgc2l6ZV90IF9f
bGVuKSA7CgoKCgpleHRlcm4gdW5zaWduZWQgaW50IGluZXRfbnNhcF9hZGRyIChfX2NvbnN0IGNo
YXIgKl9fY3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNo
YXIgKl9fYnVmLCBpbnQgX19sZW4pIDsKCgoKZXh0ZXJuIGNoYXIgKmluZXRfbnNhcF9udG9hIChp
bnQgX19sZW4sIF9fY29uc3QgdW5zaWduZWQgY2hhciAqX19jcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpfX2J1ZikgOwoKCgojIDIwOSAiaW5jbHVkZS9pbmNsdWRlcy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL25ldGRiLmgiIDEgMwojIDMzICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvbmV0ZGIuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvbmV0ZGIuaCIgMSAz
CiMgNDIgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvbmV0ZGIuaCIgMwojIDEgIi91c3IvbG9jYWwv
Z2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgi
IDEgMwojIDQzICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL25ldGRiLmgiIDIgMwoKCgpzdHJ1Y3Qg
cnBjZW50CnsKICBjaGFyICpyX25hbWU7CiAgY2hhciAqKnJfYWxpYXNlczsKICBpbnQgcl9udW1i
ZXI7Cn07CgpleHRlcm4gdm9pZCBzZXRycGNlbnQgKGludCBfX3N0YXlvcGVuKSA7CmV4dGVybiB2
b2lkIGVuZHJwY2VudCAodm9pZCkgOwpleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjYnluYW1l
IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwpleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjYnlu
dW1iZXIgKGludCBfX251bWJlcikgOwpleHRlcm4gc3RydWN0IHJwY2VudCAqZ2V0cnBjZW50ICh2
b2lkKSA7CgoKZXh0ZXJuIGludCBnZXRycGNieW5hbWVfciAoX19jb25zdCBjaGFyICpfX25hbWUs
IHN0cnVjdCBycGNlbnQgKl9fcmVzdWx0X2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHJwY2VudCAqKl9fcmVzdWx0KSA7CgpleHRlcm4gaW50IGdldHJwY2J5bnVtYmVy
X3IgKGludCBfX251bWJlciwgc3RydWN0IHJwY2VudCAqX19yZXN1bHRfYnVmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJwY2VudCAqKl9fcmVzdWx0KSA7CgpleHRl
cm4gaW50IGdldHJwY2VudF9yIChzdHJ1Y3QgcnBjZW50ICpfX3Jlc3VsdF9idWYsIGNoYXIgKl9f
YnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19idWZsZW4sIHN0cnVjdCBy
cGNlbnQgKipfX3Jlc3VsdCkgOwoKCgojIDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0ZGIuaCIg
MiAzCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMSAzCiMgMjUg
Ii91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NpZ2luZm8uaCIgMwojIDEgIi91c3IvbG9jYWwvaW5j
bHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMwojIDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9z
aWdpbmZvLmgiIDIgMwojIDM5ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0ZGIuaCIgMiAzCgoKCgoj
IDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL25ldGRiLmgiIDEgMwojIDI3ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy9uZXRkYi5oIiAzCnN0cnVjdCBuZXRlbnQKewogIGNoYXIgKm5fbmFtZTsK
ICBjaGFyICoqbl9hbGlhc2VzOwogIGludCBuX2FkZHJ0eXBlOwogIHVpbnQzMl90IG5fbmV0Owp9
OwojIDQ0ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0ZGIuaCIgMiAzCiMgNTQgIi91c3IvbG9jYWwv
aW5jbHVkZS9uZXRkYi5oIiAzCgoKCmV4dGVybiBpbnQgaF9lcnJubzsKCgpleHRlcm4gaW50ICpf
X2hfZXJybm9fbG9jYXRpb24gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyAx
MDUgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRkYi5oIiAzCmV4dGVybiB2b2lkIGhlcnJvciAoX19j
b25zdCBjaGFyICpfX3N0cikgOwoKCmV4dGVybiBfX2NvbnN0IGNoYXIgKmhzdHJlcnJvciAoaW50
IF9fZXJyX251bSkgOwoKCgoKc3RydWN0IGhvc3RlbnQKewogIGNoYXIgKmhfbmFtZTsKICBjaGFy
ICoqaF9hbGlhc2VzOwogIGludCBoX2FkZHJ0eXBlOwogIGludCBoX2xlbmd0aDsKICBjaGFyICoq
aF9hZGRyX2xpc3Q7Cgp9OwoKCgpleHRlcm4gdm9pZCBzZXRob3N0ZW50IChpbnQgX19zdGF5X29w
ZW4pIDsKCgpleHRlcm4gdm9pZCBlbmRob3N0ZW50ICh2b2lkKSA7CgoKCmV4dGVybiBzdHJ1Y3Qg
aG9zdGVudCAqZ2V0aG9zdGVudCAodm9pZCkgOwoKCgpleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdl
dGhvc3RieWFkZHIgKF9fY29uc3Qgdm9pZCAqX19hZGRyLCBfX3NvY2tsZW5fdCBfX2xlbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX190eXBlKSA7CgoKZXh0ZXJu
IHN0cnVjdCBob3N0ZW50ICpnZXRob3N0YnluYW1lIChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoK
CgoKCmV4dGVybiBzdHJ1Y3QgaG9zdGVudCAqZ2V0aG9zdGJ5bmFtZTIgKF9fY29uc3QgY2hhciAq
X19uYW1lLCBpbnQgX19hZikgOwoKCgoKCgpleHRlcm4gaW50IGdldGhvc3RlbnRfciAoc3RydWN0
IGhvc3RlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAogICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApIDsKCmV4dGVybiBp
bnQgZ2V0aG9zdGJ5YWRkcl9yIChfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19hZGRyLCBfX3Nv
Y2tsZW5fdCBfX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3R5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jl
c3VsdF9idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9f
YnVmLCBzaXplX3QgX19idWZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
aG9zdGVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCkgOwoKZXh0ZXJuIGludCBnZXRob3N0YnluYW1l
X3IgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZs
ZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqKl9fcmVzdHJp
Y3QgX19yZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3Qg
X19oX2Vycm5vcCkgOwoKZXh0ZXJuIGludCBnZXRob3N0YnluYW1lMl9yIChfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19uYW1lLCBpbnQgX19hZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBob3N0ZW50ICoqX19yZXN0cmljdCBf
X3Jlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19o
X2Vycm5vcCkgOwoKCgoKCmV4dGVybiB2b2lkIHNldG5ldGVudCAoaW50IF9fc3RheV9vcGVuKSA7
CgoKZXh0ZXJuIHZvaWQgZW5kbmV0ZW50ICh2b2lkKSA7CgoKCmV4dGVybiBzdHJ1Y3QgbmV0ZW50
ICpnZXRuZXRlbnQgKHZvaWQpIDsKCgoKZXh0ZXJuIHN0cnVjdCBuZXRlbnQgKmdldG5ldGJ5YWRk
ciAodWludDMyX3QgX19uZXQsIGludCBfX3R5cGUpCiAgICAgOwoKCmV4dGVybiBzdHJ1Y3QgbmV0
ZW50ICpnZXRuZXRieW5hbWUgKF9fY29uc3QgY2hhciAqX19uYW1lKSA7CgoKCgoKCgpleHRlcm4g
aW50IGdldG5ldGVudF9yIChzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwK
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9f
YnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmV0ZW50ICoqX19yZXN0cmlj
dCBfX3Jlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9l
cnJub3ApIDsKCmV4dGVybiBpbnQgZ2V0bmV0YnlhZGRyX3IgKHVpbnQzMl90IF9fbmV0LCBpbnQg
X190eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3Ry
aWN0IF9fcmVzdWx0X2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0
cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgbmV0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApIDsKCmV4dGVybiBpbnQgZ2V0bmV0Ynlu
YW1lX3IgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBuZXRlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZs
ZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBuZXRlbnQgKipfX3Jlc3RyaWN0
IF9fcmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19o
X2Vycm5vcCkgOwoKCgoKc3RydWN0IHNlcnZlbnQKewogIGNoYXIgKnNfbmFtZTsKICBjaGFyICoq
c19hbGlhc2VzOwogIGludCBzX3BvcnQ7CiAgY2hhciAqc19wcm90bzsKfTsKCgoKZXh0ZXJuIHZv
aWQgc2V0c2VydmVudCAoaW50IF9fc3RheV9vcGVuKSA7CgoKZXh0ZXJuIHZvaWQgZW5kc2VydmVu
dCAodm9pZCkgOwoKCgpleHRlcm4gc3RydWN0IHNlcnZlbnQgKmdldHNlcnZlbnQgKHZvaWQpIDsK
CgoKZXh0ZXJuIHN0cnVjdCBzZXJ2ZW50ICpnZXRzZXJ2YnluYW1lIChfX2NvbnN0IGNoYXIgKl9f
bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIg
Kl9fcHJvdG8pIDsKCgoKZXh0ZXJuIHN0cnVjdCBzZXJ2ZW50ICpnZXRzZXJ2Ynlwb3J0IChpbnQg
X19wb3J0LCBfX2NvbnN0IGNoYXIgKl9fcHJvdG8pCiAgICAgOwoKCgoKCmV4dGVybiBpbnQgZ2V0
c2VydmVudF9yIChzdHJ1Y3Qgc2VydmVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCiAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZs
ZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3Qg
X19yZXN1bHQpIDsKCmV4dGVybiBpbnQgZ2V0c2VydmJ5bmFtZV9yIChfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fcHJvdG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
c2VydmVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VydmVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpIDsK
CmV4dGVybiBpbnQgZ2V0c2VydmJ5cG9ydF9yIChpbnQgX19wb3J0LCBfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19wcm90bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZXJ2
ZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCBzZXJ2ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKCgoK
c3RydWN0IHByb3RvZW50CnsKICBjaGFyICpwX25hbWU7CiAgY2hhciAqKnBfYWxpYXNlczsKICBp
bnQgcF9wcm90bzsKfTsKCgoKZXh0ZXJuIHZvaWQgc2V0cHJvdG9lbnQgKGludCBfX3N0YXlfb3Bl
bikgOwoKCmV4dGVybiB2b2lkIGVuZHByb3RvZW50ICh2b2lkKSA7CgoKCmV4dGVybiBzdHJ1Y3Qg
cHJvdG9lbnQgKmdldHByb3RvZW50ICh2b2lkKSA7CgoKZXh0ZXJuIHN0cnVjdCBwcm90b2VudCAq
Z2V0cHJvdG9ieW5hbWUgKF9fY29uc3QgY2hhciAqX19uYW1lKSA7CgoKZXh0ZXJuIHN0cnVjdCBw
cm90b2VudCAqZ2V0cHJvdG9ieW51bWJlciAoaW50IF9fcHJvdG8pIDsKCgoKCgpleHRlcm4gaW50
IGdldHByb3RvZW50X3IgKHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90
IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwcm90b2VudCAqKl9f
cmVzdHJpY3QgX19yZXN1bHQpIDsKCmV4dGVybiBpbnQgZ2V0cHJvdG9ieW5hbWVfciAoX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgcHJvdG9lbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQgKipfX3Jlc3RyaWN0IF9f
cmVzdWx0KSA7CgpleHRlcm4gaW50IGdldHByb3RvYnludW1iZXJfciAoaW50IF9fcHJvdG8sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQgKl9fcmVzdHJpY3Qg
X19yZXN1bHRfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqX19yZXN0
cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHByb3RvZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCkgOwoKCgoKZXh0ZXJuIGlu
dCBzZXRuZXRncmVudCAoX19jb25zdCBjaGFyICpfX25ldGdyb3VwKSA7CgoKZXh0ZXJuIHZvaWQg
ZW5kbmV0Z3JlbnQgKHZvaWQpIDsKCgoKZXh0ZXJuIGludCBnZXRuZXRncmVudCAoY2hhciAqKl9f
cmVzdHJpY3QgX19ob3N0cCwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJp
Y3QgX191c2VycCwKICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19k
b21haW5wKSA7CgoKCmV4dGVybiBpbnQgaW5uZXRnciAoX19jb25zdCBjaGFyICpfX25ldGdyb3Vw
LCBfX2NvbnN0IGNoYXIgKl9faG9zdCwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIg
Kl9fdXNlciwgX19jb25zdCBjaGFyICpkb21haW4pIDsKCgpleHRlcm4gaW50IGdldG5ldGdyZW50
X3IgKGNoYXIgKipfX3Jlc3RyaWN0IF9faG9zdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqKl9fcmVzdHJpY3QgX191c2VycCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
ICoqX19yZXN0cmljdCBfX2RvbWFpbnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
X19yZXN0cmljdCBfX2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuKSA7CiMgMzUxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvbmV0ZGIuaCIgMwpleHRlcm4gaW50IHJjbWQgKGNoYXIgKipfX3Jlc3RyaWN0IF9f
YWhvc3QsIHVuc2lnbmVkIHNob3J0IGludCBfX3Jwb3J0LAogICAgICAgICAgICAgICAgIF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX2xvY3VzZXIsCiAgICAgICAgICAgICAgICAgX19jb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19jbWQsIGludCAqX19yZXN0cmljdCBfX2ZkMnApCiAgICAgOwoKCgpleHRl
cm4gaW50IHJjbWRfYWYgKGNoYXIgKipfX3Jlc3RyaWN0IF9fYWhvc3QsIHVuc2lnbmVkIHNob3J0
IGludCBfX3Jwb3J0LAogICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2xvY3VzZXIsCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcmVtdXNlciwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19jbWQsIGludCAqX19yZXN0cmljdCBfX2ZkMnAsCiAgICAgICAgICAgICAgICAgICAgc2FfZmFt
aWx5X3QgX19hZikgOwoKCgoKCgpleHRlcm4gaW50IHJleGVjIChjaGFyICoqX19yZXN0cmljdCBf
X2Fob3N0LCBpbnQgX19ycG9ydCwKICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fbmFtZSwKICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcGFzcywKICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY21k
LCBpbnQgKl9fcmVzdHJpY3QgX19mZDJwKQogICAgIDsKCgoKZXh0ZXJuIGludCByZXhlY19hZiAo
Y2hhciAqKl9fcmVzdHJpY3QgX19haG9zdCwgaW50IF9fcnBvcnQsCiAgICAgICAgICAgICAgICAg
ICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCiAgICAgICAgICAgICAgICAgICAg
IF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3Bhc3MsCiAgICAgICAgICAgICAgICAgICAgIF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9fZmQycCwKICAg
ICAgICAgICAgICAgICAgICAgc2FfZmFtaWx5X3QgX19hZikgOwoKCgoKZXh0ZXJuIGludCBydXNl
cm9rIChfX2NvbnN0IGNoYXIgKl9fcmhvc3QsIGludCBfX3N1c2VyLAogICAgICAgICAgICAgICAg
ICAgIF9fY29uc3QgY2hhciAqX19yZW11c2VyLCBfX2NvbnN0IGNoYXIgKl9fbG9jdXNlcikgOwoK
CgpleHRlcm4gaW50IHJ1c2Vyb2tfYWYgKF9fY29uc3QgY2hhciAqX19yaG9zdCwgaW50IF9fc3Vz
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3JlbXVzZXIsIF9fY29u
c3QgY2hhciAqX19sb2N1c2VyLAogICAgICAgICAgICAgICAgICAgICAgIHNhX2ZhbWlseV90IF9f
YWYpIDsKCgoKCmV4dGVybiBpbnQgcnJlc3Zwb3J0IChpbnQgKl9fYWxwb3J0KSA7CgoKCmV4dGVy
biBpbnQgcnJlc3Zwb3J0X2FmIChpbnQgKl9fYWxwb3J0LCBzYV9mYW1pbHlfdCBfX2FmKSA7CgoK
CgoKCnN0cnVjdCBhZGRyaW5mbwp7CiAgaW50IGFpX2ZsYWdzOwogIGludCBhaV9mYW1pbHk7CiAg
aW50IGFpX3NvY2t0eXBlOwogIGludCBhaV9wcm90b2NvbDsKICBzb2NrbGVuX3QgYWlfYWRkcmxl
bjsKICBzdHJ1Y3Qgc29ja2FkZHIgKmFpX2FkZHI7CiAgY2hhciAqYWlfY2Fub25uYW1lOwogIHN0
cnVjdCBhZGRyaW5mbyAqYWlfbmV4dDsKfTsKCgoKc3RydWN0IGdhaWNiCnsKICBjb25zdCBjaGFy
ICphcl9uYW1lOwogIGNvbnN0IGNoYXIgKmFyX3NlcnZpY2U7CiAgY29uc3Qgc3RydWN0IGFkZHJp
bmZvICphcl9yZXF1ZXN0OwogIHN0cnVjdCBhZGRyaW5mbyAqYXJfcmVzdWx0OwoKICBpbnQgX19y
ZXR1cm47CiAgaW50IF9fdW51c2VkWzVdOwp9OwojIDQ3NiAiL3Vzci9sb2NhbC9pbmNsdWRlL25l
dGRiLmgiIDMKZXh0ZXJuIGludCBnZXRhZGRyaW5mbyAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fc2VydmljZSwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBzdHJ1Y3QgYWRkcmlu
Zm8gKl9fcmVzdHJpY3QgX19yZXEsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhZGRy
aW5mbyAqKl9fcmVzdHJpY3QgX19wYWkpIDsKCgpleHRlcm4gdm9pZCBmcmVlYWRkcmluZm8gKHN0
cnVjdCBhZGRyaW5mbyAqX19haSkgOwoKCmV4dGVybiBfX2NvbnN0IGNoYXIgKmdhaV9zdHJlcnJv
ciAoaW50IF9fZWNvZGUpIDsKCgpleHRlcm4gaW50IGdldG5hbWVpbmZvIChfX2NvbnN0IHN0cnVj
dCBzb2NrYWRkciAqX19yZXN0cmljdCBfX3NhLAogICAgICAgICAgICAgICAgICAgICAgICBzb2Nr
bGVuX3QgX19zYWxlbiwgY2hhciAqX19yZXN0cmljdCBfX2hvc3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgIHNvY2tsZW5fdCBfX2hvc3RsZW4sIGNoYXIgKl9fcmVzdHJpY3QgX19zZXJ2LAogICAg
ICAgICAgICAgICAgICAgICAgICBzb2NrbGVuX3QgX19zZXJ2bGVuLCB1bnNpZ25lZCBpbnQgX19m
bGFncykgOwoKCgoKCmV4dGVybiBpbnQgZ2V0YWRkcmluZm9fYSAoaW50IF9fbW9kZSwgc3RydWN0
IGdhaWNiICpfX2xpc3RbX19yZXN0cmljdF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IF9fZW50LCBzdHJ1Y3Qgc2lnZXZlbnQgKl9fcmVzdHJpY3QgX19zaWcpCiAgICAgOwoKCgoKZXh0
ZXJuIGludCBnYWlfc3VzcGVuZCAoX19jb25zdCBzdHJ1Y3QgZ2FpY2IgKl9fY29uc3QgX19saXN0
W10sIGludCBfX2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBzdHJ1Y3QgdGlt
ZXNwZWMgKl9fdGltZW91dCkgOwoKCmV4dGVybiBpbnQgZ2FpX2Vycm9yIChzdHJ1Y3QgZ2FpY2Ig
Kl9fcmVxKSA7CgoKZXh0ZXJuIGludCBnYWlfY2FuY2VsIChzdHJ1Y3QgZ2FpY2IgKl9fZ2FpY2Jw
KSA7CgoKCgojIDIxMCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9pbmNs
dWRlL3N5c2xvZy5oIiAxIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL3N5c2xvZy5oIiAx
IDMKIyAxNjkgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3lzbG9nLmgiIDMKCgoKZXh0ZXJuIHZv
aWQgY2xvc2Vsb2cgKHZvaWQpIDsKCgpleHRlcm4gdm9pZCBvcGVubG9nIChfX2NvbnN0IGNoYXIg
Kl9faWRlbnQsIGludCBfX29wdGlvbiwgaW50IF9fZmFjaWxpdHkpCiAgICAgOwoKCmV4dGVybiBp
bnQgc2V0bG9nbWFzayAoaW50IF9fbWFzaykgOwoKCmV4dGVybiB2b2lkIHN5c2xvZyAoaW50IF9f
cHJpLCBfX2NvbnN0IGNoYXIgKl9fZm10LCAuLi4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9y
bWF0X18oX19wcmludGZfXywgMiwgMykpKTsKCgoKZXh0ZXJuIHZvaWQgdnN5c2xvZyAoaW50IF9f
cHJpLCBfX2NvbnN0IGNoYXIgKl9fZm10LCBfX2dudWNfdmFfbGlzdCBfX2FwKQogICAgIF9fYXR0
cmlidXRlX18gKChfX2Zvcm1hdF9fKF9fcHJpbnRmX18sIDIsIDApKSk7CgoKCiMgMiAiL3Vzci9s
b2NhbC9pbmNsdWRlL3N5c2xvZy5oIiAyIDMKIyAyMTEgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvZmlsZS5oIiAxIDMKIyAyOCAiL3Vzci9sb2NhbC9p
bmNsdWRlL3N5cy9maWxlLmgiIDMKCiMgNTEgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvZmlsZS5o
IiAzCmV4dGVybiBpbnQgZmxvY2sgKGludCBfX2ZkLCBpbnQgX19vcGVyYXRpb24pIDsKCgoKIyAy
MTIgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL25ldGlu
ZXQvdGNwLmgiIDEgMwojIDg5ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0aW5ldC90Y3AuaCIgMwpz
dHJ1Y3QgdGNwaGRyCiAgewogICAgdV9pbnQxNl90IHNvdXJjZTsKICAgIHVfaW50MTZfdCBkZXN0
OwogICAgdV9pbnQzMl90IHNlcTsKICAgIHVfaW50MzJfdCBhY2tfc2VxOwoKICAgIHVfaW50MTZf
dCByZXMxOjQ7CiAgICB1X2ludDE2X3QgZG9mZjo0OwogICAgdV9pbnQxNl90IGZpbjoxOwogICAg
dV9pbnQxNl90IHN5bjoxOwogICAgdV9pbnQxNl90IHJzdDoxOwogICAgdV9pbnQxNl90IHBzaDox
OwogICAgdV9pbnQxNl90IGFjazoxOwogICAgdV9pbnQxNl90IHVyZzoxOwogICAgdV9pbnQxNl90
IHJlczI6MjsKIyAxMTggIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L3RjcC5oIiAzCiAgICB1
X2ludDE2X3Qgd2luZG93OwogICAgdV9pbnQxNl90IGNoZWNrOwogICAgdV9pbnQxNl90IHVyZ19w
dHI7Cn07CgoKZW51bQp7CiAgVENQX0VTVEFCTElTSEVEID0gMSwKICBUQ1BfU1lOX1NFTlQsCiAg
VENQX1NZTl9SRUNWLAogIFRDUF9GSU5fV0FJVDEsCiAgVENQX0ZJTl9XQUlUMiwKICBUQ1BfVElN
RV9XQUlULAogIFRDUF9DTE9TRSwKICBUQ1BfQ0xPU0VfV0FJVCwKICBUQ1BfTEFTVF9BQ0ssCiAg
VENQX0xJU1RFTiwKICBUQ1BfQ0xPU0lORwp9OwojIDE3NiAiL3Vzci9sb2NhbC9pbmNsdWRlL25l
dGluZXQvdGNwLmgiIDMKZW51bSB0Y3BfY2Ffc3RhdGUKewogIFRDUF9DQV9PcGVuID0gMCwKICBU
Q1BfQ0FfRGlzb3JkZXIgPSAxLAogIFRDUF9DQV9DV1IgPSAyLAogIFRDUF9DQV9SZWNvdmVyeSA9
IDMsCiAgVENQX0NBX0xvc3MgPSA0Cn07CgpzdHJ1Y3QgdGNwX2luZm8KewogIHVfaW50OF90IHRj
cGlfc3RhdGU7CiAgdV9pbnQ4X3QgdGNwaV9jYV9zdGF0ZTsKICB1X2ludDhfdCB0Y3BpX3JldHJh
bnNtaXRzOwogIHVfaW50OF90IHRjcGlfcHJvYmVzOwogIHVfaW50OF90IHRjcGlfYmFja29mZjsK
ICB1X2ludDhfdCB0Y3BpX29wdGlvbnM7CiAgdV9pbnQ4X3QgdGNwaV9zbmRfd3NjYWxlIDogNCwg
dGNwaV9yY3Zfd3NjYWxlIDogNDsKCiAgdV9pbnQzMl90IHRjcGlfcnRvOwogIHVfaW50MzJfdCB0
Y3BpX2F0bzsKICB1X2ludDMyX3QgdGNwaV9zbmRfbXNzOwogIHVfaW50MzJfdCB0Y3BpX3Jjdl9t
c3M7CgogIHVfaW50MzJfdCB0Y3BpX3VuYWNrZWQ7CiAgdV9pbnQzMl90IHRjcGlfc2Fja2VkOwog
IHVfaW50MzJfdCB0Y3BpX2xvc3Q7CiAgdV9pbnQzMl90IHRjcGlfcmV0cmFuczsKICB1X2ludDMy
X3QgdGNwaV9mYWNrZXRzOwoKCiAgdV9pbnQzMl90IHRjcGlfbGFzdF9kYXRhX3NlbnQ7CiAgdV9p
bnQzMl90IHRjcGlfbGFzdF9hY2tfc2VudDsKICB1X2ludDMyX3QgdGNwaV9sYXN0X2RhdGFfcmVj
djsKICB1X2ludDMyX3QgdGNwaV9sYXN0X2Fja19yZWN2OwoKCiAgdV9pbnQzMl90IHRjcGlfcG10
dTsKICB1X2ludDMyX3QgdGNwaV9yY3Zfc3N0aHJlc2g7CiAgdV9pbnQzMl90IHRjcGlfcnR0Owog
IHVfaW50MzJfdCB0Y3BpX3J0dHZhcjsKICB1X2ludDMyX3QgdGNwaV9zbmRfc3N0aHJlc2g7CiAg
dV9pbnQzMl90IHRjcGlfc25kX2N3bmQ7CiAgdV9pbnQzMl90IHRjcGlfYWR2bXNzOwogIHVfaW50
MzJfdCB0Y3BpX3Jlb3JkZXJpbmc7Cn07CiMgMjE1ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyAy
MjMgImluY2x1ZGUvaW5jbHVkZXMuaCIKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0aW5ldC9p
bl9zeXN0bS5oIiAxIDMKIyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL25ldGluZXQvaW5fc3lzdG0u
aCIgMwoKIyAzNSAiL3Vzci9sb2NhbC9pbmNsdWRlL25ldGluZXQvaW5fc3lzdG0uaCIgMwp0eXBl
ZGVmIHVfaW50MTZfdCBuX3Nob3J0Owp0eXBlZGVmIHVfaW50MzJfdCBuX2xvbmc7CnR5cGVkZWYg
dV9pbnQzMl90IG5fdGltZTsKCgojIDIyNCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgoKCgoKCgoj
IDEgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L2lwLmgiIDEgMwojIDI3ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvbmV0aW5ldC9pcC5oIiAzCgoKc3RydWN0IHRpbWVzdGFtcAogIHsKICAgIHVfaW50
OF90IGxlbjsKICAgIHVfaW50OF90IHB0cjsKCiAgICB1bnNpZ25lZCBpbnQgZmxhZ3M6NDsKICAg
IHVuc2lnbmVkIGludCBvdmVyZmxvdzo0OwoKCgoKCgogICAgdV9pbnQzMl90IGRhdGFbOV07CiAg
fTsKCnN0cnVjdCBpcGhkcgogIHsKCiAgICB1bnNpZ25lZCBpbnQgaWhsOjQ7CiAgICB1bnNpZ25l
ZCBpbnQgdmVyc2lvbjo0OwoKCgoKCgogICAgdV9pbnQ4X3QgdG9zOwogICAgdV9pbnQxNl90IHRv
dF9sZW47CiAgICB1X2ludDE2X3QgaWQ7CiAgICB1X2ludDE2X3QgZnJhZ19vZmY7CiAgICB1X2lu
dDhfdCB0dGw7CiAgICB1X2ludDhfdCBwcm90b2NvbDsKICAgIHVfaW50MTZfdCBjaGVjazsKICAg
IHVfaW50MzJfdCBzYWRkcjsKICAgIHVfaW50MzJfdCBkYWRkcjsKCiAgfTsKIyAxMDggIi91c3Iv
bG9jYWwvaW5jbHVkZS9uZXRpbmV0L2lwLmgiIDMKc3RydWN0IGlwCiAgewoKICAgIHVuc2lnbmVk
IGludCBpcF9obDo0OwogICAgdW5zaWduZWQgaW50IGlwX3Y6NDsKCgoKCgogICAgdV9pbnQ4X3Qg
aXBfdG9zOwogICAgdV9zaG9ydCBpcF9sZW47CiAgICB1X3Nob3J0IGlwX2lkOwogICAgdV9zaG9y
dCBpcF9vZmY7CgoKCgogICAgdV9pbnQ4X3QgaXBfdHRsOwogICAgdV9pbnQ4X3QgaXBfcDsKICAg
IHVfc2hvcnQgaXBfc3VtOwogICAgc3RydWN0IGluX2FkZHIgaXBfc3JjLCBpcF9kc3Q7CiAgfTsK
CgoKCnN0cnVjdCBpcF90aW1lc3RhbXAKICB7CiAgICB1X2ludDhfdCBpcHRfY29kZTsKICAgIHVf
aW50OF90IGlwdF9sZW47CiAgICB1X2ludDhfdCBpcHRfcHRyOwoKICAgIHVuc2lnbmVkIGludCBp
cHRfZmxnOjQ7CiAgICB1bnNpZ25lZCBpbnQgaXB0X29mbHc6NDsKCgoKCgogICAgdV9pbnQzMl90
IGRhdGFbOV07CiAgfTsKIyAyNDcgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXRpbmV0L2lwLmgiIDMK
CiMgMjMyICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRl
L3Rlcm1pb3MuaCIgMSAzCiMgMzYgIi91c3IvbG9jYWwvaW5jbHVkZS90ZXJtaW9zLmgiIDMKCgoK
CiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvdGVybWlvcy5oIiAxIDMKIyAyNCAiL3Vzci9s
b2NhbC9pbmNsdWRlL2JpdHMvdGVybWlvcy5oIiAzCnR5cGVkZWYgdW5zaWduZWQgY2hhciBjY190
Owp0eXBlZGVmIHVuc2lnbmVkIGludCBzcGVlZF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCB0Y2Zs
YWdfdDsKCgpzdHJ1Y3QgdGVybWlvcwogIHsKICAgIHRjZmxhZ190IGNfaWZsYWc7CiAgICB0Y2Zs
YWdfdCBjX29mbGFnOwogICAgdGNmbGFnX3QgY19jZmxhZzsKICAgIHRjZmxhZ190IGNfbGZsYWc7
CiAgICBjY190IGNfbGluZTsKICAgIGNjX3QgY19jY1szMl07CiAgICBzcGVlZF90IGNfaXNwZWVk
OwogICAgc3BlZWRfdCBjX29zcGVlZDsKICB9OwojIDQxICIvdXNyL2xvY2FsL2luY2x1ZGUvdGVy
bWlvcy5oIiAyIDMKIyA0OSAiL3Vzci9sb2NhbC9pbmNsdWRlL3Rlcm1pb3MuaCIgMwpleHRlcm4g
c3BlZWRfdCBjZmdldG9zcGVlZCAoX19jb25zdCBzdHJ1Y3QgdGVybWlvcyAqX190ZXJtaW9zX3Ap
IDsKCgpleHRlcm4gc3BlZWRfdCBjZmdldGlzcGVlZCAoX19jb25zdCBzdHJ1Y3QgdGVybWlvcyAq
X190ZXJtaW9zX3ApIDsKCgpleHRlcm4gaW50IGNmc2V0b3NwZWVkIChzdHJ1Y3QgdGVybWlvcyAq
X190ZXJtaW9zX3AsIHNwZWVkX3QgX19zcGVlZCkgOwoKCmV4dGVybiBpbnQgY2ZzZXRpc3BlZWQg
KHN0cnVjdCB0ZXJtaW9zICpfX3Rlcm1pb3NfcCwgc3BlZWRfdCBfX3NwZWVkKSA7CgoKCmV4dGVy
biBpbnQgY2ZzZXRzcGVlZCAoc3RydWN0IHRlcm1pb3MgKl9fdGVybWlvc19wLCBzcGVlZF90IF9f
c3BlZWQpIDsKCgoKCmV4dGVybiBpbnQgdGNnZXRhdHRyIChpbnQgX19mZCwgc3RydWN0IHRlcm1p
b3MgKl9fdGVybWlvc19wKSA7CgoKCmV4dGVybiBpbnQgdGNzZXRhdHRyIChpbnQgX19mZCwgaW50
IF9fb3B0aW9uYWxfYWN0aW9ucywKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3Qgc3RydWN0
IHRlcm1pb3MgKl9fdGVybWlvc19wKSA7CgoKCgpleHRlcm4gdm9pZCBjZm1ha2VyYXcgKHN0cnVj
dCB0ZXJtaW9zICpfX3Rlcm1pb3NfcCkgOwoKCgpleHRlcm4gaW50IHRjc2VuZGJyZWFrIChpbnQg
X19mZCwgaW50IF9fZHVyYXRpb24pIDsKCgpleHRlcm4gaW50IHRjZHJhaW4gKGludCBfX2ZkKSA7
CgoKCmV4dGVybiBpbnQgdGNmbHVzaCAoaW50IF9fZmQsIGludCBfX3F1ZXVlX3NlbGVjdG9yKSA7
CgoKCmV4dGVybiBpbnQgdGNmbG93IChpbnQgX19mZCwgaW50IF9fYWN0aW9uKSA7CgoKCgpleHRl
cm4gX19waWRfdCB0Y2dldHNpZCAoaW50IF9fZmQpIDsKCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNs
dWRlL3N5cy90dHlkZWZhdWx0cy5oIiAxIDMKIyAxMDMgIi91c3IvbG9jYWwvaW5jbHVkZS90ZXJt
aW9zLmgiIDIgMwoKCgojIDIzNyAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMjQ2ICJpbmNsdWRl
L2luY2x1ZGVzLmgiCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAxIDMKIyAyOCAi
L3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAzCgojIDYyICIvdXNyL2xvY2FsL2luY2x1ZGUv
ZGlyZW50LmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9kaXJlbnQuaCIgMSAzCiMg
MjMgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2RpcmVudC5oIiAzCnN0cnVjdCBkaXJlbnQKICB7
CgoKCgogICAgX19pbm82NF90IGRfaW5vOwogICAgX19vZmY2NF90IGRfb2ZmOwoKICAgIHVuc2ln
bmVkIHNob3J0IGludCBkX3JlY2xlbjsKICAgIHVuc2lnbmVkIGNoYXIgZF90eXBlOwogICAgY2hh
ciBkX25hbWVbMjU2XTsKICB9OwoKCnN0cnVjdCBkaXJlbnQ2NAogIHsKICAgIF9faW5vNjRfdCBk
X2lubzsKICAgIF9fb2ZmNjRfdCBkX29mZjsKICAgIHVuc2lnbmVkIHNob3J0IGludCBkX3JlY2xl
bjsKICAgIHVuc2lnbmVkIGNoYXIgZF90eXBlOwogICAgY2hhciBkX25hbWVbMjU2XTsKICB9Owoj
IDYzICIvdXNyL2xvY2FsL2luY2x1ZGUvZGlyZW50LmgiIDIgMwojIDk4ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvZGlyZW50LmgiIDMKZW51bQogIHsKICAgIERUX1VOS05PV04gPSAwLAoKICAgIERUX0ZJ
Rk8gPSAxLAoKICAgIERUX0NIUiA9IDIsCgogICAgRFRfRElSID0gNCwKCiAgICBEVF9CTEsgPSA2
LAoKICAgIERUX1JFRyA9IDgsCgogICAgRFRfTE5LID0gMTAsCgogICAgRFRfU09DSyA9IDEyLAoK
ICAgIERUX1dIVCA9IDE0CgogIH07CiMgMTI4ICIvdXNyL2xvY2FsL2luY2x1ZGUvZGlyZW50Lmgi
IDMKdHlwZWRlZiBzdHJ1Y3QgX19kaXJzdHJlYW0gRElSOwoKCgpleHRlcm4gRElSICpvcGVuZGly
IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgpleHRlcm4gaW50IGNsb3NlZGlyIChESVIgKl9f
ZGlycCkgOwojIDE0OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAzCmV4dGVybiBzdHJ1
Y3QgZGlyZW50ICpyZWFkZGlyIChESVIgKl9fZGlycCkgX19hc21fXyAoIiIgInJlYWRkaXI2NCIp
OwoKCgoKCgpleHRlcm4gc3RydWN0IGRpcmVudDY0ICpyZWFkZGlyNjQgKERJUiAqX19kaXJwKSA7
CiMgMTY4ICIvdXNyL2xvY2FsL2luY2x1ZGUvZGlyZW50LmgiIDMKZXh0ZXJuIGludCByZWFkZGly
X3IgKERJUiAqX19yZXN0cmljdCBfX2RpcnAsIHN0cnVjdCBkaXJlbnQgKl9fcmVzdHJpY3QgX19l
bnRyeSwgc3RydWN0IGRpcmVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpIF9fYXNtX18gKCIiICJy
ZWFkZGlyNjRfciIpOwojIDE3OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAzCmV4dGVy
biBpbnQgcmVhZGRpcjY0X3IgKERJUiAqX19yZXN0cmljdCBfX2RpcnAsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBkaXJlbnQ2NCAqX19yZXN0cmljdCBfX2VudHJ5LAogICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgZGlyZW50NjQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0KSA7CgoK
CgpleHRlcm4gdm9pZCByZXdpbmRkaXIgKERJUiAqX19kaXJwKSA7CgoKCgoKZXh0ZXJuIHZvaWQg
c2Vla2RpciAoRElSICpfX2RpcnAsIGxvbmcgaW50IF9fcG9zKSA7CgoKZXh0ZXJuIGxvbmcgaW50
IHRlbGxkaXIgKERJUiAqX19kaXJwKSA7CgoKCgoKZXh0ZXJuIGludCBkaXJmZCAoRElSICpfX2Rp
cnApIDsKIyAyMjAgIi91c3IvbG9jYWwvaW5jbHVkZS9kaXJlbnQuaCIgMwojIDEgIi91c3IvbG9j
YWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVm
LmgiIDEgMwojIDIyMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAyIDMKIyAyMzMgIi91
c3IvbG9jYWwvaW5jbHVkZS9kaXJlbnQuaCIgMwpleHRlcm4gaW50IHNjYW5kaXIgKF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Rpciwgc3RydWN0IGRpcmVudCAqKipfX3Jlc3RyaWN0IF9fbmFt
ZWxpc3QsIGludCAoKl9fc2VsZWN0b3IpIChfX2NvbnN0IHN0cnVjdCBkaXJlbnQgKiksIGludCAo
Kl9fY21wKSAoX19jb25zdCB2b2lkICosIF9fY29uc3Qgdm9pZCAqKSkgX19hc21fXyAoIiIgInNj
YW5kaXI2NCIpOwojIDI0NyAiL3Vzci9sb2NhbC9pbmNsdWRlL2RpcmVudC5oIiAzCmV4dGVybiBp
bnQgc2NhbmRpcjY0IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19kaXIsCiAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgZGlyZW50NjQgKioqX19yZXN0cmljdCBfX25hbWVsaXN0LAogICAg
ICAgICAgICAgICAgICAgICAgaW50ICgqX19zZWxlY3RvcikgKF9fY29uc3Qgc3RydWN0IGRpcmVu
dDY0ICopLAogICAgICAgICAgICAgICAgICAgICAgaW50ICgqX19jbXApIChfX2NvbnN0IHZvaWQg
KiwgX19jb25zdCB2b2lkICopKSA7CiMgMjU5ICIvdXNyL2xvY2FsL2luY2x1ZGUvZGlyZW50Lmgi
IDMKZXh0ZXJuIGludCBhbHBoYXNvcnQgKF9fY29uc3Qgdm9pZCAqX19lMSwgX19jb25zdCB2b2lk
ICpfX2UyKSBfX2FzbV9fICgiIiAiYWxwaGFzb3J0NjQiKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJl
X18pKTsKIyAyNjkgIi91c3IvbG9jYWwvaW5jbHVkZS9kaXJlbnQuaCIgMwpleHRlcm4gaW50IGFs
cGhhc29ydDY0IChfX2NvbnN0IHZvaWQgKl9fZTEsIF9fY29uc3Qgdm9pZCAqX19lMikKICAgICBf
X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKIyAyODAgIi91c3IvbG9jYWwvaW5jbHVkZS9kaXJl
bnQuaCIgMwpleHRlcm4gaW50IHZlcnNpb25zb3J0IChfX2NvbnN0IHZvaWQgKl9fZTEsIF9fY29u
c3Qgdm9pZCAqX19lMikgX19hc21fXyAoIiIgInZlcnNpb25zb3J0NjQiKSBfX2F0dHJpYnV0ZV9f
ICgoX19wdXJlX18pKTsKIyAyOTAgIi91c3IvbG9jYWwvaW5jbHVkZS9kaXJlbnQuaCIgMwpleHRl
cm4gaW50IHZlcnNpb25zb3J0NjQgKF9fY29uc3Qgdm9pZCAqX19lMSwgX19jb25zdCB2b2lkICpf
X2UyKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwojIDMwNSAiL3Vzci9sb2NhbC9p
bmNsdWRlL2RpcmVudC5oIiAzCmV4dGVybiBfX3NzaXplX3QgZ2V0ZGlyZW50cmllcyAoaW50IF9f
ZmQsIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX25ieXRlcywgX19vZmY2NF90ICpf
X3Jlc3RyaWN0IF9fYmFzZXApIF9fYXNtX18gKCIiICJnZXRkaXJlbnRyaWVzNjQiKTsKIyAzMTYg
Ii91c3IvbG9jYWwvaW5jbHVkZS9kaXJlbnQuaCIgMwpleHRlcm4gX19zc2l6ZV90IGdldGRpcmVu
dHJpZXM2NCAoaW50IF9fZmQsIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfX29mZjY0X3QgKl9fcmVzdHJpY3QgX19iYXNlcCkgOwoKCgoKCiMgMjQ3
ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyAyNjMgImluY2x1ZGUvaW5jbHVkZXMuaCIKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3lzL21tYW4uaCIgMSAzCiMgMjYgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zeXMvbW1hbi5oIiAzCiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBj
LWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMjcgIi91c3IvbG9jYWwvaW5j
bHVkZS9zeXMvbW1hbi5oIiAyIDMKIyA0MiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9tbWFuLmgi
IDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tbWFuLmgiIDEgMwojIDQzICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3lzL21tYW4uaCIgMiAzCgoKCgoKIyA2MiAiL3Vzci9sb2NhbC9pbmNsdWRl
L3N5cy9tbWFuLmgiIDMKZXh0ZXJuIHZvaWQgKiBtbWFwICh2b2lkICpfX2FkZHIsIHNpemVfdCBf
X2xlbiwgaW50IF9fcHJvdCwgaW50IF9fZmxhZ3MsIGludCBfX2ZkLCBfX29mZjY0X3QgX19vZmZz
ZXQpIF9fYXNtX18gKCIiICJtbWFwNjQiKTsKIyA3MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9t
bWFuLmgiIDMKZXh0ZXJuIHZvaWQgKm1tYXA2NCAodm9pZCAqX19hZGRyLCBzaXplX3QgX19sZW4s
IGludCBfX3Byb3QsCiAgICAgICAgICAgICAgICAgICAgIGludCBfX2ZsYWdzLCBpbnQgX19mZCwg
X19vZmY2NF90IF9fb2Zmc2V0KSA7CgoKCgpleHRlcm4gaW50IG11bm1hcCAodm9pZCAqX19hZGRy
LCBzaXplX3QgX19sZW4pIDsKCgoKCmV4dGVybiBpbnQgbXByb3RlY3QgKHZvaWQgKl9fYWRkciwg
c2l6ZV90IF9fbGVuLCBpbnQgX19wcm90KSA7CgoKCgpleHRlcm4gaW50IG1zeW5jICh2b2lkICpf
X2FkZHIsIHNpemVfdCBfX2xlbiwgaW50IF9fZmxhZ3MpIDsKCgoKCmV4dGVybiBpbnQgbWFkdmlz
ZSAodm9pZCAqX19hZGRyLCBzaXplX3QgX19sZW4sIGludCBfX2FkdmljZSkgOwoKCgpleHRlcm4g
aW50IHBvc2l4X21hZHZpc2UgKHZvaWQgKl9fYWRkciwgc2l6ZV90IF9fbGVuLCBpbnQgX19hZHZp
Y2UpIDsKCgoKCmV4dGVybiBpbnQgbWxvY2sgKF9fY29uc3Qgdm9pZCAqX19hZGRyLCBzaXplX3Qg
X19sZW4pIDsKCgpleHRlcm4gaW50IG11bmxvY2sgKF9fY29uc3Qgdm9pZCAqX19hZGRyLCBzaXpl
X3QgX19sZW4pIDsKCgoKCmV4dGVybiBpbnQgbWxvY2thbGwgKGludCBfX2ZsYWdzKSA7CgoKCmV4
dGVybiBpbnQgbXVubG9ja2FsbCAodm9pZCkgOwoKCgoKCmV4dGVybiB2b2lkICptcmVtYXAgKHZv
aWQgKl9fYWRkciwgc2l6ZV90IF9fb2xkX2xlbiwgc2l6ZV90IF9fbmV3X2xlbiwKICAgICAgICAg
ICAgICAgICAgICAgaW50IF9fbWF5X21vdmUpIDsKCgoKCgoKZXh0ZXJuIGludCBtaW5jb3JlICh2
b2lkICpfX3N0YXJ0LCBzaXplX3QgX19sZW4sIHVuc2lnbmVkIGNoYXIgKl9fdmVjKTsKCgoKCmV4
dGVybiBpbnQgc2htX29wZW4gKF9fY29uc3QgY2hhciAqX19uYW1lLCBpbnQgX19vZmxhZywgbW9k
ZV90IF9fbW9kZSk7CgoKZXh0ZXJuIGludCBzaG1fdW5saW5rIChfX2NvbnN0IGNoYXIgKl9fbmFt
ZSk7CgoKIyAyNjQgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgojIDEgIi91c3IvbG9jYWwvaW5j
bHVkZS9uZXQvaWYuaCIgMSAzCiMgMzQgIi91c3IvbG9jYWwvaW5jbHVkZS9uZXQvaWYuaCIgMwpz
dHJ1Y3QgaWZfbmFtZWluZGV4CiAgewogICAgdW5zaWduZWQgaW50IGlmX2luZGV4OwogICAgY2hh
ciAqaWZfbmFtZTsKICB9OwoKCgoKZW51bQogIHsKICAgIElGRl9VUCA9IDB4MSwKCiAgICBJRkZf
QlJPQURDQVNUID0gMHgyLAoKICAgIElGRl9ERUJVRyA9IDB4NCwKCiAgICBJRkZfTE9PUEJBQ0sg
PSAweDgsCgogICAgSUZGX1BPSU5UT1BPSU5UID0gMHgxMCwKCiAgICBJRkZfTk9UUkFJTEVSUyA9
IDB4MjAsCgogICAgSUZGX1JVTk5JTkcgPSAweDQwLAoKICAgIElGRl9OT0FSUCA9IDB4ODAsCgog
ICAgSUZGX1BST01JU0MgPSAweDEwMCwKCgoKICAgIElGRl9BTExNVUxUSSA9IDB4MjAwLAoKCiAg
ICBJRkZfTUFTVEVSID0gMHg0MDAsCgogICAgSUZGX1NMQVZFID0gMHg4MDAsCgoKICAgIElGRl9N
VUxUSUNBU1QgPSAweDEwMDAsCgoKICAgIElGRl9QT1JUU0VMID0gMHgyMDAwLAoKICAgIElGRl9B
VVRPTUVESUEgPSAweDQwMDAKCiAgfTsKCgoKCgoKc3RydWN0IGlmYWRkcgogIHsKICAgIHN0cnVj
dCBzb2NrYWRkciBpZmFfYWRkcjsKICAgIHVuaW9uCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qgc29j
a2FkZHIgaWZ1X2Jyb2FkYWRkcjsKICAgICAgICBzdHJ1Y3Qgc29ja2FkZHIgaWZ1X2RzdGFkZHI7
CiAgICAgIH0gaWZhX2lmdTsKICAgIHN0cnVjdCBpZmFjZSAqaWZhX2lmcDsKICAgIHN0cnVjdCBp
ZmFkZHIgKmlmYV9uZXh0OwogIH07CiMgMTEwICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0L2lmLmgi
IDMKc3RydWN0IGlmbWFwCiAgewogICAgdW5zaWduZWQgbG9uZyBpbnQgbWVtX3N0YXJ0OwogICAg
dW5zaWduZWQgbG9uZyBpbnQgbWVtX2VuZDsKICAgIHVuc2lnbmVkIHNob3J0IGludCBiYXNlX2Fk
ZHI7CiAgICB1bnNpZ25lZCBjaGFyIGlycTsKICAgIHVuc2lnbmVkIGNoYXIgZG1hOwogICAgdW5z
aWduZWQgY2hhciBwb3J0OwoKICB9OwoKCgoKCnN0cnVjdCBpZnJlcQogIHsKCgogICAgdW5pb24K
ICAgICAgewogICAgICAgIGNoYXIgaWZybl9uYW1lWzE2XTsKICAgICAgfSBpZnJfaWZybjsKCiAg
ICB1bmlvbgogICAgICB7CiAgICAgICAgc3RydWN0IHNvY2thZGRyIGlmcnVfYWRkcjsKICAgICAg
ICBzdHJ1Y3Qgc29ja2FkZHIgaWZydV9kc3RhZGRyOwogICAgICAgIHN0cnVjdCBzb2NrYWRkciBp
ZnJ1X2Jyb2FkYWRkcjsKICAgICAgICBzdHJ1Y3Qgc29ja2FkZHIgaWZydV9uZXRtYXNrOwogICAg
ICAgIHN0cnVjdCBzb2NrYWRkciBpZnJ1X2h3YWRkcjsKICAgICAgICBzaG9ydCBpbnQgaWZydV9m
bGFnczsKICAgICAgICBpbnQgaWZydV9pdmFsdWU7CiAgICAgICAgaW50IGlmcnVfbXR1OwogICAg
ICAgIHN0cnVjdCBpZm1hcCBpZnJ1X21hcDsKICAgICAgICBjaGFyIGlmcnVfc2xhdmVbMTZdOwog
ICAgICAgIGNoYXIgaWZydV9uZXduYW1lWzE2XTsKICAgICAgICBfX2NhZGRyX3QgaWZydV9kYXRh
OwogICAgICB9IGlmcl9pZnJ1OwogIH07CiMgMTc1ICIvdXNyL2xvY2FsL2luY2x1ZGUvbmV0L2lm
LmgiIDMKc3RydWN0IGlmY29uZgogIHsKICAgIGludCBpZmNfbGVuOwogICAgdW5pb24KICAgICAg
ewogICAgICAgIF9fY2FkZHJfdCBpZmN1X2J1ZjsKICAgICAgICBzdHJ1Y3QgaWZyZXEgKmlmY3Vf
cmVxOwogICAgICB9IGlmY19pZmN1OwogIH07CgoKCgoKCgoKZXh0ZXJuIHVuc2lnbmVkIGludCBp
Zl9uYW1ldG9pbmRleCAoX19jb25zdCBjaGFyICpfX2lmbmFtZSkgOwpleHRlcm4gY2hhciAqaWZf
aW5kZXh0b25hbWUgKHVuc2lnbmVkIGludCBfX2lmaW5kZXgsIGNoYXIgKl9faWZuYW1lKSA7CgoK
ZXh0ZXJuIHN0cnVjdCBpZl9uYW1laW5kZXggKmlmX25hbWVpbmRleCAodm9pZCkgOwoKCmV4dGVy
biB2b2lkIGlmX2ZyZWVuYW1laW5kZXggKHN0cnVjdCBpZl9uYW1laW5kZXggKl9fcHRyKSA7CgoK
IyAyNjggImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUv
c3lzL21vdW50LmgiIDEgMwojIDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lzL21vdW50LmgiIDMK
ZW51bQp7CiAgTVNfUkRPTkxZID0gMSwKCiAgTVNfTk9TVUlEID0gMiwKCiAgTVNfTk9ERVYgPSA0
LAoKICBNU19OT0VYRUMgPSA4LAoKICBNU19TWU5DSFJPTk9VUyA9IDE2LAoKICBNU19SRU1PVU5U
ID0gMzIsCgogIE1TX01BTkRMT0NLID0gNjQsCgogIFNfV1JJVEUgPSAxMjgsCgogIFNfQVBQRU5E
ID0gMjU2LAoKICBTX0lNTVVUQUJMRSA9IDUxMiwKCiAgTVNfTk9BVElNRSA9IDEwMjQsCgogIE1T
X05PRElSQVRJTUUgPSAyMDQ4LAoKICBNU19CSU5EID0gNDA5NiwKCn07CiMgODggIi91c3IvbG9j
YWwvaW5jbHVkZS9zeXMvbW91bnQuaCIgMwplbnVtCnsKICBNTlRfRk9SQ0UgPSAxCgp9OwoKCgoK
CmV4dGVybiBpbnQgbW91bnQgKF9fY29uc3QgY2hhciAqX19zcGVjaWFsX2ZpbGUsIF9fY29uc3Qg
Y2hhciAqX19kaXIsCiAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19mc3R5cGUsIHVu
c2lnbmVkIGxvbmcgaW50IF9fcndmbGFnLAogICAgICAgICAgICAgICAgICBfX2NvbnN0IHZvaWQg
Kl9fZGF0YSkgOwoKCmV4dGVybiBpbnQgdW1vdW50IChfX2NvbnN0IGNoYXIgKl9fc3BlY2lhbF9m
aWxlKSA7CgoKZXh0ZXJuIGludCB1bW91bnQyIChfX2NvbnN0IGNoYXIgKl9fc3BlY2lhbF9maWxl
LCBpbnQgX19mbGFncykgOwoKCiMgMjczICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3lzL3Zmcy5oIiAxIDMKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3lzL3N0YXRmcy5oIiAxIDMKIyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zdGF0ZnMu
aCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3N0YXRmcy5oIiAxIDMKIyAyNSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RhdGZzLmgiIDMKc3RydWN0IHN0YXRmcwogIHsKICAgIGlu
dCBmX3R5cGU7CiAgICBpbnQgZl9ic2l6ZTsKCgoKCgoKCiAgICBfX2ZzYmxrY250NjRfdCBmX2Js
b2NrczsKICAgIF9fZnNibGtjbnQ2NF90IGZfYmZyZWU7CiAgICBfX2ZzYmxrY250NjRfdCBmX2Jh
dmFpbDsKICAgIF9fZnNmaWxjbnQ2NF90IGZfZmlsZXM7CiAgICBfX2ZzZmlsY250NjRfdCBmX2Zm
cmVlOwoKICAgIF9fZnNpZF90IGZfZnNpZDsKICAgIGludCBmX25hbWVsZW47CiAgICBpbnQgZl9z
cGFyZVs2XTsKICB9OwoKCnN0cnVjdCBzdGF0ZnM2NAogIHsKICAgIGludCBmX3R5cGU7CiAgICBp
bnQgZl9ic2l6ZTsKICAgIF9fZnNibGtjbnQ2NF90IGZfYmxvY2tzOwogICAgX19mc2Jsa2NudDY0
X3QgZl9iZnJlZTsKICAgIF9fZnNibGtjbnQ2NF90IGZfYmF2YWlsOwogICAgX19mc2ZpbGNudDY0
X3QgZl9maWxlczsKICAgIF9fZnNmaWxjbnQ2NF90IGZfZmZyZWU7CiAgICBfX2ZzaWRfdCBmX2Zz
aWQ7CiAgICBpbnQgZl9uYW1lbGVuOwogICAgaW50IGZfc3BhcmVbNl07CiAgfTsKIyAyNyAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3N5cy9zdGF0ZnMuaCIgMiAzCgoKCgoKCgoKZXh0ZXJuIGludCBzdGF0
ZnMgKF9fY29uc3QgY2hhciAqX19maWxlLCBzdHJ1Y3Qgc3RhdGZzICpfX2J1ZikgX19hc21fXyAo
IiIgInN0YXRmczY0Iik7CgoKCgoKCgpleHRlcm4gaW50IHN0YXRmczY0IChfX2NvbnN0IGNoYXIg
Kl9fZmlsZSwgc3RydWN0IHN0YXRmczY0ICpfX2J1ZikgOwojIDUyICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3lzL3N0YXRmcy5oIiAzCmV4dGVybiBpbnQgZnN0YXRmcyAoaW50IF9fZmlsZGVzLCBzdHJ1
Y3Qgc3RhdGZzICpfX2J1ZikgX19hc21fXyAoIiIgImZzdGF0ZnM2NCIpOwoKCgoKCgpleHRlcm4g
aW50IGZzdGF0ZnM2NCAoaW50IF9fZmlsZGVzLCBzdHJ1Y3Qgc3RhdGZzNjQgKl9fYnVmKSA7CgoK
CiMgNSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy92ZnMuaCIgMiAzCiMgMjc3ICJpbmNsdWRlL2lu
Y2x1ZGVzLmgiIDIKIyAzMDAgImluY2x1ZGUvaW5jbHVkZXMuaCIKIyAxICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvc3lzL3N0YXR2ZnMuaCIgMSAzCiMgMjYgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3Rh
dHZmcy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RhdHZmcy5oIiAxIDMKIyAy
NSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc3RhdHZmcy5oIiAzCnN0cnVjdCBzdGF0dmZzCiAg
ewogICAgdW5zaWduZWQgbG9uZyBpbnQgZl9ic2l6ZTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IGZf
ZnJzaXplOwojIDM3ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zdGF0dmZzLmgiIDMKICAgIF9f
ZnNibGtjbnQ2NF90IGZfYmxvY2tzOwogICAgX19mc2Jsa2NudDY0X3QgZl9iZnJlZTsKICAgIF9f
ZnNibGtjbnQ2NF90IGZfYmF2YWlsOwogICAgX19mc2ZpbGNudDY0X3QgZl9maWxlczsKICAgIF9f
ZnNmaWxjbnQ2NF90IGZfZmZyZWU7CiAgICBfX2ZzZmlsY250NjRfdCBmX2ZhdmFpbDsKCiAgICB1
bnNpZ25lZCBsb25nIGludCBmX2ZzaWQ7CiAgICBpbnQgX19mX3VudXNlZDsKICAgIHVuc2lnbmVk
IGxvbmcgaW50IGZfZmxhZzsKICAgIHVuc2lnbmVkIGxvbmcgaW50IGZfbmFtZW1heDsKICAgIGlu
dCBfX2Zfc3BhcmVbNl07CiAgfTsKCgoKc3RydWN0IHN0YXR2ZnM2NAogIHsKICAgIHVuc2lnbmVk
IGxvbmcgaW50IGZfYnNpemU7CiAgICB1bnNpZ25lZCBsb25nIGludCBmX2Zyc2l6ZTsKICAgIF9f
ZnNibGtjbnQ2NF90IGZfYmxvY2tzOwogICAgX19mc2Jsa2NudDY0X3QgZl9iZnJlZTsKICAgIF9f
ZnNibGtjbnQ2NF90IGZfYmF2YWlsOwogICAgX19mc2ZpbGNudDY0X3QgZl9maWxlczsKICAgIF9f
ZnNmaWxjbnQ2NF90IGZfZmZyZWU7CiAgICBfX2ZzZmlsY250NjRfdCBmX2ZhdmFpbDsKICAgIHVu
c2lnbmVkIGxvbmcgaW50IGZfZnNpZDsKICAgIGludCBfX2ZfdW51c2VkOwogICAgdW5zaWduZWQg
bG9uZyBpbnQgZl9mbGFnOwogICAgdW5zaWduZWQgbG9uZyBpbnQgZl9uYW1lbWF4OwogICAgaW50
IF9fZl9zcGFyZVs2XTsKICB9OwoKCgoKZW51bQp7CiAgU1RfUkRPTkxZID0gMSwKCiAgU1RfTk9T
VUlEID0gMiwKCgogIFNUX05PREVWID0gNCwKCiAgU1RfTk9FWEVDID0gOCwKCiAgU1RfU1lOQ0hS
T05PVVMgPSAxNiwKCiAgU1RfTUFORExPQ0sgPSA2NCwKCiAgU1RfV1JJVEUgPSAxMjgsCgogIFNU
X0FQUEVORCA9IDI1NiwKCiAgU1RfSU1NVVRBQkxFID0gNTEyLAoKICBTVF9OT0FUSU1FID0gMTAy
NCwKCiAgU1RfTk9ESVJBVElNRQoKCn07CiMgMjcgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3Rh
dHZmcy5oIiAyIDMKIyA0OCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zdGF0dmZzLmgiIDMKCgoK
CgoKCgpleHRlcm4gaW50IHN0YXR2ZnMgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGUs
IHN0cnVjdCBzdGF0dmZzICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2FzbV9fICgiIiAic3RhdHZmczY0
Iik7CiMgNjUgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc3RhdHZmcy5oIiAzCmV4dGVybiBpbnQg
c3RhdHZmczY0IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAogICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHN0YXR2ZnM2NCAqX19yZXN0cmljdCBfX2J1ZikgOwojIDc1ICIvdXNy
L2xvY2FsL2luY2x1ZGUvc3lzL3N0YXR2ZnMuaCIgMwpleHRlcm4gaW50IGZzdGF0dmZzIChpbnQg
X19maWxkZXMsIHN0cnVjdCBzdGF0dmZzICpfX2J1ZikgX19hc21fXyAoIiIgImZzdGF0dmZzNjQi
KTsKCgoKCgoKZXh0ZXJuIGludCBmc3RhdHZmczY0IChpbnQgX19maWxkZXMsIHN0cnVjdCBzdGF0
dmZzNjQgKl9fYnVmKSA7CgoKCiMgMzAxICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvc2hhZG93LmgiIDEgMwojIDI2ICIvdXNyL2xvY2FsL2luY2x1ZGUv
c2hhZG93LmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvcGF0aHMuaCIgMSAzCiMgMjcgIi91
c3IvbG9jYWwvaW5jbHVkZS9zaGFkb3cuaCIgMiAzCgoKCgojIDEgIi91c3IvbG9jYWwvZ2NjLzMv
bGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoj
IDMyICIvdXNyL2xvY2FsL2luY2x1ZGUvc2hhZG93LmgiIDIgMwoKCgoKCgoKCnN0cnVjdCBzcHdk
CiAgewogICAgY2hhciAqc3BfbmFtcDsKICAgIGNoYXIgKnNwX3B3ZHA7CiAgICBsb25nIGludCBz
cF9sc3RjaGc7CiAgICBsb25nIGludCBzcF9taW47CiAgICBsb25nIGludCBzcF9tYXg7CiAgICBs
b25nIGludCBzcF93YXJuOwoKICAgIGxvbmcgaW50IHNwX2luYWN0OwoKICAgIGxvbmcgaW50IHNw
X2V4cGlyZTsKCiAgICB1bnNpZ25lZCBsb25nIGludCBzcF9mbGFnOwogIH07CgoKCmV4dGVybiB2
b2lkIHNldHNwZW50ICh2b2lkKSA7CgoKZXh0ZXJuIHZvaWQgZW5kc3BlbnQgKHZvaWQpIDsKCgpl
eHRlcm4gc3RydWN0IHNwd2QgKmdldHNwZW50ICh2b2lkKSA7CgoKZXh0ZXJuIHN0cnVjdCBzcHdk
ICpnZXRzcG5hbSAoX19jb25zdCBjaGFyICpfX25hbWUpIDsKCgpleHRlcm4gc3RydWN0IHNwd2Qg
KnNnZXRzcGVudCAoX19jb25zdCBjaGFyICpfX3N0cmluZykgOwoKCmV4dGVybiBzdHJ1Y3Qgc3B3
ZCAqZmdldHNwZW50IChGSUxFICpfX3N0cmVhbSkgOwoKCmV4dGVybiBpbnQgcHV0c3BlbnQgKF9f
Y29uc3Qgc3RydWN0IHNwd2QgKl9fcCwgRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQg
Z2V0c3BlbnRfciAoc3RydWN0IHNwd2QgKl9fcmVzdWx0X2J1ZiwgY2hhciAqX19idWZmZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYnVmbGVuLCBzdHJ1Y3Qgc3B3ZCAqKl9fcmVz
dWx0KSA7CgpleHRlcm4gaW50IGdldHNwbmFtX3IgKF9fY29uc3QgY2hhciAqX19uYW1lLCBzdHJ1
Y3Qgc3B3ZCAqX19yZXN1bHRfYnVmLAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fYnVm
ZmVyLCBzaXplX3QgX19idWZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwd2Qg
KipfX3Jlc3VsdCk7CgpleHRlcm4gaW50IHNnZXRzcGVudF9yIChfX2NvbnN0IGNoYXIgKl9fc3Ry
aW5nLCBzdHJ1Y3Qgc3B3ZCAqX19yZXN1bHRfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICBj
aGFyICpfX2J1ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAogICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3Qgc3B3ZCAqKl9fcmVzdWx0KSA7CgpleHRlcm4gaW50IGZnZXRzcGVudF9yIChGSUxFICpf
X3N0cmVhbSwgc3RydWN0IHNwd2QgKl9fcmVzdWx0X2J1ZiwKICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhciAqX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHNwd2QgKipfX3Jlc3VsdCkgOwoKCgpleHRlcm4gaW50IGxja3B3ZGYgKHZvaWQp
IDsKCgpleHRlcm4gaW50IHVsY2twd2RmICh2b2lkKSA7CgoKIyAzMDUgImluY2x1ZGUvaW5jbHVk
ZXMuaCIgMgojIDMyNCAiaW5jbHVkZS9pbmNsdWRlcy5oIgojIDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zdHJvcHRzLmgiIDEgMwojIDM1ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3Ryb3B0cy5oIiAzCnR5
cGVkZWYgX190X3VzY2FsYXJfdCB0X3VzY2FsYXJfdDsKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9iaXRzL3N0cm9wdHMuaCIgMSAzCiMgMTcwICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zdHJv
cHRzLmgiIDMKc3RydWN0IGJhbmRpbmZvCiAgewogICAgdW5zaWduZWQgY2hhciBiaV9wcmk7CiAg
ICBpbnQgYmlfZmxhZzsKICB9OwoKc3RydWN0IHN0cmJ1ZgogIHsKICAgIGludCBtYXhsZW47CiAg
ICBpbnQgbGVuOwogICAgY2hhciAqYnVmOwogIH07CgpzdHJ1Y3Qgc3RycGVlawogIHsKICAgIHN0
cnVjdCBzdHJidWYgY3RsYnVmOwogICAgc3RydWN0IHN0cmJ1ZiBkYXRhYnVmOwogICAgdF91c2Nh
bGFyX3QgZmxhZ3M7CiAgfTsKCnN0cnVjdCBzdHJmZGluc2VydAogIHsKICAgIHN0cnVjdCBzdHJi
dWYgY3RsYnVmOwogICAgc3RydWN0IHN0cmJ1ZiBkYXRhYnVmOwogICAgdF91c2NhbGFyX3QgZmxh
Z3M7CiAgICBpbnQgZmlsZGVzOwogICAgaW50IG9mZnNldDsKICB9OwoKc3RydWN0IHN0cmlvY3Rs
CiAgewogICAgaW50IGljX2NtZDsKICAgIGludCBpY190aW1vdXQ7CiAgICBpbnQgaWNfbGVuOwog
ICAgY2hhciAqaWNfZHA7CiAgfTsKCnN0cnVjdCBzdHJyZWN2ZmQKICB7CiAgICBpbnQgZmQ7CiAg
ICB1aWRfdCB1aWQ7CiAgICBnaWRfdCBnaWQ7CiAgICBjaGFyIF9fZmlsbFs4XTsKICB9OwoKCnN0
cnVjdCBzdHJfbWxpc3QKICB7CiAgICBjaGFyIGxfbmFtZVs4ICsgMV07CiAgfTsKCnN0cnVjdCBz
dHJfbGlzdAogIHsKICAgIGludCBzbF9ubW9kczsKICAgIHN0cnVjdCBzdHJfbWxpc3QgKnNsX21v
ZGxpc3Q7CiAgfTsKIyAzOSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0cm9wdHMuaCIgMiAzCgoKCgoK
ZXh0ZXJuIGludCBpc2FzdHJlYW0gKGludCBfX2ZpbGRlcykgOwoKCmV4dGVybiBpbnQgZ2V0bXNn
IChpbnQgX19maWxkZXMsIHN0cnVjdCBzdHJidWYgKl9fcmVzdHJpY3QgX19jdGxwdHIsCiAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3Qgc3RyYnVmICpfX3Jlc3RyaWN0IF9fZGF0YXB0ciwKICAgICAg
ICAgICAgICAgICAgIGludCAqX19yZXN0cmljdCBfX2ZsYWdzcCkgOwoKCgpleHRlcm4gaW50IGdl
dHBtc2cgKGludCBfX2ZpbGRlcywgc3RydWN0IHN0cmJ1ZiAqX19yZXN0cmljdCBfX2N0bHB0ciwK
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3RyYnVmICpfX3Jlc3RyaWN0IF9fZGF0YXB0ciwK
ICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19iYW5kcCwgaW50ICpfX3Jlc3Ry
aWN0IF9fZmxhZ3NwKQogICAgIDsKCgoKCmV4dGVybiBpbnQgaW9jdGwgKGludCBfX2ZkLCB1bnNp
Z25lZCBsb25nIGludCBfX3JlcXVlc3QsIC4uLikgOwoKCmV4dGVybiBpbnQgcHV0bXNnIChpbnQg
X19maWxkZXMsIF9fY29uc3Qgc3RydWN0IHN0cmJ1ZiAqX19jdGxwdHIsCiAgICAgICAgICAgICAg
ICAgICBfX2NvbnN0IHN0cnVjdCBzdHJidWYgKl9fZGF0YXB0ciwgaW50IF9fZmxhZ3MpIDsKCgpl
eHRlcm4gaW50IHB1dHBtc2cgKGludCBfX2ZpbGRlcywgX19jb25zdCBzdHJ1Y3Qgc3RyYnVmICpf
X2N0bHB0ciwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHN0cnVjdCBzdHJidWYgKl9fZGF0
YXB0ciwgaW50IF9fYmFuZCwgaW50IF9fZmxhZ3MpCiAgICAgOwoKCgpleHRlcm4gaW50IGZhdHRh
Y2ggKGludCBfX2ZpbGRlcywgX19jb25zdCBjaGFyICpfX3BhdGgpIDsKCgpleHRlcm4gaW50IGZk
ZXRhY2ggKF9fY29uc3QgY2hhciAqX19wYXRoKSA7CgoKIyAzMjUgImluY2x1ZGUvaW5jbHVkZXMu
aCIgMgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9wb2xsLmgiIDEgMwojIDEgIi91c3IvbG9j
YWwvaW5jbHVkZS9zeXMvcG9sbC5oIiAxIDMKIyAyNiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9w
b2xsLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9wb2xsLmgiIDEgMwojIDI3ICIv
dXNyL2xvY2FsL2luY2x1ZGUvc3lzL3BvbGwuaCIgMiAzCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBpbnQgbmZkc190OwoKCnN0cnVjdCBwb2xsZmQKICB7CiAgICBpbnQgZmQ7CiAgICBzaG9ydCBp
bnQgZXZlbnRzOwogICAgc2hvcnQgaW50IHJldmVudHM7CiAgfTsKCgoKCgoKCgoKZXh0ZXJuIGlu
dCBwb2xsIChzdHJ1Y3QgcG9sbGZkICpfX2ZkcywgbmZkc190IF9fbmZkcywgaW50IF9fdGltZW91
dCkgOwoKCiMgMiAiL3Vzci9sb2NhbC9pbmNsdWRlL3BvbGwuaCIgMiAzCiMgMzI5ICJpbmNsdWRl
L2luY2x1ZGVzLmgiIDIKIyAzNTQgImluY2x1ZGUvaW5jbHVkZXMuaCIKIyAxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvcnBjL3JwYy5oIiAxIDMKIyA0MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMu
aCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvdHlwZXMuaCIgMSAzCiMgMzYgIi91c3Iv
bG9jYWwvaW5jbHVkZS9ycGMvdHlwZXMuaCIgMwp0eXBlZGVmIGludCBib29sX3Q7CnR5cGVkZWYg
aW50IGVudW1fdDsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBycGNwcm9nX3Q7CnR5cGVkZWYgdW5z
aWduZWQgbG9uZyBycGN2ZXJzX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBycGNwcm9jX3Q7CnR5
cGVkZWYgdW5zaWduZWQgbG9uZyBycGNwcm90X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBycGNw
b3J0X3Q7CiMgNDIgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvcnBjLmgiIDIgMwoKCgojIDEgIi91
c3IvbG9jYWwvaW5jbHVkZS9ycGMveGRyLmgiIDEgMwojIDQ2ICIvdXNyL2xvY2FsL2luY2x1ZGUv
cnBjL3hkci5oIiAzCgojIDgzICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL3hkci5oIiAzCmVudW0g
eGRyX29wIHsKICBYRFJfRU5DT0RFID0gMCwKICBYRFJfREVDT0RFID0gMSwKICBYRFJfRlJFRSA9
IDIKfTsKIyAxMTEgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMveGRyLmgiIDMKdHlwZWRlZiBzdHJ1
Y3QgWERSIFhEUjsKc3RydWN0IFhEUgogIHsKICAgIGVudW0geGRyX29wIHhfb3A7CiAgICBzdHJ1
Y3QgeGRyX29wcwogICAgICB7CiAgICAgICAgYm9vbF90ICgqeF9nZXRsb25nKSAoWERSICpfX3hk
cnMsIGxvbmcgKl9fbHApOwoKICAgICAgICBib29sX3QgKCp4X3B1dGxvbmcpIChYRFIgKl9feGRy
cywgX19jb25zdCBsb25nICpfX2xwKTsKCiAgICAgICAgYm9vbF90ICgqeF9nZXRieXRlcykgKFhE
UiAqX194ZHJzLCBjYWRkcl90IF9fYWRkciwgdV9pbnQgX19sZW4pOwoKICAgICAgICBib29sX3Qg
KCp4X3B1dGJ5dGVzKSAoWERSICpfX3hkcnMsIF9fY29uc3QgY2hhciAqX19hZGRyLCB1X2ludCBf
X2xlbik7CgogICAgICAgIHVfaW50ICgqeF9nZXRwb3N0bikgKF9fY29uc3QgWERSICpfX3hkcnMp
OwoKICAgICAgICBib29sX3QgKCp4X3NldHBvc3RuKSAoWERSICpfX3hkcnMsIHVfaW50IF9fcG9z
KTsKCiAgICAgICAgaW50MzJfdCAqKCp4X2lubGluZSkgKFhEUiAqX194ZHJzLCBpbnQgX19sZW4p
OwoKICAgICAgICB2b2lkICgqeF9kZXN0cm95KSAoWERSICpfX3hkcnMpOwoKICAgICAgICBib29s
X3QgKCp4X2dldGludDMyKSAoWERSICpfX3hkcnMsIGludDMyX3QgKl9faXApOwoKICAgICAgICBi
b29sX3QgKCp4X3B1dGludDMyKSAoWERSICpfX3hkcnMsIF9fY29uc3QgaW50MzJfdCAqX19pcCk7
CgogICAgICB9CiAgICAgKnhfb3BzOwogICAgY2FkZHJfdCB4X3B1YmxpYzsKICAgIGNhZGRyX3Qg
eF9wcml2YXRlOwogICAgY2FkZHJfdCB4X2Jhc2U7CiAgICBpbnQgeF9oYW5keTsKICB9OwojIDE1
NCAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy94ZHIuaCIgMwp0eXBlZGVmIGJvb2xfdCAoKnhkcnBy
b2NfdCkgKFhEUiAqLCB2b2lkICosLi4uKTsKIyAyMzQgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMv
eGRyLmgiIDMKc3RydWN0IHhkcl9kaXNjcmltCnsKICBpbnQgdmFsdWU7CiAgeGRycHJvY190IHBy
b2M7Cn07CiMgMjg5ICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL3hkci5oIiAzCmV4dGVybiBib29s
X3QgeGRyX3ZvaWQgKHZvaWQpIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfc2hvcnQgKFhEUiAqX194ZHJz
LCBzaG9ydCAqX19zcCkgOwpleHRlcm4gYm9vbF90IHhkcl91X3Nob3J0IChYRFIgKl9feGRycywg
dV9zaG9ydCAqX191c3ApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfaW50IChYRFIgKl9feGRycywgaW50
ICpfX2lwKSA7CmV4dGVybiBib29sX3QgeGRyX3VfaW50IChYRFIgKl9feGRycywgdV9pbnQgKl9f
dXApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfbG9uZyAoWERSICpfX3hkcnMsIGxvbmcgKl9fbHApIDsK
ZXh0ZXJuIGJvb2xfdCB4ZHJfdV9sb25nIChYRFIgKl9feGRycywgdV9sb25nICpfX3VscCkgOwpl
eHRlcm4gYm9vbF90IHhkcl9oeXBlciAoWERSICpfX3hkcnMsIHF1YWRfdCAqX19sbHApIDsKZXh0
ZXJuIGJvb2xfdCB4ZHJfdV9oeXBlciAoWERSICpfX3hkcnMsIHVfcXVhZF90ICpfX3VsbHApIDsK
ZXh0ZXJuIGJvb2xfdCB4ZHJfbG9uZ2xvbmdfdCAoWERSICpfX3hkcnMsIHF1YWRfdCAqX19sbHAp
IDsKZXh0ZXJuIGJvb2xfdCB4ZHJfdV9sb25nbG9uZ190IChYRFIgKl9feGRycywgdV9xdWFkX3Qg
Kl9fdWxscCkgOwpleHRlcm4gYm9vbF90IHhkcl9pbnQ4X3QgKFhEUiAqX194ZHJzLCBpbnQ4X3Qg
Kl9faXApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfdWludDhfdCAoWERSICpfX3hkcnMsIHVpbnQ4X3Qg
Kl9fdXApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfaW50MTZfdCAoWERSICpfX3hkcnMsIGludDE2X3Qg
Kl9faXApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfdWludDE2X3QgKFhEUiAqX194ZHJzLCB1aW50MTZf
dCAqX191cCkgOwpleHRlcm4gYm9vbF90IHhkcl9pbnQzMl90IChYRFIgKl9feGRycywgaW50MzJf
dCAqX19pcCkgOwpleHRlcm4gYm9vbF90IHhkcl91aW50MzJfdCAoWERSICpfX3hkcnMsIHVpbnQz
Ml90ICpfX3VwKSA7CmV4dGVybiBib29sX3QgeGRyX2ludDY0X3QgKFhEUiAqX194ZHJzLCBpbnQ2
NF90ICpfX2lwKSA7CmV4dGVybiBib29sX3QgeGRyX3VpbnQ2NF90IChYRFIgKl9feGRycywgdWlu
dDY0X3QgKl9fdXApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfYm9vbCAoWERSICpfX3hkcnMsIGJvb2xf
dCAqX19icCkgOwpleHRlcm4gYm9vbF90IHhkcl9lbnVtIChYRFIgKl9feGRycywgZW51bV90ICpf
X2VwKSA7CmV4dGVybiBib29sX3QgeGRyX2FycmF5IChYRFIgKiBfeGRycywgY2FkZHJfdCAqX19h
ZGRycCwgdV9pbnQgKl9fc2l6ZXAsCiAgICAgICAgICAgICAgICAgICAgICAgICB1X2ludCBfX21h
eHNpemUsIHVfaW50IF9fZWxzaXplLCB4ZHJwcm9jX3QgX19lbHByb2MpCiAgICAgOwpleHRlcm4g
Ym9vbF90IHhkcl9ieXRlcyAoWERSICpfX3hkcnMsIGNoYXIgKipfX2NwcCwgdV9pbnQgKl9fc2l6
ZXAsCiAgICAgICAgICAgICAgICAgICAgICAgICB1X2ludCBfX21heHNpemUpIDsKZXh0ZXJuIGJv
b2xfdCB4ZHJfb3BhcXVlIChYRFIgKl9feGRycywgY2FkZHJfdCBfX2NwLCB1X2ludCBfX2NudCkg
OwpleHRlcm4gYm9vbF90IHhkcl9zdHJpbmcgKFhEUiAqX194ZHJzLCBjaGFyICoqX19jcHAsIHVf
aW50IF9fbWF4c2l6ZSkgOwpleHRlcm4gYm9vbF90IHhkcl91bmlvbiAoWERSICpfX3hkcnMsIGVu
dW1fdCAqX19kc2NtcCwgY2hhciAqX191bnAsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2Nv
bnN0IHN0cnVjdCB4ZHJfZGlzY3JpbSAqX19jaG9pY2VzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgeGRycHJvY190IGRmYXVsdCkgOwpleHRlcm4gYm9vbF90IHhkcl9jaGFyIChYRFIgKl9feGRy
cywgY2hhciAqX19jcCkgOwpleHRlcm4gYm9vbF90IHhkcl91X2NoYXIgKFhEUiAqX194ZHJzLCB1
X2NoYXIgKl9fY3ApIDsKZXh0ZXJuIGJvb2xfdCB4ZHJfdmVjdG9yIChYRFIgKl9feGRycywgY2hh
ciAqX19iYXNlcCwgdV9pbnQgX19uZWxlbSwKICAgICAgICAgICAgICAgICAgICAgICAgICB1X2lu
dCBfX2VsZW1zaXplLCB4ZHJwcm9jX3QgX194ZHJfZWxlbSkgOwpleHRlcm4gYm9vbF90IHhkcl9m
bG9hdCAoWERSICpfX3hkcnMsIGZsb2F0ICpfX2ZwKSA7CmV4dGVybiBib29sX3QgeGRyX2RvdWJs
ZSAoWERSICpfX3hkcnMsIGRvdWJsZSAqX19kcCkgOwpleHRlcm4gYm9vbF90IHhkcl9yZWZlcmVu
Y2UgKFhEUiAqX194ZHJzLCBjYWRkcl90ICpfX3hwcCwgdV9pbnQgX19zaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHhkcnByb2NfdCBfX3Byb2MpIDsKZXh0ZXJuIGJvb2xfdCB4ZHJf
cG9pbnRlciAoWERSICpfX3hkcnMsIGNoYXIgKipfX29ianBwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICB1X2ludCBfX29ial9zaXplLCB4ZHJwcm9jX3QgX194ZHJfb2JqKSA7CmV4dGVybiBi
b29sX3QgeGRyX3dyYXBzdHJpbmcgKFhEUiAqX194ZHJzLCBjaGFyICoqX19jcHApIDsKZXh0ZXJu
IHVfbG9uZyB4ZHJfc2l6ZW9mICh4ZHJwcm9jX3QsIHZvaWQgKikgOwoKCgoKCgpzdHJ1Y3QgbmV0
b2JqCnsKICB1X2ludCBuX2xlbjsKICBjaGFyICpuX2J5dGVzOwp9Owp0eXBlZGVmIHN0cnVjdCBu
ZXRvYmogbmV0b2JqOwpleHRlcm4gYm9vbF90IHhkcl9uZXRvYmogKFhEUiAqX194ZHJzLCBzdHJ1
Y3QgbmV0b2JqICpfX25wKSA7CgoKCgoKCgpleHRlcm4gdm9pZCB4ZHJtZW1fY3JlYXRlIChYRFIg
Kl9feGRycywgX19jb25zdCBjYWRkcl90IF9fYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdV9pbnQgX19zaXplLCBlbnVtIHhkcl9vcCBfX3hvcCkgOwoKCmV4dGVybiB2b2lkIHhkcnN0
ZGlvX2NyZWF0ZSAoWERSICpfX3hkcnMsIEZJTEUgKl9fZmlsZSwgZW51bSB4ZHJfb3AgX194b3Ap
CiAgICAgOwoKCmV4dGVybiB2b2lkIHhkcnJlY19jcmVhdGUgKFhEUiAqX194ZHJzLCB1X2ludCBf
X3NlbmRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1X2ludCBfX3JlY3ZzaXplLCBj
YWRkcl90IF9fdGNwX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqX19y
ZWFkaXQpIChjaGFyICosIGNoYXIgKiwgaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50ICgqX193cml0ZWl0KSAoY2hhciAqLCBjaGFyICosIGludCkpIDsKCgpleHRlcm4gYm9vbF90
IHhkcnJlY19lbmRvZnJlY29yZCAoWERSICpfX3hkcnMsIGJvb2xfdCBfX3NlbmRub3cpIDsKCgpl
eHRlcm4gYm9vbF90IHhkcnJlY19za2lwcmVjb3JkIChYRFIgKl9feGRycykgOwoKCmV4dGVybiBi
b29sX3QgeGRycmVjX2VvZiAoWERSICpfX3hkcnMpIDsKCgpleHRlcm4gdm9pZCB4ZHJfZnJlZSAo
eGRycHJvY190IF9fcHJvYywgY2hhciAqX19vYmpwKSA7CgoKIyA0NiAiL3Vzci9sb2NhbC9pbmNs
dWRlL3JwYy9ycGMuaCIgMiAzCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL2F1dGguaCIg
MSAzCiMgNDcgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvYXV0aC5oIiAzCgoKCgoKCgoKZW51bSBh
dXRoX3N0YXQgewogICAgICAgIEFVVEhfT0s9MCwKCgoKICAgICAgICBBVVRIX0JBRENSRUQ9MSwK
ICAgICAgICBBVVRIX1JFSkVDVEVEQ1JFRD0yLAogICAgICAgIEFVVEhfQkFEVkVSRj0zLAogICAg
ICAgIEFVVEhfUkVKRUNURURWRVJGPTQsCiAgICAgICAgQVVUSF9UT09XRUFLPTUsCgoKCiAgICAg
ICAgQVVUSF9JTlZBTElEUkVTUD02LAogICAgICAgIEFVVEhfRkFJTEVEPTcKfTsKCnVuaW9uIGRl
c19ibG9jayB7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgIHVfaW50MzJfdCBoaWdo
OwogICAgICAgICAgICAgICAgdV9pbnQzMl90IGxvdzsKICAgICAgICB9IGtleTsKICAgICAgICBj
aGFyIGNbOF07Cn07CnR5cGVkZWYgdW5pb24gZGVzX2Jsb2NrIGRlc19ibG9jazsKZXh0ZXJuIGJv
b2xfdCB4ZHJfZGVzX2Jsb2NrIChYRFIgKl9feGRycywgZGVzX2Jsb2NrICpfX2Jsa3ApIDsKCgoK
CnN0cnVjdCBvcGFxdWVfYXV0aCB7CiAgICAgICAgZW51bV90IG9hX2ZsYXZvcjsKICAgICAgICBj
YWRkcl90IG9hX2Jhc2U7CiAgICAgICAgdV9pbnQgb2FfbGVuZ3RoOwp9OwoKCgoKdHlwZWRlZiBz
dHJ1Y3QgQVVUSCBBVVRIOwpzdHJ1Y3QgQVVUSCB7CiAgc3RydWN0IG9wYXF1ZV9hdXRoIGFoX2Ny
ZWQ7CiAgc3RydWN0IG9wYXF1ZV9hdXRoIGFoX3ZlcmY7CiAgdW5pb24gZGVzX2Jsb2NrIGFoX2tl
eTsKICBzdHJ1Y3QgYXV0aF9vcHMgewogICAgdm9pZCAoKmFoX25leHR2ZXJmKSAoQVVUSCAqKTsK
ICAgIGludCAoKmFoX21hcnNoYWwpIChBVVRIICosIFhEUiAqKTsKICAgIGludCAoKmFoX3ZhbGlk
YXRlKSAoQVVUSCAqLCBzdHJ1Y3Qgb3BhcXVlX2F1dGggKik7CgogICAgaW50ICgqYWhfcmVmcmVz
aCkgKEFVVEggKik7CiAgICB2b2lkICgqYWhfZGVzdHJveSkgKEFVVEggKik7CiAgfSAqYWhfb3Bz
OwogIGNhZGRyX3QgYWhfcHJpdmF0ZTsKfTsKIyAxNDUgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMv
YXV0aC5oIiAzCmV4dGVybiBzdHJ1Y3Qgb3BhcXVlX2F1dGggX251bGxfYXV0aDsKIyAxNjEgIi91
c3IvbG9jYWwvaW5jbHVkZS9ycGMvYXV0aC5oIiAzCmV4dGVybiBBVVRIICphdXRodW5peF9jcmVh
dGUgKGNoYXIgKl9fbWFjaG5hbWUsIF9fdWlkX3QgX191aWQsIF9fZ2lkX3QgX19naWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2xlbiwgX19naWRfdCAqX19hdXBfZ2lkcykg
OwpleHRlcm4gQVVUSCAqYXV0aHVuaXhfY3JlYXRlX2RlZmF1bHQgKHZvaWQpIDsKZXh0ZXJuIEFV
VEggKmF1dGhub25lX2NyZWF0ZSAodm9pZCkgOwpleHRlcm4gQVVUSCAqYXV0aGRlc19jcmVhdGUg
KGNvbnN0IGNoYXIgKl9fc2VydmVybmFtZSwgdV9pbnQgX193aW5kb3csCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyICpfX3N5bmNhZGRyLCBkZXNfYmxvY2sgKl9f
Y2tleSkKICAgICA7CmV4dGVybiBBVVRIICphdXRoZGVzX3BrX2NyZWF0ZSAoY29uc3QgY2hhciAq
LCBuZXRvYmogKiwgdV9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IHNvY2thZGRyICosIGRlc19ibG9jayAqKSA7CiMgMTg1ICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBj
L2F1dGguaCIgMwpleHRlcm4gaW50IGdldG5ldG5hbWUgKGNoYXIgKikgOwpleHRlcm4gaW50IGhv
c3QybmV0bmFtZSAoY2hhciAqLCBfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBjaGFyICopIDsKZXh0
ZXJuIGludCB1c2VyMm5ldG5hbWUgKGNoYXIgKiwgX19jb25zdCB1aWRfdCwgX19jb25zdCBjaGFy
ICopIDsKZXh0ZXJuIGludCBuZXRuYW1lMnVzZXIgKF9fY29uc3QgY2hhciAqLCB1aWRfdCAqLCBn
aWRfdCAqLCBpbnQgKiwgZ2lkX3QgKikKICAgICA7CmV4dGVybiBpbnQgbmV0bmFtZTJob3N0IChf
X2NvbnN0IGNoYXIgKiwgY2hhciAqLCBfX2NvbnN0IGludCkgOwoKCgoKCgpleHRlcm4gaW50IGtl
eV9kZWNyeXB0c2Vzc2lvbiAoY2hhciAqLCBkZXNfYmxvY2sgKikgOwpleHRlcm4gaW50IGtleV9k
ZWNyeXB0c2Vzc2lvbl9wayAoY2hhciAqLCBuZXRvYmogKiwgZGVzX2Jsb2NrICopIDsKZXh0ZXJu
IGludCBrZXlfZW5jcnlwdHNlc3Npb24gKGNoYXIgKiwgZGVzX2Jsb2NrICopIDsKZXh0ZXJuIGlu
dCBrZXlfZW5jcnlwdHNlc3Npb25fcGsgKGNoYXIgKiwgbmV0b2JqICosIGRlc19ibG9jayAqKSA7
CmV4dGVybiBpbnQga2V5X2dlbmRlcyAoZGVzX2Jsb2NrICopIDsKZXh0ZXJuIGludCBrZXlfc2V0
c2VjcmV0IChjaGFyICopIDsKZXh0ZXJuIGludCBrZXlfc2VjcmV0a2V5X2lzX3NldCAodm9pZCkg
OwpleHRlcm4gaW50IGtleV9nZXRfY29udiAoY2hhciAqLCBkZXNfYmxvY2sgKikgOwoKCgoKZXh0
ZXJuIGJvb2xfdCB4ZHJfb3BhcXVlX2F1dGggKFhEUiAqLCBzdHJ1Y3Qgb3BhcXVlX2F1dGggKikg
OwoKCiMgNDkgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvcnBjLmgiIDIgMwoKCiMgMSAiL3Vzci9s
b2NhbC9pbmNsdWRlL3JwYy9jbG50LmgiIDEgMwojIDQ2ICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBj
L2NsbnQuaCIgMwoKCgoKCgoKZW51bSBjbG50X3N0YXQgewogICAgICAgIFJQQ19TVUNDRVNTPTAs
CgoKCiAgICAgICAgUlBDX0NBTlRFTkNPREVBUkdTPTEsCiAgICAgICAgUlBDX0NBTlRERUNPREVS
RVM9MiwKICAgICAgICBSUENfQ0FOVFNFTkQ9MywKICAgICAgICBSUENfQ0FOVFJFQ1Y9NCwKICAg
ICAgICBSUENfVElNRURPVVQ9NSwKCgoKICAgICAgICBSUENfVkVSU01JU01BVENIPTYsCiAgICAg
ICAgUlBDX0FVVEhFUlJPUj03LAogICAgICAgIFJQQ19QUk9HVU5BVkFJTD04LAogICAgICAgIFJQ
Q19QUk9HVkVSU01JU01BVENIPTksCiAgICAgICAgUlBDX1BST0NVTkFWQUlMPTEwLAogICAgICAg
IFJQQ19DQU5UREVDT0RFQVJHUz0xMSwKICAgICAgICBSUENfU1lTVEVNRVJST1I9MTIsCiAgICAg
ICAgUlBDX05PQlJPQURDQVNUID0gMjEsCgoKCiAgICAgICAgUlBDX1VOS05PV05IT1NUPTEzLAog
ICAgICAgIFJQQ19VTktOT1dOUFJPVE89MTcsCiAgICAgICAgUlBDX1VOS05PV05BRERSID0gMTks
CgoKCgogICAgICAgIFJQQ19SUENCRkFJTFVSRT0xNCwKCiAgICAgICAgUlBDX1BST0dOT1RSRUdJ
U1RFUkVEPTE1LAogICAgICAgIFJQQ19OMkFYTEFURUZBSUxVUkUgPSAyMiwKCgoKICAgICAgICBS
UENfRkFJTEVEPTE2LAogICAgICAgIFJQQ19JTlRSPTE4LAogICAgICAgIFJQQ19UTElFUlJPUj0y
MCwKICAgICAgICBSUENfVURFUlJPUj0yMywKCgoKICAgICAgICBSUENfSU5QUk9HUkVTUyA9IDI0
LAogICAgICAgIFJQQ19TVEFMRVJBQ0hBTkRMRSA9IDI1Cn07CgoKCgoKc3RydWN0IHJwY19lcnIg
ewogIGVudW0gY2xudF9zdGF0IHJlX3N0YXR1czsKICB1bmlvbiB7CiAgICBpbnQgUkVfZXJybm87
CiAgICBlbnVtIGF1dGhfc3RhdCBSRV93aHk7CiAgICBzdHJ1Y3QgewogICAgICB1X2xvbmcgbG93
OwogICAgICB1X2xvbmcgaGlnaDsKICAgIH0gUkVfdmVyczsKICAgIHN0cnVjdCB7CiAgICAgIGxv
bmcgczE7CiAgICAgIGxvbmcgczI7CiAgICB9IFJFX2xiOwogIH0gcnU7CgoKCgp9OwoKCgoKCgoK
dHlwZWRlZiBzdHJ1Y3QgQ0xJRU5UIENMSUVOVDsKc3RydWN0IENMSUVOVCB7CiAgQVVUSCAqY2xf
YXV0aDsKICBzdHJ1Y3QgY2xudF9vcHMgewogICAgZW51bSBjbG50X3N0YXQgKCpjbF9jYWxsKSAo
Q0xJRU5UICosIHVfbG9uZywgeGRycHJvY190LCBjYWRkcl90LCB4ZHJwcm9jX3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYWRkcl90LCBzdHJ1Y3QgdGltZXZhbCk7CgogICAgdm9p
ZCAoKmNsX2Fib3J0KSAodm9pZCk7CiAgICB2b2lkICgqY2xfZ2V0ZXJyKSAoQ0xJRU5UICosIHN0
cnVjdCBycGNfZXJyICopOwoKICAgIGJvb2xfdCAoKmNsX2ZyZWVyZXMpIChDTElFTlQgKiwgeGRy
cHJvY190LCBjYWRkcl90KTsKCiAgICB2b2lkICgqY2xfZGVzdHJveSkgKENMSUVOVCAqKTsKICAg
IGJvb2xfdCAoKmNsX2NvbnRyb2wpIChDTElFTlQgKiwgaW50LCBjaGFyICopOwoKICB9ICpjbF9v
cHM7CiAgY2FkZHJfdCBjbF9wcml2YXRlOwp9OwojIDI4MCAiL3Vzci9sb2NhbC9pbmNsdWRlL3Jw
Yy9jbG50LmgiIDMKZXh0ZXJuIENMSUVOVCAqY2xudHJhd19jcmVhdGUgKF9fY29uc3QgdV9sb25n
IF9fcHJvZywgX19jb25zdCB1X2xvbmcgX192ZXJzKQogICAgIDsKIyAyOTQgIi91c3IvbG9jYWwv
aW5jbHVkZS9ycGMvY2xudC5oIiAzCmV4dGVybiBDTElFTlQgKmNsbnRfY3JlYXRlIChfX2NvbnN0
IGNoYXIgKl9faG9zdCwgX19jb25zdCB1X2xvbmcgX19wcm9nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX19jb25zdCB1X2xvbmcgX192ZXJzLCBfX2NvbnN0IGNoYXIgKl9fcHJvdCkKICAg
ICA7CiMgMzEwICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL2NsbnQuaCIgMwpleHRlcm4gQ0xJRU5U
ICpjbG50dGNwX2NyZWF0ZSAoc3RydWN0IHNvY2thZGRyX2luICpfX3JhZGRyLCB1X2xvbmcgX19w
cm9nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nIF9fdmVyc2lvbiwgaW50
ICpfX3NvY2twLCB1X2ludCBfX3NlbmRzeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVfaW50IF9fcmVjdnN6KSA7CiMgMzM1ICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL2NsbnQuaCIg
MwpleHRlcm4gQ0xJRU5UICpjbG50dWRwX2NyZWF0ZSAoc3RydWN0IHNvY2thZGRyX2luICpfX3Jh
ZGRyLCB1X2xvbmcgX19wcm9ncmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9s
b25nIF9fdmVyc2lvbiwgc3RydWN0IHRpbWV2YWwgX193YWl0X3Jlc2VuZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCAqX19zb2NrcCkgOwpleHRlcm4gQ0xJRU5UICpjbG50dWRw
X2J1ZmNyZWF0ZSAoc3RydWN0IHNvY2thZGRyX2luICpfX3JhZGRyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdV9sb25nIF9fcHJvZ3JhbSwgdV9sb25nIF9fdmVyc2lvbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFsIF9fd2FpdF9yZXNl
bmQsIGludCAqX19zb2NrcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfaW50
IF9fc2VuZHN6LCB1X2ludCBfX3JlY3ZzeikgOwojIDM1NyAiL3Vzci9sb2NhbC9pbmNsdWRlL3Jw
Yy9jbG50LmgiIDMKZXh0ZXJuIENMSUVOVCAqY2xudHVuaXhfY3JlYXRlIChzdHJ1Y3Qgc29ja2Fk
ZHJfdW4gKl9fcmFkZHIsIHVfbG9uZyBfX3Byb2dyYW0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVfbG9uZyBfX3ZlcnNpb24sIGludCAqX19zb2NrcCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdV9pbnQgX19zZW5kc3osIHVfaW50IF9fcmVjdnN6KSA7CgoKZXh0
ZXJuIGludCBjYWxscnBjIChfX2NvbnN0IGNoYXIgKl9faG9zdCwgX19jb25zdCB1X2xvbmcgX19w
cm9nbnVtLAogICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdV9sb25nIF9fdmVyc251bSwgX19j
b25zdCB1X2xvbmcgX19wcm9jbnVtLAogICAgICAgICAgICAgICAgICAgIF9fY29uc3QgeGRycHJv
Y190IF9faW5wcm9jLCBfX2NvbnN0IGNoYXIgKl9faW4sCiAgICAgICAgICAgICAgICAgICAgX19j
b25zdCB4ZHJwcm9jX3QgX19vdXRwcm9jLCBjaGFyICpfX291dCkgOwpleHRlcm4gaW50IF9ycGNf
ZHRhYmxlc2l6ZSAodm9pZCkgOwoKCgoKZXh0ZXJuIHZvaWQgY2xudF9wY3JlYXRlZXJyb3IgKF9f
Y29uc3QgY2hhciAqX19tc2cpIDsKZXh0ZXJuIGNoYXIgKmNsbnRfc3BjcmVhdGVlcnJvcihfX2Nv
bnN0IGNoYXIgKl9fbXNnKSA7CgoKCgpleHRlcm4gdm9pZCBjbG50X3BlcnJubyAoZW51bSBjbG50
X3N0YXQgX19udW0pIDsKCgoKCmV4dGVybiB2b2lkIGNsbnRfcGVycm9yIChDTElFTlQgKl9fY2xu
dCwgX19jb25zdCBjaGFyICpfX21zZykgOwoKZXh0ZXJuIGNoYXIgKmNsbnRfc3BlcnJvciAoQ0xJ
RU5UICpfX2NsbnQsIF9fY29uc3QgY2hhciAqX19tc2cpIDsKCgoKCgpzdHJ1Y3QgcnBjX2NyZWF0
ZWVyciB7CiAgICAgICAgZW51bSBjbG50X3N0YXQgY2Zfc3RhdDsKICAgICAgICBzdHJ1Y3QgcnBj
X2VyciBjZl9lcnJvcjsKfTsKCmV4dGVybiBzdHJ1Y3QgcnBjX2NyZWF0ZWVyciBycGNfY3JlYXRl
ZXJyOwoKCgoKCgpleHRlcm4gY2hhciAqY2xudF9zcGVycm5vIChlbnVtIGNsbnRfc3RhdCBfX251
bSkgOwoKCgoKZXh0ZXJuIGludCBnZXRycGNwb3J0IChfX2NvbnN0IGNoYXIgKiBfX2hvc3QsIHVf
bG9uZyBfX3Byb2dudW0sCiAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nIF9fdmVyc251bSwg
dV9pbnQgcHJvdG8pIDsKCgoKCgpleHRlcm4gdm9pZCBnZXRfbXlhZGRyZXNzIChzdHJ1Y3Qgc29j
a2FkZHJfaW4gKikgOwoKCgoKCiMgNTIgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvcnBjLmgiIDIg
MwoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGNfbXNnLmgiIDEgMwojIDUwICIvdXNy
L2xvY2FsL2luY2x1ZGUvcnBjL3JwY19tc2cuaCIgMwoKCgoKCgoKCmVudW0gbXNnX3R5cGUgewog
ICAgICAgIENBTEw9MCwKICAgICAgICBSRVBMWT0xCn07CgplbnVtIHJlcGx5X3N0YXQgewogICAg
ICAgIE1TR19BQ0NFUFRFRD0wLAogICAgICAgIE1TR19ERU5JRUQ9MQp9OwoKZW51bSBhY2NlcHRf
c3RhdCB7CiAgICAgICAgU1VDQ0VTUz0wLAogICAgICAgIFBST0dfVU5BVkFJTD0xLAogICAgICAg
IFBST0dfTUlTTUFUQ0g9MiwKICAgICAgICBQUk9DX1VOQVZBSUw9MywKICAgICAgICBHQVJCQUdF
X0FSR1M9NCwKICAgICAgICBTWVNURU1fRVJSPTUKfTsKCmVudW0gcmVqZWN0X3N0YXQgewogICAg
ICAgIFJQQ19NSVNNQVRDSD0wLAogICAgICAgIEFVVEhfRVJST1I9MQp9OwojIDkxICIvdXNyL2xv
Y2FsL2luY2x1ZGUvcnBjL3JwY19tc2cuaCIgMwpzdHJ1Y3QgYWNjZXB0ZWRfcmVwbHkgewogICAg
ICAgIHN0cnVjdCBvcGFxdWVfYXV0aCBhcl92ZXJmOwogICAgICAgIGVudW0gYWNjZXB0X3N0YXQg
YXJfc3RhdDsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAg
ICAgICAgICAgICAgICAgICB1X2xvbmcgbG93OwogICAgICAgICAgICAgICAgICAgICAgICB1X2xv
bmcgaGlnaDsKICAgICAgICAgICAgICAgIH0gQVJfdmVyc2lvbnM7CiAgICAgICAgICAgICAgICBz
dHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBjYWRkcl90IHdoZXJlOwogICAgICAgICAg
ICAgICAgICAgICAgICB4ZHJwcm9jX3QgcHJvYzsKICAgICAgICAgICAgICAgIH0gQVJfcmVzdWx0
czsKCiAgICAgICAgfSBydTsKCgp9OwoKCgoKc3RydWN0IHJlamVjdGVkX3JlcGx5IHsKICAgICAg
ICBlbnVtIHJlamVjdF9zdGF0IHJqX3N0YXQ7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nIGxvdzsKICAgICAgICAg
ICAgICAgICAgICAgICAgdV9sb25nIGhpZ2g7CiAgICAgICAgICAgICAgICB9IFJKX3ZlcnNpb25z
OwogICAgICAgICAgICAgICAgZW51bSBhdXRoX3N0YXQgUkpfd2h5OwogICAgICAgIH0gcnU7CgoK
fTsKCgoKCnN0cnVjdCByZXBseV9ib2R5IHsKICAgICAgICBlbnVtIHJlcGx5X3N0YXQgcnBfc3Rh
dDsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgYWNjZXB0ZWRfcmVwbHkg
UlBfYXI7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgcmVqZWN0ZWRfcmVwbHkgUlBfZHI7CiAgICAg
ICAgfSBydTsKCgp9OwoKCgoKc3RydWN0IGNhbGxfYm9keSB7CiAgICAgICAgdV9sb25nIGNiX3Jw
Y3ZlcnM7CiAgICAgICAgdV9sb25nIGNiX3Byb2c7CiAgICAgICAgdV9sb25nIGNiX3ZlcnM7CiAg
ICAgICAgdV9sb25nIGNiX3Byb2M7CiAgICAgICAgc3RydWN0IG9wYXF1ZV9hdXRoIGNiX2NyZWQ7
CiAgICAgICAgc3RydWN0IG9wYXF1ZV9hdXRoIGNiX3ZlcmY7Cn07CgoKCgpzdHJ1Y3QgcnBjX21z
ZyB7CiAgICAgICAgdV9sb25nIHJtX3hpZDsKICAgICAgICBlbnVtIG1zZ190eXBlIHJtX2RpcmVj
dGlvbjsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgY2FsbF9ib2R5IFJN
X2NtYjsKICAgICAgICAgICAgICAgIHN0cnVjdCByZXBseV9ib2R5IFJNX3JtYjsKICAgICAgICB9
IHJ1OwoKCn07CiMgMTczICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjL3JwY19tc2cuaCIgMwpleHRl
cm4gYm9vbF90IHhkcl9jYWxsbXNnIChYRFIgKl9feGRycywgc3RydWN0IHJwY19tc2cgKl9fY21z
ZykgOwoKCgoKCgoKZXh0ZXJuIGJvb2xfdCB4ZHJfY2FsbGhkciAoWERSICpfX3hkcnMsIHN0cnVj
dCBycGNfbXNnICpfX2Ntc2cpIDsKCgoKCgoKCmV4dGVybiBib29sX3QgeGRyX3JlcGx5bXNnIChY
RFIgKl9feGRycywgc3RydWN0IHJwY19tc2cgKl9fcm1zZykgOwoKCgoKCgoKZXh0ZXJuIHZvaWQg
X3NldGVycl9yZXBseSAoc3RydWN0IHJwY19tc2cgKl9fbXNnLCBzdHJ1Y3QgcnBjX2VyciAqX19l
cnJvcikKICAgICA7CgoKIyA1NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMuaCIgMiAzCiMg
MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9hdXRoX3VuaXguaCIgMSAzCiMgNTQgIi91c3IvbG9j
YWwvaW5jbHVkZS9ycGMvYXV0aF91bml4LmgiIDMKCiMgNjUgIi91c3IvbG9jYWwvaW5jbHVkZS9y
cGMvYXV0aF91bml4LmgiIDMKc3RydWN0IGF1dGh1bml4X3Bhcm1zCiAgewogICAgdV9sb25nIGF1
cF90aW1lOwogICAgY2hhciAqYXVwX21hY2huYW1lOwogICAgX191aWRfdCBhdXBfdWlkOwogICAg
X19naWRfdCBhdXBfZ2lkOwogICAgdV9pbnQgYXVwX2xlbjsKICAgIF9fZ2lkX3QgKmF1cF9naWRz
OwogIH07CgpleHRlcm4gYm9vbF90IHhkcl9hdXRodW5peF9wYXJtcyAoWERSICpfX3hkcnMsIHN0
cnVjdCBhdXRodW5peF9wYXJtcyAqX19wKQogICAgIDsKCgoKCgoKc3RydWN0IHNob3J0X2hhbmRf
dmVyZgogIHsKICAgIHN0cnVjdCBvcGFxdWVfYXV0aCBuZXdfY3JlZDsKICB9OwoKCiMgNTYgIi91
c3IvbG9jYWwvaW5jbHVkZS9ycGMvcnBjLmgiIDIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9y
cGMvYXV0aF9kZXMuaCIgMSAzCiMgMjUgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvYXV0aF9kZXMu
aCIgMwoKCgplbnVtIGF1dGhkZXNfbmFtZWtpbmQKICB7CiAgICBBRE5fRlVMTE5BTUUsCiAgICBB
RE5fTklDS05BTUUKICB9OwoKCgpzdHJ1Y3QgYXV0aGRlc19mdWxsbmFtZQogIHsKICAgIGNoYXIg
Km5hbWU7CiAgICBkZXNfYmxvY2sga2V5OwogICAgdWludDMyX3Qgd2luZG93OwogIH07CgoKc3Ry
dWN0IGF1dGhkZXNfY3JlZAogIHsKICAgIGVudW0gYXV0aGRlc19uYW1la2luZCBhZGNfbmFtZWtp
bmQ7CiAgICBzdHJ1Y3QgYXV0aGRlc19mdWxsbmFtZSBhZGNfZnVsbG5hbWU7CiAgICB1aW50MzJf
dCBhZGNfbmlja25hbWU7CiAgfTsKCgpzdHJ1Y3QgcnBjX3RpbWV2YWwKICB7CiAgICB1aW50MzJf
dCB0dl9zZWM7CiAgICB1aW50MzJfdCB0dl91c2VjOwogIH07CgoKc3RydWN0IGF1dGhkZXNfdmVy
ZgogIHsKICAgIHVuaW9uCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgcnBjX3RpbWV2YWwgYWR2X2N0
aW1lOwogICAgICAgIGRlc19ibG9jayBhZHZfeHRpbWU7CiAgICAgIH0KICAgIGFkdl90aW1lX3U7
CiAgICB1aW50MzJfdCBhZHZfaW50X3U7CiAgfTsKIyA4OSAiL3Vzci9sb2NhbC9pbmNsdWRlL3Jw
Yy9hdXRoX2Rlcy5oIiAzCmV4dGVybiBpbnQgYXV0aGRlc19nZXR1Y3JlZCAoX19jb25zdCBzdHJ1
Y3QgYXV0aGRlc19jcmVkICogX19hZGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlk
X3QgKiBfX3VpZCwgZ2lkX3QgKiBfX2dpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aG9ydCAqX19ncm91cGxlbiwgZ2lkX3QgKiBfX2dyb3VwcykgOwoKCgoKZXh0ZXJuIGludCBnZXRw
dWJsaWNrZXkgKF9fY29uc3QgY2hhciAqX19uYW1lLCBjaGFyICpfX2tleSkgOwoKCgoKCgpleHRl
cm4gaW50IGdldHNlY3JldGtleSAoX19jb25zdCBjaGFyICpfX25hbWUsIGNoYXIgKl9fa2V5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Bhc3N3ZCkgOwoKZXh0ZXJu
IGludCBydGltZSAoc3RydWN0IHNvY2thZGRyX2luICpfX2FkZHJwLCBzdHJ1Y3QgcnBjX3RpbWV2
YWwgKl9fdGltZXAsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCBycGNfdGltZXZhbCAqX190aW1l
b3V0KSA7CgoKIyA1NyAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMuaCIgMiAzCgoKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvcnBjL3N2Yy5oIiAxIDMKIyA0MiAiL3Vzci9sb2NhbC9pbmNsdWRl
L3JwYy9zdmMuaCIgMwoKIyA2NiAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9zdmMuaCIgMwplbnVt
IHhwcnRfc3RhdCB7CiAgICAgICAgWFBSVF9ESUVELAogICAgICAgIFhQUlRfTU9SRVJFUVMsCiAg
ICAgICAgWFBSVF9JRExFCn07CgoKCgp0eXBlZGVmIHN0cnVjdCBTVkNYUFJUIFNWQ1hQUlQ7CnN0
cnVjdCBTVkNYUFJUIHsKICBpbnQgeHBfc29jazsKICB1X3Nob3J0IHhwX3BvcnQ7CiAgY29uc3Qg
c3RydWN0IHhwX29wcyB7CiAgICBib29sX3QgKCp4cF9yZWN2KSAoU1ZDWFBSVCAqX194cHJ0LCBz
dHJ1Y3QgcnBjX21zZyAqX19tc2cpOwoKICAgIGVudW0geHBydF9zdGF0ICgqeHBfc3RhdCkgKFNW
Q1hQUlQgKl9feHBydCk7CgogICAgYm9vbF90ICgqeHBfZ2V0YXJncykgKFNWQ1hQUlQgKl9feHBy
dCwgeGRycHJvY190IF9feGRyX2FyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YWRkcl90IGFyZ3NfcHRyKTsKICAgIGJvb2xfdCAoKnhwX3JlcGx5KSAoU1ZDWFBSVCAqX194cHJ0
LCBzdHJ1Y3QgcnBjX21zZyAqX19tc2cpOwoKICAgIGJvb2xfdCAoKnhwX2ZyZWVhcmdzKSAoU1ZD
WFBSVCAqX194cHJ0LCB4ZHJwcm9jX3QgX194ZHJfYXJncywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWRkcl90IGFyZ3NfcHRyKTsKCiAgICB2b2lkICgqeHBfZGVzdHJveSkgKFNW
Q1hQUlQgKl9feHBydCk7CgogIH0gKnhwX29wczsKICBpbnQgeHBfYWRkcmxlbjsKICBzdHJ1Y3Qg
c29ja2FkZHJfaW4geHBfcmFkZHI7CiAgc3RydWN0IG9wYXF1ZV9hdXRoIHhwX3ZlcmY7CiAgY2Fk
ZHJfdCB4cF9wMTsKICBjYWRkcl90IHhwX3AyOwogIGNoYXIgeHBfcGFkIFsyNTZdOwp9OwojIDE0
OSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9zdmMuaCIgMwpzdHJ1Y3Qgc3ZjX3JlcSB7CiAgcnBj
cHJvZ190IHJxX3Byb2c7CiAgcnBjdmVyc190IHJxX3ZlcnM7CiAgcnBjcHJvY190IHJxX3Byb2M7
CiAgc3RydWN0IG9wYXF1ZV9hdXRoIHJxX2NyZWQ7CiAgY2FkZHJfdCBycV9jbG50Y3JlZDsKICBT
VkNYUFJUICpycV94cHJ0Owp9OwoKCgp0eXBlZGVmIHZvaWQgKCpfX2Rpc3BhdGNoX2ZuX3QpIChz
dHJ1Y3Qgc3ZjX3JlcSosIFNWQ1hQUlQqKTsKIyAxNzMgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMv
c3ZjLmgiIDMKZXh0ZXJuIGJvb2xfdCBzdmNfcmVnaXN0ZXIgKFNWQ1hQUlQgKl9feHBydCwgcnBj
cHJvZ190IF9fcHJvZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJwY3ZlcnNfdCBfX3Zl
cnMsIF9fZGlzcGF0Y2hfZm5fdCBfX2Rpc3BhdGNoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnBjcHJvdF90IF9fcHJvdG9jb2wpIDsKIyAxODQgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMv
c3ZjLmgiIDMKZXh0ZXJuIHZvaWQgc3ZjX3VucmVnaXN0ZXIgKHJwY3Byb2dfdCBfX3Byb2csIHJw
Y3ZlcnNfdCBfX3ZlcnMpIDsKCgoKCgoKCmV4dGVybiB2b2lkIHhwcnRfcmVnaXN0ZXIgKFNWQ1hQ
UlQgKl9feHBydCkgOwoKCgoKCgoKZXh0ZXJuIHZvaWQgeHBydF91bnJlZ2lzdGVyIChTVkNYUFJU
ICpfX3hwcnQpIDsKIyAyMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMvc3ZjLmgiIDMKZXh0ZXJu
IGJvb2xfdCBzdmNfc2VuZHJlcGx5IChTVkNYUFJUICp4cHJ0LCB4ZHJwcm9jX3QgX194ZHJfcmVz
dWx0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhZGRyX3QgX194ZHJfbG9jYXRp
b24pIDsKCmV4dGVybiB2b2lkIHN2Y2Vycl9kZWNvZGUgKFNWQ1hQUlQgKl9feHBydCkgOwoKZXh0
ZXJuIHZvaWQgc3ZjZXJyX3dlYWthdXRoIChTVkNYUFJUICpfX3hwcnQpIDsKCmV4dGVybiB2b2lk
IHN2Y2Vycl9ub3Byb2MgKFNWQ1hQUlQgKl9feHBydCkgOwoKZXh0ZXJuIHZvaWQgc3ZjZXJyX3By
b2d2ZXJzIChTVkNYUFJUICpfX3hwcnQsIHJwY3ZlcnNfdCBfX2xvd192ZXJzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBycGN2ZXJzX3QgX19oaWdoX3ZlcnMpIDsKCmV4dGVybiB2
b2lkIHN2Y2Vycl9hdXRoIChTVkNYUFJUICpfX3hwcnQsIGVudW0gYXV0aF9zdGF0IF9fd2h5KSA7
CgpleHRlcm4gdm9pZCBzdmNlcnJfbm9wcm9nIChTVkNYUFJUICpfX3hwcnQpIDsKCmV4dGVybiB2
b2lkIHN2Y2Vycl9zeXN0ZW1lcnIgKFNWQ1hQUlQgKl9feHBydCkgOwojIDI2MyAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3JwYy9zdmMuaCIgMwpleHRlcm4gc3RydWN0IHBvbGxmZCAqc3ZjX3BvbGxmZDsK
ZXh0ZXJuIGludCBzdmNfbWF4X3BvbGxmZDsKZXh0ZXJuIGZkX3NldCBzdmNfZmRzZXQ7CgoKCgoK
CmV4dGVybiB2b2lkIHN2Y19nZXRyZXEgKGludCBfX3JkZmRzKSA7CmV4dGVybiB2b2lkIHN2Y19n
ZXRyZXFfY29tbW9uIChjb25zdCBpbnQgX19mZCkgOwpleHRlcm4gdm9pZCBzdmNfZ2V0cmVxc2V0
IChmZF9zZXQgKl9fcmVhZGZkcykgOwpleHRlcm4gdm9pZCBzdmNfZ2V0cmVxX3BvbGwgKHN0cnVj
dCBwb2xsZmQgKiwgY29uc3QgaW50KSA7CmV4dGVybiB2b2lkIHN2Y19leGl0ICh2b2lkKSA7CmV4
dGVybiB2b2lkIHN2Y19ydW4gKHZvaWQpIDsKIyAyOTEgIi91c3IvbG9jYWwvaW5jbHVkZS9ycGMv
c3ZjLmgiIDMKZXh0ZXJuIFNWQ1hQUlQgKnN2Y3Jhd19jcmVhdGUgKHZvaWQpIDsKCgoKCmV4dGVy
biBTVkNYUFJUICpzdmN1ZHBfY3JlYXRlIChpbnQgX19zb2NrKSA7CmV4dGVybiBTVkNYUFJUICpz
dmN1ZHBfYnVmY3JlYXRlIChpbnQgX19zb2NrLCB1X2ludCBfX3NlbmRzeiwgdV9pbnQgX19yZWN2
c3opCiAgICAgOwoKCgoKZXh0ZXJuIFNWQ1hQUlQgKnN2Y3RjcF9jcmVhdGUgKGludCBfX3NvY2ss
IHVfaW50IF9fc2VuZHNpemUsIHVfaW50IF9fcmVjdnNpemUpCiAgICAgOwoKCgoKCmV4dGVybiBT
VkNYUFJUICpzdmN1bml4X2NyZWF0ZSAoaW50IF9fc29jaywgdV9pbnQgX19zZW5kc2l6ZSwgdV9p
bnQgX19yZWN2c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpfX3Bh
dGgpIDsKCgoKIyA2MCAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMuaCIgMiAzCiMgMSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3JwYy9zdmNfYXV0aC5oIiAxIDMKIyA0NCAiL3Vzci9sb2NhbC9pbmNs
dWRlL3JwYy9zdmNfYXV0aC5oIiAzCgoKCgoKZXh0ZXJuIGVudW0gYXV0aF9zdGF0IF9hdXRoZW50
aWNhdGUgKHN0cnVjdCBzdmNfcmVxICpfX3Jxc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgcnBjX21zZyAqX19tc2cpIDsKCgojIDYxICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvcnBjL3JwYy5oIiAyIDMKIyA3MCAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMuaCIg
MwoKCgpleHRlcm4gZmRfc2V0ICpfX3JwY190aHJlYWRfc3ZjX2Zkc2V0ICh2b2lkKSBfX2F0dHJp
YnV0ZV9fICgoX19jb25zdF9fKSk7CgoKZXh0ZXJuIHN0cnVjdCBycGNfY3JlYXRlZXJyICpfX3Jw
Y190aHJlYWRfY3JlYXRlZXJyICh2b2lkKQogICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p
KTsKIyA4OCAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwYy9ycGMuaCIgMwpleHRlcm4gc3RydWN0IHBv
bGxmZCAqKl9fcnBjX3RocmVhZF9zdmNfcG9sbGZkICh2b2lkKQogICAgIF9fYXR0cmlidXRlX18g
KChfX2NvbnN0X18pKTsKCgpleHRlcm4gaW50ICpfX3JwY190aHJlYWRfc3ZjX21heF9wb2xsZmQg
KHZvaWQpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKIyAzNTUgImluY2x1ZGUvaW5j
bHVkZXMuaCIgMgojIDM2MyAiaW5jbHVkZS9pbmNsdWRlcy5oIgojIDEgIi91c3IvbG9jYWwvaW5j
bHVkZS9ycGNzdmMveXBfcHJvdC5oIiAxIDMKIyAxMyAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwY3N2
Yy95cF9wcm90LmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvcnBjc3ZjL3lwY2xudC5oIiAx
IDMKIyA1MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwY3N2Yy95cGNsbnQuaCIgMwoKCgpzdHJ1Y3Qg
eXBhbGxfY2FsbGJhY2sKICB7CiAgICBpbnQgKCpmb3JlYWNoKSAoaW50IF9fc3RhdHVzLCBjaGFy
ICpfX2tleSwgaW50IF9fa2V5bGVuLAogICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fdmFsLCBp
bnQgX192YWxsZW4sIGNoYXIgKl9fZGF0YSk7CiAgICBjaGFyICpkYXRhOwogIH07CgoKZXh0ZXJu
IGludCB5cF9iaW5kIChfX2NvbnN0IGNoYXIgKikgOwpleHRlcm4gdm9pZCB5cF91bmJpbmQgKF9f
Y29uc3QgY2hhciAqKSA7CmV4dGVybiBpbnQgeXBfZ2V0X2RlZmF1bHRfZG9tYWluIChjaGFyICoq
KSA7CmV4dGVybiBpbnQgeXBfbWF0Y2ggKF9fY29uc3QgY2hhciAqLCBfX2NvbnN0IGNoYXIgKiwg
X19jb25zdCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgaW50LCBjaGFyICoq
LCBpbnQgKikgOwpleHRlcm4gaW50IHlwX2ZpcnN0IChfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBj
aGFyICosIGNoYXIgKiosCiAgICAgICAgICAgICAgICAgICAgIGludCAqLCBjaGFyICoqLCBpbnQg
KikgOwpleHRlcm4gaW50IHlwX25leHQgKF9fY29uc3QgY2hhciAqLCBfX2NvbnN0IGNoYXIgKiwg
X19jb25zdCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBpbnQsIGNoYXIgKios
IGludCAqLCBjaGFyICoqLCBpbnQgKikgOwpleHRlcm4gaW50IHlwX21hc3RlciAoX19jb25zdCBj
aGFyICosIF9fY29uc3QgY2hhciAqLCBjaGFyICoqKSA7CmV4dGVybiBpbnQgeXBfb3JkZXIgKF9f
Y29uc3QgY2hhciAqLCBfX2NvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50ICopIDsKZXh0ZXJuIGlu
dCB5cF9hbGwgKF9fY29uc3QgY2hhciAqLCBfX2NvbnN0IGNoYXIgKiwKICAgICAgICAgICAgICAg
ICAgIF9fY29uc3Qgc3RydWN0IHlwYWxsX2NhbGxiYWNrICopIDsKZXh0ZXJuIF9fY29uc3QgY2hh
ciAqeXBlcnJfc3RyaW5nIChfX2NvbnN0IGludCkgOwpleHRlcm4gX19jb25zdCBjaGFyICp5cGJp
bmRlcnJfc3RyaW5nIChfX2NvbnN0IGludCkgOwpleHRlcm4gaW50IHlwcHJvdF9lcnIgKF9fY29u
c3QgaW50KSA7CmV4dGVybiBpbnQgeXBfdXBkYXRlIChjaGFyICosIGNoYXIgKiwgdW5zaWduZWQg
aW50LCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICBpbnQsIGNoYXIgKiwgaW50KSA7CgoK
CgoKZXh0ZXJuIGludCBfX3lwX2NoZWNrIChjaGFyICoqKSA7CgoKIyAxNCAiL3Vzci9sb2NhbC9p
bmNsdWRlL3JwY3N2Yy95cF9wcm90LmgiIDIgMwoKCiMgNzQgIi91c3IvbG9jYWwvaW5jbHVkZS9y
cGNzdmMveXBfcHJvdC5oIiAzCnR5cGVkZWYgc3RydWN0IHsKICB1X2ludCBrZXlkYXRfbGVuOwog
IGNoYXIgKmtleWRhdF92YWw7Cn0ga2V5ZGF0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgdV9pbnQg
dmFsZGF0X2xlbjsKICBjaGFyICp2YWxkYXRfdmFsOwp9IHZhbGRhdF90OwoKc3RydWN0IHlwbWFw
X3Bhcm1zIHsKICBjaGFyICpkb21haW47CiAgY2hhciAqbWFwOwogIHVuc2lnbmVkIGludCBvcmRl
cm51bTsKICBjaGFyICpvd25lcjsKfTsKCgoKCgpzdHJ1Y3QgeXByZXFfa2V5IHsKICBjb25zdCBj
aGFyICpkb21haW47CiAgY29uc3QgY2hhciAqbWFwOwogIGtleWRhdF90IGtleWRhdDsKfTsKCnN0
cnVjdCB5cHJlcV9ub2tleSB7CiAgY2hhciAqZG9tYWluOwogIGNoYXIgKm1hcDsKfTsKCnN0cnVj
dCB5cHJlcV94ZnIgewogIHN0cnVjdCB5cG1hcF9wYXJtcyBtYXBfcGFybXM7CiAgdV9pbnQgdHJh
bnNpZDsKICB1X2ludCBwcm90bzsKICB1X2ludCBwb3J0Owp9OwojIDEyMCAiL3Vzci9sb2NhbC9p
bmNsdWRlL3JwY3N2Yy95cF9wcm90LmgiIDMKZW51bSB5cHN0YXQgewogIFlQX1RSVUUgPSAxLAoK
ICBZUF9OT01PUkUgPSAyLAoKICBZUF9GQUxTRSA9IDAsCgogIFlQX05PTUFQID0gLTEsCgogIFlQ
X05PRE9NID0gLTIsCgogIFlQX05PS0VZID0gLTMsCgogIFlQX0JBRE9QID0gLTQsCgogIFlQX0JB
RERCID0gLTUsCgogIFlQX1lQRVJSID0gLTYsCgogIFlQX0JBREFSR1MgPSAtNywKCiAgWVBfVkVS
UyA9IC04LAoKCn07CgoKCgoKdHlwZWRlZiBlbnVtIHlwc3RhdCB5cHN0YXQ7CgpzdHJ1Y3QgeXBy
ZXNwX3ZhbCB7CiAgeXBzdGF0IHN0YXR1czsKICB2YWxkYXRfdCB2YWxkYXQ7Cn07CgpzdHJ1Y3Qg
eXByZXNwX2tleV92YWwgewogIHlwc3RhdCBzdGF0dXM7CiMgMTY4ICIvdXNyL2xvY2FsL2luY2x1
ZGUvcnBjc3ZjL3lwX3Byb3QuaCIgMwogIHZhbGRhdF90IHZhbGRhdDsKICBrZXlkYXRfdCBrZXlk
YXQ7Cgp9OwoKc3RydWN0IHlwcmVzcF9tYXN0ZXIgewogIHlwc3RhdCBzdGF0dXM7CiAgY2hhciAq
bWFzdGVyOwp9OwoKc3RydWN0IHlwcmVzcF9vcmRlciB7CiAgeXBzdGF0IHN0YXR1czsKICB1X2lu
dCBvcmRlcm51bTsKfTsKCnN0cnVjdCB5cG1hcGxpc3QgewogIGNoYXIgKm1hcDsKCiAgc3RydWN0
IHlwbWFwbGlzdCAqbmV4dDsKCn07CgpzdHJ1Y3QgeXByZXNwX21hcGxpc3QgewogIHlwc3RhdCBz
dGF0dXM7CiAgc3RydWN0IHlwbWFwbGlzdCAqbGlzdDsKfTsKIyAyNDYgIi91c3IvbG9jYWwvaW5j
bHVkZS9ycGNzdmMveXBfcHJvdC5oIiAzCmVudW0geXBiaW5kX3Jlc3B0eXBlIHtZUEJJTkRfU1VD
Q19WQUwgPSAxLCBZUEJJTkRfRkFJTF9WQUwgPSAyfTsKCnN0cnVjdCB5cGJpbmRfYmluZGluZyB7
CiAgc3RydWN0IGluX2FkZHIgeXBiaW5kX2JpbmRpbmdfYWRkcjsKICB1bnNpZ25lZCBzaG9ydCBp
bnQgeXBiaW5kX2JpbmRpbmdfcG9ydDsKfTsKCnN0cnVjdCB5cGJpbmRfcmVzcCB7CiAgZW51bSB5
cGJpbmRfcmVzcHR5cGUgeXBiaW5kX3N0YXR1czsKICB1bmlvbiB7CiAgICB1X2ludCB5cGJpbmRf
ZXJyb3I7CiAgICBzdHJ1Y3QgeXBiaW5kX2JpbmRpbmcgeXBiaW5kX2JpbmRpbmZvOwogIH0geXBi
aW5kX3Jlc3Bib2R5Owp9OwojIDI3MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwY3N2Yy95cF9wcm90
LmgiIDMKc3RydWN0IHlwYmluZF9zZXRkb20gewogIGNoYXIgKnlwc2V0ZG9tX2RvbWFpbjsKICBz
dHJ1Y3QgeXBiaW5kX2JpbmRpbmcgeXBzZXRkb21fYmluZGluZzsKICB1X2ludCB5cHNldGRvbV92
ZXJzOwp9OwojIDI5NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JwY3N2Yy95cF9wcm90LmgiIDMKZW51
bSB5cHB1c2hfc3RhdHVzIHsKICBZUFBVU0hfU1VDQyA9IDEsCgogIFlQUFVTSF9BR0UgPSAyLAoK
ICBZUFBVU0hfTk9NQVAgPSAtMSwKCiAgWVBQVVNIX05PRE9NID0gLTIsCgogIFlQUFVTSF9SU1JD
ID0gLTMsCgogIFlQUFVTSF9SUEMgPSAtNCwKCiAgWVBQVVNIX01BRERSID0gLTUsCgogIFlQUFVT
SF9ZUEVSUiA9IC02LAoKICBZUFBVU0hfQkFEQVJHUyA9IC03LAoKICBZUFBVU0hfREJNID0gLTgs
CgogIFlQUFVTSF9GSUxFID0gLTksCgogIFlQUFVTSF9TS0VXID0gLTEwLAoKICBZUFBVU0hfQ0xF
QVIgPSAtMTEsCgogIFlQUFVTSF9GT1JDRSA9IC0xMiwKCiAgWVBQVVNIX1hGUkVSUiA9IC0xMywK
CiAgWVBQVVNIX1JFRlVTRUQgPSAtMTQsCgogIFlQUFVTSF9OT0FMSUFTID0gLTE1Cgp9Owp0eXBl
ZGVmIGVudW0geXBwdXNoX3N0YXR1cyB5cHB1c2hfc3RhdHVzOwoKc3RydWN0IHlwcHVzaHJlc3Bf
eGZyIHsKICB1X2ludCB0cmFuc2lkOwogIHlwcHVzaF9zdGF0dXMgc3RhdHVzOwp9OwoKc3RydWN0
IHlwcmVzcF9hbGwgewogIGJvb2xfdCBtb3JlOwogIHVuaW9uIHsKICAgIHN0cnVjdCB5cHJlc3Bf
a2V5X3ZhbCB2YWw7CiAgfSB5cHJlc3BfYWxsX3U7Cn07CgpleHRlcm4gYm9vbF90IHhkcl95cHJl
cV9rZXkgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXByZXFfa2V5ICogX19vYmpwKTsKZXh0ZXJuIGJv
b2xfdCB4ZHJfeXByZXFfbm9rZXkgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXByZXFfbm9rZXkgKiBf
X29ianApOwpleHRlcm4gYm9vbF90IHhkcl95cHJlcV94ZnIgKFhEUiAqX194ZHJzLCBzdHJ1Y3Qg
eXByZXFfeGZyICogX19vYmpwKTsKZXh0ZXJuIGJvb2xfdCB4ZHJfeXByZXNwX3ZhbCAoWERSICpf
X3hkcnMsIHN0cnVjdCB5cHJlc3BfdmFsICogX19vYmpwKTsKZXh0ZXJuIGJvb2xfdCB4ZHJfeXBy
ZXNwX2tleV92YWwgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXByZXNwX2tleV92YWwgKiBfX29ianAp
OwpleHRlcm4gYm9vbF90IHhkcl95cGJpbmRfcmVzcCAoWERSICpfX3hkcnMsIHN0cnVjdCB5cGJp
bmRfcmVzcCAqIF9fb2JqcCk7CmV4dGVybiBib29sX3QgeGRyX3lwYmluZF9zZXRkb20gKFhEUiAq
X194ZHJzLCBzdHJ1Y3QgeXBiaW5kX3NldGRvbSAqIF9fb2JqcCk7CmV4dGVybiBib29sX3QgeGRy
X3lwbWFwX3Bhcm1zIChYRFIgKl9feGRycywgc3RydWN0IHlwbWFwX3Bhcm1zICogX19vYmpwKTsK
ZXh0ZXJuIGJvb2xfdCB4ZHJfeXBwdXNocmVzcF94ZnIgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXBw
dXNocmVzcF94ZnIgKiBfX29ianApOwpleHRlcm4gYm9vbF90IHhkcl95cHJlc3Bfb3JkZXIgKFhE
UiAqX194ZHJzLCBzdHJ1Y3QgeXByZXNwX29yZGVyICogX19vYmpwKTsKZXh0ZXJuIGJvb2xfdCB4
ZHJfeXByZXNwX21hc3RlciAoWERSICpfX3hkcnMsIHN0cnVjdCB5cHJlc3BfbWFzdGVyICogX19v
YmpwKTsKZXh0ZXJuIGJvb2xfdCB4ZHJfeXBhbGwgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXBhbGxf
Y2FsbGJhY2sgKiBfX29ianApOwpleHRlcm4gYm9vbF90IHhkcl95cHJlc3BfbWFwbGlzdCAoWERS
ICpfX3hkcnMsIHN0cnVjdCB5cHJlc3BfbWFwbGlzdCAqIF9fb2JqcCk7CmV4dGVybiBib29sX3Qg
eGRyX3lwYmluZF9iaW5kaW5nIChYRFIgKl9feGRycywgc3RydWN0IHlwYmluZF9iaW5kaW5nICog
X19vYmpwKTsKZXh0ZXJuIGJvb2xfdCB4ZHJfeXBiaW5kX3Jlc3B0eXBlIChYRFIgKl9feGRycywg
ZW51bSB5cGJpbmRfcmVzcHR5cGUgKiBfX29ianApOwpleHRlcm4gYm9vbF90IHhkcl95cHN0YXQg
KFhEUiAqX194ZHJzLCBlbnVtIHlwYmluZF9yZXNwdHlwZSAqIF9fb2JqcCk7CmV4dGVybiBib29s
X3QgeGRyX3lwcmVzcF9hbGwgKFhEUiAqX194ZHJzLCBzdHJ1Y3QgeXByZXNwX2FsbCAqIF9fb2Jq
cCk7CmV4dGVybiBib29sX3QgeGRyX2RvbWFpbm5hbWUgKFhEUiAqX194ZHJzLCBjaGFyICoqIF9f
b2JqcCk7CgoKIyAzNjQgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgoKCgoKIyAxICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3lzL2lwYy5oIiAxIDMKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9p
cGMuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2lwYy5oIiAxIDMKIyA0MyAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2JpdHMvaXBjLmgiIDMKc3RydWN0IGlwY19wZXJtCiAgewogICAgX19r
ZXlfdCBfX2tleTsKICAgIF9fdWlkX3QgdWlkOwogICAgX19naWRfdCBnaWQ7CiAgICBfX3VpZF90
IGN1aWQ7CiAgICBfX2dpZF90IGNnaWQ7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgbW9kZTsKICAg
IHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19zZXE7
CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQyOwogICAgdW5zaWduZWQgbG9uZyBpbnQgX191
bnVzZWQxOwogICAgdW5zaWduZWQgbG9uZyBpbnQgX191bnVzZWQyOwogIH07CiMgMzAgIi91c3Iv
bG9jYWwvaW5jbHVkZS9zeXMvaXBjLmgiIDIgMwojIDUxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3lz
L2lwYy5oIiAzCgoKCmV4dGVybiBrZXlfdCBmdG9rIChfX2NvbnN0IGNoYXIgKl9fcGF0aG5hbWUs
IGludCBfX3Byb2pfaWQpIDsKCgojIDM3MiAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgoKCiMgMSAi
L3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9zaG0uaCIgMSAzCiMgMjUgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zeXMvc2htLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMt
bGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAyNiAiL3Vzci9sb2NhbC9pbmNs
dWRlL3N5cy9zaG0uaCIgMiAzCgoKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaG0u
aCIgMSAzCiMgNDAgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3NobS5oIiAzCnR5cGVkZWYgdW5z
aWduZWQgbG9uZyBpbnQgc2htYXR0X3Q7CgoKc3RydWN0IHNobWlkX2RzCiAgewogICAgc3RydWN0
IGlwY19wZXJtIHNobV9wZXJtOwogICAgc2l6ZV90IHNobV9zZWdzejsKICAgIF9fdGltZV90IHNo
bV9hdGltZTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkMTsKICAgIF9fdGltZV90IHNo
bV9kdGltZTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkMjsKICAgIF9fdGltZV90IHNo
bV9jdGltZTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkMzsKICAgIF9fcGlkX3Qgc2ht
X2NwaWQ7CiAgICBfX3BpZF90IHNobV9scGlkOwogICAgc2htYXR0X3Qgc2htX25hdHRjaDsKICAg
IHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkNDsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51
c2VkNTsKICB9OwojIDcwICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9zaG0uaCIgMwpzdHJ1Y3Qg
c2htaW5mbwogIHsKICAgIHVuc2lnbmVkIGxvbmcgaW50IHNobW1heDsKICAgIHVuc2lnbmVkIGxv
bmcgaW50IHNobW1pbjsKICAgIHVuc2lnbmVkIGxvbmcgaW50IHNobW1uaTsKICAgIHVuc2lnbmVk
IGxvbmcgaW50IHNobXNlZzsKICAgIHVuc2lnbmVkIGxvbmcgaW50IHNobWFsbDsKICAgIHVuc2ln
bmVkIGxvbmcgaW50IF9fdW51c2VkMTsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkMjsK
ICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdW51c2VkMzsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9f
dW51c2VkNDsKICB9OwoKc3RydWN0IHNobV9pbmZvCiAgewogICAgaW50IHVzZWRfaWRzOwogICAg
dW5zaWduZWQgbG9uZyBpbnQgc2htX3RvdDsKICAgIHVuc2lnbmVkIGxvbmcgaW50IHNobV9yc3M7
CiAgICB1bnNpZ25lZCBsb25nIGludCBzaG1fc3dwOwogICAgdW5zaWduZWQgbG9uZyBpbnQgc3dh
cF9hdHRlbXB0czsKICAgIHVuc2lnbmVkIGxvbmcgaW50IHN3YXBfc3VjY2Vzc2VzOwogIH07CiMg
MzIgIi91c3IvbG9jYWwvaW5jbHVkZS9zeXMvc2htLmgiIDIgMwojIDQ0ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvc3lzL3NobS5oIiAzCgoKCgpleHRlcm4gaW50IF9fZ2V0cGFnZXNpemUgKHZvaWQpIF9f
YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKCgoKZXh0ZXJuIGludCBzaG1jdGwgKGludCBf
X3NobWlkLCBpbnQgX19jbWQsIHN0cnVjdCBzaG1pZF9kcyAqX19idWYpIDsKCgpleHRlcm4gaW50
IHNobWdldCAoa2V5X3QgX19rZXksIHNpemVfdCBfX3NpemUsIGludCBfX3NobWZsZykgOwoKCmV4
dGVybiB2b2lkICpzaG1hdCAoaW50IF9fc2htaWQsIF9fY29uc3Qgdm9pZCAqX19zaG1hZGRyLCBp
bnQgX19zaG1mbGcpCiAgICAgOwoKCmV4dGVybiBpbnQgc2htZHQgKF9fY29uc3Qgdm9pZCAqX19z
aG1hZGRyKSA7CgoKIyAzNzYgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoKCgojIDEgIi91c3IvbG9j
YWwvaW5jbHVkZS9pY29udi5oIiAxIDMKIyAyNCAiL3Vzci9sb2NhbC9pbmNsdWRlL2ljb252Lmgi
IDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMu
MS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAyNSAiL3Vzci9sb2NhbC9pbmNsdWRlL2ljb252Lmgi
IDIgMwoKCgoKCnR5cGVkZWYgdm9pZCAqaWNvbnZfdDsKCgoKCmV4dGVybiBpY29udl90IGljb252
X29wZW4gKF9fY29uc3QgY2hhciAqX190b2NvZGUsIF9fY29uc3QgY2hhciAqX19mcm9tY29kZSkK
ICAgICA7CgoKCgpleHRlcm4gc2l6ZV90IGljb252IChpY29udl90IF9fY2QsIGNoYXIgKipfX3Jl
c3RyaWN0IF9faW5idWYsCiAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBf
X2luYnl0ZXNsZWZ0LAogICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBfX291
dGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpfX3Jlc3RyaWN0IF9fb3V0Ynl0ZXNs
ZWZ0KTsKCgpleHRlcm4gaW50IGljb252X2Nsb3NlIChpY29udl90IF9fY2QpIDsKCgojIDM4MCAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMzg5ICJpbmNsdWRlL2luY2x1ZGVzLmgiCiMgMSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMSAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFw
LmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGJlci5oIiAxIDMKIyAyNyAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2xiZXIuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9sYmVyX3R5cGVzLmgi
IDEgMwojIDIxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGJlcl90eXBlcy5oIiAzCiMgMSAiL3Vzci9s
b2NhbC9pbmNsdWRlL2xkYXBfY2RlZnMuaCIgMSAzCiMgMjIgIi91c3IvbG9jYWwvaW5jbHVkZS9s
YmVyX3R5cGVzLmgiIDIgMwoKCiMgNDAgIi91c3IvbG9jYWwvaW5jbHVkZS9sYmVyX3R5cGVzLmgi
IDMKdHlwZWRlZiBpbnQgYmVyX2ludF90OwoKCnR5cGVkZWYgc2lnbmVkIGludCBiZXJfc2ludF90
Owp0eXBlZGVmIHVuc2lnbmVkIGludCBiZXJfdWludF90OwoKCnR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBiZXJfdGFnX3Q7CgoKdHlwZWRlZiBpbnQgYmVyX3NvY2tldF90OwoKCnR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBiZXJfbGVuX3Q7CgoKdHlwZWRlZiBzaWduZWQgbG9uZyBiZXJfc2xlbl90OwoKCiMg
MjggIi91c3IvbG9jYWwvaW5jbHVkZS9sYmVyLmgiIDIgMwoKCiMgMTA4ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvbGJlci5oIiAzCnR5cGVkZWYgaW50KiAoKkJFUl9FUlJOT19GTikgKCB2b2lkICk7Cgp0
eXBlZGVmIHZvaWQgKCpCRVJfTE9HX1BSSU5UX0ZOKSAoIGNvbnN0IGNoYXIgKmJ1ZiApOwoKdHlw
ZWRlZiB2b2lkKiAoKkJFUl9NRU1BTExPQ19GTikgKCBiZXJfbGVuX3Qgc2l6ZSApOwp0eXBlZGVm
IHZvaWQqICgqQkVSX01FTUNBTExPQ19GTikgKCBiZXJfbGVuX3QgbiwgYmVyX2xlbl90IHNpemUg
KTsKdHlwZWRlZiB2b2lkKiAoKkJFUl9NRU1SRUFMTE9DX0ZOKSAoIHZvaWQgKnAsIGJlcl9sZW5f
dCBzaXplICk7CnR5cGVkZWYgdm9pZCAoKkJFUl9NRU1GUkVFX0ZOKSAoIHZvaWQgKnAgKTsKCnR5
cGVkZWYgc3RydWN0IGxiZXJfbWVtb3J5X2ZucyB7CiAgICAgICAgQkVSX01FTUFMTE9DX0ZOIGJt
Zl9tYWxsb2M7CiAgICAgICAgQkVSX01FTUNBTExPQ19GTiBibWZfY2FsbG9jOwogICAgICAgIEJF
Ul9NRU1SRUFMTE9DX0ZOIGJtZl9yZWFsbG9jOwogICAgICAgIEJFUl9NRU1GUkVFX0ZOIGJtZl9m
cmVlOwp9IEJlck1lbW9yeUZ1bmN0aW9uczsKIyAxNTcgIi91c3IvbG9jYWwvaW5jbHVkZS9sYmVy
LmgiIDMKdHlwZWRlZiBzdHJ1Y3QgYmVyZWxlbWVudCBCZXJFbGVtZW50Owp0eXBlZGVmIHN0cnVj
dCBzb2NrYnVmIFNvY2tidWY7CnR5cGVkZWYgc3RydWN0IHNlcW9yc2V0IFNlcW9yc2V0OwoKdHlw
ZWRlZiBzdHJ1Y3Qgc29ja2J1Zl9pbyBTb2NrYnVmX0lPOwoKCnR5cGVkZWYgc3RydWN0IHNvY2ti
dWZfaW9fZGVzYyB7CiAgICAgICAgaW50IHNiaW9kX2xldmVsOwogICAgICAgIFNvY2tidWYgKnNi
aW9kX3NiOwogICAgICAgIFNvY2tidWZfSU8gKnNiaW9kX2lvOwogICAgICAgIHZvaWQgKnNiaW9k
X3B2dDsKICAgICAgICBzdHJ1Y3Qgc29ja2J1Zl9pb19kZXNjICpzYmlvZF9uZXh0Owp9IFNvY2ti
dWZfSU9fRGVzYzsKCgpzdHJ1Y3Qgc29ja2J1Zl9pbyB7CiAgICAgICAgaW50ICgqc2JpX3NldHVw
KSggU29ja2J1Zl9JT19EZXNjICpzYmlvZCwgdm9pZCAqYXJnICk7CiAgICAgICAgaW50ICgqc2Jp
X3JlbW92ZSkoIFNvY2tidWZfSU9fRGVzYyAqc2Jpb2QgKTsKICAgICAgICBpbnQgKCpzYmlfY3Ry
bCkoIFNvY2tidWZfSU9fRGVzYyAqc2Jpb2QsIGludCBvcHQsIHZvaWQgKmFyZyk7CgogICAgICAg
IGJlcl9zbGVuX3QgKCpzYmlfcmVhZCkoIFNvY2tidWZfSU9fRGVzYyAqc2Jpb2QsIHZvaWQgKmJ1
ZiwKICAgICAgICAgICAgICAgIGJlcl9sZW5fdCBsZW4gKTsKICAgICAgICBiZXJfc2xlbl90ICgq
c2JpX3dyaXRlKSggU29ja2J1Zl9JT19EZXNjICpzYmlvZCwgdm9pZCAqYnVmLAogICAgICAgICAg
ICAgICAgYmVyX2xlbl90IGxlbiApOwoKICAgICAgICBpbnQgKCpzYmlfY2xvc2UpKCBTb2NrYnVm
X0lPX0Rlc2MgKnNiaW9kICk7Cn07CiMgMTk5ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGJlci5oIiAz
CnR5cGVkZWYgc3RydWN0IGJlcnZhbCB7CiAgICAgICAgYmVyX2xlbl90IGJ2X2xlbjsKICAgICAg
ICBjaGFyICpidl92YWw7Cn0gQmVyVmFsdWU7CgoKCgoKCmV4dGVybiB2b2lkCmJlcl9lcnJvcl9w
cmludCAoIGNvbnN0IGNoYXIgKmRhdGEgKTsKCgpleHRlcm4gdm9pZApiZXJfYnByaW50ICggY29u
c3QgY2hhciAqZGF0YSwgYmVyX2xlbl90IGxlbiApOwoKCmV4dGVybiB2b2lkCmJlcl9kdW1wICgg
QmVyRWxlbWVudCAqYmVyLCBpbnQgaW5vdXQgKTsKCgpleHRlcm4gdm9pZApiZXJfc29zX2R1bXAg
KCBTZXFvcnNldCAqc29zICk7CgoKCgoKCnR5cGVkZWYgaW50ICgqQkVSRGVjb2RlQ2FsbGJhY2sp
ICggQmVyRWxlbWVudCAqYmVyLCB2b2lkICpkYXRhLCBpbnQgbW9kZSApOwoKCgoKZXh0ZXJuIGJl
cl90YWdfdApiZXJfZ2V0X3RhZyAoIEJlckVsZW1lbnQgKmJlciApOwoKCmV4dGVybiBiZXJfdGFn
X3QKYmVyX3NraXBfdGFnICggQmVyRWxlbWVudCAqYmVyLCBiZXJfbGVuX3QgKmxlbiApOwoKCgpl
eHRlcm4gYmVyX3RhZ190CmJlcl9wZWVrX3RhZyAoIEJlckVsZW1lbnQgKmJlciwgYmVyX2xlbl90
ICpsZW4gKTsKCgoKZXh0ZXJuIGJlcl90YWdfdApiZXJfZ2V0X2ludCAoIEJlckVsZW1lbnQgKmJl
ciwgYmVyX2ludF90ICpudW0gKTsKCgoKZXh0ZXJuIGJlcl90YWdfdApiZXJfZ2V0X2VudW0gKCBC
ZXJFbGVtZW50ICpiZXIsIGJlcl9pbnRfdCAqbnVtICk7CgoKCmV4dGVybiBiZXJfdGFnX3QKYmVy
X2dldF9zdHJpbmdiICggQmVyRWxlbWVudCAqYmVyLCBjaGFyICpidWYsIGJlcl9sZW5fdCAqbGVu
ICk7CgoKCgpleHRlcm4gYmVyX3RhZ190CmJlcl9nZXRfc3RyaW5nYSAoIEJlckVsZW1lbnQgKmJl
ciwgY2hhciAqKmJ1ZiApOwoKCgpleHRlcm4gYmVyX3RhZ190CmJlcl9nZXRfc3RyaW5nYWwgKCBC
ZXJFbGVtZW50ICpiZXIsIHN0cnVjdCBiZXJ2YWwgKipidiApOwoKCgpleHRlcm4gYmVyX3RhZ190
CmJlcl9nZXRfYml0c3RyaW5nYSAoIEJlckVsZW1lbnQgKmJlciwgY2hhciAqKmJ1ZiwgYmVyX2xl
bl90ICpsZW4gKTsKCgoKCmV4dGVybiBiZXJfdGFnX3QKYmVyX2dldF9udWxsICggQmVyRWxlbWVu
dCAqYmVyICk7CgoKZXh0ZXJuIGJlcl90YWdfdApiZXJfZ2V0X2Jvb2xlYW4gKCBCZXJFbGVtZW50
ICpiZXIsIGJlcl9pbnRfdCAqYm9vbHZhbCApOwoKCgpleHRlcm4gYmVyX3RhZ190CmJlcl9maXJz
dF9lbGVtZW50ICggQmVyRWxlbWVudCAqYmVyLCBiZXJfbGVuX3QgKmxlbiwgY2hhciAqKmxhc3Qg
KTsKCgoKCmV4dGVybiBiZXJfdGFnX3QKYmVyX25leHRfZWxlbWVudCAoIEJlckVsZW1lbnQgKmJl
ciwgYmVyX2xlbl90ICpsZW4sIGNvbnN0IGNoYXIgKmxhc3QgKTsKCgoKCmV4dGVybiBiZXJfdGFn
X3QKYmVyX3NjYW5mICggQmVyRWxlbWVudCAqYmVyLCBjb25zdCBjaGFyICpmbXQsIC4uLiApOwoK
CgoKCgoKdHlwZWRlZiBpbnQgKCpCRVJFbmNvZGVDYWxsYmFjaykgKCBCZXJFbGVtZW50ICpiZXIs
IHZvaWQgKmRhdGEgKTsKCgoKZXh0ZXJuIGludApiZXJfcHV0X2VudW0gKCBCZXJFbGVtZW50ICpi
ZXIsIGJlcl9pbnRfdCBudW0sIGJlcl90YWdfdCB0YWcgKTsKCgoKCmV4dGVybiBpbnQKYmVyX3B1
dF9pbnQgKCBCZXJFbGVtZW50ICpiZXIsIGJlcl9pbnRfdCBudW0sIGJlcl90YWdfdCB0YWcgKTsK
CgoKCmV4dGVybiBpbnQKYmVyX3B1dF9vc3RyaW5nICggQmVyRWxlbWVudCAqYmVyLCBjb25zdCBj
aGFyICpzdHIsIGJlcl9sZW5fdCBsZW4sIGJlcl90YWdfdCB0YWcgKTsKCgoKCgpleHRlcm4gaW50
CmJlcl9wdXRfYmVydmFsICggQmVyRWxlbWVudCAqYmVyLCBjb25zdCBzdHJ1Y3QgYmVydmFsICpi
diwgYmVyX3RhZ190IHRhZyApOwoKCgoKZXh0ZXJuIGludApiZXJfcHV0X3N0cmluZyAoIEJlckVs
ZW1lbnQgKmJlciwgY29uc3QgY2hhciAqc3RyLCBiZXJfdGFnX3QgdGFnICk7CgoKCgpleHRlcm4g
aW50CmJlcl9wdXRfYml0c3RyaW5nICggQmVyRWxlbWVudCAqYmVyLCBjb25zdCBjaGFyICpzdHIs
IGJlcl9sZW5fdCBiaXRsZW4sIGJlcl90YWdfdCB0YWcgKTsKCgoKCgpleHRlcm4gaW50CmJlcl9w
dXRfbnVsbCAoIEJlckVsZW1lbnQgKmJlciwgYmVyX3RhZ190IHRhZyApOwoKCgpleHRlcm4gaW50
CmJlcl9wdXRfYm9vbGVhbiAoIEJlckVsZW1lbnQgKmJlciwgYmVyX2ludF90IGJvb2x2YWwsIGJl
cl90YWdfdCB0YWcgKTsKCgoKCmV4dGVybiBpbnQKYmVyX3N0YXJ0X3NlcSAoIEJlckVsZW1lbnQg
KmJlciwgYmVyX3RhZ190IHRhZyApOwoKCgpleHRlcm4gaW50CmJlcl9zdGFydF9zZXQgKCBCZXJF
bGVtZW50ICpiZXIsIGJlcl90YWdfdCB0YWcgKTsKCgoKZXh0ZXJuIGludApiZXJfcHV0X3NlcSAo
IEJlckVsZW1lbnQgKmJlciApOwoKCmV4dGVybiBpbnQKYmVyX3B1dF9zZXQgKCBCZXJFbGVtZW50
ICpiZXIgKTsKCgpleHRlcm4gaW50CmJlcl9wcmludGYgKCBCZXJFbGVtZW50ICpiZXIsIGNvbnN0
IGNoYXIgKmZtdCwgLi4uICk7CiMgMzkyICIvdXNyL2xvY2FsL2luY2x1ZGUvbGJlci5oIiAzCmV4
dGVybiBiZXJfc2xlbl90CmJlcl9yZWFkICggQmVyRWxlbWVudCAqYmVyLCBjaGFyICpidWYsIGJl
cl9sZW5fdCBsZW4gKTsKCgoKCmV4dGVybiBiZXJfc2xlbl90CmJlcl93cml0ZSAoIEJlckVsZW1l
bnQgKmJlciwgY29uc3QgY2hhciAqYnVmLCBiZXJfbGVuX3QgbGVuLCBpbnQgbm9zb3MgKTsKCgoK
CgpleHRlcm4gdm9pZApiZXJfZnJlZSAoIEJlckVsZW1lbnQgKmJlciwgaW50IGZyZWVidWYgKTsK
CgoKZXh0ZXJuIGludApiZXJfZmx1c2ggKCBTb2NrYnVmICpzYiwgQmVyRWxlbWVudCAqYmVyLCBp
bnQgZnJlZWl0ICk7CgoKCgpleHRlcm4gQmVyRWxlbWVudCAqCmJlcl9hbGxvYyAoIHZvaWQgKTsK
CmV4dGVybiBCZXJFbGVtZW50ICoKZGVyX2FsbG9jICggdm9pZCApOwoKZXh0ZXJuIEJlckVsZW1l
bnQgKgpiZXJfYWxsb2NfdCAoIGludCBiZXJvcHRpb25zICk7CgoKZXh0ZXJuIEJlckVsZW1lbnQg
KgpiZXJfZHVwICggQmVyRWxlbWVudCAqYmVyICk7CgoKZXh0ZXJuIGJlcl90YWdfdApiZXJfZ2V0
X25leHQgKCBTb2NrYnVmICpzYiwgYmVyX2xlbl90ICpsZW4sIEJlckVsZW1lbnQgKmJlciApOwoK
CgoKZXh0ZXJuIHZvaWQKYmVyX2luaXRfd19udWxsYyAoIEJlckVsZW1lbnQgKmJlciwgaW50IG9w
dGlvbnMgKTsKCgoKZXh0ZXJuIHZvaWQKYmVyX3Jlc2V0ICggQmVyRWxlbWVudCAqYmVyLCBpbnQg
d2FzX3dyaXRpbmcgKTsKCgoKZXh0ZXJuIEJlckVsZW1lbnQgKgpiZXJfaW5pdCAoIHN0cnVjdCBi
ZXJ2YWwgKmJ2ICk7CgoKZXh0ZXJuIGludApiZXJfZmxhdHRlbiAoIEJlckVsZW1lbnQgKmJlciwg
c3RydWN0IGJlcnZhbCAqKmJ2UHRyICk7CgoKCgoKCgpleHRlcm4gaW50CmJlcl9nZXRfb3B0aW9u
ICggdm9pZCAqaXRlbSwgaW50IG9wdGlvbiwgdm9pZCAqb3V0dmFsdWUpOwoKCgoKZXh0ZXJuIGlu
dApiZXJfc2V0X29wdGlvbiAoIHZvaWQgKml0ZW0sIGludCBvcHRpb24sIGNvbnN0IHZvaWQgKmlu
dmFsdWUpOwojIDQ3NSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xiZXIuaCIgMwpleHRlcm4gU29ja2J1
ZiAqCmJlcl9zb2NrYnVmX2FsbG9jICggdm9pZCApOwoKCmV4dGVybiB2b2lkCmJlcl9zb2NrYnVm
X2ZyZWUgKCBTb2NrYnVmICpzYiApOwoKCmV4dGVybiBpbnQKYmVyX3NvY2tidWZfYWRkX2lvICgg
U29ja2J1ZiAqc2IsIFNvY2tidWZfSU8gKnNiaW8sIGludCBsYXllciwgdm9pZCAqYXJnICk7CgoK
CgoKZXh0ZXJuIGludApiZXJfc29ja2J1Zl9yZW1vdmVfaW8gKCBTb2NrYnVmICpzYiwgU29ja2J1
Zl9JTyAqc2JpbywgaW50IGxheWVyICk7CgoKCgpleHRlcm4gaW50CmJlcl9zb2NrYnVmX2N0cmwg
KCBTb2NrYnVmICpzYiwgaW50IG9wdCwgdm9pZCAqYXJnICk7CgoKCgpleHRlcm4gU29ja2J1Zl9J
TyBiZXJfc29ja2J1Zl9pb190Y3A7CmV4dGVybiBTb2NrYnVmX0lPIGJlcl9zb2NrYnVmX2lvX3Jl
YWRhaGVhZDsKZXh0ZXJuIFNvY2tidWZfSU8gYmVyX3NvY2tidWZfaW9fZmQ7CmV4dGVybiBTb2Nr
YnVmX0lPIGJlcl9zb2NrYnVmX2lvX2RlYnVnOwoKCgoKZXh0ZXJuIHZvaWQgKgpiZXJfbWVtYWxs
b2MgKCBiZXJfbGVuX3QgcyApOwoKCmV4dGVybiB2b2lkICoKYmVyX21lbXJlYWxsb2MgKCB2b2lk
KiBwLCBiZXJfbGVuX3QgcyApOwoKCgpleHRlcm4gdm9pZCAqCmJlcl9tZW1jYWxsb2MgKCBiZXJf
bGVuX3QgbiwgYmVyX2xlbl90IHMgKTsKCgoKZXh0ZXJuIHZvaWQKYmVyX21lbWZyZWUgKCB2b2lk
KiBwICk7CgoKZXh0ZXJuIHZvaWQKYmVyX21lbXZmcmVlICggdm9pZCoqIHZlY3RvciApOwoKCmV4
dGVybiB2b2lkCmJlcl9idmZyZWUgKCBzdHJ1Y3QgYmVydmFsICpidiApOwoKCmV4dGVybiB2b2lk
CmJlcl9idmVjZnJlZSAoIHN0cnVjdCBiZXJ2YWwgKipidiApOwoKCmV4dGVybiBpbnQKYmVyX2J2
ZWNhZGQgKCBzdHJ1Y3QgYmVydmFsICoqKmJ2ZWMsIHN0cnVjdCBiZXJ2YWwgKmJ2ICk7CgoKCmV4
dGVybiBzdHJ1Y3QgYmVydmFsICoKYmVyX2J2ZHVwICggY29uc3Qgc3RydWN0IGJlcnZhbCAqYnYg
KTsKCgpleHRlcm4gc3RydWN0IGJlcnZhbCAqCmJlcl9idnN0ciAoIGNvbnN0IGNoYXIgKiApOwoK
CmV4dGVybiBzdHJ1Y3QgYmVydmFsICoKYmVyX2J2c3RyZHVwICggY29uc3QgY2hhciAqICk7CgoK
ZXh0ZXJuIGNoYXIgKgpiZXJfc3RyZHVwICggY29uc3QgY2hhciAqICk7CgoKCgoKZXh0ZXJuIGlu
dCAqIGJlcl9lcnJub19hZGRyICh2b2lkKTsKCgoKCgoKCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVk
ZS9sZGFwLmgiIDIgMwoKCiMgNTkgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKIyAxICIv
dXNyL2xvY2FsL2luY2x1ZGUvbGRhcF9mZWF0dXJlcy5oIiAxIDMKIyA2MCAiL3Vzci9sb2NhbC9p
bmNsdWRlL2xkYXAuaCIgMiAzCiMgMTY2ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCnR5
cGVkZWYgc3RydWN0IGxkYXBhcGlpbmZvIHsKICAgICAgICBpbnQgbGRhcGFpX2luZm9fdmVyc2lv
bjsKICAgICAgICBpbnQgbGRhcGFpX2FwaV92ZXJzaW9uOwogICAgICAgIGludCBsZGFwYWlfcHJv
dG9jb2xfdmVyc2lvbjsKICAgICAgICBjaGFyICoqbGRhcGFpX2V4dGVuc2lvbnM7CiAgICAgICAg
Y2hhciAqbGRhcGFpX3ZlbmRvcl9uYW1lOwogICAgICAgIGludCBsZGFwYWlfdmVuZG9yX3ZlcnNp
b247Cn0gTERBUEFQSUluZm87CgoKdHlwZWRlZiBzdHJ1Y3QgbGRhcF9hcGlmZWF0dXJlX2luZm8g
ewogICAgICAgIGludCBsZGFwYWlmX2luZm9fdmVyc2lvbjsKICAgICAgICBjaGFyKiBsZGFwYWlm
X25hbWU7CiAgICAgICAgaW50IGxkYXBhaWZfdmVyc2lvbjsKfSBMREFQQVBJRmVhdHVyZUluZm87
Cgp0eXBlZGVmIHN0cnVjdCBsZGFwY29udHJvbCB7CiAgICAgICAgY2hhciAqIGxkY3RsX29pZDsK
ICAgICAgICBzdHJ1Y3QgYmVydmFsIGxkY3RsX3ZhbHVlOwogICAgICAgIGNoYXIgbGRjdGxfaXNj
cml0aWNhbDsKfSBMREFQQ29udHJvbDsKIyA0MzYgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgi
IDMKdHlwZWRlZiBzdHJ1Y3QgbGRhcG1zZyBMREFQTWVzc2FnZTsKCgp0eXBlZGVmIHN0cnVjdCBs
ZGFwbW9kIHsKICAgICAgICBpbnQgbW9kX29wOwojIDQ1MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xk
YXAuaCIgMwogICAgICAgIGNoYXIgKm1vZF90eXBlOwogICAgICAgIHVuaW9uIG1vZF92YWxzX3Ug
ewogICAgICAgICAgICAgICAgY2hhciAqKm1vZHZfc3RydmFsczsKICAgICAgICAgICAgICAgIHN0
cnVjdCBiZXJ2YWwgKiptb2R2X2J2YWxzOwogICAgICAgIH0gbW9kX3ZhbHM7CgoKfSBMREFQTW9k
OwoKCgoKCnR5cGVkZWYgc3RydWN0IGxkYXBfZmlsdF9pbmZvIHsKICAgICAgICBjaGFyICpsZmlf
ZmlsdGVyOwogICAgICAgIGNoYXIgKmxmaV9kZXNjOwogICAgICAgIGludCBsZmlfc2NvcGU7CiAg
ICAgICAgaW50IGxmaV9pc2V4YWN0OwogICAgICAgIHN0cnVjdCBsZGFwX2ZpbHRfaW5mbyAqbGZp
X25leHQ7Cn0gTERBUEZpbHRJbmZvOwoKdHlwZWRlZiBzdHJ1Y3QgbGRhcF9maWx0X2xpc3Qgewog
ICAgY2hhciAqbGZsX3RhZzsKICAgIGNoYXIgKmxmbF9wYXR0ZXJuOwogICAgY2hhciAqbGZsX2Rl
bGltczsKICAgIExEQVBGaWx0SW5mbyAqbGZsX2lsaXN0OwogICAgc3RydWN0IGxkYXBfZmlsdF9s
aXN0ICpsZmxfbmV4dDsKfSBMREFQRmlsdExpc3Q7CgoKCgp0eXBlZGVmIHN0cnVjdCBsZGFwX2Zp
bHRfZGVzYyB7CiAgICAgICAgTERBUEZpbHRMaXN0ICpsZmRfZmlsdGxpc3Q7CiAgICAgICAgTERB
UEZpbHRJbmZvICpsZmRfY3VyZmlwOwogICAgICAgIExEQVBGaWx0SW5mbyBsZmRfcmV0Zmk7CiAg
ICAgICAgY2hhciBsZmRfZmlsdGVyWyAxMDI0IF07CiAgICAgICAgY2hhciAqbGZkX2N1cnZhbDsK
ICAgICAgICBjaGFyICpsZmRfY3VydmFsY29weTsKICAgICAgICBjaGFyICoqbGZkX2N1cnZhbHdv
cmRzOwogICAgICAgIGNoYXIgKmxmZF9maWx0cHJlZml4OwogICAgICAgIGNoYXIgKmxmZF9maWx0
c3VmZml4Owp9IExEQVBGaWx0RGVzYzsKCgoKCgoKCnR5cGVkZWYgc3RydWN0IGxkYXAgTERBUDsK
IyA1MTkgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgbGRhcF9m
cmllbmRseSB7CiAgICAgICAgY2hhciAqbGZfdW5mcmllbmRseTsKICAgICAgICBjaGFyICpsZl9m
cmllbmRseTsKfSBMREFQRnJpZW5kbHlNYXA7CgoKCgp0eXBlZGVmIHN0cnVjdCBsZGFwX3VybF9k
ZXNjIHsKICAgICAgICBzdHJ1Y3QgbGRhcF91cmxfZGVzYyAqbHVkX25leHQ7CiAgICAgICAgY2hh
ciAqbHVkX3NjaGVtZTsKICAgICAgICBjaGFyICpsdWRfaG9zdDsKICAgICAgICBpbnQgbHVkX3Bv
cnQ7CiAgICAgICAgY2hhciAqbHVkX2RuOwogICAgICAgIGNoYXIgKipsdWRfYXR0cnM7CiAgICAg
ICAgaW50IGx1ZF9zY29wZTsKICAgICAgICBjaGFyICpsdWRfZmlsdGVyOwogICAgICAgIGNoYXIg
KipsdWRfZXh0czsKICAgICAgICBpbnQgbHVkX2NyaXRfZXh0czsKfSBMREFQVVJMRGVzYzsKIyA1
NTcgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKc3RydWN0IHRpbWV2YWw7CgoKCgpleHRl
cm4gaW50CmxkYXBfZ2V0X29wdGlvbiAoIExEQVAgKmxkLCBpbnQgb3B0aW9uLCB2b2lkICpvdXR2
YWx1ZSk7CgoKCgpleHRlcm4gaW50CmxkYXBfc2V0X29wdGlvbiAoIExEQVAgKmxkLCBpbnQgb3B0
aW9uLCBjb25zdCB2b2lkICppbnZhbHVlKTsKCgoKCgp0eXBlZGVmIGludCAoTERBUF9SRUJJTkRf
UFJPQykgKCBMREFQICpsZCwgY29uc3QgY2hhciAqdXJsLCBpbnQgcmVxdWVzdCwgYmVyX2ludF90
IG1zZ2lkICk7CgoKZXh0ZXJuIGludApsZGFwX3NldF9yZWJpbmRfcHJvYyAoIExEQVAgKmxkLCBM
REFQX1JFQklORF9QUk9DICpsZGFwX3Byb2MpOwoKCgoKCgpleHRlcm4gaW50CmxkYXBfY3JlYXRl
X2NvbnRyb2wgKCBjb25zdCBjaGFyICpyZXF1ZXN0T0lELCBCZXJFbGVtZW50ICpiZXIsIGludCBp
c2NyaXRpY2FsLCBMREFQQ29udHJvbCAqKmN0cmxwICk7CgoKCgoKZXh0ZXJuIHZvaWQKbGRhcF9j
b250cm9sX2ZyZWUgKCBMREFQQ29udHJvbCAqY3RybCApOwoKCmV4dGVybiB2b2lkCmxkYXBfY29u
dHJvbHNfZnJlZSAoIExEQVBDb250cm9sICoqY3RybHMgKTsKCgoKCgpleHRlcm4gaW50CmxkYXBf
ZG9tYWluMmRuICggY29uc3QgY2hhciogZG9tYWluLCBjaGFyKiogZG4gKTsKCgoKZXh0ZXJuIGlu
dApsZGFwX2RuMmRvbWFpbiAoIGNvbnN0IGNoYXIqIGRuLCBjaGFyKiogZG9tYWluICk7CgoKCmV4
dGVybiBpbnQKbGRhcF9kb21haW4yaG9zdGxpc3QgKCBjb25zdCBjaGFyICpkb21haW4sIGNoYXIq
KiBob3N0bGlzdCApOwoKCgoKCgpleHRlcm4gaW50CmxkYXBfZXh0ZW5kZWRfb3BlcmF0aW9uICgg
TERBUCAqbGQsIGNvbnN0IGNoYXIgKnJlcW9pZCwgc3RydWN0IGJlcnZhbCAqcmVxZGF0YSwgTERB
UENvbnRyb2wgKipzZXJ2ZXJjdHJscywgTERBUENvbnRyb2wgKipjbGllbnRjdHJscywgaW50ICpt
c2dpZHAgKTsKCgoKCgoKCmV4dGVybiBpbnQKbGRhcF9leHRlbmRlZF9vcGVyYXRpb25fcyAoIExE
QVAgKmxkLCBjb25zdCBjaGFyICpyZXFvaWQsIHN0cnVjdCBiZXJ2YWwgKnJlcWRhdGEsIExEQVBD
b250cm9sICoqc2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMsIGNoYXIgKipy
ZXRvaWRwLCBzdHJ1Y3QgYmVydmFsICoqcmV0ZGF0YXAgKTsKIyA2NDEgIi91c3IvbG9jYWwvaW5j
bHVkZS9sZGFwLmgiIDMKZXh0ZXJuIGludApsZGFwX3BhcnNlX2V4dGVuZGVkX3Jlc3VsdCAoIExE
QVAgKmxkLCBMREFQTWVzc2FnZSAqcmVzLCBjaGFyICoqcmV0b2lkcCwgc3RydWN0IGJlcnZhbCAq
KnJldGRhdGFwLCBpbnQgZnJlZWl0ICk7CgoKCgoKCmV4dGVybiBpbnQKbGRhcF9wYXJzZV9leHRl
bmRlZF9wYXJ0aWFsICggTERBUCAqbGQsIExEQVBNZXNzYWdlICpyZXMsIGNoYXIgKipyZXRvaWRw
LCBzdHJ1Y3QgYmVydmFsICoqcmV0ZGF0YXAsIExEQVBDb250cm9sICoqKnNlcnZlcmN0cmxzLCBp
bnQgZnJlZWl0ICk7CiMgNjYxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCmV4dGVybiBp
bnQKbGRhcF9hYmFuZG9uX2V4dCAoIExEQVAgKmxkLCBpbnQgbXNnaWQsIExEQVBDb250cm9sICoq
c2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMgKTsKCgoKCgpleHRlcm4gaW50
CmxkYXBfYWJhbmRvbiAoIExEQVAgKmxkLCBpbnQgbXNnaWQgKTsKCgoKCgoKCmV4dGVybiBpbnQK
bGRhcF9hZGRfZXh0ICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKmRuLCBMREFQTW9kICoqYXR0cnMs
IExEQVBDb250cm9sICoqc2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMsIGlu
dCAqbXNnaWRwICk7CgoKCgoKCgpleHRlcm4gaW50CmxkYXBfYWRkX2V4dF9zICggTERBUCAqbGQs
IGNvbnN0IGNoYXIgKmRuLCBMREFQTW9kICoqYXR0cnMsIExEQVBDb250cm9sICoqc2VydmVyY3Ry
bHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMgKTsKCgoKCgoKZXh0ZXJuIGludApsZGFwX2Fk
ZCAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgTERBUE1vZCAqKmF0dHJzICk7CgoKCgpleHRl
cm4gaW50CmxkYXBfYWRkX3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIExEQVBNb2QgKiph
dHRycyApOwojIDcxMCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50Cmxk
YXBfc2FzbF9iaW5kICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKmRuLCBjb25zdCBjaGFyICptZWNo
YW5pc20sIHN0cnVjdCBiZXJ2YWwgKmNyZWQsIExEQVBDb250cm9sICoqc2VydmVyY3RybHMsIExE
QVBDb250cm9sICoqY2xpZW50Y3RybHMsIGludCAqbXNnaWRwICk7CiMgNzM0ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvbGRhcC5oIiAzCnR5cGVkZWYgaW50IChMREFQX1NBU0xfSU5URVJBQ1RfUFJPQykg
KCBMREFQICpsZCwgdW5zaWduZWQgZmxhZ3MsIHZvaWQqIGRlZmF1bHRzLCB2b2lkICppbnRlcmFj
dCApOwoKCmV4dGVybiBpbnQKbGRhcF9zYXNsX2ludGVyYWN0aXZlX2JpbmRfcyAoIExEQVAgKmxk
LCBjb25zdCBjaGFyICpkbiwgY29uc3QgY2hhciAqc2FzbE1lY2hhbmlzbSwgTERBUENvbnRyb2wg
KipzZXJ2ZXJDb250cm9scywgTERBUENvbnRyb2wgKipjbGllbnRDb250cm9scywgdW5zaWduZWQg
ZmxhZ3MsIExEQVBfU0FTTF9JTlRFUkFDVF9QUk9DICpwcm9jLCB2b2lkICpkZWZhdWx0cyApOwoj
IDc1MCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50CmxkYXBfc2FzbF9i
aW5kX3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIGNvbnN0IGNoYXIgKm1lY2hhbmlzbSwg
c3RydWN0IGJlcnZhbCAqY3JlZCwgTERBUENvbnRyb2wgKipzZXJ2ZXJjdHJscywgTERBUENvbnRy
b2wgKipjbGllbnRjdHJscywgc3RydWN0IGJlcnZhbCAqKnNlcnZlcmNyZWRwICk7CiMgNzYwICIv
dXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCmV4dGVybiBpbnQKbGRhcF9wYXJzZV9zYXNsX2Jp
bmRfcmVzdWx0ICggTERBUCAqbGQsIExEQVBNZXNzYWdlICpyZXMsIHN0cnVjdCBiZXJ2YWwgKipz
ZXJ2ZXJjcmVkcCwgaW50IGZyZWVpdCApOwojIDc3MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAu
aCIgMwpleHRlcm4gaW50CmxkYXBfYmluZCAoIExEQVAgKmxkLCBjb25zdCBjaGFyICp3aG8sIGNv
bnN0IGNoYXIgKnBhc3N3ZCwgaW50IGF1dGhtZXRob2QgKTsKCgoKCgpleHRlcm4gaW50CmxkYXBf
YmluZF9zICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKndobywgY29uc3QgY2hhciAqY3JlZCwgaW50
IGF1dGhtZXRob2QgKTsKIyA3ODggIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJu
IGludApsZGFwX3NpbXBsZV9iaW5kICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKndobywgY29uc3Qg
Y2hhciAqcGFzc3dkICk7CgoKCgpleHRlcm4gaW50CmxkYXBfc2ltcGxlX2JpbmRfcyAoIExEQVAg
KmxkLCBjb25zdCBjaGFyICp3aG8sIGNvbnN0IGNoYXIgKnBhc3N3ZCApOwojIDgwNSAiL3Vzci9s
b2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50CmxkYXBfa2VyYmVyb3NfYmluZF9zICgg
TERBUCAqbGQsIGNvbnN0IGNoYXIgKndobyApOwoKCgpleHRlcm4gaW50CmxkYXBfa2VyYmVyb3Nf
YmluZDEgKCBMREFQICpsZCwgY29uc3QgY2hhciAqd2hvICk7CgoKCmV4dGVybiBpbnQKbGRhcF9r
ZXJiZXJvc19iaW5kMV9zICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKndobyApOwoKCgpleHRlcm4g
aW50CmxkYXBfa2VyYmVyb3NfYmluZDIgKCBMREFQICpsZCwgY29uc3QgY2hhciAqd2hvICk7CgoK
CmV4dGVybiBpbnQKbGRhcF9rZXJiZXJvc19iaW5kMl9zICggTERBUCAqbGQsIGNvbnN0IGNoYXIg
KndobyApOwoKCgoKCgoKZXh0ZXJuIGludApsZGFwX2VuYWJsZV9jYWNoZSAoIExEQVAgKmxkLCBs
b25nIHRpbWVvdXQsIGJlcl9sZW5fdCBtYXhtZW0gKTsKCmV4dGVybiB2b2lkCmxkYXBfZGlzYWJs
ZV9jYWNoZSAoIExEQVAgKmxkICk7CgpleHRlcm4gdm9pZApsZGFwX3NldF9jYWNoZV9vcHRpb25z
ICggTERBUCAqbGQsIHVuc2lnbmVkIGxvbmcgb3B0cyApOwoKZXh0ZXJuIHZvaWQKbGRhcF9kZXN0
cm95X2NhY2hlICggTERBUCAqbGQgKTsKCmV4dGVybiB2b2lkCmxkYXBfZmx1c2hfY2FjaGUgKCBM
REFQICpsZCApOwoKZXh0ZXJuIHZvaWQKbGRhcF91bmNhY2hlX2VudHJ5ICggTERBUCAqbGQsIGNv
bnN0IGNoYXIgKmRuICk7CgpleHRlcm4gdm9pZApsZGFwX3VuY2FjaGVfcmVxdWVzdCAoIExEQVAg
KmxkLCBpbnQgbXNnaWQgKTsKCgoKCgpleHRlcm4gaW50CmxkYXBfY29tcGFyZV9leHQgKCBMREFQ
ICpsZCwgY29uc3QgY2hhciAqZG4sIGNvbnN0IGNoYXIgKmF0dHIsIHN0cnVjdCBiZXJ2YWwgKmJ2
YWx1ZSwgTERBUENvbnRyb2wgKipzZXJ2ZXJjdHJscywgTERBUENvbnRyb2wgKipjbGllbnRjdHJs
cywgaW50ICptc2dpZHAgKTsKIyA4NjkgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0
ZXJuIGludApsZGFwX2NvbXBhcmVfZXh0X3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIGNv
bnN0IGNoYXIgKmF0dHIsIHN0cnVjdCBiZXJ2YWwgKmJ2YWx1ZSwgTERBUENvbnRyb2wgKipzZXJ2
ZXJjdHJscywgTERBUENvbnRyb2wgKipjbGllbnRjdHJscyApOwoKCgoKCgoKZXh0ZXJuIGludAps
ZGFwX2NvbXBhcmUgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIGNvbnN0IGNoYXIgKmF0dHIs
IGNvbnN0IGNoYXIgKnZhbHVlICk7CgoKCgoKZXh0ZXJuIGludApsZGFwX2NvbXBhcmVfcyAoIExE
QVAgKmxkLCBjb25zdCBjaGFyICpkbiwgY29uc3QgY2hhciAqYXR0ciwgY29uc3QgY2hhciAqdmFs
dWUgKTsKIyA4OTYgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJuIGludApsZGFw
X2RlbGV0ZV9leHQgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIExEQVBDb250cm9sICoqc2Vy
dmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMsIGludCAqbXNnaWRwICk7CgoKCgoK
CmV4dGVybiBpbnQKbGRhcF9kZWxldGVfZXh0X3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4s
IExEQVBDb250cm9sICoqc2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMgKTsK
CgoKCgpleHRlcm4gaW50CmxkYXBfZGVsZXRlICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKmRuICk7
CgoKCmV4dGVybiBpbnQKbGRhcF9kZWxldGVfcyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiAp
OwoKCgoKCgoKZXh0ZXJuIGludApsZGFwX3BhcnNlX3Jlc3VsdCAoIExEQVAgKmxkLCBMREFQTWVz
c2FnZSAqcmVzLCBpbnQgKmVycmNvZGVwLCBjaGFyICoqbWF0Y2hlZGRucCwgY2hhciAqKmVycm1z
Z3AsIGNoYXIgKioqcmVmZXJyYWxzcCwgTERBUENvbnRyb2wgKioqc2VydmVyY3RybHMsIGludCBm
cmVlaXQgKTsKIyA5MzYgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJuIGNoYXIg
KgpsZGFwX2VycjJzdHJpbmcgKCBpbnQgZXJyICk7CgoKZXh0ZXJuIGludApsZGFwX3Jlc3VsdDJl
cnJvciAoIExEQVAgKmxkLCBMREFQTWVzc2FnZSAqciwgaW50IGZyZWVpdCApOwoKCgoKZXh0ZXJu
IHZvaWQKbGRhcF9wZXJyb3IgKCBMREFQICpsZCwgY29uc3QgY2hhciAqcyApOwoKCgoKCgoKZXh0
ZXJuIGludApsZGFwX21vZGlmeV9leHQgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIExEQVBN
b2QgKiptb2RzLCBMREFQQ29udHJvbCAqKnNlcnZlcmN0cmxzLCBMREFQQ29udHJvbCAqKmNsaWVu
dGN0cmxzLCBpbnQgKm1zZ2lkcCApOwoKCgoKCgoKZXh0ZXJuIGludApsZGFwX21vZGlmeV9leHRf
cyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgTERBUE1vZCAqKm1vZHMsIExEQVBDb250cm9s
ICoqc2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMgKTsKCgoKCgoKZXh0ZXJu
IGludApsZGFwX21vZGlmeSAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgTERBUE1vZCAqKm1v
ZHMgKTsKCgoKCmV4dGVybiBpbnQKbGRhcF9tb2RpZnlfcyAoIExEQVAgKmxkLCBjb25zdCBjaGFy
ICpkbiwgTERBUE1vZCAqKm1vZHMgKTsKIyA5ODggIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgi
IDMKZXh0ZXJuIGludApsZGFwX3JlbmFtZSAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgY29u
c3QgY2hhciAqbmV3cmRuLCBjb25zdCBjaGFyICpuZXdTdXBlcmlvciwgaW50IGRlbGV0ZW9sZHJk
biwgTERBUENvbnRyb2wgKipzY3RybHMsIExEQVBDb250cm9sICoqY2N0cmxzLCBpbnQgKm1zZ2lk
cCApOwojIDk5OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50CmxkYXBf
cmVuYW1lX3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqZG4sIGNvbnN0IGNoYXIgKm5ld3Jkbiwg
Y29uc3QgY2hhciAqbmV3U3VwZXJpb3IsIGludCBkZWxldGVvbGRyZG4sIExEQVBDb250cm9sICoq
c2N0cmxzLCBMREFQQ29udHJvbCAqKmNjdHJscyApOwojIDEwMDkgIi91c3IvbG9jYWwvaW5jbHVk
ZS9sZGFwLmgiIDMKZXh0ZXJuIGludApsZGFwX3JlbmFtZTIgKCBMREFQICpsZCwgY29uc3QgY2hh
ciAqZG4sIGNvbnN0IGNoYXIgKm5ld3JkbiwgY29uc3QgY2hhciAqbmV3U3VwZXJpb3IsIGludCBk
ZWxldGVvbGRyZG4gKTsKCgoKCgoKZXh0ZXJuIGludApsZGFwX3JlbmFtZTJfcyAoIExEQVAgKmxk
LCBjb25zdCBjaGFyICpkbiwgY29uc3QgY2hhciAqbmV3cmRuLCBjb25zdCBjaGFyICpuZXdTdXBl
cmlvciwgaW50IGRlbGV0ZW9sZHJkbiApOwoKCgoKCgpleHRlcm4gaW50CmxkYXBfbW9kcmRuICgg
TERBUCAqbGQsIGNvbnN0IGNoYXIgKmRuLCBjb25zdCBjaGFyICpuZXdyZG4gKTsKCgoKCmV4dGVy
biBpbnQKbGRhcF9tb2RyZG5fcyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgY29uc3QgY2hh
ciAqbmV3cmRuICk7CgoKCgpleHRlcm4gaW50CmxkYXBfbW9kcmRuMiAoIExEQVAgKmxkLCBjb25z
dCBjaGFyICpkbiwgY29uc3QgY2hhciAqbmV3cmRuLCBpbnQgZGVsZXRlb2xkcmRuICk7CgoKCgoK
ZXh0ZXJuIGludApsZGFwX21vZHJkbjJfcyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpkbiwgY29u
c3QgY2hhciAqbmV3cmRuLCBpbnQgZGVsZXRlb2xkcmRuKTsKIyAxMDU1ICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvbGRhcC5oIiAzCmV4dGVybiBMREFQICoKbGRhcF9pbml0ICggY29uc3QgY2hhciAqaG9z
dCwgaW50IHBvcnQgKTsKCgoKZXh0ZXJuIExEQVAgKgpsZGFwX29wZW4gKCBjb25zdCBjaGFyICpo
b3N0LCBpbnQgcG9ydCApOwoKCgpleHRlcm4gaW50CmxkYXBfY3JlYXRlICggTERBUCAqKmxkcCAp
OwoKCmV4dGVybiBpbnQKbGRhcF9pbml0aWFsaXplICggTERBUCAqKmxkcCwgY29uc3QgY2hhciAq
dXJsICk7CgoKCmV4dGVybiBpbnQKbGRhcF9zdGFydF90bHNfcyAoIExEQVAgKmxkLCBMREFQQ29u
dHJvbCAqKnNlcnZlcmN0cmxzLCBMREFQQ29udHJvbCAqKmNsaWVudGN0cmxzICk7CgoKCgoKCgpl
eHRlcm4gTERBUE1lc3NhZ2UgKgpsZGFwX2ZpcnN0X21lc3NhZ2UgKCBMREFQICpsZCwgTERBUE1l
c3NhZ2UgKmNoYWluICk7CgoKCmV4dGVybiBMREFQTWVzc2FnZSAqCmxkYXBfbmV4dF9tZXNzYWdl
ICggTERBUCAqbGQsIExEQVBNZXNzYWdlICptc2cgKTsKCgoKZXh0ZXJuIGludApsZGFwX2NvdW50
X21lc3NhZ2VzICggTERBUCAqbGQsIExEQVBNZXNzYWdlICpjaGFpbiApOwoKCgoKCgoKZXh0ZXJu
IExEQVBNZXNzYWdlICoKbGRhcF9maXJzdF9yZWZlcmVuY2UgKCBMREFQICpsZCwgTERBUE1lc3Nh
Z2UgKmNoYWluICk7CgoKCmV4dGVybiBMREFQTWVzc2FnZSAqCmxkYXBfbmV4dF9yZWZlcmVuY2Ug
KCBMREFQICpsZCwgTERBUE1lc3NhZ2UgKnJlZiApOwoKCgpleHRlcm4gaW50CmxkYXBfY291bnRf
cmVmZXJlbmNlcyAoIExEQVAgKmxkLCBMREFQTWVzc2FnZSAqY2hhaW4gKTsKCgoKZXh0ZXJuIGlu
dApsZGFwX3BhcnNlX3JlZmVyZW5jZSAoIExEQVAgKmxkLCBMREFQTWVzc2FnZSAqcmVmLCBjaGFy
ICoqKnJlZmVycmFsc3AsIExEQVBDb250cm9sICoqKnNlcnZlcmN0cmxzLCBpbnQgZnJlZWl0KTsK
IyAxMTI5ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCmV4dGVybiBMREFQTWVzc2FnZSAq
CmxkYXBfZmlyc3RfZW50cnkgKCBMREFQICpsZCwgTERBUE1lc3NhZ2UgKmNoYWluICk7CgoKCmV4
dGVybiBMREFQTWVzc2FnZSAqCmxkYXBfbmV4dF9lbnRyeSAoIExEQVAgKmxkLCBMREFQTWVzc2Fn
ZSAqZW50cnkgKTsKCgoKZXh0ZXJuIGludApsZGFwX2NvdW50X2VudHJpZXMgKCBMREFQICpsZCwg
TERBUE1lc3NhZ2UgKmNoYWluICk7CgoKCmV4dGVybiBpbnQKbGRhcF9nZXRfZW50cnlfY29udHJv
bHMgKCBMREFQICpsZCwgTERBUE1lc3NhZ2UgKmVudHJ5LCBMREFQQ29udHJvbCAqKipzZXJ2ZXJj
dHJscyk7CiMgMTE1NCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gTERBUE1l
c3NhZ2UgKgpsZGFwX2RlbGV0ZV9yZXN1bHRfZW50cnkgKCBMREFQTWVzc2FnZSAqKmxpc3QsIExE
QVBNZXNzYWdlICplICk7CgoKCmV4dGVybiB2b2lkCmxkYXBfYWRkX3Jlc3VsdF9lbnRyeSAoIExE
QVBNZXNzYWdlICoqbGlzdCwgTERBUE1lc3NhZ2UgKmUgKTsKCgoKCgoKCmV4dGVybiBjaGFyICoK
bGRhcF9nZXRfZG4gKCBMREFQICpsZCwgTERBUE1lc3NhZ2UgKmVudHJ5ICk7CgoKCmV4dGVybiBj
aGFyICoKbGRhcF9kbjJ1Zm4gKCBjb25zdCBjaGFyICpkbiApOwoKCmV4dGVybiBjaGFyICoqCmxk
YXBfZXhwbG9kZV9kbiAoIGNvbnN0IGNoYXIgKmRuLCBpbnQgbm90eXBlcyApOwoKCgpleHRlcm4g
Y2hhciAqKgpsZGFwX2V4cGxvZGVfcmRuICggY29uc3QgY2hhciAqcmRuLCBpbnQgbm90eXBlcyAp
OwoKCgpleHRlcm4gY2hhciAqCmxkYXBfZG4yZGNlZG4gKCBjb25zdCBjaGFyICpkbiApOwoKZXh0
ZXJuIGNoYXIgKgpsZGFwX2RjZWRuMmRuICggY29uc3QgY2hhciAqZGNlICk7CgoKCgpleHRlcm4g
Y2hhciAqCmxkYXBfZmlyc3RfYXR0cmlidXRlICggTERBUCAqbGQsIExEQVBNZXNzYWdlICplbnRy
eSwgQmVyRWxlbWVudCAqKmJlciApOwoKCgoKZXh0ZXJuIGNoYXIgKgpsZGFwX25leHRfYXR0cmli
dXRlICggTERBUCAqbGQsIExEQVBNZXNzYWdlICplbnRyeSwgQmVyRWxlbWVudCAqYmVyICk7CiMg
MTIxMiAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gY2hhciAqKgpsZGFwX2dl
dF92YWx1ZXMgKCBMREFQICpsZCwgTERBUE1lc3NhZ2UgKmVudHJ5LCBjb25zdCBjaGFyICp0YXJn
ZXQgKTsKCgoKCmV4dGVybiBzdHJ1Y3QgYmVydmFsICoqCmxkYXBfZ2V0X3ZhbHVlc19sZW4gKCBM
REFQICpsZCwgTERBUE1lc3NhZ2UgKmVudHJ5LCBjb25zdCBjaGFyICp0YXJnZXQgKTsKCgoKCmV4
dGVybiBpbnQKbGRhcF9jb3VudF92YWx1ZXMgKCBjaGFyICoqdmFscyApOwoKCmV4dGVybiBpbnQK
bGRhcF9jb3VudF92YWx1ZXNfbGVuICggc3RydWN0IGJlcnZhbCAqKnZhbHMgKTsKCgpleHRlcm4g
dm9pZApsZGFwX3ZhbHVlX2ZyZWUgKCBjaGFyICoqdmFscyApOwoKCmV4dGVybiB2b2lkCmxkYXBf
dmFsdWVfZnJlZV9sZW4gKCBzdHJ1Y3QgYmVydmFsICoqdmFscyApOwoKCgoKCmV4dGVybiBpbnQK
bGRhcF9yZXN1bHQgKCBMREFQICpsZCwgaW50IG1zZ2lkLCBpbnQgYWxsLCBzdHJ1Y3QgdGltZXZh
bCAqdGltZW91dCwgTERBUE1lc3NhZ2UgKipyZXN1bHQgKTsKCgoKCgoKZXh0ZXJuIGludApsZGFw
X21zZ3R5cGUgKCBMREFQTWVzc2FnZSAqbG0gKTsKCgpleHRlcm4gaW50CmxkYXBfbXNnaWQgKCBM
REFQTWVzc2FnZSAqbG0gKTsKCgpleHRlcm4gaW50CmxkYXBfbXNnZnJlZSAoIExEQVBNZXNzYWdl
ICpsbSApOwoKCmV4dGVybiBpbnQKbGRhcF9tc2dkZWxldGUgKCBMREFQICpsZCwgaW50IG1zZ2lk
ICk7CgoKCgoKCgpleHRlcm4gaW50CmxkYXBfc2VhcmNoX2V4dCAoIExEQVAgKmxkLCBjb25zdCBj
aGFyICpiYXNlLCBpbnQgc2NvcGUsIGNvbnN0IGNoYXIgKmZpbHRlciwgY2hhciAqKmF0dHJzLCBp
bnQgYXR0cnNvbmx5LCBMREFQQ29udHJvbCAqKnNlcnZlcmN0cmxzLCBMREFQQ29udHJvbCAqKmNs
aWVudGN0cmxzLCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgaW50IHNpemVsaW1pdCwgaW50ICpt
c2dpZHAgKTsKIyAxMjg2ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCmV4dGVybiBpbnQK
bGRhcF9zZWFyY2hfZXh0X3MgKCBMREFQICpsZCwgY29uc3QgY2hhciAqYmFzZSwgaW50IHNjb3Bl
LCBjb25zdCBjaGFyICpmaWx0ZXIsIGNoYXIgKiphdHRycywgaW50IGF0dHJzb25seSwgTERBUENv
bnRyb2wgKipzZXJ2ZXJjdHJscywgTERBUENvbnRyb2wgKipjbGllbnRjdHJscywgc3RydWN0IHRp
bWV2YWwgKnRpbWVvdXQsIGludCBzaXplbGltaXQsIExEQVBNZXNzYWdlICoqcmVzICk7CiMgMTMw
MCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50CmxkYXBfc2VhcmNoICgg
TERBUCAqbGQsIGNvbnN0IGNoYXIgKmJhc2UsIGludCBzY29wZSwgY29uc3QgY2hhciAqZmlsdGVy
LCBjaGFyICoqYXR0cnMsIGludCBhdHRyc29ubHkgKTsKCgoKCgoKCmV4dGVybiBpbnQKbGRhcF9z
ZWFyY2hfcyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpiYXNlLCBpbnQgc2NvcGUsIGNvbnN0IGNo
YXIgKmZpbHRlciwgY2hhciAqKmF0dHJzLCBpbnQgYXR0cnNvbmx5LCBMREFQTWVzc2FnZSAqKnJl
cyApOwojIDEzMTkgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJuIGludApsZGFw
X3NlYXJjaF9zdCAoIExEQVAgKmxkLCBjb25zdCBjaGFyICpiYXNlLCBpbnQgc2NvcGUsIGNvbnN0
IGNoYXIgKmZpbHRlciwgY2hhciAqKmF0dHJzLCBpbnQgYXR0cnNvbmx5LCBzdHJ1Y3QgdGltZXZh
bCAqdGltZW91dCwgTERBUE1lc3NhZ2UgKipyZXMgKTsKIyAxMzMzICIvdXNyL2xvY2FsL2luY2x1
ZGUvbGRhcC5oIiAzCmV4dGVybiBpbnQKbGRhcF91bmJpbmQgKCBMREFQICpsZCApOwoKCmV4dGVy
biBpbnQKbGRhcF91bmJpbmRfcyAoIExEQVAgKmxkICk7CgoKZXh0ZXJuIGludApsZGFwX3VuYmlu
ZF9leHQgKCBMREFQICpsZCwgTERBUENvbnRyb2wgKipzZXJ2ZXJjdHJscywgTERBUENvbnRyb2wg
KipjbGllbnRjdHJscyk7CgoKCgpleHRlcm4gaW50CmxkYXBfdW5iaW5kX2V4dF9zICggTERBUCAq
bGQsIExEQVBDb250cm9sICoqc2VydmVyY3RybHMsIExEQVBDb250cm9sICoqY2xpZW50Y3RybHMp
OwojIDEzNTcgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJuIExEQVBGaWx0RGVz
YyAqCmxkYXBfaW5pdF9nZXRmaWx0ZXIgKCBjb25zdCBjaGFyICpmbmFtZSApOwoKCmV4dGVybiBM
REFQRmlsdERlc2MgKgpsZGFwX2luaXRfZ2V0ZmlsdGVyX2J1ZiAoIGNoYXIgKmJ1ZiwgYmVyX2xl
bl90IGJ1ZmxlbiApOwoKCgpleHRlcm4gTERBUEZpbHRJbmZvICoKbGRhcF9nZXRmaXJzdGZpbHRl
ciAoIExEQVBGaWx0RGVzYyAqbGZkcCwgY2hhciAqdGFncGF0LCBjaGFyICp2YWx1ZSApOwoKCgoK
ZXh0ZXJuIExEQVBGaWx0SW5mbyAqCmxkYXBfZ2V0bmV4dGZpbHRlciAoIExEQVBGaWx0RGVzYyAq
bGZkcCApOwoKCmV4dGVybiB2b2lkCmxkYXBfc2V0ZmlsdGVyYWZmaXhlcyAoIExEQVBGaWx0RGVz
YyAqbGZkcCwgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICpzdWZmaXggKTsKCgoKCmV4
dGVybiB2b2lkCmxkYXBfYnVpbGRfZmlsdGVyICggY2hhciAqYnVmLCBiZXJfbGVuX3QgYnVmbGVu
LCBjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKnN1
ZmZpeCwgY29uc3QgY2hhciAqYXR0ciwgY29uc3QgY2hhciAqdmFsdWUsIGNoYXIgKip2YWx3b3Jk
cyApOwojIDEzOTggIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKZXh0ZXJuIHZvaWQgKgps
ZGFwX21lbWFsbG9jICggYmVyX2xlbl90IHMgKTsKCgpleHRlcm4gdm9pZCAqCmxkYXBfbWVtcmVh
bGxvYyAoIHZvaWQqIHAsIGJlcl9sZW5fdCBzICk7CgoKCmV4dGVybiB2b2lkICoKbGRhcF9tZW1j
YWxsb2MgKCBiZXJfbGVuX3QgbiwgYmVyX2xlbl90IHMgKTsKCgoKZXh0ZXJuIHZvaWQKbGRhcF9t
ZW1mcmVlICggdm9pZCogcCApOwoKCmV4dGVybiB2b2lkCmxkYXBfbWVtdmZyZWUgKCB2b2lkKiog
diApOwoKCmV4dGVybiBjaGFyICoKbGRhcF9zdHJkdXAgKCBjb25zdCBjaGFyICogKTsKCgpleHRl
cm4gdm9pZApsZGFwX2dldGZpbHRlcl9mcmVlICggTERBUEZpbHREZXNjICpsZmRwICk7CgoKZXh0
ZXJuIHZvaWQKbGRhcF9tb2RzX2ZyZWUgKCBMREFQTW9kICoqbW9kcywgaW50IGZyZWVtb2RzICk7
CiMgMTQzOCAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gY2hhciAqCmxkYXBf
ZnJpZW5kbHlfbmFtZSAoIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjaGFyICp1bmFtZSwgTERBUEZy
aWVuZGx5TWFwICoqbWFwICk7CgoKCgpleHRlcm4gdm9pZApsZGFwX2ZyZWVfZnJpZW5kbHltYXAg
KCBMREFQRnJpZW5kbHlNYXAgKiptYXAgKTsKCgoKCgoKdHlwZWRlZiBpbnQgKExEQVBfU09SVF9B
RF9DTVBfUFJPQykgKCBjb25zdCBjaGFyICpsZWZ0LCBjb25zdCBjaGFyICpyaWdodCApOwoKCgp0
eXBlZGVmIGludCAoTERBUF9TT1JUX0FWX0NNUF9QUk9DKSAoIGNvbnN0IHZvaWQgKmxlZnQsIGNv
bnN0IHZvaWQgKnJpZ2h0ICk7CgoKCmV4dGVybiBpbnQKbGRhcF9zb3J0X2VudHJpZXMgKCBMREFQ
ICpsZCwgTERBUE1lc3NhZ2UgKipjaGFpbiwgY29uc3QgY2hhciAqYXR0ciwgTERBUF9TT1JUX0FE
X0NNUF9QUk9DICpjbXAgKTsKCgoKCmV4dGVybiBpbnQKbGRhcF9zb3J0X3ZhbHVlcyAoIExEQVAg
KmxkLCBjaGFyICoqdmFscywgTERBUF9TT1JUX0FWX0NNUF9QUk9DICpjbXAgKTsKCgoKCmV4dGVy
biBpbnQKbGRhcF9zb3J0X3N0cmNhc2VjbXAgKCBjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi
ICk7CiMgMTQ4MyAiL3Vzci9sb2NhbC9pbmNsdWRlL2xkYXAuaCIgMwpleHRlcm4gaW50CmxkYXBf
aXNfbGRhcF91cmwgKCBjb25zdCBjaGFyICp1cmwgKTsKCgpleHRlcm4gaW50CmxkYXBfaXNfbGRh
cHNfdXJsICggY29uc3QgY2hhciAqdXJsICk7CgoKZXh0ZXJuIGludApsZGFwX2lzX2xkYXBpX3Vy
bCAoIGNvbnN0IGNoYXIgKnVybCApOwoKCmV4dGVybiBpbnQKbGRhcF91cmxfcGFyc2UgKCBjb25z
dCBjaGFyICp1cmwsIExEQVBVUkxEZXNjICoqbHVkcHAgKTsKCgoKZXh0ZXJuIHZvaWQKbGRhcF9m
cmVlX3VybGRlc2MgKCBMREFQVVJMRGVzYyAqbHVkcCApOwoKCmV4dGVybiBpbnQKbGRhcF91cmxf
c2VhcmNoICggTERBUCAqbGQsIGNvbnN0IGNoYXIgKnVybCwgaW50IGF0dHJzb25seSApOwoKCgoK
ZXh0ZXJuIGludApsZGFwX3VybF9zZWFyY2hfcyAoIExEQVAgKmxkLCBjb25zdCBjaGFyICp1cmws
IGludCBhdHRyc29ubHksIExEQVBNZXNzYWdlICoqcmVzICk7CgoKCgoKZXh0ZXJuIGludApsZGFw
X3VybF9zZWFyY2hfc3QgKCBMREFQICpsZCwgY29uc3QgY2hhciAqdXJsLCBpbnQgYXR0cnNvbmx5
LCBzdHJ1Y3QgdGltZXZhbCAqdGltZW91dCwgTERBUE1lc3NhZ2UgKipyZXMgKTsKIyAxNTMxICIv
dXNyL2xvY2FsL2luY2x1ZGUvbGRhcC5oIiAzCnR5cGVkZWYgc3RydWN0IGxkYXBzb3J0a2V5IHsK
ICAgICAgICBjaGFyICogYXR0cmlidXRlVHlwZTsKICAgICAgICBjaGFyICogb3JkZXJpbmdSdWxl
OwogICAgICAgIGludCByZXZlcnNlT3JkZXI7Cn0gTERBUFNvcnRLZXk7CgpleHRlcm4gaW50Cmxk
YXBfY3JlYXRlX3NvcnRfa2V5bGlzdCAoIExEQVBTb3J0S2V5ICoqKnNvcnRLZXlMaXN0LCBjaGFy
ICprZXlTdHJpbmcgKTsKCgoKZXh0ZXJuIHZvaWQKbGRhcF9mcmVlX3NvcnRfa2V5bGlzdCAoIExE
QVBTb3J0S2V5ICoqc29ydGtleWxpc3QgKTsKCgpleHRlcm4gaW50CmxkYXBfY3JlYXRlX3NvcnRf
Y29udHJvbCAoIExEQVAgKmxkLCBMREFQU29ydEtleSAqKmtleUxpc3QsIGludCBjdGxfaXNjcml0
aWNhbCwgTERBUENvbnRyb2wgKipjdHJscCApOwoKCgoKCmV4dGVybiBpbnQKbGRhcF9wYXJzZV9z
b3J0X2NvbnRyb2wgKCBMREFQICpsZCwgTERBUENvbnRyb2wgKipjdHJscCwgdW5zaWduZWQgbG9u
ZyAqcmVzdWx0LCBjaGFyICoqYXR0cmlidXRlICk7CiMgMTU2OCAiL3Vzci9sb2NhbC9pbmNsdWRl
L2xkYXAuaCIgMwp0eXBlZGVmIHN0cnVjdCBsZGFwdmx2aW5mbyB7CiAgICAgICAgaW50IGxkdmx2
X3ZlcnNpb247CiAgICB1bnNpZ25lZCBsb25nIGxkdmx2X2JlZm9yZV9jb3VudDsKICAgIHVuc2ln
bmVkIGxvbmcgbGR2bHZfYWZ0ZXJfY291bnQ7CiAgICB1bnNpZ25lZCBsb25nIGxkdmx2X29mZnNl
dDsKICAgIHVuc2lnbmVkIGxvbmcgbGR2bHZfY291bnQ7CiAgICBzdHJ1Y3QgYmVydmFsICpsZHZs
dl9hdHRydmFsdWU7CiAgICBzdHJ1Y3QgYmVydmFsICpsZHZsdl9jb250ZXh0OwogICAgdm9pZCAq
bGR2bHZfZXh0cmFkYXRhOwp9IExEQVBWTFZJbmZvOwoKZXh0ZXJuIGludApsZGFwX2NyZWF0ZV92
bHZfY29udHJvbCAoIExEQVAgKmxkLCBMREFQVkxWSW5mbyAqbGR2bGlzdHAsIExEQVBDb250cm9s
ICoqY3RybHAgKTsKCgoKCmV4dGVybiBpbnQKbGRhcF9wYXJzZV92bHZfY29udHJvbCAoIExEQVAg
KmxkLCBMREFQQ29udHJvbCAqKmN0cmxzLCB1bnNpZ25lZCBsb25nICp0YXJnZXRfcG9zcCwgdW5z
aWduZWQgbG9uZyAqbGlzdF9jb3VudHAsIHN0cnVjdCBiZXJ2YWwgKipjb250ZXh0cCwgaW50ICpl
cnJjb2RlcCApOwojIDE1OTUgIi91c3IvbG9jYWwvaW5jbHVkZS9sZGFwLmgiIDMKCiMgMzkwICJp
bmNsdWRlL2luY2x1ZGVzLmgiIDIKCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkv
Z3NzYXBpLmgiIDEgMwojIDkyICIvdXNyL2xvY2FsL2luY2x1ZGUvZ3NzYXBpL2dzc2FwaS5oIiAz
CiMgMSAiL3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEv
aW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgOTMgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkvZ3Nz
YXBpLmgiIDIgMwojIDExNyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGkuaCIgMwp0
eXBlZGVmIHZvaWQgKiBnc3NfbmFtZV90Owp0eXBlZGVmIHZvaWQgKiBnc3NfY3JlZF9pZF90Owp0
eXBlZGVmIHZvaWQgKiBnc3NfY3R4X2lkX3Q7CiMgMTI5ICIvdXNyL2xvY2FsL2luY2x1ZGUvZ3Nz
YXBpL2dzc2FwaS5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IGdzc191aW50MzI7CnR5cGVkZWYg
aW50IGdzc19pbnQzMjsKIyAxNDYgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkvZ3NzYXBpLmgi
IDMKdHlwZWRlZiBnc3NfdWludDMyIE9NX3VpbnQzMjsKCnR5cGVkZWYgc3RydWN0IGdzc19PSURf
ZGVzY19zdHJ1Y3QgewogICAgICBPTV91aW50MzIgbGVuZ3RoOwogICAgICB2b2lkICplbGVtZW50
czsKfSBnc3NfT0lEX2Rlc2MsICpnc3NfT0lEOwoKCnR5cGVkZWYgc3RydWN0IGdzc19PSURfc2V0
X2Rlc2Nfc3RydWN0IHsKICAgICAgc2l6ZV90IGNvdW50OwogICAgICBnc3NfT0lEIGVsZW1lbnRz
Owp9IGdzc19PSURfc2V0X2Rlc2MsICpnc3NfT0lEX3NldDsKCnR5cGVkZWYgc3RydWN0IGdzc19i
dWZmZXJfZGVzY19zdHJ1Y3QgewogICAgICBzaXplX3QgbGVuZ3RoOwogICAgICB2b2lkICp2YWx1
ZTsKfSBnc3NfYnVmZmVyX2Rlc2MsICpnc3NfYnVmZmVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBnc3Nf
Y2hhbm5lbF9iaW5kaW5nc19zdHJ1Y3QgewogICAgICBPTV91aW50MzIgaW5pdGlhdG9yX2FkZHJ0
eXBlOwogICAgICBnc3NfYnVmZmVyX2Rlc2MgaW5pdGlhdG9yX2FkZHJlc3M7CiAgICAgIE9NX3Vp
bnQzMiBhY2NlcHRvcl9hZGRydHlwZTsKICAgICAgZ3NzX2J1ZmZlcl9kZXNjIGFjY2VwdG9yX2Fk
ZHJlc3M7CiAgICAgIGdzc19idWZmZXJfZGVzYyBhcHBsaWNhdGlvbl9kYXRhOwp9ICpnc3NfY2hh
bm5lbF9iaW5kaW5nc190OwoKCgoKCnR5cGVkZWYgT01fdWludDMyIGdzc19xb3BfdDsKdHlwZWRl
ZiBpbnQgZ3NzX2NyZWRfdXNhZ2VfdDsKIyAzNTYgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkv
Z3NzYXBpLmgiIDMKIE9NX3VpbnQzMiBnc3NfYWNxdWlyZV9jcmVkCihPTV91aW50MzIgKiwgZ3Nz
X25hbWVfdCwgT01fdWludDMyLCBnc3NfT0lEX3NldCwgZ3NzX2NyZWRfdXNhZ2VfdCwgZ3NzX2Ny
ZWRfaWRfdCAqLCBnc3NfT0lEX3NldCAqLCBPTV91aW50MzIgKiApOwojIDM2NyAiL3Vzci9sb2Nh
bC9pbmNsdWRlL2dzc2FwaS9nc3NhcGkuaCIgMwogT01fdWludDMyIGdzc19yZWxlYXNlX2NyZWQK
KE9NX3VpbnQzMiAqLCBnc3NfY3JlZF9pZF90ICogKTsKCgoKIE9NX3VpbnQzMiBnc3NfaW5pdF9z
ZWNfY29udGV4dAooT01fdWludDMyICosIGdzc19jcmVkX2lkX3QsIGdzc19jdHhfaWRfdCAqLCBn
c3NfbmFtZV90LCBnc3NfT0lELCBPTV91aW50MzIsIE9NX3VpbnQzMiwgZ3NzX2NoYW5uZWxfYmlu
ZGluZ3NfdCwgZ3NzX2J1ZmZlcl90LCBnc3NfT0lEICosIGdzc19idWZmZXJfdCwgT01fdWludDMy
ICosIE9NX3VpbnQzMiAqICk7CiMgMzg4ICIvdXNyL2xvY2FsL2luY2x1ZGUvZ3NzYXBpL2dzc2Fw
aS5oIiAzCiBPTV91aW50MzIgZ3NzX2FjY2VwdF9zZWNfY29udGV4dAooT01fdWludDMyICosIGdz
c19jdHhfaWRfdCAqLCBnc3NfY3JlZF9pZF90LCBnc3NfYnVmZmVyX3QsIGdzc19jaGFubmVsX2Jp
bmRpbmdzX3QsIGdzc19uYW1lX3QgKiwgZ3NzX09JRCAqLCBnc3NfYnVmZmVyX3QsIE9NX3VpbnQz
MiAqLCBPTV91aW50MzIgKiwgZ3NzX2NyZWRfaWRfdCAqICk7CiMgNDAyICIvdXNyL2xvY2FsL2lu
Y2x1ZGUvZ3NzYXBpL2dzc2FwaS5oIiAzCiBPTV91aW50MzIgZ3NzX3Byb2Nlc3NfY29udGV4dF90
b2tlbgooT01fdWludDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX2J1ZmZlcl90ICk7CgoKCgogT01f
dWludDMyIGdzc19kZWxldGVfc2VjX2NvbnRleHQKKE9NX3VpbnQzMiAqLCBnc3NfY3R4X2lkX3Qg
KiwgZ3NzX2J1ZmZlcl90ICk7CgoKCgogT01fdWludDMyIGdzc19jb250ZXh0X3RpbWUKKE9NX3Vp
bnQzMiAqLCBnc3NfY3R4X2lkX3QsIE9NX3VpbnQzMiAqICk7CgoKCgoKIE9NX3VpbnQzMiBnc3Nf
Z2V0X21pYwooT01fdWludDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX3FvcF90LCBnc3NfYnVmZmVy
X3QsIGdzc19idWZmZXJfdCApOwoKCgoKCgoKIE9NX3VpbnQzMiBnc3NfdmVyaWZ5X21pYwooT01f
dWludDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX2J1ZmZlcl90LCBnc3NfYnVmZmVyX3QsIGdzc19x
b3BfdCAqICk7CgoKCgoKCgogT01fdWludDMyIGdzc193cmFwCihPTV91aW50MzIgKiwgZ3NzX2N0
eF9pZF90LCBpbnQsIGdzc19xb3BfdCwgZ3NzX2J1ZmZlcl90LCBpbnQgKiwgZ3NzX2J1ZmZlcl90
ICk7CiMgNDUwICIvdXNyL2xvY2FsL2luY2x1ZGUvZ3NzYXBpL2dzc2FwaS5oIiAzCiBPTV91aW50
MzIgZ3NzX3Vud3JhcAooT01fdWludDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX2J1ZmZlcl90LCBn
c3NfYnVmZmVyX3QsIGludCAqLCBnc3NfcW9wX3QgKiApOwoKCgoKCgoKIE9NX3VpbnQzMiBnc3Nf
ZGlzcGxheV9zdGF0dXMKKE9NX3VpbnQzMiAqLCBPTV91aW50MzIsIGludCwgZ3NzX09JRCwgT01f
dWludDMyICosIGdzc19idWZmZXJfdCApOwoKCgoKCgoKIE9NX3VpbnQzMiBnc3NfaW5kaWNhdGVf
bWVjaHMKKE9NX3VpbnQzMiAqLCBnc3NfT0lEX3NldCAqICk7CgoKCiBPTV91aW50MzIgZ3NzX2Nv
bXBhcmVfbmFtZQooT01fdWludDMyICosIGdzc19uYW1lX3QsIGdzc19uYW1lX3QsIGludCAqICk7
CgoKCgoKIE9NX3VpbnQzMiBnc3NfZGlzcGxheV9uYW1lCihPTV91aW50MzIgKiwgZ3NzX25hbWVf
dCwgZ3NzX2J1ZmZlcl90LCBnc3NfT0lEICogKTsKCgoKCgogT01fdWludDMyIGdzc19pbXBvcnRf
bmFtZQooT01fdWludDMyICosIGdzc19idWZmZXJfdCwgZ3NzX09JRCwgZ3NzX25hbWVfdCAqICk7
CgoKCgoKIE9NX3VpbnQzMiBnc3NfcmVsZWFzZV9uYW1lCihPTV91aW50MzIgKiwgZ3NzX25hbWVf
dCAqICk7CgoKCiBPTV91aW50MzIgZ3NzX3JlbGVhc2VfYnVmZmVyCihPTV91aW50MzIgKiwgZ3Nz
X2J1ZmZlcl90ICk7CgoKCiBPTV91aW50MzIgZ3NzX3JlbGVhc2Vfb2lkX3NldAooT01fdWludDMy
ICosIGdzc19PSURfc2V0ICogKTsKCgoKIE9NX3VpbnQzMiBnc3NfaW5xdWlyZV9jcmVkCihPTV91
aW50MzIgKiwgZ3NzX2NyZWRfaWRfdCwgZ3NzX25hbWVfdCAqLCBPTV91aW50MzIgKiwgZ3NzX2Ny
ZWRfdXNhZ2VfdCAqLCBnc3NfT0lEX3NldCAqICk7CiMgNTE5ICIvdXNyL2xvY2FsL2luY2x1ZGUv
Z3NzYXBpL2dzc2FwaS5oIiAzCiBPTV91aW50MzIgZ3NzX2lucXVpcmVfY29udGV4dAooT01fdWlu
dDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX25hbWVfdCAqLCBnc3NfbmFtZV90ICosIE9NX3VpbnQz
MiAqLCBnc3NfT0lEICosIE9NX3VpbnQzMiAqLCBpbnQgKiwgaW50ICogKTsKIyA1MzIgIi91c3Iv
bG9jYWwvaW5jbHVkZS9nc3NhcGkvZ3NzYXBpLmgiIDMKIE9NX3VpbnQzMiBnc3Nfd3JhcF9zaXpl
X2xpbWl0CihPTV91aW50MzIgKiwgZ3NzX2N0eF9pZF90LCBpbnQsIGdzc19xb3BfdCwgT01fdWlu
dDMyLCBPTV91aW50MzIgKiApOwojIDU0MiAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3Nh
cGkuaCIgMwogT01fdWludDMyIGdzc19pbXBvcnRfbmFtZV9vYmplY3QKKE9NX3VpbnQzMiAqLCB2
b2lkICosIGdzc19PSUQsIGdzc19uYW1lX3QgKiApOwoKCgoKCgogT01fdWludDMyIGdzc19leHBv
cnRfbmFtZV9vYmplY3QKKE9NX3VpbnQzMiAqLCBnc3NfbmFtZV90LCBnc3NfT0lELCB2b2lkICog
KiApOwoKCgoKCgogT01fdWludDMyIGdzc19hZGRfY3JlZAooT01fdWludDMyICosIGdzc19jcmVk
X2lkX3QsIGdzc19uYW1lX3QsIGdzc19PSUQsIGdzc19jcmVkX3VzYWdlX3QsIE9NX3VpbnQzMiwg
T01fdWludDMyLCBnc3NfY3JlZF9pZF90ICosIGdzc19PSURfc2V0ICosIE9NX3VpbnQzMiAqLCBP
TV91aW50MzIgKiApOwojIDU3MyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGkuaCIg
MwogT01fdWludDMyIGdzc19pbnF1aXJlX2NyZWRfYnlfbWVjaAooT01fdWludDMyICosIGdzc19j
cmVkX2lkX3QsIGdzc19PSUQsIGdzc19uYW1lX3QgKiwgT01fdWludDMyICosIE9NX3VpbnQzMiAq
LCBnc3NfY3JlZF91c2FnZV90ICogKTsKIyA1ODQgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkv
Z3NzYXBpLmgiIDMKIE9NX3VpbnQzMiBnc3NfZXhwb3J0X3NlY19jb250ZXh0CihPTV91aW50MzIg
KiwgZ3NzX2N0eF9pZF90ICosIGdzc19idWZmZXJfdCApOwoKCgoKCiBPTV91aW50MzIgZ3NzX2lt
cG9ydF9zZWNfY29udGV4dAooT01fdWludDMyICosIGdzc19idWZmZXJfdCwgZ3NzX2N0eF9pZF90
ICogKTsKCgoKCgogT01fdWludDMyIGdzc19yZWxlYXNlX29pZAooT01fdWludDMyICosIGdzc19P
SUQgKiApOwoKCgoKIE9NX3VpbnQzMiBnc3NfY3JlYXRlX2VtcHR5X29pZF9zZXQKKE9NX3VpbnQz
MiAqLCBnc3NfT0lEX3NldCAqICk7CgoKCgogT01fdWludDMyIGdzc19hZGRfb2lkX3NldF9tZW1i
ZXIKKE9NX3VpbnQzMiAqLCBnc3NfT0lELCBnc3NfT0lEX3NldCAqICk7CgoKCgoKIE9NX3VpbnQz
MiBnc3NfdGVzdF9vaWRfc2V0X21lbWJlcgooT01fdWludDMyICosIGdzc19PSUQsIGdzc19PSURf
c2V0LCBpbnQgKiApOwoKCgoKCgogT01fdWludDMyIGdzc19zdHJfdG9fb2lkCihPTV91aW50MzIg
KiwgZ3NzX2J1ZmZlcl90LCBnc3NfT0lEICogKTsKCgoKCgogT01fdWludDMyIGdzc19vaWRfdG9f
c3RyCihPTV91aW50MzIgKiwgZ3NzX09JRCwgZ3NzX2J1ZmZlcl90ICk7CgoKCgoKIE9NX3VpbnQz
MiBnc3NfaW5xdWlyZV9uYW1lc19mb3JfbWVjaAooT01fdWludDMyICosIGdzc19PSUQsIGdzc19P
SURfc2V0ICogKTsKIyA2NTIgIi91c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkvZ3NzYXBpLmgiIDMK
IE9NX3VpbnQzMiBnc3Nfc2lnbgooT01fdWludDMyICosIGdzc19jdHhfaWRfdCwgaW50LCBnc3Nf
YnVmZmVyX3QsIGdzc19idWZmZXJfdCApOwoKCgoKCgogT01fdWludDMyIGdzc192ZXJpZnkKKE9N
X3VpbnQzMiAqLCBnc3NfY3R4X2lkX3QsIGdzc19idWZmZXJfdCwgZ3NzX2J1ZmZlcl90LCBpbnQg
KiApOwoKCgoKCgogT01fdWludDMyIGdzc19zZWFsCihPTV91aW50MzIgKiwgZ3NzX2N0eF9pZF90
LCBpbnQsIGludCwgZ3NzX2J1ZmZlcl90LCBpbnQgKiwgZ3NzX2J1ZmZlcl90ICk7CiMgNjc4ICIv
dXNyL2xvY2FsL2luY2x1ZGUvZ3NzYXBpL2dzc2FwaS5oIiAzCiBPTV91aW50MzIgZ3NzX3Vuc2Vh
bAooT01fdWludDMyICosIGdzc19jdHhfaWRfdCwgZ3NzX2J1ZmZlcl90LCBnc3NfYnVmZmVyX3Qs
IGludCAqLCBpbnQgKiApOwojIDY4OCAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGku
aCIgMwogT01fdWludDMyIGdzc19leHBvcnRfbmFtZQooT01fdWludDMyICosIGNvbnN0IGdzc19u
YW1lX3QsIGdzc19idWZmZXJfdCApOwoKCgoKCiBPTV91aW50MzIgZ3NzX2R1cGxpY2F0ZV9uYW1l
CihPTV91aW50MzIgKiwgY29uc3QgZ3NzX25hbWVfdCwgZ3NzX25hbWVfdCAqICk7CgoKCgoKIE9N
X3VpbnQzMiBnc3NfY2Fub25pY2FsaXplX25hbWUKKE9NX3VpbnQzMiAqLCBjb25zdCBnc3NfbmFt
ZV90LCBjb25zdCBnc3NfT0lELCBnc3NfbmFtZV90ICogKTsKIyAzOTYgImluY2x1ZGUvaW5jbHVk
ZXMuaCIgMgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGlfZ2VuZXJp
Yy5oIiAxIDMKIyAzMyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGlfZ2VuZXJpYy5o
IiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2dzc2FwaS9nc3NhcGkuaCIgMSAzCiMgMzQgIi91
c3IvbG9jYWwvaW5jbHVkZS9nc3NhcGkvZ3NzYXBpX2dlbmVyaWMuaCIgMiAzCgoKIGV4dGVybiBn
c3NfT0lEIGdzc19udF91c2VyX25hbWU7CiBleHRlcm4gZ3NzX09JRCBnc3NfbnRfbWFjaGluZV91
aWRfbmFtZTsKIGV4dGVybiBnc3NfT0lEIGdzc19udF9zdHJpbmdfdWlkX25hbWU7CiBleHRlcm4g
Z3NzX09JRCBnc3NfbnRfc2VydmljZV9uYW1lOwogZXh0ZXJuIGdzc19PSUQgZ3NzX250X2V4cG9y
dGVkX25hbWU7CiBleHRlcm4gZ3NzX09JRCBnc3NfbnRfc2VydmljZV9uYW1lX3YyOwojIDQwMiAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgNjcyICJpbmNsdWRlL2luY2x1ZGVzLmgiCiMgMSAiaW5j
bHVkZS94ZmlsZS5oIiAxCiMgMjggImluY2x1ZGUveGZpbGUuaCIKdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgICAgIGludCBmZDsKICAgICAgICBjaGFyICpidWY7CiAgICAgICAgY2hhciAqbmV4dDsKICAg
ICAgICBpbnQgYnVmc2l6ZTsKICAgICAgICBpbnQgYnVmdXNlZDsKICAgICAgICBpbnQgb3Blbl9m
bGFnczsKICAgICAgICBpbnQgYnVmdHlwZTsKICAgICAgICBpbnQgZmxhZ3M7Cn0gWEZJTEU7Cgpl
eHRlcm4gWEZJTEUgKnhfc3RkaW4sICp4X3N0ZG91dCwgKnhfc3RkZXJyOwojIDY3MyAiaW5jbHVk
ZS9pbmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9pbnRsLmgiIDEKIyA2NzQgImluY2x1ZGUvaW5j
bHVkZXMuaCIgMgojIDEgInViaXF4L3ViaV9zTGlua0xpc3QuaCIgMQojIDEwNiAidWJpcXgvdWJp
X3NMaW5rTGlzdC5oIgojIDEgInViaXF4L3N5c19pbmNsdWRlLmgiIDEKIyAxMDcgInViaXF4L3Vi
aV9zTGlua0xpc3QuaCIgMgojIDExOCAidWJpcXgvdWJpX3NMaW5rTGlzdC5oIgp0eXBlZGVmIHN0
cnVjdCB1Ymlfc2xMaXN0Tm9kZQogIHsKICBzdHJ1Y3QgdWJpX3NsTGlzdE5vZGUgKk5leHQ7CiAg
fSB1Ymlfc2xOb2RlOwoKdHlwZWRlZiB1Ymlfc2xOb2RlICp1Ymlfc2xOb2RlUHRyOwoKdHlwZWRl
ZiBzdHJ1Y3QKICB7CiAgdWJpX3NsTm9kZVB0ciBIZWFkOwogIHViaV9zbE5vZGVQdHIgVGFpbDsK
ICB1bnNpZ25lZCBsb25nIGNvdW50OwogIH0gdWJpX3NsTGlzdDsKCnR5cGVkZWYgdWJpX3NsTGlz
dCAqdWJpX3NsTGlzdFB0cjsKIyAyMDUgInViaXF4L3ViaV9zTGlua0xpc3QuaCIKdWJpX3NsTGlz
dFB0ciB1Ymlfc2xJbml0TGlzdCggdWJpX3NsTGlzdFB0ciBMaXN0UHRyICk7CiMgMjE4ICJ1Ymlx
eC91Ymlfc0xpbmtMaXN0LmgiCnViaV9zbE5vZGVQdHIgdWJpX3NsSW5zZXJ0KCB1Ymlfc2xMaXN0
UHRyIExpc3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Ymlfc2xOb2RlUHRyIE5l
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHViaV9zbE5vZGVQdHIgQWZ0ZXIgKTsKIyAy
MzcgInViaXF4L3ViaV9zTGlua0xpc3QuaCIKdWJpX3NsTm9kZVB0ciB1Ymlfc2xSZW1vdmVOZXh0
KCB1Ymlfc2xMaXN0UHRyIExpc3RQdHIsIHViaV9zbE5vZGVQdHIgQWZ0ZXJNZSApOwojIDY3NSAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAidWJpcXgvdWJpX2RMaW5rTGlzdC5oIiAxCiMgOTMg
InViaXF4L3ViaV9kTGlua0xpc3QuaCIKdHlwZWRlZiBzdHJ1Y3QgdWJpX2RsTGlzdE5vZGUKICB7
CiAgc3RydWN0IHViaV9kbExpc3ROb2RlICpOZXh0OwogIHN0cnVjdCB1YmlfZGxMaXN0Tm9kZSAq
UHJldjsKICB9IHViaV9kbE5vZGU7Cgp0eXBlZGVmIHViaV9kbE5vZGUgKnViaV9kbE5vZGVQdHI7
Cgp0eXBlZGVmIHN0cnVjdAogIHsKICB1YmlfZGxOb2RlUHRyIEhlYWQ7CiAgdWJpX2RsTm9kZVB0
ciBUYWlsOwogIHVuc2lnbmVkIGxvbmcgY291bnQ7CiAgfSB1YmlfZGxMaXN0OwoKdHlwZWRlZiB1
YmlfZGxMaXN0ICp1YmlfZGxMaXN0UHRyOwojIDE5NCAidWJpcXgvdWJpX2RMaW5rTGlzdC5oIgp1
YmlfZGxMaXN0UHRyIHViaV9kbEluaXRMaXN0KCB1YmlfZGxMaXN0UHRyIExpc3RQdHIgKTsKIyAy
MDcgInViaXF4L3ViaV9kTGlua0xpc3QuaCIKdWJpX2RsTm9kZVB0ciB1YmlfZGxJbnNlcnQoIHVi
aV9kbExpc3RQdHIgTGlzdFB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHViaV9kbE5v
ZGVQdHIgTmV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWJpX2RsTm9kZVB0ciBBZnRl
ciApOwojIDIyNyAidWJpcXgvdWJpX2RMaW5rTGlzdC5oIgp1YmlfZGxOb2RlUHRyIHViaV9kbFJl
bW92ZSggdWJpX2RsTGlzdFB0ciBMaXN0UHRyLCB1YmlfZGxOb2RlUHRyIE9sZCApOwojIDY3NiAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9kbGlua2xpc3QuaCIgMQojIDY3NyAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAidGRiL3RkYi5oIiAxCiMgNDYgInRkYi90ZGIuaCIK
ZW51bSBUREJfRVJST1Ige1REQl9TVUNDRVNTPTAsIFREQl9FUlJfQ09SUlVQVCwgVERCX0VSUl9J
TywgVERCX0VSUl9MT0NLLAogICAgICAgICAgICAgICAgVERCX0VSUl9PT00sIFREQl9FUlJfRVhJ
U1RTLCBUREJfRVJSX05PRVhJU1QsIFREQl9FUlJfTk9MT0NLIH07CgoKCgoKdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgIGNoYXIgKmRwdHI7CiAgICAgICAgc2l6ZV90IGRzaXplOwp9IFREQl9EQVRB
OwoKdHlwZWRlZiB1bnNpZ25lZCB0ZGJfbGVuOwp0eXBlZGVmIHVuc2lnbmVkIHRkYl9vZmY7CgoK
c3RydWN0IHRkYl9oZWFkZXIgewogICAgICAgIGNoYXIgbWFnaWNfZm9vZFszMl07CiAgICAgICAg
dW5zaWduZWQgdmVyc2lvbjsKICAgICAgICB1bnNpZ25lZCBoYXNoX3NpemU7CiAgICAgICAgdGRi
X29mZiByd2xvY2tzOwogICAgICAgIHRkYl9vZmYgcmVzZXJ2ZWRbMzFdOwp9OwoKc3RydWN0IHRk
Yl9sb2NrX3R5cGUgewogICAgICAgIHVuc2lnbmVkIGNvdW50OwogICAgICAgIHVuc2lnbmVkIGx0
eXBlOwp9OwoKc3RydWN0IHRkYl90cmF2ZXJzZV9sb2NrIHsKICAgICAgICBzdHJ1Y3QgdGRiX3Ry
YXZlcnNlX2xvY2sgKm5leHQ7CiAgICAgICAgdW5zaWduZWQgb2ZmOwogICAgICAgIHVuc2lnbmVk
IGhhc2g7Cn07CgoKdHlwZWRlZiBzdHJ1Y3QgdGRiX2NvbnRleHQgewogICAgICAgIGNoYXIgKm5h
bWU7CiAgICAgICAgdm9pZCAqbWFwX3B0cjsKICAgICAgICBpbnQgZmQ7CiAgICAgICAgdGRiX2xl
biBtYXBfc2l6ZTsKICAgICAgICBpbnQgcmVhZF9vbmx5OwogICAgICAgIHN0cnVjdCB0ZGJfbG9j
a190eXBlICpsb2NrZWQ7CiAgICAgICAgZW51bSBUREJfRVJST1IgZWNvZGU7CiAgICAgICAgc3Ry
dWN0IHRkYl9oZWFkZXIgaGVhZGVyOwogICAgICAgIHVuc2lnbmVkIGZsYWdzOwogICAgICAgIHVu
c2lnbmVkICpsb2NrZWRrZXlzOwogICAgICAgIHN0cnVjdCB0ZGJfdHJhdmVyc2VfbG9jayB0cmF2
bG9ja3M7CiAgICAgICAgc3RydWN0IHRkYl9jb250ZXh0ICpuZXh0OwogICAgICAgIGRldl90IGRl
dmljZTsKICAgICAgICBpbm9fdCBpbm9kZTsKICAgICAgICB2b2lkICgqbG9nX2ZuKShzdHJ1Y3Qg
dGRiX2NvbnRleHQgKnRkYiwgaW50IGxldmVsLCBjb25zdCBjaGFyICosIC4uLik7CiAgICAgICAg
aW50IG9wZW5fZmxhZ3M7Cn0gVERCX0NPTlRFWFQ7Cgp0eXBlZGVmIGludCAoKnRkYl90cmF2ZXJz
ZV9mdW5jKShUREJfQ09OVEVYVCAqLCBUREJfREFUQSwgVERCX0RBVEEsIHZvaWQgKik7CnR5cGVk
ZWYgdm9pZCAoKnRkYl9sb2dfZnVuYykoVERCX0NPTlRFWFQgKiwgaW50ICwgY29uc3QgY2hhciAq
LCAuLi4pOwoKVERCX0NPTlRFWFQgKnRkYl9vcGVuKGNvbnN0IGNoYXIgKm5hbWUsIGludCBoYXNo
X3NpemUsIGludCB0ZGJfZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgb3Blbl9mbGFn
cywgbW9kZV90IG1vZGUpOwpUREJfQ09OVEVYVCAqdGRiX29wZW5fZXgoY29uc3QgY2hhciAqbmFt
ZSwgaW50IGhhc2hfc2l6ZSwgaW50IHRkYl9mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBvcGVuX2ZsYWdzLCBtb2RlX3QgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHRk
Yl9sb2dfZnVuYyBsb2dfZm4pOwoKaW50IHRkYl9yZW9wZW4oVERCX0NPTlRFWFQgKnRkYik7Cmlu
dCB0ZGJfcmVvcGVuX2FsbCh2b2lkKTsKdm9pZCB0ZGJfbG9nZ2luZ19mdW5jdGlvbihUREJfQ09O
VEVYVCAqdGRiLCB0ZGJfbG9nX2Z1bmMpOwplbnVtIFREQl9FUlJPUiB0ZGJfZXJyb3IoVERCX0NP
TlRFWFQgKnRkYik7CmNvbnN0IGNoYXIgKnRkYl9lcnJvcnN0cihUREJfQ09OVEVYVCAqdGRiKTsK
VERCX0RBVEEgdGRiX2ZldGNoKFREQl9DT05URVhUICp0ZGIsIFREQl9EQVRBIGtleSk7CmludCB0
ZGJfZGVsZXRlKFREQl9DT05URVhUICp0ZGIsIFREQl9EQVRBIGtleSk7CmludCB0ZGJfc3RvcmUo
VERCX0NPTlRFWFQgKnRkYiwgVERCX0RBVEEga2V5LCBUREJfREFUQSBkYnVmLCBpbnQgZmxhZyk7
CmludCB0ZGJfY2xvc2UoVERCX0NPTlRFWFQgKnRkYik7ClREQl9EQVRBIHRkYl9maXJzdGtleShU
REJfQ09OVEVYVCAqdGRiKTsKVERCX0RBVEEgdGRiX25leHRrZXkoVERCX0NPTlRFWFQgKnRkYiwg
VERCX0RBVEEga2V5KTsKaW50IHRkYl90cmF2ZXJzZShUREJfQ09OVEVYVCAqdGRiLCB0ZGJfdHJh
dmVyc2VfZnVuYyBmbiwgdm9pZCAqc3RhdGUpOwppbnQgdGRiX2V4aXN0cyhUREJfQ09OVEVYVCAq
dGRiLCBUREJfREFUQSBrZXkpOwppbnQgdGRiX2xvY2trZXlzKFREQl9DT05URVhUICp0ZGIsIHVu
c2lnbmVkIG51bWJlciwgVERCX0RBVEEga2V5c1tdKTsKdm9pZCB0ZGJfdW5sb2Nra2V5cyhUREJf
Q09OVEVYVCAqdGRiKTsKaW50IHRkYl9sb2NrYWxsKFREQl9DT05URVhUICp0ZGIpOwp2b2lkIHRk
Yl91bmxvY2thbGwoVERCX0NPTlRFWFQgKnRkYik7CgoKaW50IHRkYl9jaGFpbmxvY2soVERCX0NP
TlRFWFQgKnRkYiwgVERCX0RBVEEga2V5KTsKdm9pZCB0ZGJfY2hhaW51bmxvY2soVERCX0NPTlRF
WFQgKnRkYiwgVERCX0RBVEEga2V5KTsKCgp2b2lkIHRkYl9kdW1wX2FsbChUREJfQ09OVEVYVCAq
dGRiKTsKdm9pZCB0ZGJfcHJpbnRmcmVlbGlzdChUREJfQ09OVEVYVCAqdGRiKTsKCmV4dGVybiBU
REJfREFUQSB0ZGJfbnVsbDsKIyA2NzggImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDEgInRkYi9z
cGlubG9jay5oIiAxCiMgNDggInRkYi9zcGlubG9jay5oIgppbnQgdGRiX3NwaW5sb2NrKFREQl9D
T05URVhUICp0ZGIsIGludCBsaXN0LCBpbnQgcndfdHlwZSk7CmludCB0ZGJfc3BpbnVubG9jayhU
REJfQ09OVEVYVCAqdGRiLCBpbnQgbGlzdCwgaW50IHJ3X3R5cGUpOwppbnQgdGRiX2NyZWF0ZV9y
d2xvY2tzKGludCBmZCwgdW5zaWduZWQgaW50IGhhc2hfc2l6ZSk7CgppbnQgdGRiX2NsZWFyX3Nw
aW5sb2NrcyhUREJfQ09OVEVYVCAqdGRiKTsKIyA2NzkgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgoj
IDEgImluY2x1ZGUvdGFsbG9jLmgiIDEKIyAzNCAiaW5jbHVkZS90YWxsb2MuaCIKdHlwZWRlZiBz
dHJ1Y3QgdGFsbG9jX2N0eCBUQUxMT0NfQ1RYOwoKVEFMTE9DX0NUWCAqdGFsbG9jX2luaXRfbmFt
ZWQoY2hhciBjb25zdCAqZm10LCAuLi4pIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKF9fcHJpbnRm
X18sIDEsIDIpKSk7CgpjaGFyICp0YWxsb2NfdmFzcHJpbnRmKFRBTExPQ19DVFggKnQsIGNvbnN0
IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkKICAgICAgICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChf
X3ByaW50Zl9fLCAyLCAwKSkpOwoKY2hhciAqdGFsbG9jX2FzcHJpbnRmKFRBTExPQ19DVFggKnQs
IGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgICAgIF9fYXR0cmlidXRlX18gKChmb3JtYXQgKF9f
cHJpbnRmX18sIDIsIDMpKSk7CiMgNjgwICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyAxICJpbmNs
dWRlL2Fkcy5oIiAxCgoKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB2b2lkICpsZDsKICAg
ICAgICBjaGFyICpyZWFsbTsKICAgICAgICBjaGFyICpsZGFwX3NlcnZlcjsKICAgICAgICBjaGFy
ICpsZGFwX3NlcnZlcl9uYW1lOwogICAgICAgIGNoYXIgKmtkY19zZXJ2ZXI7CiAgICAgICAgaW50
IGxkYXBfcG9ydDsKICAgICAgICBjaGFyICpiaW5kX3BhdGg7CiAgICAgICAgdGltZV90IGxhc3Rf
YXR0ZW1wdDsKICAgICAgICBjaGFyICpwYXNzd29yZDsKICAgICAgICBjaGFyICp1c2VyX25hbWU7
CiAgICAgICAgY2hhciAqc2VydmVyX3JlYWxtOwp9IEFEU19TVFJVQ1Q7CgoKZW51bSBhZHNfZXJy
b3JfdHlwZSB7QURTX0VSUk9SX0tSQjUsIEFEU19FUlJPUl9HU1MsCiAgICAgICAgICAgICAgICAg
ICAgIEFEU19FUlJPUl9MREFQLCBBRFNfRVJST1JfU1lTVEVNfTsKCnR5cGVkZWYgc3RydWN0IHsK
ICAgICAgICBlbnVtIGFkc19lcnJvcl90eXBlIGVycm9yX3R5cGU7CiAgICAgICAgaW50IHJjOwoK
CiAgICAgICAgaW50IG1pbm9yX3N0YXR1czsKfSBBRFNfU1RBVFVTOwojIDY4MSAiaW5jbHVkZS9p
bmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9pbnRlcmZhY2VzLmgiIDEKCgoKCgoKCnN0cnVjdCBp
ZmFjZV9zdHJ1Y3QgewogICAgICAgIGNoYXIgbmFtZVsxNl07CiAgICAgICAgc3RydWN0IGluX2Fk
ZHIgaXA7CiAgICAgICAgc3RydWN0IGluX2FkZHIgbmV0bWFzazsKfTsKIyA2ODIgImluY2x1ZGUv
aW5jbHVkZXMuaCIgMgojIDEgImluY2x1ZGUvaGFzaC5oIiAxCiMgMjggImluY2x1ZGUvaGFzaC5o
Igp0eXBlZGVmIGludCAoKmNvbXBhcmVfZnVuY3Rpb24pKGNoYXIgKiwgY2hhciAqKTsKdHlwZWRl
ZiBpbnQgKCpoYXNoX2Z1bmN0aW9uKShpbnQsIGNoYXIgKik7CgoKCgoKdHlwZWRlZiBzdHJ1Y3Qg
bHJ1X25vZGUgewogICAgICAgIHViaV9kbE5vZGUgbHJ1X2xpbms7CiAgICAgICAgdm9pZCAqaGFz
aF9lbGVtOwp9IGxydV9ub2RlOwojIDUxICJpbmNsdWRlL2hhc2guaCIKdHlwZWRlZiBzdHJ1Y3Qg
aGFzaF9lbGVtZW50IHsKICAgICAgICB1YmlfZGxOb2RlIGJ1Y2tldF9saW5rOwogICAgICAgIGxy
dV9ub2RlIGxydV9saW5rOwogICAgICAgIHViaV9kbExpc3QgKmJ1Y2tldDsKICAgICAgICB2b2lk
ICp2YWx1ZTsKICAgICAgICBjaGFyIGtleVsxXTsKfSBoYXNoX2VsZW1lbnQ7CiMgNjcgImluY2x1
ZGUvaGFzaC5oIgp0eXBlZGVmIHN0cnVjdCBoYXNoX3RhYmxlIHsKICAgICAgICB1YmlfZGxMaXN0
ICpidWNrZXRzOwogICAgICAgIHViaV9kbExpc3QgbHJ1X2NoYWluOwogICAgICAgIGludCBudW1f
ZWxlbWVudHM7CiAgICAgICAgaW50IHNpemU7CiAgICAgICAgY29tcGFyZV9mdW5jdGlvbiBjb21w
X2Z1bmM7Cn0gaGFzaF90YWJsZTsKIyA2ODMgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDEgImlu
Y2x1ZGUvdHJhbnMyLmgiIDEKIyA2ODQgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDEgImluY2x1
ZGUvbnRlcnIuaCIgMQojIDY4NSAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9z
ZWNyZXRzLmgiIDEKIyAzNSAiaW5jbHVkZS9zZWNyZXRzLmgiCnN0cnVjdCBtYWNoaW5lX2FjY3Rf
cGFzcyB7CiAgICAgICAgdW5zaWduZWQgY2hhciBoYXNoWzE2XTsKICAgICAgICB0aW1lX3QgbW9k
X3RpbWU7Cn07CiMgNjg2ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKIyAxICJpbmNsdWRlL21lc3Nh
Z2VzLmgiIDEKIyA2ODcgImluY2x1ZGUvaW5jbHVkZXMuaCIgMgojIDEgImluY2x1ZGUvdXRpbF9s
aXN0LmgiIDEKIyAyOCAiaW5jbHVkZS91dGlsX2xpc3QuaCIKIyAxICJpbmNsdWRlL3NtYi5oIiAx
CiMgNDEgImluY2x1ZGUvc21iLmgiCnR5cGVkZWYgaW50IEJPT0w7CiMgNjUgImluY2x1ZGUvc21i
LmgiCiMgMSAiaW5jbHVkZS9kZWJ1Zy5oIiAxCiMgNDAgImluY2x1ZGUvZGVidWcuaCIKaW50IERl
YnVnMSggY2hhciAqLCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9fLCAx
LCAyKSkpOwpCT09MIGRiZ3RleHQoIGNoYXIgKiwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGZvcm1h
dCAoX19wcmludGZfXywgMSwgMikpKTsKCmV4dGVybiBYRklMRSAqZGJmOwojIDk0ICJpbmNsdWRl
L2RlYnVnLmgiCmV4dGVybiBpbnQgREVCVUdMRVZFTF9DTEFTU1s4XTsKZXh0ZXJuIEJPT0wgREVC
VUdMRVZFTF9DTEFTU19JU1NFVFs4XTsKCnN0cnVjdCBkZWJ1Z2xldmVsX21lc3NhZ2UgewogICAg
ICAgIGludCBkZWJ1Z2xldmVsX2NsYXNzWzhdOwogICAgICAgIEJPT0wgZGVidWdsZXZlbF9jbGFz
c19pc3NldFs4XTsKfTsKIyA2NiAiaW5jbHVkZS9zbWIuaCIgMgojIDE1NSAiaW5jbHVkZS9zbWIu
aCIKIyAxICJpbmNsdWRlL2Rvc2Vyci5oIiAxCiMgMTU2ICJpbmNsdWRlL3NtYi5oIiAyCgoKCgoK
CnR5cGVkZWYgY2hhciBwc3RyaW5nWzEwMjRdOwp0eXBlZGVmIGNoYXIgZnN0cmluZ1syNTZdOwoj
IDE3MyAiaW5jbHVkZS9zbWIuaCIKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBzbWJfdWNzMl90OwoK
CnR5cGVkZWYgc21iX3VjczJfdCB3cHN0cmluZ1sxMDI0XTsKdHlwZWRlZiBzbWJfdWNzMl90IHdm
c3RyaW5nWzI1Nl07CiMgMjA0ICJpbmNsdWRlL3NtYi5oIgp0eXBlZGVmIHN0cnVjdCBudHRpbWVf
aW5mbwp7CiAgdW5zaWduZWQgaW50IGxvdzsKICB1bnNpZ25lZCBpbnQgaGlnaDsKfSBOVFRJTUU7
CiMgMjE3ICJpbmNsdWRlL3NtYi5oIgp0eXBlZGVmIHN0cnVjdCB7dW5zaWduZWQgaW50IHY7fSBO
VFNUQVRVUzsKIyAyMjcgImluY2x1ZGUvc21iLmgiCnR5cGVkZWYgc3RydWN0IHt1bnNpZ25lZCBp
bnQgdjt9IFdFUlJPUjsKIyAyNTcgImluY2x1ZGUvc21iLmgiCnR5cGVkZWYgc3RydWN0CnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcGlkOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHZ1aWQ7Cgp9CnZ1
c2VyX2tleTsKCgpzdHJ1Y3QgdXNlX2luZm8KewogICAgICAgIEJPT0wgY29ubmVjdGVkOwogICAg
ICAgIGNoYXIgKnNydl9uYW1lOwogICAgICAgIHZ1c2VyX2tleSBrZXk7CiAgICAgICAgY2hhciAq
dXNlcl9uYW1lOwogICAgICAgIGNoYXIgKmRvbWFpbjsKfTsKIyAyODUgImluY2x1ZGUvc21iLmgi
CnR5cGVkZWYgc3RydWN0IHNpZF9pbmZvCnsKICB1bnNpZ25lZCBjaGFyIHNpZF9yZXZfbnVtOwog
IHVuc2lnbmVkIGNoYXIgbnVtX2F1dGhzOwogIHVuc2lnbmVkIGNoYXIgaWRfYXV0aFs2XTsKCgoK
CgoKICB1bnNpZ25lZCBpbnQgc3ViX2F1dGhzWzE1XTsKCn0gRE9NX1NJRDsKIyAzMTYgImluY2x1
ZGUvc21iLmgiCnR5cGVkZWYgc3RydWN0IF9udF91c2VyX3Rva2VuIHsKICAgICAgICBzaXplX3Qg
bnVtX3NpZHM7CiAgICAgICAgRE9NX1NJRCAqdXNlcl9zaWRzOwp9IE5UX1VTRVJfVE9LRU47CgoK
CgoKCnR5cGVkZWYgc3RydWN0IGxvY2FsX2dycF9tZW1iZXJfaW5mbwp7CiAgICAgICAgRE9NX1NJ
RCBzaWQgOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc2lkX3VzZTsKICAgICAgICBmc3RyaW5nIG5h
bWUgOwoKfSBMT0NBTF9HUlBfTUVNQkVSOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgbG9jYWxfZ3JwX2lu
Zm8KewogICAgICAgIGZzdHJpbmcgbmFtZTsKICAgICAgICBmc3RyaW5nIGNvbW1lbnQ7Cgp9IExP
Q0FMX0dSUDsKCgoKCnR5cGVkZWYgc3RydWN0IGRvbWFpbl9ncnBfaW5mbwp7CiAgICAgICAgZnN0
cmluZyBuYW1lOwogICAgICAgIGZzdHJpbmcgY29tbWVudDsKICAgICAgICB1bnNpZ25lZCBpbnQg
cmlkOwogICAgICAgIHVuc2lnbmVkIGNoYXIgYXR0cjsKCn0gRE9NQUlOX0dSUDsKCgoKCnR5cGVk
ZWYgc3RydWN0IGRvbWFpbl9ncnBfbWVtYmVyX2luZm8KewogICAgICAgIGZzdHJpbmcgbmFtZTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIGF0dHI7Cgp9IERPTUFJTl9HUlBfTUVNQkVSOwoKCnR5cGVk
ZWYgc3RydWN0IHRpbWVfaW5mbwp7CiAgdW5zaWduZWQgaW50IHRpbWU7Cn0gVVRJTUU7CgoKdHlw
ZWRlZiBzdHJ1Y3QKewogIHNpemVfdCB3cl90b3RhbF93cml0dGVuOwogIGludCB3cl90aW1lb3V0
OwogIGludCB3cl9lcnJjbGFzczsKICBpbnQgd3JfZXJyb3I7CiAgQk9PTCB3cl9tb2RlOwogIEJP
T0wgd3JfZGlzY2FyZDsKfSB3cml0ZV9ibXB4X3N0cnVjdDsKCnR5cGVkZWYgc3RydWN0IHdyaXRl
X2NhY2hlCnsKICAgIG9mZl90IGZpbGVfc2l6ZTsKICAgIG9mZl90IG9mZnNldDsKICAgIHNpemVf
dCBhbGxvY19zaXplOwogICAgc2l6ZV90IGRhdGFfc2l6ZTsKICAgIGNoYXIgKmRhdGE7Cn0gd3Jp
dGVfY2FjaGU7Cgp0eXBlZGVmIHN0cnVjdAp7CiAgICAgICAgc21iX3VjczJfdCAqcGF0aDsKICAg
ICAgICBzbWJfdWNzMl90ICpuYW1lOwogICAgICAgIHNtYl91Y3MyX3QgKnVuaXhuYW1lOwogICAg
ICAgIHNtYl91Y3MyX3QgKmRvc25hbWU7CiAgICAgICAgc3RydWN0IHN0YXQgKnN0YXRpbmZvOwp9
IHNtYl9maWxlbmFtZTsKCgp0eXBlZGVmIHN0cnVjdCBmaWxlc19zdHJ1Y3QKewogICAgICAgIHN0
cnVjdCBmaWxlc19zdHJ1Y3QgKm5leHQsICpwcmV2OwogICAgICAgIGludCBmbnVtOwogICAgICAg
IHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubjsKICAgICAgICBpbnQgZmQ7CiAgICAgICAg
aW50IHByaW50X2pvYmlkOwogICAgICAgIGRldl90IGRldjsKICAgICAgICBpbm9fdCBpbm9kZTsK
ICAgICAgICBCT09MIGRlbGV0ZV9vbl9jbG9zZTsKICAgICAgICBvZmZfdCBwb3M7CiAgICAgICAg
b2ZmX3Qgc2l6ZTsKICAgICAgICBtb2RlX3QgbW9kZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB2
dWlkOwogICAgICAgIHdyaXRlX2JtcHhfc3RydWN0ICp3Ym1weF9wdHI7CiAgICAgICAgd3JpdGVf
Y2FjaGUgKndjcDsKICAgICAgICBzdHJ1Y3QgdGltZXZhbCBvcGVuX3RpbWU7CiAgICAgICAgaW50
IHNoYXJlX21vZGU7CiAgICAgICAgdGltZV90IHBlbmRpbmdfbW9kdGltZTsKICAgICAgICBpbnQg
b3Bsb2NrX3R5cGU7CiAgICAgICAgaW50IHNlbnRfb3Bsb2NrX2JyZWFrOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgZmlsZV9pZDsKICAgICAgICBCT09MIGNhbl9sb2NrOwogICAgICAgIEJPT0wgY2Fu
X3JlYWQ7CiAgICAgICAgQk9PTCBjYW5fd3JpdGU7CiAgICAgICAgQk9PTCBwcmludF9maWxlOwog
ICAgICAgIEJPT0wgbW9kaWZpZWQ7CiAgICAgICAgQk9PTCBpc19kaXJlY3Rvcnk7CiAgICAgICAg
Qk9PTCBkaXJlY3RvcnlfZGVsZXRlX29uX2Nsb3NlOwogICAgICAgIEJPT0wgc3RhdF9vcGVuOwog
ICAgICAgIGNoYXIgKmZzcF9uYW1lOwp9IGZpbGVzX3N0cnVjdDsKCgoKCgoKdHlwZWRlZiBzdHJ1
Y3QKewogIHRpbWVfdCBtb2RpZnlfdGltZTsKICB0aW1lX3Qgc3RhdHVzX3RpbWU7Cn0gZGlyX3N0
YXR1c19zdHJ1Y3Q7CgpzdHJ1Y3QgdWlkX2NhY2hlIHsKICBpbnQgZW50cmllczsKICB1aWRfdCBs
aXN0WzRdOwp9OwoKdHlwZWRlZiBzdHJ1Y3QKewogIGNoYXIgKm5hbWU7CiAgQk9PTCBpc193aWxk
Owp9IG5hbWVfY29tcGFyZV9lbnRyeTsKCgoKIyAxICJpbmNsdWRlL3Zmcy5oIiAxCiMgNDYgImlu
Y2x1ZGUvdmZzLmgiCnN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdDsKc3RydWN0IGZpbGVzX3N0cnVj
dDsKc3RydWN0IHNlY3VyaXR5X2Rlc2NyaXB0b3JfaW5mbzsKCnN0cnVjdCB2ZnNfb3BzIHsKCgoK
ICAgIGludCAoKmNvbm5lY3QpKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3Qg
Y2hhciAqc2VydmljZSwgY29uc3QgY2hhciAqdXNlcik7CiAgICB2b2lkICgqZGlzY29ubmVjdCko
c3RydWN0IGNvbm5lY3Rpb25fc3RydWN0ICpjb25uKTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAo
KmRpc2tfZnJlZSkoc3RydWN0IGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpw
YXRoLCBCT09MIHNtYWxsX3F1ZXJ5LCB1bnNpZ25lZCBsb25nIGxvbmcgKmJzaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKmRmcmVlLCB1bnNpZ25l
ZCBsb25nIGxvbmcgKmRzaXplKTsKCgoKICAgIERJUiAqKCpvcGVuZGlyKShzdHJ1Y3QgY29ubmVj
dGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKmZuYW1lKTsKICAgIHN0cnVjdCBkaXJlbnQg
KigqcmVhZGRpcikoc3RydWN0IGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBESVIgKmRpcnApOwog
ICAgaW50ICgqbWtkaXIpKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hh
ciAqcGF0aCwgbW9kZV90IG1vZGUpOwogICAgaW50ICgqcm1kaXIpKHN0cnVjdCBjb25uZWN0aW9u
X3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCk7CiAgICBpbnQgKCpjbG9zZWRpcikoc3Ry
dWN0IGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBESVIgKmRpcik7CgoKCiAgICBpbnQgKCpvcGVu
KShzdHJ1Y3QgY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKmZuYW1lLCBpbnQg
ZmxhZ3MsIG1vZGVfdCBtb2RlKTsKICAgIGludCAoKmNsb3NlKShzdHJ1Y3QgZmlsZXNfc3RydWN0
ICpmc3AsIGludCBmZCk7CiAgICBzc2l6ZV90ICgqcmVhZCkoc3RydWN0IGZpbGVzX3N0cnVjdCAq
ZnNwLCBpbnQgZmQsIHZvaWQgKmRhdGEsIHNpemVfdCBuKTsKICAgIHNzaXplX3QgKCp3cml0ZSko
c3RydWN0IGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVf
dCBuKTsKICAgIG9mZl90ICgqbHNlZWspKHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZzcCwgaW50IGZp
bGVkZXMsIG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSk7CiAgICBpbnQgKCpyZW5hbWUpKHN0cnVj
dCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqb2xkLCBjb25zdCBjaGFyICpu
ZXcpOwogICAgaW50ICgqZnN5bmMpKHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZzcCwgaW50IGZkKTsK
ICAgIGludCAoKnN0YXQpKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hh
ciAqZm5hbWUsIHN0cnVjdCBzdGF0ICpzYnVmKTsKICAgIGludCAoKmZzdGF0KShzdHJ1Y3QgZmls
ZXNfc3RydWN0ICpmc3AsIGludCBmZCwgc3RydWN0IHN0YXQgKnNidWYpOwogICAgaW50ICgqbHN0
YXQpKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgc3Ry
dWN0IHN0YXQgKnNidWYpOwogICAgaW50ICgqdW5saW5rKShzdHJ1Y3QgY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKnBhdGgpOwogICAgaW50ICgqY2htb2QpKHN0cnVjdCBjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgbW9kZV90IG1vZGUpOwogICAg
aW50ICgqZmNobW9kKShzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgbW9kZV90IG1v
ZGUpOwogICAgICAgIGludCAoKmNob3duKShzdHJ1Y3QgY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4s
IGNvbnN0IGNoYXIgKnBhdGgsIHVpZF90IHVpZCwgZ2lkX3QgZ2lkKTsKICAgICAgICBpbnQgKCpm
Y2hvd24pKHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZzcCwgaW50IGZkLCB1aWRfdCB1aWQsIGdpZF90
IGdpZCk7CiAgICAgICAgaW50ICgqY2hkaXIpKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29u
biwgY29uc3QgY2hhciAqcGF0aCk7CiAgICAgICAgY2hhciAqKCpnZXR3ZCkoc3RydWN0IGNvbm5l
Y3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICpidWYpOwogICAgICAgIGludCAoKnV0aW1lKShzdHJ1
Y3QgY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCB1dGlt
YnVmICp0aW1lcyk7CiAgICAgICAgaW50ICgqZnRydW5jYXRlKShzdHJ1Y3QgZmlsZXNfc3RydWN0
ICpmc3AsIGludCBmZCwgb2ZmX3Qgb2Zmc2V0KTsKICAgICAgICBCT09MICgqbG9jaykoc3RydWN0
IGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQsIGludCBvcCwgb2ZmX3Qgb2Zmc2V0LCBvZmZfdCBj
b3VudCwgaW50IHR5cGUpOwogICAgICAgIGludCAoKnN5bWxpbmspKHN0cnVjdCBjb25uZWN0aW9u
X3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqb2xkcGF0aCwgY29uc3QgY2hhciAqbmV3cGF0aCk7
CiAgICAgICAgaW50ICgqcmVhZGxpbmspKHN0cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwg
Y29uc3QgY2hhciAqcGF0aCwgY2hhciAqYnVmLCBzaXplX3QgYnVmc2l6KTsKCgoKICAgICAgICBz
aXplX3QgKCpmZ2V0X250X2FjbCkoc3RydWN0IGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQsIHN0
cnVjdCBzZWN1cml0eV9kZXNjcmlwdG9yX2luZm8gKipwcGRlc2MpOwogICAgICAgIHNpemVfdCAo
KmdldF9udF9hY2wpKHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZzcCwgY29uc3QgY2hhciAqbmFtZSwg
c3RydWN0IHNlY3VyaXR5X2Rlc2NyaXB0b3JfaW5mbyAqKnBwZGVzYyk7CiAgICAgICAgQk9PTCAo
KmZzZXRfbnRfYWNsKShzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgdW5zaWduZWQg
aW50IHNlY3VyaXR5X2luZm9fc2VudCwgc3RydWN0IHNlY3VyaXR5X2Rlc2NyaXB0b3JfaW5mbyAq
cHNkKTsKICAgICAgICBCT09MICgqc2V0X250X2FjbCkoc3RydWN0IGZpbGVzX3N0cnVjdCAqZnNw
LCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgc2VjdXJpdHlfaW5mb19zZW50LCBzdHJ1
Y3Qgc2VjdXJpdHlfZGVzY3JpcHRvcl9pbmZvICpwc2QpOwoKCgogICAgICAgIGludCAoKmNobW9k
X2FjbCkoc3RydWN0IGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpuYW1lLCBt
b2RlX3QgbW9kZSk7CiAgICAgICAgaW50ICgqZmNobW9kX2FjbCkoc3RydWN0IGZpbGVzX3N0cnVj
dCAqZnNwLCBpbnQgZmQsIG1vZGVfdCBtb2RlKTsKCn07CgpzdHJ1Y3QgdmZzX29wdGlvbnMgewog
ICAgc3RydWN0IHZmc19vcHRpb25zICpwcmV2LCAqbmV4dDsKICAgIGNoYXIgKm5hbWU7CiAgICBj
aGFyICp2YWx1ZTsKfTsKIyA0NjAgImluY2x1ZGUvc21iLmgiIDIKCnR5cGVkZWYgc3RydWN0IGNv
bm5lY3Rpb25fc3RydWN0CnsKICAgICAgICBzdHJ1Y3QgY29ubmVjdGlvbl9zdHJ1Y3QgKm5leHQs
ICpwcmV2OwogICAgICAgIHVuc2lnbmVkIGNudW07CiAgICAgICAgaW50IHNlcnZpY2U7CiAgICAg
ICAgQk9PTCBmb3JjZV91c2VyOwogICAgICAgIHN0cnVjdCB1aWRfY2FjaGUgdWlkX2NhY2hlOwog
ICAgICAgIHZvaWQgKmRpcnB0cjsKICAgICAgICBCT09MIHByaW50ZXI7CiAgICAgICAgQk9PTCBp
cGM7CiAgICAgICAgQk9PTCByZWFkX29ubHk7CiAgICAgICAgQk9PTCBhZG1pbl91c2VyOwogICAg
ICAgIGNoYXIgKmRpcnBhdGg7CiAgICAgICAgY2hhciAqY29ubmVjdHBhdGg7CiAgICAgICAgY2hh
ciAqb3JpZ3BhdGg7CgogICAgICAgIHN0cnVjdCB2ZnNfb3BzIHZmc19vcHM7CgogICAgICAgIHZv
aWQgKmRsX2hhbmRsZTsKCiAgICAgICAgY2hhciAqdXNlcjsKICAgICAgICB1aWRfdCB1aWQ7CiAg
ICAgICAgZ2lkX3QgZ2lkOwogICAgICAgIGNoYXIgY2xpZW50X2FkZHJlc3NbMThdOwoKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB2dWlkOwoKCgoKICAgICAgICBpbnQgbmdyb3VwczsKICAgICAgICBn
aWRfdCAqZ3JvdXBzOwogICAgICAgIE5UX1VTRVJfVE9LRU4gKm50X3VzZXJfdG9rZW47CgogICAg
ICAgIHRpbWVfdCBsYXN0dXNlZDsKICAgICAgICBCT09MIHVzZWQ7CiAgICAgICAgaW50IG51bV9m
aWxlc19vcGVuOwogICAgICAgIG5hbWVfY29tcGFyZV9lbnRyeSAqaGlkZV9saXN0OwogICAgICAg
IG5hbWVfY29tcGFyZV9lbnRyeSAqdmV0b19saXN0OwogICAgICAgIG5hbWVfY29tcGFyZV9lbnRy
eSAqdmV0b19vcGxvY2tfbGlzdDsKCn0gY29ubmVjdGlvbl9zdHJ1Y3Q7CgpzdHJ1Y3QgY3VycmVu
dF91c2VyCnsKICAgICAgICBjb25uZWN0aW9uX3N0cnVjdCAqY29ubjsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCB2dWlkOwogICAgICAgIHVpZF90IHVpZDsKICAgICAgICBnaWRfdCBnaWQ7CiAgICAg
ICAgaW50IG5ncm91cHM7CiAgICAgICAgZ2lkX3QgKmdyb3VwczsKICAgICAgICBOVF9VU0VSX1RP
S0VOICpudF91c2VyX3Rva2VuOwp9OwoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZnN0
cmluZyBzbWJfbmFtZTsKICAgICAgICBmc3RyaW5nIHVuaXhfbmFtZTsKICAgICAgICBmc3RyaW5n
IGZ1bGxfbmFtZTsKICAgICAgICBmc3RyaW5nIGRvbWFpbjsKfSB1c2VyZG9tX3N0cnVjdDsKCgoK
ZW51bSB7TFBRX1FVRVVFRD0wLExQUV9QQVVTRUQsTFBRX1NQT09MSU5HLExQUV9QUklOVElORyxM
UFFfRVJST1IsTFBRX0RFTEVUSU5HLAogICAgICBMUFFfT0ZGTElORSxMUFFfUEFQRVJPVVQsTFBR
X1BSSU5URUQsTFBRX0RFTEVURUQsTFBRX0JMT0NLRUQsTFBRX1VTRVJfSU5URVJWRU5USU9OfTsK
CnR5cGVkZWYgc3RydWN0IF9wcmludF9xdWV1ZV9zdHJ1Y3QKewogIGludCBqb2I7CiAgaW50IHNp
emU7CiAgaW50IHN0YXR1czsKICBpbnQgcHJpb3JpdHk7CiAgdGltZV90IHRpbWU7CiAgZnN0cmlu
ZyB1c2VyOwogIGZzdHJpbmcgZmlsZTsKfSBwcmludF9xdWV1ZV9zdHJ1Y3Q7CgplbnVtIHtMUFNU
QVRfT0ssIExQU1RBVF9TVE9QUEVELCBMUFNUQVRfRVJST1J9OwoKdHlwZWRlZiBzdHJ1Y3QKewog
IGZzdHJpbmcgbWVzc2FnZTsKICBpbnQgcWNvdW50OwogIGludCBzdGF0dXM7Cn0gcHJpbnRfc3Rh
dHVzX3N0cnVjdDsKCgpzdHJ1Y3Qgc2VydmVyX2luZm9fc3RydWN0CnsKICBmc3RyaW5nIG5hbWU7
CiAgdW5zaWduZWQgaW50IHR5cGU7CiAgZnN0cmluZyBjb21tZW50OwogIGZzdHJpbmcgZG9tYWlu
OwogIEJPT0wgc2VydmVyX2FkZGVkOwp9OwoKCgpzdHJ1Y3QgaW50ZXJmYWNlCnsKICAgICAgICBz
dHJ1Y3QgaW50ZXJmYWNlICpuZXh0LCAqcHJldjsKICAgICAgICBzdHJ1Y3QgaW5fYWRkciBpcDsK
ICAgICAgICBzdHJ1Y3QgaW5fYWRkciBiY2FzdDsKICAgICAgICBzdHJ1Y3QgaW5fYWRkciBubWFz
azsKfTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgcGlkX3QgcGlkOwogICAgICAgIHVuc2ln
bmVkIHNob3J0IG9wX3BvcnQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgb3BfdHlwZTsKICAgICAg
ICBpbnQgc2hhcmVfbW9kZTsKICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1lOwogICAgICAgIGRl
dl90IGRldjsKICAgICAgICBpbm9fdCBpbm9kZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNoYXJl
X2ZpbGVfaWQ7Cn0gc2hhcmVfbW9kZV9lbnRyeTsKIyA2MDcgImluY2x1ZGUvc21iLmgiCnR5cGVk
ZWYgc3RydWN0IHNhbV9wYXNzd2QKewoKICAgICAgICB1bnNpZ25lZCBpbnQgaW5pdF9mbGFnOwoK
ICAgICAgICB0aW1lX3QgbG9nb25fdGltZTsKICAgICAgICB0aW1lX3QgbG9nb2ZmX3RpbWU7CiAg
ICAgICAgdGltZV90IGtpY2tvZmZfdGltZTsKICAgICAgICB0aW1lX3QgcGFzc19sYXN0X3NldF90
aW1lOwogICAgICAgIHRpbWVfdCBwYXNzX2Nhbl9jaGFuZ2VfdGltZTsKICAgICAgICB0aW1lX3Qg
cGFzc19tdXN0X2NoYW5nZV90aW1lOwoKICAgICAgICBwc3RyaW5nIHVzZXJuYW1lOwogICAgICAg
IHBzdHJpbmcgZG9tYWluOwogICAgICAgIHBzdHJpbmcgbnRfdXNlcm5hbWU7CiAgICAgICAgcHN0
cmluZyBmdWxsX25hbWU7CiAgICAgICAgcHN0cmluZyBob21lX2RpcjsKICAgICAgICBwc3RyaW5n
IGRpcl9kcml2ZTsKICAgICAgICBwc3RyaW5nIGxvZ29uX3NjcmlwdDsKICAgICAgICBwc3RyaW5n
IHByb2ZpbGVfcGF0aDsKICAgICAgICBwc3RyaW5nIGFjY3RfZGVzYyA7CiAgICAgICAgcHN0cmlu
ZyB3b3Jrc3RhdGlvbnM7CiAgICAgICAgcHN0cmluZyB1bmtub3duX3N0ciA7CiAgICAgICAgcHN0
cmluZyBtdW5nZWRfZGlhbCA7CgogICAgICAgIHVpZF90IHVpZDsKICAgICAgICBnaWRfdCBnaWQ7
CiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfcmlkOwogICAgICAgIHVuc2lnbmVkIGludCBncm91
cF9yaWQ7CgogICAgICAgIHVuc2lnbmVkIGNoYXIgKmxtX3B3OwogICAgICAgIHVuc2lnbmVkIGNo
YXIgKm50X3B3OwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCBhY2N0X2N0cmw7CiAgICAgICAgdW5z
aWduZWQgaW50IHVua25vd25fMzsKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgbG9nb25fZGl2czsK
ICAgICAgICB1bnNpZ25lZCBpbnQgaG91cnNfbGVuOwogICAgICAgIHVuc2lnbmVkIGNoYXIgaG91
cnNbMzJdOwoKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl81OwogICAgICAgIHVuc2lnbmVk
IGludCB1bmtub3duXzY7Cgp9IFNBTV9BQ0NPVU5UOwojIDY4MSAiaW5jbHVkZS9zbWIuaCIKc3Ry
dWN0IGNvbm5lY3Rpb25zX2tleSB7CiAgICAgICAgcGlkX3QgcGlkOwogICAgICAgIGludCBjbnVt
OwogICAgICAgIGZzdHJpbmcgbmFtZTsKfTsKCnN0cnVjdCBjb25uZWN0aW9uc19kYXRhIHsKICAg
ICAgICBpbnQgbWFnaWM7CiAgICAgICAgcGlkX3QgcGlkOwogICAgICAgIGludCBjbnVtOwogICAg
ICAgIHVpZF90IHVpZDsKICAgICAgICBnaWRfdCBnaWQ7CiAgICAgICAgY2hhciBuYW1lWzI0XTsK
ICAgICAgICBjaGFyIGFkZHJbMjRdOwogICAgICAgIGNoYXIgbWFjaGluZVsyNTZdOwogICAgICAg
IHRpbWVfdCBzdGFydDsKfTsKCgoKc3RydWN0IGxvY2tpbmdfa2V5IHsKICAgICAgICBkZXZfdCBk
ZXY7CiAgICAgICAgaW5vX3QgaW5vZGU7Cn07CgpzdHJ1Y3QgbG9ja2luZ19kYXRhIHsKICAgICAg
ICB1bmlvbiB7CiAgICAgICAgICAgICAgICBpbnQgbnVtX3NoYXJlX21vZGVfZW50cmllczsKICAg
ICAgICAgICAgICAgIHNoYXJlX21vZGVfZW50cnkgZHVtbXk7CiAgICAgICAgfSB1OwoKCgoKfTsK
CgoKdHlwZWRlZiBlbnVtCnsKICBQX0JPT0wsUF9CT09MUkVWLFBfQ0hBUixQX0lOVEVHRVIsUF9P
Q1RBTCxQX0xJU1QsCiAgUF9TVFJJTkcsUF9VU1RSSU5HLFBfR1NUUklORyxQX1VHU1RSSU5HLFBf
RU5VTSxQX1NFUAp9IHBhcm1fdHlwZTsKCnR5cGVkZWYgZW51bQp7CiAgUF9MT0NBTCxQX0dMT0JB
TCxQX1NFUEFSQVRPUixQX05PTkUKfSBwYXJtX2NsYXNzOwoKCmVudW0gYnJsX3R5cGUge1JFQURf
TE9DSywgV1JJVEVfTE9DS307CgpzdHJ1Y3QgZW51bV9saXN0IHsKICAgICAgICBpbnQgdmFsdWU7
CiAgICAgICAgY2hhciAqbmFtZTsKfTsKIyA3NDYgImluY2x1ZGUvc21iLmgiCnN0cnVjdCBwYXJt
X3N0cnVjdAp7CiAgICAgICAgY2hhciAqbGFiZWw7CiAgICAgICAgcGFybV90eXBlIHR5cGU7CiAg
ICAgICAgcGFybV9jbGFzcyBjbGFzczsKICAgICAgICB2b2lkICpwdHI7CiAgICAgICAgQk9PTCAo
KnNwZWNpYWwpKGNoYXIgKiwgY2hhciAqKik7CiAgICAgICAgc3RydWN0IGVudW1fbGlzdCAqZW51
bV9saXN0OwogICAgICAgIHVuc2lnbmVkIGZsYWdzOwogICAgICAgIHVuaW9uIHsKICAgICAgICAg
ICAgICAgIEJPT0wgYnZhbHVlOwogICAgICAgICAgICAgICAgaW50IGl2YWx1ZTsKICAgICAgICAg
ICAgICAgIGNoYXIgKnN2YWx1ZTsKICAgICAgICAgICAgICAgIGNoYXIgY3ZhbHVlOwogICAgICAg
ICAgICAgICAgY2hhciAqKmx2YWx1ZTsKICAgICAgICB9IGRlZjsKfTsKCnN0cnVjdCBiaXRtYXAg
ewogICAgICAgIHVuc2lnbmVkIGludCAqYjsKICAgICAgICBpbnQgbjsKfTsKIyAxMzE3ICJpbmNs
dWRlL3NtYi5oIgplbnVtIHByb3RvY29sX3R5cGVzIHtQUk9UT0NPTF9OT05FLFBST1RPQ09MX0NP
UkUsUFJPVE9DT0xfQ09SRVBMVVMsUFJPVE9DT0xfTEFOTUFOMSxQUk9UT0NPTF9MQU5NQU4yLFBS
T1RPQ09MX05UMX07CgoKZW51bSBzZWN1cml0eV90eXBlcyB7U0VDX1NIQVJFLFNFQ19VU0VSLFNF
Q19TRVJWRVIsU0VDX0RPTUFJTixTRUNfQURTfTsKCgplbnVtIHNlcnZlcl90eXBlcwp7CiAgICAg
ICAgUk9MRV9TVEFOREFMT05FLAogICAgICAgIFJPTEVfRE9NQUlOX01FTUJFUiwKICAgICAgICBS
T0xFX0RPTUFJTl9CREMsCiAgICAgICAgUk9MRV9ET01BSU5fUERDCn07CgoKZW51bSBwcmludGlu
Z190eXBlcyB7UFJJTlRfQlNELFBSSU5UX1NZU1YsUFJJTlRfQUlYLFBSSU5UX0hQVVgsCiAgICAg
ICAgICAgICAgICAgICAgIFBSSU5UX1FOWCxQUklOVF9QTFAsUFJJTlRfTFBSTkcsUFJJTlRfU09G
VFEsCiAgICAgICAgICAgICAgICAgICAgIFBSSU5UX0NVUFMsUFJJTlRfTFBSTlQsUFJJTlRfTFBS
T1MyCgoKCn07CgoKZW51bSBzY2hlbWFfdHlwZXMge1NDSEVNQV9DT01QQVQsIFNDSEVNQV9BRCwg
U0NIRU1BX1NBTUJBfTsKCgplbnVtIGxkYXBfc3NsX3R5cGVzIHtMREFQX1NTTF9PTiwgTERBUF9T
U0xfT0ZGLCBMREFQX1NTTF9TVEFSVF9UTFN9OwoKCmVudW0gcmVtb3RlX2FyY2hfdHlwZXMge1JB
X1VOS05PV04sIFJBX1dGV0csIFJBX09TMiwgUkFfV0lOOTUsIFJBX1dJTk5ULCBSQV9XSU4ySywg
UkFfU0FNQkF9OwoKCmVudW0gY2FzZV9oYW5kbGluZyB7Q0FTRV9MT1dFUixDQVNFX1VQUEVSfTsK
CgoKZW51bSBzc2xfdmVyc2lvbl9lbnVtIHtTTUJfU1NMX1YyLFNNQl9TU0xfVjMsU01CX1NTTF9W
MjMsU01CX1NTTF9UTFMxfTsKIyAxMzg1ICJpbmNsdWRlL3NtYi5oIgpleHRlcm4gaW50IGdsb2Jh
bF9pc19tdWx0aWJ5dGVfY29kZXBhZ2U7CiMgMTM5NyAiaW5jbHVkZS9zbWIuaCIKZXh0ZXJuIGlu
dCB1bml4X0VSUl9jbGFzczsKZXh0ZXJuIGludCB1bml4X0VSUl9jb2RlOwoKCgoKZXh0ZXJuIGlu
dCBjaGFpbl9zaXplOwojIDE1MTMgImluY2x1ZGUvc21iLmgiCnN0cnVjdCBrZXJuZWxfb3Bsb2Nr
cyB7CiAgICAgICAgQk9PTCAoKnJlY2VpdmVfbWVzc2FnZSkoZmRfc2V0ICpmZHMsIGNoYXIgKmJ1
ZmZlciwgaW50IGJ1ZmZlcl9sZW4pOwogICAgICAgIEJPT0wgKCpzZXRfb3Bsb2NrKShmaWxlc19z
dHJ1Y3QgKmZzcCwgaW50IG9wbG9ja190eXBlKTsKICAgICAgICB2b2lkICgqcmVsZWFzZV9vcGxv
Y2spKGZpbGVzX3N0cnVjdCAqZnNwKTsKICAgICAgICBCT09MICgqcGFyc2VfbWVzc2FnZSkoY2hh
ciAqbXNnX3N0YXJ0LCBpbnQgbXNnX2xlbiwgaW5vX3QgKmlub2RlLCBkZXZfdCAqZGV2LCB1bnNp
Z25lZCBsb25nICpmaWxlX2lkKTsKICAgICAgICBCT09MICgqbXNnX3dhaXRpbmcpKGZkX3NldCAq
ZmRzKTsKICAgICAgICBpbnQgbm90aWZpY2F0aW9uX2ZkOwp9OwoKCgoKCgpzdHJ1Y3QgY25vdGlm
eV9mbnMgewogICAgICAgIHZvaWQgKiAoKnJlZ2lzdGVyX25vdGlmeSkoY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNoYXIgKnBhdGgsIHVuc2lnbmVkIGludCBmbGFncyk7CiAgICAgICAgQk9PTCAo
KmNoZWNrX25vdGlmeSkoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIHVuc2lnbmVkIHNob3J0IHZ1
aWQsIGNoYXIgKnBhdGgsIHVuc2lnbmVkIGludCBmbGFncywgdm9pZCAqZGF0YSwgdGltZV90IHQp
OwogICAgICAgIHZvaWQgKCpyZW1vdmVfbm90aWZ5KSh2b2lkICpkYXRhKTsKICAgICAgICBpbnQg
c2VsZWN0X3RpbWU7Cn07CgoKCiMgMSAiaW5jbHVkZS9zbWJfbWFjcm9zLmgiIDEKIyAxNTM3ICJp
bmNsdWRlL3NtYi5oIiAyCgoKc3RydWN0IG5tYl9uYW1lIHsKICBjaGFyIG5hbWVbMTddOwogIGNo
YXIgc2NvcGVbNjRdOwogIHVuc2lnbmVkIGludCBuYW1lX3R5cGU7Cn07CgoKCnN0cnVjdCBub2Rl
X3N0YXR1cyB7CiAgICAgICAgY2hhciBuYW1lWzE2XTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHR5
cGU7CiAgICAgICAgdW5zaWduZWQgY2hhciBmbGFnczsKfTsKCgoKCgoKCnN0cnVjdCBwd2RfaW5m
bwp7CiAgICAgICAgQk9PTCBudWxsX3B3ZDsKICAgICAgICBCT09MIGNsZWFydGV4dDsKICAgICAg
ICBCT09MIGNyeXB0ZWQ7CgogICAgICAgIGZzdHJpbmcgcGFzc3dvcmQ7CgogICAgICAgIHVuc2ln
bmVkIGNoYXIgc21iX2xtX3B3ZFsxNl07CiAgICAgICAgdW5zaWduZWQgY2hhciBzbWJfbnRfcHdk
WzE2XTsKCiAgICAgICAgdW5zaWduZWQgY2hhciBzbWJfbG1fb3dmWzI0XTsKICAgICAgICB1bnNp
Z25lZCBjaGFyIHNtYl9udF9vd2ZbMTI4XTsKICAgICAgICBzaXplX3QgbnRfb3dmX2xlbjsKCiAg
ICAgICAgdW5zaWduZWQgY2hhciBsbV9jbGlfY2hhbFs4XTsKICAgICAgICB1bnNpZ25lZCBjaGFy
IG50X2NsaV9jaGFsWzEyOF07CiAgICAgICAgc2l6ZV90IG50X2NsaV9jaGFsX2xlbjsKCiAgICAg
ICAgdW5zaWduZWQgY2hhciBzZXNzX2tleVsxNl07Cn07CgoKCgoKc3RydWN0IG5jYWNuX25wCnsK
ICAgICAgICBmc3RyaW5nIHBpcGVfbmFtZTsKICAgICAgICBzdHJ1Y3QgY2xpX3N0YXRlICpzbWI7
CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZm51bTsKICAgICAgICBCT09MIGluaXRpYWxpc2VkOwp9
OwoKIyAxICJpbmNsdWRlL3JwY19jcmVkcy5oIiAxCiMgMjcgImluY2x1ZGUvcnBjX2NyZWRzLmgi
CnR5cGVkZWYgc3RydWN0IG50dXNlcl9jcmVkcwp7CiAgICAgICAgZnN0cmluZyB1c2VyX25hbWU7
CiAgICAgICAgZnN0cmluZyBkb21haW47CiAgICAgICAgc3RydWN0IHB3ZF9pbmZvIHB3ZDsKCiAg
ICAgICAgdW5zaWduZWQgaW50IG50bG1zc3BfZmxhZ3M7Cgp9IENSRURTX05UOwoKdHlwZWRlZiBz
dHJ1Y3QgdW5peHVzZXJfY3JlZHMKewogICAgICAgIGZzdHJpbmcgdXNlcl9uYW1lOwogICAgICAg
IGZzdHJpbmcgcmVxdWVzdGVkX25hbWU7CiAgICAgICAgZnN0cmluZyByZWFsX25hbWU7CiAgICAg
ICAgQk9PTCBndWVzdDsKCn0gQ1JFRFNfVU5JWDsKCnR5cGVkZWYgc3RydWN0IHVuaXhzZWNfY3Jl
ZHMKewogICAgICAgIHVuc2lnbmVkIGludCB1aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IGdpZDsK
ICAgICAgICBpbnQgbnVtX2dycHM7CiAgICAgICAgdW5zaWduZWQgaW50ICpncnBzOwoKfSBDUkVE
U19VTklYX1NFQzsKCnR5cGVkZWYgc3RydWN0IG50c2VjX2NyZWRzCnsKICAgICAgICBET01fU0lE
IHNpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2dycHM7CiAgICAgICAgdW5zaWduZWQgaW50
ICpncnBfcmlkczsKCn0gQ1JFRFNfTlRfU0VDOwoKdHlwZWRlZiBzdHJ1Y3QgdXNlcl9jcmVkcwp7
CiAgICAgICAgQk9PTCByZXVzZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9udGM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHB0cl91eGM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9udHM7CiAg
ICAgICAgdW5zaWduZWQgaW50IHB0cl91eHM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9zc2s7
CgogICAgICAgIENSRURTX05UIG50YzsKICAgICAgICBDUkVEU19VTklYIHV4YzsKCiAgICAgICAg
Q1JFRFNfTlRfU0VDIG50czsKICAgICAgICBDUkVEU19VTklYX1NFQyB1eHM7CgogICAgICAgIHVu
c2lnbmVkIGNoYXIgdXNyX3Nlc3Nfa2V5WzE2XTsKCn0gQ1JFRFNfSFlCUklEOwoKdHlwZWRlZiBz
dHJ1Y3QgY3JlZF9jb21tYW5kCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB2ZXJzaW9uOwogICAg
ICAgIHVuc2lnbmVkIHNob3J0IGNvbW1hbmQ7CiAgICAgICAgdW5zaWduZWQgaW50IHBpZDsKCiAg
ICAgICAgZnN0cmluZyBuYW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2NyZWRzOwogICAg
ICAgIENSRURTX0hZQlJJRCAqY3JlZDsKCn0gQ1JFRFNfQ01EOwojIDE1OTQgImluY2x1ZGUvc21i
LmgiIDIKIyAxICJpbmNsdWRlL3JwY19taXNjLmgiIDEKIyAyNCAiaW5jbHVkZS9ycGNfbWlzYy5o
IgojIDEgImluY2x1ZGUvbnRkb21haW4uaCIgMQojIDI4ICJpbmNsdWRlL250ZG9tYWluLmgiCiMg
MSAiaW5jbHVkZS9ycGNfZGNlLmgiIDEKIyAyNyAiaW5jbHVkZS9ycGNfZGNlLmgiCiMgMSAiaW5j
bHVkZS9ycGNfbWlzYy5oIiAxCiMgMjQgImluY2x1ZGUvcnBjX21pc2MuaCIKIyAxICJpbmNsdWRl
L250ZG9tYWluLmgiIDEKIyAyNSAiaW5jbHVkZS9ycGNfbWlzYy5oIiAyCiMgMSAiaW5jbHVkZS9y
cGNfZGNlLmgiIDEKIyAyNiAiaW5jbHVkZS9ycGNfbWlzYy5oIiAyCiMgNzAgImluY2x1ZGUvcnBj
X21pc2MuaCIKdHlwZWRlZiBzdHJ1Y3QgZW51bV9obmRfaW5mbwp7CiAgICAgICAgdW5zaWduZWQg
aW50IHB0cl9obmQ7CiAgICAgICAgdW5zaWduZWQgaW50IGhhbmRsZTsKCn0gRU5VTV9ITkQ7CgoK
dHlwZWRlZiBzdHJ1Y3QgbG9va3VwX2xldmVsX2luZm8KewogIHVuc2lnbmVkIHNob3J0IHZhbHVl
OwoKfSBMT09LVVBfTEVWRUw7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2lkX2luZm9fMgp7CiAgICAgICAg
dW5zaWduZWQgaW50IG51bV9hdXRoczsKCiAgICAgICAgRE9NX1NJRCBzaWQ7Cgp9IERPTV9TSUQy
OwoKCnR5cGVkZWYgc3RydWN0IGhlYWRlcl9pbmZvCnsKICB1bnNpZ25lZCBzaG9ydCBzdHJfc3Ry
X2xlbjsKICB1bnNpZ25lZCBzaG9ydCBzdHJfbWF4X2xlbjsKICB1bnNpZ25lZCBpbnQgYnVmZmVy
OwoKfSBTVFJIRFI7CgoKdHlwZWRlZiBzdHJ1Y3QgdW5paGRyX2luZm8KewogIHVuc2lnbmVkIHNo
b3J0IHVuaV9zdHJfbGVuOwogIHVuc2lnbmVkIHNob3J0IHVuaV9tYXhfbGVuOwogIHVuc2lnbmVk
IGludCBidWZmZXI7Cgp9IFVOSUhEUjsKCgp0eXBlZGVmIHN0cnVjdCB1bmloZHIyX2luZm8Kewog
IFVOSUhEUiB1bmloZHI7CiAgdW5zaWduZWQgaW50IGJ1ZmZlcjsKCn0gVU5JSERSMjsKCgoKCgoK
CnR5cGVkZWYgc3RydWN0IHVuaXN0cl9pbmZvCnsKCiAgdW5zaWduZWQgc2hvcnQgKmJ1ZmZlcjsK
fSBVTklTVFI7CgoKdHlwZWRlZiBzdHJ1Y3QgYnVmaGRyX2luZm8KewogIHVuc2lnbmVkIGludCBi
dWZfbWF4X2xlbjsKICB1bnNpZ25lZCBpbnQgYnVmX2xlbjsKCn0gQlVGSERSOwoKCgoKdHlwZWRl
ZiBzdHJ1Y3QgYnVmZmVyMl9pbmZvCnsKICB1bnNpZ25lZCBpbnQgYnVmX21heF9sZW47CiAgdW5z
aWduZWQgaW50IHVuZG9jOwogIHVuc2lnbmVkIGludCBidWZfbGVuOwoKICB1bnNpZ25lZCBzaG9y
dCAqYnVmZmVyOwoKfSBCVUZGRVIyOwoKCnR5cGVkZWYgc3RydWN0IGJ1ZmZlcjNfaW5mbwp7CiAg
dW5zaWduZWQgaW50IGJ1Zl9tYXhfbGVuOwogIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKICB1bnNp
Z25lZCBpbnQgYnVmX2xlbjsKCn0gQlVGRkVSMzsKCgp0eXBlZGVmIHN0cnVjdCBidWZmZXI1X2lu
Zm8KewogIHVuc2lnbmVkIGludCBidWZfbGVuOwogIHVuc2lnbmVkIHNob3J0ICpidWZmZXI7Cn0g
QlVGRkVSNTsKCgp0eXBlZGVmIHN0cnVjdCB1bmlzdHIyX2luZm8KewogIHVuc2lnbmVkIGludCB1
bmlfbWF4X2xlbjsKICB1bnNpZ25lZCBpbnQgdW5kb2M7CiAgdW5zaWduZWQgaW50IHVuaV9zdHJf
bGVuOwoKCgogIHVuc2lnbmVkIHNob3J0ICpidWZmZXI7Cgp9IFVOSVNUUjI7CgoKdHlwZWRlZiBz
dHJ1Y3Qgc3RyaW5nMl9pbmZvCnsKICB1bnNpZ25lZCBpbnQgc3RyX21heF9sZW47CiAgdW5zaWdu
ZWQgaW50IHVuZG9jOwogIHVuc2lnbmVkIGludCBzdHJfc3RyX2xlbjsKICB1bnNpZ25lZCBjaGFy
ICpidWZmZXI7Cgp9IFNUUklORzI7CgoKdHlwZWRlZiBzdHJ1Y3QgdW5pc3RyM19pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5pX3N0cl9sZW47CiAgICAgICAgVU5JU1RSIHN0cjsKCn0gVU5J
U1RSMzsKCgoKdHlwZWRlZiBzdHJ1Y3QgZG9tcmlkMl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBj
aGFyIHR5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IHJpZDsKICAgICAgICB1bnNpZ25lZCBpbnQg
cmlkX2lkeDsKCn0gRE9NX1JJRDI7CgoKdHlwZWRlZiBzdHJ1Y3QgZG9tcmlkM19pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcmlkOwogICAgICAgIHVuc2lnbmVkIGludCB0eXBlMTsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyX3R5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IHR5cGUyOwogICAg
ICAgIHVuc2lnbmVkIGludCB1bms7Cgp9IERPTV9SSUQzOwoKCnR5cGVkZWYgc3RydWN0IGRvbXJp
ZDRfaW5mbwp7CiAgdW5zaWduZWQgaW50IHVua25vd247CiAgdW5zaWduZWQgc2hvcnQgYXR0cjsK
ICB1bnNpZ25lZCBpbnQgcmlkOwoKfSBET01fUklENDsKCgp0eXBlZGVmIHN0cnVjdCBjbG50X3Ny
dl9pbmZvCnsKICB1bnNpZ25lZCBpbnQgdW5kb2NfYnVmZmVyOwogIFVOSVNUUjIgdW5pX2xvZ29u
X3NydjsKICB1bnNpZ25lZCBpbnQgdW5kb2NfYnVmZmVyMjsKICBVTklTVFIyIHVuaV9jb21wX25h
bWU7Cgp9IERPTV9DTE5UX1NSVjsKCgp0eXBlZGVmIHN0cnVjdCBsb2dfaW5mbwp7CiAgdW5zaWdu
ZWQgaW50IHVuZG9jX2J1ZmZlcjsKICBVTklTVFIyIHVuaV9sb2dvbl9zcnY7CiAgVU5JU1RSMiB1
bmlfYWNjdF9uYW1lOwogIHVuc2lnbmVkIHNob3J0IHNlY19jaGFuOwogIFVOSVNUUjIgdW5pX2Nv
bXBfbmFtZTsKCn0gRE9NX0xPR19JTkZPOwoKCnR5cGVkZWYgc3RydWN0IGNoYWxfaW5mbwp7CiAg
ICB1bnNpZ25lZCBjaGFyIGRhdGFbOF07Cn0gRE9NX0NIQUw7CgoKdHlwZWRlZiBzdHJ1Y3QgY3Jl
ZF9pbmZvCnsKICAgIERPTV9DSEFMIGNoYWxsZW5nZTsKICAgIFVUSU1FIHRpbWVzdGFtcDsKfSBE
T01fQ1JFRDsKCgp0eXBlZGVmIHN0cnVjdCBjbG50X2luZm8KewogIERPTV9MT0dfSU5GTyBsb2dp
bjsKICBET01fQ1JFRCBjcmVkOwoKfSBET01fQ0xOVF9JTkZPOwoKCnR5cGVkZWYgc3RydWN0IGNs
bnRfaW5mbzIKewogIERPTV9DTE5UX1NSViBsb2dpbjsKICB1bnNpZ25lZCBpbnQgcHRyX2NyZWQ7
CiAgRE9NX0NSRUQgY3JlZDsKCn0gRE9NX0NMTlRfSU5GTzI7CgoKdHlwZWRlZiBzdHJ1Y3QgbG9n
b25faW5mbwp7CiAgdW5zaWduZWQgaW50IGxvdzsKICB1bnNpZ25lZCBpbnQgaGlnaDsKCn0gRE9N
X0xPR09OX0lEOwoKCnR5cGVkZWYgc3RydWN0IG93Zl9pbmZvCnsKICB1bnNpZ25lZCBjaGFyIGRh
dGFbMTZdOwoKfSBPV0ZfSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgZ2lkX2luZm8KewogIHVuc2ln
bmVkIGludCBnX3JpZDsKICB1bnNpZ25lZCBpbnQgYXR0cjsKCn0gRE9NX0dJRDsKCgp0eXBlZGVm
IHN0cnVjdCBsc2FfcG9saWN5X2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBkYXRhMTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZGF0YTI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZGF0YTM7CiAg
ICAgICAgdW5zaWduZWQgc2hvcnQgZGF0YTQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBkYXRhNVs4
XTsKfSBQT0xJQ1lfSE5EOwoKCgoKCnR5cGVkZWYgc3RydWN0IF9jbGlfYXV0aF9mbnMgY2xpX2F1
dGhfZm5zOwpzdHJ1Y3QgdXNlcl9jcmVkczsKc3RydWN0IGNsaV9jb25uZWN0aW9uIHsKCiAgICAg
ICAgY2hhciAqc3J2X25hbWU7CiAgICAgICAgY2hhciAqcGlwZV9uYW1lOwogICAgICAgIHN0cnVj
dCB1c2VyX2NyZWRzIHVzcl9jcmVkczsKCiAgICAgICAgc3RydWN0IGNsaV9zdGF0ZSAqcENsaV9z
dGF0ZTsKCiAgICAgICAgY2xpX2F1dGhfZm5zICphdXRoOwoKICAgICAgICB2b2lkICphdXRoX2lu
Zm87CiAgICAgICAgdm9pZCAqYXV0aF9jcmVkczsKfTsKCgoKCgp0eXBlZGVmIHN0cnVjdCBycGNf
aG5kX25vZGUgewoKICAgICAgICBQT0xJQ1lfSE5EIGhuZDsKICAgICAgICBzdHJ1Y3QgY2xpX2Nv
bm5lY3Rpb24gKmNsaTsKCn0gUlBDX0hORF9OT0RFOwoKdHlwZWRlZiBzdHJ1Y3QgdWludDY0X3MK
ewogICAgICAgIHVuc2lnbmVkIGludCBsb3c7CiAgICAgICAgdW5zaWduZWQgaW50IGhpZ2g7Cn0g
VUlOVDY0X1M7CgoKdHlwZWRlZiBzdHJ1Y3QgYnVmaGRyMl9pbmZvCnsKICAgICAgICB1bnNpZ25l
ZCBpbnQgaW5mb19sZXZlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoOwogICAgICAgIHVu
c2lnbmVkIGludCBidWZmZXI7Cgp9CkJVRkhEUjI7CgoKdHlwZWRlZiBzdHJ1Y3QgYnVmZmVyNF9p
bmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgYnVmX2xlbjsKICAgICAgICB1bnNpZ25lZCBjaGFy
IGJ1ZmZlcls1MTJdOwoKfQpCVUZGRVI0OwojIDI4ICJpbmNsdWRlL3JwY19kY2UuaCIgMgoKCgoK
ZW51bSBSUENfUEtUX1RZUEUKewogICAgICAgIFJQQ19SRVFVRVNUID0gMHgwMCwKICAgICAgICBS
UENfUkVTUE9OU0UgPSAweDAyLAogICAgICAgIFJQQ19GQVVMVCA9IDB4MDMsCiAgICAgICAgUlBD
X0JJTkQgPSAweDBCLAogICAgICAgIFJQQ19CSU5EQUNLID0gMHgwQywKICAgICAgICBSUENfQklO
RE5BQ0sgPSAweDBELAogICAgICAgIFJQQ19BTFRDT05UID0gMHgwRSwKICAgICAgICBSUENfQUxU
Q09OVFJFU1AgPSAweDBGLAogICAgICAgIFJQQ19CSU5EUkVTUCA9IDB4MTAKfTsKCgoKCgoKCmVu
dW0gTlRMTV9NRVNTQUdFX1RZUEUKewogICAgICAgIE5UTE1TU1BfTkVHT1RJQVRFID0gMSwKICAg
ICAgICBOVExNU1NQX0NIQUxMRU5HRSA9IDIsCiAgICAgICAgTlRMTVNTUF9BVVRIID0gMywKICAg
ICAgICBOVExNU1NQX1VOS05PV04gPSA0Cn07CiMgOTEgImluY2x1ZGUvcnBjX2RjZS5oIgp0eXBl
ZGVmIHN0cnVjdCBycGNfdXVpZAp7CiAgdW5zaWduZWQgaW50IHRpbWVfbG93OwogIHVuc2lnbmVk
IHNob3J0IHRpbWVfbWlkOwogIHVuc2lnbmVkIHNob3J0IHRpbWVfaGlfYW5kX3ZlcnNpb247CiAg
dW5zaWduZWQgY2hhciByZW1haW5pbmdbOF07Cn0gUlBDX1VVSUQ7CgoKCgp0eXBlZGVmIHN0cnVj
dCBycGNfaWZhY2VfaW5mbwp7CiAgUlBDX1VVSUQgdXVpZDsKICB1bnNpZ25lZCBpbnQgdmVyc2lv
bjsKCn0gUlBDX0lGQUNFOwoKCgpzdHJ1Y3QgcGlwZV9pZF9pbmZvCnsKCgogICAgICAgIGNoYXIg
KmNsaWVudF9waXBlOwogICAgICAgIFJQQ19JRkFDRSBhYnN0cl9zeW50YXg7CgogICAgICAgIGNo
YXIgKnNlcnZlcl9waXBlOwogICAgICAgIFJQQ19JRkFDRSB0cmFuc19zeW50YXg7Cn07CgoKdHlw
ZWRlZiBzdHJ1Y3QgcnBjX2hkcl9pbmZvCnsKICB1bnNpZ25lZCBjaGFyIG1ham9yOwogIHVuc2ln
bmVkIGNoYXIgbWlub3I7CiAgdW5zaWduZWQgY2hhciBwa3RfdHlwZTsKICB1bnNpZ25lZCBjaGFy
IGZsYWdzOwogIHVuc2lnbmVkIGNoYXIgcGFja190eXBlWzRdOwogIHVuc2lnbmVkIHNob3J0IGZy
YWdfbGVuOwogIHVuc2lnbmVkIHNob3J0IGF1dGhfbGVuOwogIHVuc2lnbmVkIGludCBjYWxsX2lk
OwoKfSBSUENfSERSOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgcnBjX2hkcl9yZXFfaW5mbwp7CiAgdW5z
aWduZWQgaW50IGFsbG9jX2hpbnQ7CiAgdW5zaWduZWQgc2hvcnQgY29udGV4dF9pZDsKICB1bnNp
Z25lZCBzaG9ydCBvcG51bTsKCn0gUlBDX0hEUl9SRVE7CgoKCgp0eXBlZGVmIHN0cnVjdCBycGNf
aGRyX3Jlc3BfaW5mbwp7CiAgdW5zaWduZWQgaW50IGFsbG9jX2hpbnQ7CiAgdW5zaWduZWQgc2hv
cnQgY29udGV4dF9pZDsKICB1bnNpZ25lZCBjaGFyIGNhbmNlbF9jb3VudDsKICB1bnNpZ25lZCBj
aGFyIHJlc2VydmVkOwoKfSBSUENfSERSX1JFU1A7CgoKCgp0eXBlZGVmIHN0cnVjdCBycGNfaGRy
X2ZhdWx0X2luZm8KewogIE5UU1RBVFVTIHN0YXR1czsKICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQ7
Cn0gUlBDX0hEUl9GQVVMVDsKIyAxNzggImluY2x1ZGUvcnBjX2RjZS5oIgp0eXBlZGVmIHN0cnVj
dCBycGNfYWRkcl9pbmZvCnsKICB1bnNpZ25lZCBzaG9ydCBsZW47CiAgZnN0cmluZyBzdHI7Cgp9
IFJQQ19BRERSX1NUUjsKCgp0eXBlZGVmIHN0cnVjdCBycGNfaGRyX2JiYV9pbmZvCnsKICB1bnNp
Z25lZCBzaG9ydCBtYXhfdHNpemU7CiAgdW5zaWduZWQgc2hvcnQgbWF4X3JzaXplOwogIHVuc2ln
bmVkIGludCBhc3NvY19naWQ7Cgp9IFJQQ19IRFJfQkJBOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgcnBj
X2hkcl9hdXRoYV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBtYXhfdHNpemU7CiAgICAg
ICAgdW5zaWduZWQgc2hvcnQgbWF4X3JzaXplOwoKICAgICAgICB1bnNpZ25lZCBjaGFyIGF1dGhf
dHlwZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGF1dGhfbGV2ZWw7CiAgICAgICAgdW5zaWduZWQg
Y2hhciBzdHViX3R5cGVfbGVuOwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGFkZGluZzsKCiAgICAg
ICAgdW5zaWduZWQgaW50IHVua25vd247Cgp9IFJQQ19IRFJfQVVUSEE7CgoKCgp0eXBlZGVmIHN0
cnVjdCBycGNfaGRyX2F1dGhfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgY2hhciBhdXRoX3R5cGU7
CiAgICAgICAgdW5zaWduZWQgY2hhciBhdXRoX2xldmVsOwogICAgICAgIHVuc2lnbmVkIGNoYXIg
c3R1Yl90eXBlX2xlbjsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmc7CgogICAgICAgIHVu
c2lnbmVkIGludCB1bmtub3duOwoKfSBSUENfSERSX0FVVEg7CgoKCgp0eXBlZGVmIHN0cnVjdCBy
cGNfYmluZF9yZXFfaW5mbwp7CiAgUlBDX0hEUl9CQkEgYmJhOwoKICB1bnNpZ25lZCBpbnQgbnVt
X2VsZW1lbnRzOwogIHVuc2lnbmVkIHNob3J0IGNvbnRleHRfaWQ7CiAgdW5zaWduZWQgY2hhciBu
dW1fc3ludGF4ZXM7CgogIFJQQ19JRkFDRSBhYnN0cmFjdDsKICBSUENfSUZBQ0UgdHJhbnNmZXI7
Cgp9IFJQQ19IRFJfUkI7CiMgMjQ5ICJpbmNsdWRlL3JwY19kY2UuaCIKdHlwZWRlZiBzdHJ1Y3Qg
cnBjX3Jlc3VsdHNfaW5mbwp7CgoKICB1bnNpZ25lZCBjaGFyIG51bV9yZXN1bHRzOwoKCgogIHVu
c2lnbmVkIHNob3J0IHJlc3VsdDsKICB1bnNpZ25lZCBzaG9ydCByZWFzb247Cgp9IFJQQ19SRVNV
TFRTOwoKCnR5cGVkZWYgc3RydWN0IHJwY19oZHJfYmFfaW5mbwp7CiAgUlBDX0hEUl9CQkEgYmJh
OwoKICBSUENfQUREUl9TVFIgYWRkciA7CiAgUlBDX1JFU1VMVFMgcmVzIDsKICBSUENfSUZBQ0Ug
dHJhbnNmZXI7Cgp9IFJQQ19IRFJfQkE7CgoKdHlwZWRlZiBzdHJ1Y3QgcnBjX2F1dGhfdmVyaWZf
aW5mbwp7CiAgICAgICAgZnN0cmluZyBzaWduYXR1cmU7CiAgICAgICAgdW5zaWduZWQgaW50IG1z
Z190eXBlOwoKfSBSUENfQVVUSF9WRVJJRklFUjsKCgoKCnR5cGVkZWYgc3RydWN0IHJwY19hdXRo
X250bG1zc3BfbmVnX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBuZWdfZmxnczsKCiAgICAg
ICAgU1RSSERSIGhkcl9teW5hbWU7CiAgICAgICAgU1RSSERSIGhkcl9kb21haW47CgogICAgICAg
IGZzdHJpbmcgbXluYW1lOwogICAgICAgIGZzdHJpbmcgZG9tYWluOwoKfSBSUENfQVVUSF9OVExN
U1NQX05FRzsKCgoKCnR5cGVkZWYgc3RydWN0IHJwY19hdXRoX250bG1zc3BfY2hhbF9pbmZvCnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl8xOwogICAgICAgIHVuc2lnbmVkIGludCB1bmtu
b3duXzI7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZ19mbGFnczsKCiAgICAgICAgdW5zaWduZWQg
Y2hhciBjaGFsbGVuZ2VbOF07CiAgICAgICAgdW5zaWduZWQgY2hhciByZXNlcnZlZCBbOF07Cgp9
IFJQQ19BVVRIX05UTE1TU1BfQ0hBTDsKCgoKdHlwZWRlZiBzdHJ1Y3QgcnBjX2F1dGhfbnRsbXNz
cF9yZXNwX2luZm8KewogICAgICAgIFNUUkhEUiBoZHJfbG1fcmVzcDsKICAgICAgICBTVFJIRFIg
aGRyX250X3Jlc3A7CiAgICAgICAgU1RSSERSIGhkcl9kb21haW47CiAgICAgICAgU1RSSERSIGhk
cl91c3I7CiAgICAgICAgU1RSSERSIGhkcl93a3M7CiAgICAgICAgU1RSSERSIGhkcl9zZXNzX2tl
eTsKICAgICAgICB1bnNpZ25lZCBpbnQgbmVnX2ZsYWdzOwoKICAgICAgICBmc3RyaW5nIHNlc3Nf
a2V5OwogICAgICAgIGZzdHJpbmcgd2tzOwogICAgICAgIGZzdHJpbmcgdXNlcjsKICAgICAgICBm
c3RyaW5nIGRvbWFpbjsKICAgICAgICBmc3RyaW5nIG50X3Jlc3A7CiAgICAgICAgZnN0cmluZyBs
bV9yZXNwOwoKfSBSUENfQVVUSF9OVExNU1NQX1JFU1A7CgoKCnR5cGVkZWYgc3RydWN0IHJwY19h
dXRoX250bG1zc3BfY2hrX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCB2ZXI7CiAgICAgICAg
dW5zaWduZWQgaW50IHJlc2VydmVkOwogICAgICAgIHVuc2lnbmVkIGludCBjcmMzMjsKICAgICAg
ICB1bnNpZ25lZCBpbnQgc2VxX251bTsKCn0gUlBDX0FVVEhfTlRMTVNTUF9DSEs7CiMgMjkgImlu
Y2x1ZGUvbnRkb21haW4uaCIgMgoKCiMgMSAiaW5jbHVkZS9ycGNfbWlzYy5oIiAxCiMgMzIgImlu
Y2x1ZGUvbnRkb21haW4uaCIgMgojIDQyICJpbmNsdWRlL250ZG9tYWluLmgiCnR5cGVkZWYgc3Ry
dWN0IF9wcnNfc3RydWN0CnsKICAgICAgICBCT09MIGlvOwoKCgoKICAgICAgICBCT09MIGJpZ2Vu
ZGlhbl9kYXRhOwogICAgICAgIHVuc2lnbmVkIGNoYXIgYWxpZ247CiAgICAgICAgQk9PTCBpc19k
eW5hbWljOwogICAgICAgIHVuc2lnbmVkIGludCBkYXRhX29mZnNldDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgYnVmZmVyX3NpemU7CiAgICAgICAgdW5zaWduZWQgaW50IGdyb3dfc2l6ZTsKICAgICAg
ICBjaGFyICpkYXRhX3A7CiAgICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eDsKfSBwcnNfc3RydWN0
OwojIDc0ICJpbmNsdWRlL250ZG9tYWluLmgiCnR5cGVkZWYgc3RydWN0IF9vdXRwdXRfZGF0YSB7
CgoKCiAgICAgICAgcHJzX3N0cnVjdCByZGF0YTsKCgogICAgICAgIHVuc2lnbmVkIGludCBkYXRh
X3NlbnRfbGVuZ3RoOwoKCgoKCiAgICAgICAgdW5zaWduZWQgY2hhciBjdXJyZW50X3BkdVsweDE2
MzBdOwoKCiAgICAgICAgdW5zaWduZWQgaW50IGN1cnJlbnRfcGR1X2xlbjsKCgogICAgICAgIHVu
c2lnbmVkIGludCBjdXJyZW50X3BkdV9zZW50Owp9IG91dHB1dF9kYXRhOwoKdHlwZWRlZiBzdHJ1
Y3QgX2lucHV0X2RhdGEgewoKCgoKCgogICAgdW5zaWduZWQgY2hhciBjdXJyZW50X2luX3BkdVsw
eDE2MzBdOwoKCgoKCgogICAgdW5zaWduZWQgaW50IHBkdV9uZWVkZWRfbGVuOwoKCgoKCgogICAg
dW5zaWduZWQgaW50IHBkdV9yZWNlaXZlZF9sZW47CgoKCgoKCiAgICBwcnNfc3RydWN0IGRhdGE7
Cn0gaW5wdXRfZGF0YTsKCgoKCgpzdHJ1Y3QgcG9saWN5CnsKICAgIHN0cnVjdCBwb2xpY3kgKm5l
eHQsICpwcmV2OwoKICAgIFBPTElDWV9ITkQgcG9sX2huZDsKCiAgICB2b2lkICpkYXRhX3B0cjsK
ICAgIHZvaWQgKCpmcmVlX2ZuKSh2b2lkICopOwoKfTsKCnN0cnVjdCBoYW5kbGVfbGlzdCB7CiAg
ICAgICAgc3RydWN0IHBvbGljeSAqUG9saWN5OwogICAgICAgIHNpemVfdCBjb3VudDsKICAgICAg
ICBzaXplX3QgcGlwZV9yZWZfY291bnQ7Cn07CgoKc3RydWN0IGRjaW5mbwp7CiAgICAgICAgRE9N
X0NIQUwgY2xudF9jaGFsOwogICAgICAgIERPTV9DSEFMIHNydl9jaGFsOwogICAgICAgIERPTV9D
UkVEIGNsbnRfY3JlZDsKICAgICAgICBET01fQ1JFRCBzcnZfY3JlZDsKCiAgICAgICAgdW5zaWdu
ZWQgY2hhciBzZXNzX2tleVs4XTsKICAgICAgICB1bnNpZ25lZCBjaGFyIG1kNHB3WzE2XTsKCiAg
ICAgICAgZnN0cmluZyBtYWNoX2FjY3Q7Cn07Cgp0eXBlZGVmIHN0cnVjdCBwaXBlc19zdHJ1Y3QK
ewogICAgICAgIHN0cnVjdCBwaXBlc19zdHJ1Y3QgKm5leHQsICpwcmV2OwogICAgICAgIGludCBw
bnVtOwogICAgICAgIGNvbm5lY3Rpb25fc3RydWN0ICpjb25uOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IHZ1aWQ7CiAgICAgICAgQk9PTCBvcGVuOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRldmlj
ZV9zdGF0ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBwcmlvcml0eTsKICAgICAgICBmc3RyaW5n
IG5hbWU7CiAgICAgICAgZnN0cmluZyBwaXBlX3Nydl9uYW1lOwoKICAgICAgICBSUENfSERSIGhk
cjsKICAgICAgICBSUENfSERSX1JFUSBoZHJfcmVxOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnRs
bXNzcF9jaGFsX2ZsYWdzOwogICAgICAgIEJPT0wgbnRsbXNzcF9hdXRoX3JlcXVlc3RlZDsKICAg
ICAgICBCT09MIG50bG1zc3BfYXV0aF92YWxpZGF0ZWQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBj
aGFsbGVuZ2VbOF07CiAgICAgICAgdW5zaWduZWQgY2hhciBudGxtc3NwX2hhc2hbMjU4XTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbnRsbXNzcF9zZXFfbnVtOwogICAgICAgIHN0cnVjdCBkY2luZm8g
ZGM7CgoKCgogICAgICAgIGZzdHJpbmcgdXNlcl9uYW1lOwogICAgICAgIGZzdHJpbmcgZG9tYWlu
OwogICAgICAgIGZzdHJpbmcgd2tzOwoKCgoKCiAgICAgICAgZnN0cmluZyBwaXBlX3VzZXJfbmFt
ZTsKICAgICAgICBzdHJ1Y3QgY3VycmVudF91c2VyIHBpcGVfdXNlcjsKCgoKCgogICAgICAgIEJP
T0wgcGlwZV9ib3VuZDsKCgoKCgogICAgICAgIEJPT0wgZmF1bHRfc3RhdGU7CgoKCgoKICAgICAg
ICBCT09MIGVuZGlhbjsKCgoKCgogICAgICAgIGlucHV0X2RhdGEgaW5fZGF0YTsKCgoKCgogICAg
ICAgIG91dHB1dF9kYXRhIG91dF9kYXRhOwoKCgogICAgICAgIGludCBtYXhfdHJhbnNfcmVwbHk7
CgoKICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4OwoKCiAgICAgICAgc3RydWN0IGhhbmRsZV9s
aXN0ICpwaXBlX2hhbmRsZXM7Cgp9IHBpcGVzX3N0cnVjdDsKCnN0cnVjdCBhcGlfc3RydWN0CnsK
ICBjaGFyICpuYW1lOwogIHVuc2lnbmVkIGNoYXIgb3BudW07CiAgQk9PTCAoKmZuKSAocGlwZXNf
c3RydWN0ICopOwp9OwoKdHlwZWRlZiBzdHJ1Y3QKewogICAgICAgIHVuc2lnbmVkIGludCByaWQ7
CiAgICAgICAgY2hhciAqbmFtZTsKCn0gcmlkX25hbWU7CgpzdHJ1Y3QgYWNjdF9pbmZvCnsKICAg
IGZzdHJpbmcgYWNjdF9uYW1lOwogICAgZnN0cmluZyBhY2N0X2Rlc2M7CiAgICB1bnNpZ25lZCBp
bnQgcmlkOwp9OwojIDI3NSAiaW5jbHVkZS9udGRvbWFpbi5oIgojIDEgImluY2x1ZGUvcnBjX3Nl
Y2Rlcy5oIiAxCiMgODEgImluY2x1ZGUvcnBjX3NlY2Rlcy5oIgp0eXBlZGVmIHN0cnVjdCBzZWN1
cml0eV9pbmZvX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBtYXNrOwoKfSBTRUNfQUNDRVNT
OwoKCgoKCnR5cGVkZWYgc3RydWN0IHNlY3VyaXR5X2FjZV9pbmZvCnsKICAgICAgICB1bnNpZ25l
ZCBjaGFyIHR5cGU7CiAgICAgICAgdW5zaWduZWQgY2hhciBmbGFnczsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBzaXplOwoKICAgICAgICBTRUNfQUNDRVNTIGluZm87CiAgICAgICAgRE9NX1NJRCB0
cnVzdGVlOwoKfSBTRUNfQUNFOwojIDExNCAiaW5jbHVkZS9ycGNfc2VjZGVzLmgiCnR5cGVkZWYg
c3RydWN0IHNlY3VyaXR5X2FjbF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCByZXZpc2lv
bjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXplOwogICAgICAgIHVuc2lnbmVkIGludCBudW1f
YWNlczsKCiAgICAgICAgU0VDX0FDRSAqYWNlOwoKfSBTRUNfQUNMOwojIDEzMiAiaW5jbHVkZS9y
cGNfc2VjZGVzLmgiCnR5cGVkZWYgc3RydWN0IHNlY3VyaXR5X2Rlc2NyaXB0b3JfaW5mbwp7CiAg
ICAgICAgdW5zaWduZWQgc2hvcnQgcmV2aXNpb247CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdHlw
ZTsKCiAgICAgICAgdW5zaWduZWQgaW50IG9mZl9vd25lcl9zaWQ7CiAgICAgICAgdW5zaWduZWQg
aW50IG9mZl9ncnBfc2lkIDsKICAgICAgICB1bnNpZ25lZCBpbnQgb2ZmX3NhY2wgOwogICAgICAg
IHVuc2lnbmVkIGludCBvZmZfZGFjbCA7CgogICAgICAgIFNFQ19BQ0wgKmRhY2w7CiAgICAgICAg
U0VDX0FDTCAqc2FjbDsKICAgICAgICBET01fU0lEICpvd25lcl9zaWQ7CiAgICAgICAgRE9NX1NJ
RCAqZ3JwX3NpZDsKCn0gU0VDX0RFU0M7CgoKCgoKdHlwZWRlZiBzdHJ1Y3Qgc2VjX2Rlc2NfYnVm
X2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBtYXhfbGVuOwogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHI7CiAgICAgICAgdW5zaWduZWQgaW50IGxlbjsKCiAgICAgICAgU0VDX0RFU0MgKnNlYzsK
Cn0gU0VDX0RFU0NfQlVGOwoKCgoKCgp0eXBlZGVmIHN0cnVjdCBnZW5lcmljX21hcHBpbmcgewog
ICAgICAgIHVuc2lnbmVkIGludCBnZW5lcmljX3JlYWQ7CiAgICAgICAgdW5zaWduZWQgaW50IGdl
bmVyaWNfd3JpdGU7CiAgICAgICAgdW5zaWduZWQgaW50IGdlbmVyaWNfZXhlY3V0ZTsKICAgICAg
ICB1bnNpZ25lZCBpbnQgZ2VuZXJpY19hbGw7Cn0gR0VORVJJQ19NQVBQSU5HOwojIDI3NiAiaW5j
bHVkZS9udGRvbWFpbi5oIiAyCgoKIyAxICJpbmNsdWRlL3JwY19sc2EuaCIgMQojIDI3ICJpbmNs
dWRlL3JwY19sc2EuaCIKIyAxICJpbmNsdWRlL3JwY19taXNjLmgiIDEKIyAyOCAiaW5jbHVkZS9y
cGNfbHNhLmgiIDIKCmVudW0gU0lEX05BTUVfVVNFCnsKICAgICAgICBTSURfTkFNRV9VU0VfTk9O
RSA9IDAsCiAgICAgICAgU0lEX05BTUVfVVNFUiA9IDEsCiAgICAgICAgU0lEX05BTUVfRE9NX0dS
UCA9IDIsCiAgICAgICAgU0lEX05BTUVfRE9NQUlOID0gMywKICAgICAgICBTSURfTkFNRV9BTElB
UyA9IDQsCiAgICAgICAgU0lEX05BTUVfV0tOX0dSUCA9IDUsCiAgICAgICAgU0lEX05BTUVfREVM
RVRFRCA9IDYsCiAgICAgICAgU0lEX05BTUVfSU5WQUxJRCA9IDcsCiAgICAgICAgU0lEX05BTUVf
VU5LTk9XTiA9IDgKfTsKIyA5OCAiaW5jbHVkZS9ycGNfbHNhLmgiCnR5cGVkZWYgc3RydWN0IGRv
bV9xdWVyeV9pbmZvCnsKICB1bnNpZ25lZCBzaG9ydCB1bmlfZG9tX21heF9sZW47CiAgdW5zaWdu
ZWQgc2hvcnQgdW5pX2RvbV9zdHJfbGVuOwogIHVuc2lnbmVkIGludCBidWZmZXJfZG9tX25hbWU7
CiAgdW5zaWduZWQgaW50IGJ1ZmZlcl9kb21fc2lkOwogIFVOSVNUUjIgdW5pX2RvbWFpbl9uYW1l
OwogIERPTV9TSUQyIGRvbV9zaWQ7Cgp9IERPTV9RVUVSWTsKCgp0eXBlZGVmIERPTV9RVUVSWSBE
T01fUVVFUllfMzsKdHlwZWRlZiBET01fUVVFUlkgRE9NX1FVRVJZXzU7CgoKdHlwZWRlZiBzdHJ1
Y3QgZG9tX3F1ZXJ5XzIKewogICAgICAgIHVuc2lnbmVkIGludCBhdWRpdGluZ19lbmFibGVkOwog
ICAgICAgIHVuc2lnbmVkIGludCBjb3VudDE7CiAgICAgICAgdW5zaWduZWQgaW50IGNvdW50MjsK
ICAgICAgICB1bnNpZ25lZCBpbnQgKmF1ZGl0c2V0dGluZ3M7Cn0gRE9NX1FVRVJZXzI7CgoKdHlw
ZWRlZiBzdHJ1Y3QgZG9tX3F1ZXJ5XzYKewogICAgICAgIHVuc2lnbmVkIHNob3J0IHNlcnZlcl9y
b2xlOwp9IERPTV9RVUVSWV82OwoKdHlwZWRlZiBzdHJ1Y3Qgc2VxX3Fvc19pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNlY19pbXBfbGV2ZWw7
CiAgICAgICAgdW5zaWduZWQgY2hhciBzZWNfY3R4dF9tb2RlOwogICAgICAgIHVuc2lnbmVkIGNo
YXIgZWZmZWN0aXZlX29ubHk7Cgp9IExTQV9TRUNfUU9TOwoKdHlwZWRlZiBzdHJ1Y3Qgb2JqX2F0
dHJfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IGxlbjsKICAgICAgICB1bnNpZ25lZCBpbnQg
cHRyX3Jvb3RfZGlyOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfb2JqX25hbWU7CiAgICAgICAg
dW5zaWduZWQgaW50IGF0dHJpYnV0ZXM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9zZWNfZGVz
YzsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3NlY19xb3M7CiAgICAgICAgTFNBX1NFQ19RT1Mg
KnNlY19xb3M7Cgp9IExTQV9PQkpfQVRUUjsKCgp0eXBlZGVmIHN0cnVjdCBsc2FfcV9vcGVuX3Bv
bF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IHN5c3RlbV9uYW1lOwogICAgICAgIExTQV9PQkpfQVRUUiBhdHRyIDsKCiAgICAgICAgdW5zaWdu
ZWQgaW50IGRlc19hY2Nlc3M7Cgp9IExTQV9RX09QRU5fUE9MOwoKCnR5cGVkZWYgc3RydWN0IGxz
YV9yX29wZW5fcG9sX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIE5UU1RB
VFVTIHN0YXR1czsKCn0gTFNBX1JfT1BFTl9QT0w7CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3Ffb3Bl
bl9wb2wyX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgVU5JU1RSMiB1
bmlfc2VydmVyX25hbWU7CiAgICAgICAgTFNBX09CSl9BVFRSIGF0dHIgOwoKICAgICAgICB1bnNp
Z25lZCBpbnQgZGVzX2FjY2VzczsKCn0gTFNBX1FfT1BFTl9QT0wyOwoKCnR5cGVkZWYgc3RydWN0
IGxzYV9yX29wZW5fcG9sMl9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAgICBO
VFNUQVRVUyBzdGF0dXM7Cgp9IExTQV9SX09QRU5fUE9MMjsKIyAyMzUgImluY2x1ZGUvcnBjX2xz
YS5oIgp0eXBlZGVmIHN0cnVjdCBsc2FfcXVlcnlfc2VjX29ial9pbmZvCnsKICAgICAgICBQT0xJ
Q1lfSE5EIHBvbDsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VjX2luZm87Cgp9IExTQV9RX1FVRVJZ
X1NFQ19PQko7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9sc2FfcXVlcnlfc2VjX29ial9pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIFNFQ19ERVNDX0JVRiAqYnVmOwoKICAgICAg
ICBOVFNUQVRVUyBzdGF0dXM7Cgp9IExTQV9SX1FVRVJZX1NFQ19PQko7CgoKdHlwZWRlZiBzdHJ1
Y3QgbHNhX3F1ZXJ5X2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgdW5zaWduZWQg
c2hvcnQgaW5mb19jbGFzczsKCn0gTFNBX1FfUVVFUllfSU5GTzsKCgp0eXBlZGVmIHVuaW9uIGxz
YV9pbmZvX3VuaW9uCnsKICAgICAgICBET01fUVVFUllfMiBpZDI7CiAgICAgICAgRE9NX1FVRVJZ
XzMgaWQzOwogICAgICAgIERPTV9RVUVSWV81IGlkNTsKICAgICAgICBET01fUVVFUllfNiBpZDY7
Cn0gTFNBX0lORk9fVU5JT047CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3JfcXVlcnlfaW5mbwp7CiAg
ICB1bnNpZ25lZCBpbnQgdW5kb2NfYnVmZmVyOwogICAgdW5zaWduZWQgc2hvcnQgaW5mb19jbGFz
czsKCiAgICAgICAgTFNBX0lORk9fVU5JT04gZG9tOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7
Cgp9IExTQV9SX1FVRVJZX0lORk87CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX2VudW1fdHJ1c3RfZG9t
X2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgdW5zaWduZWQgaW50IGVudW1fY29u
dGV4dDsKICAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfbGVuOwoKfSBMU0FfUV9FTlVNX1RSVVNU
X0RPTTsKCgp0eXBlZGVmIHN0cnVjdCBsc2Ffcl9lbnVtX3RydXN0X2RvbV9pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgZW51bV9jb250ZXh0OwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZG9t
YWluczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudW1fZG9tYWluczsKCgogICAgICAgIHVu
c2lnbmVkIGludCBudW1fZG9tYWluczI7CiAgICAgICAgVU5JSERSMiAqaGRyX2RvbWFpbl9uYW1l
OwogICAgICAgIFVOSVNUUjIgKnVuaV9kb21haW5fbmFtZTsKICAgICAgICBET01fU0lEMiAqZG9t
YWluX3NpZDsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBMU0FfUl9FTlVNX1RSVVNUX0RP
TTsKCgp0eXBlZGVmIHN0cnVjdCBsc2FfcV9jbG9zZV9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5E
IHBvbDsKCn0gTFNBX1FfQ0xPU0U7CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3JfY2xvc2VfaW5mbwp7
CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gTFNB
X1JfQ0xPU0U7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgZG9tX3RydXN0X2hkcgp7CiAgICAgICAgVU5J
SERSIGhkcl9kb21fbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2RvbV9zaWQ7Cgp9IERP
TV9UUlVTVF9IRFI7CgoKdHlwZWRlZiBzdHJ1Y3QgZG9tX3RydXN0X2luZm8KewogICAgICAgIFVO
SVNUUjIgdW5pX2RvbV9uYW1lOwogICAgICAgIERPTV9TSUQyIHJlZl9kb20gOwoKfSBET01fVFJV
U1RfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBkb21fcmVmX2luZm8KewogICAgdW5zaWduZWQgaW50
IG51bV9yZWZfZG9tc18xOwogICAgdW5zaWduZWQgaW50IHB0cl9yZWZfZG9tOwogICAgdW5zaWdu
ZWQgaW50IG1heF9lbnRyaWVzOwogICAgdW5zaWduZWQgaW50IG51bV9yZWZfZG9tc18yOwoKICAg
IERPTV9UUlVTVF9IRFIgaGRyX3JlZl9kb21bMzJdOwogICAgRE9NX1RSVVNUX0lORk8gcmVmX2Rv
bSBbMzJdOwoKfSBET01fUl9SRUY7CgoKCgp0eXBlZGVmIHN0cnVjdCBsc2FfdHJhbnNfbmFtZV9p
bmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzaWRfbmFtZV91c2U7CiAgICAgICAgVU5JSERS
IGhkcl9uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBkb21haW5faWR4OwoKfSBMU0FfVFJBTlNf
TkFNRTsKCgoKCnR5cGVkZWYgc3RydWN0IGxzYV90cmFuc19uYW1lX2VudW1faW5mbwp7CiAgICAg
ICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfdHJh
bnNfbmFtZXM7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzMjsKCiAgICAgICAgTFNB
X1RSQU5TX05BTUUgKm5hbWU7CiAgICAgICAgVU5JU1RSMiAqdW5pX25hbWU7Cgp9IExTQV9UUkFO
U19OQU1FX0VOVU07CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3NpZF9lbnVtX2luZm8KewogICAgICAg
IHVuc2lnbmVkIGludCBudW1fZW50cmllczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3NpZF9l
bnVtOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczI7CgogICAgICAgIHVuc2lnbmVk
IGludCAqcHRyX3NpZDsKICAgICAgICBET01fU0lEMiAqc2lkOwoKfSBMU0FfU0lEX0VOVU07CgoK
dHlwZWRlZiBzdHJ1Y3QgbHNhX3FfbG9va3VwX3NpZHMKewogICAgICAgIFBPTElDWV9ITkQgcG9s
OwogICAgICAgIExTQV9TSURfRU5VTSBzaWRzOwogICAgICAgIExTQV9UUkFOU19OQU1FX0VOVU0g
bmFtZXM7CiAgICAgICAgTE9PS1VQX0xFVkVMIGxldmVsOwogICAgICAgIHVuc2lnbmVkIGludCBt
YXBwZWRfY291bnQ7Cgp9IExTQV9RX0xPT0tVUF9TSURTOwoKCnR5cGVkZWYgc3RydWN0IGxzYV9y
X2xvb2t1cF9zaWRzCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2RvbV9yZWY7CiAgICAgICAg
RE9NX1JfUkVGICpkb21fcmVmOwoKICAgICAgICBMU0FfVFJBTlNfTkFNRV9FTlVNICpuYW1lczsK
ICAgICAgICB1bnNpZ25lZCBpbnQgbWFwcGVkX2NvdW50OwoKICAgICAgICBOVFNUQVRVUyBzdGF0
dXM7Cgp9IExTQV9SX0xPT0tVUF9TSURTOwoKCnR5cGVkZWYgc3RydWN0IGxzYV9xX2xvb2t1cF9u
YW1lcwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9l
bnRyaWVzOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczI7CiAgICAgICAgVU5JSERS
ICpoZHJfbmFtZTsKICAgICAgICBVTklTVFIyICp1bmlfbmFtZTsKCiAgICAgICAgdW5zaWduZWQg
aW50IG51bV90cmFuc19lbnRyaWVzOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfdHJhbnNfc2lk
czsKICAgICAgICB1bnNpZ25lZCBpbnQgbG9va3VwX2xldmVsOwogICAgICAgIHVuc2lnbmVkIGlu
dCBtYXBwZWRfY291bnQ7Cgp9IExTQV9RX0xPT0tVUF9OQU1FUzsKCgp0eXBlZGVmIHN0cnVjdCBs
c2Ffcl9sb29rdXBfbmFtZXMKewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfZG9tX3JlZjsKICAg
ICAgICBET01fUl9SRUYgKmRvbV9yZWY7CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmll
czsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudHJpZXM7CiAgICAgICAgdW5zaWduZWQgaW50
IG51bV9lbnRyaWVzMjsKICAgICAgICBET01fUklEMiAqZG9tX3JpZDsKCiAgICAgICAgdW5zaWdu
ZWQgaW50IG1hcHBlZF9jb3VudDsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwp9IExTQV9SX0xP
T0tVUF9OQU1FUzsKCgoKCnR5cGVkZWYgc3RydWN0IGxzYV9xX29wZW5fc2VjcmV0CnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgZHVtbXk7Cn0gTFNBX1FfT1BFTl9TRUNSRVQ7CgoKCnR5cGVkZWYgc3Ry
dWN0IGxzYV9yX29wZW5fc2VjcmV0CnsKICAgICAgICB1bnNpZ25lZCBpbnQgZHVtbXkxOwogICAg
ICAgIHVuc2lnbmVkIGludCBkdW1teTI7CiAgICAgICAgdW5zaWduZWQgaW50IGR1bW15MzsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZHVtbXk0OwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKfSBMU0Ff
Ul9PUEVOX1NFQ1JFVDsKCnR5cGVkZWYgc3RydWN0IGxzYV9lbnVtX3ByaXZfZW50cnkKewogICAg
ICAgIFVOSUhEUiBoZHJfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgbHVpZF9sb3c7CiAgICAg
ICAgdW5zaWduZWQgaW50IGx1aWRfaGlnaDsKICAgICAgICBVTklTVFIyIG5hbWU7Cgp9IExTQV9Q
UklWX0VOVFJZOwoKCnR5cGVkZWYgc3RydWN0IGxzYV9xX2VudW1fcHJpdnMKewogICAgICAgIFBP
TElDWV9ITkQgcG9sOwogICAgICAgIHVuc2lnbmVkIGludCBlbnVtX2NvbnRleHQ7CiAgICAgICAg
dW5zaWduZWQgaW50IHByZWZfbWF4X2xlbmd0aDsKfSBMU0FfUV9FTlVNX1BSSVZTOwoKdHlwZWRl
ZiBzdHJ1Y3QgbHNhX3JfZW51bV9wcml2cwp7CiAgICAgICAgdW5zaWduZWQgaW50IGVudW1fY29u
dGV4dDsKICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQ7CiAgICAgICAgdW5zaWduZWQgaW50IHB0
cjsKICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQxOwoKICAgICAgICBMU0FfUFJJVl9FTlRSWSAq
cHJpdnM7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKfSBMU0FfUl9FTlVNX1BSSVZTOwoKCnR5
cGVkZWYgc3RydWN0IGxzYV9xX3ByaXZfZ2V0X2Rpc3BuYW1lCnsKICAgICAgICBQT0xJQ1lfSE5E
IHBvbDsKICAgICAgICBVTklIRFIgaGRyX25hbWU7CiAgICAgICAgVU5JU1RSMiBuYW1lOwogICAg
ICAgIHVuc2lnbmVkIHNob3J0IGxhbmdfaWQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbGFuZ19p
ZF9zeXM7Cn0gTFNBX1FfUFJJVl9HRVRfRElTUE5BTUU7Cgp0eXBlZGVmIHN0cnVjdCBsc2Ffcl9w
cml2X2dldF9kaXNwbmFtZQp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9pbmZvOwogICAgICAg
IFVOSUhEUiBoZHJfZGVzYzsKICAgICAgICBVTklTVFIyIGRlc2M7CgogICAgICAgIHVuc2lnbmVk
IHNob3J0IGxhbmdfaWQ7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKfSBMU0FfUl9QUklWX0dF
VF9ESVNQTkFNRTsKCgp0eXBlZGVmIHN0cnVjdCBsc2FfcV9lbnVtX2FjY291bnRzCnsKICAgICAg
ICBQT0xJQ1lfSE5EIHBvbDsKICAgICAgICB1bnNpZ25lZCBpbnQgZW51bV9jb250ZXh0OwogICAg
ICAgIHVuc2lnbmVkIGludCBwcmVmX21heF9sZW5ndGg7Cn0gTFNBX1FfRU5VTV9BQ0NPVU5UUzsK
Cgp0eXBlZGVmIHN0cnVjdCBsc2Ffcl9lbnVtX2FjY291bnRzCnsKICAgICAgICB1bnNpZ25lZCBp
bnQgZW51bV9jb250ZXh0OwogICAgICAgIExTQV9TSURfRU5VTSBzaWRzOwogICAgICAgIE5UU1RB
VFVTIHN0YXR1czsKfSBMU0FfUl9FTlVNX0FDQ09VTlRTOwoKCgp0eXBlZGVmIHN0cnVjdCBsc2Ff
cV91bmtfZ2V0X2Nvbm51c2VyCnsKICB1bnNpZ25lZCBpbnQgcHRyX3Nydm5hbWU7CiAgVU5JU1RS
MiB1bmkyX3Nydm5hbWU7CiAgdW5zaWduZWQgaW50IHVuazE7CiAgdW5zaWduZWQgaW50IHVuazI7
CiAgdW5zaWduZWQgaW50IHVuazM7Cn0gTFNBX1FfVU5LX0dFVF9DT05OVVNFUjsKCgp0eXBlZGVm
IHN0cnVjdCBsc2Ffcl91bmtfZ2V0X2Nvbm51c2VyCnsKICB1bnNpZ25lZCBpbnQgcHRyX3VzZXJf
bmFtZTsKICBVTklIRFIgaGRyX3VzZXJfbmFtZTsKICBVTklTVFIyIHVuaTJfdXNlcl9uYW1lOwoK
ICB1bnNpZ25lZCBpbnQgdW5rMTsKCiAgdW5zaWduZWQgaW50IHB0cl9kb21fbmFtZTsKICBVTklI
RFIgaGRyX2RvbV9uYW1lOwogIFVOSVNUUjIgdW5pMl9kb21fbmFtZTsKCiAgTlRTVEFUVVMgc3Rh
dHVzOwp9IExTQV9SX1VOS19HRVRfQ09OTlVTRVI7CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3Ffb3Bl
bmFjY291bnQKewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIERPTV9TSUQyIHNpZDsK
ICAgICAgICB1bnNpZ25lZCBpbnQgYWNjZXNzOwp9IExTQV9RX09QRU5BQ0NPVU5UOwoKdHlwZWRl
ZiBzdHJ1Y3QgbHNhX3Jfb3BlbmFjY291bnQKewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAg
ICAgIE5UU1RBVFVTIHN0YXR1czsKfSBMU0FfUl9PUEVOQUNDT1VOVDsKCnR5cGVkZWYgc3RydWN0
IGxzYV9xX2VudW1wcml2c2FjY291bnQKewogICAgICAgIFBPTElDWV9ITkQgcG9sOwp9IExTQV9R
X0VOVU1QUklWU0FDQ09VTlQ7CgoKdHlwZWRlZiBzdHJ1Y3QgTFVJRAp7CiAgICAgICAgdW5zaWdu
ZWQgaW50IGxvdzsKICAgICAgICB1bnNpZ25lZCBpbnQgaGlnaDsKfSBMVUlEOwoKdHlwZWRlZiBz
dHJ1Y3QgTFVJRF9BVFRSCnsKICAgICAgICBMVUlEIGx1aWQ7CiAgICAgICAgdW5zaWduZWQgaW50
IGF0dHI7Cn0gTFVJRF9BVFRSIDsKCnR5cGVkZWYgc3RydWN0IHByaXZpbGVnZV9zZXQKewogICAg
ICAgIHVuc2lnbmVkIGludCBjb3VudDsKICAgICAgICB1bnNpZ25lZCBpbnQgY29udHJvbDsKICAg
ICAgICBMVUlEX0FUVFIgKnNldDsKfSBQUklWSUxFR0VfU0VUOwoKdHlwZWRlZiBzdHJ1Y3QgbHNh
X3JfZW51bXByaXZzYWNjb3VudAp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsKICAgICAgICB1
bnNpZ25lZCBpbnQgY291bnQ7CiAgICAgICAgUFJJVklMRUdFX1NFVCBzZXQ7CiAgICAgICAgTlRT
VEFUVVMgc3RhdHVzOwp9IExTQV9SX0VOVU1QUklWU0FDQ09VTlQ7Cgp0eXBlZGVmIHN0cnVjdCBs
c2FfcV9nZXRzeXN0ZW1hY2NvdW50CnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKfSBMU0FfUV9H
RVRTWVNURU1BQ0NPVU5UOwoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3JfZ2V0c3lzdGVtYWNjb3VudAp7
CiAgICAgICAgdW5zaWduZWQgaW50IGFjY2VzczsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0g
TFNBX1JfR0VUU1lTVEVNQUNDT1VOVDsKCgp0eXBlZGVmIHN0cnVjdCBsc2FfcV9zZXRzeXN0ZW1h
Y2NvdW50CnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAgICB1bnNpZ25lZCBpbnQgYWNj
ZXNzOwp9IExTQV9RX1NFVFNZU1RFTUFDQ09VTlQ7Cgp0eXBlZGVmIHN0cnVjdCBsc2Ffcl9zZXRz
eXN0ZW1hY2NvdW50CnsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0gTFNBX1JfU0VUU1lTVEVN
QUNDT1VOVDsKCgp0eXBlZGVmIHN0cnVjdCBsc2FfcV9sb29rdXBwcml2dmFsdWUKewogICAgICAg
IFBPTElDWV9ITkQgcG9sOwogICAgICAgIFVOSUhEUiBoZHJfcmlnaHQ7CiAgICAgICAgVU5JU1RS
MiB1bmkyX3JpZ2h0Owp9IExTQV9RX0xPT0tVUFBSSVZWQUxVRTsKCnR5cGVkZWYgc3RydWN0IGxz
YV9yX2xvb2t1cHByaXZ2YWx1ZQp7CiAgICAgICAgTFVJRCBsdWlkOwogICAgICAgIE5UU1RBVFVT
IHN0YXR1czsKfSBMU0FfUl9MT09LVVBQUklWVkFMVUU7CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3Ff
YWRkcHJpdnMKewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIHVuc2lnbmVkIGludCBj
b3VudDsKICAgICAgICBQUklWSUxFR0VfU0VUIHNldDsKfSBMU0FfUV9BRERQUklWUzsKCnR5cGVk
ZWYgc3RydWN0IGxzYV9yX2FkZHByaXZzCnsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0gTFNB
X1JfQUREUFJJVlM7CgoKdHlwZWRlZiBzdHJ1Y3QgbHNhX3FfcmVtb3ZlcHJpdnMKewogICAgICAg
IFBPTElDWV9ITkQgcG9sOwogICAgICAgIHVuc2lnbmVkIGludCBhbGxyaWdodHM7CiAgICAgICAg
dW5zaWduZWQgaW50IHB0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQ7CiAgICAgICAgUFJJ
VklMRUdFX1NFVCBzZXQ7Cn0gTFNBX1FfUkVNT1ZFUFJJVlM7Cgp0eXBlZGVmIHN0cnVjdCBsc2Ff
cl9yZW1vdmVwcml2cwp7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwp9IExTQV9SX1JFTU9WRVBS
SVZTOwojIDI3OSAiaW5jbHVkZS9udGRvbWFpbi5oIiAyCiMgMSAiaW5jbHVkZS9ycGNfbmV0bG9n
b24uaCIgMQojIDEyNSAiaW5jbHVkZS9ycGNfbmV0bG9nb24uaCIKdHlwZWRlZiBzdHJ1Y3QgbmV0
X3VzZXJfaW5mb18zCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3VzZXJfaW5mbzsKCiAgICAg
ICAgTlRUSU1FIGxvZ29uX3RpbWU7CiAgICAgICAgTlRUSU1FIGxvZ29mZl90aW1lOwogICAgICAg
IE5UVElNRSBraWNrb2ZmX3RpbWU7CiAgICAgICAgTlRUSU1FIHBhc3NfbGFzdF9zZXRfdGltZTsK
ICAgICAgICBOVFRJTUUgcGFzc19jYW5fY2hhbmdlX3RpbWU7CiAgICAgICAgTlRUSU1FIHBhc3Nf
bXVzdF9jaGFuZ2VfdGltZTsKCiAgICAgICAgVU5JSERSIGhkcl91c2VyX25hbWU7CiAgICAgICAg
VU5JSERSIGhkcl9mdWxsX25hbWU7CiAgICAgICAgVU5JSERSIGhkcl9sb2dvbl9zY3JpcHQ7CiAg
ICAgICAgVU5JSERSIGhkcl9wcm9maWxlX3BhdGg7CiAgICAgICAgVU5JSERSIGhkcl9ob21lX2Rp
cjsKICAgICAgICBVTklIRFIgaGRyX2Rpcl9kcml2ZTsKCiAgICAgICAgdW5zaWduZWQgc2hvcnQg
bG9nb25fY291bnQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgYmFkX3B3X2NvdW50OwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgdXNlcl9yaWQ7CiAgICAgICAgdW5zaWduZWQgaW50IGdyb3VwX3JpZDsK
CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9ncm91cHM7CiAgICAgICAgdW5zaWduZWQgaW50IGJ1
ZmZlcl9ncm91cHM7CiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfZmxnczsKCiAgICAgICAgdW5z
aWduZWQgY2hhciB1c2VyX3Nlc3Nfa2V5WzE2XTsKCiAgICAgICAgVU5JSERSIGhkcl9sb2dvbl9z
cnY7CiAgICAgICAgVU5JSERSIGhkcl9sb2dvbl9kb207CgogICAgICAgIHVuc2lnbmVkIGludCBi
dWZmZXJfZG9tX2lkOwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGFkZGluZ1s0MF07CgogICAgICAg
IHVuc2lnbmVkIGludCBudW1fb3RoZXJfc2lkczsKICAgICAgICB1bnNpZ25lZCBpbnQgYnVmZmVy
X290aGVyX3NpZHM7CgogICAgICAgIFVOSVNUUjIgdW5pX3VzZXJfbmFtZTsKICAgICAgICBVTklT
VFIyIHVuaV9mdWxsX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfbG9nb25fc2NyaXB0OwogICAg
ICAgIFVOSVNUUjIgdW5pX3Byb2ZpbGVfcGF0aDsKICAgICAgICBVTklTVFIyIHVuaV9ob21lX2Rp
cjsKICAgICAgICBVTklTVFIyIHVuaV9kaXJfZHJpdmU7CgogICAgICAgIHVuc2lnbmVkIGludCBu
dW1fZ3JvdXBzMjsKICAgICAgICBET01fR0lEICpnaWRzOwoKICAgICAgICBVTklTVFIyIHVuaV9s
b2dvbl9zcnY7CiAgICAgICAgVU5JU1RSMiB1bmlfbG9nb25fZG9tOwoKICAgICAgICBET01fU0lE
MiBkb21fc2lkOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX290aGVyX2dyb3VwczsKICAgICAg
ICBET01fR0lEICpvdGhlcl9naWRzOwogICAgICAgIERPTV9TSUQyICpvdGhlcl9zaWRzOwoKfSBO
RVRfVVNFUl9JTkZPXzM7CgoKCnR5cGVkZWYgc3RydWN0IG5ldGxvZ29uXzFfaW5mbwp7CiAgICAg
ICAgdW5zaWduZWQgaW50IGZsYWdzOwogICAgICAgIHVuc2lnbmVkIGludCBwZGNfc3RhdHVzOwoK
fSBORVRMT0dPTl9JTkZPXzE7CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0bG9nb25fMl9pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgaW50IHBkY19zdGF0dXM7
CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl90cnVzdGVkX2RjX25hbWU7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHRjX3N0YXR1czsKICAgICAgICBVTklTVFIyIHVuaV90cnVzdGVkX2RjX25hbWU7Cgp9
IE5FVExPR09OX0lORk9fMjsKCgp0eXBlZGVmIHN0cnVjdCBuZXRsb2dvbl8zX2luZm8KewogICAg
ICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICB1bnNpZ25lZCBpbnQgbG9nb25fYXR0ZW1w
dHM7CiAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkXzE7CiAgICAgICAgdW5zaWduZWQgaW50
IHJlc2VydmVkXzI7CiAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkXzM7CiAgICAgICAgdW5z
aWduZWQgaW50IHJlc2VydmVkXzQ7CiAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkXzU7Cgp9
IE5FVExPR09OX0lORk9fMzsKIyAyMjkgImluY2x1ZGUvcnBjX25ldGxvZ29uLmgiCnR5cGVkZWYg
c3RydWN0IG5ldF9xX2xvZ29uX2N0cmxfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsK
ICAgICAgICBVTklTVFIyIHVuaV9zZXJ2ZXJfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgZnVu
Y3Rpb25fY29kZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcXVlcnlfbGV2ZWw7Cn0gTkVUX1FfTE9H
T05fQ1RSTDsKCgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3JfbG9nb25fY3RybF9pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgc3dpdGNoX3ZhbHVlOwogICAgICAgIHVuc2lnbmVkIGludCBwdHI7Cgog
ICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIE5FVExPR09OX0lORk9fMSBpbmZvMTsKICAg
ICAgICB9IGxvZ29uOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0gTkVUX1JfTE9HT05fQ1RS
TDsKIyAyNjAgImluY2x1ZGUvcnBjX25ldGxvZ29uLmgiCnR5cGVkZWYgc3RydWN0IG5ldF9xX2xv
Z29uX2N0cmwyX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgVU5JU1RS
MiB1bmlfc2VydmVyX25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCBmdW5jdGlvbl9jb2RlOwog
ICAgICAgIHVuc2lnbmVkIGludCBxdWVyeV9sZXZlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgc3dp
dGNoX3ZhbHVlOwoKfSBORVRfUV9MT0dPTl9DVFJMMjsKIyAyNzggImluY2x1ZGUvcnBjX25ldGxv
Z29uLmgiCnR5cGVkZWYgc3RydWN0IG5ldF9yX2xvZ29uX2N0cmwyX2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBzd2l0Y2hfdmFsdWU7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsKCiAgICAg
ICAgdW5pb24KICAgICAgICB7CiAgICAgICAgICAgICAgICBORVRMT0dPTl9JTkZPXzEgaW5mbzE7
CiAgICAgICAgICAgICAgICBORVRMT0dPTl9JTkZPXzIgaW5mbzI7CiAgICAgICAgICAgICAgICBO
RVRMT0dPTl9JTkZPXzMgaW5mbzM7CgogICAgICAgIH0gbG9nb247CgogICAgICAgIE5UU1RBVFVT
IHN0YXR1czsKCn0gTkVUX1JfTE9HT05fQ1RSTDI7CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3FfdHJ1
c3RfZG9tX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgVU5JU1RSMiB1
bmlfc2VydmVyX25hbWU7Cgp9IE5FVF9RX1RSVVNUX0RPTV9MSVNUOwoKCgoKdHlwZWRlZiBzdHJ1
Y3QgbmV0X3JfdHJ1c3RfZG9tX2luZm8KewogICAgICAgIFVOSVNUUjIgdW5pX3RydXN0X2RvbV9u
YW1lWzFdOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IE5FVF9SX1RSVVNUX0RPTV9MSVNU
OwoKCgp0eXBlZGVmIHN0cnVjdCBuZWdfZmxhZ3NfaW5mbwp7CiAgICB1bnNpZ25lZCBpbnQgbmVn
X2ZsYWdzOwoKfSBORUdfRkxBR1M7CgoKCnR5cGVkZWYgc3RydWN0IG5ldF9xX3JlcV9jaGFsX2lu
Zm8KewogICAgdW5zaWduZWQgaW50IHVuZG9jX2J1ZmZlcjsKICAgIFVOSVNUUjIgdW5pX2xvZ29u
X3NydjsKICAgIFVOSVNUUjIgdW5pX2xvZ29uX2NsbnQ7CiAgICBET01fQ0hBTCBjbG50X2NoYWw7
Cgp9IE5FVF9RX1JFUV9DSEFMOwoKCgp0eXBlZGVmIHN0cnVjdCBuZXRfcl9yZXFfY2hhbF9pbmZv
CnsKICAgICAgICBET01fQ0hBTCBzcnZfY2hhbDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0g
TkVUX1JfUkVRX0NIQUw7CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3FfYXV0aF9pbmZvCnsKICAgICAg
ICBET01fTE9HX0lORk8gY2xudF9pZDsKICAgICAgICBET01fQ0hBTCBjbG50X2NoYWw7Cn0gTkVU
X1FfQVVUSDsKCgp0eXBlZGVmIHN0cnVjdCBuZXRfcl9hdXRoX2luZm8KewogICAgICAgIERPTV9D
SEFMIHNydl9jaGFsOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKfSBORVRfUl9BVVRIOwoKCnR5
cGVkZWYgc3RydWN0IG5ldF9xX2F1dGgyX2luZm8KewogICAgRE9NX0xPR19JTkZPIGNsbnRfaWQ7
CiAgICBET01fQ0hBTCBjbG50X2NoYWw7CgogICAgTkVHX0ZMQUdTIGNsbnRfZmxnczsKCn0gTkVU
X1FfQVVUSF8yOwoKCgp0eXBlZGVmIHN0cnVjdCBuZXRfcl9hdXRoMl9pbmZvCnsKICAgICAgICBE
T01fQ0hBTCBzcnZfY2hhbDsKICAgICAgICBORUdfRkxBR1Mgc3J2X2ZsZ3M7CiAgICAgICAgTlRT
VEFUVVMgc3RhdHVzOwp9IE5FVF9SX0FVVEhfMjsKCgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3Ffc3J2
X3B3c2V0X2luZm8KewogICAgRE9NX0NMTlRfSU5GTyBjbG50X2lkOwogICAgdW5zaWduZWQgY2hh
ciBwd2RbMTZdOwoKfSBORVRfUV9TUlZfUFdTRVQ7CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3Jfc3J2
X3B3c2V0X2luZm8KewogICAgRE9NX0NSRUQgc3J2X2NyZWQ7CgogIE5UU1RBVFVTIHN0YXR1czsK
Cn0gTkVUX1JfU1JWX1BXU0VUOwoKCnR5cGVkZWYgc3RydWN0IG5ldF9uZXR3b3JrX2luZm9fMgp7
CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9pZF9pbmZvMjsKICAgICAgICBVTklIRFIgaGRyX2Rv
bWFpbl9uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBwYXJhbV9jdHJsOwogICAgICAgIERPTV9M
T0dPTl9JRCBsb2dvbl9pZDsKICAgICAgICBVTklIRFIgaGRyX3VzZXJfbmFtZTsKICAgICAgICBV
TklIRFIgaGRyX3drc3RhX25hbWU7CiAgICAgICAgdW5zaWduZWQgY2hhciBsbV9jaGFsWzhdOwog
ICAgICAgIFNUUkhEUiBoZHJfbnRfY2hhbF9yZXNwOwogICAgICAgIFNUUkhEUiBoZHJfbG1fY2hh
bF9yZXNwOwoKICAgICAgICBVTklTVFIyIHVuaV9kb21haW5fbmFtZTsKICAgICAgICBVTklTVFIy
IHVuaV91c2VyX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfd2tzdGFfbmFtZTsKICAgICAgICBT
VFJJTkcyIG50X2NoYWxfcmVzcDsKICAgICAgICBTVFJJTkcyIGxtX2NoYWxfcmVzcDsKCn0gTkVU
X0lEX0lORk9fMjsKCgp0eXBlZGVmIHN0cnVjdCBpZF9pbmZvXzEKewogICAgICAgIHVuc2lnbmVk
IGludCBwdHJfaWRfaW5mbzE7CiAgICAgICAgVU5JSERSIGhkcl9kb21haW5fbmFtZTsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcGFyYW1fY3RybDsKICAgICAgICBET01fTE9HT05fSUQgbG9nb25faWQ7
CiAgICAgICAgVU5JSERSIGhkcl91c2VyX25hbWU7CiAgICAgICAgVU5JSERSIGhkcl93a3N0YV9u
YW1lOwogICAgICAgIE9XRl9JTkZPIGxtX293ZjsKICAgICAgICBPV0ZfSU5GTyBudF9vd2Y7CiAg
ICAgICAgVU5JU1RSMiB1bmlfZG9tYWluX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfdXNlcl9u
YW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3drc3RhX25hbWU7Cgp9IE5FVF9JRF9JTkZPXzE7CgoK
CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X2lkX2luZm9fY3RyX2luZm8KewogIHVuc2lnbmVkIHNob3J0
IHN3aXRjaF92YWx1ZTsKCiAgdW5pb24KICB7CiAgICBORVRfSURfSU5GT18xIGlkMTsKICAgIE5F
VF9JRF9JTkZPXzIgaWQyOwoKICB9IGF1dGg7Cgp9IE5FVF9JRF9JTkZPX0NUUjsKCgp0eXBlZGVm
IHN0cnVjdCBzYW1faW5mbwp7CiAgRE9NX0NMTlRfSU5GTzIgY2xpZW50OwogIHVuc2lnbmVkIGlu
dCBwdHJfcnRuX2NyZWQ7CiAgRE9NX0NSRUQgcnRuX2NyZWQ7CiAgdW5zaWduZWQgc2hvcnQgbG9n
b25fbGV2ZWw7CiAgTkVUX0lEX0lORk9fQ1RSICpjdHI7Cgp9IERPTV9TQU1fSU5GTzsKCgp0eXBl
ZGVmIHN0cnVjdCBuZXRfcV9zYW1fbG9nb25faW5mbwp7CiAgICBET01fU0FNX0lORk8gc2FtX2lk
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHZhbGlkYXRpb25fbGV2ZWw7Cgp9IE5FVF9RX1NBTV9M
T0dPTjsKCgp0eXBlZGVmIHN0cnVjdCBuZXRfcl9zYW1fbG9nb25faW5mbwp7CiAgICB1bnNpZ25l
ZCBpbnQgYnVmZmVyX2NyZWRzOwogICAgRE9NX0NSRUQgc3J2X2NyZWRzOwoKICAgICAgICB1bnNp
Z25lZCBzaG9ydCBzd2l0Y2hfdmFsdWU7CiAgICBORVRfVVNFUl9JTkZPXzMgKnVzZXI7CgogICAg
dW5zaWduZWQgaW50IGF1dGhfcmVzcDsKCiAgTlRTVEFUVVMgc3RhdHVzOwoKfSBORVRfUl9TQU1f
TE9HT047CgoKCnR5cGVkZWYgc3RydWN0IG5ldF9xX3NhbV9sb2dvZmZfaW5mbwp7CiAgICBET01f
U0FNX0lORk8gc2FtX2lkOwoKfSBORVRfUV9TQU1fTE9HT0ZGOwoKCnR5cGVkZWYgc3RydWN0IG5l
dF9yX3NhbV9sb2dvZmZfaW5mbwp7CiAgICB1bnNpZ25lZCBpbnQgYnVmZmVyX2NyZWRzOwogICAg
RE9NX0NSRUQgc3J2X2NyZWRzOwoKICBOVFNUQVRVUyBzdGF0dXM7Cgp9IE5FVF9SX1NBTV9MT0dP
RkY7CgoKdHlwZWRlZiBzdHJ1Y3QgbmV0X3Ffc2FtX3N5bmNfaW5mbwp7CiAgICAgICAgVU5JU1RS
MiB1bmlfc3J2X25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfY2xpX25hbWU7CiAgICAgICAgRE9N
X0NSRUQgY2xpX2NyZWRzOwogICAgICAgIERPTV9DUkVEIHJldF9jcmVkczsKCiAgICAgICAgdW5z
aWduZWQgaW50IGRhdGFiYXNlX2lkOwogICAgICAgIHVuc2lnbmVkIGludCByZXN0YXJ0X3N0YXRl
OwogICAgICAgIHVuc2lnbmVkIGludCBzeW5jX2NvbnRleHQ7CgogICAgICAgIHVuc2lnbmVkIGlu
dCBtYXhfc2l6ZTsKCn0gTkVUX1FfU0FNX1NZTkM7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX2RlbHRh
X2hkcl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHR5cGUyOwogICAgICAgIHVuc2lnbmVkIGludCB0YXJnZXRfcmlkOwoKICAgICAgICB1
bnNpZ25lZCBpbnQgdHlwZTM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9kZWx0YTsKCn0gU0FN
X0RFTFRBX0hEUjsKCgp0eXBlZGVmIHN0cnVjdCBzYW1fZG9tYWluX2luZm9faW5mbwp7CiAgICAg
ICAgVU5JSERSIGhkcl9kb21fbmFtZTsKICAgICAgICBVTklIRFIgaGRyX29lbV9pbmZvOwoKICAg
ICAgICBVSU5UNjRfUyBmb3JjZV9sb2dvZmY7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbWluX3B3
ZF9sZW47CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHdkX2hpc3RvcnlfbGVuOwogICAgICAgIFVJ
TlQ2NF9TIG1heF9wd2RfYWdlOwogICAgICAgIFVJTlQ2NF9TIG1pbl9wd2RfYWdlOwogICAgICAg
IFVJTlQ2NF9TIGRvbV9tb2RfY291bnQ7CiAgICAgICAgTlRUSU1FIGNyZWF0aW9uX3RpbWU7Cgog
ICAgICAgIEJVRkhEUjIgaGRyX3NlY19kZXNjOwogICAgICAgIFVOSUhEUiBoZHJfdW5rbm93bjsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIHJlc2VydmVkWzQwXTsKCiAgICAgICAgVU5JU1RSMiB1bmlf
ZG9tX25hbWU7CiAgICAgICAgVU5JU1RSMiBidWZfb2VtX2luZm87CgogICAgICAgIEJVRkZFUjQg
YnVmX3NlY19kZXNjOwogICAgICAgIFVOSVNUUjIgYnVmX3Vua25vd247Cgp9IFNBTV9ET01BSU5f
SU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBzYW1fZ3JvdXBfaW5mb19pbmZvCnsKICAgICAgICBVTklI
RFIgaGRyX2dycF9uYW1lOwogICAgICAgIERPTV9HSUQgZ2lkOwogICAgICAgIFVOSUhEUiBoZHJf
Z3JwX2Rlc2M7CiAgICAgICAgQlVGSERSMiBoZHJfc2VjX2Rlc2M7CiAgICAgICAgdW5zaWduZWQg
Y2hhciByZXNlcnZlZFs0OF07CgogICAgICAgIFVOSVNUUjIgdW5pX2dycF9uYW1lOwogICAgICAg
IFVOSVNUUjIgdW5pX2dycF9kZXNjOwogICAgICAgIEJVRkZFUjQgYnVmX3NlY19kZXNjOwoKfSBT
QU1fR1JPVVBfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBzYW1fcGFzc3dkX2luZm8KewoKCiAgICAg
ICAgdW5zaWduZWQgaW50IHVua18wOwoKICAgICAgICBVTklIRFIgaGRyX2xtX3B3ZDsKICAgICAg
ICB1bnNpZ25lZCBjaGFyIGJ1Zl9sbV9wd2RbMTZdOwoKICAgICAgICBVTklIRFIgaGRyX250X3B3
ZDsKICAgICAgICB1bnNpZ25lZCBjaGFyIGJ1Zl9udF9wd2RbMTZdOwoKICAgICAgICBVTklIRFIg
aGRyX2VtcHR5X2xtOwogICAgICAgIFVOSUhEUiBoZHJfZW1wdHlfbnQ7Cgp9IFNBTV9QV0Q7CgoK
dHlwZWRlZiBzdHJ1Y3Qgc2FtX2FjY291bnRfaW5mb19pbmZvCnsKICAgICAgICBVTklIRFIgaGRy
X2FjY3RfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX2Z1bGxfbmFtZTsKCiAgICAgICAgdW5zaWdu
ZWQgaW50IHVzZXJfcmlkOwogICAgICAgIHVuc2lnbmVkIGludCBncm91cF9yaWQ7CgogICAgICAg
IFVOSUhEUiBoZHJfaG9tZV9kaXI7CiAgICAgICAgVU5JSERSIGhkcl9kaXJfZHJpdmU7CiAgICAg
ICAgVU5JSERSIGhkcl9sb2dvbl9zY3JpcHQ7CiAgICAgICAgVU5JSERSIGhkcl9hY2N0X2Rlc2M7
CiAgICAgICAgVU5JSERSIGhkcl93b3Jrc3RhdGlvbnM7CgogICAgICAgIE5UVElNRSBsb2dvbl90
aW1lOwogICAgICAgIE5UVElNRSBsb2dvZmZfdGltZTsKCiAgICAgICAgdW5zaWduZWQgaW50IGxv
Z29uX2RpdnM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9sb2dvbl9ocnM7CgogICAgICAgIHVu
c2lnbmVkIHNob3J0IGJhZF9wd2RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbG9nb25f
Y291bnQ7CiAgICAgICAgTlRUSU1FIHB3ZF9sYXN0X3NldF90aW1lOwogICAgICAgIE5UVElNRSBh
Y2N0X2V4cGlyeV90aW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQgYWNiX2luZm87CiAgICAgICAg
dW5zaWduZWQgY2hhciBudF9wd2RbMTZdOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbG1fcHdkWzE2
XTsKICAgICAgICB1bnNpZ25lZCBjaGFyIG50X3B3ZF9wcmVzZW50OwogICAgICAgIHVuc2lnbmVk
IGNoYXIgbG1fcHdkX3ByZXNlbnQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBwd2RfZXhwaXJlZDsK
CiAgICAgICAgVU5JSERSIGhkcl9jb21tZW50OwogICAgICAgIFVOSUhEUiBoZHJfcGFyYW1ldGVy
czsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb3VudHJ5OwogICAgICAgIHVuc2lnbmVkIHNob3J0
IGNvZGVwYWdlOwoKICAgICAgICBCVUZIRFIyIGhkcl9zZWNfZGVzYzsKCiAgICAgICAgVU5JSERS
IGhkcl9wcm9maWxlOwogICAgICAgIFVOSUhEUiBoZHJfcmVzZXJ2ZWRbM107CiAgICAgICAgdW5z
aWduZWQgaW50IGR3X3Jlc2VydmVkWzRdOwoKCiAgICAgICAgVU5JU1RSMiB1bmlfYWNjdF9uYW1l
OwogICAgICAgIFVOSVNUUjIgdW5pX2Z1bGxfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9ob21l
X2RpcjsKICAgICAgICBVTklTVFIyIHVuaV9kaXJfZHJpdmU7CiAgICAgICAgVU5JU1RSMiB1bmlf
bG9nb25fc2NyaXB0OwogICAgICAgIFVOSVNUUjIgdW5pX2FjY3RfZGVzYzsKICAgICAgICBVTklT
VFIyIHVuaV93b3Jrc3RhdGlvbnM7CgogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duMTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjI7CgogICAgICAgIEJVRkZFUjQgYnVmX2xvZ29uX2hy
czsKICAgICAgICBVTklTVFIyIHVuaV9jb21tZW50OwogICAgICAgIFVOSVNUUjIgdW5pX3BhcmFt
ZXRlcnM7CiAgICAgICAgU0FNX1BXRCBwYXNzOwogICAgICAgIEJVRkZFUjQgYnVmX3NlY19kZXNj
OwogICAgICAgIFVOSVNUUjIgdW5pX3Byb2ZpbGU7Cgp9IFNBTV9BQ0NPVU5UX0lORk87CgoKdHlw
ZWRlZiBzdHJ1Y3Qgc2FtX2dyb3VwX21lbV9pbmZvX2luZm8KewogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHJfcmlkczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2F0dHJpYnM7CiAgICAgICAgdW5z
aWduZWQgaW50IG51bV9tZW1iZXJzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgdW5rbm93blsxNl07
CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fbWVtYmVyczI7CiAgICAgICAgdW5zaWduZWQgaW50
ICpyaWRzOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX21lbWJlcnMzOwogICAgICAgIHVuc2ln
bmVkIGludCAqYXR0cmliczsKCn0gU0FNX0dST1VQX01FTV9JTkZPOwoKCnR5cGVkZWYgc3RydWN0
IHNhbV9hbGlhc19pbmZvX2luZm8KewogICAgICAgIFVOSUhEUiBoZHJfYWxzX25hbWU7CiAgICAg
ICAgdW5zaWduZWQgaW50IGFsc19yaWQ7CiAgICAgICAgQlVGSERSMiBoZHJfc2VjX2Rlc2M7CiAg
ICAgICAgVU5JSERSIGhkcl9hbHNfZGVzYzsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJlc2VydmVk
WzQwXTsKCiAgICAgICAgVU5JU1RSMiB1bmlfYWxzX25hbWU7CiAgICAgICAgQlVGRkVSNCBidWZf
c2VjX2Rlc2M7CiAgICAgICAgVU5JU1RSMiB1bmlfYWxzX2Rlc2M7Cgp9IFNBTV9BTElBU19JTkZP
OwoKCnR5cGVkZWYgc3RydWN0IHNhbV9hbGlhc19tZW1faW5mb19pbmZvCnsKICAgICAgICB1bnNp
Z25lZCBpbnQgbnVtX21lbWJlcnM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9tZW1iZXJzOwog
ICAgICAgIHVuc2lnbmVkIGNoYXIgdW5rbm93blsxNl07CgogICAgICAgIHVuc2lnbmVkIGludCBu
dW1fc2lkczsKICAgICAgICB1bnNpZ25lZCBpbnQgKnB0cl9zaWRzOwogICAgICAgIERPTV9TSUQy
ICpzaWRzOwoKfSBTQU1fQUxJQVNfTUVNX0lORk87CgoKCnR5cGVkZWYgc3RydWN0CnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgdW5rbm93bjE7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24yOwog
ICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duMzsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93
bjQ7CiAgICAgICAgdW5zaWduZWQgaW50IGNvdW50MTsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRy
MTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb3VudDI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQg
Y291bnQzOwogICAgICAgIHVuc2lnbmVkIGludCBwdHIyOwogICAgICAgIHVuc2lnbmVkIGludCBw
dHIzOwoKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjRiOwogICAgICAgIHVuc2lnbmVkIGlu
dCB1bmtub3duNTsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjY7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHVua25vd243OwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duODsKICAgICAgICB1
bnNpZ25lZCBpbnQgdW5rbm93bjk7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24xMDsKICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjExOwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3du
MTI7CgogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duMTM7CiAgICAgICAgdW5zaWduZWQgaW50
IHVua25vd24xNDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjE1OwogICAgICAgIHVuc2ln
bmVkIGludCB1bmtub3duMTY7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24xNzsKCiAgICAg
ICAgdW5zaWduZWQgaW50IGNvdW50NDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjE4OwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjE5OwoKICAgICAgICB1bnNpZ25lZCBpbnQgdW5r
bm93bjIwOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyNDsKCiAgICAgICAgVU5JU1RSMiBkb21h
aW5fbmFtZTsKICAgICAgICBET01fU0lEMiBkb21haW5fc2lkOwoKfSBTQU1fREVMVEFfRE9NOwoK
CnR5cGVkZWYgc3RydWN0CnsKICAgICAgICB1bnNpZ25lZCBpbnQgYnVmX3NpemU7CiAgICAgICAg
U0VDX0RFU0MgKnNlY19kZXNjOwogICAgICAgIERPTV9TSUQyIHNpZDsKICAgICAgICBVTklIRFIg
aGRyX2RvbWFpbjsKCiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24wOwogICAgICAgIHVuc2ln
bmVkIGludCB1bmtub3duMTsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjI7CgogICAgICAg
IHVuc2lnbmVkIGludCBidWZfc2l6ZTI7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsKCiAgICAg
ICAgdW5zaWduZWQgaW50IHVua25vd24zOwogICAgICAgIFVOSVNUUjIgZG9tYWluOwoKfSBTQU1f
REVMVEFfVU5LMEU7CgoKdHlwZWRlZiBzdHJ1Y3QKewogICAgICAgIHVuc2lnbmVkIGludCBidWZf
c2l6ZTsKICAgICAgICBTRUNfREVTQyAqc2VjX2Rlc2M7CiAgICAgICAgRE9NX1NJRDIgc2lkOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHJpdl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVz
ZXJ2ZWQxOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyMTsKICAgICAgICB1bnNpZ25lZCBpbnQg
cHRyMjsKCiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24xOwogICAgICAgIHVuc2lnbmVkIGlu
dCB1bmtub3duMjsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHVua25vd240OwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duNTsKICAgICAgICB1
bnNpZ25lZCBpbnQgdW5rbm93bjY7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd243OwogICAg
ICAgIHVuc2lnbmVkIGludCB1bmtub3duODsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjk7
CgogICAgICAgIHVuc2lnbmVkIGludCBidWZfc2l6ZTI7CiAgICAgICAgdW5zaWduZWQgaW50IHB0
cjM7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24xMDsKCiAgICAgICAgdW5zaWduZWQgaW50
IGF0dHJpYnV0ZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCBpbnQgKmF0dHJpYnV0ZXM7CgogICAg
ICAgIHVuc2lnbmVkIGludCBwcml2bGlzdF9jb3VudDsKICAgICAgICBVTklIRFIgKmhkcl9wcml2
c2xpc3Q7CiAgICAgICAgVU5JU1RSMiAqdW5pX3ByaXZzbGlzdDsKCgp9IFNBTV9ERUxUQV9QUklW
UzsKCgp0eXBlZGVmIHN0cnVjdAp7CiAgICAgICAgdW5zaWduZWQgaW50IGJ1Zl9zaXplOwogICAg
ICAgIFNFQ19ERVNDICpzZWNfZGVzYzsKICAgICAgICBVTklTVFIyIHNlY3JldDsKCiAgICAgICAg
dW5zaWduZWQgaW50IGNvdW50MTsKICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQyOwogICAgICAg
IHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgTlRUSU1FIHRpbWUxOwogICAgICAgIHVuc2lnbmVk
IGludCBjb3VudDM7CiAgICAgICAgdW5zaWduZWQgaW50IGNvdW50NDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgcHRyMjsKICAgICAgICBOVFRJTUUgdGltZTI7CiAgICAgICAgdW5zaWduZWQgaW50IHVu
a25vdzE7CgogICAgICAgIHVuc2lnbmVkIGludCBidWZfc2l6ZTI7CiAgICAgICAgdW5zaWduZWQg
aW50IHB0cjM7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vdzI7CgogICAgICAgIHVuc2lnbmVk
IGludCBjaGFsX2xlbjsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQxOwogICAgICAgIHVu
c2lnbmVkIGludCBjaGFsX2xlbjI7CiAgICAgICAgdW5zaWduZWQgY2hhciBjaGFsWzE2XTsKCiAg
ICAgICAgdW5zaWduZWQgaW50IGtleV9sZW47CiAgICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVk
MjsKICAgICAgICB1bnNpZ25lZCBpbnQga2V5X2xlbjI7CiAgICAgICAgdW5zaWduZWQgY2hhciBr
ZXlbOF07CgogICAgICAgIHVuc2lnbmVkIGludCBidWZfc2l6ZTM7CiAgICAgICAgU0VDX0RFU0Mg
KnNlY19kZXNjMjsKCn0gU0FNX0RFTFRBX1VOSzEyOwoKCnR5cGVkZWYgc3RydWN0CnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgc2VxbnVtOwogICAgICAgIHVuc2lnbmVkIGludCBkb21fbW9kX2NvdW50
X3B0cjsKICAgICAgICBVSU5UNjRfUyBkb21fbW9kX2NvdW50Owp9IFNBTV9ERUxUQV9TVEFNUDsK
CnR5cGVkZWYgdW5pb24gc2FtX2RlbHRhX2N0cl9pbmZvCnsKICAgICAgICBTQU1fRE9NQUlOX0lO
Rk8gZG9tYWluX2luZm8gOwogICAgICAgIFNBTV9HUk9VUF9JTkZPIGdyb3VwX2luZm8gOwogICAg
ICAgIFNBTV9BQ0NPVU5UX0lORk8gYWNjb3VudF9pbmZvOwogICAgICAgIFNBTV9HUk9VUF9NRU1f
SU5GTyBncnBfbWVtX2luZm87CiAgICAgICAgU0FNX0FMSUFTX0lORk8gYWxpYXNfaW5mbyA7CiAg
ICAgICAgU0FNX0FMSUFTX01FTV9JTkZPIGFsc19tZW1faW5mbzsKICAgICAgICBTQU1fREVMVEFf
RE9NIGRvbV9pbmZvOwogICAgICAgIFNBTV9ERUxUQV9QUklWUyBwcml2c19pbmZvOwogICAgICAg
IFNBTV9ERUxUQV9TVEFNUCBzdGFtcDsKICAgICAgICBTQU1fREVMVEFfVU5LMEUgdW5rMGVfaW5m
bzsKICAgICAgICBTQU1fREVMVEFfVU5LMTIgdW5rMTJfaW5mbzsKfSBTQU1fREVMVEFfQ1RSOwoK
CnR5cGVkZWYgc3RydWN0IG5ldF9yX3NhbV9zeW5jX2luZm8KewogICAgICAgIERPTV9DUkVEIHNy
dl9jcmVkczsKCiAgICAgICAgdW5zaWduZWQgaW50IHN5bmNfY29udGV4dDsKCiAgICAgICAgdW5z
aWduZWQgaW50IHB0cl9kZWx0YXM7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9kZWx0YXM7CiAg
ICAgICAgdW5zaWduZWQgaW50IHB0cl9kZWx0YXMyOwogICAgICAgIHVuc2lnbmVkIGludCBudW1f
ZGVsdGFzMjsKCiAgICAgICAgU0FNX0RFTFRBX0hEUiAqaGRyX2RlbHRhczsKICAgICAgICBTQU1f
REVMVEFfQ1RSICpkZWx0YXM7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKfSBORVRfUl9TQU1f
U1lOQzsKCgp0eXBlZGVmIHN0cnVjdCBuZXRfcV9zYW1fZGVsdGFzX2luZm8KewogICAgICAgIFVO
SVNUUjIgdW5pX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX2NsaV9uYW1lOwogICAgICAg
IERPTV9DUkVEIGNsaV9jcmVkczsKICAgICAgICBET01fQ1JFRCByZXRfY3JlZHM7CgogICAgICAg
IHVuc2lnbmVkIGludCBkYXRhYmFzZV9pZDsKICAgICAgICBVSU5UNjRfUyBkb21fbW9kX2NvdW50
OwoKICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3NpemU7Cgp9IE5FVF9RX1NBTV9ERUxUQVM7CgoK
dHlwZWRlZiBzdHJ1Y3QgbmV0X3Jfc2FtX2RlbHRhc19pbmZvCnsKICAgICAgICBET01fQ1JFRCBz
cnZfY3JlZHM7CgogICAgICAgIFVJTlQ2NF9TIGRvbV9tb2RfY291bnQ7CgogICAgICAgIHVuc2ln
bmVkIGludCBwdHJfZGVsdGFzOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZGVsdGFzOwogICAg
ICAgIHVuc2lnbmVkIGludCBudW1fZGVsdGFzMjsKCiAgICAgICAgU0FNX0RFTFRBX0hEUiAqaGRy
X2RlbHRhczsKICAgICAgICBTQU1fREVMVEFfQ1RSICpkZWx0YXM7CgogICAgICAgIE5UU1RBVFVT
IHN0YXR1czsKfSBORVRfUl9TQU1fREVMVEFTOwojIDI4MCAiaW5jbHVkZS9udGRvbWFpbi5oIiAy
CiMgMSAiaW5jbHVkZS9ycGNfcmVnLmgiIDEKIyA3OCAiaW5jbHVkZS9ycGNfcmVnLmgiCnR5cGVk
ZWYgc3RydWN0IHFfcmVnX29wZW5faGtjcl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRy
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHVua25vd25fMDsKICAgICAgICB1bnNpZ25lZCBzaG9y
dCB1bmtub3duXzE7CiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwoKfSBSRUdfUV9PUEVOX0hL
Q1IgOwoKCnR5cGVkZWYgc3RydWN0IHJfcmVnX29wZW5faGtjcl9pbmZvCnsKICAgICAgICBQT0xJ
Q1lfSE5EIHBvbDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFJFR19SX09QRU5fSEtDUjsK
CgoKdHlwZWRlZiBzdHJ1Y3QgcV9yZWdfb3Blbl9oa2xtX2luZm8KewogICAgICAgIHVuc2lnbmVk
IGludCBwdHI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bl8wOwogICAgICAgIHVuc2ln
bmVkIHNob3J0IHVua25vd25fMTsKICAgICAgICB1bnNpZ25lZCBpbnQgYWNjZXNzX21hc2s7Cgp9
ClJFR19RX09QRU5fSEtMTTsKCgp0eXBlZGVmIHN0cnVjdCByX3JlZ19vcGVuX2hrbG1faW5mbwp7
CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfQpSRUdf
Ul9PUEVOX0hLTE07CgoKCnR5cGVkZWYgc3RydWN0IHFfcmVnX29wZW5faGt1X2luZm8KewogICAg
ICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bl8wOwog
ICAgICAgIHVuc2lnbmVkIHNob3J0IHVua25vd25fMTsKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2
ZWw7Cgp9IFJFR19RX09QRU5fSEtVOwoKCnR5cGVkZWYgc3RydWN0IHJfcmVnX29wZW5faGt1X2lu
Zm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0g
UkVHX1JfT1BFTl9IS1U7CgoKCnR5cGVkZWYgc3RydWN0IHFfcmVnX29wZW5fZmx1c2hfa2V5X2lu
Zm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoKfSBSRUdfUV9GTFVTSF9LRVk7CgoKdHlwZWRl
ZiBzdHJ1Y3Qgcl9yZWdfb3Blbl9mbHVzaF9rZXlfaW5mbwp7CiAgICAgICAgTlRTVEFUVVMgc3Rh
dHVzOwoKfSBSRUdfUl9GTFVTSF9LRVk7CgoKCnR5cGVkZWYgc3RydWN0IHFfcmVnX3NldF9rZXlf
c2VjX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoKICAgICAgICB1bnNpZ25lZCBpbnQg
c2VjX2luZm87CgogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgQlVGSERSIGhkcl9z
ZWM7CiAgICAgICAgU0VDX0RFU0NfQlVGICpkYXRhOwoKfSBSRUdfUV9TRVRfS0VZX1NFQzsKCgp0
eXBlZGVmIHN0cnVjdCByX3JlZ19zZXRfa2V5X3NlY19pbmZvCnsKICAgICAgICBOVFNUQVRVUyBz
dGF0dXM7Cgp9IFJFR19SX1NFVF9LRVlfU0VDOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3JlZ19nZXRf
a2V5X3NlY19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgdW5zaWduZWQg
aW50IHNlY19pbmZvOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIEJVRkhEUiBo
ZHJfc2VjOwogICAgICAgIFNFQ19ERVNDX0JVRiAqZGF0YTsKCn0gUkVHX1FfR0VUX0tFWV9TRUM7
CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9yZWdfZ2V0X2tleV9zZWNfaW5mbwp7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHNlY19pbmZvOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIEJVRkhE
UiBoZHJfc2VjOwogICAgICAgIFNFQ19ERVNDX0JVRiAqZGF0YTsKCiAgICAgICAgTlRTVEFUVVMg
c3RhdHVzOwoKfSBSRUdfUl9HRVRfS0VZX1NFQzsKCgp0eXBlZGVmIHN0cnVjdCBxX3JlZ19jcmVh
dGVfdmFsdWVfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CgogICAgICAgIFVOSUhEUiBo
ZHJfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9uYW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQg
dHlwZTsKCiAgICAgICAgQlVGRkVSMyAqYnVmX3ZhbHVlOwoKfSBSRUdfUV9DUkVBVEVfVkFMVUU7
CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9yZWdfY3JlYXRlX3ZhbHVlX2luZm8KewogICAgICAgIE5UU1RB
VFVTIHN0YXR1czsKCn0gUkVHX1JfQ1JFQVRFX1ZBTFVFOwoKCnR5cGVkZWYgc3RydWN0IHFfcmVn
X3F1ZXJ5X3ZhbHVlX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoKICAgICAgICB1bnNp
Z25lZCBpbnQgdmFsX2luZGV4OwoKICAgICAgICBVTklIRFIgaGRyX25hbWU7CiAgICAgICAgVU5J
U1RSMiB1bmlfbmFtZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl90eXBlOwogICAgICAgIHVu
c2lnbmVkIGludCB0eXBlOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3ZhbHVlOwogICAgICAg
IEJVRkZFUjIgYnVmX3ZhbHVlOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyMTsKICAgICAgICB1
bnNpZ25lZCBpbnQgbGVuX3ZhbHVlMTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cjI7CiAgICAg
ICAgdW5zaWduZWQgaW50IGxlbl92YWx1ZTI7Cgp9IFJFR19RX0VOVU1fVkFMVUU7CgoKdHlwZWRl
ZiBzdHJ1Y3Qgcl9yZWdfZW51bV92YWx1ZV9pbmZvCnsKICAgICAgICBVTklIRFIgaGRyX25hbWU7
CiAgICAgICAgVU5JU1RSMiB1bmlfbmFtZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl90eXBl
OwogICAgICAgIHVuc2lnbmVkIGludCB0eXBlOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Zh
bHVlOwogICAgICAgIEJVRkZFUjIgKmJ1Zl92YWx1ZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0
cjE7CiAgICAgICAgdW5zaWduZWQgaW50IGxlbl92YWx1ZTE7CgogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHIyOwogICAgICAgIHVuc2lnbmVkIGludCBsZW5fdmFsdWUyOwoKICAgICAgICBOVFNUQVRV
UyBzdGF0dXM7Cgp9IFJFR19SX0VOVU1fVkFMVUU7CgoKdHlwZWRlZiBzdHJ1Y3QgcV9yZWdfY3Jl
YXRlX2tleV9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBudF9wb2w7CgogICAgICAgIFVOSUhE
UiBoZHJfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9uYW1lOwoKICAgICAgICBVTklIRFIgaGRy
X2NsYXNzOwogICAgICAgIFVOSVNUUjIgdW5pX2NsYXNzOwoKICAgICAgICB1bnNpZ25lZCBpbnQg
cmVzZXJ2ZWQ7CiAgICAgICAgU0VDX0FDQ0VTUyBzYW1fYWNjZXNzOwoKICAgICAgICB1bnNpZ25l
ZCBpbnQgcHRyMTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VjX2luZm87CgogICAgICAgIHVuc2ln
bmVkIGludCBwdHIyOwogICAgICAgIEJVRkhEUiBoZHJfc2VjOwogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHIzOwogICAgICAgIFNFQ19ERVNDX0JVRiAqZGF0YTsKCiAgICAgICAgdW5zaWduZWQgaW50
IHVua25vd25fMjsKCn0gUkVHX1FfQ1JFQVRFX0tFWTsKCgp0eXBlZGVmIHN0cnVjdCByX3JlZ19j
cmVhdGVfa2V5X2luZm8KewogICAgICAgIFBPTElDWV9ITkQga2V5X3BvbDsKICAgICAgICB1bnNp
Z25lZCBpbnQgdW5rbm93bjsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBSRUdfUl9DUkVB
VEVfS0VZOwoKCnR5cGVkZWYgc3RydWN0IHFfcmVnX2RlbGV0ZV9rZXlfaW5mbwp7CiAgICAgICAg
UE9MSUNZX0hORCBwbnRfcG9sOwoKICAgICAgICBVTklIRFIgaGRyX25hbWU7CiAgICAgICAgVU5J
U1RSMiB1bmlfbmFtZTsKfSBSRUdfUV9ERUxFVEVfS0VZOwoKCnR5cGVkZWYgc3RydWN0IHJfcmVn
X2RlbGV0ZV9rZXlfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBrZXlfcG9sOwoKICAgICAgICBO
VFNUQVRVUyBzdGF0dXM7Cgp9IFJFR19SX0RFTEVURV9LRVk7CgoKdHlwZWRlZiBzdHJ1Y3QgcV9y
ZWdfZGVsZXRlX3ZhbF9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBudF9wb2w7CgogICAgICAg
IFVOSUhEUiBoZHJfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9uYW1lOwoKfSBSRUdfUV9ERUxF
VEVfVkFMVUU7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9yZWdfZGVsZXRlX3ZhbF9pbmZvCnsKICAgICAg
ICBQT0xJQ1lfSE5EIGtleV9wb2w7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gUkVHX1Jf
REVMRVRFX1ZBTFVFOwoKCnR5cGVkZWYgc3RydWN0IHFfcmVnX3F1ZXJ5X2luZm8KewogICAgICAg
IFBPTElDWV9ITkQgcG9sOwogICAgICAgIFVOSUhEUiBoZHJfY2xhc3M7CiAgICAgICAgVU5JU1RS
MiB1bmlfY2xhc3M7Cgp9IFJFR19RX1FVRVJZX0tFWTsKCgp0eXBlZGVmIHN0cnVjdCByX3JlZ19x
dWVyeV9rZXlfaW5mbwp7CiAgICAgICAgVU5JSERSIGhkcl9jbGFzczsKICAgICAgICBVTklTVFIy
IHVuaV9jbGFzczsKCiAgICAgICAgdW5zaWduZWQgaW50IG51bV9zdWJrZXlzOwogICAgICAgIHVu
c2lnbmVkIGludCBtYXhfc3Via2V5bGVuOwogICAgICAgIHVuc2lnbmVkIGludCBtYXhfc3Via2V5
c2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3ZhbHVlczsKICAgICAgICB1bnNpZ25lZCBp
bnQgbWF4X3ZhbG5hbWVsZW47CiAgICAgICAgdW5zaWduZWQgaW50IG1heF92YWxidWZzaXplOwog
ICAgICAgIHVuc2lnbmVkIGludCBzZWNfZGVzYzsKICAgICAgICBOVFRJTUUgbW9kX3RpbWU7Cgog
ICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gUkVHX1JfUVVFUllfS0VZOwoKCgp0eXBlZGVmIHN0
cnVjdCBxX3JlZ191bmtfMWFfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7Cgp9IFJFR19R
X1VOS18xQTsKCgp0eXBlZGVmIHN0cnVjdCByX3JlZ191bmtfMWFfaW5mbwp7CiAgICAgICAgdW5z
aWduZWQgaW50IHVua25vd247CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBSRUdfUl9VTktf
MUE7CgoKCnR5cGVkZWYgc3RydWN0IHJlZ19xX2Nsb3NlX2luZm8KewogICAgICAgIFBPTElDWV9I
TkQgcG9sOwoKfSBSRUdfUV9DTE9TRTsKCgp0eXBlZGVmIHN0cnVjdCByZWdfcl9jbG9zZV9pbmZv
CnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBS
RUdfUl9DTE9TRTsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9yZWdfZW51bV92YWx1ZV9pbmZvCnsKICAg
ICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgdW5zaWduZWQgaW50IGtleV9pbmRleDsKCiAg
ICAgICAgdW5zaWduZWQgc2hvcnQga2V5X25hbWVfbGVuOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IHVua25vd25fMTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cjE7CiAgICAgICAgdW5zaWduZWQg
aW50IHVua25vd25fMjsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZDFbOF07CgogICAgICAgIHVu
c2lnbmVkIGludCBwdHIyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGFkMls4XTsKCiAgICAgICAg
dW5zaWduZWQgaW50IHB0cjM7CiAgICAgICAgTlRUSU1FIHRpbWU7Cgp9IFJFR19RX0VOVU1fS0VZ
OwoKCnR5cGVkZWYgc3RydWN0IHJfcmVnX2VudW1fa2V5X2luZm8KewogICAgICAgIHVuc2lnbmVk
IHNob3J0IGtleV9uYW1lX2xlbjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzE7Cgog
ICAgICAgIHVuc2lnbmVkIGludCBwdHIxOwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzI7
CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fMzsKCiAgICAgICAgVU5JU1RSMyBrZXlfbmFt
ZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cjI7CiAgICAgICAgdW5zaWduZWQgY2hhciBwYWQy
WzhdOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyMzsKICAgICAgICBOVFRJTUUgdGltZTsKCiAg
ICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBSRUdfUl9FTlVNX0tFWTsKCgoKdHlwZWRlZiBzdHJ1
Y3QgcV9yZWdfaW5mb19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgVU5J
SERSIGhkcl90eXBlOwogICAgICAgIFVOSVNUUjIgdW5pX3R5cGU7CgogICAgICAgIHVuc2lnbmVk
IGludCBwdHJfcmVzZXJ2ZWQ7CgogICAgICAgIHVuc2lnbmVkIGludCBwdHJfYnVmOwogICAgICAg
IHVuc2lnbmVkIGludCBwdHJfYnVmc2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgYnVmc2l6ZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgYnVmX3VuazsKCiAgICAgICAgdW5zaWduZWQgaW50IHVuazE7
CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9idWZsZW47CiAgICAgICAgdW5zaWduZWQgaW50IGJ1
ZmxlbjsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9idWZsZW4yOwogICAgICAgIHVuc2lnbmVk
IGludCBidWZsZW4yOwoKfSBSRUdfUV9JTkZPOwoKCnR5cGVkZWYgc3RydWN0IHJfcmVnX2luZm9f
aW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl90eXBlOwogICAgICAgIHVuc2lnbmVkIGlu
dCB0eXBlOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3VuaV92YWw7CiAgICAgICAgQlVGRkVS
MiAqdW5pX3ZhbDsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9tYXhfbGVuOwogICAgICAgIHVu
c2lnbmVkIGludCBidWZfbWF4X2xlbjsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9sZW47CiAg
ICAgICAgdW5zaWduZWQgaW50IGJ1Zl9sZW47CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0g
UkVHX1JfSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9yZWdfb3Blbl9lbnRyeV9pbmZvCnsKICAg
ICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgVU5JSERSIGhkcl9uYW1lOwogICAgICAgIFVO
SVNUUjIgdW5pX25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzA7CiAgICAgICAg
dW5zaWduZWQgaW50IHVua25vd25fMTsKCn0gUkVHX1FfT1BFTl9FTlRSWTsKCgoKCnR5cGVkZWYg
c3RydWN0IHJfcmVnX29wZW5fZW50cnlfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CiAg
ICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBSRUdfUl9PUEVOX0VOVFJZOwoKCnR5cGVkZWYgc3Ry
dWN0IHFfcmVnX3NodXRkb3duX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfMDsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcHRyXzE7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl8yOwogICAg
ICAgIFVOSUhEUiBoZHJfbXNnOwogICAgICAgIFVOSVNUUjIgdW5pX21zZzsKICAgICAgICB1bnNp
Z25lZCBpbnQgdGltZW91dDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBmbGFnczsKCn0gUkVHX1Ff
U0hVVERPV047CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9yZWdfc2h1dGRvd25faW5mbwp7CiAgICAgICAg
TlRTVEFUVVMgc3RhdHVzOwoKfSBSRUdfUl9TSFVURE9XTjsKCgp0eXBlZGVmIHN0cnVjdCBxX3Jl
Z19hYm9ydF9zaHV0ZG93bl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3NlcnZlcjsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZXJ2ZXI7Cgp9IFJFR19RX0FCT1JUX1NIVVRET1dOOwoK
CnR5cGVkZWYgc3RydWN0IHJfcmVnX2Fib3J0X3NodXRkb3duX2luZm8KewogICAgICAgIE5UU1RB
VFVTIHN0YXR1czsKCn0gUkVHX1JfQUJPUlRfU0hVVERPV047CiMgMjgxICJpbmNsdWRlL250ZG9t
YWluLmgiIDIKIyAxICJpbmNsdWRlL3JwY19zYW1yLmgiIDEKIyAyOSAiaW5jbHVkZS9ycGNfc2Ft
ci5oIgojIDEgImluY2x1ZGUvcnBjX21pc2MuaCIgMQojIDMwICJpbmNsdWRlL3JwY19zYW1yLmgi
IDIKIyAxNTAgImluY2x1ZGUvcnBjX3NhbXIuaCIKdHlwZWRlZiBzdHJ1Y3QgX0RJU1BfVVNFUl9J
TkZPIHsKICAgICAgICBTQU1fQUNDT1VOVCAqc2FtOwp9IERJU1BfVVNFUl9JTkZPOwoKdHlwZWRl
ZiBzdHJ1Y3QgX0RJU1BfR1JPVVBfSU5GTyB7CiAgICAgICAgRE9NQUlOX0dSUCAqZ3JwOwp9IERJ
U1BfR1JPVVBfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBsb2dvbl9ob3Vyc19pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIGNoYXIgaG91cnNbMzJdOwoKfSBM
T0dPTl9IUlM7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX3VzZXJfaW5mb18yMwp7CgogICAgICAgIE5U
VElNRSBsb2dvbl90aW1lOwogICAgICAgIE5UVElNRSBsb2dvZmZfdGltZTsKICAgICAgICBOVFRJ
TUUga2lja29mZl90aW1lOwogICAgICAgIE5UVElNRSBwYXNzX2xhc3Rfc2V0X3RpbWU7CiAgICAg
ICAgTlRUSU1FIHBhc3NfY2FuX2NoYW5nZV90aW1lOwogICAgICAgIE5UVElNRSBwYXNzX211c3Rf
Y2hhbmdlX3RpbWU7CgogICAgICAgIFVOSUhEUiBoZHJfdXNlcl9uYW1lOwogICAgICAgIFVOSUhE
UiBoZHJfZnVsbF9uYW1lOwogICAgICAgIFVOSUhEUiBoZHJfaG9tZV9kaXI7CiAgICAgICAgVU5J
SERSIGhkcl9kaXJfZHJpdmU7CiAgICAgICAgVU5JSERSIGhkcl9sb2dvbl9zY3JpcHQ7CiAgICAg
ICAgVU5JSERSIGhkcl9wcm9maWxlX3BhdGg7CiAgICAgICAgVU5JSERSIGhkcl9hY2N0X2Rlc2Mg
OwogICAgICAgIFVOSUhEUiBoZHJfd29ya3N0YXRpb25zOwogICAgICAgIFVOSUhEUiBoZHJfdW5r
bm93bl9zdHIgOwogICAgICAgIFVOSUhEUiBoZHJfbXVuZ2VkX2RpYWwgOwoKICAgICAgICB1bnNp
Z25lZCBjaGFyIGxtX3B3ZFsxNl07CiAgICAgICAgdW5zaWduZWQgY2hhciBudF9wd2RbMTZdOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9yaWQ7CiAgICAgICAgdW5zaWduZWQgaW50IGdyb3Vw
X3JpZDsKCiAgICAgICAgdW5zaWduZWQgaW50IGFjYl9pbmZvOwoKICAgICAgICB1bnNpZ25lZCBp
bnQgdW5rbm93bl8zOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCBsb2dvbl9kaXZzOwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyX2xvZ29uX2hyczsKCiAgICAgICAgdW5zaWduZWQgY2hhciBwYWRk
aW5nMVs4XTsKCiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fNTsKCiAgICAgICAgdW5zaWdu
ZWQgY2hhciBwYXNzWzUxNl07CgogICAgICAgIFVOSVNUUjIgdW5pX3VzZXJfbmFtZTsKICAgICAg
ICBVTklTVFIyIHVuaV9mdWxsX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfaG9tZV9kaXI7CiAg
ICAgICAgVU5JU1RSMiB1bmlfZGlyX2RyaXZlOwogICAgICAgIFVOSVNUUjIgdW5pX2xvZ29uX3Nj
cmlwdDsKICAgICAgICBVTklTVFIyIHVuaV9wcm9maWxlX3BhdGg7CiAgICAgICAgVU5JU1RSMiB1
bmlfYWNjdF9kZXNjIDsKICAgICAgICBVTklTVFIyIHVuaV93b3Jrc3RhdGlvbnM7CiAgICAgICAg
VU5JU1RSMiB1bmlfdW5rbm93bl9zdHIgOwogICAgICAgIFVOSVNUUjIgdW5pX211bmdlZF9kaWFs
IDsKCiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fNjsKICAgICAgICB1bnNpZ25lZCBpbnQg
cGFkZGluZzQ7CgogICAgICAgIExPR09OX0hSUyBsb2dvbl9ocnM7Cgp9IFNBTV9VU0VSX0lORk9f
MjM7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX3VzZXJfaW5mb18yNAp7CiAgICAgICAgdW5zaWduZWQg
Y2hhciBwYXNzWzUxNl07CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHdfbGVuOwp9IFNBTV9VU0VS
X0lORk9fMjQ7CiMgMjQwICJpbmNsdWRlL3JwY19zYW1yLmgiCnR5cGVkZWYgc3RydWN0IHNhbV91
c2VyX2luZm9fMjUKewoKICAgICAgICBOVFRJTUUgbG9nb25fdGltZTsKICAgICAgICBOVFRJTUUg
bG9nb2ZmX3RpbWU7CiAgICAgICAgTlRUSU1FIGtpY2tvZmZfdGltZTsKICAgICAgICBOVFRJTUUg
cGFzc19sYXN0X3NldF90aW1lOwogICAgICAgIE5UVElNRSBwYXNzX2Nhbl9jaGFuZ2VfdGltZTsK
ICAgICAgICBOVFRJTUUgcGFzc19tdXN0X2NoYW5nZV90aW1lOwoKICAgICAgICBVTklIRFIgaGRy
X3VzZXJfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX2Z1bGxfbmFtZTsKICAgICAgICBVTklIRFIg
aGRyX2hvbWVfZGlyOwogICAgICAgIFVOSUhEUiBoZHJfZGlyX2RyaXZlOwogICAgICAgIFVOSUhE
UiBoZHJfbG9nb25fc2NyaXB0OwogICAgICAgIFVOSUhEUiBoZHJfcHJvZmlsZV9wYXRoOwogICAg
ICAgIFVOSUhEUiBoZHJfYWNjdF9kZXNjIDsKICAgICAgICBVTklIRFIgaGRyX3dvcmtzdGF0aW9u
czsKICAgICAgICBVTklIRFIgaGRyX3Vua25vd25fc3RyIDsKICAgICAgICBVTklIRFIgaGRyX211
bmdlZF9kaWFsIDsKCiAgICAgICAgdW5zaWduZWQgY2hhciBsbV9wd2RbMTZdOwogICAgICAgIHVu
c2lnbmVkIGNoYXIgbnRfcHdkWzE2XTsKCiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfcmlkOwog
ICAgICAgIHVuc2lnbmVkIGludCBncm91cF9yaWQ7CgogICAgICAgIHVuc2lnbmVkIGludCBhY2Jf
aW5mbzsKCiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fNls2XTsKCiAgICAgICAgdW5zaWdu
ZWQgY2hhciBwYXNzWzUzMl07CgogICAgICAgIFVOSVNUUjIgdW5pX3VzZXJfbmFtZTsKICAgICAg
ICBVTklTVFIyIHVuaV9mdWxsX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfaG9tZV9kaXI7CiAg
ICAgICAgVU5JU1RSMiB1bmlfZGlyX2RyaXZlOwogICAgICAgIFVOSVNUUjIgdW5pX2xvZ29uX3Nj
cmlwdDsKICAgICAgICBVTklTVFIyIHVuaV9wcm9maWxlX3BhdGg7CiAgICAgICAgVU5JU1RSMiB1
bmlfYWNjdF9kZXNjIDsKICAgICAgICBVTklTVFIyIHVuaV93b3Jrc3RhdGlvbnM7CiAgICAgICAg
VU5JU1RSMiB1bmlfdW5rbm93bl9zdHIgOwogICAgICAgIFVOSVNUUjIgdW5pX211bmdlZF9kaWFs
IDsKfSBTQU1fVVNFUl9JTkZPXzI1OwoKCgp0eXBlZGVmIHN0cnVjdCBzYW1fdXNlcl9pbmZvXzIx
CnsKICAgICAgICBOVFRJTUUgbG9nb25fdGltZTsKICAgICAgICBOVFRJTUUgbG9nb2ZmX3RpbWU7
CiAgICAgICAgTlRUSU1FIGtpY2tvZmZfdGltZTsKICAgICAgICBOVFRJTUUgcGFzc19sYXN0X3Nl
dF90aW1lOwogICAgICAgIE5UVElNRSBwYXNzX2Nhbl9jaGFuZ2VfdGltZTsKICAgICAgICBOVFRJ
TUUgcGFzc19tdXN0X2NoYW5nZV90aW1lOwoKICAgICAgICBVTklIRFIgaGRyX3VzZXJfbmFtZTsK
ICAgICAgICBVTklIRFIgaGRyX2Z1bGxfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX2hvbWVfZGly
OwogICAgICAgIFVOSUhEUiBoZHJfZGlyX2RyaXZlOwogICAgICAgIFVOSUhEUiBoZHJfbG9nb25f
c2NyaXB0OwogICAgICAgIFVOSUhEUiBoZHJfcHJvZmlsZV9wYXRoOwogICAgICAgIFVOSUhEUiBo
ZHJfYWNjdF9kZXNjIDsKICAgICAgICBVTklIRFIgaGRyX3dvcmtzdGF0aW9uczsKICAgICAgICBV
TklIRFIgaGRyX3Vua25vd25fc3RyIDsKICAgICAgICBVTklIRFIgaGRyX211bmdlZF9kaWFsIDsK
CiAgICAgICAgdW5zaWduZWQgY2hhciBsbV9wd2RbMTZdOwogICAgICAgIHVuc2lnbmVkIGNoYXIg
bnRfcHdkWzE2XTsKCiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfcmlkOwogICAgICAgIHVuc2ln
bmVkIGludCBncm91cF9yaWQ7CgogICAgICAgIHVuc2lnbmVkIGludCBhY2JfaW5mbzsKCiAgICAg
ICAgdW5zaWduZWQgaW50IHVua25vd25fMzsKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgbG9nb25f
ZGl2czsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9sb2dvbl9ocnM7CgogICAgICAgIHVuc2ln
bmVkIGludCB1bmtub3duXzU7CgogICAgICAgIHVuc2lnbmVkIGNoYXIgcGFkZGluZzFbOF07Cgog
ICAgICAgIFVOSVNUUjIgdW5pX3VzZXJfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9mdWxsX25h
bWU7CiAgICAgICAgVU5JU1RSMiB1bmlfaG9tZV9kaXI7CiAgICAgICAgVU5JU1RSMiB1bmlfZGly
X2RyaXZlOwogICAgICAgIFVOSVNUUjIgdW5pX2xvZ29uX3NjcmlwdDsKICAgICAgICBVTklTVFIy
IHVuaV9wcm9maWxlX3BhdGg7CiAgICAgICAgVU5JU1RSMiB1bmlfYWNjdF9kZXNjIDsKICAgICAg
ICBVTklTVFIyIHVuaV93b3Jrc3RhdGlvbnM7CiAgICAgICAgVU5JU1RSMiB1bmlfdW5rbm93bl9z
dHIgOwogICAgICAgIFVOSVNUUjIgdW5pX211bmdlZF9kaWFsIDsKCiAgICAgICAgdW5zaWduZWQg
aW50IHVua25vd25fNjsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFkZGluZzQ7CgogICAgICAgIExP
R09OX0hSUyBsb2dvbl9ocnM7Cgp9IFNBTV9VU0VSX0lORk9fMjE7CgoKCnR5cGVkZWYgc3RydWN0
IHNhbV91c2VyX2luZm9fMjAKewogICAgICAgIFVOSUhEUiBoZHJfbXVuZ2VkX2RpYWwgOwoKICAg
ICAgICBVTklTVFIyIHVuaV9tdW5nZWRfZGlhbCA7Cgp9IFNBTV9VU0VSX0lORk9fMjA7CgoKdHlw
ZWRlZiBzdHJ1Y3Qgc2FtX3VzZXJfaW5mb18xMgp7CiAgICAgICAgdW5zaWduZWQgY2hhciBsbV9w
d2RbMTZdOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbnRfcHdkWzE2XTsKCiAgICAgICAgdW5zaWdu
ZWQgY2hhciBsbV9wd2RfYWN0aXZlOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbnRfcHdkX2FjdGl2
ZTsKCn0gU0FNX1VTRVJfSU5GT18xMjsKCgp0eXBlZGVmIHN0cnVjdCBzYW1fdXNlcl9pbmZvXzEx
CnsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfMFsxNl07CiAgICAgICAgTlRUSU1FIGV4
cGlyeTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfMVsyNF07CgogICAgICAgIFVOSUhE
UiBoZHJfbWFjaF9hY2N0OwogICAgICAgIHVuc2lnbmVkIGludCBwYWRkaW5nXzI7CgogICAgICAg
IHVuc2lnbmVkIGludCBwdHJfMTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfM1szMl07
CiAgICAgICAgdW5zaWduZWQgaW50IHBhZGRpbmdfNDsKCiAgICAgICAgdW5zaWduZWQgaW50IHB0
cl8yOwogICAgICAgIHVuc2lnbmVkIGludCBwYWRkaW5nXzU7CgogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHJfMzsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfNlszMl07CgogICAgICAgIHVu
c2lnbmVkIGludCByaWRfdXNlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgcmlkX2dyb3VwOwoKICAg
ICAgICB1bnNpZ25lZCBzaG9ydCBhY2N0X2N0cmw7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5r
bm93bl8zOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzQ7CiAgICAgICAgdW5zaWdu
ZWQgc2hvcnQgdW5rbm93bl81OwoKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfN1sxNl07
CiAgICAgICAgdW5zaWduZWQgaW50IHBhZGRpbmdfODsKCiAgICAgICAgVU5JU1RSMiB1bmlfbWFj
aF9hY2N0OwoKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfOVs0OF07Cgp9IFNBTV9VU0VS
X0lORk9fMTE7CgoKCnR5cGVkZWYgc3RydWN0IHNhbV91c2VyX2luZm9fMTAKewogICAgICAgIHVu
c2lnbmVkIGludCBhY2JfaW5mbzsKCn0gU0FNX1VTRVJfSU5GT18xMDsKCgoKCnR5cGVkZWYgc3Ry
dWN0IHFfc2Ftcl9jbG9zZV9obmRfaW5mbwp7CiAgICBQT0xJQ1lfSE5EIHBvbDsKCn0gU0FNUl9R
X0NMT1NFX0hORDsKCgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX2Nsb3NlX2huZF9pbmZvCnsKICAg
ICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9D
TE9TRV9ITkQ7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfdXNyZG9tX3B3aW5mb19pbmZv
CnsKICAgICAgICBQT0xJQ1lfSE5EIHVzZXJfcG9sOwoKfSBTQU1SX1FfR0VUX1VTUkRPTV9QV0lO
Rk87CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfdXNyZG9tX3B3aW5mb19pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzA7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5r
bm93bl8xOwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzI7CiAgICAgICAgTlRTVEFUVVMg
c3RhdHVzOwoKfSBTQU1SX1JfR0VUX1VTUkRPTV9QV0lORk87CgoKCgoKCgp0eXBlZGVmIHN0cnVj
dCBxX3NhbXJfcXVlcnlfc2VjX29ial9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHVzZXJfcG9s
OwogICAgICAgIHVuc2lnbmVkIGludCBzZWNfaW5mbzsKCn0gU0FNUl9RX1FVRVJZX1NFQ19PQko7
CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX3F1ZXJ5X3NlY19vYmpfaW5mbwp7CiAgICAgICAgdW5z
aWduZWQgaW50IHB0cjsKICAgICAgICBTRUNfREVTQ19CVUYgKmJ1ZjsKCiAgICAgICAgTlRTVEFU
VVMgc3RhdHVzOwoKfSBTQU1SX1JfUVVFUllfU0VDX09CSjsKCgoKCgoKCnR5cGVkZWYgc3RydWN0
IHFfc2Ftcl9xdWVyeV9kb21haW5faW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBkb21haW5fcG9s
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZTsKCn0gU0FNUl9RX1FVRVJZX0RP
TUFJTl9JTkZPOwoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX3Vua25vd25faW5mb18zX2luZm8KewogICAg
ICAgIE5UVElNRSBsb2dvdXQ7CgoKCgp9IFNBTV9VTktfSU5GT18zOwoKdHlwZWRlZiBzdHJ1Y3Qg
c2FtX3Vua25vd25faW5mb182X2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzA7
CgogICAgICAgIHVuc2lnbmVkIGludCBwdHJfMDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHBhZGRp
bmdbMTJdOwoKfSBTQU1fVU5LX0lORk9fNjsKCnR5cGVkZWYgc3RydWN0IHNhbV91bmtub3duX2lu
Zm9fN19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzA7Cgp9IFNBTV9VTktf
SU5GT183OwoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX3Vua25vd25faW5mb18xMl9pbmYKewogICAgICAg
IE5UVElNRSBkdXJhdGlvbjsKICAgICAgICBOVFRJTUUgcmVzZXRfY291bnQ7CiAgICAgICAgdW5z
aWduZWQgc2hvcnQgYmFkX2F0dGVtcHRfbG9ja291dDsKCn0gU0FNX1VOS19JTkZPXzEyOwoKdHlw
ZWRlZiBzdHJ1Y3Qgc2FtX3Vua25vd25faW5mb181X2luZgp7CiAgICAgICAgVU5JSERSIGhkcl9z
ZXJ2ZXI7CiAgICAgICAgVU5JU1RSMiB1bmlfc2VydmVyOwoKfSBTQU1fVU5LX0lORk9fNTsKCnR5
cGVkZWYgc3RydWN0IHNhbV91bmtub3duX2luZm9fMl9pbmYKewogICAgICAgIHVuc2lnbmVkIGlu
dCB1bmtub3duXzA7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fMTsKICAgICAgICB1bnNp
Z25lZCBpbnQgdW5rbm93bl8yOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyXzA7CiAgICAgICAg
VU5JSERSIGhkcl9kb21haW47CiAgICAgICAgVU5JSERSIGhkcl9zZXJ2ZXI7CgoKCgoKICAgICAg
ICB1bnNpZ25lZCBpbnQgc2VxX251bTsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl8zOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl80OwogICAgICAgIHVuc2lnbmVkIGludCB1bmtu
b3duXzU7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25fNjsKICAgICAgICB1bnNpZ25lZCBp
bnQgbnVtX2RvbWFpbl91c3JzOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZG9tYWluX2dycHM7
CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9sb2NhbF9ncnBzOwoKICAgICAgICB1bnNpZ25lZCBj
aGFyIHBhZGRpbmdbMTJdOwoKICAgICAgICBVTklTVFIyIHVuaV9kb21haW47CiAgICAgICAgVU5J
U1RSMiB1bmlfc2VydmVyOwoKfSBTQU1fVU5LX0lORk9fMjsKCnR5cGVkZWYgc3RydWN0IHNhbV91
bmtub3duX2luZm9fMV9pbmYKewogICAgICAgIHVuc2lnbmVkIHNob3J0IG1pbl9sZW5ndGhfcGFz
c3dvcmQ7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcGFzc3dvcmRfaGlzdG9yeTsKICAgICAgICB1
bnNpZ25lZCBpbnQgZmxhZzsKICAgICAgICBOVFRJTUUgZXhwaXJlOwogICAgICAgIE5UVElNRSBt
aW5fcGFzc3dvcmRhZ2U7Cgp9IFNBTV9VTktfSU5GT18xOwoKCnR5cGVkZWYgc3RydWN0IHNhbV91
bmtub3duX2N0cl9pbmZvCnsKICAgICAgICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAg
IFNBTV9VTktfSU5GT18xIGluZjE7CiAgICAgICAgICAgICAgICBTQU1fVU5LX0lORk9fMiBpbmYy
OwogICAgICAgICAgICAgICAgU0FNX1VOS19JTkZPXzMgaW5mMzsKICAgICAgICAgICAgICAgIFNB
TV9VTktfSU5GT181IGluZjU7CiAgICAgICAgICAgICAgICBTQU1fVU5LX0lORk9fNiBpbmY2Owog
ICAgICAgICAgICAgICAgU0FNX1VOS19JTkZPXzcgaW5mNzsKICAgICAgICAgICAgICAgIFNBTV9V
TktfSU5GT18xMiBpbmYxMjsKCiAgICAgICAgfSBpbmZvOwoKfSBTQU1fVU5LX0NUUjsKCgoKdHlw
ZWRlZiBzdHJ1Y3Qgcl9zYW1yX3F1ZXJ5X2RvbWFpbl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBp
bnQgcHRyXzA7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc3dpdGNoX3ZhbHVlOwoKICAgICAgICBT
QU1fVU5LX0NUUiAqY3RyOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9RVUVS
WV9ET01BSU5fSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX2xvb2t1cF9kb21haW5faW5m
bwp7CiAgICAgICAgUE9MSUNZX0hORCBjb25uZWN0X3BvbDsKCiAgICAgICAgVU5JSERSIGhkcl9k
b21haW47CiAgICAgICAgVU5JU1RSMiB1bmlfZG9tYWluOwoKfSBTQU1SX1FfTE9PS1VQX0RPTUFJ
TjsKCgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX2xvb2t1cF9kb21haW5faW5mbwp7CiAgICAgICAg
dW5zaWduZWQgaW50IHB0cl9zaWQ7CiAgICAgICAgRE9NX1NJRDIgZG9tX3NpZDsKCiAgICAgICAg
TlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfTE9PS1VQX0RPTUFJTjsKIyA2MzIgImluY2x1ZGUv
cnBjX3NhbXIuaCIKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX29wZW5fZG9tYWluX2luZm8KewogICAg
ICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICBE
T01fU0lEMiBkb21fc2lkOwoKfSBTQU1SX1FfT1BFTl9ET01BSU47CgoKCnR5cGVkZWYgc3RydWN0
IHJfc2Ftcl9vcGVuX2RvbWFpbl9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIGRvbWFpbl9wb2w7
CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfT1BFTl9ET01BSU47CgoKCnR5cGVk
ZWYgc3RydWN0IHNhbXJfZW50cnlfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHJpZDsKICAg
ICAgICBVTklIRFIgaGRyX25hbWU7Cgp9IFNBTV9FTlRSWTsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9z
YW1yX2VudW1fZG9tYWluc19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAg
dW5zaWduZWQgaW50IHN0YXJ0X2lkeDsKICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3NpemU7Cgp9
IFNBTVJfUV9FTlVNX0RPTUFJTlM7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX2VudW1fZG9tYWlu
c19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgbmV4dF9pZHg7CiAgICAgICAgdW5zaWduZWQg
aW50IHB0cl9lbnRyaWVzMTsKCiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzMjsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudHJpZXMyOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVt
X2VudHJpZXMzOwoKICAgICAgICBTQU1fRU5UUlkgKnNhbTsKICAgICAgICBVTklTVFIyICp1bmlf
ZG9tX25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczQ7CgogICAgICAgIE5U
U1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX0VOVU1fRE9NQUlOUzsKCgp0eXBlZGVmIHN0cnVjdCBx
X3NhbXJfZW51bV9kb21fdXNlcnNfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CgogICAg
ICAgIHVuc2lnbmVkIGludCBzdGFydF9pZHg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgYWNiX21h
c2s7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bl8xOwoKICAgICAgICB1bnNpZ25lZCBp
bnQgbWF4X3NpemU7Cgp9IFNBTVJfUV9FTlVNX0RPTV9VU0VSUzsKCgoKdHlwZWRlZiBzdHJ1Y3Qg
cl9zYW1yX2VudW1fZG9tX3VzZXJzX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBuZXh0X2lk
eDsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudHJpZXMxOwoKICAgICAgICB1bnNpZ25lZCBp
bnQgbnVtX2VudHJpZXMyOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfZW50cmllczI7CgogICAg
ICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczM7CgogICAgICAgIFNBTV9FTlRSWSAqc2FtOwog
ICAgICAgIFVOSVNUUjIgKnVuaV9hY2N0X25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCBudW1f
ZW50cmllczQ7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX0VOVU1fRE9NX1VT
RVJTOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfZW51bV9kb21fZ3JvdXBzX2luZm8KewogICAg
ICAgIFBPTElDWV9ITkQgcG9sOwoKCiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X2lkeDsKCiAg
ICAgICAgdW5zaWduZWQgaW50IG1heF9zaXplOwoKfSBTQU1SX1FfRU5VTV9ET01fR1JPVVBTOwoK
Cgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfZW51bV9kb21fZ3JvdXBzX2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBuZXh0X2lkeDsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudHJpZXMxOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMyOwogICAgICAgIHVuc2lnbmVkIGludCBw
dHJfZW50cmllczI7CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllczM7CgogICAgICAg
IFNBTV9FTlRSWSAqc2FtOwogICAgICAgIFVOSVNUUjIgKnVuaV9ncnBfbmFtZTsKCiAgICAgICAg
dW5zaWduZWQgaW50IG51bV9lbnRyaWVzNDsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBT
QU1SX1JfRU5VTV9ET01fR1JPVVBTOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfZW51bV9kb21f
YWxpYXNlc19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCgogICAgICAgIHVuc2lnbmVk
IGludCBzdGFydF9pZHg7CgogICAgICAgIHVuc2lnbmVkIGludCBtYXhfc2l6ZTsKCn0gU0FNUl9R
X0VOVU1fRE9NX0FMSUFTRVM7CgoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9lbnVtX2RvbV9hbGlh
c2VzX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBuZXh0X2lkeDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgcHRyX2VudHJpZXMxOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMyOwog
ICAgICAgIHVuc2lnbmVkIGludCBwdHJfZW50cmllczI7CgogICAgICAgIHVuc2lnbmVkIGludCBu
dW1fZW50cmllczM7CgogICAgICAgIFNBTV9FTlRSWSAqc2FtOwogICAgICAgIFVOSVNUUjIgKnVu
aV9ncnBfbmFtZTsKCiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzNDsKCiAgICAgICAg
TlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfRU5VTV9ET01fQUxJQVNFUzsKCgoKCnR5cGVkZWYg
c3RydWN0IHNhbXJfZW50cnlfaW5mbzEKewogICAgICAgIHVuc2lnbmVkIGludCB1c2VyX2lkeDsK
CiAgICAgICAgdW5zaWduZWQgaW50IHJpZF91c2VyOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGFj
Yl9pbmZvOwoKICAgICAgICBVTklIRFIgaGRyX2FjY3RfbmFtZTsKICAgICAgICBVTklIRFIgaGRy
X3VzZXJfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX3VzZXJfZGVzYzsKCn0gU0FNX0VOVFJZMTsK
CnR5cGVkZWYgc3RydWN0IHNhbXJfc3RyX2VudHJ5X2luZm8xCnsKICAgICAgICBVTklTVFIyIHVu
aV9hY2N0X25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfZnVsbF9uYW1lOwogICAgICAgIFVOSVNU
UjIgdW5pX2FjY3RfZGVzYzsKCn0gU0FNX1NUUjE7Cgp0eXBlZGVmIHN0cnVjdCBzYW1fZW50cnlf
aW5mb18xCnsKICAgICAgICBTQU1fRU5UUlkxICpzYW07CiAgICAgICAgU0FNX1NUUjEgKnN0cjsK
Cn0gU0FNX0RJU1BJTkZPXzE7CgoKCgp0eXBlZGVmIHN0cnVjdCBzYW1yX2VudHJ5X2luZm8yCnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9pZHg7CgogICAgICAgIHVuc2lnbmVkIGludCByaWRf
dXNlcjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBhY2JfaW5mbzsKCiAgICAgICAgVU5JSERSIGhk
cl9zcnZfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX3Nydl9kZXNjOwoKfSBTQU1fRU5UUlkyOwoK
dHlwZWRlZiBzdHJ1Y3Qgc2Ftcl9zdHJfZW50cnlfaW5mbzIKewogICAgICAgIFVOSVNUUjIgdW5p
X3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9kZXNjOwoKfSBTQU1fU1RSMjsKCnR5
cGVkZWYgc3RydWN0IHNhbV9lbnRyeV9pbmZvXzIKewogICAgICAgIFNBTV9FTlRSWTIgKnNhbTsK
ICAgICAgICBTQU1fU1RSMiAqc3RyOwoKfSBTQU1fRElTUElORk9fMjsKCgoKCnR5cGVkZWYgc3Ry
dWN0IHNhbXJfZW50cnlfaW5mbzMKewogICAgICAgIHVuc2lnbmVkIGludCBncnBfaWR4OwoKICAg
ICAgICB1bnNpZ25lZCBpbnQgcmlkX2dycDsKICAgICAgICB1bnNpZ25lZCBpbnQgYXR0cjsKCiAg
ICAgICAgVU5JSERSIGhkcl9ncnBfbmFtZTsKICAgICAgICBVTklIRFIgaGRyX2dycF9kZXNjOwoK
fSBTQU1fRU5UUlkzOwoKdHlwZWRlZiBzdHJ1Y3Qgc2Ftcl9zdHJfZW50cnlfaW5mbzMKewogICAg
ICAgIFVOSVNUUjIgdW5pX2dycF9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX2dycF9kZXNjOwoK
fSBTQU1fU1RSMzsKCnR5cGVkZWYgc3RydWN0IHNhbV9lbnRyeV9pbmZvXzMKewogICAgICAgIFNB
TV9FTlRSWTMgKnNhbTsKICAgICAgICBTQU1fU1RSMyAqc3RyOwoKfSBTQU1fRElTUElORk9fMzsK
CgoKCnR5cGVkZWYgc3RydWN0IHNhbXJfZW50cnlfaW5mbzQKewogICAgICAgIHVuc2lnbmVkIGlu
dCB1c2VyX2lkeDsKICAgICAgICBTVFJIRFIgaGRyX2FjY3RfbmFtZTsKCn0gU0FNX0VOVFJZNDsK
CnR5cGVkZWYgc3RydWN0IHNhbXJfc3RyX2VudHJ5X2luZm80CnsKICAgICAgICBTVFJJTkcyIGFj
Y3RfbmFtZTsKCn0gU0FNX1NUUjQ7Cgp0eXBlZGVmIHN0cnVjdCBzYW1fZW50cnlfaW5mb180CnsK
ICAgICAgICBTQU1fRU5UUlk0ICpzYW07CiAgICAgICAgU0FNX1NUUjQgKnN0cjsKCn0gU0FNX0RJ
U1BJTkZPXzQ7CgoKCgp0eXBlZGVmIHN0cnVjdCBzYW1yX2VudHJ5X2luZm81CnsKICAgICAgICB1
bnNpZ25lZCBpbnQgZ3JwX2lkeDsKICAgICAgICBTVFJIRFIgaGRyX2dycF9uYW1lOwoKfSBTQU1f
RU5UUlk1OwoKdHlwZWRlZiBzdHJ1Y3Qgc2Ftcl9zdHJfZW50cnlfaW5mbzUKewogICAgICAgIFNU
UklORzIgZ3JwX25hbWU7Cgp9IFNBTV9TVFI1OwoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX2VudHJ5X2lu
Zm9fNQp7CiAgICAgICAgU0FNX0VOVFJZNSAqc2FtOwogICAgICAgIFNBTV9TVFI1ICpzdHI7Cgp9
IFNBTV9ESVNQSU5GT181OwoKCnR5cGVkZWYgc3RydWN0IHNhbV9kaXNwaW5mb19jdHJfaW5mbwp7
CiAgICAgICAgdW5pb24KICAgICAgICB7CiAgICAgICAgICAgICAgICBTQU1fRElTUElORk9fMSAq
aW5mbzE7CiAgICAgICAgICAgICAgICBTQU1fRElTUElORk9fMiAqaW5mbzI7CiAgICAgICAgICAg
ICAgICBTQU1fRElTUElORk9fMyAqaW5mbzM7CiAgICAgICAgICAgICAgICBTQU1fRElTUElORk9f
NCAqaW5mbzQ7CiAgICAgICAgICAgICAgICBTQU1fRElTUElORk9fNSAqaW5mbzU7CiAgICAgICAg
ICAgICAgICB2b2lkICppbmZvOwoKICAgICAgICB9IHNhbTsKCn0gU0FNX0RJU1BJTkZPX0NUUjsK
CgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX3F1ZXJ5X2Rpc3BfaW5mbwp7CiAgICAgICAgUE9MSUNZ
X0hORCBkb21haW5fcG9sOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfbGV2ZWw7CgoK
ICAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnRfaWR4OwogICAgICAgIHVuc2lnbmVkIGludCBtYXhf
ZW50cmllczsKICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3NpemU7CgoKfSBTQU1SX1FfUVVFUllf
RElTUElORk87CgoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9xdWVyeV9kaXNwaW5mb19pbmZvCnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgdG90YWxfc2l6ZTsKCiAgICAgICAgdW5zaWduZWQgaW50IGRh
dGFfc2l6ZTsKCgogICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF9sZXZlbDsKCgogICAgICAg
IHVuc2lnbmVkIGludCBudW1fZW50cmllczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2VudHJp
ZXM7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzMjsKCiAgICAgICAgU0FNX0RJU1BJ
TkZPX0NUUiAqY3RyOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9RVUVSWV9E
SVNQSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX2RlbGV0ZV9kb21fZ3JvdXBfaW5mbwp7
CiAgICBQT0xJQ1lfSE5EIGdyb3VwX3BvbDsKCn0gU0FNUl9RX0RFTEVURV9ET01fR1JPVVA7CgoK
CnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9kZWxldGVfZG9tX2dyb3VwX2luZm8KewogICAgICAgIFBP
TElDWV9ITkQgcG9sOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX0RFTEVURV9E
T01fR1JPVVA7CgoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl9jcmVhdGVfZG9tX2dyb3VwX2luZm8K
ewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoKICAgICAgICBVTklIRFIgaGRyX2FjY3RfZGVzYzsK
ICAgICAgICBVTklTVFIyIHVuaV9hY2N0X2Rlc2M7CgogICAgICAgIHVuc2lnbmVkIGludCBhY2Nl
c3NfbWFzazsKCn0gU0FNUl9RX0NSRUFURV9ET01fR1JPVVA7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9z
YW1yX2NyZWF0ZV9kb21fZ3JvdXBfaW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CgogICAg
ICAgIHVuc2lnbmVkIGludCByaWQ7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1Jf
Q1JFQVRFX0RPTV9HUk9VUDsKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfcXVlcnlfZ3JvdXBfaW5m
bwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CgogICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRj
aF9sZXZlbDsKCn0gU0FNUl9RX1FVRVJZX0dST1VQSU5GTzsKCnR5cGVkZWYgc3RydWN0IHNhbXJf
Z3JvdXBfaW5mbzEKewogICAgICAgIFVOSUhEUiBoZHJfYWNjdF9uYW1lOwoKICAgICAgICB1bnNp
Z25lZCBpbnQgdW5rbm93bl8xOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fbWVtYmVyczsKCiAg
ICAgICAgVU5JSERSIGhkcl9hY2N0X2Rlc2M7CgogICAgICAgIFVOSVNUUjIgdW5pX2FjY3RfbmFt
ZTsKICAgICAgICBVTklTVFIyIHVuaV9hY2N0X2Rlc2M7Cgp9IEdST1VQX0lORk8xOwoKdHlwZWRl
ZiBzdHJ1Y3Qgc2Ftcl9ncm91cF9pbmZvMwp7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd25f
MTsKCn0gR1JPVVBfSU5GTzM7Cgp0eXBlZGVmIHN0cnVjdCBzYW1yX2dyb3VwX2luZm80CnsKICAg
ICAgICBVTklIRFIgaGRyX2FjY3RfZGVzYzsKICAgICAgICBVTklTVFIyIHVuaV9hY2N0X2Rlc2M7
Cgp9IEdST1VQX0lORk80OwoKCnR5cGVkZWYgc3RydWN0IGdyb3VwX2luZm9fY3RyCnsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUxOwoKICAgICAgICB1bmlvbgogICAgICAgIHsK
ICAgICAgICAgICAgICAgIEdST1VQX0lORk8xIGluZm8xOwogICAgICAgICAgICAgICAgR1JPVVBf
SU5GTzMgaW5mbzM7CiAgICAgICAgICAgICAgICBHUk9VUF9JTkZPNCBpbmZvNDsKCiAgICAgICAg
fSBncm91cDsKCn0gR1JPVVBfSU5GT19DVFI7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX3F1ZXJ5
X2dyb3VwaW5mb19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIEdST1VQ
X0lORk9fQ1RSICpjdHI7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1FVRVJZ
X0dST1VQSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX3NldF9ncm91cF9pbmZvCnsKICAg
ICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAgICBHUk9VUF9JTkZPX0NUUiAqY3RyOwoKfSBTQU1S
X1FfU0VUX0dST1VQSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfc2V0X2dyb3VwX2luZm8K
ewogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1NFVF9HUk9VUElORk87CgoKCnR5
cGVkZWYgc3RydWN0IHFfc2Ftcl9kZWxldGVfZG9tX2FsaWFzX2luZm8KewogICAgUE9MSUNZX0hO
RCBhbGlhc19wb2w7Cgp9IFNBTVJfUV9ERUxFVEVfRE9NX0FMSUFTOwoKCgp0eXBlZGVmIHN0cnVj
dCByX3NhbXJfZGVsZXRlX2RvbV9hbGlhc19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsK
ICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9ERUxFVEVfRE9NX0FMSUFTOwoKCgp0
eXBlZGVmIHN0cnVjdCBxX3NhbXJfY3JlYXRlX2RvbV9hbGlhc19pbmZvCnsKICAgICAgICBQT0xJ
Q1lfSE5EIGRvbV9wb2w7CgogICAgICAgIFVOSUhEUiBoZHJfYWNjdF9kZXNjOwogICAgICAgIFVO
SVNUUjIgdW5pX2FjY3RfZGVzYzsKCiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrOwoK
fSBTQU1SX1FfQ1JFQVRFX0RPTV9BTElBUzsKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfY3JlYXRl
X2RvbV9hbGlhc19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIGFsaWFzX3BvbDsKCiAgICAgICAg
dW5zaWduZWQgaW50IHJpZDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9DUkVB
VEVfRE9NX0FMSUFTOwoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl9xdWVyeV9hbGlhc19pbmZvCnsK
ICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgc3dpdGNoX2xl
dmVsOwoKfSBTQU1SX1FfUVVFUllfQUxJQVNJTkZPOwoKdHlwZWRlZiBzdHJ1Y3Qgc2Ftcl9hbGlh
c19pbmZvMQp7CiAgICAgICAgVU5JSERSIGhkcl9hY2N0X25hbWU7CiAgICAgICAgVU5JSERSIGhk
cl9hY2N0X2Rlc2M7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9tZW1iZXI7CiAgICAgICAgVU5J
U1RSMiB1bmlfYWNjdF9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX2FjY3RfZGVzYzsKCn0gQUxJ
QVNfSU5GTzE7Cgp0eXBlZGVmIHN0cnVjdCBzYW1yX2FsaWFzX2luZm8zCnsKICAgICAgICBVTklI
RFIgaGRyX2FjY3RfZGVzYzsKICAgICAgICBVTklTVFIyIHVuaV9hY2N0X2Rlc2M7Cgp9IEFMSUFT
X0lORk8zOwoKCnR5cGVkZWYgc3RydWN0IGFsaWFzX2luZm9fY3RyCnsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBzd2l0Y2hfdmFsdWUxOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1
ZTI7CgogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgQUxJQVNfSU5GTzEg
aW5mbzE7CiAgICAgICAgICAgICAgICBBTElBU19JTkZPMyBpbmZvMzsKCiAgICAgICAgfSBhbGlh
czsKCn0gQUxJQVNfSU5GT19DVFI7CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX3F1ZXJ5X2FsaWFz
aW5mb19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIEFMSUFTX0lORk9f
Q1RSIGN0cjsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfUVVFUllfQUxJQVNJ
TkZPOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfc2V0X2FsaWFzX2luZm8KewogICAgICAgIFBP
TElDWV9ITkQgYWxpYXNfcG9sOwogICAgICAgIEFMSUFTX0lORk9fQ1RSIGN0cjsKCn0gU0FNUl9R
X1NFVF9BTElBU0lORk87CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX3NldF9hbGlhc2luZm9faW5m
bwp7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfU0VUX0FMSUFTSU5GTzsKCgoK
dHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX3F1ZXJ5X3VzZXJncm91cF9pbmZvCnsKICAgICAgICBQT0xJ
Q1lfSE5EIHBvbDsKCn0gU0FNUl9RX1FVRVJZX1VTRVJHUk9VUFM7CgoKdHlwZWRlZiBzdHJ1Y3Qg
cl9zYW1yX3F1ZXJ5X3VzZXJncm91cF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyXzA7
CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzOwogICAgICAgIHVuc2lnbmVkIGludCBw
dHJfMTsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMyOwoKICAgICAgICBET01fR0lE
ICpnaWQ7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1FVRVJZX1VTRVJHUk9V
UFM7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2FtX3VzZXJpbmZvX2N0cl9pbmZvCnsKICAgICAgICB1bnNp
Z25lZCBzaG9ydCBzd2l0Y2hfdmFsdWU7CgogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAg
ICAgICAgICAgU0FNX1VTRVJfSU5GT18xMCAqaWQxMDsKICAgICAgICAgICAgICAgIFNBTV9VU0VS
X0lORk9fMTEgKmlkMTE7CiAgICAgICAgICAgICAgICBTQU1fVVNFUl9JTkZPXzEyICppZDEyOwog
ICAgICAgICAgICAgICAgU0FNX1VTRVJfSU5GT18yMCAqaWQyMDsKICAgICAgICAgICAgICAgIFNB
TV9VU0VSX0lORk9fMjEgKmlkMjE7CiAgICAgICAgICAgICAgICBTQU1fVVNFUl9JTkZPXzIzICpp
ZDIzOwogICAgICAgICAgICAgICAgU0FNX1VTRVJfSU5GT18yNCAqaWQyNDsKICAgICAgICAgICAg
ICAgIFNBTV9VU0VSX0lORk9fMjUgKmlkMjU7CiAgICAgICAgICAgICAgICB2b2lkKiBpZDsKCiAg
ICAgICAgfSBpbmZvOwoKfSBTQU1fVVNFUklORk9fQ1RSOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3Nh
bXJfc2V0X3VzZXJfaW5mbzIKewogICAgICAgIFBPTElDWV9ITkQgcG9sOwogICAgICAgIHVuc2ln
bmVkIHNob3J0IHN3aXRjaF92YWx1ZTsKCiAgICAgICAgU0FNX1VTRVJJTkZPX0NUUiAqY3RyOwoK
fSBTQU1SX1FfU0VUX1VTRVJJTkZPMjsKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfc2V0X3VzZXJf
aW5mbzIKewogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1NFVF9VU0VSSU5GTzI7
CgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX3NldF91c2VyX2luZm8KewogICAgICAgIFBPTElDWV9I
TkQgcG9sOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZTsKICAgICAgICBTQU1f
VVNFUklORk9fQ1RSICpjdHI7Cgp9IFNBTVJfUV9TRVRfVVNFUklORk87CgoKdHlwZWRlZiBzdHJ1
Y3Qgcl9zYW1yX3NldF91c2VyX2luZm8KewogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FN
Ul9SX1NFVF9VU0VSSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX3F1ZXJ5X3VzZXJfaW5m
bwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc3dpdGNo
X3ZhbHVlOwoKfSBTQU1SX1FfUVVFUllfVVNFUklORk87CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1y
X3F1ZXJ5X3VzZXJfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsKICAgICAgICBTQU1f
VVNFUklORk9fQ1RSICpjdHI7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1FV
RVJZX1VTRVJJTkZPOwojIDEzMDkgImluY2x1ZGUvcnBjX3NhbXIuaCIKdHlwZWRlZiBzdHJ1Y3Qg
cV9zYW1yX3F1ZXJ5X3VzZXJhbGlhc2VzX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3NpZHMxOwogICAgICAgIHVuc2lnbmVkIGludCBwdHI7
CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9zaWRzMjsKCiAgICAgICAgdW5zaWduZWQgaW50ICpw
dHJfc2lkOwogICAgICAgIERPTV9TSUQyICpzaWQgOwoKfSBTQU1SX1FfUVVFUllfVVNFUkFMSUFT
RVM7CgoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9xdWVyeV91c2VyYWxpYXNlc19pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsK
CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzMjsKICAgICAgICB1bnNpZ25lZCBpbnQg
KnJpZDsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfUVVFUllfVVNFUkFMSUFT
RVM7CgoKCgoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl9sb29rdXBfbmFtZXNfaW5mbwp7CiAgICAg
ICAgUE9MSUNZX0hORCBwb2w7CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fbmFtZXMxOwogICAg
ICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAg
IHVuc2lnbmVkIGludCBudW1fbmFtZXMyOwoKICAgICAgICBVTklIRFIgKmhkcl9uYW1lOwogICAg
ICAgIFVOSVNUUjIgKnVuaV9uYW1lOwoKfSBTQU1SX1FfTE9PS1VQX05BTUVTOwoKCgp0eXBlZGVm
IHN0cnVjdCByX3NhbXJfbG9va3VwX25hbWVzX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBu
dW1fcmlkczE7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9yaWRzOwogICAgICAgIHVuc2lnbmVk
IGludCBudW1fcmlkczI7CgogICAgICAgIHVuc2lnbmVkIGludCAqcmlkczsKCiAgICAgICAgdW5z
aWduZWQgaW50IG51bV90eXBlczE7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl90eXBlczsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbnVtX3R5cGVzMjsKCiAgICAgICAgdW5zaWduZWQgaW50ICp0eXBl
czsKCiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfTE9PS1VQX05BTUVTOwojIDEz
ODIgImluY2x1ZGUvcnBjX3NhbXIuaCIKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX2xvb2t1cF9yaWRz
X2luZm8KewogICAgICAgIFBPTElDWV9ITkQgcG9sOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVt
X3JpZHMxOwogICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICB1bnNpZ25lZCBpbnQg
cHRyOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fcmlkczI7CgogICAgICAgIHVuc2lnbmVkIGlu
dCAqcmlkOwoKfSBTQU1SX1FfTE9PS1VQX1JJRFM7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCByX3Nh
bXJfbG9va3VwX3JpZHNfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IG51bV9uYW1lczE7CiAg
ICAgICAgdW5zaWduZWQgaW50IHB0cl9uYW1lczsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX25h
bWVzMjsKCiAgICAgICAgVU5JSERSICpoZHJfbmFtZTsKICAgICAgICBVTklTVFIyICp1bmlfbmFt
ZTsKCiAgICAgICAgdW5zaWduZWQgaW50IG51bV90eXBlczE7CiAgICAgICAgdW5zaWduZWQgaW50
IHB0cl90eXBlczsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3R5cGVzMjsKCiAgICAgICAgdW5z
aWduZWQgaW50ICp0eXBlOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9MT09L
VVBfUklEUzsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX29wZW5fdXNlcl9pbmZvCnsKICAgICAg
ICBQT0xJQ1lfSE5EIGRvbWFpbl9wb2w7CiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNr
OwogICAgICAgIHVuc2lnbmVkIGludCB1c2VyX3JpZDsKCn0gU0FNUl9RX09QRU5fVVNFUjsKCgoK
dHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX29wZW5fdXNlcl9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5E
IHVzZXJfcG9sOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX09QRU5fVVNFUjsK
CgoKdHlwZWRlZiBzdHJ1Y3QgcV9zYW1yX2NyZWF0ZV91c2VyX2luZm8KewogICAgICAgIFBPTElD
WV9ITkQgZG9tYWluX3BvbDsKCiAgICAgICAgVU5JSERSIGhkcl9uYW1lOwogICAgICAgIFVOSVNU
UjIgdW5pX25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCBhY2JfaW5mbzsKICAgICAgICB1bnNp
Z25lZCBpbnQgYWNjZXNzX21hc2s7Cgp9IFNBTVJfUV9DUkVBVEVfVVNFUjsKCgoKdHlwZWRlZiBz
dHJ1Y3Qgcl9zYW1yX2NyZWF0ZV91c2VyX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgdXNlcl9w
b2w7CgogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzA7CiAgICAgICAgdW5zaWduZWQgaW50
IHVzZXJfcmlkOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX0NSRUFURV9VU0VS
OwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfZGVsZXRlX2RvbV91c2VyX2luZm8KewogICAgUE9M
SUNZX0hORCB1c2VyX3BvbDsKCn0gU0FNUl9RX0RFTEVURV9ET01fVVNFUjsKCgoKdHlwZWRlZiBz
dHJ1Y3Qgcl9zYW1yX2RlbGV0ZV9kb21fdXNlcl9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBv
bDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9ERUxFVEVfRE9NX1VTRVI7CgoK
CnR5cGVkZWYgc3RydWN0IHFfc2Ftcl9xdWVyeV9ncm91cG1lbV9pbmZvCnsKICAgICAgICBQT0xJ
Q1lfSE5EIGdyb3VwX3BvbDsKCn0gU0FNUl9RX1FVRVJZX0dST1VQTUVNOwoKCgp0eXBlZGVmIHN0
cnVjdCByX3NhbXJfcXVlcnlfZ3JvdXBtZW1faW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0
cjsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CgogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHJfcmlkczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2F0dHJzOwoKICAgICAgICB1bnNp
Z25lZCBpbnQgbnVtX3JpZHM7CiAgICAgICAgdW5zaWduZWQgaW50ICpyaWQ7CgogICAgICAgIHVu
c2lnbmVkIGludCBudW1fYXR0cnM7CiAgICAgICAgdW5zaWduZWQgaW50ICphdHRyOwoKICAgICAg
ICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9RVUVSWV9HUk9VUE1FTTsKCgoKdHlwZWRlZiBz
dHJ1Y3QgcV9zYW1yX2RlbF9ncm91cF9tZW1faW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBwb2w7
CiAgICAgICAgdW5zaWduZWQgaW50IHJpZDsKCn0gU0FNUl9RX0RFTF9HUk9VUE1FTTsKCgoKdHlw
ZWRlZiBzdHJ1Y3Qgcl9zYW1yX2RlbF9ncm91cF9tZW1faW5mbwp7CiAgICAgICAgTlRTVEFUVVMg
c3RhdHVzOwoKfSBTQU1SX1JfREVMX0dST1VQTUVNOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJf
YWRkX2dyb3VwX21lbV9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKCiAgICAgICAgdW5z
aWduZWQgaW50IHJpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjsKCn0gU0FNUl9RX0FE
RF9HUk9VUE1FTTsKCgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX2FkZF9ncm91cF9tZW1faW5mbwp7
CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfQUREX0dST1VQTUVNOwoKCgp0eXBl
ZGVmIHN0cnVjdCBxX3NhbXJfb3Blbl9ncm91cF9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIGRv
bWFpbl9wb2w7CiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrOwogICAgICAgIHVuc2ln
bmVkIGludCByaWRfZ3JvdXA7Cgp9IFNBTVJfUV9PUEVOX0dST1VQOwoKCgp0eXBlZGVmIHN0cnVj
dCByX3NhbXJfb3Blbl9ncm91cF9pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAg
ICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9PUEVOX0dST1VQOwoKCgp0eXBlZGVmIHN0cnVj
dCBxX3NhbXJfcXVlcnlfYWxpYXNtZW1faW5mbwp7CiAgICAgICAgUE9MSUNZX0hORCBhbGlhc19w
b2w7Cgp9IFNBTVJfUV9RVUVSWV9BTElBU01FTTsKCgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX3F1
ZXJ5X2FsaWFzbWVtX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBudW1fc2lkczsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fc2lkczE7CgogICAg
ICAgIERPTV9TSUQyICpzaWQ7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1FV
RVJZX0FMSUFTTUVNOwoKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfYWRkX2FsaWFzX21lbV9pbmZv
CnsKICAgICAgICBQT0xJQ1lfSE5EIGFsaWFzX3BvbDsKCiAgICAgICAgRE9NX1NJRDIgc2lkOwoK
fSBTQU1SX1FfQUREX0FMSUFTTUVNOwoKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfYWRkX2FsaWFz
X21lbV9pbmZvCnsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9BRERfQUxJQVNN
RU07CgoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl9kZWxfYWxpYXNfbWVtX2luZm8KewogICAgICAg
IFBPTElDWV9ITkQgYWxpYXNfcG9sOwoKICAgICAgICBET01fU0lEMiBzaWQ7Cgp9IFNBTVJfUV9E
RUxfQUxJQVNNRU07CgoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9kZWxfYWxpYXNfbWVtX2luZm8K
ewogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX0RFTF9BTElBU01FTTsKCgoKCnR5
cGVkZWYgc3RydWN0IHFfc2Ftcl9vcGVuX2FsaWFzX2luZm8KewogICAgICAgIFBPTElDWV9ITkQg
ZG9tX3BvbDsKCiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrOwogICAgICAgIHVuc2ln
bmVkIGludCByaWRfYWxpYXM7Cgp9IFNBTVJfUV9PUEVOX0FMSUFTOwoKCgp0eXBlZGVmIHN0cnVj
dCByX3NhbXJfb3Blbl9hbGlhc19pbmZvCnsKICAgICAgICBQT0xJQ1lfSE5EIHBvbDsKICAgICAg
ICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9PUEVOX0FMSUFTOwoKCgp0eXBlZGVmIHN0cnVj
dCBxX3NhbXJfY29ubmVjdF9hbm9uX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAg
ICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bl8wOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHVu
a25vd25fMTsKICAgICAgICB1bnNpZ25lZCBpbnQgYWNjZXNzX21hc2s7Cgp9IFNBTVJfUV9DT05O
RUNUX0FOT047CgoKdHlwZWRlZiBzdHJ1Y3Qgcl9zYW1yX2Nvbm5lY3RfYW5vbl9pbmZvCnsKICAg
ICAgICBQT0xJQ1lfSE5EIGNvbm5lY3RfcG9sOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0g
U0FNUl9SX0NPTk5FQ1RfQU5PTjsKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfY29ubmVjdF9pbmZv
CnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5p
X3Nydl9uYW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQgYWNjZXNzX21hc2s7Cgp9IFNBTVJfUV9D
T05ORUNUOwoKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJfY29ubmVjdF9pbmZvCnsKICAgIFBPTElD
WV9ITkQgY29ubmVjdF9wb2w7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfQ09O
TkVDVDsKCgp0eXBlZGVmIHN0cnVjdCBxX3NhbXJfZ2V0X2RvbV9wd2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBwdHI7CiAgICAgICAgVU5JSERSIGhkcl9zcnZfbmFtZTsKICAgICAgICBVTklT
VFIyIHVuaV9zcnZfbmFtZTsKCn0gU0FNUl9RX0dFVF9ET01fUFdJTkZPOwoKCnR5cGVkZWYgc3Ry
dWN0IHJfc2Ftcl9nZXRfZG9tX3B3aW5mbwp7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rXzA7
CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rXzE7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5r
XzI7CiAgICAgICAgTlRTVEFUVVMgc3RhdHVzOwoKfSBTQU1SX1JfR0VUX0RPTV9QV0lORk87CgoK
dHlwZWRlZiBzdHJ1Y3QgZW5jX3Bhc3N3ZF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRy
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGFzc1s1MTZdOwoKfSBTQU1SX0VOQ19QQVNTV0Q7CgoK
dHlwZWRlZiBzdHJ1Y3QgZW5jX2hhc2hfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cjsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIGhhc2hbMTZdOwoKfSBTQU1SX0VOQ19IQVNIOwoKCnR5cGVk
ZWYgc3RydWN0IHFfc2Ftcl9jaGdwYXNzd2RfdXNlcl9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBp
bnQgcHRyXzA7CgogICAgICAgIFVOSUhEUiBoZHJfZGVzdF9ob3N0OwogICAgICAgIFVOSVNUUjIg
dW5pX2Rlc3RfaG9zdDsKCiAgICAgICAgVU5JSERSIGhkcl91c2VyX25hbWU7CiAgICAgICAgVU5J
U1RSMiB1bmlfdXNlcl9uYW1lOwoKICAgICAgICBTQU1SX0VOQ19QQVNTV0QgbnRfbmV3cGFzczsK
ICAgICAgICBTQU1SX0VOQ19IQVNIIG50X29sZGhhc2g7CgogICAgICAgIHVuc2lnbmVkIGludCB1
bmtub3duOwoKICAgICAgICBTQU1SX0VOQ19QQVNTV0QgbG1fbmV3cGFzczsKICAgICAgICBTQU1S
X0VOQ19IQVNIIGxtX29sZGhhc2g7Cgp9IFNBTVJfUV9DSEdQQVNTV0RfVVNFUjsKCgp0eXBlZGVm
IHN0cnVjdCByX3NhbXJfY2hncGFzc3dkX3VzZXJfaW5mbwp7CiAgICAgICAgTlRTVEFUVVMgc3Rh
dHVzOwoKfSBTQU1SX1JfQ0hHUEFTU1dEX1VTRVI7CgoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl91
bmtub3duXzJkX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgZG9tX3BvbDsKICAgICAgICBET01f
U0lEMiBzaWQ7Cgp9IFNBTVJfUV9VTktOT1dOXzJEOwoKCgp0eXBlZGVmIHN0cnVjdCByX3NhbXJf
dW5rbm93bl8yZF9pbmZvCnsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9VTktO
T1dOXzJEOwojIDE3NjkgImluY2x1ZGUvcnBjX3NhbXIuaCIKdHlwZWRlZiBzdHJ1Y3Qgc2lkX2lu
Zm9fMwp7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbGVuOwoKCiAgICAgICAgRE9NX1NJRCBzaWQ7
Cgp9IERPTV9TSUQzOwoKCnR5cGVkZWYgc3RydWN0IHFfc2Ftcl91bmtub3duXzJlX2luZm8Kewog
ICAgICAgIFBPTElDWV9ITkQgZG9tYWluX3BvbDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0
Y2hfdmFsdWU7Cgp9IFNBTVJfUV9VTktOT1dOXzJFOwoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl91
bmtub3duXzJlX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfMDsKICAgICAgICB1bnNp
Z25lZCBzaG9ydCBzd2l0Y2hfdmFsdWU7CiAgICAgICAgU0FNX1VOS19DVFIgKmN0cjsKICAgICAg
ICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNBTVJfUl9VTktOT1dOXzJFOwoKCnR5cGVkZWYgc3RydWN0
IHFfc2Ftcl9zZXRfZG9tYWluX2luZm8KewogICAgICAgIFBPTElDWV9ITkQgZG9tYWluX3BvbDsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUwOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IHN3aXRjaF92YWx1ZTsKICAgICAgICBTQU1fVU5LX0NUUiAqY3RyOwoKfSBTQU1SX1FfU0VU
X0RPTUFJTl9JTkZPOwoKCnR5cGVkZWYgc3RydWN0IHJfc2Ftcl9zZXRfZG9tYWluX2luZm8Kewog
ICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU0FNUl9SX1NFVF9ET01BSU5fSU5GTzsKIyAyODIg
ImluY2x1ZGUvbnRkb21haW4uaCIgMgojIDEgImluY2x1ZGUvcnBjX3NydnN2Yy5oIiAxCiMgNDgg
ImluY2x1ZGUvcnBjX3NydnN2Yy5oIgp0eXBlZGVmIHN0cnVjdCBkaXNrX2luZm8gewogICAgICAg
IHVuc2lnbmVkIGludCB1bmtub3duOwogICAgICAgIFVOSVNUUjMgZGlza19uYW1lOwp9IERJU0tf
SU5GTzsKCnR5cGVkZWYgc3RydWN0IGRpc2tfZW51bV9jb250YWluZXIgewogICAgICAgIHVuc2ln
bmVkIGludCBsZXZlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgZW50cmllc19yZWFkOwogICAgICAg
IHVuc2lnbmVkIGludCB1bmtub3duOwogICAgICAgIHVuc2lnbmVkIGludCBkaXNrX2luZm9fcHRy
OwogICAgICAgIERJU0tfSU5GTyBkaXNrX2luZm9bMTVdOwp9IERJU0tfRU5VTV9DT05UQUlORVI7
Cgp0eXBlZGVmIHN0cnVjdCBuZXRfc3J2X2Rpc2tfZW51bSB7CiAgICAgICAgdW5zaWduZWQgaW50
IHB0cl9zcnZfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9zcnZfbmFtZTsKCiAgICAgICAgRElT
S19FTlVNX0NPTlRBSU5FUiBkaXNrX2VudW1fY3RyOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHJl
ZmVycmVkX2xlbjsKICAgICAgICB1bnNpZ25lZCBpbnQgdG90YWxfZW50cmllczsKICAgICAgICBF
TlVNX0hORCBlbnVtX2huZDsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0gU1JWX1FfTkVUX0RJ
U0tfRU5VTSwgU1JWX1JfTkVUX0RJU0tfRU5VTTsKCnR5cGVkZWYgc3RydWN0IG5ldF9uYW1lX3Zh
bGlkYXRlIHsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAgICAgIFVOSVNU
UjIgdW5pX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX25hbWU7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHR5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwogICAgICAgIE5UU1RBVFVT
IHN0YXR1czsKfSBTUlZfUV9ORVRfTkFNRV9WQUxJREFURSwgU1JWX1JfTkVUX05BTUVfVkFMSURB
VEU7CgoKdHlwZWRlZiBzdHJ1Y3QgcHRyX3Nlc3NfaW5mbzAKewogICAgICAgIHVuc2lnbmVkIGlu
dCBwdHJfbmFtZTsKCn0gU0VTU19JTkZPXzA7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3RyX3Nlc3NfaW5m
bzAKewogICAgICAgIFVOSVNUUjIgdW5pX25hbWU7Cgp9IFNFU1NfSU5GT18wX1NUUjsKCgoKCgoK
dHlwZWRlZiBzdHJ1Y3Qgc3J2X3Nlc3NfaW5mb18wX2luZm8KewogICAgICAgIHVuc2lnbmVkIGlu
dCBudW1fZW50cmllc19yZWFkOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc2Vzc19pbmZvOwog
ICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllc19yZWFkMjsKCiAgICAgICAgU0VTU19JTkZP
XzAgaW5mb18wIFszMl07CiAgICAgICAgU0VTU19JTkZPXzBfU1RSIGluZm9fMF9zdHJbMzJdOwoK
fSBTUlZfU0VTU19JTkZPXzA7CgoKdHlwZWRlZiBzdHJ1Y3QgcHRyX3Nlc3NfaW5mbzEKewogICAg
ICAgIHVuc2lnbmVkIGludCBwdHJfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3VzZXI7
CgogICAgICAgIHVuc2lnbmVkIGludCBudW1fb3BlbnM7CiAgICAgICAgdW5zaWduZWQgaW50IG9w
ZW5fdGltZTsKICAgICAgICB1bnNpZ25lZCBpbnQgaWRsZV90aW1lOwogICAgICAgIHVuc2lnbmVk
IGludCB1c2VyX2ZsYWdzOwoKfSBTRVNTX0lORk9fMTsKCgp0eXBlZGVmIHN0cnVjdCBzdHJfc2Vz
c19pbmZvMQp7CiAgICAgICAgVU5JU1RSMiB1bmlfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV91
c2VyOwoKfSBTRVNTX0lORk9fMV9TVFI7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3J2X3Nlc3NfaW5mb18x
X2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllc19yZWFkOwogICAgICAgIHVu
c2lnbmVkIGludCBwdHJfc2Vzc19pbmZvOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmll
c19yZWFkMjsKCiAgICAgICAgU0VTU19JTkZPXzEgaW5mb18xIFszMl07CiAgICAgICAgU0VTU19J
TkZPXzFfU1RSIGluZm9fMV9zdHJbMzJdOwoKfSBTUlZfU0VTU19JTkZPXzE7CgoKdHlwZWRlZiBz
dHJ1Y3Qgc3J2X3Nlc3NfaW5mb19jdHJfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHN3aXRj
aF92YWx1ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nlc3NfY3RyOwogICAgICAgIHVuaW9u
CiAgICB7CiAgICAgICAgICAgICAgICBTUlZfU0VTU19JTkZPXzAgaW5mbzA7CiAgICAgICAgICAg
ICAgICBTUlZfU0VTU19JTkZPXzEgaW5mbzE7CgogICAgfSBzZXNzOwoKfSBTUlZfU0VTU19JTkZP
X0NUUjsKCgoKdHlwZWRlZiBzdHJ1Y3QgcV9uZXRfc2Vzc19lbnVtX2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBwdHJfc3J2X25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfc3J2X25hbWU7Cgog
ICAgICAgIHVuc2lnbmVkIGludCBwdHJfcXVhbF9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3F1
YWxfbmFtZTsKCiAgICAgICAgdW5zaWduZWQgaW50IHNlc3NfbGV2ZWw7CgogICAgICAgIFNSVl9T
RVNTX0lORk9fQ1RSICpjdHI7CgogICAgICAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfbGVuOwog
ICAgICAgIEVOVU1fSE5EIGVudW1faG5kOwoKfSBTUlZfUV9ORVRfU0VTU19FTlVNOwoKCnR5cGVk
ZWYgc3RydWN0IHJfbmV0X3Nlc3NfZW51bV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgc2Vz
c19sZXZlbDsKCiAgICAgICAgU1JWX1NFU1NfSU5GT19DVFIgKmN0cjsKCiAgICAgICAgdW5zaWdu
ZWQgaW50IHRvdGFsX2VudHJpZXM7CiAgICAgICAgRU5VTV9ITkQgZW51bV9obmQ7CgogICAgICAg
IE5UU1RBVFVTIHN0YXR1czsKCn0gU1JWX1JfTkVUX1NFU1NfRU5VTTsKCgp0eXBlZGVmIHN0cnVj
dCBwdHJfY29ubl9pbmZvMAp7CiAgICAgICAgdW5zaWduZWQgaW50IGlkOwoKfSBDT05OX0lORk9f
MDsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3Qgc3J2X2Nvbm5faW5mb18wX2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBudW1fZW50cmllc19yZWFkOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfY29u
bl9pbmZvOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllc19yZWFkMjsKCiAgICAgICAg
Q09OTl9JTkZPXzAgaW5mb18wIFszMl07Cgp9IFNSVl9DT05OX0lORk9fMDsKCgp0eXBlZGVmIHN0
cnVjdCBwdHJfY29ubl9pbmZvMQp7CiAgICAgICAgdW5zaWduZWQgaW50IGlkOwogICAgICAgIHVu
c2lnbmVkIGludCB0eXBlOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fb3BlbnM7CiAgICAgICAg
dW5zaWduZWQgaW50IG51bV91c2VyczsKICAgICAgICB1bnNpZ25lZCBpbnQgb3Blbl90aW1lOwoK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Vzcl9uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBw
dHJfbmV0X25hbWU7Cgp9IENPTk5fSU5GT18xOwoKCnR5cGVkZWYgc3RydWN0IHN0cl9jb25uX2lu
Zm8xCnsKICAgICAgICBVTklTVFIyIHVuaV91c3JfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9u
ZXRfbmFtZTsKCn0gQ09OTl9JTkZPXzFfU1RSOwoKCnR5cGVkZWYgc3RydWN0IHNydl9jb25uX2lu
Zm9fMV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXNfcmVhZDsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyX2Nvbm5faW5mbzsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2Vu
dHJpZXNfcmVhZDI7CgogICAgICAgIENPTk5fSU5GT18xIGluZm9fMSBbMzJdOwogICAgICAgIENP
Tk5fSU5GT18xX1NUUiBpbmZvXzFfc3RyWzMyXTsKCn0gU1JWX0NPTk5fSU5GT18xOwoKCnR5cGVk
ZWYgc3RydWN0IHNydl9jb25uX2luZm9fY3RyX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBz
d2l0Y2hfdmFsdWU7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9jb25uX2N0cjsKICAgICAgICB1
bmlvbgogICAgewogICAgICAgICAgICAgICAgU1JWX0NPTk5fSU5GT18wIGluZm8wOwogICAgICAg
ICAgICAgICAgU1JWX0NPTk5fSU5GT18xIGluZm8xOwoKICAgIH0gY29ubjsKCn0gU1JWX0NPTk5f
SU5GT19DVFI7CgoKCnR5cGVkZWYgc3RydWN0IHFfbmV0X2Nvbm5fZW51bV9pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9uYW1l
OwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3F1YWxfbmFtZTsKICAgICAgICBVTklTVFIyIHVu
aV9xdWFsX25hbWU7CgogICAgICAgIHVuc2lnbmVkIGludCBjb25uX2xldmVsOwoKICAgICAgICBT
UlZfQ09OTl9JTkZPX0NUUiAqY3RyOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX2xl
bjsKICAgICAgICBFTlVNX0hORCBlbnVtX2huZDsKCn0gU1JWX1FfTkVUX0NPTk5fRU5VTTsKCgp0
eXBlZGVmIHN0cnVjdCByX25ldF9jb25uX2VudW1faW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50
IGNvbm5fbGV2ZWw7CgogICAgICAgIFNSVl9DT05OX0lORk9fQ1RSICpjdHI7CgogICAgICAgIHVu
c2lnbmVkIGludCB0b3RhbF9lbnRyaWVzOwogICAgICAgIEVOVU1fSE5EIGVudW1faG5kOwoKICAg
ICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNSVl9SX05FVF9DT05OX0VOVU07CgoKdHlwZWRlZiBz
dHJ1Y3QgcHRyX3NoYXJlX2luZm8xCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX25ldG5hbWU7
CiAgICAgICAgdW5zaWduZWQgaW50IHR5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9yZW1h
cms7Cgp9IFNIX0lORk9fMTsKCgp0eXBlZGVmIHN0cnVjdCBzdHJfc2hhcmVfaW5mbzEKewogICAg
ICAgIFVOSVNUUjIgdW5pX25ldG5hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfcmVtYXJrOwoKfSBT
SF9JTkZPXzFfU1RSOwoKCnR5cGVkZWYgc3RydWN0IHNoYXJlX2luZm9fMV9pbmZvCnsKICAgICAg
ICBTSF9JTkZPXzEgaW5mb18xOwogICAgICAgIFNIX0lORk9fMV9TVFIgaW5mb18xX3N0cjsKCn0g
U1JWX1NIQVJFX0lORk9fMTsKCgp0eXBlZGVmIHN0cnVjdCBwdHJfc2hhcmVfaW5mbzIKewogICAg
ICAgIHVuc2lnbmVkIGludCBwdHJfbmV0bmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgdHlwZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3JlbWFyazsKICAgICAgICB1bnNpZ25lZCBpbnQgcGVy
bXM7CiAgICAgICAgdW5zaWduZWQgaW50IG1heF91c2VzOwogICAgICAgIHVuc2lnbmVkIGludCBu
dW1fdXNlczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3BhdGg7CiAgICAgICAgdW5zaWduZWQg
aW50IHB0cl9wYXNzd2Q7Cgp9IFNIX0lORk9fMjsKCgp0eXBlZGVmIHN0cnVjdCBzdHJfc2hhcmVf
aW5mbzIKewogICAgICAgIFVOSVNUUjIgdW5pX25ldG5hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlf
cmVtYXJrOwogICAgICAgIFVOSVNUUjIgdW5pX3BhdGg7CiAgICAgICAgVU5JU1RSMiB1bmlfcGFz
c3dkOwoKfSBTSF9JTkZPXzJfU1RSOwoKCnR5cGVkZWYgc3RydWN0IHNoYXJlX2luZm9fMl9pbmZv
CnsKICAgICAgICBTSF9JTkZPXzIgaW5mb18yOwogICAgICAgIFNIX0lORk9fMl9TVFIgaW5mb18y
X3N0cjsKCn0gU1JWX1NIQVJFX0lORk9fMjsKCgp0eXBlZGVmIHN0cnVjdCBwdHJfc2hhcmVfaW5m
bzUwMgp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9uZXRuYW1lOwogICAgICAgIHVuc2lnbmVk
IGludCB0eXBlOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfcmVtYXJrOwogICAgICAgIHVuc2ln
bmVkIGludCBwZXJtczsKICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3VzZXM7CiAgICAgICAgdW5z
aWduZWQgaW50IG51bV91c2VzOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfcGF0aDsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyX3Bhc3N3ZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc2Rfc2l6ZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3NkOwoKfSBTSF9JTkZPXzUwMjsKCgp0eXBlZGVmIHN0
cnVjdCBzdHJfc2hhcmVfaW5mbzUwMgp7CiAgICAgICAgU0hfSU5GT181MDIgKnB0cnM7CgogICAg
ICAgIFVOSVNUUjIgdW5pX25ldG5hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfcmVtYXJrOwogICAg
ICAgIFVOSVNUUjIgdW5pX3BhdGg7CiAgICAgICAgVU5JU1RSMiB1bmlfcGFzc3dkOwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgc2Rfc2l6ZTsKICAgICAgICBTRUNfREVTQyAqc2Q7Cgp9IFNIX0lORk9f
NTAyX1NUUjsKCgp0eXBlZGVmIHN0cnVjdCBzaGFyZV9pbmZvXzUwMl9pbmZvCnsKICAgICAgICBT
SF9JTkZPXzUwMiBpbmZvXzUwMjsKICAgICAgICBTSF9JTkZPXzUwMl9TVFIgaW5mb181MDJfc3Ry
OwoKfSBTUlZfU0hBUkVfSU5GT181MDI7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2hhcmVfaW5mb18xMDA1
X2luZm8KewogIHVuc2lnbmVkIGludCBkZnNfcm9vdF9mbGFnOwp9IFNSVl9TSEFSRV9JTkZPXzEw
MDU7CgoKdHlwZWRlZiBzdHJ1Y3Qgc2hhcmVfaW5mb18xNTAxX2luZm8KewogICAgICAgIFNFQ19E
RVNDX0JVRiAqc2RiOwp9IFNSVl9TSEFSRV9JTkZPXzE1MDE7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3J2
X3NoYXJlX2luZm9fY3RyX2luZm8KewogICAgICAgIHVuc2lnbmVkIGludCBpbmZvX2xldmVsOwog
ICAgICAgIHVuc2lnbmVkIGludCBzd2l0Y2hfdmFsdWU7CiAgICAgICAgdW5zaWduZWQgaW50IHB0
cl9zaGFyZV9pbmZvOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAgICAgICAg
dW5zaWduZWQgaW50IHB0cl9lbnRyaWVzOwogICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmll
czI7CgogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIFNSVl9TSEFSRV9JTkZPXzEgKmlu
Zm8xOwogICAgICAgICAgICAgICAgU1JWX1NIQVJFX0lORk9fMiAqaW5mbzI7CiAgICAgICAgICAg
ICAgICBTUlZfU0hBUkVfSU5GT181MDIgKmluZm81MDI7CiAgICAgICAgICAgICAgICB2b2lkICpp
bmZvOwoKICAgICAgICB9IHNoYXJlOwoKfSBTUlZfU0hBUkVfSU5GT19DVFI7CgoKdHlwZWRlZiBz
dHJ1Y3QgcV9uZXRfc2hhcmVfZW51bV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Ny
dl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9uYW1lOwoKICAgICAgICBTUlZfU0hBUkVf
SU5GT19DVFIgY3RyOwoKICAgICAgICB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX2xlbjsKCiAgICAg
ICAgRU5VTV9ITkQgZW51bV9obmQ7Cgp9IFNSVl9RX05FVF9TSEFSRV9FTlVNOwoKCgp0eXBlZGVm
IHN0cnVjdCByX25ldF9zaGFyZV9lbnVtX2luZm8KewogICAgICAgIFNSVl9TSEFSRV9JTkZPX0NU
UiBjdHI7CgogICAgICAgIHVuc2lnbmVkIGludCB0b3RhbF9lbnRyaWVzOwogICAgICAgIEVOVU1f
SE5EIGVudW1faG5kOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNSVl9SX05FVF9TSEFS
RV9FTlVNOwoKCgp0eXBlZGVmIHN0cnVjdCBxX25ldF9zaGFyZV9nZXRfaW5mb19pbmZvCnsKICAg
ICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9u
YW1lOwoKICAgICAgICBVTklTVFIyIHVuaV9zaGFyZV9uYW1lOwogICAgICAgIHVuc2lnbmVkIGlu
dCBpbmZvX2xldmVsOwoKfSBTUlZfUV9ORVRfU0hBUkVfR0VUX0lORk87CgoKCgp0eXBlZGVmIHN0
cnVjdCBzcnZfc2hhcmVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgaW50IHN3aXRjaF92YWx1ZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3NoYXJlX2N0cjsKCiAgICAgICAgdW5pb24gewogICAg
ICAgICAgICAgICAgU1JWX1NIQVJFX0lORk9fMSBpbmZvMTsKICAgICAgICAgICAgICAgIFNSVl9T
SEFSRV9JTkZPXzIgaW5mbzI7CiAgICAgICAgICAgICAgICBTUlZfU0hBUkVfSU5GT181MDIgaW5m
bzUwMjsKICAgICAgICBTUlZfU0hBUkVfSU5GT18xMDA1IGluZm8xMDA1OwogICAgICAgIFNSVl9T
SEFSRV9JTkZPXzE1MDEgaW5mbzE1MDE7CiAgICAgICAgfSBzaGFyZTsKfSBTUlZfU0hBUkVfSU5G
TzsKCgp0eXBlZGVmIHN0cnVjdCByX25ldF9zaGFyZV9nZXRfaW5mb19pbmZvCnsKICAgICAgICBT
UlZfU0hBUkVfSU5GTyBpbmZvOwogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU1JWX1JfTkVU
X1NIQVJFX0dFVF9JTkZPOwoKCnR5cGVkZWYgc3RydWN0IHFfbmV0X3NoYXJlX3NldF9pbmZvX2lu
Zm8KewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc3J2X25hbWU7CiAgICAgICAgVU5JU1RSMiB1
bmlfc3J2X25hbWU7CgogICAgICAgIFVOSVNUUjIgdW5pX3NoYXJlX25hbWU7CiAgICAgICAgdW5z
aWduZWQgaW50IGluZm9fbGV2ZWw7CgogICAgICAgIFNSVl9TSEFSRV9JTkZPIGluZm87Cgp9IFNS
Vl9RX05FVF9TSEFSRV9TRVRfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCByX25ldF9zaGFyZV9zZXRf
aW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHN3aXRjaF92YWx1ZTsKCiAgICAgICAgTlRTVEFU
VVMgc3RhdHVzOwoKfSBTUlZfUl9ORVRfU0hBUkVfU0VUX0lORk87CgoKdHlwZWRlZiBzdHJ1Y3Qg
cV9uZXRfc2hhcmVfYWRkCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAg
ICAgIFVOSVNUUjIgdW5pX3Nydl9uYW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQgaW5mb19sZXZl
bDsKCiAgICAgICAgU1JWX1NIQVJFX0lORk8gaW5mbzsKCn0gU1JWX1FfTkVUX1NIQVJFX0FERDsK
Cgp0eXBlZGVmIHN0cnVjdCByX25ldF9zaGFyZV9hZGQKewogICAgICAgIHVuc2lnbmVkIGludCBz
d2l0Y2hfdmFsdWU7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU1JWX1JfTkVUX1NIQVJF
X0FERDsKCgp0eXBlZGVmIHN0cnVjdCBxX25ldF9zaGFyZV9kZWwKewogICAgICAgIHVuc2lnbmVk
IGludCBwdHJfc3J2X25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfc3J2X25hbWU7CiAgICAgICAg
VU5JU1RSMiB1bmlfc2hhcmVfbmFtZTsKCn0gU1JWX1FfTkVUX1NIQVJFX0RFTDsKCgp0eXBlZGVm
IHN0cnVjdCByX25ldF9zaGFyZV9kZWwKewogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU1JW
X1JfTkVUX1NIQVJFX0RFTDsKCgp0eXBlZGVmIHN0cnVjdCBmaWxlX2luZm8zX2luZm8KewogICAg
ICAgIHVuc2lnbmVkIGludCBpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcGVybXM7CiAgICAgICAg
dW5zaWduZWQgaW50IG51bV9sb2NrczsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3BhdGhfbmFt
ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3VzZXJfbmFtZTsKCn0gRklMRV9JTkZPXzM7CgoK
dHlwZWRlZiBzdHJ1Y3Qgc3RyX2ZpbGVfaW5mbzNfaW5mbwp7CiAgICAgICAgVU5JU1RSMiB1bmlf
cGF0aF9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3VzZXJfbmFtZTsKCn0gRklMRV9JTkZPXzNf
U1RSOwoKCgoKCgp0eXBlZGVmIHN0cnVjdCBzcnZfZmlsZV9pbmZvXzMKewogICAgICAgIHVuc2ln
bmVkIGludCBudW1fZW50cmllc19yZWFkOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfZmlsZV9p
bmZvOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXNfcmVhZDI7CgogICAgICAgIEZJ
TEVfSU5GT18zIGluZm9fMyBbMzJdOwogICAgICAgIEZJTEVfSU5GT18zX1NUUiBpbmZvXzNfc3Ry
WzMyXTsKCn0gU1JWX0ZJTEVfSU5GT18zOwoKCnR5cGVkZWYgc3RydWN0IHNydl9maWxlX2luZm9f
M19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgc3dpdGNoX3ZhbHVlOwogICAgICAgIHVuc2ln
bmVkIGludCBwdHJfZmlsZV9jdHI7CiAgICAgICAgdW5pb24KICAgIHsKICAgICAgICAgICAgICAg
IFNSVl9GSUxFX0lORk9fMyBpbmZvMzsKCiAgICB9IGZpbGU7Cgp9IFNSVl9GSUxFX0lORk9fQ1RS
OwoKCgp0eXBlZGVmIHN0cnVjdCBxX25ldF9maWxlX2VudW1faW5mbwp7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHB0cl9zcnZfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9zcnZfbmFtZTsKCiAgICAg
ICAgdW5zaWduZWQgaW50IHB0cl9xdWFsX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfcXVhbF9u
YW1lOwoKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZV9sZXZlbDsKCiAgICAgICAgU1JWX0ZJTEVf
SU5GT19DVFIgKmN0cjsKCiAgICAgICAgdW5zaWduZWQgaW50IHByZWZlcnJlZF9sZW47CiAgICAg
ICAgRU5VTV9ITkQgZW51bV9obmQ7Cgp9IFNSVl9RX05FVF9GSUxFX0VOVU07CgoKCnR5cGVkZWYg
c3RydWN0IHJfbmV0X2ZpbGVfZW51bV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZV9s
ZXZlbDsKCiAgICAgICAgU1JWX0ZJTEVfSU5GT19DVFIgKmN0cjsKCiAgICAgICAgdW5zaWduZWQg
aW50IHRvdGFsX2VudHJpZXM7CiAgICAgICAgRU5VTV9ITkQgZW51bV9obmQ7CgogICAgICAgIE5U
U1RBVFVTIHN0YXR1czsKCn0gU1JWX1JfTkVUX0ZJTEVfRU5VTTsKCgp0eXBlZGVmIHN0cnVjdCBz
cnZfaW5mb18xMDBfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHBsYXRmb3JtX2lkOwogICAg
ICAgIHVuc2lnbmVkIGludCBwdHJfbmFtZTsKCiAgICAgICAgVU5JU1RSMiB1bmlfbmFtZTsKCn0g
U1JWX0lORk9fMTAwOwoKCnR5cGVkZWYgc3RydWN0IHNydl9pbmZvXzEwMV9pbmZvCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcGxhdGZvcm1faWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9uYW1l
OwogICAgICAgIHVuc2lnbmVkIGludCB2ZXJfbWFqb3I7CiAgICAgICAgdW5zaWduZWQgaW50IHZl
cl9taW5vcjsKICAgICAgICB1bnNpZ25lZCBpbnQgc3J2X3R5cGU7CiAgICAgICAgdW5zaWduZWQg
aW50IHB0cl9jb21tZW50OwoKICAgICAgICBVTklTVFIyIHVuaV9uYW1lOwogICAgICAgIFVOSVNU
UjIgdW5pX2NvbW1lbnQ7Cgp9IFNSVl9JTkZPXzEwMTsKCgp0eXBlZGVmIHN0cnVjdCBzcnZfaW5m
b18xMDJfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHBsYXRmb3JtX2lkOwogICAgICAgIHVu
c2lnbmVkIGludCBwdHJfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgdmVyX21ham9yOwogICAg
ICAgIHVuc2lnbmVkIGludCB2ZXJfbWlub3I7CiAgICAgICAgdW5zaWduZWQgaW50IHNydl90eXBl
OwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfY29tbWVudDsKICAgICAgICB1bnNpZ25lZCBpbnQg
dXNlcnM7CiAgICAgICAgdW5zaWduZWQgaW50IGRpc2M7CiAgICAgICAgdW5zaWduZWQgaW50IGhp
ZGRlbjsKICAgICAgICB1bnNpZ25lZCBpbnQgYW5ub3VuY2U7CiAgICAgICAgdW5zaWduZWQgaW50
IGFubl9kZWx0YTsKICAgICAgICB1bnNpZ25lZCBpbnQgbGljZW5zZXM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHB0cl91c3JfcGF0aDsKCiAgICAgICAgVU5JU1RSMiB1bmlfbmFtZTsKICAgICAgICBV
TklTVFIyIHVuaV9jb21tZW50OwogICAgICAgIFVOSVNUUjIgdW5pX3Vzcl9wYXRoOwoKfSBTUlZf
SU5GT18xMDI7CgoKCnR5cGVkZWYgc3RydWN0IHNydl9pbmZvX2N0cl9pbmZvCnsKICAgICAgICB1
bnNpZ25lZCBpbnQgc3dpdGNoX3ZhbHVlOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc3J2X2N0
cjsKICAgICAgICB1bmlvbgogICAgewogICAgICAgICAgICAgICAgU1JWX0lORk9fMTAyIHN2MTAy
OwogICAgICAgICAgICAgICAgU1JWX0lORk9fMTAxIHN2MTAxOwogICAgICAgICAgICAgICAgU1JW
X0lORk9fMTAwIHN2MTAwOwoKICAgIH0gc3J2OwoKfSBTUlZfSU5GT19DVFI7CgoKdHlwZWRlZiBz
dHJ1Y3QgcV9uZXRfc3J2X2dldF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9u
YW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBz
d2l0Y2hfdmFsdWU7Cgp9IFNSVl9RX05FVF9TUlZfR0VUX0lORk87CgoKdHlwZWRlZiBzdHJ1Y3Qg
cl9uZXRfc3J2X2dldF9pbmZvCnsKICAgICAgICBTUlZfSU5GT19DVFIgKmN0cjsKCiAgICAgICAg
TlRTVEFUVVMgc3RhdHVzOwoKfSBTUlZfUl9ORVRfU1JWX0dFVF9JTkZPOwoKCnR5cGVkZWYgc3Ry
dWN0IHFfbmV0X3Nydl9zZXRfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9zcnZfbmFt
ZTsKICAgICAgICBVTklTVFIyIHVuaV9zcnZfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3dp
dGNoX3ZhbHVlOwoKICAgICAgICBTUlZfSU5GT19DVFIgKmN0cjsKCn0gU1JWX1FfTkVUX1NSVl9T
RVRfSU5GTzsKCgoKdHlwZWRlZiBzdHJ1Y3Qgcl9uZXRfc3J2X3NldF9pbmZvCnsKICAgICAgICB1
bnNpZ25lZCBpbnQgc3dpdGNoX3ZhbHVlOwoKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cgp9IFNS
Vl9SX05FVF9TUlZfU0VUX0lORk87CgoKdHlwZWRlZiBzdHJ1Y3QgcV9uZXRfcmVtb3RlX3RvZAp7
CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9zcnZfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9z
cnZfbmFtZTsKCn0gU1JWX1FfTkVUX1JFTU9URV9UT0Q7CgoKdHlwZWRlZiBzdHJ1Y3QgdGltZV9v
Zl9kYXlfaW5mbwp7CiAgICAgICAgdW5zaWduZWQgaW50IGVsYXBzZWR0OwogICAgICAgIHVuc2ln
bmVkIGludCBtc2VjczsKICAgICAgICB1bnNpZ25lZCBpbnQgaG91cnM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IG1pbnM7CiAgICAgICAgdW5zaWduZWQgaW50IHNlY3M7CiAgICAgICAgdW5zaWduZWQg
aW50IGh1bmRzOwogICAgICAgIHVuc2lnbmVkIGludCB6b25lOwogICAgICAgIHVuc2lnbmVkIGlu
dCB0aW50ZXJ2YWxzOwogICAgICAgIHVuc2lnbmVkIGludCBkYXk7CiAgICAgICAgdW5zaWduZWQg
aW50IG1vbnRoOwogICAgICAgIHVuc2lnbmVkIGludCB5ZWFyOwogICAgICAgIHVuc2lnbmVkIGlu
dCB3ZWVrZGF5OwoKfSBUSU1FX09GX0RBWV9JTkZPOwoKCnR5cGVkZWYgc3RydWN0IHJfbmV0X3Jl
bW90ZV90b2QKewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc3J2X3RvZDsKICAgICAgICBUSU1F
X09GX0RBWV9JTkZPICp0b2Q7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gU1JWX1JfTkVU
X1JFTU9URV9UT0Q7CgoKdHlwZWRlZiBzdHJ1Y3QgcV9uZXRfZmlsZV9xdWVyeV9zZWNkZXNjCnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Ny
dl9uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfcXVhbF9uYW1lOwogICAgICAgIFVOSVNU
UjIgdW5pX3F1YWxfbmFtZTsKICAgICAgICBVTklTVFIyIHVuaV9maWxlX25hbWU7CiAgICAgICAg
dW5zaWduZWQgaW50IHVua25vd24xOwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duMjsKICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjM7Cn0gU1JWX1FfTkVUX0ZJTEVfUVVFUllfU0VDREVT
QzsKCgp0eXBlZGVmIHN0cnVjdCByX25ldF9maWxlX3F1ZXJ5X3NlY2Rlc2MKewogICAgICAgIHVu
c2lnbmVkIGludCBwdHJfcmVzcG9uc2U7CiAgICAgICAgdW5zaWduZWQgaW50IHNpemVfcmVzcG9u
c2U7CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9zZWNkZXNjOwogICAgICAgIHVuc2lnbmVkIGlu
dCBzaXplX3NlY2Rlc2M7CiAgICAgICAgU0VDX0RFU0MgKnNlY19kZXNjOwogICAgICAgIE5UU1RB
VFVTIHN0YXR1czsKfSBTUlZfUl9ORVRfRklMRV9RVUVSWV9TRUNERVNDOwoKCnR5cGVkZWYgc3Ry
dWN0IHFfbmV0X2ZpbGVfc2V0X3NlY2Rlc2MKewogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc3J2
X25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfc3J2X25hbWU7CiAgICAgICAgdW5zaWduZWQgaW50
IHB0cl9xdWFsX25hbWU7CiAgICAgICAgVU5JU1RSMiB1bmlfcXVhbF9uYW1lOwogICAgICAgIFVO
SVNUUjIgdW5pX2ZpbGVfbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VjX2luZm87CiAgICAg
ICAgdW5zaWduZWQgaW50IHNpemVfc2V0OwogICAgICAgIHVuc2lnbmVkIGludCBwdHJfc2VjZGVz
YzsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZV9zZWNkZXNjOwogICAgICAgIFNFQ19ERVNDICpz
ZWNfZGVzYzsKfSBTUlZfUV9ORVRfRklMRV9TRVRfU0VDREVTQzsKCgp0eXBlZGVmIHN0cnVjdCBy
X25ldF9maWxlX3NldF9zZWNkZXNjCnsKICAgICAgICBOVFNUQVRVUyBzdGF0dXM7Cn0gU1JWX1Jf
TkVUX0ZJTEVfU0VUX1NFQ0RFU0M7CiMgMjgzICJpbmNsdWRlL250ZG9tYWluLmgiIDIKIyAxICJp
bmNsdWRlL3JwY193a3NzdmMuaCIgMQojIDMzICJpbmNsdWRlL3JwY193a3NzdmMuaCIKdHlwZWRl
ZiBzdHJ1Y3QgcV93a3NfcXVlcnlfaW5mb19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRy
X3Nydl9uYW1lOwogICAgICAgIFVOSVNUUjIgdW5pX3Nydl9uYW1lOwoKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBzd2l0Y2hfdmFsdWU7Cgp9IFdLU19RX1FVRVJZX0lORk87CgoKCnR5cGVkZWYgc3Ry
dWN0IHdrc19pbmZvXzEwMF9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgcGxhdGZvcm1faWQ7
CiAgICAgICAgdW5zaWduZWQgaW50IHB0cl9jb21wbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQg
cHRyX2xhbl9ncnAgOwogICAgICAgIHVuc2lnbmVkIGludCB2ZXJfbWFqb3I7CiAgICAgICAgdW5z
aWduZWQgaW50IHZlcl9taW5vcjsKCiAgICAgICAgVU5JU1RSMiB1bmlfY29tcG5hbWU7CiAgICAg
ICAgVU5JU1RSMiB1bmlfbGFuX2dycCA7Cgp9IFdLU19JTkZPXzEwMDsKCgoKdHlwZWRlZiBzdHJ1
Y3Qgcl93a3NfcXVlcnlfaW5mb19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hf
dmFsdWU7CgoKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyXzE7CiAgICAgICAgV0tTX0lORk9fMTAw
ICp3a3MxMDA7CgogICAgICAgIE5UU1RBVFVTIHN0YXR1czsKCn0gV0tTX1JfUVVFUllfSU5GTzsK
IyAyODQgImluY2x1ZGUvbnRkb21haW4uaCIgMgojIDEgImluY2x1ZGUvcnBjX3Nwb29sc3MuaCIg
MQojIDM3NyAiaW5jbHVkZS9ycGNfc3Bvb2xzcy5oIgp0eXBlZGVmIHN0cnVjdCBzcG9vbF91c2Vy
XzEKewogICAgICAgIHVuc2lnbmVkIGludCBzaXplOwogICAgICAgIHVuc2lnbmVkIGludCBjbGll
bnRfbmFtZV9wdHI7CiAgICAgICAgdW5zaWduZWQgaW50IHVzZXJfbmFtZV9wdHI7CiAgICAgICAg
dW5zaWduZWQgaW50IGJ1aWxkOwogICAgICAgIHVuc2lnbmVkIGludCBtYWpvcjsKICAgICAgICB1
bnNpZ25lZCBpbnQgbWlub3I7CiAgICAgICAgdW5zaWduZWQgaW50IHByb2Nlc3NvcjsKICAgICAg
ICBVTklTVFIyIGNsaWVudF9uYW1lOwogICAgICAgIFVOSVNUUjIgdXNlcl9uYW1lOwp9ClNQT09M
X1VTRVJfMTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3VzZXJfY3RyX2luZm8KewogICAgICAgIHVu
c2lnbmVkIGludCBsZXZlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIFNQT09M
X1VTRVJfMSB1c2VyMTsKfQpTUE9PTF9VU0VSX0NUUjsKCnR5cGVkZWYgc3RydWN0IGRldmljZW1v
ZGUKewogICAgICAgIFVOSVNUUiBkZXZpY2VuYW1lOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNw
ZWN2ZXJzaW9uOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRyaXZlcnZlcnNpb247CiAgICAgICAg
dW5zaWduZWQgc2hvcnQgc2l6ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkcml2ZXJleHRyYTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgZmllbGRzOwogICAgICAgIHVuc2lnbmVkIHNob3J0IG9yaWVu
dGF0aW9uOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHBhcGVyc2l6ZTsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBwYXBlcmxlbmd0aDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBwYXBlcndpZHRoOwog
ICAgICAgIHVuc2lnbmVkIHNob3J0IHNjYWxlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGNvcGll
czsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkZWZhdWx0c291cmNlOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHByaW50cXVhbGl0eTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb2xvcjsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCBkdXBsZXg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgeXJlc29sdXRp
b247CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdHRvcHRpb247CiAgICAgICAgdW5zaWduZWQgc2hv
cnQgY29sbGF0ZTsKICAgICAgICBVTklTVFIgZm9ybW5hbWU7CiAgICAgICAgdW5zaWduZWQgc2hv
cnQgbG9ncGl4ZWxzOwogICAgICAgIHVuc2lnbmVkIGludCBiaXRzcGVycGVsOwogICAgICAgIHVu
c2lnbmVkIGludCBwZWxzd2lkdGg7CiAgICAgICAgdW5zaWduZWQgaW50IHBlbHNoZWlnaHQ7CiAg
ICAgICAgdW5zaWduZWQgaW50IGRpc3BsYXlmbGFnczsKICAgICAgICB1bnNpZ25lZCBpbnQgZGlz
cGxheWZyZXF1ZW5jeTsKICAgICAgICB1bnNpZ25lZCBpbnQgaWNtbWV0aG9kOwogICAgICAgIHVu
c2lnbmVkIGludCBpY21pbnRlbnQ7CiAgICAgICAgdW5zaWduZWQgaW50IG1lZGlhdHlwZTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZGl0aGVydHlwZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2
ZWQxOwogICAgICAgIHVuc2lnbmVkIGludCByZXNlcnZlZDI7CiAgICAgICAgdW5zaWduZWQgaW50
IHBhbm5pbmd3aWR0aDsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFubmluZ2hlaWdodDsKICAgICAg
ICB1bnNpZ25lZCBjaGFyICpwcml2YXRlOwp9CkRFVklDRU1PREU7Cgp0eXBlZGVmIHN0cnVjdCBf
ZGV2bW9kZV9jb250CnsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZTsKICAgICAgICB1bnNpZ25l
ZCBpbnQgZGV2bW9kZV9wdHI7CiAgICAgICAgREVWSUNFTU9ERSAqZGV2bW9kZTsKfQpERVZNT0RF
X0NUUjsKCnR5cGVkZWYgc3RydWN0IF9wcmludGVyX2RlZmF1bHQKewogICAgICAgIHVuc2lnbmVk
IGludCBkYXRhdHlwZV9wdHI7CiAgICAgICAgVU5JU1RSMiBkYXRhdHlwZTsKICAgICAgICBERVZN
T0RFX0NUUiBkZXZtb2RlX2NvbnQ7CiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19yZXF1aXJl
ZDsKfQpQUklOVEVSX0RFRkFVTFQ7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9vcGVuX3ByaW50
ZXJfZXgKewogICAgICAgIHVuc2lnbmVkIGludCBwcmludGVybmFtZV9wdHI7CiAgICAgICAgVU5J
U1RSMiBwcmludGVybmFtZTsKICAgICAgICBQUklOVEVSX0RFRkFVTFQgcHJpbnRlcl9kZWZhdWx0
OwogICAgICAgIHVuc2lnbmVkIGludCB1c2VyX3N3aXRjaDsKICAgICAgICBTUE9PTF9VU0VSX0NU
UiB1c2VyX2N0cjsKfQpTUE9PTF9RX09QRU5fUFJJTlRFUl9FWDsKCgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9yX29wZW5fcHJpbnRlcl9leAp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAg
ICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX09QRU5fUFJJTlRFUl9FWDsKCnR5cGVkZWYgc3Ry
dWN0IHNwb29sX25vdGlmeV9vcHRpb25fdHlwZQp7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdHlw
ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCByZXNlcnZlZDA7CiAgICAgICAgdW5zaWduZWQgaW50
IHJlc2VydmVkMTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2ZWQyOwogICAgICAgIHVuc2ln
bmVkIGludCBjb3VudDsKICAgICAgICB1bnNpZ25lZCBpbnQgZmllbGRzX3B0cjsKICAgICAgICB1
bnNpZ25lZCBpbnQgY291bnQyOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGZpZWxkc1syNl07Cn0K
U1BPT0xfTk9USUZZX09QVElPTl9UWVBFOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfbm90aWZ5X29w
dGlvbl90eXBlX2N0cgp7CiAgICAgICAgdW5zaWduZWQgaW50IGNvdW50OwogICAgICAgIFNQT09M
X05PVElGWV9PUFRJT05fVFlQRSAqdHlwZTsKfQpTUE9PTF9OT1RJRllfT1BUSU9OX1RZUEVfQ1RS
OwoKCgp0eXBlZGVmIHN0cnVjdCBzX2hlYWRlcl90eXBlCnsKICAgICAgICB1bnNpZ25lZCBpbnQg
dHlwZTsKICAgICAgICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCB2YWx1ZTsKICAgICAgICAgICAgICAgIFVOSVNUUiBzdHJpbmc7CiAgICAgICAgfQogICAgICAg
IGRhdGE7Cn0KSEVBREVSX1RZUEU7Cgp0eXBlZGVmIHN0cnVjdCBuZXdfYnVmZmVyCnsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBzaXplOwogICAgICAgIHBy
c19zdHJ1Y3QgcHJzOwogICAgICAgIHVuc2lnbmVkIGludCBzdHJ1Y3Rfc3RhcnQ7CiAgICAgICAg
dW5zaWduZWQgaW50IHN0cmluZ19hdF9lbmQ7Cn0KTkVXX0JVRkZFUjsKCnR5cGVkZWYgc3RydWN0
IHNwb29sX3FfZ2V0cHJpbnRlcmRhdGEKewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwogICAg
ICAgIFVOSVNUUjIgdmFsdWVuYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBzaXplOwp9ClNQT09M
X1FfR0VUUFJJTlRFUkRBVEE7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2dldHByaW50ZXJkYXRh
CnsKICAgICAgICB1bnNpZ25lZCBpbnQgdHlwZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyICpkYXRhOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7
CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX0dFVFBSSU5URVJEQVRBOwoKdHlwZWRl
ZiBzdHJ1Y3Qgc3Bvb2xfcV9kZWxldGVwcmludGVyZGF0YQp7CiAgICAgICAgUE9MSUNZX0hORCBo
YW5kbGU7CiAgICAgICAgVU5JU1RSMiB2YWx1ZW5hbWU7Cn0KU1BPT0xfUV9ERUxFVEVQUklOVEVS
REFUQTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZGVsZXRlcHJpbnRlcmRhdGEKewogICAgICAg
IFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9ERUxFVEVQUklOVEVSREFUQTsKCnR5cGVkZWYgc3Ry
dWN0IHNwb29sX3FfY2xvc2VwcmludGVyCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKfQpT
UE9PTF9RX0NMT1NFUFJJTlRFUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfY2xvc2VwcmludGVy
CnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQ
T09MX1JfQ0xPU0VQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9zdGFydHBhZ2Vwcmlu
dGVyCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKfQpTUE9PTF9RX1NUQVJUUEFHRVBSSU5U
RVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX3N0YXJ0cGFnZXByaW50ZXIKewogICAgICAgIFdF
UlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9TVEFSVFBBR0VQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qg
c3Bvb2xfcV9lbmRwYWdlcHJpbnRlcgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7Cn0KU1BP
T0xfUV9FTkRQQUdFUFJJTlRFUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZW5kcGFnZXByaW50
ZXIKewogICAgICAgIFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9FTkRQQUdFUFJJTlRFUjsKCgp0
eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2RlbGV0ZXByaW50ZXJkcml2ZXIKewogICAgICAgIHVuc2ln
bmVkIGludCBzZXJ2ZXJfcHRyOwogICAgICAgIFVOSVNUUjIgc2VydmVyOwogICAgICAgIFVOSVNU
UjIgYXJjaDsKICAgICAgICBVTklTVFIyIGRyaXZlcjsKfQpTUE9PTF9RX0RFTEVURVBSSU5URVJE
UklWRVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2RlbGV0ZXByaW50ZXJkcml2ZXIKewogICAg
ICAgIFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9ERUxFVEVQUklOVEVSRFJJVkVSOwoKCnR5cGVk
ZWYgc3RydWN0IHNwb29sX2RvY19pbmZvXzEKewogICAgICAgIHVuc2lnbmVkIGludCBwX2RvY25h
bWU7CiAgICAgICAgdW5zaWduZWQgaW50IHBfb3V0cHV0ZmlsZTsKICAgICAgICB1bnNpZ25lZCBp
bnQgcF9kYXRhdHlwZTsKICAgICAgICBVTklTVFIyIGRvY25hbWU7CiAgICAgICAgVU5JU1RSMiBv
dXRwdXRmaWxlOwogICAgICAgIFVOSVNUUjIgZGF0YXR5cGU7Cn0KRE9DX0lORk9fMTsKCnR5cGVk
ZWYgc3RydWN0IHNwb29sX2RvY19pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgc3dpdGNoX3Zh
bHVlOwogICAgICAgIERPQ19JTkZPXzEgZG9jX2luZm9fMTsKfQpET0NfSU5GTzsKCnR5cGVkZWYg
c3RydWN0IHNwb29sX2RvY19pbmZvX2NvbnRhaW5lcgp7CiAgICAgICAgdW5zaWduZWQgaW50IGxl
dmVsOwogICAgICAgIERPQ19JTkZPIGRvY2luZm87Cn0KRE9DX0lORk9fQ09OVEFJTkVSOwoKdHlw
ZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9zdGFydGRvY3ByaW50ZXIKewogICAgICAgIFBPTElDWV9ITkQg
aGFuZGxlOwogICAgICAgIERPQ19JTkZPX0NPTlRBSU5FUiBkb2NfaW5mb19jb250YWluZXI7Cn0K
U1BPT0xfUV9TVEFSVERPQ1BSSU5URVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX3N0YXJ0ZG9j
cHJpbnRlcgp7CiAgICAgICAgdW5zaWduZWQgaW50IGpvYmlkOwogICAgICAgIFdFUlJPUiBzdGF0
dXM7Cn0KU1BPT0xfUl9TVEFSVERPQ1BSSU5URVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2Vu
ZGRvY3ByaW50ZXIKewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwp9ClNQT09MX1FfRU5ERE9D
UFJJTlRFUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZW5kZG9jcHJpbnRlcgp7CiAgICAgICAg
V0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX0VORERPQ1BSSU5URVI7Cgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9xX3dyaXRlcHJpbnRlcgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAg
dW5zaWduZWQgaW50IGJ1ZmZlcl9zaXplOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsK
ICAgICAgICB1bnNpZ25lZCBpbnQgYnVmZmVyX3NpemUyOwp9ClNQT09MX1FfV1JJVEVQUklOVEVS
OwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl93cml0ZXByaW50ZXIKewogICAgICAgIHVuc2lnbmVk
IGludCBidWZmZXJfd3JpdHRlbjsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfV1JJ
VEVQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfbm90aWZ5X29wdGlvbgp7CiAgICAgICAg
dW5zaWduZWQgaW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwogICAgICAg
IHVuc2lnbmVkIGludCBjb3VudDsKICAgICAgICB1bnNpZ25lZCBpbnQgb3B0aW9uX3R5cGVfcHRy
OwogICAgICAgIFNQT09MX05PVElGWV9PUFRJT05fVFlQRV9DVFIgY3RyOwp9ClNQT09MX05PVElG
WV9PUFRJT047Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9ub3RpZnlfaW5mb19kYXRhCnsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB0eXBlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGZpZWxkOwogICAg
ICAgIHVuc2lnbmVkIGludCByZXNlcnZlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgaWQ7CiAgICAg
ICAgdW5pb24KICAgICAgICB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmFsdWVbMl07
CiAgICAgICAgICAgICAgICBzdHJ1Y3QKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgc2hvcnQgKnN0cmluZzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRh
dGE7CiAgICAgICAgfQogICAgICAgIG5vdGlmeV9kYXRhOwogICAgICAgIHVuc2lnbmVkIGludCBz
aXplOwogICAgICAgIEJPT0wgZW5jX3R5cGU7Cn0gU1BPT0xfTk9USUZZX0lORk9fREFUQTsKCnR5
cGVkZWYgc3RydWN0IHNwb29sX25vdGlmeV9pbmZvCnsKICAgICAgICB1bnNpZ25lZCBpbnQgdmVy
c2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgaW50IGNv
dW50OwogICAgICAgIFNQT09MX05PVElGWV9JTkZPX0RBVEEgKmRhdGE7Cn0KU1BPT0xfTk9USUZZ
X0lORk87CgoKCnR5cGVkZWYgc3RydWN0IHNwb29sc3NfcV9yZmZwY25leAp7CiAgICAgICAgUE9M
SUNZX0hORCBoYW5kbGU7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwogICAgICAgIHVuc2ln
bmVkIGludCBvcHRpb25zOwogICAgICAgIHVuc2lnbmVkIGludCBsb2NhbG1hY2hpbmVfcHRyOwog
ICAgICAgIFVOSVNUUjIgbG9jYWxtYWNoaW5lOwogICAgICAgIHVuc2lnbmVkIGludCBwcmludGVy
bG9jYWw7CiAgICAgICAgdW5zaWduZWQgaW50IG9wdGlvbl9wdHI7CiAgICAgICAgU1BPT0xfTk9U
SUZZX09QVElPTiAqb3B0aW9uOwp9ClNQT09MX1FfUkZGUENORVg7Cgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9yX3JmZnBjbmV4CnsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfUkZGUENO
RVg7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9yZm5wY25leAp7CiAgICAgICAgUE9MSUNZX0hO
RCBoYW5kbGU7CiAgICAgICAgdW5zaWduZWQgaW50IGNoYW5nZTsKICAgICAgICB1bnNpZ25lZCBp
bnQgb3B0aW9uX3B0cjsKICAgICAgICBTUE9PTF9OT1RJRllfT1BUSU9OICpvcHRpb247Cn0KU1BP
T0xfUV9SRk5QQ05FWDsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfcmZucGNuZXgKewogICAgICAg
IHVuc2lnbmVkIGludCBpbmZvX3B0cjsKICAgICAgICBTUE9PTF9OT1RJRllfSU5GTyBpbmZvOwog
ICAgICAgIFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9SRk5QQ05FWDsKCgp0eXBlZGVmIHN0cnVj
dCBzcG9vbF9xX2ZjcG4KewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwp9ClNQT09MX1FfRkNQ
TjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZmNwbgp7CiAgICAgICAgV0VSUk9SIHN0YXR1czsK
fQpTUE9PTF9SX0ZDUE47CgoKdHlwZWRlZiBzdHJ1Y3QgcHJpbnRlcl9pbmZvXzAKewogICAgICAg
IFVOSVNUUiBwcmludGVybmFtZTsKICAgICAgICBVTklTVFIgc2VydmVybmFtZTsKICAgICAgICB1
bnNpZ25lZCBpbnQgY2pvYnM7CiAgICAgICAgdW5zaWduZWQgaW50IHRvdGFsX2pvYnM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHRvdGFsX2J5dGVzOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCB5ZWFy
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IG1vbnRoOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRh
eW9md2VlazsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkYXk7CiAgICAgICAgdW5zaWduZWQgc2hv
cnQgaG91cjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBtaW51dGU7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgc2Vjb25kOwogICAgICAgIHVuc2lnbmVkIHNob3J0IG1pbGxpc2Vjb25kczsKCiAgICAg
ICAgdW5zaWduZWQgaW50IGdsb2JhbF9jb3VudGVyOwogICAgICAgIHVuc2lnbmVkIGludCB0b3Rh
bF9wYWdlczsKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgbWFqb3JfdmVyc2lvbjsKICAgICAgICB1
bnNpZ25lZCBzaG9ydCBidWlsZF92ZXJzaW9uOwoKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93
bjc7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd244OwogICAgICAgIHVuc2lnbmVkIGludCB1
bmtub3duOTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2Vzc2lvbl9jb3VudGVyOwogICAgICAgIHVu
c2lnbmVkIGludCB1bmtub3duMTE7CiAgICAgICAgdW5zaWduZWQgaW50IHByaW50ZXJfZXJyb3Jz
OwogICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duMTM7CiAgICAgICAgdW5zaWduZWQgaW50IHVu
a25vd24xNDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjE1OwogICAgICAgIHVuc2lnbmVk
IGludCB1bmtub3duMTY7CiAgICAgICAgdW5zaWduZWQgaW50IGNoYW5nZV9pZDsKICAgICAgICB1
bnNpZ25lZCBpbnQgdW5rbm93bjE4OwogICAgICAgIHVuc2lnbmVkIGludCBzdGF0dXM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHVua25vd24yMDsKICAgICAgICB1bnNpZ25lZCBpbnQgY19zZXRwcmlu
dGVyOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duMjI7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgdW5rbm93bjIzOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHVua25vd24yNDsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB1bmtub3duMjU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93
bjI2OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHVua25vd24yNzsKICAgICAgICB1bnNpZ25lZCBz
aG9ydCB1bmtub3duMjg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bjI5Owp9IFBSSU5U
RVJfSU5GT18wOwoKdHlwZWRlZiBzdHJ1Y3QgcHJpbnRlcl9pbmZvXzEKewogICAgICAgIHVuc2ln
bmVkIGludCBmbGFnczsKICAgICAgICBVTklTVFIgZGVzY3JpcHRpb247CiAgICAgICAgVU5JU1RS
IG5hbWU7CiAgICAgICAgVU5JU1RSIGNvbW1lbnQ7Cn0KUFJJTlRFUl9JTkZPXzE7Cgp0eXBlZGVm
IHN0cnVjdCBwcmludGVyX2luZm9fMgp7CiAgICAgICAgVU5JU1RSIHNlcnZlcm5hbWU7CiAgICAg
ICAgVU5JU1RSIHByaW50ZXJuYW1lOwogICAgICAgIFVOSVNUUiBzaGFyZW5hbWU7CiAgICAgICAg
VU5JU1RSIHBvcnRuYW1lOwogICAgICAgIFVOSVNUUiBkcml2ZXJuYW1lOwogICAgICAgIFVOSVNU
UiBjb21tZW50OwogICAgICAgIFVOSVNUUiBsb2NhdGlvbjsKICAgICAgICBERVZJQ0VNT0RFICpk
ZXZtb2RlOwogICAgICAgIFVOSVNUUiBzZXBmaWxlOwogICAgICAgIFVOSVNUUiBwcmludHByb2Nl
c3NvcjsKICAgICAgICBVTklTVFIgZGF0YXR5cGU7CiAgICAgICAgVU5JU1RSIHBhcmFtZXRlcnM7
CiAgICAgICAgU0VDX0RFU0MgKnNlY2Rlc2M7CiAgICAgICAgdW5zaWduZWQgaW50IGF0dHJpYnV0
ZXM7CiAgICAgICAgdW5zaWduZWQgaW50IHByaW9yaXR5OwogICAgICAgIHVuc2lnbmVkIGludCBk
ZWZhdWx0cHJpb3JpdHk7CiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0dGltZTsKICAgICAgICB1
bnNpZ25lZCBpbnQgdW50aWx0aW1lOwogICAgICAgIHVuc2lnbmVkIGludCBzdGF0dXM7CiAgICAg
ICAgdW5zaWduZWQgaW50IGNqb2JzOwogICAgICAgIHVuc2lnbmVkIGludCBhdmVyYWdlcHBtOwp9
ClBSSU5URVJfSU5GT18yOwoKdHlwZWRlZiBzdHJ1Y3QgcHJpbnRlcl9pbmZvXzMKewogICAgICAg
IHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICBTRUNfREVTQyAqc2VjZGVzYzsKfQpQUklOVEVS
X0lORk9fMzsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfZW51bXByaW50ZXJzCnsKICAgICAgICB1
bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgaW50IHNlcnZlcm5hbWVfcHRyOwog
ICAgICAgIFVOSVNUUjIgc2VydmVybmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWw7CiAg
ICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBvZmZlcmVkOwp9
ClNQT09MX1FfRU5VTVBSSU5URVJTOwoKdHlwZWRlZiBzdHJ1Y3QgcHJpbnRlcl9pbmZvX2N0cl9p
bmZvCnsKICAgICAgICBQUklOVEVSX0lORk9fMCAqcHJpbnRlcnNfMDsKICAgICAgICBQUklOVEVS
X0lORk9fMSAqcHJpbnRlcnNfMTsKICAgICAgICBQUklOVEVSX0lORk9fMiAqcHJpbnRlcnNfMjsK
ICAgICAgICBQUklOVEVSX0lORk9fMyAqcHJpbnRlcnNfMzsKfQpQUklOVEVSX0lORk9fQ1RSOwoK
dHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9lbnVtcHJpbnRlcnMKewogICAgICAgIE5FV19CVUZGRVIg
KmJ1ZmZlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgbmVlZGVkOwogICAgICAgIHVuc2lnbmVkIGlu
dCByZXR1cm5lZDsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfRU5VTVBSSU5URVJT
OwoKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfZ2V0cHJpbnRlcgp7CiAgICAgICAgUE9MSUNZX0hO
RCBoYW5kbGU7CiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIE5FV19CVUZGRVIg
KmJ1ZmZlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgb2ZmZXJlZDsKfQpTUE9PTF9RX0dFVFBSSU5U
RVI7Cgp0eXBlZGVmIHN0cnVjdCBwcmludGVyX2luZm9faW5mbwp7CiAgICAgICAgdW5pb24KICAg
ICAgICB7CiAgICAgICAgICAgICAgICBQUklOVEVSX0lORk9fMCAqaW5mbzA7CiAgICAgICAgICAg
ICAgICBQUklOVEVSX0lORk9fMSAqaW5mbzE7CiAgICAgICAgICAgICAgICBQUklOVEVSX0lORk9f
MiAqaW5mbzI7CiAgICAgICAgICAgICAgICB2b2lkICppbmZvOwogICAgICAgIH0gcHJpbnRlcjsK
fSBQUklOVEVSX0lORk87Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2dldHByaW50ZXIKewogICAg
ICAgIE5FV19CVUZGRVIgKmJ1ZmZlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgbmVlZGVkOwogICAg
ICAgIFdFUlJPUiBzdGF0dXM7Cn0gU1BPT0xfUl9HRVRQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qg
ZHJpdmVyX2luZm9fMQp7CiAgICAgICAgVU5JU1RSIG5hbWU7Cn0gRFJJVkVSX0lORk9fMTsKCnR5
cGVkZWYgc3RydWN0IGRyaXZlcl9pbmZvXzIKewogICAgICAgIHVuc2lnbmVkIGludCB2ZXJzaW9u
OwogICAgICAgIFVOSVNUUiBuYW1lOwogICAgICAgIFVOSVNUUiBhcmNoaXRlY3R1cmU7CiAgICAg
ICAgVU5JU1RSIGRyaXZlcnBhdGg7CiAgICAgICAgVU5JU1RSIGRhdGFmaWxlOwogICAgICAgIFVO
SVNUUiBjb25maWdmaWxlOwp9IERSSVZFUl9JTkZPXzI7Cgp0eXBlZGVmIHN0cnVjdCBkcml2ZXJf
aW5mb18zCnsKICAgICAgICB1bnNpZ25lZCBpbnQgdmVyc2lvbjsKICAgICAgICBVTklTVFIgbmFt
ZTsKICAgICAgICBVTklTVFIgYXJjaGl0ZWN0dXJlOwogICAgICAgIFVOSVNUUiBkcml2ZXJwYXRo
OwogICAgICAgIFVOSVNUUiBkYXRhZmlsZTsKICAgICAgICBVTklTVFIgY29uZmlnZmlsZTsKICAg
ICAgICBVTklTVFIgaGVscGZpbGU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgKmRlcGVuZGVudGZp
bGVzOwogICAgICAgIFVOSVNUUiBtb25pdG9ybmFtZTsKICAgICAgICBVTklTVFIgZGVmYXVsdGRh
dGF0eXBlOwp9CkRSSVZFUl9JTkZPXzM7Cgp0eXBlZGVmIHN0cnVjdCBkcml2ZXJfaW5mb182CnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgdmVyc2lvbjsKICAgICAgICBVTklTVFIgbmFtZTsKICAgICAg
ICBVTklTVFIgYXJjaGl0ZWN0dXJlOwogICAgICAgIFVOSVNUUiBkcml2ZXJwYXRoOwogICAgICAg
IFVOSVNUUiBkYXRhZmlsZTsKICAgICAgICBVTklTVFIgY29uZmlnZmlsZTsKICAgICAgICBVTklT
VFIgaGVscGZpbGU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgKmRlcGVuZGVudGZpbGVzOwogICAg
ICAgIFVOSVNUUiBtb25pdG9ybmFtZTsKICAgICAgICBVTklTVFIgZGVmYXVsdGRhdGF0eXBlOwog
ICAgICAgIHVuc2lnbmVkIHNob3J0KiBwcmV2aW91c2RyaXZlcm5hbWVzOwogICAgICAgIE5UVElN
RSBkcml2ZXJfZGF0ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFkZGluZzsKICAgICAgICB1bnNp
Z25lZCBpbnQgZHJpdmVyX3ZlcnNpb25fbG93OwogICAgICAgIHVuc2lnbmVkIGludCBkcml2ZXJf
dmVyc2lvbl9oaWdoOwogICAgICAgIFVOSVNUUiBtZmduYW1lOwogICAgICAgIFVOSVNUUiBvZW1f
dXJsOwogICAgICAgIFVOSVNUUiBoYXJkd2FyZV9pZDsKICAgICAgICBVTklTVFIgcHJvdmlkZXI7
Cn0KRFJJVkVSX0lORk9fNjsKCnR5cGVkZWYgc3RydWN0IGRyaXZlcl9pbmZvX2luZm8KewogICAg
ICAgIERSSVZFUl9JTkZPXzEgKmluZm8xOwogICAgICAgIERSSVZFUl9JTkZPXzIgKmluZm8yOwog
ICAgICAgIERSSVZFUl9JTkZPXzMgKmluZm8zOwogICAgICAgIERSSVZFUl9JTkZPXzYgKmluZm82
Owp9ClBSSU5URVJfRFJJVkVSX0NUUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfZ2V0cHJpbnRl
cmRyaXZlcjIKewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIHVuc2lnbmVkIGlu
dCBhcmNoaXRlY3R1cmVfcHRyOwogICAgICAgIFVOSVNUUjIgYXJjaGl0ZWN0dXJlOwogICAgICAg
IHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAg
dW5zaWduZWQgaW50IG9mZmVyZWQ7CiAgICAgICAgdW5zaWduZWQgaW50IGNsaWVudG1ham9ydmVy
c2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgY2xpZW50bWlub3J2ZXJzaW9uOwp9ClNQT09MX1Ff
R0VUUFJJTlRFUkRSSVZFUjI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2dldHByaW50ZXJkcml2
ZXIyCnsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG5l
ZWRlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VydmVybWFqb3J2ZXJzaW9uOwogICAgICAgIHVu
c2lnbmVkIGludCBzZXJ2ZXJtaW5vcnZlcnNpb247CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpT
UE9PTF9SX0dFVFBSSU5URVJEUklWRVIyOwoKCnR5cGVkZWYgc3RydWN0IGFkZF9qb2JpbmZvXzEK
ewogICAgICAgIFVOSVNUUiBwYXRoOwogICAgICAgIHVuc2lnbmVkIGludCBqb2JfbnVtYmVyOwp9
CkFERF9KT0JJTkZPXzE7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9hZGRqb2IKewogICAgICAg
IFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBO
RVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQ7Cn0KU1BPT0xf
UV9BRERKT0I7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2FkZGpvYgp7CiAgICAgICAgTkVXX0JV
RkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7CiAgICAgICAgV0VSUk9S
IHN0YXR1czsKfQpTUE9PTF9SX0FEREpPQjsKCgoKCgoKCnR5cGVkZWYgc3RydWN0IHN5c3RlbXRp
bWUKewogICAgICAgIHVuc2lnbmVkIHNob3J0IHllYXI7CiAgICAgICAgdW5zaWduZWQgc2hvcnQg
bW9udGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZGF5b2Z3ZWVrOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IGRheTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBob3VyOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IG1pbnV0ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZWNvbmQ7CiAgICAgICAgdW5z
aWduZWQgc2hvcnQgbWlsbGlzZWNvbmRzOwp9ClNZU1RFTVRJTUU7Cgp0eXBlZGVmIHN0cnVjdCBz
X2pvYl9pbmZvXzEKewogICAgICAgIHVuc2lnbmVkIGludCBqb2JpZDsKICAgICAgICBVTklTVFIg
cHJpbnRlcm5hbWU7CiAgICAgICAgVU5JU1RSIG1hY2hpbmVuYW1lOwogICAgICAgIFVOSVNUUiB1
c2VybmFtZTsKICAgICAgICBVTklTVFIgZG9jdW1lbnQ7CiAgICAgICAgVU5JU1RSIGRhdGF0eXBl
OwogICAgICAgIFVOSVNUUiB0ZXh0X3N0YXR1czsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RhdHVz
OwogICAgICAgIHVuc2lnbmVkIGludCBwcmlvcml0eTsKICAgICAgICB1bnNpZ25lZCBpbnQgcG9z
aXRpb247CiAgICAgICAgdW5zaWduZWQgaW50IHRvdGFscGFnZXM7CiAgICAgICAgdW5zaWduZWQg
aW50IHBhZ2VzcHJpbnRlZDsKICAgICAgICBTWVNURU1USU1FIHN1Ym1pdHRlZDsKfQpKT0JfSU5G
T18xOwoKdHlwZWRlZiBzdHJ1Y3Qgc19qb2JfaW5mb18yCnsKICAgICAgICB1bnNpZ25lZCBpbnQg
am9iaWQ7CiAgICAgICAgVU5JU1RSIHByaW50ZXJuYW1lOwogICAgICAgIFVOSVNUUiBtYWNoaW5l
bmFtZTsKICAgICAgICBVTklTVFIgdXNlcm5hbWU7CiAgICAgICAgVU5JU1RSIGRvY3VtZW50Owog
ICAgICAgIFVOSVNUUiBub3RpZnluYW1lOwogICAgICAgIFVOSVNUUiBkYXRhdHlwZTsKICAgICAg
ICBVTklTVFIgcHJpbnRwcm9jZXNzb3I7CiAgICAgICAgVU5JU1RSIHBhcmFtZXRlcnM7CiAgICAg
ICAgVU5JU1RSIGRyaXZlcm5hbWU7CiAgICAgICAgREVWSUNFTU9ERSAqZGV2bW9kZTsKICAgICAg
ICBVTklTVFIgdGV4dF9zdGF0dXM7CgogICAgICAgIHVuc2lnbmVkIGludCBzdGF0dXM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHByaW9yaXR5OwogICAgICAgIHVuc2lnbmVkIGludCBwb3NpdGlvbjsK
ICAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnR0aW1lOwogICAgICAgIHVuc2lnbmVkIGludCB1bnRp
bHRpbWU7CiAgICAgICAgdW5zaWduZWQgaW50IHRvdGFscGFnZXM7CiAgICAgICAgdW5zaWduZWQg
aW50IHNpemU7CiAgICAgICAgU1lTVEVNVElNRSBzdWJtaXR0ZWQ7CiAgICAgICAgdW5zaWduZWQg
aW50IHRpbWVlbGFwc2VkOwogICAgICAgIHVuc2lnbmVkIGludCBwYWdlc3ByaW50ZWQ7Cn0KSk9C
X0lORk9fMjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfZW51bWpvYnMKewogICAgICAgIFBPTElD
WV9ITkQgaGFuZGxlOwogICAgICAgIHVuc2lnbmVkIGludCBmaXJzdGpvYjsKICAgICAgICB1bnNp
Z25lZCBpbnQgbnVtb2Zqb2JzOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBO
RVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQ7Cn0KU1BPT0xf
UV9FTlVNSk9CUzsKCnR5cGVkZWYgc3RydWN0IGpvYl9pbmZvX2N0cl9pbmZvCnsKICAgICAgICB1
bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIEpPQl9JTkZPXzEgKipqb2JfaW5mb18xOwog
ICAgICAgICAgICAgICAgSk9CX0lORk9fMiAqKmpvYl9pbmZvXzI7CiAgICAgICAgICAgICAgICB2
b2lkICppbmZvOwogICAgICAgIH0gam9iOwoKfSBKT0JfSU5GT19DVFI7Cgp0eXBlZGVmIHN0cnVj
dCBzcG9vbF9yX2VudW1qb2JzCnsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAg
dW5zaWduZWQgaW50IG5lZWRlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmV0dXJuZWQ7CiAgICAg
ICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX0VOVU1KT0JTOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bv
b2xfcV9zY2hlZHVsZWpvYgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgdW5z
aWduZWQgaW50IGpvYmlkOwp9ClNQT09MX1FfU0NIRURVTEVKT0I7Cgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9yX3NjaGVkdWxlam9iCnsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfU0NI
RURVTEVKT0I7Cgp0eXBlZGVmIHN0cnVjdCBzX3BvcnRfaW5mb18xCnsKICAgICAgICBVTklTVFIg
cG9ydF9uYW1lOwp9ClBPUlRfSU5GT18xOwoKdHlwZWRlZiBzdHJ1Y3Qgc19wb3J0X2luZm9fMgp7
CiAgICAgICAgVU5JU1RSIHBvcnRfbmFtZTsKICAgICAgICBVTklTVFIgbW9uaXRvcl9uYW1lOwog
ICAgICAgIFVOSVNUUiBkZXNjcmlwdGlvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgcG9ydF90eXBl
OwogICAgICAgIHVuc2lnbmVkIGludCByZXNlcnZlZDsKfQpQT1JUX0lORk9fMjsKCnR5cGVkZWYg
c3RydWN0IHNwb29sX3FfZW51bXBvcnRzCnsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9wdHI7
CiAgICAgICAgVU5JU1RSMiBuYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAg
ICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQ7Cn0KU1BP
T0xfUV9FTlVNUE9SVFM7Cgp0eXBlZGVmIHN0cnVjdCBwb3J0X2luZm9fY3RyX2luZm8KewogICAg
ICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgUE9SVF9JTkZPXzEgKmluZm9fMTsK
ICAgICAgICAgICAgICAgIFBPUlRfSU5GT18yICppbmZvXzI7CiAgICAgICAgfQogICAgICAgIHBv
cnQ7Cgp9ClBPUlRfSU5GT19DVFI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2VudW1wb3J0cwp7
CiAgICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7
CiAgICAgICAgdW5zaWduZWQgaW50IHJldHVybmVkOwogICAgICAgIFdFUlJPUiBzdGF0dXM7Cn0K
U1BPT0xfUl9FTlVNUE9SVFM7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCBqb2JfaW5mb19pbmZvCnsK
ICAgICAgICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIEpPQl9JTkZPXzEgam9iX2lu
Zm9fMTsKICAgICAgICAgICAgICAgIEpPQl9JTkZPXzIgam9iX2luZm9fMjsKICAgICAgICB9CiAg
ICAgICAgam9iOwoKfQpKT0JfSU5GTzsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3Ffc2V0am9iCnsK
ICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICB1bnNpZ25lZCBpbnQgam9iaWQ7CiAg
ICAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIEpPQl9JTkZPIGN0cjsKICAgICAgICB1
bnNpZ25lZCBpbnQgY29tbWFuZDsKCn0KU1BPT0xfUV9TRVRKT0I7Cgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9yX3NldGpvYgp7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKCn0KU1BPT0xfUl9TRVRKT0I7
Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2VudW1wcmludGVyZHJpdmVycwp7CiAgICAgICAgdW5z
aWduZWQgaW50IG5hbWVfcHRyOwogICAgICAgIFVOSVNUUjIgbmFtZTsKICAgICAgICB1bnNpZ25l
ZCBpbnQgZW52aXJvbm1lbnRfcHRyOwogICAgICAgIFVOSVNUUjIgZW52aXJvbm1lbnQ7CiAgICAg
ICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIE5FV19CVUZGRVIgKmJ1ZmZlcjsKICAgICAg
ICB1bnNpZ25lZCBpbnQgb2ZmZXJlZDsKfQpTUE9PTF9RX0VOVU1QUklOVEVSRFJJVkVSUzsKCnR5
cGVkZWYgc3RydWN0IHNwb29sX3JfZW51bXByaW50ZXJkcml2ZXJzCnsKICAgICAgICBORVdfQlVG
RkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZWRlZDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgcmV0dXJuZWQ7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX0VOVU1QUklO
VEVSRFJJVkVSUzsKCnR5cGVkZWYgc3RydWN0IHNwb29sX2Zvcm1fMQp7CiAgICAgICAgdW5zaWdu
ZWQgaW50IGZsYWc7CiAgICAgICAgVU5JU1RSIG5hbWU7CiAgICAgICAgdW5zaWduZWQgaW50IHdp
ZHRoOwogICAgICAgIHVuc2lnbmVkIGludCBsZW5ndGg7CiAgICAgICAgdW5zaWduZWQgaW50IGxl
ZnQ7CiAgICAgICAgdW5zaWduZWQgaW50IHRvcDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmlnaHQ7
CiAgICAgICAgdW5zaWduZWQgaW50IGJvdHRvbTsKfQpGT1JNXzE7Cgp0eXBlZGVmIHN0cnVjdCBz
cG9vbF9xX2VudW1mb3Jtcwp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgdW5z
aWduZWQgaW50IGxldmVsOwogICAgICAgIE5FV19CVUZGRVIgKmJ1ZmZlcjsKICAgICAgICB1bnNp
Z25lZCBpbnQgb2ZmZXJlZDsKfQpTUE9PTF9RX0VOVU1GT1JNUzsKCnR5cGVkZWYgc3RydWN0IHNw
b29sX3JfZW51bWZvcm1zCnsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5z
aWduZWQgaW50IG5lZWRlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgbnVtb2Zmb3JtczsKICAgICAg
ICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfRU5VTUZPUk1TOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bv
b2xfcV9nZXRmb3JtCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICBVTklTVFIy
IGZvcm1uYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBORVdfQlVGRkVS
ICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQ7Cn0KU1BPT0xfUV9HRVRGT1JN
OwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9nZXRmb3JtCnsKICAgICAgICBORVdfQlVGRkVSICpi
dWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZWRlZDsKICAgICAgICBXRVJST1Igc3RhdHVz
Owp9ClNQT09MX1JfR0VURk9STTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3ByaW50ZXJfaW5mb19s
ZXZlbF8xCnsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgaW50
IGRlc2NyaXB0aW9uX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9wdHI7CiAgICAgICAg
dW5zaWduZWQgaW50IGNvbW1lbnRfcHRyOwogICAgICAgIFVOSVNUUjIgZGVzY3JpcHRpb247CiAg
ICAgICAgVU5JU1RSMiBuYW1lOwogICAgICAgIFVOSVNUUjIgY29tbWVudDsKfSBTUE9PTF9QUklO
VEVSX0lORk9fTEVWRUxfMTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3ByaW50ZXJfaW5mb19sZXZl
bF8yCnsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VydmVybmFtZV9wdHI7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHByaW50ZXJuYW1lX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgc2hhcmVuYW1lX3B0
cjsKICAgICAgICB1bnNpZ25lZCBpbnQgcG9ydG5hbWVfcHRyOwogICAgICAgIHVuc2lnbmVkIGlu
dCBkcml2ZXJuYW1lX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgY29tbWVudF9wdHI7CiAgICAg
ICAgdW5zaWduZWQgaW50IGxvY2F0aW9uX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgZGV2bW9k
ZV9wdHI7CiAgICAgICAgdW5zaWduZWQgaW50IHNlcGZpbGVfcHRyOwogICAgICAgIHVuc2lnbmVk
IGludCBwcmludHByb2Nlc3Nvcl9wdHI7CiAgICAgICAgdW5zaWduZWQgaW50IGRhdGF0eXBlX3B0
cjsKICAgICAgICB1bnNpZ25lZCBpbnQgcGFyYW1ldGVyc19wdHI7CiAgICAgICAgdW5zaWduZWQg
aW50IHNlY2Rlc2NfcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBhdHRyaWJ1dGVzOwogICAgICAg
IHVuc2lnbmVkIGludCBwcmlvcml0eTsKICAgICAgICB1bnNpZ25lZCBpbnQgZGVmYXVsdF9wcmlv
cml0eTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnR0aW1lOwogICAgICAgIHVuc2lnbmVkIGlu
dCB1bnRpbHRpbWU7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKICAgICAgICB1bnNpZ25lZCBpbnQg
Y2pvYnM7CiAgICAgICAgdW5zaWduZWQgaW50IGF2ZXJhZ2VwcG07CiAgICAgICAgVU5JU1RSMiBz
ZXJ2ZXJuYW1lOwogICAgICAgIFVOSVNUUjIgcHJpbnRlcm5hbWU7CiAgICAgICAgVU5JU1RSMiBz
aGFyZW5hbWU7CiAgICAgICAgVU5JU1RSMiBwb3J0bmFtZTsKICAgICAgICBVTklTVFIyIGRyaXZl
cm5hbWU7CiAgICAgICAgVU5JU1RSMiBjb21tZW50OwogICAgICAgIFVOSVNUUjIgbG9jYXRpb247
CiAgICAgICAgVU5JU1RSMiBzZXBmaWxlOwogICAgICAgIFVOSVNUUjIgcHJpbnRwcm9jZXNzb3I7
CiAgICAgICAgVU5JU1RSMiBkYXRhdHlwZTsKICAgICAgICBVTklTVFIyIHBhcmFtZXRlcnM7CiAg
ICAgICAgU0VDX0RFU0NfQlVGICpzZWNkZXNjOwp9ClNQT09MX1BSSU5URVJfSU5GT19MRVZFTF8y
OwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcHJpbnRlcl9pbmZvX2xldmVsXzMKewogICAgICAgIHVu
c2lnbmVkIGludCBzZWNkZXNjX3B0cjsKfQpTUE9PTF9QUklOVEVSX0lORk9fTEVWRUxfMzsKCnR5
cGVkZWYgc3RydWN0IHNwb29sX3ByaW50ZXJfaW5mb19sZXZlbAp7CiAgICAgICAgdW5zaWduZWQg
aW50IGxldmVsOwogICAgICAgIHVuc2lnbmVkIGludCBpbmZvX3B0cjsKICAgICAgICBTUE9PTF9Q
UklOVEVSX0lORk9fTEVWRUxfMSAqaW5mb18xOwogICAgICAgIFNQT09MX1BSSU5URVJfSU5GT19M
RVZFTF8yICppbmZvXzI7CiAgICAgICAgU1BPT0xfUFJJTlRFUl9JTkZPX0xFVkVMXzMgKmluZm9f
MzsKfQpTUE9PTF9QUklOVEVSX0lORk9fTEVWRUw7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9wcmlu
dGVyX2RyaXZlcl9pbmZvX2xldmVsXzMKewogICAgICAgIHVuc2lnbmVkIGludCBjdmVyc2lvbjsK
ICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9wdHI7CiAgICAgICAgdW5zaWduZWQgaW50IGVudmly
b25tZW50X3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgZHJpdmVycGF0aF9wdHI7CiAgICAgICAg
dW5zaWduZWQgaW50IGRhdGFmaWxlX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgY29uZmlnZmls
ZV9wdHI7CiAgICAgICAgdW5zaWduZWQgaW50IGhlbHBmaWxlX3B0cjsKICAgICAgICB1bnNpZ25l
ZCBpbnQgbW9uaXRvcm5hbWVfcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBkZWZhdWx0ZGF0YXR5
cGVfcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBkZXBlbmRlbnRmaWxlc3NpemU7CiAgICAgICAg
dW5zaWduZWQgaW50IGRlcGVuZGVudGZpbGVzX3B0cjsKCiAgICAgICAgVU5JU1RSMiBuYW1lOwog
ICAgICAgIFVOSVNUUjIgZW52aXJvbm1lbnQ7CiAgICAgICAgVU5JU1RSMiBkcml2ZXJwYXRoOwog
ICAgICAgIFVOSVNUUjIgZGF0YWZpbGU7CiAgICAgICAgVU5JU1RSMiBjb25maWdmaWxlOwogICAg
ICAgIFVOSVNUUjIgaGVscGZpbGU7CiAgICAgICAgVU5JU1RSMiBtb25pdG9ybmFtZTsKICAgICAg
ICBVTklTVFIyIGRlZmF1bHRkYXRhdHlwZTsKICAgICAgICBCVUZGRVI1IGRlcGVuZGVudGZpbGVz
OwoKfQpTUE9PTF9QUklOVEVSX0RSSVZFUl9JTkZPX0xFVkVMXzM7CgoKdHlwZWRlZiBzdHJ1Y3Qg
ewogICAgICAgIHVuc2lnbmVkIGludCB2ZXJzaW9uOwogICAgICAgIHVuc2lnbmVkIGludCBuYW1l
X3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgZW52aXJvbm1lbnRfcHRyOwogICAgICAgIHVuc2ln
bmVkIGludCBkcml2ZXJwYXRoX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgZGF0YWZpbGVfcHRy
OwogICAgICAgIHVuc2lnbmVkIGludCBjb25maWdmaWxlX3B0cjsKICAgICAgICB1bnNpZ25lZCBp
bnQgaGVscGZpbGVfcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBtb25pdG9ybmFtZV9wdHI7CiAg
ICAgICAgdW5zaWduZWQgaW50IGRlZmF1bHRkYXRhdHlwZV9wdHI7CiAgICAgICAgdW5zaWduZWQg
aW50IGRlcGVuZGVudGZpbGVzX2xlbjsKICAgICAgICB1bnNpZ25lZCBpbnQgZGVwZW5kZW50Zmls
ZXNfcHRyOwogICAgICAgIHVuc2lnbmVkIGludCBwcmV2aW91c25hbWVzX2xlbjsKICAgICAgICB1
bnNpZ25lZCBpbnQgcHJldmlvdXNuYW1lc19wdHI7CiAgICAgICAgTlRUSU1FIGRyaXZlcmRhdGU7
CiAgICAgICAgVUlOVDY0X1MgZHJpdmVydmVyc2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgZHVt
bXk0OwogICAgICAgIHVuc2lnbmVkIGludCBtZmduYW1lX3B0cjsKICAgICAgICB1bnNpZ25lZCBp
bnQgb2VtdXJsX3B0cjsKICAgICAgICB1bnNpZ25lZCBpbnQgaGFyZHdhcmVpZF9wdHI7CiAgICAg
ICAgdW5zaWduZWQgaW50IHByb3ZpZGVyX3B0cjsKICAgICAgICBVTklTVFIyIG5hbWU7CiAgICAg
ICAgVU5JU1RSMiBlbnZpcm9ubWVudDsKICAgICAgICBVTklTVFIyIGRyaXZlcnBhdGg7CiAgICAg
ICAgVU5JU1RSMiBkYXRhZmlsZTsKICAgICAgICBVTklTVFIyIGNvbmZpZ2ZpbGU7CiAgICAgICAg
VU5JU1RSMiBoZWxwZmlsZTsKICAgICAgICBVTklTVFIyIG1vbml0b3JuYW1lOwogICAgICAgIFVO
SVNUUjIgZGVmYXVsdGRhdGF0eXBlOwogICAgICAgIEJVRkZFUjUgZGVwZW5kZW50ZmlsZXM7CiAg
ICAgICAgQlVGRkVSNSBwcmV2aW91c25hbWVzOwogICAgICAgIFVOSVNUUjIgbWZnbmFtZTsKICAg
ICAgICBVTklTVFIyIG9lbXVybDsKICAgICAgICBVTklTVFIyIGhhcmR3YXJlaWQ7CiAgICAgICAg
VU5JU1RSMiBwcm92aWRlcjsKfSBTUE9PTF9QUklOVEVSX0RSSVZFUl9JTkZPX0xFVkVMXzY7CgoK
dHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcHJpbnRlcl9kcml2ZXJfaW5mb19sZXZlbAp7CiAgICAgICAg
dW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIHVuc2lnbmVkIGludCBwdHI7CiAgICAgICAgU1BP
T0xfUFJJTlRFUl9EUklWRVJfSU5GT19MRVZFTF8zICppbmZvXzM7CiAgICAgICAgU1BPT0xfUFJJ
TlRFUl9EUklWRVJfSU5GT19MRVZFTF82ICppbmZvXzY7Cn0KU1BPT0xfUFJJTlRFUl9EUklWRVJf
SU5GT19MRVZFTDsKCgoKCnR5cGVkZWYgc3RydWN0IHNwb29sX3VzZXJfbGV2ZWxfMQp7CiAgICAg
ICAgdW5zaWduZWQgaW50IHNpemU7CiAgICAgICAgdW5zaWduZWQgaW50IGNsaWVudF9uYW1lX3B0
cjsKICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9uYW1lX3B0cjsKICAgICAgICB1bnNpZ25lZCBp
bnQgYnVpbGQ7CiAgICAgICAgdW5zaWduZWQgaW50IG1ham9yOwogICAgICAgIHVuc2lnbmVkIGlu
dCBtaW5vcjsKICAgICAgICB1bnNpZ25lZCBpbnQgcHJvY2Vzc29yOwogICAgICAgIFVOSVNUUjIg
Y2xpZW50X25hbWU7CiAgICAgICAgVU5JU1RSMiB1c2VyX25hbWU7Cn0KU1BPT0xfVVNFUl9MRVZF
TF8xOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfdXNlcl9sZXZlbAp7CiAgICAgICAgU1BPT0xfVVNF
Ul9MRVZFTF8xICp1c2VyX2xldmVsXzE7Cn0KU1BPT0xfVVNFUl9MRVZFTDsKCnR5cGVkZWYgc3Ry
dWN0IHNwb29sX3Ffc2V0cHJpbnRlcgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAg
ICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIFNQT09MX1BSSU5URVJfSU5GT19MRVZFTCBp
bmZvOwogICAgICAgIFNFQ19ERVNDX0JVRiAqc2VjZGVzY19jdHI7CiAgICAgICAgREVWTU9ERV9D
VFIgZGV2bW9kZV9jdHI7CgogICAgICAgIHVuc2lnbmVkIGludCBjb21tYW5kOwoKfQpTUE9PTF9R
X1NFVFBSSU5URVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX3NldHByaW50ZXIKewogICAgICAg
IFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9TRVRQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bv
b2xfcV9hZGRwcmludGVyCnsKICAgICAgICBVTklTVFIyIHNlcnZlcl9uYW1lOwogICAgICAgIHVu
c2lnbmVkIGludCBsZXZlbDsKICAgICAgICBTUE9PTF9QUklOVEVSX0lORk9fTEVWRUwgaW5mbzsK
ICAgICAgICB1bnNpZ25lZCBpbnQgdW5rMDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rMTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5rMjsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rMzsKICAgICAg
ICB1bnNpZ25lZCBpbnQgdXNlcl9sZXZlbDsKICAgICAgICBTUE9PTF9VU0VSX0xFVkVMIHVzZXI7
Cn0KU1BPT0xfUV9BRERQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9hZGRwcmludGVy
CnsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfQUREUFJJTlRFUjsKCnR5cGVkZWYg
c3RydWN0IHNwb29sX3FfZGVsZXRlcHJpbnRlcgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7
Cn0KU1BPT0xfUV9ERUxFVEVQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9kZWxldGVw
cmludGVyCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICBXRVJST1Igc3RhdHVz
Owp9ClNQT09MX1JfREVMRVRFUFJJTlRFUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfYWJvcnRw
cmludGVyCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKfQpTUE9PTF9RX0FCT1JUUFJJTlRF
UjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfYWJvcnRwcmludGVyCnsKICAgICAgICBXRVJST1Ig
c3RhdHVzOwp9ClNQT09MX1JfQUJPUlRQUklOVEVSOwoKCnR5cGVkZWYgc3RydWN0IHNwb29sX3Ff
YWRkcHJpbnRlcmV4CnsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VydmVyX25hbWVfcHRyOwogICAg
ICAgIFVOSVNUUjIgc2VydmVyX25hbWU7CiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAg
ICAgIFNQT09MX1BSSU5URVJfSU5GT19MRVZFTCBpbmZvOwogICAgICAgIHVuc2lnbmVkIGludCB1
bmswOwogICAgICAgIHVuc2lnbmVkIGludCB1bmsxOwogICAgICAgIHVuc2lnbmVkIGludCB1bmsy
OwogICAgICAgIHVuc2lnbmVkIGludCB1bmszOwogICAgICAgIHVuc2lnbmVkIGludCB1c2VyX3N3
aXRjaDsKICAgICAgICBTUE9PTF9VU0VSX0NUUiB1c2VyX2N0cjsKfQpTUE9PTF9RX0FERFBSSU5U
RVJFWDsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfYWRkcHJpbnRlcmV4CnsKICAgICAgICBQT0xJ
Q1lfSE5EIGhhbmRsZTsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfQUREUFJJTlRF
UkVYOwoKCnR5cGVkZWYgc3RydWN0IHNwb29sX3FfYWRkcHJpbnRlcmRyaXZlcgp7CiAgICAgICAg
dW5zaWduZWQgaW50IHNlcnZlcl9uYW1lX3B0cjsKICAgICAgICBVTklTVFIyIHNlcnZlcl9uYW1l
OwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBTUE9PTF9QUklOVEVSX0RSSVZF
Ul9JTkZPX0xFVkVMIGluZm87Cn0KU1BPT0xfUV9BRERQUklOVEVSRFJJVkVSOwoKdHlwZWRlZiBz
dHJ1Y3Qgc3Bvb2xfcl9hZGRwcmludGVyZHJpdmVyCnsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9
ClNQT09MX1JfQUREUFJJTlRFUkRSSVZFUjsKCgp0eXBlZGVmIHN0cnVjdCBkcml2ZXJfZGlyZWN0
b3J5XzEKewogICAgICAgIFVOSVNUUiBuYW1lOwp9CkRSSVZFUl9ESVJFQ1RPUllfMTsKCnR5cGVk
ZWYgc3RydWN0IGRyaXZlcl9pbmZvX2N0cl9pbmZvCnsKICAgICAgICBEUklWRVJfRElSRUNUT1JZ
XzEgKmluZm8xOwp9CkRSSVZFUl9ESVJFQ1RPUllfQ1RSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xf
cV9nZXRwcmludGVyZHJpdmVyZGlyZWN0b3J5CnsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9w
dHI7CiAgICAgICAgVU5JU1RSMiBuYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBlbnZpcm9ubWVu
dF9wdHI7CiAgICAgICAgVU5JU1RSMiBlbnZpcm9ubWVudDsKICAgICAgICB1bnNpZ25lZCBpbnQg
bGV2ZWw7CiAgICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBv
ZmZlcmVkOwp9ClNQT09MX1FfR0VUUFJJTlRFUkRSSVZFUkRJUjsKCnR5cGVkZWYgc3RydWN0IHNw
b29sX3JfZ2V0cHJpbnRlcmRyaXZlcmRpcmVjdG9yeQp7CiAgICAgICAgTkVXX0JVRkZFUiAqYnVm
ZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7CiAgICAgICAgV0VSUk9SIHN0YXR1czsK
fQpTUE9PTF9SX0dFVFBSSU5URVJEUklWRVJESVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2Fk
ZHByaW50cHJvY2Vzc29yCnsKICAgICAgICB1bnNpZ25lZCBpbnQgc2VydmVyX3B0cjsKICAgICAg
ICBVTklTVFIyIHNlcnZlcjsKICAgICAgICBVTklTVFIyIGVudmlyb25tZW50OwogICAgICAgIFVO
SVNUUjIgcGF0aDsKICAgICAgICBVTklTVFIyIG5hbWU7Cn0KU1BPT0xfUV9BRERQUklOVFBST0NF
U1NPUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfYWRkcHJpbnRwcm9jZXNzb3IKewogICAgICAg
IFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9BRERQUklOVFBST0NFU1NPUjsKCgp0eXBlZGVmIHN0
cnVjdCBzcG9vbF9xX2VudW1wcmludHByb2Nlc3NvcnMKewogICAgICAgIHVuc2lnbmVkIGludCBu
YW1lX3B0cjsKICAgICAgICBVTklTVFIyIG5hbWU7CiAgICAgICAgdW5zaWduZWQgaW50IGVudmly
b25tZW50X3B0cjsKICAgICAgICBVTklTVFIyIGVudmlyb25tZW50OwogICAgICAgIHVuc2lnbmVk
IGludCBsZXZlbDsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQg
aW50IG9mZmVyZWQ7Cn0KU1BPT0xfUV9FTlVNUFJJTlRQUk9DRVNTT1JTOwoKdHlwZWRlZiBzdHJ1
Y3QgcHJpbnRwcm9jZXNzb3JfMQp7CiAgICAgICAgVU5JU1RSIG5hbWU7Cn0KUFJJTlRQUk9DRVNT
T1JfMTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZW51bXByaW50cHJvY2Vzc29ycwp7CiAgICAg
ICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7CiAgICAg
ICAgdW5zaWduZWQgaW50IHJldHVybmVkOwogICAgICAgIFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xf
Ul9FTlVNUFJJTlRQUk9DRVNTT1JTOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9lbnVtcHJpbnRw
cm9jZGF0YXR5cGVzCnsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9wdHI7CiAgICAgICAgVU5J
U1RSMiBuYW1lOwogICAgICAgIHVuc2lnbmVkIGludCBwcm9jZXNzb3JfcHRyOwogICAgICAgIFVO
SVNUUjIgcHJvY2Vzc29yOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbDsKICAgICAgICBORVdf
QlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQ7Cn0KU1BPT0xfUV9F
TlVNUFJJTlRQUk9DREFUQVRZUEVTOwoKdHlwZWRlZiBzdHJ1Y3QgcHBkYXRhdHlwZV8xCnsKICAg
ICAgICBVTklTVFIgbmFtZTsKfQpQUklOVFBST0NEQVRBVFlQRV8xOwoKdHlwZWRlZiBzdHJ1Y3Qg
c3Bvb2xfcl9lbnVtcHJpbnRwcm9jZGF0YXR5cGVzCnsKICAgICAgICBORVdfQlVGRkVSICpidWZm
ZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZWRlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmV0
dXJuZWQ7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX0VOVU1QUklOVFBST0NEQVRB
VFlQRVM7Cgp0eXBlZGVmIHN0cnVjdCBwcmludG1vbml0b3JfMQp7CiAgICAgICAgVU5JU1RSIG5h
bWU7Cn0KUFJJTlRNT05JVE9SXzE7Cgp0eXBlZGVmIHN0cnVjdCBwcmludG1vbml0b3JfMgp7CiAg
ICAgICAgVU5JU1RSIG5hbWU7CiAgICAgICAgVU5JU1RSIGVudmlyb25tZW50OwogICAgICAgIFVO
SVNUUiBkbGxfbmFtZTsKfQpQUklOVE1PTklUT1JfMjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3Ff
ZW51bXByaW50bW9uaXRvcnMKewogICAgICAgIHVuc2lnbmVkIGludCBuYW1lX3B0cjsKICAgICAg
ICBVTklTVFIyIG5hbWU7CiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIE5FV19C
VUZGRVIgKmJ1ZmZlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgb2ZmZXJlZDsKfQpTUE9PTF9RX0VO
VU1QUklOVE1PTklUT1JTOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9lbnVtcHJpbnRtb25pdG9y
cwp7CiAgICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVk
ZWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHJldHVybmVkOwogICAgICAgIFdFUlJPUiBzdGF0dXM7
Cn0KU1BPT0xfUl9FTlVNUFJJTlRNT05JVE9SUzsKCgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2Vu
dW1wcmludGVyZGF0YQp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgdW5zaWdu
ZWQgaW50IGluZGV4OwogICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZXNpemU7CiAgICAgICAgdW5z
aWduZWQgaW50IGRhdGFzaXplOwp9ClNQT09MX1FfRU5VTVBSSU5URVJEQVRBOwoKdHlwZWRlZiBz
dHJ1Y3Qgc3Bvb2xfcl9lbnVtcHJpbnRlcmRhdGEKewogICAgICAgIHVuc2lnbmVkIGludCB2YWx1
ZXNpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgKnZhbHVlOwogICAgICAgIHVuc2lnbmVkIGlu
dCByZWFsdmFsdWVzaXplOwogICAgICAgIHVuc2lnbmVkIGludCB0eXBlOwogICAgICAgIHVuc2ln
bmVkIGludCBkYXRhc2l6ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyICpkYXRhOwogICAgICAgIHVu
c2lnbmVkIGludCByZWFsZGF0YXNpemU7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9S
X0VOVU1QUklOVEVSREFUQTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3Ffc2V0cHJpbnRlcmRhdGEK
ewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIFVOSVNUUjIgdmFsdWU7CiAgICAg
ICAgdW5zaWduZWQgaW50IHR5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IG1heF9sZW47CiAgICAg
ICAgdW5zaWduZWQgY2hhciAqZGF0YTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVhbF9sZW47CiAg
ICAgICAgdW5zaWduZWQgaW50IG51bWVyaWNfZGF0YTsKfQpTUE9PTF9RX1NFVFBSSU5URVJEQVRB
OwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9zZXRwcmludGVyZGF0YQp7CiAgICAgICAgV0VSUk9S
IHN0YXR1czsKfQpTUE9PTF9SX1NFVFBSSU5URVJEQVRBOwoKdHlwZWRlZiBzdHJ1Y3QgX2Zvcm0K
ewogICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZV9w
dHI7CiAgICAgICAgdW5zaWduZWQgaW50IHNpemVfeDsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6
ZV95OwogICAgICAgIHVuc2lnbmVkIGludCBsZWZ0OwogICAgICAgIHVuc2lnbmVkIGludCB0b3A7
CiAgICAgICAgdW5zaWduZWQgaW50IHJpZ2h0OwogICAgICAgIHVuc2lnbmVkIGludCBib3R0b207
CiAgICAgICAgVU5JU1RSMiBuYW1lOwp9CkZPUk07Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2Fk
ZGZvcm0KewogICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIHVuc2lnbmVkIGludCBs
ZXZlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwyOwogICAgICAgIEZPUk0gZm9ybTsKfQpT
UE9PTF9RX0FEREZPUk07Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2FkZGZvcm0KewogICAgICAg
IFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9BRERGT1JNOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xf
cV9zZXRmb3JtCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICBVTklTVFIyIG5h
bWU7CiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgICAgIHVuc2lnbmVkIGludCBsZXZl
bDI7CiAgICAgICAgRk9STSBmb3JtOwp9ClNQT09MX1FfU0VURk9STTsKCnR5cGVkZWYgc3RydWN0
IHNwb29sX3Jfc2V0Zm9ybQp7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9PTF9SX1NFVEZP
Uk07Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2RlbGV0ZWZvcm0KewogICAgICAgIFBPTElDWV9I
TkQgaGFuZGxlOwogICAgICAgIFVOSVNUUjIgbmFtZTsKfQpTUE9PTF9RX0RFTEVURUZPUk07Cgp0
eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2RlbGV0ZWZvcm0KewogICAgICAgIFdFUlJPUiBzdGF0dXM7
Cn0KU1BPT0xfUl9ERUxFVEVGT1JNOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9nZXRqb2IKewog
ICAgICAgIFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIHVuc2lnbmVkIGludCBqb2JpZDsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbGV2ZWw7CiAgICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyOwogICAg
ICAgIHVuc2lnbmVkIGludCBvZmZlcmVkOwp9ClNQT09MX1FfR0VUSk9COwoKdHlwZWRlZiBzdHJ1
Y3QgcGpvYl9pbmZvX2luZm8KewogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAg
ICAgSk9CX0lORk9fMSAqam9iX2luZm9fMTsKICAgICAgICAgICAgICAgIEpPQl9JTkZPXzIgKmpv
Yl9pbmZvXzI7CiAgICAgICAgICAgICAgICB2b2lkICppbmZvOwogICAgICAgIH0KICAgICAgICBq
b2I7Cgp9ClBKT0JfSU5GTzsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZ2V0am9iCnsKICAgICAg
ICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZWRlZDsKICAgICAg
ICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfR0VUSk9COwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xf
cV9yZXBseW9wZW5wcmludGVyCnsKICAgICAgICBVTklTVFIyIHN0cmluZzsKICAgICAgICB1bnNp
Z25lZCBpbnQgcHJpbnRlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgdHlwZTsKICAgICAgICB1bnNp
Z25lZCBpbnQgdW5rbm93bjA7CiAgICAgICAgdW5zaWduZWQgaW50IHVua25vd24xOwp9ClNQT09M
X1FfUkVQTFlPUEVOUFJJTlRFUjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfcmVwbHlvcGVucHJp
bnRlcgp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgV0VSUk9SIHN0YXR1czsK
fQpTUE9PTF9SX1JFUExZT1BFTlBSSU5URVI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX3JlcGx5
Y2xvc2VwcmludGVyCnsKICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKfQpTUE9PTF9RX1JFUExZ
Q0xPU0VQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcl9yZXBseWNsb3NlcHJpbnRlcgp7
CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgV0VSUk9SIHN0YXR1czsKfQpTUE9P
TF9SX1JFUExZQ0xPU0VQUklOVEVSOwoKdHlwZWRlZiBzdHJ1Y3Qgc3Bvb2xfcV9ycnBjbgp7CiAg
ICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAgdW5zaWduZWQgaW50IGNoYW5nZV9sb3c7
CiAgICAgICAgdW5zaWduZWQgaW50IGNoYW5nZV9oaWdoOwogICAgICAgIHVuc2lnbmVkIGludCB1
bmtub3duMDsKICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bjE7CiAgICAgICAgdW5zaWduZWQg
aW50IGluZm9fcHRyOwogICAgICAgIFNQT09MX05PVElGWV9JTkZPIGluZm87Cn0KU1BPT0xfUV9S
RVBMWV9SUlBDTjsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfcnJwY24KewogICAgICAgIHVuc2ln
bmVkIGludCB1bmtub3duMDsKICAgICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfUkVQTFlf
UlJQQ047Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2dldHByaW50ZXJkYXRhZXgKewogICAgICAg
IFBPTElDWV9ITkQgaGFuZGxlOwogICAgICAgIFVOSVNUUjIga2V5bmFtZTsKICAgICAgICBVTklT
VFIyIHZhbHVlbmFtZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZTsKfQpTUE9PTF9RX0dFVFBS
SU5URVJEQVRBRVg7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9yX2dldHByaW50ZXJkYXRhZXgKewog
ICAgICAgIHVuc2lnbmVkIGludCB0eXBlOwogICAgICAgIHVuc2lnbmVkIGludCBzaXplOwogICAg
ICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CiAgICAgICAgdW5zaWduZWQgaW50IG5lZWRlZDsKICAg
ICAgICBXRVJST1Igc3RhdHVzOwp9ClNQT09MX1JfR0VUUFJJTlRFUkRBVEFFWDsKCnR5cGVkZWYg
c3RydWN0IHNwb29sX3Ffc2V0cHJpbnRlcmRhdGFleAp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5k
bGU7CiAgICAgICAgVU5JU1RSMiBrZXk7CiAgICAgICAgVU5JU1RSMiB2YWx1ZTsKICAgICAgICB1
bnNpZ25lZCBpbnQgdHlwZTsKICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X2xlbjsKICAgICAgICB1
bnNpZ25lZCBjaGFyICpkYXRhOwogICAgICAgIHVuc2lnbmVkIGludCByZWFsX2xlbjsKICAgICAg
ICB1bnNpZ25lZCBpbnQgbnVtZXJpY19kYXRhOwp9ClNQT09MX1FfU0VUUFJJTlRFUkRBVEFFWDsK
CnR5cGVkZWYgc3RydWN0IHNwb29sX3Jfc2V0cHJpbnRlcmRhdGFleAp7CiAgICAgICAgV0VSUk9S
IHN0YXR1czsKfQpTUE9PTF9SX1NFVFBSSU5URVJEQVRBRVg7CgoKdHlwZWRlZiBzdHJ1Y3Qgc3Bv
b2xfcV9lbnVtcHJpbnRlcmtleQp7CiAgICAgICAgUE9MSUNZX0hORCBoYW5kbGU7CiAgICAgICAg
VU5JU1RSMiBrZXk7CiAgICAgICAgdW5zaWduZWQgaW50IHNpemU7Cn0KU1BPT0xfUV9FTlVNUFJJ
TlRFUktFWTsKCnR5cGVkZWYgc3RydWN0IHNwb29sX3JfZW51bXByaW50ZXJrZXkKewogICAgICAg
IEJVRkZFUjUga2V5czsKICAgICAgICB1bnNpZ25lZCBpbnQgbmVlZGVkOwogICAgICAgIFdFUlJP
UiBzdGF0dXM7Cn0KU1BPT0xfUl9FTlVNUFJJTlRFUktFWTsKCnR5cGVkZWYgc3RydWN0IHByaW50
ZXJfZW51bV92YWx1ZXMKewogICAgICAgIFVOSVNUUiB2YWx1ZW5hbWU7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHZhbHVlX2xlbjsKICAgICAgICB1bnNpZ25lZCBpbnQgdHlwZTsKICAgICAgICB1bnNp
Z25lZCBjaGFyICpkYXRhOwogICAgICAgIHVuc2lnbmVkIGludCBkYXRhX2xlbjsKCn0KUFJJTlRF
Ul9FTlVNX1ZBTFVFUzsKCnR5cGVkZWYgc3RydWN0IHByaW50ZXJfZW51bV92YWx1ZXNfY3RyCnsK
ICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZV9vZl9h
cnJheTsKICAgICAgICBQUklOVEVSX0VOVU1fVkFMVUVTICp2YWx1ZXM7Cn0KUFJJTlRFUl9FTlVN
X1ZBTFVFU19DVFI7Cgp0eXBlZGVmIHN0cnVjdCBzcG9vbF9xX2VudW1wcmludGVyZGF0YWV4CnsK
ICAgICAgICBQT0xJQ1lfSE5EIGhhbmRsZTsKICAgICAgICBVTklTVFIyIGtleTsKICAgICAgICB1
bnNpZ25lZCBpbnQgc2l6ZTsKfQpTUE9PTF9RX0VOVU1QUklOVEVSREFUQUVYOwoKdHlwZWRlZiBz
dHJ1Y3Qgc3Bvb2xfcl9lbnVtcHJpbnRlcmRhdGFleAp7CiAgICAgICAgUFJJTlRFUl9FTlVNX1ZB
TFVFU19DVFIgY3RyOwogICAgICAgIHVuc2lnbmVkIGludCBuZWVkZWQ7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHJldHVybmVkOwogICAgICAgIFdFUlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9FTlVNUFJJ
TlRFUkRBVEFFWDsKCnR5cGVkZWYgc3RydWN0IHByaW50cHJvY2Vzc29yX2RpcmVjdG9yeV8xCnsK
ICAgICAgICBVTklTVFIgbmFtZTsKfQpQUklOVFBST0NFU1NPUl9ESVJFQ1RPUllfMTsKCnR5cGVk
ZWYgc3RydWN0IHNwb29sX3FfZ2V0cHJpbnRwcm9jZXNzb3JkaXJlY3RvcnkKewogICAgICAgIFVO
SVNUUjIgbmFtZTsKICAgICAgICBVTklTVFIyIGVudmlyb25tZW50OwogICAgICAgIHVuc2lnbmVk
IGludCBsZXZlbDsKICAgICAgICBORVdfQlVGRkVSICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQg
aW50IG9mZmVyZWQ7Cn0KU1BPT0xfUV9HRVRQUklOVFBST0NFU1NPUkRJUkVDVE9SWTsKCnR5cGVk
ZWYgc3RydWN0IHNwb29sX3JfZ2V0cHJpbnRwcm9jZXNzb3JkaXJlY3RvcnkKewogICAgICAgIE5F
V19CVUZGRVIgKmJ1ZmZlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgbmVlZGVkOwogICAgICAgIFdF
UlJPUiBzdGF0dXM7Cn0KU1BPT0xfUl9HRVRQUklOVFBST0NFU1NPUkRJUkVDVE9SWTsKIyAyODUg
ImluY2x1ZGUvbnRkb21haW4uaCIgMgojIDEgImluY2x1ZGUvcnBjX2Rmcy5oIiAxCiMgMzggImlu
Y2x1ZGUvcnBjX2Rmcy5oIgp0eXBlZGVmIHN0cnVjdCBkZnNfcV9kZnNfZXhpc3QKewogIHVuc2ln
bmVkIGludCBkdW1teTsKfQpERlNfUV9ERlNfRVhJU1Q7CgoKdHlwZWRlZiBzdHJ1Y3QgZGZzX3Jf
ZGZzX2V4aXN0CnsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RhdHVzOwp9CkRGU19SX0RGU19FWElT
VDsKCnR5cGVkZWYgc3RydWN0IGRmc19xX2Rmc19hZGQKewogIHVuc2lnbmVkIGludCBwdHJfRGZz
RW50cnlQYXRoOwogIFVOSVNUUjIgRGZzRW50cnlQYXRoOwogIHVuc2lnbmVkIGludCBwdHJfU2Vy
dmVyTmFtZTsKICBVTklTVFIyIFNlcnZlck5hbWU7CiAgdW5zaWduZWQgaW50IHB0cl9TaGFyZU5h
bWU7CiAgVU5JU1RSMiBTaGFyZU5hbWU7CiAgdW5zaWduZWQgaW50IHB0cl9Db21tZW50OwogIFVO
SVNUUjIgQ29tbWVudDsKICB1bnNpZ25lZCBpbnQgRmxhZ3M7Cn0KREZTX1FfREZTX0FERDsKCnR5
cGVkZWYgc3RydWN0IGRmc19yX2Rmc19hZGQKewogIFdFUlJPUiBzdGF0dXM7Cn0KREZTX1JfREZT
X0FERDsKCgp0eXBlZGVmIHN0cnVjdCBkZnNfcV9kZnNfcmVtb3ZlCnsKICBVTklTVFIyIERmc0Vu
dHJ5UGF0aDsKICB1bnNpZ25lZCBpbnQgcHRyX1NlcnZlck5hbWU7CiAgVU5JU1RSMiBTZXJ2ZXJO
YW1lOwogIHVuc2lnbmVkIGludCBwdHJfU2hhcmVOYW1lOwogIFVOSVNUUjIgU2hhcmVOYW1lOwp9
CkRGU19RX0RGU19SRU1PVkU7Cgp0eXBlZGVmIHN0cnVjdCBkZnNfcl9kZnNfcmVtb3ZlCnsKICBX
RVJST1Igc3RhdHVzOwp9CkRGU19SX0RGU19SRU1PVkU7CgoKdHlwZWRlZiBzdHJ1Y3QgZGZzX2lu
Zm9fMQp7CiAgdW5zaWduZWQgaW50IHB0cl9lbnRyeXBhdGg7CiAgVU5JU1RSMiBlbnRyeXBhdGg7
Cn0KREZTX0lORk9fMTsKCnR5cGVkZWYgc3RydWN0IGRmc19pbmZvXzIKewogIHVuc2lnbmVkIGlu
dCBwdHJfZW50cnlwYXRoOwogIFVOSVNUUjIgZW50cnlwYXRoOwogIHVuc2lnbmVkIGludCBwdHJf
Y29tbWVudDsKICBVTklTVFIyIGNvbW1lbnQ7CiAgdW5zaWduZWQgaW50IHN0YXRlOwogIHVuc2ln
bmVkIGludCBudW1fc3RvcmFnZXM7Cn0KREZTX0lORk9fMjsKCnR5cGVkZWYgc3RydWN0IGRmc19z
dG9yYWdlX2luZm8KewogIHVuc2lnbmVkIGludCBzdGF0ZTsKICB1bnNpZ25lZCBpbnQgcHRyX3Nl
cnZlcm5hbWU7CiAgVU5JU1RSMiBzZXJ2ZXJuYW1lOwogIHVuc2lnbmVkIGludCBwdHJfc2hhcmVu
YW1lOwogIFVOSVNUUjIgc2hhcmVuYW1lOwp9CkRGU19TVE9SQUdFX0lORk87Cgp0eXBlZGVmIHN0
cnVjdCBkZnNfaW5mb18zCnsKICB1bnNpZ25lZCBpbnQgcHRyX2VudHJ5cGF0aDsKICBVTklTVFIy
IGVudHJ5cGF0aDsKICB1bnNpZ25lZCBpbnQgcHRyX2NvbW1lbnQ7CiAgVU5JU1RSMiBjb21tZW50
OwogIHVuc2lnbmVkIGludCBzdGF0ZTsKICB1bnNpZ25lZCBpbnQgbnVtX3N0b3JhZ2VzOwogIHVu
c2lnbmVkIGludCBwdHJfc3RvcmFnZXM7CiAgdW5zaWduZWQgaW50IG51bV9zdG9yYWdlX2luZm9z
OwogIERGU19TVE9SQUdFX0lORk8qIHN0b3JhZ2VzOwp9CkRGU19JTkZPXzM7Cgp0eXBlZGVmIHN0
cnVjdCBkZnNfaW5mb19jdHIKewoKICB1bnNpZ25lZCBpbnQgc3dpdGNoX3ZhbHVlOwogIHVuc2ln
bmVkIGludCBudW1fZW50cmllczsKICB1bnNpZ25lZCBpbnQgcHRyX2Rmc19jdHI7CiAgdW5pb24K
ICB7CiAgICBERlNfSU5GT18xICppbmZvMTsKICAgIERGU19JTkZPXzIgKmluZm8yOwogICAgREZT
X0lORk9fMyAqaW5mbzM7CiAgfSBkZnM7Cn0KREZTX0lORk9fQ1RSOwoKdHlwZWRlZiBzdHJ1Y3Qg
ZGZzX3FfZGZzX2dldF9pbmZvCnsKICBVTklTVFIyIHVuaV9wYXRoOwoKICB1bnNpZ25lZCBpbnQg
cHRyX3NlcnZlcjsKICBVTklTVFIyIHVuaV9zZXJ2ZXI7CgogIHVuc2lnbmVkIGludCBwdHJfc2hh
cmU7CiAgVU5JU1RSMiB1bmlfc2hhcmU7CgogIHVuc2lnbmVkIGludCBsZXZlbDsKfQpERlNfUV9E
RlNfR0VUX0lORk87Cgp0eXBlZGVmIHN0cnVjdCBkZnNfcl9kZnNfZ2V0X2luZm8KewogIHVuc2ln
bmVkIGludCBsZXZlbDsKICB1bnNpZ25lZCBpbnQgcHRyX2N0cjsKICBERlNfSU5GT19DVFIgY3Ry
OwogIFdFUlJPUiBzdGF0dXM7Cn0KREZTX1JfREZTX0dFVF9JTkZPOwoKdHlwZWRlZiBzdHJ1Y3Qg
ZGZzX3FfZGZzX2VudW0KewogIHVuc2lnbmVkIGludCBsZXZlbDsKICB1bnNpZ25lZCBpbnQgbWF4
cHJlZmxlbjsKICB1bnNpZ25lZCBpbnQgcHRyX2J1ZmZlcjsKICB1bnNpZ25lZCBpbnQgbGV2ZWwy
OwogIHVuc2lnbmVkIGludCBwdHJfbnVtX2VudHJpZXM7CiAgdW5zaWduZWQgaW50IG51bV9lbnRy
aWVzOwogIHVuc2lnbmVkIGludCBwdHJfbnVtX2VudHJpZXMyOwogIHVuc2lnbmVkIGludCBudW1f
ZW50cmllczI7CiAgRU5VTV9ITkQgcmVzaG5kOwp9CkRGU19RX0RGU19FTlVNOwoKdHlwZWRlZiBz
dHJ1Y3QgZGZzX3JfZGZzX2VudW0KewogIERGU19JTkZPX0NUUiAqY3RyOwogIHVuc2lnbmVkIGlu
dCBwdHJfYnVmZmVyOwogIHVuc2lnbmVkIGludCBsZXZlbDsKICB1bnNpZ25lZCBpbnQgbGV2ZWwy
OwogIHVuc2lnbmVkIGludCBwdHJfbnVtX2VudHJpZXM7CiAgdW5zaWduZWQgaW50IG51bV9lbnRy
aWVzOwogIHVuc2lnbmVkIGludCBwdHJfbnVtX2VudHJpZXMyOwogIHVuc2lnbmVkIGludCBudW1f
ZW50cmllczI7CiAgRU5VTV9ITkQgcmVzaG5kOwogIFdFUlJPUiBzdGF0dXM7Cn0KREZTX1JfREZT
X0VOVU07CiMgMjg2ICJpbmNsdWRlL250ZG9tYWluLmgiIDIKIyAxICJpbmNsdWRlL3NpZHMuaCIg
MQojIDI3ICJpbmNsdWRlL3NpZHMuaCIKZXh0ZXJuIERPTV9TSUQgZ2xvYmFsX3NhbV9zaWQ7CmV4
dGVybiBmc3RyaW5nIGdsb2JhbF9zYW1fbmFtZTsKCmV4dGVybiBET01fU0lEIGdsb2JhbF9tZW1i
ZXJfc2lkOwoKZXh0ZXJuIERPTV9TSUQgZ2xvYmFsX3NpZF9TXzFfNV8zMjsKZXh0ZXJuIERPTV9T
SUQgZ2xvYmFsX3NpZF9TXzFfMTsKZXh0ZXJuIERPTV9TSUQgZ2xvYmFsX3NpZF9OVUxMOwoKZXh0
ZXJuIGNvbnN0IERPTV9TSUQgKmdsb2JhbF9zaWRfZXZlcnlvbmU7CmV4dGVybiBjb25zdCBET01f
U0lEICpnbG9iYWxfc2lkX3N5c3RlbTsKZXh0ZXJuIGNvbnN0IERPTV9TSUQgKmdsb2JhbF9zaWRf
YnVpbHRpbjsKIyAyODcgImluY2x1ZGUvbnRkb21haW4uaCIgMgojIDI1ICJpbmNsdWRlL3JwY19t
aXNjLmgiIDIKIyAxNTk1ICJpbmNsdWRlL3NtYi5oIiAyCgojIDEgImluY2x1ZGUvbnRfcHJpbnRp
bmcuaCIgMQojIDEzNiAiaW5jbHVkZS9udF9wcmludGluZy5oIgp0eXBlZGVmIHN0cnVjdCBudF9w
cmludGVyX2RyaXZlcl9pbmZvX2xldmVsXzMKewogICAgICAgIHVuc2lnbmVkIGludCBjdmVyc2lv
bjsKCiAgICAgICAgZnN0cmluZyBuYW1lOwogICAgICAgIGZzdHJpbmcgZW52aXJvbm1lbnQ7CiAg
ICAgICAgZnN0cmluZyBkcml2ZXJwYXRoOwogICAgICAgIGZzdHJpbmcgZGF0YWZpbGU7CiAgICAg
ICAgZnN0cmluZyBjb25maWdmaWxlOwogICAgICAgIGZzdHJpbmcgaGVscGZpbGU7CiAgICAgICAg
ZnN0cmluZyBtb25pdG9ybmFtZTsKICAgICAgICBmc3RyaW5nIGRlZmF1bHRkYXRhdHlwZTsKICAg
ICAgICBmc3RyaW5nICpkZXBlbmRlbnRmaWxlczsKfSBOVF9QUklOVEVSX0RSSVZFUl9JTkZPX0xF
VkVMXzM7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGludCB2ZXJzaW9uOwog
ICAgICAgIGZzdHJpbmcgbmFtZTsKICAgICAgICBmc3RyaW5nIGVudmlyb25tZW50OwogICAgICAg
IGZzdHJpbmcgZHJpdmVycGF0aDsKICAgICAgICBmc3RyaW5nIGRhdGFmaWxlOwogICAgICAgIGZz
dHJpbmcgY29uZmlnZmlsZTsKICAgICAgICBmc3RyaW5nIGhlbHBmaWxlOwogICAgICAgIGZzdHJp
bmcgbW9uaXRvcm5hbWU7CiAgICAgICAgZnN0cmluZyBkZWZhdWx0ZGF0YXR5cGU7CiAgICAgICAg
ZnN0cmluZyBtZmduYW1lOwogICAgICAgIGZzdHJpbmcgb2VtdXJsOwogICAgICAgIGZzdHJpbmcg
aGFyZHdhcmVpZDsKICAgICAgICBmc3RyaW5nIHByb3ZpZGVyOwogICAgICAgIGZzdHJpbmcgKmRl
cGVuZGVudGZpbGVzOwogICAgICAgIGZzdHJpbmcgKnByZXZpb3VzbmFtZXM7Cn0gTlRfUFJJTlRF
Ul9EUklWRVJfSU5GT19MRVZFTF82OwoKCnR5cGVkZWYgc3RydWN0IG50X3ByaW50ZXJfZHJpdmVy
X2luZm9fbGV2ZWwKewogICAgICAgIE5UX1BSSU5URVJfRFJJVkVSX0lORk9fTEVWRUxfMyAqaW5m
b18zOwogICAgICAgIE5UX1BSSU5URVJfRFJJVkVSX0lORk9fTEVWRUxfNiAqaW5mb182Owp9IE5U
X1BSSU5URVJfRFJJVkVSX0lORk9fTEVWRUw7Cgp0eXBlZGVmIHN0cnVjdCBudF9wcmludGVyX3Bh
cmFtCnsKICAgICAgICBmc3RyaW5nIHZhbHVlOwogICAgICAgIHVuc2lnbmVkIGludCB0eXBlOwog
ICAgICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CiAgICAgICAgaW50IGRhdGFfbGVuOwogICAgICAg
IHN0cnVjdCBudF9wcmludGVyX3BhcmFtICpuZXh0Owp9IE5UX1BSSU5URVJfUEFSQU07Cgp0eXBl
ZGVmIHN0cnVjdCBudGRldmljZW1vZGUKewogICAgICAgIGZzdHJpbmcgZGV2aWNlbmFtZTsKICAg
ICAgICBmc3RyaW5nIGZvcm1uYW1lOwoKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzcGVjdmVyc2lv
bjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkcml2ZXJ2ZXJzaW9uOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHNpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZHJpdmVyZXh0cmE7CiAgICAgICAg
dW5zaWduZWQgc2hvcnQgb3JpZW50YXRpb247CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcGFwZXJz
aXplOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHBhcGVybGVuZ3RoOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHBhcGVyd2lkdGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc2NhbGU7CiAgICAgICAg
dW5zaWduZWQgc2hvcnQgY29waWVzOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRlZmF1bHRzb3Vy
Y2U7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHJpbnRxdWFsaXR5OwogICAgICAgIHVuc2lnbmVk
IHNob3J0IGNvbG9yOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGR1cGxleDsKICAgICAgICB1bnNp
Z25lZCBzaG9ydCB5cmVzb2x1dGlvbjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB0dG9wdGlvbjsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBjb2xsYXRlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGxv
Z3BpeGVsczsKCiAgICAgICAgdW5zaWduZWQgaW50IGZpZWxkczsKICAgICAgICB1bnNpZ25lZCBp
bnQgYml0c3BlcnBlbDsKICAgICAgICB1bnNpZ25lZCBpbnQgcGVsc3dpZHRoOwogICAgICAgIHVu
c2lnbmVkIGludCBwZWxzaGVpZ2h0OwogICAgICAgIHVuc2lnbmVkIGludCBkaXNwbGF5ZmxhZ3M7
CiAgICAgICAgdW5zaWduZWQgaW50IGRpc3BsYXlmcmVxdWVuY3k7CiAgICAgICAgdW5zaWduZWQg
aW50IGljbW1ldGhvZDsKICAgICAgICB1bnNpZ25lZCBpbnQgaWNtaW50ZW50OwogICAgICAgIHVu
c2lnbmVkIGludCBtZWRpYXR5cGU7CiAgICAgICAgdW5zaWduZWQgaW50IGRpdGhlcnR5cGU7CiAg
ICAgICAgdW5zaWduZWQgaW50IHJlc2VydmVkMTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmVzZXJ2
ZWQyOwogICAgICAgIHVuc2lnbmVkIGludCBwYW5uaW5nd2lkdGg7CiAgICAgICAgdW5zaWduZWQg
aW50IHBhbm5pbmdoZWlnaHQ7CiAgICAgICAgdW5zaWduZWQgY2hhciAqcHJpdmF0ZTsKfSBOVF9E
RVZJQ0VNT0RFOwoKdHlwZWRlZiBzdHJ1Y3QgbnRfcHJpbnRlcl9pbmZvX2xldmVsXzIKewogICAg
ICAgIHVuc2lnbmVkIGludCBhdHRyaWJ1dGVzOwogICAgICAgIHVuc2lnbmVkIGludCBwcmlvcml0
eTsKICAgICAgICB1bnNpZ25lZCBpbnQgZGVmYXVsdF9wcmlvcml0eTsKICAgICAgICB1bnNpZ25l
ZCBpbnQgc3RhcnR0aW1lOwogICAgICAgIHVuc2lnbmVkIGludCB1bnRpbHRpbWU7CiAgICAgICAg
V0VSUk9SIHN0YXR1czsKICAgICAgICB1bnNpZ25lZCBpbnQgY2pvYnM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IGF2ZXJhZ2VwcG07CiAgICAgICAgZnN0cmluZyBzZXJ2ZXJuYW1lOwogICAgICAgIGZz
dHJpbmcgcHJpbnRlcm5hbWU7CiAgICAgICAgZnN0cmluZyBzaGFyZW5hbWU7CiAgICAgICAgZnN0
cmluZyBwb3J0bmFtZTsKICAgICAgICBmc3RyaW5nIGRyaXZlcm5hbWU7CiAgICAgICAgcHN0cmlu
ZyBjb21tZW50OwogICAgICAgIGZzdHJpbmcgbG9jYXRpb247CiAgICAgICAgTlRfREVWSUNFTU9E
RSAqZGV2bW9kZTsKICAgICAgICBmc3RyaW5nIHNlcGZpbGU7CiAgICAgICAgZnN0cmluZyBwcmlu
dHByb2Nlc3NvcjsKICAgICAgICBmc3RyaW5nIGRhdGF0eXBlOwogICAgICAgIGZzdHJpbmcgcGFy
YW1ldGVyczsKICAgICAgICBOVF9QUklOVEVSX1BBUkFNICpzcGVjaWZpYzsKICAgICAgICBTRUNf
REVTQ19CVUYgKnNlY2Rlc2NfYnVmOwoKICAgICAgICB1bnNpZ25lZCBpbnQgY2hhbmdlaWQ7CiAg
ICAgICAgdW5zaWduZWQgaW50IGNfc2V0cHJpbnRlcjsKICAgICAgICB1bnNpZ25lZCBpbnQgc2V0
dXB0aW1lOwp9IE5UX1BSSU5URVJfSU5GT19MRVZFTF8yOwoKdHlwZWRlZiBzdHJ1Y3QgbnRfcHJp
bnRlcl9pbmZvX2xldmVsCnsKICAgICAgICBOVF9QUklOVEVSX0lORk9fTEVWRUxfMiAqaW5mb18y
Owp9IE5UX1BSSU5URVJfSU5GT19MRVZFTDsKCnR5cGVkZWYgc3RydWN0CnsKICAgICAgICBmc3Ry
aW5nIG5hbWU7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWc7CiAgICAgICAgdW5zaWduZWQgaW50
IHdpZHRoOwogICAgICAgIHVuc2lnbmVkIGludCBsZW5ndGg7CiAgICAgICAgdW5zaWduZWQgaW50
IGxlZnQ7CiAgICAgICAgdW5zaWduZWQgaW50IHRvcDsKICAgICAgICB1bnNpZ25lZCBpbnQgcmln
aHQ7CiAgICAgICAgdW5zaWduZWQgaW50IGJvdHRvbTsKfSBudF9mb3Jtc19zdHJ1Y3Q7CiMgMTU5
NyAiaW5jbHVkZS9zbWIuaCIgMgoKdHlwZWRlZiBzdHJ1Y3QgdXNlcl9zdHJ1Y3QKewogICAgICAg
IHN0cnVjdCB1c2VyX3N0cnVjdCAqbmV4dCwgKnByZXY7CiAgICAgICAgdW5zaWduZWQgc2hvcnQg
dnVpZDsKICAgICAgICB1aWRfdCB1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkOwoKICAgICAgICB1c2Vy
ZG9tX3N0cnVjdCB1c2VyOwogICAgICAgIEJPT0wgZ3Vlc3Q7CgoKCiAgICAgICAgaW50IG5fZ3Jv
dXBzOwogICAgICAgIGdpZF90ICpncm91cHM7CgogICAgICAgIE5UX1VTRVJfVE9LRU4gKm50X3Vz
ZXJfdG9rZW47CgogICAgICAgIGludCBzZXNzaW9uX2lkOwp9IHVzZXJfc3RydWN0OwoKCnR5cGVk
ZWYgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBjaGFyICpkYXRhOwogICAgICAgIHNpemVfdCBs
ZW5ndGg7Cn0gREFUQV9CTE9COwoKCgoKIyAxICJpbmNsdWRlL2NsaWVudC5oIiAxCiMgMzcgImlu
Y2x1ZGUvY2xpZW50LmgiCnR5cGVkZWYgc3RydWN0IGZpbGVfaW5mbwp7CiAgICAgICAgb2ZmX3Qg
c2l6ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBtb2RlOwogICAgICAgIHVpZF90IHVpZDsKICAg
ICAgICBnaWRfdCBnaWQ7CgogICAgICAgIHRpbWVfdCBtdGltZTsKICAgICAgICB0aW1lX3QgYXRp
bWU7CiAgICAgICAgdGltZV90IGN0aW1lOwogICAgICAgIHBzdHJpbmcgbmFtZTsKICAgICAgICBj
aGFyIHNob3J0X25hbWVbMTMqM107Cn0gZmlsZV9pbmZvOwoKc3RydWN0IHByaW50X2pvYl9pbmZv
CnsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBpZDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBwcmlv
cml0eTsKICAgICAgICBzaXplX3Qgc2l6ZTsKICAgICAgICBmc3RyaW5nIHVzZXI7CiAgICAgICAg
ZnN0cmluZyBuYW1lOwogICAgICAgIHRpbWVfdCB0Owp9OwoKc3RydWN0IGNsaV9zdGF0ZSB7CiAg
ICAgICAgaW50IHBvcnQ7CiAgICAgICAgaW50IGZkOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGNu
dW07CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcGlkOwogICAgICAgIHVuc2lnbmVkIHNob3J0IG1p
ZDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCB2dWlkOwogICAgICAgIGludCBwcm90b2NvbDsKICAg
ICAgICBpbnQgc2VjX21vZGU7CiAgICAgICAgaW50IHJhcF9lcnJvcjsKICAgICAgICBpbnQgcHJp
dmlsZWdlczsKCiAgICAgICAgZnN0cmluZyBlZmZfbmFtZTsKICAgICAgICBmc3RyaW5nIGRlc3Ro
b3N0OwogICAgICAgIGZzdHJpbmcgdXNlcl9uYW1lOwogICAgICAgIGZzdHJpbmcgZG9tYWluOwoK
CgoKCgogICAgICAgIGZzdHJpbmcgc2VydmVyX3R5cGU7CiAgICAgICAgZnN0cmluZyBzZXJ2ZXJf
b3M7CiAgICAgICAgZnN0cmluZyBzZXJ2ZXJfZG9tYWluOwoKICAgICAgICBmc3RyaW5nIHNoYXJl
OwogICAgICAgIGZzdHJpbmcgZGV2OwogICAgICAgIHN0cnVjdCBubWJfbmFtZSBjYWxsZWQ7CiAg
ICAgICAgc3RydWN0IG5tYl9uYW1lIGNhbGxpbmc7CiAgICAgICAgZnN0cmluZyBmdWxsX2Rlc3Rf
aG9zdF9uYW1lOwogICAgICAgIHN0cnVjdCBpbl9hZGRyIGRlc3RfaXA7CgogICAgICAgIHN0cnVj
dCBwd2RfaW5mbyBwd2Q7CiAgICAgICAgREFUQV9CTE9CIHNlY2Jsb2I7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHNlc3NrZXk7CiAgICAgICAgaW50IHNlcnZlcnpvbmU7CiAgICAgICAgdW5zaWduZWQg
aW50IHNlcnZlcnRpbWU7CiAgICAgICAgaW50IHJlYWRicmF3X3N1cHBvcnRlZDsKICAgICAgICBp
bnQgd3JpdGVicmF3X3N1cHBvcnRlZDsKICAgICAgICBpbnQgdGltZW91dDsKICAgICAgICBpbnQg
bWF4X3htaXQ7CiAgICAgICAgaW50IG1heF9tdXg7CiAgICAgICAgY2hhciAqb3V0YnVmOwogICAg
ICAgIGNoYXIgKmluYnVmOwogICAgICAgIGludCBidWZzaXplOwogICAgICAgIGludCBpbml0aWFs
aXNlZDsKICAgICAgICBpbnQgd2luOTU7CiAgICAgICAgdW5zaWduZWQgaW50IGNhcGFiaWxpdGll
czsKCiAgICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eDsKCgoKCgogICAgICAgIHVuc2lnbmVkIHNo
b3J0IG50X3BpcGVfZm51bTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHNlc3Nfa2V5WzE2XTsKICAg
ICAgICB1bnNpZ25lZCBjaGFyIG50bG1zc3BfaGFzaFsyNThdOwogICAgICAgIHVuc2lnbmVkIGlu
dCBudGxtc3NwX2NsaV9mbGdzOwogICAgICAgIHVuc2lnbmVkIGludCBudGxtc3NwX3Nydl9mbGdz
OwogICAgICAgIHVuc2lnbmVkIGludCBudGxtc3NwX3NlcV9udW07CiAgICAgICAgRE9NX0NSRUQg
Y2xudF9jcmVkOwogICAgICAgIGZzdHJpbmcgbWFjaF9hY2N0OwogICAgICAgIGZzdHJpbmcgc3J2
X25hbWVfc2xhc2g7CiAgICAgICAgZnN0cmluZyBjbG50X25hbWVfc2xhc2g7CiAgICAgICAgdW5z
aWduZWQgc2hvcnQgbWF4X3htaXRfZnJhZzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBtYXhfcmVj
dl9mcmFnOwogICAgICAgIHZ1c2VyX2tleSBrZXk7CiAgICAgICAgdW5zaWduZWQgaW50IG50bG1z
c3BfZmxhZ3M7CiAgICAgICAgQk9PTCB1c2Vfa2VyYmVyb3M7CiAgICAgICAgQk9PTCB1c2Vfc3Bu
ZWdvOwoKICAgICAgICBCT09MIHVzZV9vcGxvY2tzOwogICAgICAgIEJPT0wgdXNlX2xldmVsX0lJ
X29wbG9ja3M7CgoKICAgICAgICBCT09MICgqb3Bsb2NrX2hhbmRsZXIpKHN0cnVjdCBjbGlfc3Rh
dGUgKmNsaSwgaW50IGZudW0sIHVuc2lnbmVkIGNoYXIgbGV2ZWwpOwoKICAgICAgICBCT09MIGZv
cmNlX2Rvc19lcnJvcnM7CgoKCiAgICAgICAgQk9PTCBhbGxvY2F0ZWQ7Cn07CiMgMTYyOCAiaW5j
bHVkZS9zbWIuaCIgMgojIDE2NjQgImluY2x1ZGUvc21iLmgiCiMgMSAibnNzd2l0Y2gvd2luYmlu
ZGRfbnNzLmgiIDEKIyA0MCAibnNzd2l0Y2gvd2luYmluZGRfbnNzLmgiCmVudW0gd2luYmluZGRf
Y21kIHsKCgoKICAgICAgICBXSU5CSU5ERF9HRVRQV05BTV9GUk9NX1VTRVIsCiAgICAgICAgV0lO
QklORERfR0VUUFdOQU1fRlJPTV9VSUQsCiAgICAgICAgV0lOQklORERfR0VUR1JOQU1fRlJPTV9H
Uk9VUCwKICAgICAgICBXSU5CSU5ERF9HRVRHUk5BTV9GUk9NX0dJRCwKICAgICAgICBXSU5CSU5E
RF9HRVRHUk9VUFMsCgoKCiAgICAgICAgV0lOQklORERfU0VUUFdFTlQsCiAgICAgICAgV0lOQklO
RERfRU5EUFdFTlQsCiAgICAgICAgV0lOQklORERfR0VUUFdFTlQsCiAgICAgICAgV0lOQklORERf
U0VUR1JFTlQsCiAgICAgICAgV0lOQklORERfRU5ER1JFTlQsCiAgICAgICAgV0lOQklORERfR0VU
R1JFTlQsCgoKCiAgICAgICAgV0lOQklORERfUEFNX0FVVEgsCiAgICAgICAgV0lOQklORERfUEFN
X0FVVEhfQ1JBUCwKICAgICAgICBXSU5CSU5ERF9QQU1fQ0hBVVRIVE9LLAoKCgogICAgICAgIFdJ
TkJJTkREX0xJU1RfVVNFUlMsCiAgICAgICAgV0lOQklORERfTElTVF9HUk9VUFMsCiAgICAgICAg
V0lOQklORERfTElTVF9UUlVTVERPTSwKCgoKICAgICAgICBXSU5CSU5ERF9MT09LVVBTSUQsCiAg
ICAgICAgV0lOQklORERfTE9PS1VQTkFNRSwKCgoKICAgICAgICBXSU5CSU5ERF9TSURfVE9fVUlE
LAogICAgICAgIFdJTkJJTkREX1NJRF9UT19HSUQsCiAgICAgICAgV0lOQklORERfVUlEX1RPX1NJ
RCwKICAgICAgICBXSU5CSU5ERF9HSURfVE9fU0lELAoKCgogICAgICAgIFdJTkJJTkREX0NIRUNL
X01BQ0hBQ0MsCgoKCiAgICAgICAgV0lOQklORERfTlVNX0NNRFMKfTsKCgoKc3RydWN0IHdpbmJp
bmRkX3JlcXVlc3QgewogICAgICAgIGVudW0gd2luYmluZGRfY21kIGNtZDsKICAgICAgICBwaWRf
dCBwaWQ7CgogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIGZzdHJpbmcgdXNlcm5hbWU7
CiAgICAgICAgICAgICAgICBmc3RyaW5nIGdyb3VwbmFtZTsKICAgICAgICAgICAgICAgIHVpZF90
IHVpZDsKICAgICAgICAgICAgICAgIGdpZF90IGdpZDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7
CiAgICAgICAgICAgICAgICAgICAgICAgIGZzdHJpbmcgdXNlcjsKICAgICAgICAgICAgICAgICAg
ICAgICAgZnN0cmluZyBwYXNzOwogICAgICAgICAgICAgICAgfSBhdXRoOwogICAgICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaGFsWzhd
OwogICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIHVzZXI7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGZzdHJpbmcgbG1fcmVzcDsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
c2hvcnQgbG1fcmVzcF9sZW47CiAgICAgICAgICAgICAgICAgICAgICAgIGZzdHJpbmcgbnRfcmVz
cDsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgbnRfcmVzcF9sZW47CiAg
ICAgICAgICAgICAgICB9IGF1dGhfY3JhcDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAg
ICAgICAgICAgICAgICAgZnN0cmluZyB1c2VyOwogICAgICAgICAgICAgICAgICAgIGZzdHJpbmcg
b2xkcGFzczsKICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIG5ld3Bhc3M7CiAgICAgICAgICAg
ICAgICB9IGNoYXV0aHRvazsKICAgICAgICAgICAgICAgIGZzdHJpbmcgc2lkOwogICAgICAgICAg
ICAgICAgZnN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9lbnRy
aWVzOwogICAgICAgIH0gZGF0YTsKICAgICAgICBmc3RyaW5nIGRvbWFpbjsKfTsKCgoKZW51bSB3
aW5iaW5kZF9yZXN1bHQgewogICAgICAgIFdJTkJJTkREX0VSUk9SLAogICAgICAgIFdJTkJJTkRE
X09LCn07CgoKCnN0cnVjdCB3aW5iaW5kZF9yZXNwb25zZSB7CgoKCiAgICAgICAgaW50IGxlbmd0
aDsKICAgICAgICBlbnVtIHdpbmJpbmRkX3Jlc3VsdCByZXN1bHQ7CgoKCiAgICAgICAgdW5pb24g
ewoKCgogICAgICAgICAgICAgICAgc3RydWN0IHdpbmJpbmRkX3B3IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgZnN0cmluZyBwd19uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5n
IHB3X3Bhc3N3ZDsKICAgICAgICAgICAgICAgICAgICAgICAgdWlkX3QgcHdfdWlkOwogICAgICAg
ICAgICAgICAgICAgICAgICBnaWRfdCBwd19naWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGZz
dHJpbmcgcHdfZ2Vjb3M7CiAgICAgICAgICAgICAgICAgICAgICAgIGZzdHJpbmcgcHdfZGlyOwog
ICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIHB3X3NoZWxsOwogICAgICAgICAgICAgICAg
fSBwdzsKCgoKICAgICAgICAgICAgICAgIHN0cnVjdCB3aW5iaW5kZF9nciB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGZzdHJpbmcgZ3JfbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgZnN0
cmluZyBncl9wYXNzd2Q7CiAgICAgICAgICAgICAgICAgICAgICAgIGdpZF90IGdyX2dpZDsKICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9ncl9tZW07CiAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBncl9tZW1fb2ZzOwogICAgICAgICAgICAgICAgfSBncjsKCiAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgd2luYmlu
ZGRfc2lkIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnN0cmluZyBzaWQ7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGludCB0eXBlOwogICAgICAgICAgICAgICAgfSBzaWQ7CiAgICAgICAgICAg
ICAgICBzdHJ1Y3Qgd2luYmluZGRfbmFtZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZzdHJp
bmcgbmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGU7CiAgICAgICAgICAgICAg
ICB9IG5hbWU7CiAgICAgICAgICAgICAgICB1aWRfdCB1aWQ7CiAgICAgICAgICAgICAgICBnaWRf
dCBnaWQ7CiAgICAgICAgfSBkYXRhOwoKCgogICAgICAgIHZvaWQgKmV4dHJhX2RhdGE7Cn07CiMg
MTY2NSAiaW5jbHVkZS9zbWIuaCIgMgojIDEgImluY2x1ZGUvc21iX2FjbHMuaCIgMQojIDI1ICJp
bmNsdWRlL3NtYl9hY2xzLmgiCiMgMSAiaW5jbHVkZS9pbmNsdWRlcy5oIiAxCiMgMjYgImluY2x1
ZGUvc21iX2FjbHMuaCIgMgojIDI2NCAiaW5jbHVkZS9zbWJfYWNscy5oIgp0eXBlZGVmIHN0cnVj
dCBTTUJfQUNMX1QgewogICAgICAgIGludCBkdW1teTsKfSAqU01CX0FDTF9UOwoKdHlwZWRlZiBz
dHJ1Y3QgU01CX0FDTF9FTlRSWV9UIHsKICAgICAgICBpbnQgZHVtbXk7Cn0gKlNNQl9BQ0xfRU5U
UllfVDsKIyAxNjY2ICJpbmNsdWRlL3NtYi5oIiAyCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg
IHNpemVfdCAoKmRpcmVjdCkodm9pZCAqY2QsIGNoYXIgKippbmJ1Ziwgc2l6ZV90ICppbmJ5dGVz
bGVmdCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipvdXRidWYsIHNpemVfdCAqb3V0
Ynl0ZXNsZWZ0KTsKICAgICAgICBzaXplX3QgKCpwdWxsKSh2b2lkICpjZCwgY2hhciAqKmluYnVm
LCBzaXplX3QgKmluYnl0ZXNsZWZ0LAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipvdXRi
dWYsIHNpemVfdCAqb3V0Ynl0ZXNsZWZ0KTsKICAgICAgICBzaXplX3QgKCpwdXNoKSh2b2lkICpj
ZCwgY2hhciAqKmluYnVmLCBzaXplX3QgKmluYnl0ZXNsZWZ0LAogICAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKipvdXRidWYsIHNpemVfdCAqb3V0Ynl0ZXNsZWZ0KTsKICAgICAgICB2b2lkICpj
ZF9kaXJlY3QsICpjZF9wdWxsLCAqY2RfcHVzaDsKICAgICAgICBjaGFyICpmcm9tX25hbWUsICp0
b19uYW1lOwp9ICpzbWJfaWNvbnZfdDsKIyAyOSAiaW5jbHVkZS91dGlsX2xpc3QuaCIgMgoKCgoK
c3RydWN0IF9saXN0X25vZGU7CgoKCgpzdHJ1Y3QgX2xpc3Rfbm9kZSB7CgogICAgICAgIHZvaWQg
KmRhdGE7CiAgICAgICAgdW5zaWduZWQgY2hhciB0eXBlOwoKICAgICAgICBzdHJ1Y3QgX2xpc3Rf
bm9kZSAqbmV4dDsKCn07CgoKCgp0eXBlZGVmIHN0cnVjdCBfZ2VuZXJpY19saXN0IHsKCiAgICAg
ICAgc3RydWN0IF9saXN0X25vZGUgKmhlYWQsICp0YWlsOwogICAgICAgIHVuc2lnbmVkIGludCBs
ZW5ndGg7CiAgICAgICAgQk9PTCBpbml0aWFsaXplZDsKCn0gR0VORVJJQ19MSVNUOwojIDY4OCAi
aW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9jaGFyc2V0LmgiIDEKIyAyMyAiaW5j
bHVkZS9jaGFyc2V0LmgiCnR5cGVkZWYgZW51bSB7Q0hfVUNTMj0wLCBDSF9VTklYPTEsIENIX0RJ
U1BMQVk9MiwgQ0hfRE9TPTN9IGNoYXJzZXRfdDsKIyA2ODkgImluY2x1ZGUvaW5jbHVkZXMuaCIg
MgojIDEgImluY2x1ZGUvZHluY29uZmlnLmgiIDEKIyAyNiAiaW5jbHVkZS9keW5jb25maWcuaCIK
ZXh0ZXJuIGNoYXIgY29uc3QgKmR5bl9TQklORElSLAogICAgICAgICpkeW5fQklORElSLAogICAg
ICAgICpkeW5fU1dBVERJUjsKCmV4dGVybiBwc3RyaW5nIGR5bl9DT05GSUdGSUxFOwpleHRlcm4g
cHN0cmluZyBkeW5fTE9HRklMRUJBU0UsIGR5bl9MTUhPU1RTRklMRTsKZXh0ZXJuIHBzdHJpbmcg
ZHluX0xJQkRJUjsKZXh0ZXJuIGNvbnN0IHBzdHJpbmcgZHluX0xPQ0tESVI7CmV4dGVybiBjb25z
dCBwc3RyaW5nIGR5bl9EUklWRVJGSUxFOwpleHRlcm4gY29uc3QgcHN0cmluZyBkeW5fU01CX1BB
U1NXRF9GSUxFOwpleHRlcm4gY29uc3QgcHN0cmluZyBkeW5fUFJJVkFURV9ESVI7CiMgNjkwICJp
bmNsdWRlL2luY2x1ZGVzLmgiIDIKCiMgMSAiaW5jbHVkZS91dGlsX2dldGVudC5oIiAxCiMgMjkg
ImluY2x1ZGUvdXRpbF9nZXRlbnQuaCIKc3RydWN0IHN5c19ncmVudCB7CiAgICAgICAgY2hhciAq
Z3JfbmFtZTsKICAgICAgICBjaGFyICpncl9wYXNzd2Q7CiAgICAgICAgZ2lkX3QgZ3JfZ2lkOwog
ICAgICAgIGNoYXIgKipncl9tZW07CiAgICAgICAgc3RydWN0IHN5c19ncmVudCAqbmV4dDsKfTsK
CgoKCgpzdHJ1Y3Qgc3lzX3B3ZW50IHsKICAgICAgICBjaGFyICpwd19uYW1lOwogICAgICAgIGNo
YXIgKnB3X3Bhc3N3ZDsKICAgICAgICB1aWRfdCBwd191aWQ7CiAgICAgICAgZ2lkX3QgcHdfZ2lk
OwogICAgICAgIGNoYXIgKnB3X2dlY29zOwogICAgICAgIGNoYXIgKnB3X2RpcjsKICAgICAgICBj
aGFyICpwd19zaGVsbDsKICAgICAgICBzdHJ1Y3Qgc3lzX3B3ZW50ICpuZXh0Owp9OwoKCgoKCgpz
dHJ1Y3Qgc3lzX3VzZXJsaXN0IHsKICAgICAgICBzdHJ1Y3Qgc3lzX3VzZXJsaXN0ICpuZXh0LCAq
cHJldjsKICAgICAgICBjaGFyICp1bml4X25hbWU7Cn07CiMgNjkyICJpbmNsdWRlL2luY2x1ZGVz
LmgiIDIKCgojIDEgInViaXF4L3ViaV9DYWNoZS5oIiAxCiMgMTE2ICJ1YmlxeC91YmlfQ2FjaGUu
aCIKIyAxICJ1YmlxeC91YmlfU3BsYXlUcmVlLmgiIDEKIyAxNTcgInViaXF4L3ViaV9TcGxheVRy
ZWUuaCIKIyAxICJ1YmlxeC91YmlfQmluVHJlZS5oIiAxCiMgMjM4ICJ1YmlxeC91YmlfQmluVHJl
ZS5oIgp0eXBlZGVmIGVudW0gewogIHViaV90ckxUID0gMSwKICB1YmlfdHJMRSwKICB1YmlfdHJF
USwKICB1YmlfdHJHRSwKICB1YmlfdHJHVAogIH0gdWJpX3RyQ29tcE9wczsKIyAzMTMgInViaXF4
L3ViaV9CaW5UcmVlLmgiCnR5cGVkZWYgdW5zaWduZWQgY2hhciB1YmlfdHJCb29sOwoKdHlwZWRl
ZiB2b2lkICp1YmlfYnRJdGVtUHRyOwojIDM0MCAidWJpcXgvdWJpX0JpblRyZWUuaCIKdHlwZWRl
ZiBzdHJ1Y3QgdWJpX2J0Tm9kZVN0cnVjdCB7CiAgc3RydWN0IHViaV9idE5vZGVTdHJ1Y3QgKkxp
bmtbIDMgXTsKICBjaGFyIGdlbmRlcjsKICBjaGFyIGJhbGFuY2U7CiAgfSB1YmlfYnROb2RlOwoK
dHlwZWRlZiB1YmlfYnROb2RlICp1YmlfYnROb2RlUHRyOwojIDM3MyAidWJpcXgvdWJpX0JpblRy
ZWUuaCIKdHlwZWRlZiBpbnQgKCp1YmlfYnRDb21wRnVuYykoIHViaV9idEl0ZW1QdHIsIHViaV9i
dE5vZGVQdHIgKTsKCnR5cGVkZWYgdm9pZCAoKnViaV9idEFjdGlvblJ0bikoIHViaV9idE5vZGVQ
dHIsIHZvaWQgKiApOwoKdHlwZWRlZiB2b2lkICgqdWJpX2J0S2lsbE5vZGVSdG4pKCB1YmlfYnRO
b2RlUHRyICk7CiMgNDAxICJ1YmlxeC91YmlfQmluVHJlZS5oIgp0eXBlZGVmIHN0cnVjdCB7CiAg
dWJpX2J0Tm9kZVB0ciByb290OwogIHViaV9idENvbXBGdW5jIGNtcDsKICB1bnNpZ25lZCBsb25n
IGNvdW50OwogIGNoYXIgZmxhZ3M7CiAgfSB1YmlfYnRSb290OwoKdHlwZWRlZiB1YmlfYnRSb290
ICp1YmlfYnRSb290UHRyOwoKCgoKCgpsb25nIHViaV9idFNnbiggbG9uZyB4ICk7CiMgNDM0ICJ1
YmlxeC91YmlfQmluVHJlZS5oIgp1YmlfYnROb2RlUHRyIHViaV9idEluaXROb2RlKCB1YmlfYnRO
b2RlUHRyIE5vZGVQdHIgKTsKIyA0NDQgInViaXF4L3ViaV9CaW5UcmVlLmgiCnViaV9idFJvb3RQ
dHIgdWJpX2J0SW5pdFRyZWUoIHViaV9idFJvb3RQdHIgUm9vdFB0ciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHViaV9idENvbXBGdW5jIENvbXBGdW5jLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciBGbGFncyApOwojIDQ2OCAidWJpcXgvdWJpX0JpblRyZWUuaCIK
dWJpX3RyQm9vbCB1YmlfYnRJbnNlcnQoIHViaV9idFJvb3RQdHIgUm9vdFB0ciwKICAgICAgICAg
ICAgICAgICAgICAgICAgIHViaV9idE5vZGVQdHIgTmV3Tm9kZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgIHViaV9idEl0ZW1QdHIgSXRlbVB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgIHVi
aV9idE5vZGVQdHIgKk9sZE5vZGUgKTsKIyA1MTcgInViaXF4L3ViaV9CaW5UcmVlLmgiCnViaV9i
dE5vZGVQdHIgdWJpX2J0UmVtb3ZlKCB1YmlfYnRSb290UHRyIFJvb3RQdHIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1YmlfYnROb2RlUHRyIERlYWROb2RlICk7CiMgNTM0ICJ1YmlxeC91
YmlfQmluVHJlZS5oIgp1YmlfYnROb2RlUHRyIHViaV9idExvY2F0ZSggdWJpX2J0Um9vdFB0ciBS
b290UHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWJpX2J0SXRlbVB0ciBGaW5kTWUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YmlfdHJDb21wT3BzIENvbXBPcCApOwojIDU4
NiAidWJpcXgvdWJpX0JpblRyZWUuaCIKdWJpX2J0Tm9kZVB0ciB1YmlfYnRGaW5kKCB1YmlfYnRS
b290UHRyIFJvb3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWJpX2J0SXRlbVB0ciBG
aW5kTWUgKTsKIyA2MDcgInViaXF4L3ViaV9CaW5UcmVlLmgiCnViaV9idE5vZGVQdHIgdWJpX2J0
TmV4dCggdWJpX2J0Tm9kZVB0ciBQICk7CiMgNjE3ICJ1YmlxeC91YmlfQmluVHJlZS5oIgp1Ymlf
YnROb2RlUHRyIHViaV9idFByZXYoIHViaV9idE5vZGVQdHIgUCApOwojIDYyNyAidWJpcXgvdWJp
X0JpblRyZWUuaCIKdWJpX2J0Tm9kZVB0ciB1YmlfYnRGaXJzdCggdWJpX2J0Tm9kZVB0ciBQICk7
CiMgNjM5ICJ1YmlxeC91YmlfQmluVHJlZS5oIgp1YmlfYnROb2RlUHRyIHViaV9idExhc3QoIHVi
aV9idE5vZGVQdHIgUCApOwojIDY1MSAidWJpcXgvdWJpX0JpblRyZWUuaCIKdWJpX2J0Tm9kZVB0
ciB1YmlfYnRGaXJzdE9mKCB1YmlfYnRSb290UHRyIFJvb3RQdHIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWJpX2J0SXRlbVB0ciBNYXRjaE1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHViaV9idE5vZGVQdHIgcCApOwojIDY3NCAidWJpcXgvdWJpX0JpblRyZWUuaCIKdWJp
X2J0Tm9kZVB0ciB1YmlfYnRMYXN0T2YoIHViaV9idFJvb3RQdHIgUm9vdFB0ciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHViaV9idEl0ZW1QdHIgTWF0Y2hNZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHViaV9idE5vZGVQdHIgcCApOwojIDY5NyAidWJpcXgvdWJpX0JpblRyZWUu
aCIKdW5zaWduZWQgbG9uZyB1YmlfYnRUcmF2ZXJzZSggdWJpX2J0Um9vdFB0ciBSb290UHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YmlfYnRBY3Rpb25SdG4gRWFjaE5vZGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKlVzZXJEYXRhICk7CiMgNzE5ICJ1Ymlx
eC91YmlfQmluVHJlZS5oIgp1bnNpZ25lZCBsb25nIHViaV9idEtpbGxUcmVlKCB1YmlfYnRSb290
UHRyIFJvb3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHViaV9idEtpbGxOb2Rl
UnRuIEZyZWVOb2RlICk7CiMgNzQ0ICJ1YmlxeC91YmlfQmluVHJlZS5oIgp1YmlfYnROb2RlUHRy
IHViaV9idExlYWZOb2RlKCB1YmlfYnROb2RlUHRyIGxlYWRlciApOwojIDc3MyAidWJpcXgvdWJp
X0JpblRyZWUuaCIKaW50IHViaV9idE1vZHVsZUlEKCBpbnQgc2l6ZSwgY2hhciAqbGlzdFtdICk7
CiMgMTU4ICJ1YmlxeC91YmlfU3BsYXlUcmVlLmgiIDIKCgoKCgp1YmlfdHJCb29sIHViaV9zcHRJ
bnNlcnQoIHViaV9idFJvb3RQdHIgUm9vdFB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICB1
YmlfYnROb2RlUHRyIE5ld05vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWJpX2J0SXRl
bVB0ciBJdGVtUHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgIHViaV9idE5vZGVQdHIgKk9s
ZE5vZGUgKTsKIyAyMTIgInViaXF4L3ViaV9TcGxheVRyZWUuaCIKdWJpX2J0Tm9kZVB0ciB1Ymlf
c3B0UmVtb3ZlKCB1YmlfYnRSb290UHRyIFJvb3RQdHIsIHViaV9idE5vZGVQdHIgRGVhZE5vZGUg
KTsKIyAyMjggInViaXF4L3ViaV9TcGxheVRyZWUuaCIKdWJpX2J0Tm9kZVB0ciB1Ymlfc3B0TG9j
YXRlKCB1YmlfYnRSb290UHRyIFJvb3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWJpX2J0SXRlbVB0ciBGaW5kTWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWJpX3Ry
Q29tcE9wcyBDb21wT3AgKTsKIyAyODAgInViaXF4L3ViaV9TcGxheVRyZWUuaCIKdWJpX2J0Tm9k
ZVB0ciB1Ymlfc3B0RmluZCggdWJpX2J0Um9vdFB0ciBSb290UHRyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICB1YmlfYnRJdGVtUHRyIEZpbmRNZSApOwojIDMwMSAidWJpcXgvdWJpX1NwbGF5
VHJlZS5oIgp2b2lkIHViaV9zcHRTcGxheSggdWJpX2J0Um9vdFB0ciBSb290UHRyLAogICAgICAg
ICAgICAgICAgICAgdWJpX2J0Tm9kZVB0ciBTcGxheU1lICk7CiMgMzIzICJ1YmlxeC91YmlfU3Bs
YXlUcmVlLmgiCmludCB1Ymlfc3B0TW9kdWxlSUQoIGludCBzaXplLCBjaGFyICpsaXN0W10gKTsK
IyAxMTcgInViaXF4L3ViaV9DYWNoZS5oIiAyCiMgMTM2ICJ1YmlxeC91YmlfQ2FjaGUuaCIKdHlw
ZWRlZiBzdHJ1Y3QKICB7CiAgdWJpX2J0Um9vdCByb290OwogIHViaV9idEtpbGxOb2RlUnRuIGZy
ZWVfZnVuYzsKICB1bnNpZ25lZCBsb25nIG1heF9lbnRyaWVzOwogIHVuc2lnbmVkIGxvbmcgbWF4
X21lbW9yeTsKICB1bnNpZ25lZCBsb25nIG1lbV91c2VkOwogIHVuc2lnbmVkIHNob3J0IGNhY2hl
X2hpdHM7CiAgdW5zaWduZWQgc2hvcnQgY2FjaGVfdHJ5czsKICB9IHViaV9jYWNoZVJvb3Q7Cgp0
eXBlZGVmIHViaV9jYWNoZVJvb3QgKnViaV9jYWNoZVJvb3RQdHI7CgoKdHlwZWRlZiBzdHJ1Y3QK
ICB7CiAgdWJpX2J0Tm9kZSBub2RlOwogIHVuc2lnbmVkIGxvbmcgZW50cnlfc2l6ZTsKCgogIH0g
dWJpX2NhY2hlRW50cnk7Cgp0eXBlZGVmIHViaV9jYWNoZUVudHJ5ICp1YmlfY2FjaGVFbnRyeVB0
cjsKIyAxODYgInViaXF4L3ViaV9DYWNoZS5oIgp1YmlfY2FjaGVSb290UHRyIHViaV9jYWNoZUlu
aXQoIHViaV9jYWNoZVJvb3RQdHIgQ2FjaGVQdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWJpX2J0Q29tcEZ1bmMgQ29tcEZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWJpX2J0S2lsbE5vZGVSdG4gRnJlZUZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgbG9uZyBNYXhFbnRyaWVzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgTWF4TWVtb3J5ICk7CiMgMjM3ICJ1YmlxeC91YmlfQ2Fj
aGUuaCIKdWJpX2NhY2hlUm9vdFB0ciB1YmlfY2FjaGVDbGVhciggdWJpX2NhY2hlUm9vdFB0ciBD
YWNoZVB0ciApOwojIDI0OSAidWJpcXgvdWJpX0NhY2hlLmgiCnZvaWQgdWJpX2NhY2hlUHV0KCB1
YmlfY2FjaGVSb290UHRyIENhY2hlUHRyLAogICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u
ZyBFbnRyeVNpemUsCiAgICAgICAgICAgICAgICAgICB1YmlfY2FjaGVFbnRyeVB0ciBFbnRyeVB0
ciwKICAgICAgICAgICAgICAgICAgIHViaV9idEl0ZW1QdHIgS2V5ICk7CiMgMjg5ICJ1YmlxeC91
YmlfQ2FjaGUuaCIKdWJpX2NhY2hlRW50cnlQdHIgdWJpX2NhY2hlR2V0KCB1YmlfY2FjaGVSb290
UHRyIENhY2hlUHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHViaV9idEl0ZW1Q
dHIgRmluZE1lICk7CiMgMzExICJ1YmlxeC91YmlfQ2FjaGUuaCIKdWJpX3RyQm9vbCB1YmlfY2Fj
aGVEZWxldGUoIHViaV9jYWNoZVJvb3RQdHIgQ2FjaGVQdHIsIHViaV9idEl0ZW1QdHIgRGVsZXRl
TWUgKTsKIyAzMjMgInViaXF4L3ViaV9DYWNoZS5oIgp1YmlfdHJCb29sIHViaV9jYWNoZVJlZHVj
ZSggdWJpX2NhY2hlUm9vdFB0ciBDYWNoZVB0ciwgdW5zaWduZWQgbG9uZyBjb3VudCApOwojIDM0
MyAidWJpcXgvdWJpX0NhY2hlLmgiCnVuc2lnbmVkIGxvbmcgdWJpX2NhY2hlU2V0TWF4RW50cmll
cyggdWJpX2NhY2hlUm9vdFB0ciBDYWNoZVB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsb25nIE5ld1NpemUgKTsKIyAzNjEgInViaXF4L3ViaV9DYWNo
ZS5oIgp1bnNpZ25lZCBsb25nIHViaV9jYWNoZVNldE1heE1lbW9yeSggdWJpX2NhY2hlUm9vdFB0
ciBDYWNoZVB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgTmV3U2l6ZSApOwojIDM3OSAidWJpcXgvdWJpX0NhY2hlLmgiCmludCB1YmlfY2FjaGVI
aXRSYXRpbyggdWJpX2NhY2hlUm9vdFB0ciBDYWNoZVB0ciApOwojIDY5NSAiaW5jbHVkZS9pbmNs
dWRlcy5oIiAyCgoKIyAxICJ1YmlxeC9kZWJ1Z3BhcnNlLmgiIDEKIyA0NyAidWJpcXgvZGVidWdw
YXJzZS5oIgp0eXBlZGVmIGVudW0KICB7CiAgZGJnX251bGwgPSAwLAogIGRiZ19pZ25vcmUsCiAg
ZGJnX2hlYWRlciwKICBkYmdfdGltZXN0YW1wLAogIGRiZ19sZXZlbCwKICBkYmdfc291cmNlZmls
ZSwKICBkYmdfZnVuY3Rpb24sCiAgZGJnX2xpbmVubywKICBkYmdfbWVzc2FnZSwKICBkYmdfZW9m
CiAgfSBkYmdfVG9rZW47CgoKCgoKIGNoYXIgKmRiZ190b2tlbjJzdHJpbmcoIGRiZ19Ub2tlbiB0
b2sgKTsKIyA4MCAidWJpcXgvZGVidWdwYXJzZS5oIgogZGJnX1Rva2VuIGRiZ19jaGFyMnRva2Vu
KCBkYmdfVG9rZW4gKnN0YXRlLCBpbnQgYyApOwojIDY5OCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAy
CgojIDEgImluY2x1ZGUvdmVyc2lvbi5oIiAxCiMgNzAwICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIK
CiMgMSAic21id3JhcHBlci9zbWJ3LmgiIDEKIyAzNCAic21id3JhcHBlci9zbWJ3LmgiCnN0cnVj
dCBzbWJ3X3NlcnZlciB7CiAgICAgICAgc3RydWN0IHNtYndfc2VydmVyICpuZXh0LCAqcHJldjsK
ICAgICAgICBzdHJ1Y3QgY2xpX3N0YXRlIGNsaTsKICAgICAgICBjaGFyICpzZXJ2ZXJfbmFtZTsK
ICAgICAgICBjaGFyICpzaGFyZV9uYW1lOwogICAgICAgIGNoYXIgKndvcmtncm91cDsKICAgICAg
ICBjaGFyICp1c2VybmFtZTsKICAgICAgICBkZXZfdCBkZXY7CiAgICAgICAgQk9PTCBub19wYXRo
aW5mbzI7Cn07CgpzdHJ1Y3Qgc21id19maWxlZGVzIHsKICAgICAgICBpbnQgY2xpX2ZkOwogICAg
ICAgIGludCByZWZfY291bnQ7CiAgICAgICAgY2hhciAqZm5hbWU7CiAgICAgICAgb2ZmX3Qgb2Zm
c2V0Owp9OwoKc3RydWN0IHNtYndfZmlsZSB7CiAgICAgICAgc3RydWN0IHNtYndfZmlsZSAqbmV4
dCwgKnByZXY7CiAgICAgICAgc3RydWN0IHNtYndfZmlsZWRlcyAqZjsKICAgICAgICBpbnQgZmQ7
CiAgICAgICAgc3RydWN0IHNtYndfc2VydmVyICpzcnY7Cn07CgpzdHJ1Y3Qgc21id19kaXIgewog
ICAgICAgIHN0cnVjdCBzbWJ3X2RpciAqbmV4dCwgKnByZXY7CiAgICAgICAgaW50IGZkOwogICAg
ICAgIGludCBvZmZzZXQsIGNvdW50LCBtYWxsb2NlZDsKICAgICAgICBzdHJ1Y3Qgc21id19zZXJ2
ZXIgKnNydjsKICAgICAgICBzdHJ1Y3QgZmlsZV9pbmZvICpsaXN0OwogICAgICAgIGNoYXIgKnBh
dGg7Cn07Cgp0eXBlZGVmIHZvaWQgKCpzbWJ3X2dldF9hdXRoX2RhdGFfZm4pKGNoYXIgKnNlcnZl
ciwgY2hhciAqc2hhcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
ciAqKndvcmtncm91cCwgY2hhciAqKnVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKipwYXNzd29yZCk7CiMgNzAyICJpbmNsdWRlL2luY2x1ZGVzLmgi
IDIKIyAxICJpbmNsdWRlL25hbWVzZXJ2LmgiIDEKIyAzOCAiaW5jbHVkZS9uYW1lc2Vydi5oIgpl
bnVtIG5ldGJpb3NfcmVwbHlfdHlwZV9jb2RlIHsgTk1CX1FVRVJZLCBOTUJfU1RBVFVTLCBOTUJf
UkVHLCBOTUJfUkVHX1JFRlJFU0gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTUJf
UkVMLCBOTUJfV0FJVF9BQ0ssIE5NQl9NVUxUSUhPTUVEX1JFRywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdJTlNfUkVHLCBXSU5TX1FVRVJZIH07CiMgMTQyICJpbmNsdWRlL25hbWVz
ZXJ2LmgiCmVudW0gbmFtZV9zb3VyY2Uge0xNSE9TVFNfTkFNRSwgUkVHSVNURVJfTkFNRSwgU0VM
Rl9OQU1FLCBETlNfTkFNRSwKICAgICAgICAgICAgICAgICAgRE5TRkFJTF9OQU1FLCBQRVJNQU5F
TlRfTkFNRSwgV0lOU19QUk9YWV9OQU1FfTsKZW51bSBub2RlX3R5cGUge0JfTk9ERT0wLCBQX05P
REU9MSwgTV9OT0RFPTIsIE5CRERfTk9ERT0zfTsKZW51bSBwYWNrZXRfdHlwZSB7Tk1CX1BBQ0tF
VCwgREdSQU1fUEFDS0VUfTsKCmVudW0gbWFzdGVyX3N0YXRlCnsKICBNU1RfTk9ORSwKICBNU1Rf
UE9URU5USUFMLAogIE1TVF9CQUNLVVAsCiAgTVNUX01TQiwKICBNU1RfQlJPV1NFUiwKICBNU1Rf
VU5CRUNPTUlOR19NQVNURVIKfTsKCmVudW0gZG9tYWluX3N0YXRlCnsKICBET01BSU5fTk9ORSwK
ICBET01BSU5fV0FJVCwKICBET01BSU5fTVNUCn07CgplbnVtIGxvZ29uX3N0YXRlCnsKICBMT0dP
Tl9OT05FLAogIExPR09OX1dBSVQsCiAgTE9HT05fU1JWCn07CgpzdHJ1Y3Qgc3VibmV0X3JlY29y
ZDsKCnN0cnVjdCBubWJfZGF0YQp7CiAgdW5zaWduZWQgc2hvcnQgbmJfZmxhZ3M7CiAgaW50IG51
bV9pcHM7CiAgc3RydWN0IGluX2FkZHIgKmlwOwoKICBlbnVtIG5hbWVfc291cmNlIHNvdXJjZTsK
CiAgdGltZV90IGRlYXRoX3RpbWU7CiAgdGltZV90IHJlZnJlc2hfdGltZTsKfTsKCgpzdHJ1Y3Qg
bmFtZV9yZWNvcmQKICB7CiAgdWJpX2J0Tm9kZSBub2RlWzFdOwogIHN0cnVjdCBzdWJuZXRfcmVj
b3JkICpzdWJuZXQ7CiAgc3RydWN0IG5tYl9uYW1lIG5hbWU7CiAgc3RydWN0IG5tYl9kYXRhIGRh
dGE7CiAgfTsKCgpzdHJ1Y3QgYnJvd3NlX2NhY2hlX3JlY29yZAogIHsKICB1YmlfZGxOb2RlIG5v
ZGVbMV07CiAgcHN0cmluZyBsbWJfbmFtZTsKICBwc3RyaW5nIHdvcmtfZ3JvdXA7CiAgc3RydWN0
IGluX2FkZHIgaXA7CiAgdGltZV90IHN5bmNfdGltZTsKICB0aW1lX3QgZGVhdGhfdGltZTsKICB9
OwoKCgoKc3RydWN0IHNlcnZlcl9yZWNvcmQKewogIHN0cnVjdCBzZXJ2ZXJfcmVjb3JkICpuZXh0
OwogIHN0cnVjdCBzZXJ2ZXJfcmVjb3JkICpwcmV2OwoKICBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAq
c3VibmV0OwoKICBzdHJ1Y3Qgc2VydmVyX2luZm9fc3RydWN0IHNlcnY7CiAgdGltZV90IGRlYXRo
X3RpbWU7Cn07CgoKc3RydWN0IHdvcmtfcmVjb3JkCnsKICBzdHJ1Y3Qgd29ya19yZWNvcmQgKm5l
eHQ7CiAgc3RydWN0IHdvcmtfcmVjb3JkICpwcmV2OwoKICBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAq
c3VibmV0OwoKICBzdHJ1Y3Qgc2VydmVyX3JlY29yZCAqc2VydmVybGlzdDsKCgogIGVudW0gbWFz
dGVyX3N0YXRlIG1zdF9zdGF0ZTsKCgogIGVudW0gZG9tYWluX3N0YXRlIGRvbV9zdGF0ZTsKCgog
IGVudW0gbG9nb25fc3RhdGUgbG9nX3N0YXRlOwoKCiAgZnN0cmluZyB3b3JrX2dyb3VwOwogIGlu
dCB0b2tlbjsKICBmc3RyaW5nIGxvY2FsX21hc3Rlcl9icm93c2VyX25hbWU7CgoKICB0aW1lX3Qg
bGFzdGFubm91bmNlX3RpbWU7CiAgaW50IGFubm91bmNlX2ludGVydmFsOwogIEJPT0wgbmVlZGFu
bm91bmNlOwoKCiAgdGltZV90IGRlYXRoX3RpbWU7CgoKICBCT09MIFJ1bm5pbmdFbGVjdGlvbjsK
ICBCT09MIG5lZWRlbGVjdGlvbjsKICBpbnQgRWxlY3Rpb25Db3VudDsKICB1bnNpZ25lZCBpbnQg
RWxlY3Rpb25Dcml0ZXJpb247CgoKICBzdHJ1Y3Qgbm1iX25hbWUgZG1iX25hbWU7CiAgc3RydWN0
IGluX2FkZHIgZG1iX2FkZHI7Cn07CgoKc3RydWN0IHVzZXJkYXRhX3N0cnVjdDsKCnR5cGVkZWYg
c3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqICgqdXNlcmRhdGFfY29weV9mbikoc3RydWN0IHVzZXJk
YXRhX3N0cnVjdCAqKTsKdHlwZWRlZiB2b2lkICgqdXNlcmRhdGFfZnJlZV9mbikoc3RydWN0IHVz
ZXJkYXRhX3N0cnVjdCAqKTsKCgoKc3RydWN0IHVzZXJkYXRhX3N0cnVjdCB7CiAgdXNlcmRhdGFf
Y29weV9mbiBjb3B5X2ZuOwogIHVzZXJkYXRhX2ZyZWVfZm4gZnJlZV9mbjsKICB1bnNpZ25lZCBp
bnQgdXNlcmRhdGFfbGVuOwogIGNoYXIgZGF0YVsxNl07Cn07CgpzdHJ1Y3QgcmVzcG9uc2VfcmVj
b3JkOwpzdHJ1Y3QgcGFja2V0X3N0cnVjdDsKc3RydWN0IHJlc19yZWM7CgoKdHlwZWRlZiB2b2lk
ICgqcmVzcG9uc2VfZnVuY3Rpb24pKHN0cnVjdCBzdWJuZXRfcmVjb3JkICosIHN0cnVjdCByZXNw
b25zZV9yZWNvcmQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBw
YWNrZXRfc3RydWN0ICopOwoKCnR5cGVkZWYgdm9pZCAoKnRpbWVvdXRfcmVzcG9uc2VfZnVuY3Rp
b24pKHN0cnVjdCBzdWJuZXRfcmVjb3JkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCByZXNwb25zZV9yZWNvcmQgKik7CgoKCnR5cGVkZWYgdm9pZCAo
KnN1Y2Nlc3NfZnVuY3Rpb24pKHN0cnVjdCBzdWJuZXRfcmVjb3JkICosIHN0cnVjdCB1c2VyZGF0
YV9zdHJ1Y3QgKiwgLi4uKTsKCgoKdHlwZWRlZiB2b2lkICgqZmFpbF9mdW5jdGlvbikoc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKiwgc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqLCAuLi4pOwoKCgoKdHlw
ZWRlZiB2b2lkICgqcmVnaXN0ZXJfbmFtZV9zdWNjZXNzX2Z1bmN0aW9uKSggc3RydWN0IHN1Ym5l
dF9yZWNvcmQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX2FkZHIpOwp0eXBlZGVm
IHZvaWQgKCpyZWdpc3Rlcl9uYW1lX2ZhaWxfZnVuY3Rpb24pKCBzdHJ1Y3Qgc3VibmV0X3JlY29y
ZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
cmVzcG9uc2VfcmVjb3JkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBubWJfbmFtZSAqKTsKCnR5cGVkZWYgdm9pZCAoKnJlbGVhc2VfbmFtZV9z
dWNjZXNzX2Z1bmN0aW9uKSggc3RydWN0IHN1Ym5ldF9yZWNvcmQgKiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0ICos
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5t
Yl9uYW1lICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGluX2FkZHIpOwp0eXBlZGVmIHZvaWQgKCpyZWxlYXNlX25hbWVfZmFpbF9mdW5jdGlv
bikoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBubWJfbmFtZSAqKTsKCnR5cGVkZWYg
dm9pZCAoKnJlZnJlc2hfbmFtZV9zdWNjZXNzX2Z1bmN0aW9uKSggc3RydWN0IHN1Ym5ldF9yZWNv
cmQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3QgdXNlcmRhdGFfc3RydWN0ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9hZGRyKTsKdHlwZWRlZiB2b2lkICgqcmVm
cmVzaF9uYW1lX2ZhaWxfZnVuY3Rpb24pKCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXNwb25zZV9yZWNv
cmQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
bm1iX25hbWUgKik7Cgp0eXBlZGVmIHZvaWQgKCpxdWVyeV9uYW1lX3N1Y2Nlc3NfZnVuY3Rpb24p
KCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0ICosCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBubWJfbmFtZSAqLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc19yZWMgKmFu
c3dlcnMpOwoKdHlwZWRlZiB2b2lkICgqcXVlcnlfbmFtZV9mYWlsX2Z1bmN0aW9uKSggc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50KTsKCnR5cGVkZWYgdm9pZCAoKm5vZGVfc3RhdHVzX3N1Y2Nl
c3NfZnVuY3Rpb24pKCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc19yZWMg
KiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBp
bl9hZGRyKTsKdHlwZWRlZiB2b2lkICgqbm9kZV9zdGF0dXNfZmFpbF9mdW5jdGlvbikoIHN0cnVj
dCBzdWJuZXRfcmVjb3JkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgcmVzcG9uc2VfcmVjb3JkICopOwoKCgpzdHJ1Y3QgcmVzcG9uc2VfcmVjb3Jk
CnsKICBzdHJ1Y3QgcmVzcG9uc2VfcmVjb3JkICpuZXh0OwogIHN0cnVjdCByZXNwb25zZV9yZWNv
cmQgKnByZXY7CgogIHVuc2lnbmVkIHNob3J0IHJlc3BvbnNlX2lkOwoKCiAgcmVzcG9uc2VfZnVu
Y3Rpb24gcmVzcF9mbjsKICB0aW1lb3V0X3Jlc3BvbnNlX2Z1bmN0aW9uIHRpbWVvdXRfZm47CgoK
ICBzdWNjZXNzX2Z1bmN0aW9uIHN1Y2Nlc3NfZm47CiAgZmFpbF9mdW5jdGlvbiBmYWlsX2ZuOwoK
ICBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcGFja2V0OwoKICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0
ICp1c2VyZGF0YTsKCiAgaW50IG51bV9tc2dzOwoKICB0aW1lX3QgcmVwZWF0X3RpbWU7CiAgdGlt
ZV90IHJlcGVhdF9pbnRlcnZhbDsKICBpbnQgcmVwZWF0X2NvdW50OwoKCiAgQk9PTCBpbl9leHBp
cmF0aW9uX3Byb2Nlc3Npbmc7Cn07CiMgMzg1ICJpbmNsdWRlL25hbWVzZXJ2LmgiCmVudW0gc3Vi
bmV0X3R5cGUgewogIE5PUk1BTF9TVUJORVQgPSAwLAogIFVOSUNBU1RfU1VCTkVUID0gMSwKICBS
RU1PVEVfQlJPQURDQVNUX1NVQk5FVCA9IDIsCiAgV0lOU19TRVJWRVJfU1VCTkVUID0gMwp9OwoK
c3RydWN0IHN1Ym5ldF9yZWNvcmQKewogIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpuZXh0OwogIHN0
cnVjdCBzdWJuZXRfcmVjb3JkICpwcmV2OwoKICBjaGFyICpzdWJuZXRfbmFtZTsKICBlbnVtIHN1
Ym5ldF90eXBlIHR5cGU7CgogIHN0cnVjdCB3b3JrX3JlY29yZCAqd29ya2dyb3VwbGlzdDsKICB1
YmlfYnRSb290IG5hbWVsaXN0WzFdOwogIHN0cnVjdCByZXNwb25zZV9yZWNvcmQgKnJlc3BvbnNl
bGlzdDsKCiAgQk9PTCBuYW1lbGlzdF9jaGFuZ2VkOwogIEJPT0wgd29ya19jaGFuZ2VkOwoKICBz
dHJ1Y3QgaW5fYWRkciBiY2FzdF9pcDsKICBzdHJ1Y3QgaW5fYWRkciBtYXNrX2lwOwogIHN0cnVj
dCBpbl9hZGRyIG15aXA7CiAgaW50IG5tYl9zb2NrOwogIGludCBkZ3JhbV9zb2NrOwp9OwoKCnN0
cnVjdCByZXNfcmVjIHsKICBzdHJ1Y3Qgbm1iX25hbWUgcnJfbmFtZTsKICBpbnQgcnJfdHlwZTsK
ICBpbnQgcnJfY2xhc3M7CiAgaW50IHR0bDsKICBpbnQgcmRsZW5ndGg7CiAgY2hhciByZGF0YVso
NTc2KV07Cn07CgoKc3RydWN0IG5tYl9wYWNrZXQKewogIHN0cnVjdCB7CiAgICBpbnQgbmFtZV90
cm5faWQ7CiAgICBpbnQgb3Bjb2RlOwogICAgQk9PTCByZXNwb25zZTsKICAgIHN0cnVjdCB7CiAg
ICAgIEJPT0wgYmNhc3Q7CiAgICAgIEJPT0wgcmVjdXJzaW9uX2F2YWlsYWJsZTsKICAgICAgQk9P
TCByZWN1cnNpb25fZGVzaXJlZDsKICAgICAgQk9PTCB0cnVuYzsKICAgICAgQk9PTCBhdXRob3Jp
dGF0aXZlOwogICAgfSBubV9mbGFnczsKICAgIGludCByY29kZTsKICAgIGludCBxZGNvdW50Owog
ICAgaW50IGFuY291bnQ7CiAgICBpbnQgbnNjb3VudDsKICAgIGludCBhcmNvdW50OwogIH0gaGVh
ZGVyOwoKICBzdHJ1Y3QgewogICAgc3RydWN0IG5tYl9uYW1lIHF1ZXN0aW9uX25hbWU7CiAgICBp
bnQgcXVlc3Rpb25fdHlwZTsKICAgIGludCBxdWVzdGlvbl9jbGFzczsKICB9IHF1ZXN0aW9uOwoK
ICBzdHJ1Y3QgcmVzX3JlYyAqYW5zd2VyczsKICBzdHJ1Y3QgcmVzX3JlYyAqbnNyZWNzOwogIHN0
cnVjdCByZXNfcmVjICphZGRpdGlvbmFsOwp9OwojIDQ2OCAiaW5jbHVkZS9uYW1lc2Vydi5oIgpz
dHJ1Y3QgZGdyYW1fcGFja2V0IHsKICBzdHJ1Y3QgewogICAgaW50IG1zZ190eXBlOwogICAgc3Ry
dWN0IHsKICAgICAgZW51bSBub2RlX3R5cGUgbm9kZV90eXBlOwogICAgICBCT09MIGZpcnN0Owog
ICAgICBCT09MIG1vcmU7CiAgICB9IGZsYWdzOwogICAgaW50IGRnbV9pZDsKICAgIHN0cnVjdCBp
bl9hZGRyIHNvdXJjZV9pcDsKICAgIGludCBzb3VyY2VfcG9ydDsKICAgIGludCBkZ21fbGVuZ3Ro
OwogICAgaW50IHBhY2tldF9vZmZzZXQ7CiAgfSBoZWFkZXI7CiAgc3RydWN0IG5tYl9uYW1lIHNv
dXJjZV9uYW1lOwogIHN0cnVjdCBubWJfbmFtZSBkZXN0X25hbWU7CiAgaW50IGRhdGFzaXplOwog
IGNoYXIgZGF0YVsoNTc2KV07Cn07CgoKCgpzdHJ1Y3QgcGFja2V0X3N0cnVjdAp7CiAgc3RydWN0
IHBhY2tldF9zdHJ1Y3QgKm5leHQ7CiAgc3RydWN0IHBhY2tldF9zdHJ1Y3QgKnByZXY7CiAgQk9P
TCBsb2NrZWQ7CiAgc3RydWN0IGluX2FkZHIgaXA7CiAgaW50IHBvcnQ7CiAgaW50IGZkOwogIHRp
bWVfdCB0aW1lc3RhbXA7CiAgZW51bSBwYWNrZXRfdHlwZSBwYWNrZXRfdHlwZTsKICB1bmlvbiB7
CiAgICBzdHJ1Y3Qgbm1iX3BhY2tldCBubWI7CiAgICBzdHJ1Y3QgZGdyYW1fcGFja2V0IGRncmFt
OwogIH0gcGFja2V0Owp9OwojIDU2MiAiaW5jbHVkZS9uYW1lc2Vydi5oIgpleHRlcm4gc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKnN1Ym5ldGxpc3Q7CmV4dGVybiBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAq
dW5pY2FzdF9zdWJuZXQ7CmV4dGVybiBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqd2luc19zZXJ2ZXJf
c3VibmV0OwpleHRlcm4gc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnJlbW90ZV9icm9hZGNhc3Rfc3Vi
bmV0OwoKCgoKCgplbnVtIHN0YXRlX3R5cGUgeyBURVNUIH07CiMgNzAzICJpbmNsdWRlL2luY2x1
ZGVzLmgiIDIKCiMgMSAiaW5jbHVkZS9ieXRlb3JkZXIuaCIgMQojIDcwNSAiaW5jbHVkZS9pbmNs
dWRlcy5oIiAyCgoKCiMgMSAiaW5jbHVkZS9tc2Rmcy5oIiAxCiMgMzkgImluY2x1ZGUvbXNkZnMu
aCIKc3RydWN0IHJlZmVycmFsCnsKICAgICAgICBwc3RyaW5nIGFsdGVybmF0ZV9wYXRoOwogICAg
ICAgIHVuc2lnbmVkIGludCBwcm94aW1pdHk7CiAgICAgICAgdW5zaWduZWQgaW50IHR0bDsKfTsK
CnN0cnVjdCBqdW5jdGlvbl9tYXAKewogIHBzdHJpbmcgc2VydmljZV9uYW1lOwogIHBzdHJpbmcg
dm9sdW1lX25hbWU7CiAgaW50IHJlZmVycmFsX2NvdW50OwogIHN0cnVjdCByZWZlcnJhbCogcmVm
ZXJyYWxfbGlzdDsKfTsKCnN0cnVjdCBkZnNfcGF0aAp7CiAgcHN0cmluZyBob3N0bmFtZTsKICBw
c3RyaW5nIHNlcnZpY2VuYW1lOwogIHBzdHJpbmcgdm9sdW1lbmFtZTsKICBwc3RyaW5nIHJlc3Rv
ZnRoZXBhdGg7Cn07CiMgNzA5ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCiMgMSAiaW5jbHVkZS9z
bWJwcm9maWxlLmgiIDEKIyAzMCAiaW5jbHVkZS9zbWJwcm9maWxlLmgiCmVudW0gZmx1c2hfcmVh
c29uX2VudW0geyBTRUVLX0ZMVVNILCBSRUFEX0ZMVVNILCBXUklURV9GTFVTSCwgUkVBRFJBV19G
TFVTSCwKICAgICAgICAgICAgICAgICAgICAgICAgT1BMT0NLX1JFTEVBU0VfRkxVU0gsIENMT1NF
X0ZMVVNILCBTWU5DX0ZMVVNILCBTSVpFQ0hBTkdFX0ZMVVNIIH07CiMgNDIgImluY2x1ZGUvc21i
cHJvZmlsZS5oIgpzdHJ1Y3QgcHJvZmlsZV9zdGF0cyB7CgogICAgICAgIHVuc2lnbmVkIHNtYl9j
b3VudDsKICAgICAgICB1bnNpZ25lZCB1aWRfY2hhbmdlczsKCiAgICAgICAgdW5zaWduZWQgc3lz
Y2FsbF9vcGVuZGlyX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfb3BlbmRpcl90aW1l
OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcmVhZGRpcl9jb3VudDsKICAgICAgICB1bnNpZ25l
ZCBzeXNjYWxsX3JlYWRkaXJfdGltZTsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX21rZGlyX2Nv
dW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfbWtkaXJfdGltZTsKICAgICAgICB1bnNpZ25l
ZCBzeXNjYWxsX3JtZGlyX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcm1kaXJfdGlt
ZTsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX2Nsb3NlZGlyX2NvdW50OwogICAgICAgIHVuc2ln
bmVkIHN5c2NhbGxfY2xvc2VkaXJfdGltZTsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX29wZW5f
Y291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9vcGVuX3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgc3lzY2FsbF9jbG9zZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX2Nsb3NlX3Rp
bWU7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9yZWFkX2NvdW50OwogICAgICAgIHVuc2lnbmVk
IHN5c2NhbGxfcmVhZF90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcmVhZF9ieXRlczsK
ICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX3dyaXRlX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5
c2NhbGxfd3JpdGVfdGltZTsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX3dyaXRlX2J5dGVzOwog
ICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfbHNlZWtfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lz
Y2FsbF9sc2Vla190aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcmVuYW1lX2NvdW50Owog
ICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcmVuYW1lX3RpbWU7CiAgICAgICAgdW5zaWduZWQgc3lz
Y2FsbF9mc3luY19jb3VudDsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX2ZzeW5jX3RpbWU7CiAg
ICAgICAgdW5zaWduZWQgc3lzY2FsbF9zdGF0X2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2Nh
bGxfc3RhdF90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfZnN0YXRfY291bnQ7CiAgICAg
ICAgdW5zaWduZWQgc3lzY2FsbF9mc3RhdF90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxf
bHN0YXRfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9sc3RhdF90aW1lOwogICAgICAg
IHVuc2lnbmVkIHN5c2NhbGxfdW5saW5rX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxf
dW5saW5rX3RpbWU7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9jaG1vZF9jb3VudDsKICAgICAg
ICB1bnNpZ25lZCBzeXNjYWxsX2NobW9kX3RpbWU7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9m
Y2htb2RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9mY2htb2RfdGltZTsKICAgICAg
ICB1bnNpZ25lZCBzeXNjYWxsX2Nob3duX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxf
Y2hvd25fdGltZTsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxsX2ZjaG93bl9jb3VudDsKICAgICAg
ICB1bnNpZ25lZCBzeXNjYWxsX2ZjaG93bl90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxf
Y2hkaXJfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9jaGRpcl90aW1lOwogICAgICAg
IHVuc2lnbmVkIHN5c2NhbGxfZ2V0d2RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9n
ZXR3ZF90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfdXRpbWVfY291bnQ7CiAgICAgICAg
dW5zaWduZWQgc3lzY2FsbF91dGltZV90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfZnRy
dW5jYXRlX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfZnRydW5jYXRlX3RpbWU7CiAg
ICAgICAgdW5zaWduZWQgc3lzY2FsbF9mY250bF9sb2NrX2NvdW50OwogICAgICAgIHVuc2lnbmVk
IHN5c2NhbGxfZmNudGxfbG9ja190aW1lOwogICAgICAgIHVuc2lnbmVkIHN5c2NhbGxfcmVhZGxp
bmtfY291bnQ7CiAgICAgICAgdW5zaWduZWQgc3lzY2FsbF9yZWFkbGlua190aW1lOwogICAgICAg
IHVuc2lnbmVkIHN5c2NhbGxfc3ltbGlua19jb3VudDsKICAgICAgICB1bnNpZ25lZCBzeXNjYWxs
X3N5bWxpbmtfdGltZTsKCiAgICAgICAgdW5zaWduZWQgc3RhdGNhY2hlX2xvb2t1cHM7CiAgICAg
ICAgdW5zaWduZWQgc3RhdGNhY2hlX21pc3NlczsKICAgICAgICB1bnNpZ25lZCBzdGF0Y2FjaGVf
aGl0czsKCiAgICAgICAgdW5zaWduZWQgd3JpdGVjYWNoZV9yZWFkX2hpdHM7CiAgICAgICAgdW5z
aWduZWQgd3JpdGVjYWNoZV9hYnV0dGVkX3dyaXRlczsKICAgICAgICB1bnNpZ25lZCB3cml0ZWNh
Y2hlX3RvdGFsX3dyaXRlczsKICAgICAgICB1bnNpZ25lZCB3cml0ZWNhY2hlX25vbl9vcGxvY2tf
d3JpdGVzOwogICAgICAgIHVuc2lnbmVkIHdyaXRlY2FjaGVfZGlyZWN0X3dyaXRlczsKICAgICAg
ICB1bnNpZ25lZCB3cml0ZWNhY2hlX2luaXRfd3JpdGVzOwogICAgICAgIHVuc2lnbmVkIHdyaXRl
Y2FjaGVfZmx1c2hlZF93cml0ZXNbOF07CiAgICAgICAgdW5zaWduZWQgd3JpdGVjYWNoZV9udW1f
cGVyZmVjdF93cml0ZXM7CiAgICAgICAgdW5zaWduZWQgd3JpdGVjYWNoZV9udW1fd3JpdGVfY2Fj
aGVzOwogICAgICAgIHVuc2lnbmVkIHdyaXRlY2FjaGVfYWxsb2NhdGVkX3dyaXRlX2NhY2hlczsK
CiAgICAgICAgdW5zaWduZWQgU01CbWtkaXJfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01CbWtk
aXJfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJybWRpcl9jb3VudDsKICAgICAgICB1bnNpZ25l
ZCBTTUJybWRpcl90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQm9wZW5fY291bnQ7CiAgICAgICAg
dW5zaWduZWQgU01Cb3Blbl90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQmNyZWF0ZV9jb3VudDsK
ICAgICAgICB1bnNpZ25lZCBTTUJjcmVhdGVfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJjbG9z
ZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJjbG9zZV90aW1lOwogICAgICAgIHVuc2lnbmVk
IFNNQmZsdXNoX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQmZsdXNoX3RpbWU7CiAgICAgICAg
dW5zaWduZWQgU01CdW5saW5rX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnVubGlua190aW1l
OwogICAgICAgIHVuc2lnbmVkIFNNQm12X2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQm12X3Rp
bWU7CiAgICAgICAgdW5zaWduZWQgU01CZ2V0YXRyX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNN
QmdldGF0cl90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnNldGF0cl9jb3VudDsKICAgICAgICB1
bnNpZ25lZCBTTUJzZXRhdHJfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJyZWFkX2NvdW50Owog
ICAgICAgIHVuc2lnbmVkIFNNQnJlYWRfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0ZV9j
b3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0ZV90aW1lOwogICAgICAgIHVuc2lnbmVkIFNN
QmxvY2tfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01CbG9ja190aW1lOwogICAgICAgIHVuc2ln
bmVkIFNNQnVubG9ja19jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJ1bmxvY2tfdGltZTsKICAg
ICAgICB1bnNpZ25lZCBTTUJjdGVtcF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJjdGVtcF90
aW1lOwoKICAgICAgICB1bnNpZ25lZCBTTUJta25ld19jb3VudDsKICAgICAgICB1bnNpZ25lZCBT
TUJta25ld190aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQmNoa3B0aF9jb3VudDsKICAgICAgICB1
bnNpZ25lZCBTTUJjaGtwdGhfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJleGl0X2NvdW50Owog
ICAgICAgIHVuc2lnbmVkIFNNQmV4aXRfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJsc2Vla19j
b3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJsc2Vla190aW1lOwogICAgICAgIHVuc2lnbmVkIFNN
QmxvY2tyZWFkX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQmxvY2tyZWFkX3RpbWU7CiAgICAg
ICAgdW5zaWduZWQgU01Cd3JpdGV1bmxvY2tfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01Cd3Jp
dGV1bmxvY2tfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJyZWFkYnJhd19jb3VudDsKICAgICAg
ICB1bnNpZ25lZCBTTUJyZWFkYnJhd190aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnJlYWRCbXB4
X2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnJlYWRCbXB4X3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgU01CcmVhZEJzX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnJlYWRCc190aW1lOwogICAg
ICAgIHVuc2lnbmVkIFNNQndyaXRlYnJhd19jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0
ZWJyYXdfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0ZUJtcHhfY291bnQ7CiAgICAgICAg
dW5zaWduZWQgU01Cd3JpdGVCbXB4X3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01Cd3JpdGVCc19j
b3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0ZUJzX3RpbWU7CiAgICAgICAgdW5zaWduZWQg
U01Cd3JpdGVjX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQndyaXRlY190aW1lOwogICAgICAg
IHVuc2lnbmVkIFNNQnNldGF0dHJFX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnNldGF0dHJF
X3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01CZ2V0YXR0ckVfY291bnQ7CiAgICAgICAgdW5zaWdu
ZWQgU01CZ2V0YXR0ckVfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJsb2NraW5nWF9jb3VudDsK
ICAgICAgICB1bnNpZ25lZCBTTUJsb2NraW5nWF90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnRy
YW5zX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnRyYW5zX3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgU01CdHJhbnNzX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnRyYW5zc190aW1lOwogICAg
ICAgIHVuc2lnbmVkIFNNQmlvY3RsX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQmlvY3RsX3Rp
bWU7CiAgICAgICAgdW5zaWduZWQgU01CaW9jdGxzX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNN
QmlvY3Rsc190aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQmNvcHlfY291bnQ7CiAgICAgICAgdW5z
aWduZWQgU01CY29weV90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQm1vdmVfY291bnQ7CiAgICAg
ICAgdW5zaWduZWQgU01CbW92ZV90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQmVjaG9fY291bnQ7
CiAgICAgICAgdW5zaWduZWQgU01CZWNob190aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQndyaXRl
Y2xvc2VfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01Cd3JpdGVjbG9zZV90aW1lOwogICAgICAg
IHVuc2lnbmVkIFNNQm9wZW5YX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQm9wZW5YX3RpbWU7
CiAgICAgICAgdW5zaWduZWQgU01CcmVhZFhfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01CcmVh
ZFhfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJ3cml0ZVhfY291bnQ7CiAgICAgICAgdW5zaWdu
ZWQgU01Cd3JpdGVYX3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01CdHJhbnMyX2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIFNNQnRyYW5zMl90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnRyYW5zczJf
Y291bnQ7CiAgICAgICAgdW5zaWduZWQgU01CdHJhbnNzMl90aW1lOwogICAgICAgIHVuc2lnbmVk
IFNNQmZpbmRjbG9zZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJmaW5kY2xvc2VfdGltZTsK
ICAgICAgICB1bnNpZ25lZCBTTUJmaW5kbmNsb3NlX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNN
QmZpbmRuY2xvc2VfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJ0Y29uX2NvdW50OwogICAgICAg
IHVuc2lnbmVkIFNNQnRjb25fdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJ0ZGlzX2NvdW50Owog
ICAgICAgIHVuc2lnbmVkIFNNQnRkaXNfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJuZWdwcm90
X2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQm5lZ3Byb3RfdGltZTsKICAgICAgICB1bnNpZ25l
ZCBTTUJzZXNzc2V0dXBYX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnNlc3NzZXR1cFhfdGlt
ZTsKICAgICAgICB1bnNpZ25lZCBTTUJ1bG9nb2ZmWF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBT
TUJ1bG9nb2ZmWF90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnRjb25YX2NvdW50OwogICAgICAg
IHVuc2lnbmVkIFNNQnRjb25YX3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01CZHNrYXR0cl9jb3Vu
dDsKICAgICAgICB1bnNpZ25lZCBTTUJkc2thdHRyX3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01C
c2VhcmNoX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnNlYXJjaF90aW1lOwoKICAgICAgICB1
bnNpZ25lZCBTTUJmZmlyc3RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01CZmZpcnN0X3RpbWU7
CgogICAgICAgIHVuc2lnbmVkIFNNQmZ1bmlxdWVfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01C
ZnVuaXF1ZV90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQmZjbG9zZV9jb3VudDsKICAgICAgICB1
bnNpZ25lZCBTTUJmY2xvc2VfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJudHRyYW5zX2NvdW50
OwogICAgICAgIHVuc2lnbmVkIFNNQm50dHJhbnNfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJu
dHRyYW5zc19jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJudHRyYW5zc190aW1lOwogICAgICAg
IHVuc2lnbmVkIFNNQm50Y3JlYXRlWF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJudGNyZWF0
ZVhfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJudGNhbmNlbF9jb3VudDsKICAgICAgICB1bnNp
Z25lZCBTTUJudGNhbmNlbF90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnNwbG9wZW5fY291bnQ7
CiAgICAgICAgdW5zaWduZWQgU01Cc3Bsb3Blbl90aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnNw
bHdyX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnNwbHdyX3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgU01Cc3BsY2xvc2VfY291bnQ7CiAgICAgICAgdW5zaWduZWQgU01Cc3BsY2xvc2VfdGltZTsK
ICAgICAgICB1bnNpZ25lZCBTTUJzcGxyZXRxX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQnNw
bHJldHFfdGltZTsKICAgICAgICB1bnNpZ25lZCBTTUJzZW5kc19jb3VudDsKICAgICAgICB1bnNp
Z25lZCBTTUJzZW5kc190aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnNlbmRiX2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIFNNQnNlbmRiX3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01CZndkbmFtZV9j
b3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJmd2RuYW1lX3RpbWU7CiAgICAgICAgdW5zaWduZWQg
U01CY2FuY2VsZl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJjYW5jZWxmX3RpbWU7CiAgICAg
ICAgdW5zaWduZWQgU01CZ2V0bWFjX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFNNQmdldG1hY190
aW1lOwogICAgICAgIHVuc2lnbmVkIFNNQnNlbmRzdHJ0X2NvdW50OwogICAgICAgIHVuc2lnbmVk
IFNNQnNlbmRzdHJ0X3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01Cc2VuZGVuZF9jb3VudDsKICAg
ICAgICB1bnNpZ25lZCBTTUJzZW5kZW5kX3RpbWU7CiAgICAgICAgdW5zaWduZWQgU01Cc2VuZHR4
dF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJzZW5kdHh0X3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgU01CaW52YWxpZF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBTTUJpbnZhbGlkX3RpbWU7Cgog
ICAgICAgIHVuc2lnbmVkIHBhdGh3b3Jrc19zZXRkaXJfY291bnQ7CiAgICAgICAgdW5zaWduZWQg
cGF0aHdvcmtzX3NldGRpcl90aW1lOwoKICAgICAgICB1bnNpZ25lZCBUcmFuczJfb3Blbl9jb3Vu
dDsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfb3Blbl90aW1lOwogICAgICAgIHVuc2lnbmVkIFRy
YW5zMl9maW5kZmlyc3RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX2ZpbmRmaXJzdF90
aW1lOwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9maW5kbmV4dF9jb3VudDsKICAgICAgICB1bnNp
Z25lZCBUcmFuczJfZmluZG5leHRfdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfcWZzaW5m
b19jb3VudDsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfcWZzaW5mb190aW1lOwogICAgICAgIHVu
c2lnbmVkIFRyYW5zMl9zZXRmc2luZm9fY291bnQ7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX3Nl
dGZzaW5mb190aW1lOwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9xcGF0aGluZm9fY291bnQ7CiAg
ICAgICAgdW5zaWduZWQgVHJhbnMyX3FwYXRoaW5mb190aW1lOwogICAgICAgIHVuc2lnbmVkIFRy
YW5zMl9zZXRwYXRoaW5mb19jb3VudDsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfc2V0cGF0aGlu
Zm9fdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfcWZpbGVpbmZvX2NvdW50OwogICAgICAg
IHVuc2lnbmVkIFRyYW5zMl9xZmlsZWluZm9fdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFuczJf
c2V0ZmlsZWluZm9fY291bnQ7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX3NldGZpbGVpbmZvX3Rp
bWU7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX2ZzY3RsX2NvdW50OwogICAgICAgIHVuc2lnbmVk
IFRyYW5zMl9mc2N0bF90aW1lOwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9pb2N0bF9jb3VudDsK
ICAgICAgICB1bnNpZ25lZCBUcmFuczJfaW9jdGxfdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFu
czJfZmluZG5vdGlmeWZpcnN0X2NvdW50OwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9maW5kbm90
aWZ5Zmlyc3RfdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfZmluZG5vdGlmeW5leHRfY291
bnQ7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX2ZpbmRub3RpZnluZXh0X3RpbWU7CiAgICAgICAg
dW5zaWduZWQgVHJhbnMyX21rZGlyX2NvdW50OwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9ta2Rp
cl90aW1lOwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9zZXNzaW9uX3NldHVwX2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIFRyYW5zMl9zZXNzaW9uX3NldHVwX3RpbWU7CiAgICAgICAgdW5zaWduZWQg
VHJhbnMyX2dldF9kZnNfcmVmZXJyYWxfY291bnQ7CiAgICAgICAgdW5zaWduZWQgVHJhbnMyX2dl
dF9kZnNfcmVmZXJyYWxfdGltZTsKICAgICAgICB1bnNpZ25lZCBUcmFuczJfcmVwb3J0X2Rmc19p
bmNvbnNpc3RhbmN5X2NvdW50OwogICAgICAgIHVuc2lnbmVkIFRyYW5zMl9yZXBvcnRfZGZzX2lu
Y29uc2lzdGFuY3lfdGltZTsKCiAgICAgICAgdW5zaWduZWQgTlRfdHJhbnNhY3RfY3JlYXRlX2Nv
dW50OwogICAgICAgIHVuc2lnbmVkIE5UX3RyYW5zYWN0X2NyZWF0ZV90aW1lOwogICAgICAgIHVu
c2lnbmVkIE5UX3RyYW5zYWN0X2lvY3RsX2NvdW50OwogICAgICAgIHVuc2lnbmVkIE5UX3RyYW5z
YWN0X2lvY3RsX3RpbWU7CiAgICAgICAgdW5zaWduZWQgTlRfdHJhbnNhY3Rfc2V0X3NlY3VyaXR5
X2Rlc2NfY291bnQ7CiAgICAgICAgdW5zaWduZWQgTlRfdHJhbnNhY3Rfc2V0X3NlY3VyaXR5X2Rl
c2NfdGltZTsKICAgICAgICB1bnNpZ25lZCBOVF90cmFuc2FjdF9ub3RpZnlfY2hhbmdlX2NvdW50
OwogICAgICAgIHVuc2lnbmVkIE5UX3RyYW5zYWN0X25vdGlmeV9jaGFuZ2VfdGltZTsKICAgICAg
ICB1bnNpZ25lZCBOVF90cmFuc2FjdF9yZW5hbWVfY291bnQ7CiAgICAgICAgdW5zaWduZWQgTlRf
dHJhbnNhY3RfcmVuYW1lX3RpbWU7CiAgICAgICAgdW5zaWduZWQgTlRfdHJhbnNhY3RfcXVlcnlf
c2VjdXJpdHlfZGVzY19jb3VudDsKICAgICAgICB1bnNpZ25lZCBOVF90cmFuc2FjdF9xdWVyeV9z
ZWN1cml0eV9kZXNjX3RpbWU7CgogICAgICAgIHVuc2lnbmVkIGdldF9udF9hY2xfY291bnQ7CiAg
ICAgICAgdW5zaWduZWQgZ2V0X250X2FjbF90aW1lOwogICAgICAgIHVuc2lnbmVkIGZnZXRfbnRf
YWNsX2NvdW50OwogICAgICAgIHVuc2lnbmVkIGZnZXRfbnRfYWNsX3RpbWU7CiAgICAgICAgdW5z
aWduZWQgc2V0X250X2FjbF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBzZXRfbnRfYWNsX3RpbWU7
CiAgICAgICAgdW5zaWduZWQgZnNldF9udF9hY2xfY291bnQ7CiAgICAgICAgdW5zaWduZWQgZnNl
dF9udF9hY2xfdGltZTsKICAgICAgICB1bnNpZ25lZCBjaG1vZF9hY2xfY291bnQ7CiAgICAgICAg
dW5zaWduZWQgY2htb2RfYWNsX3RpbWU7CiAgICAgICAgdW5zaWduZWQgZmNobW9kX2FjbF9jb3Vu
dDsKICAgICAgICB1bnNpZ25lZCBmY2htb2RfYWNsX3RpbWU7CgogICAgICAgIHVuc2lnbmVkIG5h
bWVfcmVsZWFzZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCBuYW1lX3JlbGVhc2VfdGltZTsKICAg
ICAgICB1bnNpZ25lZCBuYW1lX3JlZnJlc2hfY291bnQ7CiAgICAgICAgdW5zaWduZWQgbmFtZV9y
ZWZyZXNoX3RpbWU7CiAgICAgICAgdW5zaWduZWQgbmFtZV9yZWdpc3RyYXRpb25fY291bnQ7CiAg
ICAgICAgdW5zaWduZWQgbmFtZV9yZWdpc3RyYXRpb25fdGltZTsKICAgICAgICB1bnNpZ25lZCBu
b2RlX3N0YXR1c19jb3VudDsKICAgICAgICB1bnNpZ25lZCBub2RlX3N0YXR1c190aW1lOwogICAg
ICAgIHVuc2lnbmVkIG5hbWVfcXVlcnlfY291bnQ7CiAgICAgICAgdW5zaWduZWQgbmFtZV9xdWVy
eV90aW1lOwogICAgICAgIHVuc2lnbmVkIGhvc3RfYW5ub3VuY2VfY291bnQ7CiAgICAgICAgdW5z
aWduZWQgaG9zdF9hbm5vdW5jZV90aW1lOwogICAgICAgIHVuc2lnbmVkIHdvcmtncm91cF9hbm5v
dW5jZV9jb3VudDsKICAgICAgICB1bnNpZ25lZCB3b3JrZ3JvdXBfYW5ub3VuY2VfdGltZTsKICAg
ICAgICB1bnNpZ25lZCBsb2NhbF9tYXN0ZXJfYW5ub3VuY2VfY291bnQ7CiAgICAgICAgdW5zaWdu
ZWQgbG9jYWxfbWFzdGVyX2Fubm91bmNlX3RpbWU7CiAgICAgICAgdW5zaWduZWQgbWFzdGVyX2Jy
b3dzZXJfYW5ub3VuY2VfY291bnQ7CiAgICAgICAgdW5zaWduZWQgbWFzdGVyX2Jyb3dzZXJfYW5u
b3VuY2VfdGltZTsKICAgICAgICB1bnNpZ25lZCBsbV9ob3N0X2Fubm91bmNlX2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIGxtX2hvc3RfYW5ub3VuY2VfdGltZTsKICAgICAgICB1bnNpZ25lZCBnZXRf
YmFja3VwX2xpc3RfY291bnQ7CiAgICAgICAgdW5zaWduZWQgZ2V0X2JhY2t1cF9saXN0X3RpbWU7
CiAgICAgICAgdW5zaWduZWQgcmVzZXRfYnJvd3Nlcl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBy
ZXNldF9icm93c2VyX3RpbWU7CiAgICAgICAgdW5zaWduZWQgYW5ub3VuY2VfcmVxdWVzdF9jb3Vu
dDsKICAgICAgICB1bnNpZ25lZCBhbm5vdW5jZV9yZXF1ZXN0X3RpbWU7CiAgICAgICAgdW5zaWdu
ZWQgbG1fYW5ub3VuY2VfcmVxdWVzdF9jb3VudDsKICAgICAgICB1bnNpZ25lZCBsbV9hbm5vdW5j
ZV9yZXF1ZXN0X3RpbWU7CiAgICAgICAgdW5zaWduZWQgZG9tYWluX2xvZ29uX2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIGRvbWFpbl9sb2dvbl90aW1lOwogICAgICAgIHVuc2lnbmVkIHN5bmNfYnJv
d3NlX2xpc3RzX2NvdW50OwogICAgICAgIHVuc2lnbmVkIHN5bmNfYnJvd3NlX2xpc3RzX3RpbWU7
CiAgICAgICAgdW5zaWduZWQgcnVuX2VsZWN0aW9uc19jb3VudDsKICAgICAgICB1bnNpZ25lZCBy
dW5fZWxlY3Rpb25zX3RpbWU7CiAgICAgICAgdW5zaWduZWQgZWxlY3Rpb25fY291bnQ7CiAgICAg
ICAgdW5zaWduZWQgZWxlY3Rpb25fdGltZTsKfTsKCnN0cnVjdCBwcm9maWxlX2hlYWRlciB7CiAg
ICAgICAgaW50IHByb2Zfc2htX21hZ2ljOwogICAgICAgIGludCBwcm9mX3NobV92ZXJzaW9uOwog
ICAgICAgIHN0cnVjdCBwcm9maWxlX3N0YXRzIHN0YXRzOwp9OwoKZXh0ZXJuIHN0cnVjdCBwcm9m
aWxlX2hlYWRlciAqcHJvZmlsZV9oOwpleHRlcm4gc3RydWN0IHByb2ZpbGVfc3RhdHMgKnByb2Zp
bGVfcDsKZXh0ZXJuIHN0cnVjdCB0aW1ldmFsIHByb2ZpbGVfc3RhcnR0aW1lOwpleHRlcm4gc3Ry
dWN0IHRpbWV2YWwgcHJvZmlsZV9lbmR0aW1lOwpleHRlcm4gc3RydWN0IHRpbWV2YWwgcHJvZmls
ZV9zdGFydHRpbWVfbmVzdGVkOwpleHRlcm4gc3RydWN0IHRpbWV2YWwgcHJvZmlsZV9lbmR0aW1l
X25lc3RlZDsKZXh0ZXJuIEJPT0wgZG9fcHJvZmlsZV9mbGFnOwpleHRlcm4gQk9PTCBkb19wcm9m
aWxlX3RpbWVzOwojIDcxMSAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgojIDEgImluY2x1ZGUvbWFw
cGluZy5oIiAxCiMgNDYgImluY2x1ZGUvbWFwcGluZy5oIgp0eXBlZGVmIHN0cnVjdCBfR1JPVVBf
TUFQIHsKICAgICAgICBnaWRfdCBnaWQ7CiAgICAgICAgRE9NX1NJRCBzaWQ7CiAgICAgICAgZW51
bSBTSURfTkFNRV9VU0Ugc2lkX25hbWVfdXNlOwogICAgICAgIGZzdHJpbmcgbnRfbmFtZTsKICAg
ICAgICBmc3RyaW5nIGNvbW1lbnQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN5c3RlbWFjY291bnQ7
CiAgICAgICAgUFJJVklMRUdFX1NFVCBwcml2X3NldDsKfSBHUk9VUF9NQVA7Cgp0eXBlZGVmIHN0
cnVjdCBfUFJJVlMgewogICAgICAgIHVuc2lnbmVkIGludCBzZV9wcml2OwogICAgICAgIGNoYXIg
KnByaXY7CiAgICAgICAgY2hhciAqZGVzY3JpcHRpb247Cn0gUFJJVlM7CiMgNzEzICJpbmNsdWRl
L2luY2x1ZGVzLmgiIDIKCiMgMSAiaW5jbHVkZS9yYXAuaCIgMQojIDQ1MSAiaW5jbHVkZS9yYXAu
aCIKdHlwZWRlZiBzdHJ1Y3QgcmFwX2dyb3VwX2luZm9fMQp7CiAgICBjaGFyIGdyb3VwX25hbWVb
MjFdOwogICAgY2hhciByZXNlcnZlZDE7CiAgICBjaGFyICogY29tbWVudDsKfSBSQVBfR1JPVVBf
SU5GT18xOwoKdHlwZWRlZiBzdHJ1Y3QgcmFwX3VzZXJfaW5mb18xCnsKICAgIGNoYXIgdXNlcl9u
YW1lWzIxXTsKICAgIGNoYXIgcmVzZXJ2ZWQxOwogICAgY2hhciBwYXNzd3JkWzE2XTsKICAgIHVu
c2lnbmVkIGludCBwd2FnZTsKICAgIHVuc2lnbmVkIHNob3J0IHByaXY7CiAgICBjaGFyICogaG9t
ZV9kaXI7CiAgICBjaGFyICogY29tbWVudDsKICAgIHVuc2lnbmVkIHNob3J0IHVzZXJmbGFnczsK
ICAgIGNoYXIgKiBsb2dvbl9zY3JpcHQ7Cn0gUkFQX1VTRVJfSU5GT18xOwoKdHlwZWRlZiBzdHJ1
Y3QgcmFwX3NlcnZpY2VfaW5mb18yCnsKICAgIGNoYXIgc2VydmljZV9uYW1lWzE2XTsKICAgIHVu
c2lnbmVkIHNob3J0IHN0YXR1czsKICAgIHVuc2lnbmVkIGludCBpbnN0YWxsY29kZTsKICAgIHVu
c2lnbmVkIHNob3J0IHByb2Nlc3NfbnVtOwogICAgY2hhciAqIGNvbW1lbnQ7Cn0gUkFQX1NFUlZJ
Q0VfSU5GT18yOwoKCnR5cGVkZWYgc3RydWN0IHJhcF9zaGFyZV9pbmZvXzAKewogICAgY2hhciBz
aGFyZV9uYW1lWzEzXTsKfSBSQVBfU0hBUkVfSU5GT18wOwoKdHlwZWRlZiBzdHJ1Y3QgcmFwX3No
YXJlX2luZm9fMQp7CiAgICBjaGFyIHNoYXJlX25hbWVbMTNdOwogICAgY2hhciByZXNlcnZlZDE7
CiAgICB1bnNpZ25lZCBzaG9ydCBzaGFyZV90eXBlOwogICAgY2hhciAqIGNvbW1lbnQ7Cn0gUkFQ
X1NIQVJFX0lORk9fMTsKCnR5cGVkZWYgc3RydWN0IHJhcF9zaGFyZV9pbmZvXzIKewogICAgY2hh
ciBzaGFyZV9uYW1lWzEzXTsKICAgIGNoYXIgcmVzZXJ2ZWQxOwogICAgdW5zaWduZWQgc2hvcnQg
c2hhcmVfdHlwZTsKICAgIGNoYXIgKiBjb21tZW50OwogICAgdW5zaWduZWQgc2hvcnQgcGVybXM7
CiAgICB1bnNpZ25lZCBzaG9ydCBtYXhpbXVtX3VzZXJzOwogICAgdW5zaWduZWQgc2hvcnQgYWN0
aXZlX3VzZXJzOwogICAgY2hhciAqIHBhdGg7CiAgICBjaGFyIHBhc3N3b3JkWzldOwogICAgY2hh
ciByZXNlcnZlZDI7Cn0gUkFQX1NIQVJFX0lORk9fMjsKIyA3MTUgImluY2x1ZGUvaW5jbHVkZXMu
aCIgMgoKIyAxICJpbmNsdWRlL21kNS5oIiAxCgoKCgoKCgpzdHJ1Y3QgTUQ1Q29udGV4dCB7CiAg
ICAgICAgdW5zaWduZWQgaW50IGJ1Zls0XTsKICAgICAgICB1bnNpZ25lZCBpbnQgYml0c1syXTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIGluWzY0XTsKfTsKCnZvaWQgTUQ1SW5pdChzdHJ1Y3QgTUQ1
Q29udGV4dCAqY29udGV4dCk7CnZvaWQgTUQ1VXBkYXRlKHN0cnVjdCBNRDVDb250ZXh0ICpjb250
ZXh0LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpidWYsCiAgICAgICAgICAgICAgIHVuc2lnbmVkIGxl
bik7CnZvaWQgTUQ1RmluYWwodW5zaWduZWQgY2hhciBkaWdlc3RbMTZdLCBzdHJ1Y3QgTUQ1Q29u
dGV4dCAqY29udGV4dCk7CnZvaWQgTUQ1VHJhbnNmb3JtKHVuc2lnbmVkIGludCBidWZbNF0sIHVu
c2lnbmVkIGludCBjb25zdCBpblsxNl0pOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgTUQ1Q29udGV4dCBN
RDVfQ1RYOwojIDcxNyAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMSAiaW5jbHVkZS9obWFjbWQ1
LmgiIDEKIyAyNSAiaW5jbHVkZS9obWFjbWQ1LmgiCnR5cGVkZWYgc3RydWN0CnsKICAgICAgICBz
dHJ1Y3QgTUQ1Q29udGV4dCBjdHg7CiAgICAgICAgdW5zaWduZWQgY2hhciBrX2lwYWRbNjVdOwog
ICAgICAgIHVuc2lnbmVkIGNoYXIga19vcGFkWzY1XTsKCn0gSE1BQ01ENUNvbnRleHQ7CiMgNzE4
ICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCiMgMSAiaW5jbHVkZS9hdXRoLmgiIDEKIyAyNSAiaW5j
bHVkZS9hdXRoLmgiCnR5cGVkZWYgc3RydWN0IG5vcm1hbF9zdHJpbmcKewogICAgICAgIGludCBs
ZW47CiAgICAgICAgY2hhciAqc3RyOwp9IEFVVEhfU1RSOwoKCnR5cGVkZWYgc3RydWN0IHVuaWNv
ZGVfc3RyaW5nCnsKICAgICAgICBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKnVuaXN0
cjsKfSBBVVRIX1VOSVNUUjsKCnR5cGVkZWYgc3RydWN0IGludGVyYWN0aXZlX3Bhc3N3b3JkCnsK
ICAgICAgICBPV0ZfSU5GTyBsbV9vd2Y7CiAgICAgICAgT1dGX0lORk8gbnRfb3dmOwp9IGF1dGhf
aW50ZXJhY3RpdmVfcGFzc3dvcmQ7Cgp0eXBlZGVmIHN0cnVjdCB1c2Vyc3VwcGxpZWRfaW5mbwp7
CgogICAgICAgIERBVEFfQkxPQiBsbV9yZXNwOwogICAgICAgIERBVEFfQkxPQiBudF9yZXNwOwog
ICAgICAgIGF1dGhfaW50ZXJhY3RpdmVfcGFzc3dvcmQgKiBpbnRlcmFjdGl2ZV9wYXNzd29yZDsK
ICAgICAgICBEQVRBX0JMT0IgcGxhaW50ZXh0X3Bhc3N3b3JkOwoKICAgICAgICBCT09MIGVuY3J5
cHRlZDsKCiAgICAgICAgdW5zaWduZWQgaW50IG50bG1zc3BfZmxhZ3M7CgogICAgICAgIEFVVEhf
U1RSIGNsaWVudF9kb21haW47CiAgICAgICAgQVVUSF9TVFIgZG9tYWluOwogICAgICAgIEFVVEhf
U1RSIGludGVybmFsX3VzZXJuYW1lOwogICAgICAgIEFVVEhfU1RSIHNtYl9uYW1lOwogICAgICAg
IEFVVEhfU1RSIHdrc3RhX25hbWU7Cgp9IGF1dGhfdXNlcnN1cHBsaWVkX2luZm87CgoKCgoKCgp0
eXBlZGVmIHN0cnVjdCBzZXJ2ZXJzdXBwbGllZF9pbmZvCnsKICAgICAgICBCT09MIGd1ZXN0OwoK
CiAgICAgICAgaW50IG5fZ3JvdXBzOwogICAgICAgIGdpZF90ICpncm91cHM7CgoKCiAgICAgICAg
TlRfVVNFUl9UT0tFTiAqcHRvazsKCiAgICAgICAgdW5zaWduZWQgY2hhciBzZXNzaW9uX2tleVsx
Nl07CgogICAgICAgIHVuc2lnbmVkIGNoYXIgZmlyc3RfOF9sbV9oYXNoWzhdOwoKICAgICAgICB1
bnNpZ25lZCBpbnQgc2FtX2ZpbGxfbGV2ZWw7CgogICAgICAgIFNBTV9BQ0NPVU5UICpzYW1fYWNj
b3VudDsKCiAgICAgICAgdm9pZCAqcGFtX2hhbmRsZTsKCn0gYXV0aF9zZXJ2ZXJzdXBwbGllZF9p
bmZvOwoKdHlwZWRlZiBzdHJ1Y3QgYXV0aHN1cHBsaWVkX2luZm8gewogICAgICAgIERBVEFfQkxP
QiBjaGFsbGVuZ2U7CgoKICAgICAgICBjaGFyICpjaGFsbGVuZ2Vfc2V0X2J5OwoKICAgICAgICBz
dHJ1Y3QgYXV0aF9tZXRob2RzICpjaGFsbGVuZ2Vfc2V0X21ldGhvZDsKCiAgICAgICAgc3RydWN0
IGF1dGhfbWV0aG9kcyAqYXV0aF9tZXRob2RfbGlzdDsKfSBhdXRoX2F1dGhzdXBwbGllZF9pbmZv
OwoKdHlwZWRlZiBzdHJ1Y3QgYXV0aF9tZXRob2RzCnsKICAgICAgICBzdHJ1Y3QgYXV0aF9tZXRo
b2RzICpwcmV2LCAqbmV4dDsKICAgICAgICBjaGFyICpuYW1lOwoKICAgICAgICBOVFNUQVRVUyAo
KmF1dGgpKHZvaWQgKm15X3ByaXZhdGVfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGF1dGhfdXNlcnN1cHBsaWVkX2luZm8gKnVzZXJfaW5mbywKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHN0cnVjdCBhdXRoc3VwcGxpZWRfaW5mbyAqYXV0aF9pbmZvLAogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0aF9zZXJ2ZXJzdXBwbGllZF9pbmZvICoqc2VydmVyX2luZm8p
OwoKICAgICAgICBEQVRBX0JMT0IgKCpnZXRfY2hhbCkodm9pZCAqKm15X3ByaXZhdGVfZGF0YSwg
Y29uc3Qgc3RydWN0IGF1dGhzdXBwbGllZF9pbmZvICphdXRoX2luZm8pOwoKCiAgICAgICAgdm9p
ZCAqcHJpdmF0ZV9kYXRhOwoKCiAgICAgICAgdm9pZCAoKmZyZWVfcHJpdmF0ZV9kYXRhKSh2b2lk
ICoqcHJpdmF0ZV9kYXRhKTsKCgogICAgICAgIHZvaWQgKCpzZW5kX2tlZXBhbGl2ZSkodm9pZCAq
KnByaXZhdGVfZGF0YSk7Cgp9IGF1dGhfbWV0aG9kczsKCnR5cGVkZWYgc3RydWN0IGF1dGhfaW5p
dF9mdW5jdGlvbiB7CiAgICAgICAgY2hhciAqbmFtZTsKCiAgICAgICAgQk9PTCAoKmluaXQpKHN0
cnVjdCBhdXRoX21ldGhvZHMgKiphdXRoX21ldGhvZCk7Cn0gYXV0aF9pbml0X2Z1bmN0aW9uOwoj
IDcyMCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgojIDEgImluY2x1ZGUvc2Vzc2lvbi5oIiAxCiMg
MjkgImluY2x1ZGUvc2Vzc2lvbi5oIgpzdHJ1Y3Qgc2Vzc2lvbmlkIHsKICAgICAgICB1aWRfdCB1
aWQ7CiAgICAgICAgZ2lkX3QgZ2lkOwogICAgICAgIGZzdHJpbmcgdXNlcm5hbWU7CiAgICAgICAg
ZnN0cmluZyBob3N0bmFtZTsKICAgICAgICBmc3RyaW5nIG5ldGJpb3NfbmFtZTsKICAgICAgICBm
c3RyaW5nIHJlbW90ZV9tYWNoaW5lOwogICAgICAgIGZzdHJpbmcgaWRfc3RyOwogICAgICAgIHVu
c2lnbmVkIGludCBpZF9udW07CiAgICAgICAgdW5zaWduZWQgaW50IHBpZDsKICAgICAgICBmc3Ry
aW5nIGlwX2FkZHI7Cn07CiMgNzIyICJpbmNsdWRlL2luY2x1ZGVzLmgiIDIKCiMgMSAiaW5jbHVk
ZS9hc24xLmgiIDEKIyAyMyAiaW5jbHVkZS9hc24xLmgiCnN0cnVjdCBuZXN0aW5nIHsKICAgICAg
ICBvZmZfdCBzdGFydDsKICAgICAgICBzaXplX3QgdGFnbGVuOwogICAgICAgIHN0cnVjdCBuZXN0
aW5nICpuZXh0Owp9OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGNoYXIgKmRh
dGE7CiAgICAgICAgc2l6ZV90IGxlbmd0aDsKICAgICAgICBvZmZfdCBvZnM7CiAgICAgICAgc3Ry
dWN0IG5lc3RpbmcgKm5lc3Rpbmc7CiAgICAgICAgQk9PTCBoYXNfZXJyb3I7Cn0gQVNOMV9EQVRB
OwojIDcyNCAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9w
b3B0LmgiIDEgMwojIDEwNyAiL3Vzci9sb2NhbC9pbmNsdWRlL3BvcHQuaCIgMwpzdHJ1Y3QgcG9w
dE9wdGlvbiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqIGxvbmdOYW1l
OwogICAgY2hhciBzaG9ydE5hbWU7CiAgICBpbnQgYXJnSW5mbzsKICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqIGFyZzsKICAgIGludCB2YWw7CiAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKiBkZXNjcmlwOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICog
YXJnRGVzY3JpcDsKfTsKCgoKc3RydWN0IHBvcHRBbGlhcyB7CiAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqIGxvbmdOYW1lOwogICAgY2hhciBzaG9ydE5hbWU7CiAgICBpbnQgYXJn
YzsKICAgICAgICAgICAgY29uc3QgY2hhciAqKiBhcmd2Owp9OwoKCgoKCmV4dGVybiBzdHJ1Y3Qg
cG9wdE9wdGlvbiBwb3B0SGVscE9wdGlvbnNbXTsKCgoKCgoKCnR5cGVkZWYgc3RydWN0IHBvcHRD
b250ZXh0X3MgKiBwb3B0Q29udGV4dDsKCgoKCnR5cGVkZWYgc3RydWN0IHBvcHRPcHRpb24gKiBw
b3B0T3B0aW9uOwoKCmVudW0gcG9wdENhbGxiYWNrUmVhc29uIHsgUE9QVF9DQUxMQkFDS19SRUFT
T05fUFJFLAogICAgICAgICAgICAgICAgICAgICAgICAgIFBPUFRfQ0FMTEJBQ0tfUkVBU09OX1BP
U1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUE9QVF9DQUxMQkFDS19SRUFTT05fT1BUSU9O
IH07CiMgMTU4ICIvdXNyL2xvY2FsL2luY2x1ZGUvcG9wdC5oIiAzCnR5cGVkZWYgdm9pZCAoKnBv
cHRDYWxsYmFja1R5cGUpIChwb3B0Q29udGV4dCBjb24sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudW0gcG9wdENhbGxiYWNrUmVhc29uIHJlYXNvbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBvcHRPcHRpb24gKiBvcHQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBhcmcsIGNvbnN0IHZvaWQgKiBk
YXRhKTsKIyAxNzIgIi91c3IvbG9jYWwvaW5jbHVkZS9wb3B0LmgiIDMKICAgICAgICAgICBwb3B0
Q29udGV4dCBwb3B0R2V0Q29udGV4dCggY29uc3QgY2hhciAqIG5hbWUsCiAgICAgICAgICAgICAg
ICBpbnQgYXJnYywgY29uc3QgY2hhciAqKiBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJ1Y3QgcG9wdE9wdGlvbiAqIG9wdGlvbnMsIGludCBmbGFncyk7CgoKCgoKdm9p
ZCBwb3B0UmVzZXRDb250ZXh0KHBvcHRDb250ZXh0IGNvbik7CgoKCgoKCmludCBwb3B0R2V0TmV4
dE9wdChwb3B0Q29udGV4dCBjb24pOwoKCgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciAqIHBvcHRHZXRPcHRBcmcocG9wdENvbnRleHQgY29uKTsKCgoKCgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogcG9wdEdldEFyZyhwb3B0Q29udGV4dCBjb24p
OwoKCgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwb3B0UGVla0Fy
Zyhwb3B0Q29udGV4dCBjb24pOwoKCgoKCgogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKiogcG9wdEdldEFyZ3MocG9wdENvbnRleHQgY29uKTsKCgoKCgoKICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqIHBvcHRCYWRPcHRpb24ocG9wdENvbnRleHQgY29uLCBpbnQgZmxhZ3Mp
OwoKCgoKCnZvaWQgcG9wdEZyZWVDb250ZXh0KCBwb3B0Q29udGV4dCBjb24pOwoKCgoKCgoKaW50
IHBvcHRTdHVmZkFyZ3MocG9wdENvbnRleHQgY29uLCBjb25zdCBjaGFyICoqIGFyZ3YpOwojIDI0
NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3BvcHQuaCIgMwppbnQgcG9wdEFkZEFsaWFzKHBvcHRDb250
ZXh0IGNvbiwgc3RydWN0IHBvcHRBbGlhcyBhbGlhcywgaW50IGZsYWdzKTsKCgoKCgoKCmludCBw
b3B0UmVhZENvbmZpZ0ZpbGUocG9wdENvbnRleHQgY29uLCBjb25zdCBjaGFyICogZm4pOwoKCgoK
CgoKaW50IHBvcHRSZWFkRGVmYXVsdENvbmZpZyhwb3B0Q29udGV4dCBjb24sIGludCB1c2VFbnYp
OwojIDI3NCAiL3Vzci9sb2NhbC9pbmNsdWRlL3BvcHQuaCIgMwppbnQgcG9wdER1cEFyZ3YoaW50
IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCAq
IGFyZ2NQdHIsIGNvbnN0IGNoYXIgKioqIGFyZ3ZQdHIpOwojIDI4OCAiL3Vzci9sb2NhbC9pbmNs
dWRlL3BvcHQuaCIgMwppbnQgcG9wdFBhcnNlQXJndlN0cmluZyhjb25zdCBjaGFyICogcywKICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgKiBhcmdjUHRyLCBjb25zdCBjaGFyICoqKiBhcmd2
UHRyKTsKCgoKCgoKICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY29uc3QgcG9wdFN0cmVycm9y
KGNvbnN0IGludCBlcnJvcik7CgoKCgoKCgp2b2lkIHBvcHRTZXRFeGVjUGF0aChwb3B0Q29udGV4
dCBjb24sIGNvbnN0IGNoYXIgKiBwYXRoLCBpbnQgYWxsb3dBYnNvbHV0ZSk7CgoKCgoKCgp2b2lk
IHBvcHRQcmludEhlbHAocG9wdENvbnRleHQgY29uLCBGSUxFICogZiwgaW50IGZsYWdzKTsKCgoK
CgoKCnZvaWQgcG9wdFByaW50VXNhZ2UocG9wdENvbnRleHQgY29uLCBGSUxFICogZiwgaW50IGZs
YWdzKTsKCgoKCgoKdm9pZCBwb3B0U2V0T3RoZXJPcHRpb25IZWxwKHBvcHRDb250ZXh0IGNvbiwg
Y29uc3QgY2hhciAqIHRleHQpOwoKCgoKCiAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiBwb3B0
R2V0SW52b2NhdGlvbk5hbWUocG9wdENvbnRleHQgY29uKTsKCgoKCgoKaW50IHBvcHRTdHJpcHBl
ZEFyZ3YocG9wdENvbnRleHQgY29uLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwojIDcyNiAiaW5j
bHVkZS9pbmNsdWRlcy5oIiAyCiMgNzM2ICJpbmNsdWRlL2luY2x1ZGVzLmgiCnR5cGVkZWYgc3Ry
dWN0IHNtYl93ZGlyZW50IHsKICAgICAgICB3cHN0cmluZyBkX25hbWU7Cn0gU01CX1NUUlVDVF9X
RElSRU5UOwoKCgoKCnR5cGVkZWYgc3RydWN0IHNtYl93cGFzc3dkIHsKICAgICAgICB3ZnN0cmlu
ZyBwd19uYW1lOwogICAgICAgIGNoYXIgKnB3X3Bhc3N3ZDsKICAgICAgICB1aWRfdCBwd191aWQ7
CiAgICAgICAgZ2lkX3QgcHdfZ2lkOwogICAgICAgIHdwc3RyaW5nIHB3X2dlY29zOwogICAgICAg
IHdwc3RyaW5nIHB3X2RpcjsKICAgICAgICB3cHN0cmluZyBwd19zaGVsbDsKfSBTTUJfU1RSVUNU
X1dQQVNTV0Q7CgoKc3RydWN0IGZ1bmN0YWJsZSB7CiAgICAgICAgY2hhciAqZnVuY25hbWU7CiAg
ICAgICAgaW50ICgqZm4pKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7Cn07CiMgNzY4ICJp
bmNsdWRlL2luY2x1ZGVzLmgiCiMgMSAibnNzd2l0Y2gvbnNzLmgiIDEKIyA0NyAibnNzd2l0Y2gv
bnNzLmgiCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL25zcy5oIiAxIDMKIyAyOCAiL3Vzci9sb2Nh
bC9pbmNsdWRlL25zcy5oIiAzCgoKCmVudW0gbnNzX3N0YXR1cwp7CiAgTlNTX1NUQVRVU19UUllB
R0FJTiA9IC0yLAogIE5TU19TVEFUVVNfVU5BVkFJTCwKICBOU1NfU1RBVFVTX05PVEZPVU5ELAog
IE5TU19TVEFUVVNfU1VDQ0VTUywKICBOU1NfU1RBVFVTX1JFVFVSTgp9OwojIDQ3ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvbnNzLmgiIDMKZXh0ZXJuIGludCBfX25zc19jb25maWd1cmVfbG9va3VwIChf
X2NvbnN0IGNoYXIgKl9fZGJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9fY29uc3QgY2hhciAqX19zdHJpbmcpIDsKCgojIDQ4ICJuc3N3aXRjaC9uc3MuaCIgMgoKdHlw
ZWRlZiBlbnVtIG5zc19zdGF0dXMgTlNTX1NUQVRVUzsKIyA3NjkgImluY2x1ZGUvaW5jbHVkZXMu
aCIgMgoKCiMgMSAiaW5jbHVkZS9wcm90by5oIiAxCgoKCgoKCgpOVFNUQVRVUyBjaGVja19wYXNz
d29yZChjb25zdCBhdXRoX3VzZXJzdXBwbGllZF9pbmZvICp1c2VyX2luZm8sCiAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGF1dGhfYXV0aHN1cHBsaWVkX2luZm8gKmF1dGhfaW5mbywKICAg
ICAgICAgICAgICAgICAgICAgICAgYXV0aF9zZXJ2ZXJzdXBwbGllZF9pbmZvICoqc2VydmVyX2lu
Zm8pOwpOVFNUQVRVUyBudF9zdGF0dXNfc3F1YXNoKE5UU1RBVFVTIG50X3N0YXR1cykgOwpCT09M
IHBhc3N3b3JkX29rKGNoYXIgKnNtYl9uYW1lLCBEQVRBX0JMT0IgcGFzc3dvcmRfYmxvYik7CgoK
CkJPT0wgYXV0aF9pbml0X2d1ZXN0KGF1dGhfbWV0aG9kcyAqKmF1dGhfbWV0aG9kKSA7CkJPT0wg
YXV0aF9pbml0X25hbWVfdG9fbnRzdGF0dXMoYXV0aF9tZXRob2RzICoqYXV0aF9tZXRob2QpIDsK
CgoKQk9PTCBhdXRoX2luaXRfbnRkb21haW4oYXV0aF9tZXRob2RzICoqYXV0aF9tZXRob2QpIDsK
CgoKQk9PTCBtYWtlX2F1dGhfaW5mb19saXN0KGF1dGhfYXV0aHN1cHBsaWVkX2luZm8gKiphdXRo
X2luZm8sIGF1dGhfbWV0aG9kcyAqbGlzdCkgOwpCT09MIG1ha2VfYXV0aF9pbmZvX3N1YnN5c3Rl
bShhdXRoX2F1dGhzdXBwbGllZF9pbmZvICoqYXV0aF9pbmZvKSA7CkJPT0wgbWFrZV9hdXRoX2lu
Zm9fcmFuZG9tKGF1dGhfYXV0aHN1cHBsaWVkX2luZm8gKiphdXRoX2luZm8pIDsKQk9PTCBtYWtl
X2F1dGhfaW5mb19maXhlZChhdXRoX2F1dGhzdXBwbGllZF9pbmZvICoqYXV0aF9pbmZvLCB1bnNp
Z25lZCBjaGFyIGNoYWxbOF0pIDsKdm9pZCBmcmVlX2F1dGhfaW5mbyhhdXRoX2F1dGhzdXBwbGll
ZF9pbmZvICoqYXV0aF9pbmZvKTsKREFUQV9CTE9CIGF1dGhfZ2V0X2NoYWxsZW5nZShhdXRoX2F1
dGhzdXBwbGllZF9pbmZvICphdXRoX2luZm8pIDsKCgoKQk9PTCBhdXRoX2luaXRfaG9zdHNlcXVp
dihhdXRoX21ldGhvZHMgKiphdXRoX21ldGhvZCkgOwpCT09MIGF1dGhfaW5pdF9yaG9zdHMoYXV0
aF9tZXRob2RzICoqYXV0aF9tZXRob2QpIDsKCgoKQk9PTCBhdXRoX2luaXRfc2FtKGF1dGhfbWV0
aG9kcyAqKmF1dGhfbWV0aG9kKSA7CkJPT0wgYXV0aF9pbml0X3NhbXN0cmljdChhdXRoX21ldGhv
ZHMgKiphdXRoX21ldGhvZCkgOwoKCgpCT09MIGF1dGhfaW5pdF9zbWJzZXJ2ZXIoYXV0aF9tZXRo
b2RzICoqYXV0aF9tZXRob2QpIDsKCgoKTlRTVEFUVVMgY2hlY2tfdW5peF9zZWN1cml0eSh2b2lk
ICpteV9wcml2YXRlX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0
aF91c2Vyc3VwcGxpZWRfaW5mbyAqdXNlcl9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGF1dGhfYXV0aHN1cHBsaWVkX2luZm8gKmF1dGhfaW5mbywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRoX3NlcnZlcnN1cHBsaWVkX2luZm8gKipzZXJ2ZXJfaW5mbyk7
CkJPT0wgYXV0aF9pbml0X3VuaXgoYXV0aF9tZXRob2RzICoqYXV0aF9tZXRob2QpIDsKCgoKaW50
IHNtYl9kZWxldGVfdXNlcihjaGFyICp1bml4X3VzZXIpOwp2b2lkIHNtYl91c2VyX2NvbnRyb2wo
Y29uc3QgYXV0aF91c2Vyc3VwcGxpZWRfaW5mbyAqdXNlcl9pbmZvLCBhdXRoX3NlcnZlcnN1cHBs
aWVkX2luZm8gKnNlcnZlcl9pbmZvLCBOVFNUQVRVUyBudF9zdGF0dXMpIDsKQk9PTCBtYWtlX3Vz
ZXJfaW5mb19tYXAoYXV0aF91c2Vyc3VwcGxpZWRfaW5mbyAqKnVzZXJfaW5mbywKICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc21iX25hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKmNsaWVudF9kb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKndrc3RhX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQiBs
bV9wd2QsIERBVEFfQkxPQiBudF9wd2QsCiAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxP
QiBwbGFpbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudGxtc3Nw
X2ZsYWdzLCBCT09MIGVuY3J5cHRlZCk7CkJPT0wgbWFrZV91c2VyX2luZm9fbmV0bG9nb25fbmV0
d29yayhhdXRoX3VzZXJzdXBwbGllZF9pbmZvICoqdXNlcl9pbmZvLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqc21iX25hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGFyICpjbGllbnRfZG9tYWluLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqd2tzdGFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmxtX25ldHdvcmtfcHdkLCBpbnQgbG1fcHdk
X2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg
Km50X25ldHdvcmtfcHdkLCBpbnQgbnRfcHdkX2xlbik7CkJPT0wgbWFrZV91c2VyX2luZm9fbmV0
bG9nb25faW50ZXJhY3RpdmUoYXV0aF91c2Vyc3VwcGxpZWRfaW5mbyAqKnVzZXJfaW5mbywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzbWJfbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjbGllbnRfZG9tYWlu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKndrc3RhX25h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjaGFsWzhd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg
bG1faW50ZXJhY3RpdmVfcHdkWzE2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIG50X2ludGVyYWN0aXZlX3B3ZFsxNl0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGNfc2Vzc19rZXkp
OwpCT09MIG1ha2VfdXNlcl9pbmZvX3dpbmJpbmQoYXV0aF91c2Vyc3VwcGxpZWRfaW5mbyAqKnVz
ZXJfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnVzZXJuYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZG9tYWluLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGFzc3dvcmQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFyIGNoYWxbOF0KICAgICAgICApOwpCT09MIG1ha2VfdXNlcl9pbmZv
X3dpbmJpbmRfY3JhcChhdXRoX3VzZXJzdXBwbGllZF9pbmZvICoqdXNlcl9pbmZvLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzbWJfbmFtZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqY2xpZW50X2RvbWFpbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqbG1fbmV0d29ya19wd2QsIGludCBsbV9wd2Rf
bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpudF9u
ZXR3b3JrX3B3ZCwgaW50IG50X3B3ZF9sZW4pOwpCT09MIG1ha2VfdXNlcl9pbmZvX2Zvcl9yZXBs
eShhdXRoX3VzZXJzdXBwbGllZF9pbmZvICoqdXNlcl9pbmZvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpzbWJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqY2xpZW50X2RvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBj
aGFsWzhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0JMT0IgcGxhaW50ZXh0
X3Bhc3N3b3JkKTsKQk9PTCBtYWtlX3VzZXJfaW5mb19mb3JfcmVwbHlfZW5jKGF1dGhfdXNlcnN1
cHBsaWVkX2luZm8gKip1c2VyX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKnNtYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjbGllbnRf
ZG9tYWluLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0JMT0IgbG1fcmVzcCwg
REFUQV9CTE9CIG50X3Jlc3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxP
QiBwbGFpbnRleHRfcGFzc3dvcmQpOwpCT09MIG1ha2VfdXNlcl9pbmZvX2d1ZXN0KGF1dGhfdXNl
cnN1cHBsaWVkX2luZm8gKip1c2VyX2luZm8pIDsKQk9PTCBtYWtlX3NlcnZlcl9pbmZvKGF1dGhf
c2VydmVyc3VwcGxpZWRfaW5mbyAqKnNlcnZlcl9pbmZvKSA7CkJPT0wgbWFrZV9zZXJ2ZXJfaW5m
b19zYW0oYXV0aF9zZXJ2ZXJzdXBwbGllZF9pbmZvICoqc2VydmVyX2luZm8sIFNBTV9BQ0NPVU5U
ICpzYW1wYXNzKSA7CkJPT0wgbWFrZV9zZXJ2ZXJfaW5mb19wdyhhdXRoX3NlcnZlcnN1cHBsaWVk
X2luZm8gKipzZXJ2ZXJfaW5mbywgY29uc3Qgc3RydWN0IHBhc3N3ZCAqcHdkKTsKdm9pZCBmcmVl
X3VzZXJfaW5mbyhhdXRoX3VzZXJzdXBwbGllZF9pbmZvICoqdXNlcl9pbmZvKTsKdm9pZCBmcmVl
X3NlcnZlcl9pbmZvKGF1dGhfc2VydmVyc3VwcGxpZWRfaW5mbyAqKnNlcnZlcl9pbmZvKTsKQk9P
TCBtYWtlX3NlcnZlcl9pbmZvX2d1ZXN0KGF1dGhfc2VydmVyc3VwcGxpZWRfaW5mbyAqKnNlcnZl
cl9pbmZvKSA7CkJPT0wgbWFrZV9hdXRoX21ldGhvZHMoYXV0aF9tZXRob2RzICoqYXV0aF9tZXRo
b2QpIDsKdm9pZCBkZWxldGVfbnRfdG9rZW4oTlRfVVNFUl9UT0tFTiAqKnBwdG9rZW4pOwpOVF9V
U0VSX1RPS0VOICpkdXBfbnRfdG9rZW4oTlRfVVNFUl9UT0tFTiAqcHRva2VuKTsKCgoKQk9PTCBh
dXRoX2luaXRfd2luYmluZChhdXRoX21ldGhvZHMgKiphdXRoX21ldGhvZCkgOwoKCgpCT09MIHNt
Yl9wYW1fY2xhaW1fc2Vzc2lvbihjaGFyICp1c2VyLCBjaGFyICp0dHksIGNoYXIgKnJob3N0KTsK
Qk9PTCBzbWJfcGFtX2Nsb3NlX3Nlc3Npb24oY2hhciAqdXNlciwgY2hhciAqdHR5LCBjaGFyICpy
aG9zdCk7Ck5UU1RBVFVTIHNtYl9wYW1fYWNjb3VudGNoZWNrKGNvbnN0IGNoYXIgKiB1c2VyKTsK
TlRTVEFUVVMgc21iX3BhbV9wYXNzY2hlY2soY2hhciAqIHVzZXIsIGNoYXIgKiBwYXNzd29yZCk7
CkJPT0wgc21iX3BhbV9wYXNzY2hhbmdlKGNvbnN0IGNoYXIgKiB1c2VyLCBjb25zdCBjaGFyICog
b2xkcGFzc3dvcmQsIGNvbnN0IGNoYXIgKiBuZXdwYXNzd29yZCk7Ck5UU1RBVFVTIHNtYl9wYW1f
YWNjb3VudGNoZWNrKGNvbnN0IGNoYXIgKiB1c2VyKTsKQk9PTCBzbWJfcGFtX2NsYWltX3Nlc3Np
b24oY2hhciAqdXNlciwgY2hhciAqdHR5LCBjaGFyICpyaG9zdCk7CkJPT0wgc21iX3BhbV9jbG9z
ZV9zZXNzaW9uKGNoYXIgKmluX3VzZXIsIGNoYXIgKnR0eSwgY2hhciAqcmhvc3QpOwoKCgp2b2lk
IGRmc191bmxvZ2luKHZvaWQpOwpOVFNUQVRVUyBwYXNzX2NoZWNrKHN0cnVjdCBwYXNzd2QgKnBh
c3MsIGNoYXIgKnVzZXIsIGNoYXIgKnBhc3N3b3JkLAogICAgICAgICAgICAgICAgICAgIGludCBw
d2xlbiwgQk9PTCAoKmZuKSAoY2hhciAqLCBjaGFyICopLCBCT09MIHJ1bl9jcmFja2VyKTsKCgoK
dm9pZCBkb19saXN0KGNvbnN0IGNoYXIgKm1hc2ssdW5zaWduZWQgc2hvcnQgYXR0cmlidXRlLHZv
aWQgKCpmbikoZmlsZV9pbmZvICopLEJPT0wgcmVjLCBCT09MIGRpcnMpOwpzdHJ1Y3QgY2xpX3N0
YXRlICpkb19jb25uZWN0KGNvbnN0IGNoYXIgKnNlcnZlciwgY29uc3QgY2hhciAqc2hhcmUpOwoK
CgppbnQgY21kX2Jsb2NrKHZvaWQpOwppbnQgY21kX3Rhcm1vZGUodm9pZCk7CmludCBjbWRfc2V0
bW9kZSh2b2lkKTsKaW50IGNtZF90YXIodm9pZCk7CmludCBwcm9jZXNzX3Rhcih2b2lkKTsKaW50
IHRhcl9wYXJzZWFyZ3MoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgY2hhciAqT3B0YXJnLCBpbnQg
T3B0aW5kKTsKCgoKCgoKY2hhciAqZGVjb2RlX3NpZF9uYW1lX3VzZShmc3RyaW5nIGdyb3VwLCBl
bnVtIFNJRF9OQU1FX1VTRSBuYW1lX3VzZSk7CkJPT0wgaW5pdF9ncm91cF9tYXBwaW5nKHZvaWQp
OwpCT09MIGFkZF9tYXBwaW5nX2VudHJ5KEdST1VQX01BUCAqbWFwLCBpbnQgZmxhZyk7CkJPT0wg
YWRkX2luaXRpYWxfZW50cnkoZ2lkX3QgZ2lkLCBmc3RyaW5nIHNpZCwgZW51bSBTSURfTkFNRV9V
U0Ugc2lkX25hbWVfdXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIG50
X25hbWUsIGZzdHJpbmcgY29tbWVudCwgUFJJVklMRUdFX1NFVCBwcml2X3NldCwgdW5zaWduZWQg
aW50IHN5c3RlbWFjY291bnQpOwp2b2lkIGluaXRfcHJpdmlsZWdlKFBSSVZJTEVHRV9TRVQgKnBy
aXZfc2V0KTsKQk9PTCBmcmVlX3ByaXZpbGVnZShQUklWSUxFR0VfU0VUICpwcml2X3NldCk7CkJP
T0wgYWRkX3ByaXZpbGVnZShQUklWSUxFR0VfU0VUICpwcml2X3NldCwgTFVJRF9BVFRSIHNldCk7
CkJPT0wgYWRkX2FsbF9wcml2aWxlZ2UoUFJJVklMRUdFX1NFVCAqcHJpdl9zZXQpOwpCT09MIGNo
ZWNrX2VtcHR5X3ByaXZpbGVnZShQUklWSUxFR0VfU0VUICpwcml2X3NldCk7CkJPT0wgY2hlY2tf
cHJpdl9pbl9wcml2aWxlZ2UoUFJJVklMRUdFX1NFVCAqcHJpdl9zZXQsIExVSURfQVRUUiBzZXQp
OwpCT09MIHJlbW92ZV9wcml2aWxlZ2UoUFJJVklMRUdFX1NFVCAqcHJpdl9zZXQsIExVSURfQVRU
UiBzZXQpOwpCT09MIGRlZmF1bHRfZ3JvdXBfbWFwcGluZyh2b2lkKTsKQk9PTCBnZXRfZ3JvdXBf
bWFwX2Zyb21fc2lkKERPTV9TSUQgc2lkLCBHUk9VUF9NQVAgKm1hcCwgQk9PTCB3aXRoX3ByaXYp
OwpCT09MIGdldF9ncm91cF9tYXBfZnJvbV9naWQoZ2lkX3QgZ2lkLCBHUk9VUF9NQVAgKm1hcCwg
Qk9PTCB3aXRoX3ByaXYpOwpCT09MIGdldF9ncm91cF9tYXBfZnJvbV9udG5hbWUoY2hhciAqbmFt
ZSwgR1JPVVBfTUFQICptYXAsIEJPT0wgd2l0aF9wcml2KTsKQk9PTCBncm91cF9tYXBfcmVtb3Zl
KERPTV9TSUQgc2lkKTsKQk9PTCBlbnVtX2dyb3VwX21hcHBpbmcoZW51bSBTSURfTkFNRV9VU0Ug
c2lkX25hbWVfdXNlLCBHUk9VUF9NQVAgKipybWFwLAogICAgICAgICAgICAgICAgICAgICAgICBp
bnQgKm51bV9lbnRyaWVzLCBCT09MIHVuaXhfb25seSwgQk9PTCB3aXRoX3ByaXYpOwp2b2lkIGNv
bnZlcnRfcHJpdl9mcm9tX3RleHQoUFJJVklMRUdFX1NFVCAqc2VfcHJpdiwgY2hhciAqcHJpdmls
ZWdlKTsKdm9pZCBjb252ZXJ0X3ByaXZfdG9fdGV4dChQUklWSUxFR0VfU0VUICpzZV9wcml2LCBj
aGFyICpwcml2aWxlZ2UpOwpCT09MIGdldF9kb21haW5fZ3JvdXBfZnJvbV9zaWQoRE9NX1NJRCBz
aWQsIEdST1VQX01BUCAqbWFwLCBCT09MIHdpdGhfcHJpdik7CkJPT0wgZ2V0X2xvY2FsX2dyb3Vw
X2Zyb21fc2lkKERPTV9TSUQgc2lkLCBHUk9VUF9NQVAgKm1hcCwgQk9PTCB3aXRoX3ByaXYpOwpC
T09MIGdldF9idWlsdGluX2dyb3VwX2Zyb21fc2lkKERPTV9TSUQgc2lkLCBHUk9VUF9NQVAgKm1h
cCwgQk9PTCB3aXRoX3ByaXYpOwpCT09MIGdldF9ncm91cF9mcm9tX2dpZChnaWRfdCBnaWQsIEdS
T1VQX01BUCAqbWFwLCBCT09MIHdpdGhfcHJpdik7CkJPT0wgZ2V0X3VpZF9saXN0X29mX2dyb3Vw
KGdpZF90IGdpZCwgdWlkX3QgKip1aWQsIGludCAqbnVtX3VpZHMpOwppbnQgc21iX2NyZWF0ZV9n
cm91cChjaGFyICp1bml4X2dyb3VwKTsKaW50IHNtYl9kZWxldGVfZ3JvdXAoY2hhciAqdW5peF9n
cm91cCk7CmludCBzbWJfYWRkX3VzZXJfZ3JvdXAoY2hhciAqdW5peF9ncm91cCwgY2hhciAqdW5p
eF91c2VyKTsKaW50IHNtYl9kZWxldGVfdXNlcl9ncm91cChjaGFyICp1bml4X2dyb3VwLCBjaGFy
ICp1bml4X3VzZXIpOwoKCgpCT09MIGxhbmdfdGRiX2luaXQoY29uc3QgY2hhciAqbGFuZyk7CmNv
bnN0IGNoYXIgKmxhbmdfbXNnKGNvbnN0IGNoYXIgKm1zZ2lkKTsKdm9pZCBsYW5nX21zZ19mcmVl
KGNvbnN0IGNoYXIgKm1zZ3N0cik7CmNvbnN0IGNoYXIgKmxhbmdfbXNnX3JvdGF0ZShjb25zdCBj
aGFyICptc2dpZCk7CmNoYXIgKmxhbmdfdGRiX2N1cnJlbnQodm9pZCk7CgoKCkJPT0wgYWxsb3df
YWNjZXNzKGNoYXIgKipkZW55X2xpc3QsY2hhciAqKmFsbG93X2xpc3QsCiAgICAgICAgICAgICAg
ICAgIGNoYXIgKmNuYW1lLGNoYXIgKmNhZGRyKTsKQk9PTCBjaGVja19hY2Nlc3MoaW50IHNvY2ss
IGNoYXIgKiphbGxvd19saXN0LCBjaGFyICoqZGVueV9saXN0KTsKCgoKQk9PTCBpbml0X2FjY291
bnRfcG9saWN5KHZvaWQpOwpCT09MIGFjY291bnRfcG9saWN5X2dldChpbnQgZmllbGQsIGludCAq
dmFsdWUpOwpCT09MIGFjY291bnRfcG9saWN5X3NldChpbnQgZmllbGQsIGludCB2YWx1ZSk7CgoK
CnN0cnVjdCBiaXRtYXAgKmJpdG1hcF9hbGxvY2F0ZShpbnQgbik7CnZvaWQgYml0bWFwX2ZyZWUo
c3RydWN0IGJpdG1hcCAqYm0pOwpCT09MIGJpdG1hcF9zZXQoc3RydWN0IGJpdG1hcCAqYm0sIHVu
c2lnbmVkIGkpOwpCT09MIGJpdG1hcF9jbGVhcihzdHJ1Y3QgYml0bWFwICpibSwgdW5zaWduZWQg
aSk7CkJPT0wgYml0bWFwX3F1ZXJ5KHN0cnVjdCBiaXRtYXAgKmJtLCB1bnNpZ25lZCBpKTsKaW50
IGJpdG1hcF9maW5kKHN0cnVjdCBiaXRtYXAgKmJtLCB1bnNpZ25lZCBvZnMpOwoKCgp2b2lkIGlu
aXRfaWNvbnYodm9pZCk7CnNpemVfdCBjb252ZXJ0X3N0cmluZyhjaGFyc2V0X3QgZnJvbSwgY2hh
cnNldF90IHRvLAogICAgICAgICAgICAgICAgICAgICAgdm9pZCBjb25zdCAqc3JjLCBzaXplX3Qg
c3JjbGVuLAogICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGVzdCwgc2l6ZV90IGRlc3RsZW4p
OwpzaXplX3QgY29udmVydF9zdHJpbmdfYWxsb2NhdGUoY2hhcnNldF90IGZyb20sIGNoYXJzZXRf
dCB0bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkIGNvbnN0ICpzcmMsIHNp
emVfdCBzcmNsZW4sIHZvaWQgKipkZXN0KTsKaW50IHVuaXhfc3RydXBwZXIoY29uc3QgY2hhciAq
c3JjLCBzaXplX3Qgc3JjbGVuLCBjaGFyICpkZXN0LCBzaXplX3QgZGVzdGxlbik7CmludCB1bml4
X3N0cmxvd2VyKGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IHNyY2xlbiwgY2hhciAqZGVzdCwgc2l6
ZV90IGRlc3RsZW4pOwppbnQgdWNzMl9hbGlnbihjb25zdCB2b2lkICpiYXNlX3B0ciwgY29uc3Qg
dm9pZCAqcCwgaW50IGZsYWdzKTsKaW50IHB1c2hfYXNjaWkodm9pZCAqZGVzdCwgY29uc3QgY2hh
ciAqc3JjLCBpbnQgZGVzdF9sZW4sIGludCBmbGFncyk7CmludCBwdXNoX2FzY2lpX2ZzdHJpbmco
dm9pZCAqZGVzdCwgY29uc3QgY2hhciAqc3JjKTsKaW50IHB1c2hfYXNjaWlfcHN0cmluZyh2b2lk
ICpkZXN0LCBjb25zdCBjaGFyICpzcmMpOwppbnQgcHVzaF9wc3RyaW5nKHZvaWQgKmRlc3QsIGNv
bnN0IGNoYXIgKnNyYyk7CmludCBwdWxsX2FzY2lpKGNoYXIgKmRlc3QsIGNvbnN0IHZvaWQgKnNy
YywgaW50IGRlc3RfbGVuLCBpbnQgc3JjX2xlbiwgaW50IGZsYWdzKTsKaW50IHB1bGxfYXNjaWlf
cHN0cmluZyhjaGFyICpkZXN0LCBjb25zdCB2b2lkICpzcmMpOwppbnQgcHVsbF9hc2NpaV9mc3Ry
aW5nKGNoYXIgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYyk7CmludCBwdXNoX3VjczIoY29uc3Qgdm9p
ZCAqYmFzZV9wdHIsIHZvaWQgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgaW50IGRlc3RfbGVuLCBp
bnQgZmxhZ3MpOwppbnQgcHVsbF91Y3MyKGNvbnN0IHZvaWQgKmJhc2VfcHRyLCBjaGFyICpkZXN0
LCBjb25zdCB2b2lkICpzcmMsIGludCBkZXN0X2xlbiwgaW50IHNyY19sZW4sIGludCBmbGFncyk7
CmludCBwdWxsX3VjczJfcHN0cmluZyhjaGFyICpkZXN0LCBjb25zdCB2b2lkICpzcmMpOwppbnQg
cHVsbF91Y3MyX2ZzdHJpbmcoY2hhciAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjKTsKaW50IHB1c2hf
c3RyaW5nKGNvbnN0IHZvaWQgKmJhc2VfcHRyLCB2b2lkICpkZXN0LCBjb25zdCBjaGFyICpzcmMs
IGludCBkZXN0X2xlbiwgaW50IGZsYWdzKTsKaW50IHB1bGxfc3RyaW5nKGNvbnN0IHZvaWQgKmJh
c2VfcHRyLCBjaGFyICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIGludCBkZXN0X2xlbiwgaW50IHNy
Y19sZW4sCiAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpOwppbnQgYWxpZ25fc3RyaW5nKGNvbnN0
IHZvaWQgKmJhc2VfcHRyLCBjb25zdCBjaGFyICpwLCBpbnQgZmxhZ3MpOwpjaGFyICphY252X3Uy
dXgoY29uc3Qgc21iX3VjczJfdCAqc3JjKTsKc21iX3VjczJfdCAqYWNudl91eHUyKGNvbnN0IGNo
YXIgKnNyYyk7CmNoYXIgKmFjbnZfdTJkb3MoY29uc3Qgc21iX3VjczJfdCAqc3JjKTsKc21iX3Vj
czJfdCAqYWNudl9kb3N1Mihjb25zdCBjaGFyICpzcmMpOwoKCgp1bnNpZ25lZCBpbnQgY3JjMzJf
Y2FsY19idWZmZXIoIGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGNvdW50KTsKCgoKY2hhciog
ZGVidWdfY2xhc3NuYW1lX2Zyb21faW5kZXgoaW50IG5keCk7CmludCBkZWJ1Z19sb29rdXBfY2xh
c3NuYW1lKGNoYXIqIGNsYXNzbmFtZSk7CkJPT0wgZGVidWdfcGFyc2VfcGFyYW1zKGNoYXIgKipw
YXJhbXMsIGludCAqZGVidWdsZXZlbF9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgQk9P
TCAqZGVidWdsZXZlbF9jbGFzc19pc3NldCk7CkJPT0wgZGVidWdfcGFyc2VfbGV2ZWxzKGNoYXIg
KnBhcmFtc19zdHIpOwp2b2lkIGRlYnVnX21lc3NhZ2UoaW50IG1zZ190eXBlLCBwaWRfdCBzcmMs
IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CnZvaWQgZGVidWdfbWVzc2FnZV9zZW5kKHBpZF90IHBp
ZCwgaW50IGxldmVsKTsKdm9pZCBzZXR1cF9sb2dnaW5nKGNoYXIgKnBuYW1lLCBCT09MIGludGVy
YWN0aXZlKTsKQk9PTCByZW9wZW5fbG9ncyggdm9pZCApOwp2b2lkIGZvcmNlX2NoZWNrX2xvZ19z
aXplKCB2b2lkICk7CkJPT0wgbmVlZF90b19jaGVja19sb2dfc2l6ZSggdm9pZCApOwp2b2lkIGNo
ZWNrX2xvZ19zaXplKCB2b2lkICk7CnZvaWQgZGJnZmx1c2goIHZvaWQgKTsKQk9PTCBkYmdoZHIo
IGludCBsZXZlbCwgY2hhciAqZmlsZSwgY2hhciAqZnVuYywgaW50IGxpbmUgKTsKCgoKaW50IGRf
dmZwcmludGYoRklMRSAqZiwgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFwKTsKdm9pZCBk
aXNwbGF5X3NldF9zdGRlcnIodm9pZCk7CgoKCk5UU1RBVFVTIG1hcF9udF9lcnJvcl9mcm9tX3Vu
aXgoaW50IHVuaXhfZXJyb3IpOwoKCgp2b2lkIGZhdWx0X3NldHVwKHZvaWQgKCpmbikodm9pZCAq
KSk7CgoKCmludCBzeXNfZnN1c2FnZShjb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBsb25nIGxv
bmcgKmRmcmVlLCB1bnNpZ25lZCBsb25nIGxvbmcgKmRzaXplKTsKCgoKdm9pZCBzZXRfcmFuZF9y
ZXNlZWRfZGF0YSh1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKTsKdm9pZCBnZW5lcmF0
ZV9yYW5kb21fYnVmZmVyKCB1bnNpZ25lZCBjaGFyICpvdXQsIGludCBsZW4sIEJPT0wgZG9fcmVz
ZWVkX25vdyk7CmNoYXIgKmdlbmVyYXRlX3JhbmRvbV9zdHIoc2l6ZV90IGxlbik7CgoKCmNoYXIg
KmdldHNtYnBhc3MoY2hhciAqcHJvbXB0KSA7CgoKCkJPT0wgaGFzaF90YWJsZV9pbml0KGhhc2hf
dGFibGUgKnRhYmxlLCBpbnQgbnVtX2J1Y2tldHMsIGNvbXBhcmVfZnVuY3Rpb24gY29tcGFyZV9m
dW5jKTsKaGFzaF9lbGVtZW50ICpoYXNoX2xvb2t1cChoYXNoX3RhYmxlICp0YWJsZSwgY2hhciAq
a2V5KTsKaGFzaF9lbGVtZW50ICpoYXNoX2luc2VydChoYXNoX3RhYmxlICp0YWJsZSwgY2hhciAq
dmFsdWUsIGNoYXIgKmtleSk7CnZvaWQgaGFzaF9yZW1vdmUoaGFzaF90YWJsZSAqdGFibGUsIGhh
c2hfZWxlbWVudCAqaGFzaF9lbGVtKTsKdm9pZCBoYXNoX2NsZWFyKGhhc2hfdGFibGUgKnRhYmxl
KTsKCgoKdm9pZCBobWFjX21kNV9pbml0X3JmYzIxMDQodW5zaWduZWQgY2hhcioga2V5LCBpbnQg
a2V5X2xlbiwgSE1BQ01ENUNvbnRleHQgKmN0eCk7CnZvaWQgaG1hY19tZDVfaW5pdF9saW1LX3Rv
XzY0KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGtleSwgaW50IGtleV9sZW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgIEhNQUNNRDVDb250ZXh0ICpjdHgpOwp2b2lkIGhtYWNfbWQ1X3VwZGF0ZShjb25z
dCB1bnNpZ25lZCBjaGFyKiB0ZXh0LCBpbnQgdGV4dF9sZW4sIEhNQUNNRDVDb250ZXh0ICpjdHgp
Owp2b2lkIGhtYWNfbWQ1X2ZpbmFsKHVuc2lnbmVkIGNoYXIgKmRpZ2VzdCwgSE1BQ01ENUNvbnRl
eHQgKmN0eCk7CnZvaWQgaG1hY19tZDUoIHVuc2lnbmVkIGNoYXIga2V5WzE2XSwgdW5zaWduZWQg
Y2hhciogZGF0YSwgaW50IGRhdGFfbGVuLCB1bnNpZ25lZCBjaGFyKiBkaWdlc3QpOwoKCgpzaXpl
X3Qgc21iX2ljb252KHNtYl9pY29udl90IGNkLAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg
KippbmJ1Ziwgc2l6ZV90ICppbmJ5dGVzbGVmdCwKICAgICAgICAgICAgICAgICBjaGFyICoqb3V0
YnVmLCBzaXplX3QgKm91dGJ5dGVzbGVmdCk7CnNtYl9pY29udl90IHNtYl9pY29udl9vcGVuKGNv
bnN0IGNoYXIgKnRvY29kZSwgY29uc3QgY2hhciAqZnJvbWNvZGUpOwppbnQgc21iX2ljb252X2Ns
b3NlIChzbWJfaWNvbnZfdCBjZCk7CgoKCnZvaWQgbG9hZF9pbnRlcmZhY2VzKHZvaWQpOwpCT09M
IGludGVyZmFjZXNfY2hhbmdlZCh2b2lkKTsKQk9PTCBpc215aXAoc3RydWN0IGluX2FkZHIgaXAp
OwpCT09MIGlzX2xvY2FsX25ldChzdHJ1Y3QgaW5fYWRkciBmcm9tKTsKaW50IGlmYWNlX2NvdW50
KHZvaWQpOwpCT09MIHdlX2FyZV9tdWx0aWhvbWVkKHZvaWQpOwpzdHJ1Y3QgaW50ZXJmYWNlICpn
ZXRfaW50ZXJmYWNlKGludCBuKTsKc3RydWN0IGluX2FkZHIgKmlmYWNlX25faXAoaW50IG4pOwpz
dHJ1Y3QgaW5fYWRkciAqaWZhY2Vfbl9iY2FzdChpbnQgbik7CnVuc2lnbmVkIGlmYWNlX2hhc2go
dm9pZCk7CnN0cnVjdCBpbl9hZGRyICppZmFjZV9iY2FzdChzdHJ1Y3QgaW5fYWRkciBpcCk7CnN0
cnVjdCBpbl9hZGRyICppZmFjZV9pcChzdHJ1Y3QgaW5fYWRkciBpcCk7CgoKCmludCBnZXRfaW50
ZXJmYWNlcyhzdHJ1Y3QgaWZhY2Vfc3RydWN0ICppZmFjZXMsIGludCBtYXhfaW50ZXJmYWNlcyk7
CgoKCnZvaWQgbWRmb3VyKHVuc2lnbmVkIGNoYXIgKm91dCwgY29uc3QgdW5zaWduZWQgY2hhciAq
aW4sIGludCBuKTsKCgoKdm9pZCBNRDVJbml0KHN0cnVjdCBNRDVDb250ZXh0ICpjdHgpOwp2b2lk
IE1ENVVwZGF0ZShzdHJ1Y3QgTUQ1Q29udGV4dCAqY3R4LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpi
dWYsIHVuc2lnbmVkIGxlbik7CnZvaWQgTUQ1RmluYWwodW5zaWduZWQgY2hhciBkaWdlc3RbMTZd
LCBzdHJ1Y3QgTUQ1Q29udGV4dCAqY3R4KTsKdm9pZCBNRDVUcmFuc2Zvcm0odW5zaWduZWQgaW50
IGJ1Zls0XSwgdW5zaWduZWQgaW50IGNvbnN0IGluWzE2XSk7CgoKCnZvaWQgcGluZ19tZXNzYWdl
KGludCBtc2dfdHlwZSwgcGlkX3Qgc3JjLCB2b2lkICpidWYsIHNpemVfdCBsZW4pOwp2b2lkIGRl
YnVnbGV2ZWxfbWVzc2FnZShpbnQgbXNnX3R5cGUsIHBpZF90IHNyYywgdm9pZCAqYnVmLCBzaXpl
X3QgbGVuKTsKQk9PTCBtZXNzYWdlX2luaXQodm9pZCk7CkJPT0wgbWVzc2FnZV9zZW5kX3BpZChw
aWRfdCBwaWQsIGludCBtc2dfdHlwZSwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLAogICAg
ICAgICAgICAgICAgICAgICAgQk9PTCBkdXBsaWNhdGVzX2FsbG93ZWQpOwp2b2lkIG1lc3NhZ2Vf
ZGlzcGF0Y2godm9pZCk7CnZvaWQgbWVzc2FnZV9yZWdpc3RlcihpbnQgbXNnX3R5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICB2b2lkICgqZm4pKGludCBtc2dfdHlwZSwgcGlkX3QgcGlkLCB2b2lk
ICpidWYsIHNpemVfdCBsZW4pKTsKdm9pZCBtZXNzYWdlX2RlcmVnaXN0ZXIoaW50IG1zZ190eXBl
KTsKQk9PTCBtZXNzYWdlX3NlbmRfYWxsKFREQl9DT05URVhUICpjb25uX3RkYiwgaW50IG1zZ190
eXBlLAogICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLAog
ICAgICAgICAgICAgICAgICAgICAgQk9PTCBkdXBsaWNhdGVzX2FsbG93ZWQsCiAgICAgICAgICAg
ICAgICAgICAgICBpbnQgKm5fc2VudCk7CgoKCmludCBtc19mbm1hdGNoKGNvbnN0IGNoYXIgKnBh
dHRlcm4sIGNvbnN0IGNoYXIgKnN0cmluZywgaW50IHByb3RvY29sKTsKaW50IGdlbl9mbm1hdGNo
KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGNvbnN0IGNoYXIgKnN0cmluZyk7CgoKCnBpZF90IHBpZGZp
bGVfcGlkKGNoYXIgKm5hbWUpOwp2b2lkIHBpZGZpbGVfY3JlYXRlKGNoYXIgKm5hbWUpOwoKCgpj
aGFyICpzbWJfcmVhZGxpbmUoY2hhciAqcHJvbXB0LCB2b2lkICgqY2FsbGJhY2spKHZvaWQpLAog
ICAgICAgICAgICAgICAgICAgY2hhciAqKihjb21wbGV0aW9uX2ZuKShjaGFyICp0ZXh0LCBpbnQg
c3RhcnQsIGludCBlbmQpKTsKaW50IGNtZF9oaXN0b3J5KHZvaWQpOwoKCgpjaGFyICpyZXBfaW5l
dF9udG9hKHN0cnVjdCBpbl9hZGRyIGlwKTsKCgoKdm9pZCBzeXNfc2VsZWN0X3NpZ25hbCh2b2lk
KTsKaW50IHN5c19zZWxlY3QoaW50IG1heGZkLCBmZF9zZXQgKmZkcyxzdHJ1Y3QgdGltZXZhbCAq
dHZhbCk7CmludCBzeXNfc2VsZWN0X2ludHIoaW50IG1heGZkLCBmZF9zZXQgKmZkcyxzdHJ1Y3Qg
dGltZXZhbCAqdHZhbCk7CgoKCnZvaWQgQmxvY2tTaWduYWxzKEJPT0wgYmxvY2ssaW50IHNpZ251
bSk7CnZvaWQgQ2F0Y2hTaWduYWwoaW50IHNpZ251bSx2b2lkICgqaGFuZGxlcikoaW50ICkpOwp2
b2lkIENhdGNoQ2hpbGQodm9pZCk7CnZvaWQgQ2F0Y2hDaGlsZExlYXZlU3RhdHVzKHZvaWQpOwoK
CgpCT09MIHNtYnBhc3N3ZF9nZXRoZXhwd2QoY2hhciAqcCwgdW5zaWduZWQgY2hhciAqcHdkKTsK
dm9pZCBzbWJwYXNzd2Rfc2V0aGV4cHdkKGZzdHJpbmcgcCwgdW5zaWduZWQgY2hhciAqcHdkLCB1
bnNpZ25lZCBzaG9ydCBhY2JfaW5mbyk7CnVuc2lnbmVkIHNob3J0IHNtYnBhc3N3ZF9kZWNvZGVf
YWNiX2luZm8oY29uc3QgY2hhciAqcCk7CmNoYXIgKnNtYnBhc3N3ZF9lbmNvZGVfYWNiX2luZm8o
dW5zaWduZWQgc2hvcnQgYWNiX2luZm8pOwoKCgppbnQgc21icnVuKGNoYXIgKmNtZCwgaW50ICpv
dXRmZCk7CgoKCgoKCnZvaWQgc3RhbmRhcmRfc3ViX2Jhc2ljKGNoYXIgKnNtYl9uYW1lLCBjaGFy
ICpzdHIpOwp2b2lkIHN0YW5kYXJkX3N1Yl9hZHZhbmNlZChpbnQgc251bSwgY2hhciAqdXNlciwg
Y2hhciAqY29ubmVjdHBhdGgsIGdpZF90IGdpZCwgY2hhciAqc21iX25hbWUsIGNoYXIgKnN0cik7
CnZvaWQgc3RhbmRhcmRfc3ViX2Nvbm4oY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKnN0
cik7CnZvaWQgc3RhbmRhcmRfc3ViX3NudW0oaW50IHNudW0sIGNoYXIgKnN0cik7CnZvaWQgc3Rh
bmRhcmRfc3ViX3Z1c2VyKGNoYXIgKnN0ciwgdXNlcl9zdHJ1Y3QgKnZ1c2VyKTsKdm9pZCBzdGFu
ZGFyZF9zdWJfdnNudW0oY2hhciAqc3RyLCB1c2VyX3N0cnVjdCAqdnVzZXIsIGludCBzbnVtKTsK
CgoKaW50IHN5c19hY2xfZ2V0X2VudHJ5KCBTTUJfQUNMX1QgdGhlX2FjbCwgaW50IGVudHJ5X2lk
LCBTTUJfQUNMX0VOVFJZX1QgKmVudHJ5X3ApOwppbnQgc3lzX2FjbF9nZXRfdGFnX3R5cGUoIFNN
Ql9BQ0xfRU5UUllfVCBlbnRyeV9kLCBpbnQgKnRhZ190eXBlX3ApOwppbnQgc3lzX2FjbF9nZXRf
cGVybXNldCggU01CX0FDTF9FTlRSWV9UIGVudHJ5X2QsIG1vZGVfdCAqcGVybXNldF9wKTsKdm9p
ZCAqc3lzX2FjbF9nZXRfcXVhbGlmaWVyKCBTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7ClNNQl9B
Q0xfVCBzeXNfYWNsX2dldF9maWxlKCBjb25zdCBjaGFyICpwYXRoX3AsIGludCB0eXBlKTsKU01C
X0FDTF9UIHN5c19hY2xfZ2V0X2ZkKGludCBmZCk7CmludCBzeXNfYWNsX2NsZWFyX3Blcm1zKG1v
ZGVfdCBwZXJtc2V0KTsKaW50IHN5c19hY2xfYWRkX3Blcm0oIG1vZGVfdCBwZXJtc2V0LCBtb2Rl
X3QgcGVybSk7CmludCBzeXNfYWNsX2dldF9wZXJtKCBtb2RlX3QgcGVybXNldCwgbW9kZV90IHBl
cm0pOwpjaGFyICpzeXNfYWNsX3RvX3RleHQoIFNNQl9BQ0xfVCB0aGVfYWNsLCBzc2l6ZV90ICpw
bGVuKTsKU01CX0FDTF9UIHN5c19hY2xfaW5pdCggaW50IGNvdW50KTsKaW50IHN5c19hY2xfY3Jl
YXRlX2VudHJ5KCBTTUJfQUNMX1QgKnBhY2wsIFNNQl9BQ0xfRU5UUllfVCAqcGVudHJ5KTsKaW50
IHN5c19hY2xfc2V0X3RhZ190eXBlKCBTTUJfQUNMX0VOVFJZX1QgZW50cnksIGludCB0YWd0eXBl
KTsKaW50IHN5c19hY2xfc2V0X3F1YWxpZmllciggU01CX0FDTF9FTlRSWV9UIGVudHJ5LCB2b2lk
ICpxdWFsKTsKaW50IHN5c19hY2xfc2V0X3Blcm1zZXQoIFNNQl9BQ0xfRU5UUllfVCBlbnRyeSwg
bW9kZV90IHBlcm1zZXQpOwppbnQgc3lzX2FjbF92YWxpZCggU01CX0FDTF9UIHRoZWFjbCApOwpp
bnQgc3lzX2FjbF9zZXRfZmlsZShjb25zdCBjaGFyICpuYW1lLCBpbnQgYWNsdHlwZSwgU01CX0FD
TF9UIHRoZWFjbCk7CmludCBzeXNfYWNsX3NldF9mZCggaW50IGZkLCBTTUJfQUNMX1QgdGhlYWNs
KTsKaW50IHN5c19hY2xfZGVsZXRlX2RlZl9maWxlKGNvbnN0IGNoYXIgKm5hbWUpOwppbnQgc3lz
X2FjbF9mcmVlX3RleHQoY2hhciAqdGV4dCk7CmludCBzeXNfYWNsX2ZyZWVfYWNsKFNNQl9BQ0xf
VCB0aGVfYWNsKSA7CmludCBzeXNfYWNsX2ZyZWVfcXVhbGlmaWVyKHZvaWQgKnF1YWwsIGludCB0
YWd0eXBlKTsKaW50IHN5c19hY2xfZ2V0X2VudHJ5KCBTTUJfQUNMX1QgdGhlX2FjbCwgaW50IGVu
dHJ5X2lkLCBTTUJfQUNMX0VOVFJZX1QgKmVudHJ5X3ApOwppbnQgc3lzX2FjbF9nZXRfdGFnX3R5
cGUoIFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBpbnQgKnRhZ190eXBlX3ApOwppbnQgc3lzX2Fj
bF9nZXRfcGVybXNldCggU01CX0FDTF9FTlRSWV9UIGVudHJ5X2QsIG1vZGVfdCAqcGVybXNldF9w
KTsKdm9pZCAqc3lzX2FjbF9nZXRfcXVhbGlmaWVyKCBTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7
ClNNQl9BQ0xfVCBzeXNfYWNsX2dldF9maWxlKCBjb25zdCBjaGFyICpwYXRoX3AsIGludCB0eXBl
KTsKU01CX0FDTF9UIHN5c19hY2xfZ2V0X2ZkKGludCBmZCk7CmludCBzeXNfYWNsX2NsZWFyX3Bl
cm1zKG1vZGVfdCBwZXJtc2V0KTsKaW50IHN5c19hY2xfYWRkX3Blcm0oIG1vZGVfdCBwZXJtc2V0
LCBtb2RlX3QgcGVybSk7CmludCBzeXNfYWNsX2dldF9wZXJtKCBtb2RlX3QgcGVybXNldCwgbW9k
ZV90IHBlcm0pOwpjaGFyICpzeXNfYWNsX3RvX3RleHQoIFNNQl9BQ0xfVCB0aGVfYWNsLCBzc2l6
ZV90ICpwbGVuKTsKU01CX0FDTF9UIHN5c19hY2xfaW5pdCggaW50IGNvdW50KTsKaW50IHN5c19h
Y2xfY3JlYXRlX2VudHJ5KCBTTUJfQUNMX1QgKnBhY2wsIFNNQl9BQ0xfRU5UUllfVCAqcGVudHJ5
KTsKaW50IHN5c19hY2xfc2V0X3RhZ190eXBlKCBTTUJfQUNMX0VOVFJZX1QgZW50cnksIGludCB0
YWd0eXBlKTsKaW50IHN5c19hY2xfc2V0X3F1YWxpZmllciggU01CX0FDTF9FTlRSWV9UIGVudHJ5
LCB2b2lkICpxdWFsKTsKaW50IHN5c19hY2xfc2V0X3Blcm1zZXQoIFNNQl9BQ0xfRU5UUllfVCBl
bnRyeSwgbW9kZV90IHBlcm1zZXQpOwppbnQgc3lzX2FjbF92YWxpZCggU01CX0FDTF9UIHRoZWFj
bCApOwppbnQgc3lzX2FjbF9zZXRfZmlsZSggY29uc3QgY2hhciAqbmFtZSwgaW50IGFjbHR5cGUs
IFNNQl9BQ0xfVCB0aGVhY2wpOwppbnQgc3lzX2FjbF9zZXRfZmQoIGludCBmZCwgU01CX0FDTF9U
IHRoZWFjbCk7CmludCBzeXNfYWNsX2RlbGV0ZV9kZWZfZmlsZShjb25zdCBjaGFyICpuYW1lKTsK
aW50IHN5c19hY2xfZnJlZV90ZXh0KGNoYXIgKnRleHQpOwppbnQgc3lzX2FjbF9mcmVlX2FjbChT
TUJfQUNMX1QgdGhlX2FjbCkgOwppbnQgc3lzX2FjbF9mcmVlX3F1YWxpZmllcih2b2lkICpxdWFs
LCBpbnQgdGFndHlwZSk7CmludCBzeXNfYWNsX2dldF9lbnRyeShTTUJfQUNMX1QgYWNsX2QsIGlu
dCBlbnRyeV9pZCwgU01CX0FDTF9FTlRSWV9UICplbnRyeV9wKTsKaW50IHN5c19hY2xfZ2V0X3Rh
Z190eXBlKFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBpbnQgKnR5cGVfcCk7CmludCBzeXNfYWNs
X2dldF9wZXJtc2V0KFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBtb2RlX3QgKnBlcm1zZXRfcCk7
CnZvaWQgKnN5c19hY2xfZ2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7ClNN
Ql9BQ0xfVCBzeXNfYWNsX2dldF9maWxlKGNvbnN0IGNoYXIgKnBhdGhfcCwgaW50IHR5cGUpOwpT
TUJfQUNMX1Qgc3lzX2FjbF9nZXRfZmQoaW50IGZkKTsKaW50IHN5c19hY2xfY2xlYXJfcGVybXMo
bW9kZV90IHBlcm1zZXRfZCk7CmludCBzeXNfYWNsX2FkZF9wZXJtKG1vZGVfdCBwZXJtc2V0X2Qs
IG1vZGVfdCBwZXJtKTsKaW50IHN5c19hY2xfZ2V0X3Blcm0obW9kZV90IHBlcm1zZXRfZCwgbW9k
ZV90IHBlcm0pOwpjaGFyICpzeXNfYWNsX3RvX3RleHQoU01CX0FDTF9UIGFjbF9kLCBzc2l6ZV90
ICpsZW5fcCk7ClNNQl9BQ0xfVCBzeXNfYWNsX2luaXQoaW50IGNvdW50KTsKaW50IHN5c19hY2xf
Y3JlYXRlX2VudHJ5KFNNQl9BQ0xfVCAqYWNsX3AsIFNNQl9BQ0xfRU5UUllfVCAqZW50cnlfcCk7
CmludCBzeXNfYWNsX3NldF90YWdfdHlwZShTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgaW50IHRh
Z190eXBlKTsKaW50IHN5c19hY2xfc2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlf
ZCwgdm9pZCAqcXVhbF9wKTsKaW50IHN5c19hY2xfc2V0X3Blcm1zZXQoU01CX0FDTF9FTlRSWV9U
IGVudHJ5X2QsIG1vZGVfdCBwZXJtc2V0X2QpOwppbnQgc3lzX2FjbF92YWxpZChTTUJfQUNMX1Qg
YWNsX2QpOwppbnQgc3lzX2FjbF9zZXRfZmlsZShjb25zdCBjaGFyICpuYW1lLCBpbnQgdHlwZSwg
U01CX0FDTF9UIGFjbF9kKTsKaW50IHN5c19hY2xfc2V0X2ZkKGludCBmZCwgU01CX0FDTF9UIGFj
bF9kKTsKaW50IHN5c19hY2xfZGVsZXRlX2RlZl9maWxlKGNvbnN0IGNoYXIgKnBhdGgpOwppbnQg
c3lzX2FjbF9mcmVlX3RleHQoY2hhciAqdGV4dCk7CmludCBzeXNfYWNsX2ZyZWVfYWNsKFNNQl9B
Q0xfVCBhY2xfZCkgOwppbnQgc3lzX2FjbF9mcmVlX3F1YWxpZmllcih2b2lkICpxdWFsLCBpbnQg
dGFndHlwZSk7CmludCBzeXNfYWNsX2dldF9lbnRyeShTTUJfQUNMX1QgYWNsX2QsIGludCBlbnRy
eV9pZCwgU01CX0FDTF9FTlRSWV9UICplbnRyeV9wKTsKaW50IHN5c19hY2xfZ2V0X3RhZ190eXBl
KFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBpbnQgKnR5cGVfcCk7CmludCBzeXNfYWNsX2dldF9w
ZXJtc2V0KFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBtb2RlX3QgKnBlcm1zZXRfcCk7CnZvaWQg
KnN5c19hY2xfZ2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7ClNNQl9BQ0xf
VCBzeXNfYWNsX2dldF9maWxlKGNvbnN0IGNoYXIgKnBhdGhfcCwgaW50IHR5cGUpOwpTTUJfQUNM
X1Qgc3lzX2FjbF9nZXRfZmQoaW50IGZkKTsKaW50IHN5c19hY2xfY2xlYXJfcGVybXMobW9kZV90
IHBlcm1zZXRfZCk7CmludCBzeXNfYWNsX2FkZF9wZXJtKG1vZGVfdCBwZXJtc2V0X2QsIG1vZGVf
dCBwZXJtKTsKaW50IHN5c19hY2xfZ2V0X3Blcm0obW9kZV90IHBlcm1zZXRfZCwgbW9kZV90IHBl
cm0pOwpjaGFyICpzeXNfYWNsX3RvX3RleHQoU01CX0FDTF9UIGFjbF9kLCBzc2l6ZV90ICpsZW5f
cCk7ClNNQl9BQ0xfVCBzeXNfYWNsX2luaXQoaW50IGNvdW50KTsKaW50IHN5c19hY2xfY3JlYXRl
X2VudHJ5KFNNQl9BQ0xfVCAqYWNsX3AsIFNNQl9BQ0xfRU5UUllfVCAqZW50cnlfcCk7CmludCBz
eXNfYWNsX3NldF90YWdfdHlwZShTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgaW50IHRhZ190eXBl
KTsKaW50IHN5c19hY2xfc2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgdm9p
ZCAqcXVhbF9wKTsKaW50IHN5c19hY2xfc2V0X3Blcm1zZXQoU01CX0FDTF9FTlRSWV9UIGVudHJ5
X2QsIG1vZGVfdCBwZXJtc2V0X2QpOwppbnQgc3lzX2FjbF92YWxpZChTTUJfQUNMX1QgYWNsX2Qp
OwppbnQgc3lzX2FjbF9zZXRfZmlsZShjb25zdCBjaGFyICpuYW1lLCBpbnQgdHlwZSwgU01CX0FD
TF9UIGFjbF9kKTsKaW50IHN5c19hY2xfc2V0X2ZkKGludCBmZCwgU01CX0FDTF9UIGFjbF9kKTsK
aW50IHN5c19hY2xfZGVsZXRlX2RlZl9maWxlKGNvbnN0IGNoYXIgKnBhdGgpOwppbnQgc3lzX2Fj
bF9mcmVlX3RleHQoY2hhciAqdGV4dCk7CmludCBzeXNfYWNsX2ZyZWVfYWNsKFNNQl9BQ0xfVCBh
Y2xfZCkgOwppbnQgc3lzX2FjbF9mcmVlX3F1YWxpZmllcih2b2lkICpxdWFsLCBpbnQgdGFndHlw
ZSk7CmludCBzeXNfYWNsX2dldF9lbnRyeShTTUJfQUNMX1QgYWNsX2QsIGludCBlbnRyeV9pZCwg
U01CX0FDTF9FTlRSWV9UICplbnRyeV9wKTsKaW50IHN5c19hY2xfZ2V0X3RhZ190eXBlKFNNQl9B
Q0xfRU5UUllfVCBlbnRyeV9kLCBpbnQgKnR5cGVfcCk7CmludCBzeXNfYWNsX2dldF9wZXJtc2V0
KFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBtb2RlX3QgKnBlcm1zZXRfcCk7CnZvaWQgKnN5c19h
Y2xfZ2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7ClNNQl9BQ0xfVCBzeXNf
YWNsX2dldF9maWxlKGNvbnN0IGNoYXIgKnBhdGhfcCwgaW50IHR5cGUpOwpTTUJfQUNMX1Qgc3lz
X2FjbF9nZXRfZmQoaW50IGZkKTsKaW50IHN5c19hY2xfY2xlYXJfcGVybXMobW9kZV90IHBlcm1z
ZXRfZCk7CmludCBzeXNfYWNsX2FkZF9wZXJtKG1vZGVfdCBwZXJtc2V0X2QsIG1vZGVfdCBwZXJt
KTsKaW50IHN5c19hY2xfZ2V0X3Blcm0obW9kZV90IHBlcm1zZXRfZCwgbW9kZV90IHBlcm0pOwpj
aGFyICpzeXNfYWNsX3RvX3RleHQoU01CX0FDTF9UIGFjbF9kLCBzc2l6ZV90ICpsZW5fcCk7ClNN
Ql9BQ0xfVCBzeXNfYWNsX2luaXQoaW50IGNvdW50KTsKaW50IHN5c19hY2xfY3JlYXRlX2VudHJ5
KFNNQl9BQ0xfVCAqYWNsX3AsIFNNQl9BQ0xfRU5UUllfVCAqZW50cnlfcCk7CmludCBzeXNfYWNs
X3NldF90YWdfdHlwZShTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgaW50IHRhZ190eXBlKTsKaW50
IHN5c19hY2xfc2V0X3F1YWxpZmllcihTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgdm9pZCAqcXVh
bF9wKTsKaW50IHN5c19hY2xfc2V0X3Blcm1zZXQoU01CX0FDTF9FTlRSWV9UIGVudHJ5X2QsIG1v
ZGVfdCBwZXJtc2V0X2QpOwppbnQgc3lzX2FjbF92YWxpZChTTUJfQUNMX1QgYWNsX2QpOwppbnQg
c3lzX2FjbF9zZXRfZmlsZShjb25zdCBjaGFyICpuYW1lLCBpbnQgdHlwZSwgU01CX0FDTF9UIGFj
bF9kKTsKaW50IHN5c19hY2xfc2V0X2ZkKGludCBmZCwgU01CX0FDTF9UIGFjbF9kKTsKaW50IHN5
c19hY2xfZGVsZXRlX2RlZl9maWxlKGNvbnN0IGNoYXIgKm5hbWUpOwppbnQgc3lzX2FjbF9mcmVl
X3RleHQoY2hhciAqdGV4dCk7CmludCBzeXNfYWNsX2ZyZWVfYWNsKFNNQl9BQ0xfVCBhY2xfZCkg
OwppbnQgc3lzX2FjbF9mcmVlX3F1YWxpZmllcih2b2lkICpxdWFsLCBpbnQgdGFndHlwZSk7Cmlu
dCBzeXNfYWNsX2dldF9lbnRyeSggU01CX0FDTF9UIHRoZWFjbCwgaW50IGVudHJ5X2lkLCBTTUJf
QUNMX0VOVFJZX1QgKmVudHJ5X3ApOwppbnQgc3lzX2FjbF9nZXRfdGFnX3R5cGUoIFNNQl9BQ0xf
RU5UUllfVCBlbnRyeV9kLCBpbnQgKnRhZ190eXBlX3ApOwppbnQgc3lzX2FjbF9nZXRfcGVybXNl
dCggU01CX0FDTF9FTlRSWV9UIGVudHJ5X2QsIG1vZGVfdCAqcGVybXNldF9wKTsKdm9pZCAqc3lz
X2FjbF9nZXRfcXVhbGlmaWVyKCBTTUJfQUNMX0VOVFJZX1QgZW50cnlfZCk7ClNNQl9BQ0xfVCBz
eXNfYWNsX2dldF9maWxlKCBjb25zdCBjaGFyICpwYXRoX3AsIGludCB0eXBlKTsKU01CX0FDTF9U
IHN5c19hY2xfZ2V0X2ZkKGludCBmZCk7CmludCBzeXNfYWNsX2NsZWFyX3Blcm1zKG1vZGVfdCBw
ZXJtc2V0KTsKaW50IHN5c19hY2xfYWRkX3Blcm0oIG1vZGVfdCBwZXJtc2V0LCBtb2RlX3QgcGVy
bSk7CmNoYXIgKnN5c19hY2xfdG9fdGV4dCggU01CX0FDTF9UIHRoZWFjbCwgc3NpemVfdCAqcGxl
bik7ClNNQl9BQ0xfVCBzeXNfYWNsX2luaXQoIGludCBjb3VudCk7CmludCBzeXNfYWNsX2NyZWF0
ZV9lbnRyeSggU01CX0FDTF9UICpwYWNsLCBTTUJfQUNMX0VOVFJZX1QgKnBlbnRyeSk7CmludCBz
eXNfYWNsX3NldF90YWdfdHlwZSggU01CX0FDTF9FTlRSWV9UIGVudHJ5LCBpbnQgdGFndHlwZSk7
CmludCBzeXNfYWNsX3NldF9xdWFsaWZpZXIoIFNNQl9BQ0xfRU5UUllfVCBlbnRyeSwgdm9pZCAq
cXVhbCk7CmludCBzeXNfYWNsX3NldF9wZXJtc2V0KCBTTUJfQUNMX0VOVFJZX1QgZW50cnksIG1v
ZGVfdCBwZXJtc2V0KTsKaW50IHN5c19hY2xfdmFsaWQoIFNNQl9BQ0xfVCB0aGVhY2wgKTsKaW50
IHN5c19hY2xfc2V0X2ZpbGUoIGNvbnN0IGNoYXIgKm5hbWUsIGludCBhY2x0eXBlLCBTTUJfQUNM
X1QgdGhlYWNsKTsKaW50IHN5c19hY2xfc2V0X2ZkKCBpbnQgZmQsIFNNQl9BQ0xfVCB0aGVhY2wp
OwppbnQgc3lzX2FjbF9kZWxldGVfZGVmX2ZpbGUoY29uc3QgY2hhciAqbmFtZSk7CmludCBzeXNf
YWNsX2dldF9wZXJtKCBtb2RlX3QgcGVybXNldCwgbW9kZV90IHBlcm0pOwppbnQgc3lzX2FjbF9m
cmVlX3RleHQoY2hhciAqdGV4dCk7CmludCBzeXNfYWNsX2ZyZWVfYWNsKFNNQl9BQ0xfVCBwb3Np
eF9hY2wpOwppbnQgc3lzX2FjbF9mcmVlX3F1YWxpZmllcih2b2lkICpxdWFsLCBpbnQgdGFndHlw
ZSk7CmludCBzeXNfYWNsX2dldF9lbnRyeSggU01CX0FDTF9UIHRoZV9hY2wsIGludCBlbnRyeV9p
ZCwgU01CX0FDTF9FTlRSWV9UICplbnRyeV9wKTsKaW50IHN5c19hY2xfZ2V0X3RhZ190eXBlKCBT
TUJfQUNMX0VOVFJZX1QgZW50cnlfZCwgaW50ICp0YWdfdHlwZV9wKTsKaW50IHN5c19hY2xfZ2V0
X3Blcm1zZXQoIFNNQl9BQ0xfRU5UUllfVCBlbnRyeV9kLCBtb2RlX3QgKnBlcm1zZXRfcCk7CnZv
aWQgKnN5c19hY2xfZ2V0X3F1YWxpZmllciggU01CX0FDTF9FTlRSWV9UIGVudHJ5X2QpOwpTTUJf
QUNMX1Qgc3lzX2FjbF9nZXRfZmlsZSggY29uc3QgY2hhciAqcGF0aF9wLCBpbnQgdHlwZSk7ClNN
Ql9BQ0xfVCBzeXNfYWNsX2dldF9mZChpbnQgZmQpOwppbnQgc3lzX2FjbF9jbGVhcl9wZXJtcyht
b2RlX3QgcGVybXNldCk7CmludCBzeXNfYWNsX2FkZF9wZXJtKCBtb2RlX3QgcGVybXNldCwgbW9k
ZV90IHBlcm0pOwppbnQgc3lzX2FjbF9nZXRfcGVybSggbW9kZV90IHBlcm1zZXQsIG1vZGVfdCBw
ZXJtKTsKY2hhciAqc3lzX2FjbF90b190ZXh0KCBTTUJfQUNMX1QgdGhlX2FjbCwgc3NpemVfdCAq
cGxlbik7CmludCBzeXNfYWNsX2ZyZWVfdGV4dChjaGFyICp0ZXh0KTsKU01CX0FDTF9UIHN5c19h
Y2xfaW5pdCggaW50IGNvdW50KTsKaW50IHN5c19hY2xfY3JlYXRlX2VudHJ5KCBTTUJfQUNMX1Qg
KnBhY2wsIFNNQl9BQ0xfRU5UUllfVCAqcGVudHJ5KTsKaW50IHN5c19hY2xfc2V0X3RhZ190eXBl
KCBTTUJfQUNMX0VOVFJZX1QgZW50cnksIGludCB0YWd0eXBlKTsKaW50IHN5c19hY2xfc2V0X3F1
YWxpZmllciggU01CX0FDTF9FTlRSWV9UIGVudHJ5LCB2b2lkICpxdWFsKTsKaW50IHN5c19hY2xf
c2V0X3Blcm1zZXQoIFNNQl9BQ0xfRU5UUllfVCBlbnRyeSwgbW9kZV90IHBlcm1zZXQpOwppbnQg
c3lzX2FjbF92YWxpZCggU01CX0FDTF9UIHRoZWFjbCApOwppbnQgc3lzX2FjbF9zZXRfZmlsZSgg
Y29uc3QgY2hhciAqbmFtZSwgaW50IGFjbHR5cGUsIFNNQl9BQ0xfVCB0aGVhY2wpOwppbnQgc3lz
X2FjbF9zZXRfZmQoIGludCBmZCwgU01CX0FDTF9UIHRoZWFjbCk7CmludCBzeXNfYWNsX2RlbGV0
ZV9kZWZfZmlsZShjb25zdCBjaGFyICpuYW1lKTsKaW50IHN5c19hY2xfZnJlZV9hY2woU01CX0FD
TF9UIHRoZV9hY2wpIDsKaW50IHN5c19hY2xfZnJlZV9xdWFsaWZpZXIodm9pZCAqcXVhbCwgaW50
IHRhZ3R5cGUpOwoKCgppbnQgc3lzX3VzbGVlcChsb25nIHVzZWNzKTsKaW50IHN5c19zdGF0KGNv
bnN0IGNoYXIgKmZuYW1lLHN0cnVjdCBzdGF0ICpzYnVmKTsKaW50IHN5c19mc3RhdChpbnQgZmQs
c3RydWN0IHN0YXQgKnNidWYpOwppbnQgc3lzX2xzdGF0KGNvbnN0IGNoYXIgKmZuYW1lLHN0cnVj
dCBzdGF0ICpzYnVmKTsKaW50IHN5c19mdHJ1bmNhdGUoaW50IGZkLCBvZmZfdCBvZmZzZXQpOwpv
ZmZfdCBzeXNfbHNlZWsoaW50IGZkLCBvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOwppbnQgc3lz
X2ZzZWVrKEZJTEUgKmZwLCBvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOwpvZmZfdCBzeXNfZnRl
bGwoRklMRSAqZnApOwppbnQgc3lzX2NyZWF0KGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2Rl
KTsKaW50IHN5c19vcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBvZmxhZywgbW9kZV90IG1vZGUp
OwpGSUxFICpzeXNfZm9wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSk7CnN0
cnVjdCBkaXJlbnQ2NCAqc3lzX3JlYWRkaXIoRElSICpkaXJwKTsKaW50IHN5c193YWl0cGlkKHBp
ZF90IHBpZCxpbnQgKnN0YXR1cyxpbnQgb3B0aW9ucyk7CmNoYXIgKnN5c19nZXR3ZChjaGFyICpz
KTsKaW50IHN5c19zeW1saW5rKGNvbnN0IGNoYXIgKm9sZHBhdGgsIGNvbnN0IGNoYXIgKm5ld3Bh
dGgpOwppbnQgc3lzX3JlYWRsaW5rKGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKmJ1Ziwgc2l6ZV90
IGJ1ZnNpeik7CmludCBzeXNfY2hvd24oY29uc3QgY2hhciAqZm5hbWUsdWlkX3QgdWlkLGdpZF90
IGdpZCk7CmludCBzeXNfY2hyb290KGNvbnN0IGNoYXIgKmRuYW1lKTsKc3RydWN0IGhvc3RlbnQg
KnN5c19nZXRob3N0YnluYW1lKGNvbnN0IGNoYXIgKm5hbWUpOwp2b2lkIG9wbG9ja19zZXRfY2Fw
YWJpbGl0eShCT09MIHRoaXNfcHJvY2VzcywgQk9PTCBpbmhlcml0KTsKbG9uZyBzeXNfcmFuZG9t
KHZvaWQpOwp2b2lkIHN5c19zcmFuZG9tKHVuc2lnbmVkIGludCBzZWVkKTsKaW50IGdyb3Vwc19t
YXgodm9pZCk7CmludCBzeXNfZ2V0Z3JvdXBzKGludCBzZXRsZW4sIGdpZF90ICpnaWRzZXQpOwpp
bnQgc3lzX3NldGdyb3VwcyhpbnQgc2V0bGVuLCBnaWRfdCAqZ2lkc2V0KTsKdm9pZCBzeXNfc2V0
cHdlbnQodm9pZCk7CnN0cnVjdCBwYXNzd2QgKnN5c19nZXRwd2VudCh2b2lkKTsKdm9pZCBzeXNf
ZW5kcHdlbnQodm9pZCk7CnN0cnVjdCBwYXNzd2QgKnN5c19nZXRwd25hbShjb25zdCBjaGFyICpu
YW1lKTsKc3RydWN0IHBhc3N3ZCAqc3lzX2dldHB3dWlkKHVpZF90IHVpZCk7CnBpZF90IHN5c19m
b3JrKHZvaWQpOwpwaWRfdCBzeXNfZ2V0cGlkKHZvaWQpOwppbnQgc3lzX3BvcGVuKGNvbnN0IGNo
YXIgKmNvbW1hbmQpOwppbnQgc3lzX3BjbG9zZShpbnQgZmQpOwp2b2lkICpzeXNfZGxvcGVuKGNv
bnN0IGNoYXIgKm5hbWUsIGludCBmbGFncyk7CnZvaWQgKnN5c19kbHN5bSh2b2lkICpoYW5kbGUs
IGNoYXIgKnN5bWJvbCk7CmludCBzeXNfZGxjbG9zZSAodm9pZCAqaGFuZGxlKTsKY29uc3QgY2hh
ciAqc3lzX2RsZXJyb3Iodm9pZCk7CgoKClRBTExPQ19DVFggKnRhbGxvY19pbml0KHZvaWQpOwp2
b2lkICp0YWxsb2MoVEFMTE9DX0NUWCAqdCwgc2l6ZV90IHNpemUpOwp2b2lkICp0YWxsb2NfcmVh
bGxvYyhUQUxMT0NfQ1RYICp0LCB2b2lkICpwdHIsIHNpemVfdCBzaXplKTsKdm9pZCB0YWxsb2Nf
ZGVzdHJveV9wb29sKFRBTExPQ19DVFggKnQpOwp2b2lkIHRhbGxvY19kZXN0cm95KFRBTExPQ19D
VFggKnQpOwpzaXplX3QgdGFsbG9jX3Bvb2xfc2l6ZShUQUxMT0NfQ1RYICp0KTsKY29uc3QgY2hh
ciAqIHRhbGxvY19wb29sX25hbWUoVEFMTE9DX0NUWCBjb25zdCAqdCk7CnZvaWQgKnRhbGxvY196
ZXJvKFRBTExPQ19DVFggKnQsIHNpemVfdCBzaXplKTsKdm9pZCAqdGFsbG9jX21lbWR1cChUQUxM
T0NfQ1RYICp0LCBjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CmNoYXIgKnRhbGxvY19zdHJk
dXAoVEFMTE9DX0NUWCAqdCwgY29uc3QgY2hhciAqcCk7CgoKCnRpbWVfdCBnZXRfdGltZV90X21p
bih2b2lkKTsKdGltZV90IGdldF90aW1lX3RfbWF4KHZvaWQpOwp2b2lkIEdldFRpbWVPZkRheShz
dHJ1Y3QgdGltZXZhbCAqdHZhbCk7CnZvaWQgVGltZUluaXQodm9pZCk7CmludCBUaW1lRGlmZih0
aW1lX3QgdCk7CnN0cnVjdCB0bSAqTG9jYWxUaW1lKHRpbWVfdCAqdCk7CnRpbWVfdCBudF90aW1l
X3RvX3VuaXgoTlRUSU1FICpudCk7CnRpbWVfdCBudF90aW1lX3RvX3VuaXhfYWJzKE5UVElNRSAq
bnQpOwp0aW1lX3QgaW50ZXJwcmV0X2xvbmdfZGF0ZShjaGFyICpwKTsKdm9pZCB1bml4X3RvX250
X3RpbWUoTlRUSU1FICpudCwgdGltZV90IHQpOwp2b2lkIHVuaXhfdG9fbnRfdGltZV9hYnMoTlRU
SU1FICpudCwgdGltZV90IHQpOwp2b2lkIHB1dF9sb25nX2RhdGUoY2hhciAqcCx0aW1lX3QgdCk7
CkJPT0wgbnVsbF9tdGltZSh0aW1lX3QgbXRpbWUpOwp2b2lkIHB1dF9kb3NfZGF0ZShjaGFyICpi
dWYsaW50IG9mZnNldCx0aW1lX3QgdW5peGRhdGUpOwp2b2lkIHB1dF9kb3NfZGF0ZTIoY2hhciAq
YnVmLGludCBvZmZzZXQsdGltZV90IHVuaXhkYXRlKTsKdm9pZCBwdXRfZG9zX2RhdGUzKGNoYXIg
KmJ1ZixpbnQgb2Zmc2V0LHRpbWVfdCB1bml4ZGF0ZSk7CnRpbWVfdCBtYWtlX3VuaXhfZGF0ZSh2
b2lkICpkYXRlX3B0cik7CnRpbWVfdCBtYWtlX3VuaXhfZGF0ZTIodm9pZCAqZGF0ZV9wdHIpOwp0
aW1lX3QgbWFrZV91bml4X2RhdGUzKHZvaWQgKmRhdGVfcHRyKTsKY2hhciAqaHR0cF90aW1lc3Ry
aW5nKHRpbWVfdCB0KTsKY2hhciAqdGltZXN0cmluZyhCT09MIGhpcmVzKTsKdGltZV90IGdldF9j
cmVhdGVfdGltZShzdHJ1Y3Qgc3RhdCAqc3QsQk9PTCBmYWtlX2RpcnMpOwp2b2lkIGluaXRfbnRf
dGltZShOVFRJTUUgKm50KTsKCgoKY2hhciAqdWZjX2NyeXB0KGNvbnN0IGNoYXIgKmtleSxjb25z
dCBjaGFyICpzYWx0KTsKCgoKQk9PTCBuYW1lX2lzX2xvY2FsKGNvbnN0IGNoYXIgKm5hbWUpOwpj
aGFyICpnZXRfdXNlcl9ob21lX2Rpcihjb25zdCBjaGFyICp1c2VyKTsKQk9PTCBtYXBfdXNlcm5h
bWUoY2hhciAqdXNlcik7CnN0cnVjdCBwYXNzd2QgKkdldF9Qd25hbV9pbnRlcm5hbHMoY29uc3Qg
Y2hhciAqdXNlciwgY2hhciAqdXNlcjIpOwpzdHJ1Y3QgcGFzc3dkICpHZXRfUHduYW1fTW9kaWZ5
KGNoYXIgKnVzZXIpOwpzdHJ1Y3QgcGFzc3dkICpHZXRfUHduYW0oY29uc3QgY2hhciAqdXNlcik7
CkJPT0wgdXNlcl9pbl9ncm91cF9saXN0KGNvbnN0IGNoYXIgKnVzZXIsIGNvbnN0IGNoYXIgKmdu
YW1lKTsKQk9PTCB1c2VyX2luX2xpc3QoY29uc3QgY2hhciAqdXNlcixjaGFyICoqbGlzdCk7CnN0
cnVjdCBwYXNzd2QgKnNtYl9nZXRwd25hbShjaGFyICp1c2VyLCBCT09MIGFsbG93X2NoYW5nZSk7
CgoKCmNoYXIgKnRtcGRpcih2b2lkKTsKQk9PTCBpbl9ncm91cChnaWRfdCBncm91cCwgZ2lkX3Qg
Y3VycmVudF9naWQsIGludCBuZ3JvdXBzLCBnaWRfdCAqZ3JvdXBzKTsKY2hhciAqQXRvaWMoY2hh
ciAqcCwgaW50ICpuLCBjaGFyICpjKTsKY2hhciAqZ2V0X251bWxpc3QoY2hhciAqcCwgdW5zaWdu
ZWQgaW50ICoqbnVtLCBpbnQgKmNvdW50KTsKQk9PTCBmaWxlX2V4aXN0KGNoYXIgKmZuYW1lLHN0
cnVjdCBzdGF0ICpzYnVmKTsKdGltZV90IGZpbGVfbW9kdGltZShjaGFyICpmbmFtZSk7CkJPT0wg
ZGlyZWN0b3J5X2V4aXN0KGNoYXIgKmRuYW1lLHN0cnVjdCBzdGF0ICpzdCk7Cm9mZl90IGdldF9m
aWxlX3NpemUoY2hhciAqZmlsZV9uYW1lKTsKY2hhciAqYXR0cmliX3N0cmluZyh1bnNpZ25lZCBz
aG9ydCBtb2RlKTsKdm9pZCBzaG93X21zZyhjaGFyICpidWYpOwp2b2lkIHNtYl9zZXRsZW4oY2hh
ciAqYnVmLGludCBsZW4pOwppbnQgc2V0X21lc3NhZ2UoY2hhciAqYnVmLGludCBudW1fd29yZHMs
aW50IG51bV9ieXRlcyxCT09MIHplcm8pOwppbnQgc2V0X21lc3NhZ2VfYmNjKGNoYXIgKmJ1Zixp
bnQgbnVtX2J5dGVzKTsKaW50IHNldF9tZXNzYWdlX2VuZCh2b2lkICpvdXRidWYsdm9pZCAqZW5k
X3B0cik7CnZvaWQgZG9zX2NsZWFuX25hbWUoY2hhciAqcyk7CnZvaWQgdW5peF9jbGVhbl9uYW1l
KGNoYXIgKnMpOwpzbWJfdWNzMl90ICp1bml4X2NsZWFuX3BhdGgoY29uc3Qgc21iX3VjczJfdCAq
cyk7CnZvaWQgbWFrZV9kaXJfc3RydWN0KGNoYXIgKmJ1ZixjaGFyICptYXNrLGNoYXIgKmZuYW1l
LG9mZl90IHNpemUsaW50IG1vZGUsdGltZV90IGRhdGUpOwp2b2lkIGNsb3NlX2xvd19mZHModm9p
ZCk7CmludCBzZXRfYmxvY2tpbmcoaW50IGZkLCBCT09MIHNldCk7CnNzaXplX3QgdHJhbnNmZXJf
ZmlsZV9pbnRlcm5hbChpbnQgaW5mZCwgaW50IG91dGZkLCBzaXplX3Qgbiwgc3NpemVfdCAoKnJl
YWRfZm4pKGludCwgdm9pZCAqLCBzaXplX3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzc2l6ZV90ICgqd3JpdGVfZm4pKGludCwgY29uc3Qgdm9pZCAq
LCBzaXplX3QpKTsKb2ZmX3QgdHJhbnNmZXJfZmlsZShpbnQgaW5mZCxpbnQgb3V0ZmQsb2ZmX3Qg
bik7CnZvaWQgbXNsZWVwKGludCB0KTsKdm9pZCBiZWNvbWVfZGFlbW9uKHZvaWQpOwpCT09MIHll
c25vKGNoYXIgKnApOwp2b2lkICpSZWFsbG9jKHZvaWQgKnAsc2l6ZV90IHNpemUpOwp2b2lkIHNh
ZmVfZnJlZSh2b2lkICpwKTsKQk9PTCBnZXRfbXluYW1lKGNoYXIgKm15X25hbWUpOwppbnQgaW50
ZXJwcmV0X3Byb3RvY29sKGNoYXIgKnN0cixpbnQgZGVmKTsKQk9PTCBpc19pcGFkZHJlc3MoY29u
c3QgY2hhciAqc3RyKTsKdW5zaWduZWQgaW50IGludGVycHJldF9hZGRyKGNvbnN0IGNoYXIgKnN0
cik7CnN0cnVjdCBpbl9hZGRyICppbnRlcnByZXRfYWRkcjIoY29uc3QgY2hhciAqc3RyKTsKQk9P
TCBpc196ZXJvX2lwKHN0cnVjdCBpbl9hZGRyIGlwKTsKdm9pZCB6ZXJvX2lwKHN0cnVjdCBpbl9h
ZGRyICppcCk7CmNoYXIgKmF1dG9tb3VudF9sb29rdXAoY29uc3QgY2hhciAqdXNlcl9uYW1lKTsK
Y2hhciAqYXV0b21vdW50X2xvb2t1cChjb25zdCBjaGFyICp1c2VyX25hbWUpOwpCT09MIHNhbWVf
bmV0KHN0cnVjdCBpbl9hZGRyIGlwMSxzdHJ1Y3QgaW5fYWRkciBpcDIsc3RydWN0IGluX2FkZHIg
bWFzayk7CkJPT0wgcHJvY2Vzc19leGlzdHMocGlkX3QgcGlkKTsKY2hhciAqdWlkdG9uYW1lKHVp
ZF90IHVpZCk7CmNoYXIgKmdpZHRvbmFtZShnaWRfdCBnaWQpOwp1aWRfdCBuYW1ldG91aWQoY2hh
ciAqbmFtZSk7CmdpZF90IG5hbWV0b2dpZChjb25zdCBjaGFyICpuYW1lKTsKdm9pZCBzbWJfcGFu
aWMoY2hhciAqd2h5KTsKY2hhciAqcmVhZGRpcm5hbWUoRElSICpwKTsKQk9PTCBpc19pbl9wYXRo
KGNoYXIgKm5hbWUsIG5hbWVfY29tcGFyZV9lbnRyeSAqbmFtZWxpc3QpOwp2b2lkIHNldF9uYW1l
YXJyYXkobmFtZV9jb21wYXJlX2VudHJ5ICoqcHBuYW1lX2FycmF5LCBjaGFyICpuYW1lbGlzdCk7
CnZvaWQgZnJlZV9uYW1lYXJyYXkobmFtZV9jb21wYXJlX2VudHJ5ICpuYW1lX2FycmF5KTsKQk9P
TCBmY250bF9sb2NrKGludCBmZCwgaW50IG9wLCBvZmZfdCBvZmZzZXQsIG9mZl90IGNvdW50LCBp
bnQgdHlwZSk7CkJPT0wgaXNfbXluYW1lKGNoYXIgKnMpOwpCT09MIGlzX215bmFtZV9vcl9pcGFk
ZHIoY2hhciAqcyk7CnZvaWQgc2V0X3JlbW90ZV9hcmNoKGVudW0gcmVtb3RlX2FyY2hfdHlwZXMg
dHlwZSk7CmVudW0gcmVtb3RlX2FyY2hfdHlwZXMgZ2V0X3JlbW90ZV9hcmNoKHZvaWQpOwp2b2lk
IG91dF9hc2NpaShGSUxFICpmLCB1bnNpZ25lZCBjaGFyICpidWYsaW50IGxlbik7CnZvaWQgb3V0
X2RhdGEoRklMRSAqZixjaGFyICpidWYxLGludCBsZW4sIGludCBwZXJfbGluZSk7CnZvaWQgcHJp
bnRfYXNjKGludCBsZXZlbCwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLGludCBsZW4pOwp2b2lk
IGR1bXBfZGF0YShpbnQgbGV2ZWwsIGNvbnN0IGNoYXIgKmJ1ZjEsaW50IGxlbik7CmNoYXIgKnRh
Yl9kZXB0aChpbnQgZGVwdGgpOwppbnQgc3RyX2NoZWNrc3VtKGNvbnN0IGNoYXIgKnMpOwp2b2lk
IHplcm9fZnJlZSh2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CmludCBzZXRfbWF4ZmlsZXMoaW50IHJl
cXVlc3RlZF9tYXgpOwpCT09MIHJlZ19zcGxpdF9rZXkoY2hhciAqZnVsbF9rZXluYW1lLCB1bnNp
Z25lZCBpbnQgKnJlZ190eXBlLCBjaGFyICprZXlfbmFtZSk7CmludCBzbWJfbWtzdGVtcChjaGFy
ICp0ZW1wbGF0ZSk7CnZvaWQgKnNtYl94bWFsbG9jKHNpemVfdCBzaXplKTsKdm9pZCAqc21iX3ht
ZW1kdXAoY29uc3Qgdm9pZCAqcCwgc2l6ZV90IHNpemUpOwpjaGFyICpzbWJfeHN0cmR1cChjb25z
dCBjaGFyICpzKTsKaW50IHNtYl94dmFzcHJpbnRmKGNoYXIgKipwdHIsIGNvbnN0IGNoYXIgKmZv
cm1hdCwgdmFfbGlzdCBhcCk7CnZvaWQgKm1lbWR1cChjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6
ZSk7CmNoYXIgKm15aG9zdG5hbWUodm9pZCk7CmNoYXIgKmxvY2tfcGF0aChjaGFyICpuYW1lKTsK
Y2hhciAqbGliX3BhdGgoY2hhciAqbmFtZSk7CmNoYXIgKnBhcmVudF9kaXJuYW1lKGNvbnN0IGNo
YXIgKnBhdGgpOwpCT09MIG1zX2hhc193aWxkKGNoYXIgKnMpOwpCT09MIG1zX2hhc193aWxkX3co
Y29uc3Qgc21iX3VjczJfdCAqcyk7CkJPT0wgbWFza19tYXRjaChjaGFyICpzdHJpbmcsIGNoYXIg
KnBhdHRlcm4sIEJPT0wgaXNfY2FzZV9zZW5zaXRpdmUpOwpCT09MIHVuaXhfd2lsZF9tYXRjaChj
aGFyICpwYXR0ZXJuLCBjaGFyICpzdHJpbmcpOwpEQVRBX0JMT0IgZGF0YV9ibG9iKGNvbnN0IHZv
aWQgKnAsIHNpemVfdCBsZW5ndGgpOwp2b2lkIGRhdGFfYmxvYl9mcmVlKERBVEFfQkxPQiAqZCk7
CnZvaWQgZGF0YV9ibG9iX2NsZWFyX2ZyZWUoREFUQV9CTE9CICpkKTsKaW50IF9JbnN1cmVfdHJh
cF9lcnJvcihpbnQgYTEsIGludCBhMiwgaW50IGEzLCBpbnQgYTQsIGludCBhNSwgaW50IGE2KTsK
CgoKQk9PTCBkb19maWxlX2xvY2soaW50IGZkLCBpbnQgd2FpdHNlY3MsIGludCB0eXBlKTsKQk9P
TCBmaWxlX2xvY2soaW50IGZkLCBpbnQgdHlwZSwgaW50IHNlY3MsIGludCAqcGxvY2tfZGVwdGgp
OwpCT09MIGZpbGVfdW5sb2NrKGludCBmZCwgaW50ICpwbG9ja19kZXB0aCk7CnZvaWQgKnN0YXJ0
ZmlsZXB3ZW50KGNoYXIgKnBmaWxlLCBjaGFyICpzX3JlYWRidWYsIGludCBidWZzaXplLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZmlsZV9sb2NrX2RlcHRoLCBCT09MIHVw
ZGF0ZSk7CnZvaWQgZW5kZmlsZXB3ZW50KHZvaWQgKnZwLCBpbnQgKmZpbGVfbG9ja19kZXB0aCk7
CnVuc2lnbmVkIGxvbmcgbG9uZyBnZXRmaWxlcHdwb3Modm9pZCAqdnApOwpCT09MIHNldGZpbGVw
d3Bvcyh2b2lkICp2cCwgdW5zaWduZWQgbG9uZyBsb25nIHRvayk7CmludCBnZXRmaWxlbGluZSh2
b2lkICp2cCwgY2hhciAqbGluZWJ1ZiwgaW50IGxpbmVidWZfc2l6ZSk7CmNoYXIgKmZnZXRzX3Ns
YXNoKGNoYXIgKnMyLGludCBtYXhsZW4sWEZJTEUgKmYpOwpjaGFyICpmaWxlX3Bsb2FkKGNoYXIg
KnN5c2NtZCwgc2l6ZV90ICpzaXplKTsKY2hhciAqZmRfbG9hZChpbnQgZmQsIHNpemVfdCAqc2l6
ZSk7CmNoYXIgKmZpbGVfbG9hZChjb25zdCBjaGFyICpmbmFtZSwgc2l6ZV90ICpzaXplKTsKdm9p
ZCAqbWFwX2ZpbGUoY2hhciAqZm5hbWUsIHNpemVfdCBzaXplKTsKY2hhciAqKmZpbGVfbGluZXNf
bG9hZChjb25zdCBjaGFyICpmbmFtZSwgaW50ICpudW1saW5lcyk7CmNoYXIgKipmZF9saW5lc19s
b2FkKGludCBmZCwgaW50ICpudW1saW5lcyk7CmNoYXIgKipmaWxlX2xpbmVzX3Bsb2FkKGNoYXIg
KnN5c2NtZCwgaW50ICpudW1saW5lcyk7CnZvaWQgZmlsZV9saW5lc19mcmVlKGNoYXIgKipsaW5l
cyk7CnZvaWQgZmlsZV9saW5lc19zbGFzaGNvbnQoY2hhciAqKmxpbmVzKTsKQk9PTCBmaWxlX3Nh
dmUoY29uc3QgY2hhciAqZm5hbWUsIHZvaWQgKnBhY2tldCwgc2l6ZV90IGxlbmd0aCk7CgoKCnN0
cnVjdCBzeXNfZ3JlbnQgKiBnZXRncmVudF9saXN0KHZvaWQpOwp2b2lkIGdyZW50X2ZyZWUgKHN0
cnVjdCBzeXNfZ3JlbnQgKmdsaXN0KTsKc3RydWN0IHN5c19wd2VudCAqIGdldHB3ZW50X2xpc3Qo
dm9pZCk7CnZvaWQgcHdlbnRfZnJlZSAoc3RydWN0IHN5c19wd2VudCAqcGxpc3QpOwpzdHJ1Y3Qg
c3lzX3VzZXJsaXN0ICpnZXRfdXNlcnNfaW5fZ3JvdXAoY29uc3QgY2hhciAqZ25hbWUpOwp2b2lk
IGZyZWVfdXNlcmxpc3Qoc3RydWN0IHN5c191c2VybGlzdCAqbGlzdF9oZWFkKTsKCgoKdm9pZCBz
ZV9tYXBfZ2VuZXJpYyh1bnNpZ25lZCBpbnQgKmFjY2Vzc19tYXNrLCBzdHJ1Y3QgZ2VuZXJpY19t
YXBwaW5nICptYXBwaW5nKTsKQk9PTCBzZV9hY2Nlc3NfY2hlY2soU0VDX0RFU0MgKnNkLCBOVF9V
U0VSX1RPS0VOICp0b2tlbiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGFjY19k
ZXNpcmVkLCB1bnNpZ25lZCBpbnQgKmFjY19ncmFudGVkLAogICAgICAgICAgICAgICAgICAgICBO
VFNUQVRVUyAqc3RhdHVzKTsKU0VDX0RFU0NfQlVGICpzZV9jcmVhdGVfY2hpbGRfc2VjZGVzYyhU
QUxMT0NfQ1RYICpjdHgsIFNFQ19ERVNDICpwYXJlbnRfY3RyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJPT0wgY2hpbGRfY29udGFpbmVyKTsKCgoKdm9pZCBzZWNfaW5p
dCh2b2lkKTsKdWlkX3Qgc2VjX2luaXRpYWxfdWlkKHZvaWQpOwpnaWRfdCBzZWNfaW5pdGlhbF9n
aWQodm9pZCk7CkJPT0wgbm9uX3Jvb3RfbW9kZSh2b2lkKTsKdm9pZCBnYWluX3Jvb3RfcHJpdmls
ZWdlKHZvaWQpOwp2b2lkIGdhaW5fcm9vdF9ncm91cF9wcml2aWxlZ2Uodm9pZCk7CnZvaWQgc2V0
X2VmZmVjdGl2ZV91aWQodWlkX3QgdWlkKTsKdm9pZCBzZXRfZWZmZWN0aXZlX2dpZChnaWRfdCBn
aWQpOwp2b2lkIHNhdmVfcmVfdWlkKHZvaWQpOwp2b2lkIHJlc3RvcmVfcmVfdWlkKHZvaWQpOwpp
bnQgc2V0X3JlX3VpZCh2b2lkKTsKdm9pZCBiZWNvbWVfdXNlcl9wZXJtYW5lbnRseSh1aWRfdCB1
aWQsIGdpZF90IGdpZCk7CkJPT0wgaXNfc2V0dWlkX3Jvb3Qodm9pZCkgOwoKCgp2b2lkIGdlbmVy
YXRlX3dlbGxrbm93bl9zaWRzKHZvaWQpOwpCT09MIG1hcF9kb21haW5fc2lkX3RvX25hbWUoRE9N
X1NJRCAqc2lkLCBjaGFyICpudF9kb21haW4pOwpCT09MIGxvb2t1cF9rbm93bl9yaWQoRE9NX1NJ
RCAqc2lkLCB1bnNpZ25lZCBpbnQgcmlkLCBjaGFyICpuYW1lLCBlbnVtIFNJRF9OQU1FX1VTRSAq
cHNpZF9uYW1lX3VzZSk7CkJPT0wgbWFwX2RvbWFpbl9uYW1lX3RvX3NpZChET01fU0lEICpzaWQs
IGNoYXIgKm50X2RvbWFpbik7CnZvaWQgc3BsaXRfZG9tYWluX25hbWUoY29uc3QgY2hhciAqZnVs
bG5hbWUsIGNoYXIgKmRvbWFpbiwgY2hhciAqbmFtZSk7CmNoYXIgKnNpZF90b19zdHJpbmcoZnN0
cmluZyBzaWRzdHJfb3V0LCBET01fU0lEICpzaWQpOwpjb25zdCBjaGFyICpzaWRfc3RyaW5nX3N0
YXRpYyhET01fU0lEICpzaWQpOwpCT09MIHN0cmluZ190b19zaWQoRE9NX1NJRCAqc2lkb3V0LCBj
b25zdCBjaGFyICpzaWRzdHIpOwpCT09MIHNpZF9hcHBlbmRfcmlkKERPTV9TSUQgKnNpZCwgdW5z
aWduZWQgaW50IHJpZCk7CkJPT0wgc2lkX3NwbGl0X3JpZChET01fU0lEICpzaWQsIHVuc2lnbmVk
IGludCAqcmlkKTsKQk9PTCBzaWRfcGVla19yaWQoRE9NX1NJRCAqc2lkLCB1bnNpZ25lZCBpbnQg
KnJpZCk7CnZvaWQgc2lkX2NvcHkoRE9NX1NJRCAqZHN0LCBjb25zdCBET01fU0lEICpzcmMpOwpE
T01fU0lEICpzaWRfZHVwKERPTV9TSUQgKnNyYyk7CkJPT0wgc2lkX2xpbmVhcml6ZShjaGFyICpv
dXRidWYsIHNpemVfdCBsZW4sIERPTV9TSUQgKnNpZCk7CkJPT0wgc2lkX3BhcnNlKGNoYXIgKmlu
YnVmLCBzaXplX3QgbGVuLCBET01fU0lEICpzaWQpOwppbnQgc2lkX2NvbXBhcmVfYXV0aChjb25z
dCBET01fU0lEICpzaWQxLCBjb25zdCBET01fU0lEICpzaWQyKTsKaW50IHNpZF9jb21wYXJlKGNv
bnN0IERPTV9TSUQgKnNpZDEsIGNvbnN0IERPTV9TSUQgKnNpZDIpOwppbnQgc2lkX2NvbXBhcmVf
ZG9tYWluKGNvbnN0IERPTV9TSUQgKnNpZDEsIGNvbnN0IERPTV9TSUQgKnNpZDIpOwpCT09MIHNp
ZF9lcXVhbChjb25zdCBET01fU0lEICpzaWQxLCBjb25zdCBET01fU0lEICpzaWQyKTsKQk9PTCBz
aWRfY2hlY2tfaXNfZG9tYWluKGNvbnN0IERPTV9TSUQgKnNpZCk7CkJPT0wgc2lkX2NoZWNrX2lz
X2J1aWx0aW4oY29uc3QgRE9NX1NJRCAqc2lkKTsKQk9PTCBzaWRfY2hlY2tfaXNfaW5fb3VyX2Rv
bWFpbihjb25zdCBET01fU0lEICpzaWQpOwpCT09MIHNpZF9jaGVja19pc19pbl9idWlsdGluKGNv
bnN0IERPTV9TSUQgKnNpZCk7CnNpemVfdCBzaWRfc2l6ZShET01fU0lEICpzaWQpOwpCT09MIG5v
bl9tYXBwYWJsZV9zaWQoRE9NX1NJRCAqc2lkKTsKY2hhciAqc2lkX2JpbnN0cmluZyhET01fU0lE
ICpzaWQpOwoKCgpCT09MIGlzX2Ffc29ja2V0KGludCBmZCk7CnZvaWQgc2V0X3NvY2tldF9vcHRp
b25zKGludCBmZCwgY2hhciAqb3B0aW9ucyk7CnNzaXplX3QgcmVhZF91ZHBfc29ja2V0KGludCBm
ZCxjaGFyICpidWYsc2l6ZV90IGxlbik7CnNzaXplX3QgcmVhZF93aXRoX3RpbWVvdXQoaW50IGZk
LGNoYXIgKmJ1ZixzaXplX3QgbWluY250LHNpemVfdCBtYXhjbnQsdW5zaWduZWQgaW50IHRpbWVf
b3V0KTsKQk9PTCBzZW5kX2tlZXBhbGl2ZShpbnQgY2xpZW50KTsKc3NpemVfdCByZWFkX2RhdGEo
aW50IGZkLGNoYXIgKmJ1ZmZlcixzaXplX3QgTik7CnNzaXplX3Qgd3JpdGVfZGF0YShpbnQgZmQs
Y2hhciAqYnVmZmVyLHNpemVfdCBOKTsKc3NpemVfdCB3cml0ZV9zb2NrZXRfZGF0YShpbnQgZmQs
Y2hhciAqYnVmZmVyLHNpemVfdCBOKTsKc3NpemVfdCB3cml0ZV9zb2NrZXQoaW50IGZkLGNoYXIg
KmJ1ZixzaXplX3QgbGVuKTsKc3NpemVfdCByZWFkX3NtYl9sZW5ndGgoaW50IGZkLGNoYXIgKmlu
YnVmLHVuc2lnbmVkIGludCB0aW1lb3V0KTsKQk9PTCByZWNlaXZlX3NtYihpbnQgZmQsY2hhciAq
YnVmZmVyLCB1bnNpZ25lZCBpbnQgdGltZW91dCk7CkJPT0wgY2xpZW50X3JlY2VpdmVfc21iKGlu
dCBmZCxjaGFyICpidWZmZXIsIHVuc2lnbmVkIGludCB0aW1lb3V0KTsKQk9PTCBzZW5kX3NtYihp
bnQgZmQsY2hhciAqYnVmZmVyKTsKQk9PTCBzZW5kX29uZV9wYWNrZXQoY2hhciAqYnVmLGludCBs
ZW4sc3RydWN0IGluX2FkZHIgaXAsaW50IHBvcnQsaW50IHR5cGUpOwppbnQgb3Blbl9zb2NrZXRf
aW4oIGludCB0eXBlLCBpbnQgcG9ydCwgaW50IGRsZXZlbCwgdW5zaWduZWQgaW50IHNvY2tldF9h
ZGRyLCBCT09MIHJlYmluZCApOwppbnQgb3Blbl9zb2NrZXRfb3V0KGludCB0eXBlLCBzdHJ1Y3Qg
aW5fYWRkciAqYWRkciwgaW50IHBvcnQgLGludCB0aW1lb3V0KTsKaW50IG9wZW5fdWRwX3NvY2tl
dChjb25zdCBjaGFyICpob3N0LCBpbnQgcG9ydCk7CnZvaWQgY2xpZW50X3NldGZkKGludCBmZCk7
CmNoYXIgKmNsaWVudF9uYW1lKHZvaWQpOwpjaGFyICpjbGllbnRfYWRkcih2b2lkKTsKY2hhciAq
Z2V0X3NvY2tldF9uYW1lKGludCBmZCk7CmNoYXIgKmdldF9zb2NrZXRfYWRkcihpbnQgZmQpOwpp
bnQgb3Blbl9waXBlX3NvY2soY2hhciAqcGF0aCk7CmludCBzb2NrX2V4ZWMoY29uc3QgY2hhciAq
cHJvZyk7CgoKCkJPT0wgbmV4dF90b2tlbihjaGFyICoqcHRyLGNoYXIgKmJ1ZmYsY2hhciAqc2Vw
LCBzaXplX3QgYnVmc2l6ZSk7CkJPT0wgbmV4dF90b2tlbl9ucihjaGFyICoqcHRyLGNoYXIgKmJ1
ZmYsY2hhciAqc2VwLCBzaXplX3QgYnVmc2l6ZSk7CnZvaWQgc2V0X2ZpcnN0X3Rva2VuKGNoYXIg
KnB0cik7CmNoYXIgKip0b2t0b2NsaXBsaXN0KGludCAqY3RvaywgY2hhciAqc2VwKTsKaW50IFN0
ckNhc2VDbXAoY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqdCk7CmludCBTdHJuQ2FzZUNtcChj
b25zdCBjaGFyICpzLCBjb25zdCBjaGFyICp0LCBzaXplX3Qgbik7CkJPT0wgc3RyZXF1YWwoY29u
c3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyKTsKQk9PTCBzdHJuZXF1YWwoY29uc3QgY2hhciAq
czEsY29uc3QgY2hhciAqczIsc2l6ZV90IG4pOwpCT09MIHN0cmNzZXF1YWwoY29uc3QgY2hhciAq
czEsY29uc3QgY2hhciAqczIpOwppbnQgc3Ryd2ljbXAoY29uc3QgY2hhciAqcHN6MSwgY29uc3Qg
Y2hhciAqcHN6Mik7CnZvaWQgc3Rybm9ybShjaGFyICpzKTsKQk9PTCBzdHJpc25vcm1hbChjaGFy
ICpzKTsKdm9pZCBzdHJpbmdfcmVwbGFjZShjaGFyICpzLGNoYXIgb2xkYyxjaGFyIG5ld2MpOwpj
aGFyICpza2lwX3N0cmluZyhjaGFyICpidWYsc2l6ZV90IG4pOwpzaXplX3Qgc3RyX2NoYXJudW0o
Y29uc3QgY2hhciAqcyk7CkJPT0wgdHJpbV9zdHJpbmcoY2hhciAqcyxjb25zdCBjaGFyICpmcm9u
dCxjb25zdCBjaGFyICpiYWNrKTsKQk9PTCBzdHJoYXN1cHBlcihjb25zdCBjaGFyICpzKTsKQk9P
TCBzdHJoYXNsb3dlcihjb25zdCBjaGFyICpzKTsKc2l6ZV90IGNvdW50X2NoYXJzKGNvbnN0IGNo
YXIgKnMsY2hhciBjKTsKQk9PTCBzdHJfaXNfYWxsKGNvbnN0IGNoYXIgKnMsY2hhciBjKTsKY2hh
ciAqc2FmZV9zdHJjcHkoY2hhciAqZGVzdCxjb25zdCBjaGFyICpzcmMsIHNpemVfdCBtYXhsZW5n
dGgpOwpjaGFyICpzYWZlX3N0cmNhdChjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVf
dCBtYXhsZW5ndGgpOwpjaGFyICphbHBoYV9zdHJjcHkoY2hhciAqZGVzdCwgY29uc3QgY2hhciAq
c3JjLCBjb25zdCBjaGFyICpvdGhlcl9zYWZlX2NoYXJzLCBzaXplX3QgbWF4bGVuZ3RoKTsKY2hh
ciAqU3RybkNweShjaGFyICpkZXN0LGNvbnN0IGNoYXIgKnNyYyxzaXplX3Qgbik7CmNoYXIgKnN0
cm5jcHluKGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyxzaXplX3QgbiwgY2hhciBjKTsKc2l6
ZV90IHN0cmhleF90b19zdHIoY2hhciAqcCwgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqc3RyaGV4
KTsKQk9PTCBpbl9saXN0KGNoYXIgKnMsY2hhciAqbGlzdCxCT09MIGNhc2VzZW5zaXRpdmUpOwp2
b2lkIHN0cmluZ19mcmVlKGNoYXIgKipzKTsKQk9PTCBzdHJpbmdfc2V0KGNoYXIgKipkZXN0LGNv
bnN0IGNoYXIgKnNyYyk7CnZvaWQgc3RyaW5nX3N1YihjaGFyICpzLGNvbnN0IGNoYXIgKnBhdHRl
cm4sY29uc3QgY2hhciAqaW5zZXJ0LCBzaXplX3QgbGVuKTsKdm9pZCBmc3RyaW5nX3N1YihjaGFy
ICpzLGNvbnN0IGNoYXIgKnBhdHRlcm4sY29uc3QgY2hhciAqaW5zZXJ0KTsKdm9pZCBwc3RyaW5n
X3N1YihjaGFyICpzLGNvbnN0IGNoYXIgKnBhdHRlcm4sY29uc3QgY2hhciAqaW5zZXJ0KTsKdm9p
ZCBhbGxfc3RyaW5nX3N1YihjaGFyICpzLGNvbnN0IGNoYXIgKnBhdHRlcm4sY29uc3QgY2hhciAq
aW5zZXJ0LCBzaXplX3QgbGVuKTsKc21iX3VjczJfdCAqYWxsX3N0cmluZ19zdWJfdyhzbWJfdWNz
Ml90ICpzLCBjb25zdCBzbWJfdWNzMl90ICpwYXR0ZXJuLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNtYl91Y3MyX3QgKmluc2VydCk7CnNtYl91Y3My
X3QgKmFsbF9zdHJpbmdfc3ViX3dhKHNtYl91Y3MyX3QgKnMsIGNvbnN0IGNoYXIgKnBhdHRlcm4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg
Kmluc2VydCk7CnZvaWQgc3BsaXRfYXRfbGFzdF9jb21wb25lbnQoY2hhciAqcGF0aCwgY2hhciAq
ZnJvbnQsIGNoYXIgc2VwLCBjaGFyICpiYWNrKTsKY2hhciAqb2N0YWxfc3RyaW5nKGludCBpKTsK
Y2hhciAqc3RyaW5nX3RydW5jYXRlKGNoYXIgKnMsIGludCBsZW5ndGgpOwpjaGFyICpzdHJjaHJf
bShjb25zdCBjaGFyICpzLCBjaGFyIGMpOwpjaGFyICpzdHJyY2hyX20oY29uc3QgY2hhciAqcywg
Y2hhciBjKTsKdm9pZCBzdHJsb3dlcl9tKGNoYXIgKnMpOwp2b2lkIHN0cnVwcGVyX20oY2hhciAq
cyk7CmNoYXIgKmJpbmFyeV9zdHJpbmcoY2hhciAqYnVmLCBpbnQgbGVuKTsKCgoKdm9pZCBsb2Fk
X2Nhc2VfdGFibGVzKHZvaWQpOwp2b2lkIGluaXRfdmFsaWRfdGFibGUodm9pZCk7CnNpemVfdCBk
b3NfUHV0VW5pQ29kZShjaGFyICpkc3QsY29uc3QgY2hhciAqc3JjLCBzc2l6ZV90IGxlbiwgQk9P
TCBudWxsX3Rlcm1pbmF0ZSk7CmNoYXIgKnNraXBfdW5pYnVmKGNoYXIgKnNyYywgc2l6ZV90IGxl
bik7CmludCBycGNzdHJfcHVsbChjaGFyKiBkZXN0LCB2b2lkICpzcmMsIGludCBkZXN0X2xlbiwg
aW50IHNyY19sZW4sIGludCBmbGFncyk7CmludCBycGNzdHJfcHVsbF91bmlzdHIyX2ZzdHJpbmco
Y2hhciAqZGVzdCwgVU5JU1RSMiAqc3JjKTsKaW50IHJwY3N0cl9wdXNoKHZvaWQqIGRlc3QsIGNv
bnN0IGNoYXIgKnNyYywgaW50IGRlc3RfbGVuLCBpbnQgZmxhZ3MpOwpjaGFyICpkb3NfdW5pc3Ry
bjIoY29uc3QgdW5zaWduZWQgc2hvcnQgKnNyYywgaW50IGxlbik7CnZvaWQgdW5pc3RyMl90b19h
c2NpaShjaGFyICpkZXN0LCBjb25zdCBVTklTVFIyICpzdHIsIHNpemVfdCBtYXhsZW4pOwpjaGFy
ICp1bmlzdHIyX3RkdXAoVEFMTE9DX0NUWCAqY3R4LCBjb25zdCBVTklTVFIyICpzdHIpOwp1bnNp
Z25lZCBpbnQgYnVmZmVyMl90b191aW50MzIoQlVGRkVSMiAqc3RyKTsKc21iX3VjczJfdCB0b3Vw
cGVyX3coc21iX3VjczJfdCB2YWwpOwpzbWJfdWNzMl90IHRvbG93ZXJfdyggc21iX3VjczJfdCB2
YWwgKTsKQk9PTCBpc2xvd2VyX3coc21iX3VjczJfdCBjKTsKQk9PTCBpc3VwcGVyX3coc21iX3Vj
czJfdCBjKTsKQk9PTCBpc3ZhbGlkODNfdyhzbWJfdWNzMl90IGMpOwpzaXplX3Qgc3RybGVuX3co
Y29uc3Qgc21iX3VjczJfdCAqc3JjKTsKc2l6ZV90IHN0cm5sZW5fdyhjb25zdCBzbWJfdWNzMl90
ICpzcmMsIHNpemVfdCBtYXgpOwpzbWJfdWNzMl90ICpzdHJjaHJfdyhjb25zdCBzbWJfdWNzMl90
ICpzLCBzbWJfdWNzMl90IGMpOwpzbWJfdWNzMl90ICpzdHJjaHJfd2EoY29uc3Qgc21iX3VjczJf
dCAqcywgY2hhciBjKTsKc21iX3VjczJfdCAqc3RycmNocl93KGNvbnN0IHNtYl91Y3MyX3QgKnMs
IHNtYl91Y3MyX3QgYyk7CnNtYl91Y3MyX3QgKnN0cnN0cl93KGNvbnN0IHNtYl91Y3MyX3QgKnMs
IGNvbnN0IHNtYl91Y3MyX3QgKmlucyk7CkJPT0wgc3RybG93ZXJfdyhzbWJfdWNzMl90ICpzKTsK
Qk9PTCBzdHJ1cHBlcl93KHNtYl91Y3MyX3QgKnMpOwp2b2lkIHN0cm5vcm1fdyhzbWJfdWNzMl90
ICpzKTsKaW50IHN0cmNtcF93KGNvbnN0IHNtYl91Y3MyX3QgKmEsIGNvbnN0IHNtYl91Y3MyX3Qg
KmIpOwppbnQgc3RybmNtcF93KGNvbnN0IHNtYl91Y3MyX3QgKmEsIGNvbnN0IHNtYl91Y3MyX3Qg
KmIsIHNpemVfdCBsZW4pOwppbnQgc3RyY2FzZWNtcF93KGNvbnN0IHNtYl91Y3MyX3QgKmEsIGNv
bnN0IHNtYl91Y3MyX3QgKmIpOwppbnQgc3RybmNhc2VjbXBfdyhjb25zdCBzbWJfdWNzMl90ICph
LCBjb25zdCBzbWJfdWNzMl90ICpiLCBzaXplX3QgbGVuKTsKQk9PTCBzdHJlcXVhbF93KGNvbnN0
IHNtYl91Y3MyX3QgKnMxLCBjb25zdCBzbWJfdWNzMl90ICpzMik7CkJPT0wgc3RybmVxdWFsX3co
Y29uc3Qgc21iX3VjczJfdCAqczEsY29uc3Qgc21iX3VjczJfdCAqczIsc2l6ZV90IG4pOwpzbWJf
dWNzMl90ICpzdHJkdXBfdyhjb25zdCBzbWJfdWNzMl90ICpzcmMpOwpzbWJfdWNzMl90ICpzdHJu
ZHVwX3coY29uc3Qgc21iX3VjczJfdCAqc3JjLCBzaXplX3QgbGVuKTsKc21iX3VjczJfdCAqc3Ry
bmNweV93KHNtYl91Y3MyX3QgKmRlc3QsIGNvbnN0IHNtYl91Y3MyX3QgKnNyYywgY29uc3Qgc2l6
ZV90IG1heCk7CnNtYl91Y3MyX3QgKnN0cm5jYXRfdyhzbWJfdWNzMl90ICpkZXN0LCBjb25zdCBz
bWJfdWNzMl90ICpzcmMsIGNvbnN0IHNpemVfdCBtYXgpOwpzbWJfdWNzMl90ICpzdHJjYXRfdyhz
bWJfdWNzMl90ICpkZXN0LCBjb25zdCBzbWJfdWNzMl90ICpzcmMpOwp2b2lkIHN0cmluZ19yZXBs
YWNlX3coc21iX3VjczJfdCAqcywgc21iX3VjczJfdCBvbGRjLCBzbWJfdWNzMl90IG5ld2MpOwpC
T09MIHRyaW1fc3RyaW5nX3coc21iX3VjczJfdCAqcywgY29uc3Qgc21iX3VjczJfdCAqZnJvbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzbWJfdWNzMl90ICpiYWNr
KTsKdm9pZCBwc3RyY3B5X3dhKHNtYl91Y3MyX3QgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYyk7Cmlu
dCBzdHJjbXBfd2EoY29uc3Qgc21iX3VjczJfdCAqYSwgY29uc3QgY2hhciAqYik7CmludCBzdHJu
Y21wX3dhKGNvbnN0IHNtYl91Y3MyX3QgKmEsIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBsZW4pOwpz
bWJfdWNzMl90ICpzdHJwYnJrX3dhKGNvbnN0IHNtYl91Y3MyX3QgKnMsIGNvbnN0IGNoYXIgKnAp
OwpzbWJfdWNzMl90ICpzdHJzdHJfd2EoY29uc3Qgc21iX3VjczJfdCAqcywgY29uc3QgY2hhciAq
aW5zKTsKc21iX3VjczJfdCAqc3RybmNweV93YShzbWJfdWNzMl90ICpkZXN0LCBjb25zdCBjaGFy
ICpzcmMsIGNvbnN0IHNpemVfdCBtYXgpOwpzbWJfdWNzMl90ICpzdHJkdXBfd2EoY29uc3QgY2hh
ciAqc3JjKTsKc21iX3VjczJfdCAqc3RybmR1cF93YShjb25zdCBjaGFyICpzcmMsIHNpemVfdCBs
ZW4pOwpzbWJfdWNzMl90ICpzdHJuY2F0X3dhKHNtYl91Y3MyX3QgKmRlc3QsIGNvbnN0IGNoYXIg
KnNyYywgY29uc3Qgc2l6ZV90IG1heCk7CnNtYl91Y3MyX3QgKnN0cmNhdF93YShzbWJfdWNzMl90
ICpkZXN0LCBjb25zdCBjaGFyICpzcmMpOwpCT09MIHRyaW1fc3RyaW5nX3dhKHNtYl91Y3MyX3Qg
KnMsIGNvbnN0IGNoYXIgKmZyb250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqYmFjayk7CgoKCkJPT0wgd2luc19zcnZfbG9hZF9saXN0KCBjaGFyICpzcmMg
KTsKc3RydWN0IGluX2FkZHIgd2luc19zcnZfaXAoIHZvaWQgKTsKY2hhciAqd2luc19zcnZfbmFt
ZSggdm9pZCApOwp2b2lkIHdpbnNfc3J2X2RpZWQoIHN0cnVjdCBpbl9hZGRyIGJvb3RoaWxsX2lw
ICk7CnVuc2lnbmVkIGxvbmcgd2luc19zcnZfY291bnQoIHZvaWQgKTsKCgoKaW50IHhfc2V0dmJ1
ZihYRklMRSAqZiwgY2hhciAqYnVmLCBpbnQgbW9kZSwgc2l6ZV90IHNpemUpOwpYRklMRSAqeF9m
b3Blbihjb25zdCBjaGFyICpmbmFtZSwgaW50IGZsYWdzLCBtb2RlX3QgbW9kZSk7CmludCB4X2Zj
bG9zZShYRklMRSAqZik7CmludCB4X2Z3cml0ZShjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSwg
c2l6ZV90IG5tZW1iLCBYRklMRSAqZik7CmludCB4X3ZmcHJpbnRmKFhGSUxFICpmLCBjb25zdCBj
aGFyICpmb3JtYXQsIHZhX2xpc3QgYXApOwppbnQgeF9mcHJpbnRmKFhGSUxFICpmLCBjb25zdCBj
aGFyICpmb3JtYXQsIC4uLik7CmludCB4X2ZpbGVubyhYRklMRSAqZik7CmludCB4X2ZmbHVzaChY
RklMRSAqZik7CnZvaWQgeF9zZXRidWZmZXIoWEZJTEUgKmYsIGNoYXIgKmJ1Ziwgc2l6ZV90IHNp
emUpOwp2b2lkIHhfc2V0YnVmKFhGSUxFICpmLCBjaGFyICpidWYpOwp2b2lkIHhfc2V0bGluZWJ1
ZihYRklMRSAqZik7CmludCB4X2Zlb2YoWEZJTEUgKmYpOwppbnQgeF9mZXJyb3IoWEZJTEUgKmYp
OwppbnQgeF9mZ2V0YyhYRklMRSAqZik7CnNpemVfdCB4X2ZyZWFkKHZvaWQgKnAsIHNpemVfdCBz
aXplLCBzaXplX3Qgbm1lbWIsIFhGSUxFICpmKTsKY2hhciAqeF9mZ2V0cyhjaGFyICpzLCBpbnQg
c2l6ZSwgWEZJTEUgKnN0cmVhbSkgOwoKCgpjaGFyICphZHNfYnVpbGRfZG4oY29uc3QgY2hhciAq
cmVhbG0pOwpBRFNfU1RSVUNUICphZHNfaW5pdChjb25zdCBjaGFyICpyZWFsbSwKICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqbGRhcF9zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmJpbmRfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
cGFzc3dvcmQpOwp2b2lkIGFkc19kZXN0cm95KEFEU19TVFJVQ1QgKiphZHMpOwoKCgppbnQga2Vy
YmVyb3Nfa2luaXRfcGFzc3dvcmQoY29uc3QgY2hhciAqcHJpbmNpcGFsLCBjb25zdCBjaGFyICpw
YXNzd29yZCk7CmludCBhZHNfa2luaXRfcGFzc3dvcmQoQURTX1NUUlVDVCAqYWRzKTsKTlRTVEFU
VVMgYWRzX3ZlcmlmeV90aWNrZXQoQURTX1NUUlVDVCAqYWRzLCBjb25zdCBEQVRBX0JMT0IgKnRp
Y2tldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKnByaW5jaXBhbCwgREFUQV9C
TE9CICphdXRoX2RhdGEpOwoKCgpBRFNfU1RBVFVTIGtyYjVfc2V0X3Bhc3N3b3JkKGNvbnN0IGNo
YXIgKmtkY19ob3N0LCBjb25zdCBjaGFyICpwcmluYywgY29uc3QgY2hhciAqbmV3cHcpOwpBRFNf
U1RBVFVTIGtlcmJlcm9zX3NldF9wYXNzd29yZChjb25zdCBjaGFyICprcGFzc3dkX3NlcnZlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYXV0aF9wcmluY2lw
YWwsIGNvbnN0IGNoYXIgKmF1dGhfcGFzc3dvcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnRhcmdldF9wcmluY2lwYWwsIGNvbnN0IGNoYXIgKm5ld19wYXNz
d29yZCk7CgoKCkFEU19TVEFUVVMgYWRzX2J1aWxkX2Vycm9yKGVudW0gYWRzX2Vycm9yX3R5cGUg
ZXR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYywgaW50IG1pbm9yX3N0YXR1
cyk7Ck5UU1RBVFVTIGFkc19udHN0YXR1cyhBRFNfU1RBVFVTIHJjKTsKY29uc3QgY2hhciAqYWRz
X2VycnN0cihBRFNfU1RBVFVTIHN0YXR1cyk7CkFEU19TVEFUVVMgYWRzX2Nvbm5lY3QoQURTX1NU
UlVDVCAqYWRzKTsKQURTX1NUQVRVUyBhZHNfZG9fc2VhcmNoKEFEU19TVFJVQ1QgKmFkcywgY29u
c3QgY2hhciAqYmluZF9wYXRoLCBpbnQgc2NvcGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpleHAsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqYXR0
cnMsIHZvaWQgKipyZXMpOwpBRFNfU1RBVFVTIGFkc19zZWFyY2goQURTX1NUUlVDVCAqYWRzLCB2
b2lkICoqcmVzLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXhwLAogICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmF0dHJzKTsKQURTX1NUQVRVUyBhZHNfc2VhcmNo
X2RuKEFEU19TVFJVQ1QgKmFkcywgdm9pZCAqKnJlcywKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmRuLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmF0
dHJzKTsKdm9pZCBhZHNfbXNnZnJlZShBRFNfU1RSVUNUICphZHMsIHZvaWQgKm1zZyk7CkFEU19T
VEFUVVMgYWRzX2ZpbmRfbWFjaGluZV9hY2N0KEFEU19TVFJVQ1QgKmFkcywgdm9pZCAqKnJlcywg
Y29uc3QgY2hhciAqaG9zdCk7CkFEU19TVEFUVVMgYWRzX2dlbl9hZGQoQURTX1NUUlVDVCAqYWRz
LCBjb25zdCBjaGFyICpuZXdfZG4sIC4uLik7CnZvaWQgYWRzX2R1bXAoQURTX1NUUlVDVCAqYWRz
LCB2b2lkICpyZXMpOwppbnQgYWRzX2NvdW50X3JlcGxpZXMoQURTX1NUUlVDVCAqYWRzLCB2b2lk
ICpyZXMpOwpBRFNfU1RBVFVTIGFkc19qb2luX3JlYWxtKEFEU19TVFJVQ1QgKmFkcywgY29uc3Qg
Y2hhciAqaG9zdG5hbWUsIGNvbnN0IGNoYXIgKm9yZ191bml0KTsKQURTX1NUQVRVUyBhZHNfbGVh
dmVfcmVhbG0oQURTX1NUUlVDVCAqYWRzLCBjb25zdCBjaGFyICpob3N0bmFtZSk7CkFEU19TVEFU
VVMgYWRzX3NldF9tYWNoaW5lX3Bhc3N3b3JkKEFEU19TVFJVQ1QgKmFkcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaG9zdG5hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhc3N3b3JkKTsKdm9pZCAqYWRz
X2ZpcnN0X2VudHJ5KEFEU19TVFJVQ1QgKmFkcywgdm9pZCAqcmVzKTsKdm9pZCAqYWRzX25leHRf
ZW50cnkoQURTX1NUUlVDVCAqYWRzLCB2b2lkICpyZXMpOwpjaGFyICphZHNfcHVsbF9zdHJpbmco
QURTX1NUUlVDVCAqYWRzLAogICAgICAgICAgICAgICAgICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0
eCwgdm9pZCAqbXNnLCBjb25zdCBjaGFyICpmaWVsZCk7CkJPT0wgYWRzX3B1bGxfdWludDMyKEFE
U19TVFJVQ1QgKmFkcywKICAgICAgICAgICAgICAgICAgICAgdm9pZCAqbXNnLCBjb25zdCBjaGFy
ICpmaWVsZCwgdW5zaWduZWQgaW50ICp2KTsKQk9PTCBhZHNfcHVsbF9zaWQoQURTX1NUUlVDVCAq
YWRzLAogICAgICAgICAgICAgICAgICB2b2lkICptc2csIGNvbnN0IGNoYXIgKmZpZWxkLCBET01f
U0lEICpzaWQpOwppbnQgYWRzX3B1bGxfc2lkcyhBRFNfU1RSVUNUICphZHMsIFRBTExPQ19DVFgg
Km1lbV9jdHgsCiAgICAgICAgICAgICAgICAgIHZvaWQgKm1zZywgY29uc3QgY2hhciAqZmllbGQs
IERPTV9TSUQgKipzaWRzKTsKQURTX1NUQVRVUyBhZHNfVVNOKEFEU19TVFJVQ1QgKmFkcywgdW5z
aWduZWQgaW50ICp1c24pOwpBRFNfU1RBVFVTIGFkc19zZXJ2ZXJfaW5mbyhBRFNfU1RSVUNUICph
ZHMpOwpBRFNfU1RBVFVTIGFkc190cnVzdGVkX2RvbWFpbnMoQURTX1NUUlVDVCAqYWRzLCBUQUxM
T0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpudW1f
dHJ1c3RzLCBjaGFyICoqKm5hbWVzLCBET01fU0lEICoqc2lkcyk7CkFEU19TVEFUVVMgYWRzX2Rv
bWFpbl9zaWQoQURTX1NUUlVDVCAqYWRzLCBET01fU0lEICpzaWQpOwoKCgpBRFNfU1RBVFVTIGFk
c19zYXNsX2dzc2FwaV9iaW5kKEFEU19TVFJVQ1QgKmFkcyk7CkFEU19TVEFUVVMgYWRzX3Nhc2xf
YmluZChBRFNfU1RSVUNUICphZHMpOwoKCgpBRFNfU1RBVFVTIGFkc19jaGFuZ2VfdHJ1c3RfYWNj
b3VudF9wYXNzd29yZChBRFNfU1RSVUNUICphZHMsIGNoYXIgKmhvc3RfcHJpbmNpcGFsKTsKCgoK
dm9pZCBhc24xX2ZyZWUoQVNOMV9EQVRBICpkYXRhKTsKQk9PTCBhc24xX3dyaXRlKEFTTjFfREFU
QSAqZGF0YSwgY29uc3Qgdm9pZCAqcCwgaW50IGxlbik7CkJPT0wgYXNuMV93cml0ZV91aW50OChB
U04xX0RBVEEgKmRhdGEsIHVuc2lnbmVkIGNoYXIgdik7CkJPT0wgYXNuMV9wdXNoX3RhZyhBU04x
X0RBVEEgKmRhdGEsIHVuc2lnbmVkIGNoYXIgdGFnKTsKQk9PTCBhc24xX3BvcF90YWcoQVNOMV9E
QVRBICpkYXRhKTsKQk9PTCBhc24xX3dyaXRlX0ludGVnZXIoQVNOMV9EQVRBICpkYXRhLCBpbnQg
aSk7CkJPT0wgYXNuMV93cml0ZV9PSUQoQVNOMV9EQVRBICpkYXRhLCBjb25zdCBjaGFyICpPSUQp
OwpCT09MIGFzbjFfd3JpdGVfT2N0ZXRTdHJpbmcoQVNOMV9EQVRBICpkYXRhLCBjb25zdCB2b2lk
ICpwLCBzaXplX3QgbGVuZ3RoKTsKQk9PTCBhc24xX3dyaXRlX0dlbmVyYWxTdHJpbmcoQVNOMV9E
QVRBICpkYXRhLCBjb25zdCBjaGFyICpzKTsKQk9PTCBhc24xX3dyaXRlX0JPT0xFQU4oQVNOMV9E
QVRBICpkYXRhLCBCT09MIHYpOwpCT09MIGFzbjFfY2hlY2tfQk9PTEVBTihBU04xX0RBVEEgKmRh
dGEsIEJPT0wgdik7CkJPT0wgYXNuMV9sb2FkKEFTTjFfREFUQSAqZGF0YSwgREFUQV9CTE9CIGJs
b2IpOwpCT09MIGFzbjFfcmVhZChBU04xX0RBVEEgKmRhdGEsIHZvaWQgKnAsIGludCBsZW4pOwpC
T09MIGFzbjFfcmVhZF91aW50OChBU04xX0RBVEEgKmRhdGEsIHVuc2lnbmVkIGNoYXIgKnYpOwpC
T09MIGFzbjFfc3RhcnRfdGFnKEFTTjFfREFUQSAqZGF0YSwgdW5zaWduZWQgY2hhciB0YWcpOwpC
T09MIGFzbjFfZW5kX3RhZyhBU04xX0RBVEEgKmRhdGEpOwppbnQgYXNuMV90YWdfcmVtYWluaW5n
KEFTTjFfREFUQSAqZGF0YSk7CkJPT0wgYXNuMV9yZWFkX09JRChBU04xX0RBVEEgKmRhdGEsIGNo
YXIgKipPSUQpOwpCT09MIGFzbjFfY2hlY2tfT0lEKEFTTjFfREFUQSAqZGF0YSwgY2hhciAqT0lE
KTsKQk9PTCBhc24xX3JlYWRfR2VuZXJhbFN0cmluZyhBU04xX0RBVEEgKmRhdGEsIGNoYXIgKipz
KTsKQk9PTCBhc24xX3JlYWRfT2N0ZXRTdHJpbmcoQVNOMV9EQVRBICpkYXRhLCBEQVRBX0JMT0Ig
KmJsb2IpOwpCT09MIGFzbjFfcmVhZF9JbnRlZ2VyKEFTTjFfREFUQSAqZGF0YSwgaW50ICppKTsK
Qk9PTCBhc24xX2NoZWNrX2VudW1lcmF0ZWQoQVNOMV9EQVRBICpkYXRhLCBpbnQgdik7CkJPT0wg
YXNuMV93cml0ZV9lbnVtZXJhdGVkKEFTTjFfREFUQSAqZGF0YSwgdW5zaWduZWQgY2hhciB2KTsK
CgoKc3RydWN0IGNsaV9zdGF0ZSAqY2xpX2Rmc19pbml0aWFsaXNlKHN0cnVjdCBjbGlfc3RhdGUg
KmNsaSwgY2hhciAqc3lzdGVtX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgbnR1c2VyX2NyZWRzICpjcmVkcyk7Ck5UU1RBVFVTIGNsaV9kZnNfZXhpc3Qo
c3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAg
ICAgICAgICAgIEJPT0wgKmRmc19leGlzdHMpOwpOVFNUQVRVUyBjbGlfZGZzX2FkZChzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAg
IGNoYXIgKmVudHJ5cGF0aCwgY2hhciAqc2VydmVybmFtZSwgY2hhciAqc2hhcmVuYW1lLAogICAg
ICAgICAgICAgICAgICAgICBjaGFyICpjb21tZW50LCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwpOVFNU
QVRVUyBjbGlfZGZzX3JlbW92ZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1l
bV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmVudHJ5cGF0aCwgY2hhciAqc2Vy
dmVybmFtZSwgY2hhciAqc2hhcmVuYW1lKTsKTlRTVEFUVVMgY2xpX2Rmc19nZXRfaW5mbyhzdHJ1
Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZW50cnlwYXRoLCBjaGFyICpzZXJ2ZXJuYW1lLCBjaGFyICpzaGFyZW5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGluZm9fbGV2ZWwsIERG
U19JTkZPX0NUUiAqY3RyKTsKTlRTVEFUVVMgY2xpX2Rmc19lbnVtKHN0cnVjdCBjbGlfc3RhdGUg
KmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBpbmZvX2xldmVsLCBERlNfSU5GT19DVFIgKmN0cik7CgoKCnN0cnVjdCBjbGlfc3RhdGUg
KmNsaV9sc2FfaW5pdGlhbGlzZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNoYXIgKnN5c3RlbV9u
YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG50dXNlcl9j
cmVkcyAqY3JlZHMpOwpOVFNUQVRVUyBjbGlfbHNhX29wZW5fcG9saWN5KHN0cnVjdCBjbGlfc3Rh
dGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBCT09MIHNlY19xb3MsIHVuc2lnbmVkIGludCBkZXNfYWNjZXNzLCBQT0xJQ1lfSE5EICpwb2wp
OwpOVFNUQVRVUyBjbGlfbHNhX29wZW5fcG9saWN5MihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRB
TExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT0wgc2Vj
X3FvcywgdW5zaWduZWQgaW50IGRlc19hY2Nlc3MsIFBPTElDWV9ITkQgKnBvbCk7Ck5UU1RBVFVT
IGNsaV9sc2FfY2xvc2Uoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4
LAogICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCk7Ck5UU1RBVFVTIGNsaV9s
c2FfbG9va3VwX3NpZHMoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwgaW50IG51bV9z
aWRzLCBET01fU0lEICpzaWRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKioq
bmFtZXMsIHVuc2lnbmVkIGludCAqKnR5cGVzLCBpbnQgKm51bV9uYW1lcyk7Ck5UU1RBVFVTIGNs
aV9sc2FfbG9va3VwX25hbWVzKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVt
X2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqcG9sLCBpbnQg
bnVtX25hbWVzLCBjb25zdCBjaGFyICoqbmFtZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERPTV9TSUQgKipzaWRzLCB1bnNpZ25lZCBpbnQgKip0eXBlcywgaW50ICpudW1fc2lkcyk7
Ck5UU1RBVFVTIGNsaV9sc2FfcXVlcnlfaW5mb19wb2xpY3koc3RydWN0IGNsaV9zdGF0ZSAqY2xp
LCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBPTElDWV9ITkQgKnBvbCwgdW5zaWduZWQgc2hvcnQgaW5mb19jbGFzcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIGRvbWFpbl9uYW1lLCBET01fU0lEICpkb21h
aW5fc2lkKTsKTlRTVEFUVVMgY2xpX2xzYV9lbnVtX3RydXN0X2RvbShzdHJ1Y3QgY2xpX3N0YXRl
ICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUE9MSUNZX0hORCAqcG9sLCB1bnNpZ25lZCBpbnQgKmVudW1fY3R4LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnVtX2RvbWFpbnMsIGNoYXIgKioqZG9t
YWluX25hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9TSUQgKipkb21h
aW5fc2lkcyk7Ck5UU1RBVFVTIGNsaV9sc2FfZW51bV9wcml2aWxlZ2Uoc3RydWN0IGNsaV9zdGF0
ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBPTElDWV9ITkQgKnBvbCwgdW5zaWduZWQgaW50ICplbnVtX2NvbnRleHQsIHVuc2lnbmVk
IGludCBwcmVmX21heF9sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50ICpjb3VudCwgY2hhciAqKipwcml2c19uYW1lLCB1bnNpZ25lZCBpbnQgKipwcml2
c19oaWdoLCB1bnNpZ25lZCBpbnQgKipwcml2c19sb3cpOwpOVFNUQVRVUyBjbGlfbHNhX2dldF9k
aXNwbmFtZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwgY2hhciAqbmFtZSwgdW5z
aWduZWQgc2hvcnQgbGFuZ19pZCwgdW5zaWduZWQgc2hvcnQgbGFuZ19pZF9zeXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZzdHJpbmcgZGVzY3JpcHRpb24sIHVuc2lnbmVkIHNob3J0
ICpsYW5nX2lkX2Rlc2MpOwpOVFNUQVRVUyBjbGlfbHNhX2VudW1fc2lkcyhzdHJ1Y3QgY2xpX3N0
YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUE9MSUNZX0hORCAqcG9sLCB1bnNpZ25lZCBpbnQgKmVudW1fY3R4LCB1bnNpZ25lZCBp
bnQgcHJlZl9tYXhfbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCAqbnVtX3NpZHMsIERPTV9TSUQgKipzaWRzKTsKTlRTVEFUVVMgY2xpX2xzYV9vcGVu
X2FjY291bnQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKmRvbV9wb2wsIERPTV9TSUQgKnNp
ZCwgdW5zaWduZWQgaW50IGRlc19hY2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UE9MSUNZX0hORCAqdXNlcl9wb2wpOwpOVFNUQVRVUyBjbGlfbHNhX2VudW1fcHJpdnNhY2NvdW50
KHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpwb2wsIHVuc2lnbmVkIGludCAqY291bnQsIExV
SURfQVRUUiAqKnNldCk7Ck5UU1RBVFVTIGNsaV9sc2FfbG9va3VwcHJpdnZhbHVlKHN0cnVjdCBj
bGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUE9MSUNZX0hORCAqcG9sLCBjaGFyICpuYW1lLCBMVUlEICpsdWlkKTsKTlRTVEFU
VVMgY2xpX2xzYV9xdWVyeV9zZWNvYmooc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RY
ICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpwb2ws
IHVuc2lnbmVkIGludCBzZWNfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VD
X0RFU0NfQlVGICoqcHNkYik7CkJPT0wgZmV0Y2hfZG9tYWluX3NpZCggY2hhciAqZG9tYWluLCBj
aGFyICpyZW1vdGVfbWFjaGluZSwgRE9NX1NJRCAqcHNpZCk7CgoKCnN0cnVjdCBjbGlfc3RhdGUg
KmNsaV9uZXRsb2dvbl9pbml0aWFsaXNlKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc3lzdGVtX25hbWUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBudHVzZXJfY3JlZHMg
KmNyZWRzKTsKTlRTVEFUVVMgbmV3X2NsaV9uZXRfcmVxX2NoYWwoc3RydWN0IGNsaV9zdGF0ZSAq
Y2xpLCBET01fQ0hBTCAqY2xudF9jaGFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
T01fQ0hBTCAqc3J2X2NoYWwpOwpOVFNUQVRVUyBuZXdfY2xpX25ldF9hdXRoMihzdHJ1Y3QgY2xp
X3N0YXRlICpjbGksIHVuc2lnbmVkIHNob3J0IHNlY19jaGFuLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgbmVnX2ZsYWdzLCBET01fQ0hBTCAqc3J2X2NoYWwpOwpOVFNU
QVRVUyBuZXdfY2xpX250X3NldHVwX2NyZWRzKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG1hY2hfcHdkWzE2XSk7Ck5U
U1RBVFVTIGNsaV9uZXRsb2dvbl9sb2dvbl9jdHJsMihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRB
TExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgcXVlcnlfbGV2ZWwpOwpOVFNUQVRVUyBjbGlfbmV0bG9nb25fc2FtX3N5bmMoc3Ry
dWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LCBET01fQ1JFRCAqcmV0X2Ny
ZWRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRhdGFiYXNl
X2lkLCB1bnNpZ25lZCBpbnQgKm51bV9kZWx0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTQU1fREVMVEFfSERSICoqaGRyX2RlbHRhcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNBTV9ERUxUQV9DVFIgKipkZWx0YXMpOwpOVFNUQVRVUyBjbGlfbmV0bG9nb25fc2Ft
X2RlbHRhcyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkYXRhYmFzZV9pZCwgVUlO
VDY0X1Mgc2VxbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgKm51bV9kZWx0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNBTV9ERUxU
QV9IRFIgKipoZHJfZGVsdGFzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQU1f
REVMVEFfQ1RSICoqZGVsdGFzKTsKTlRTVEFUVVMgY2xpX25ldGxvZ29uX3NhbV9sb2dvbihzdHJ1
Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqdXNlcm5hbWUsIGNoYXIgKnBhc3N3b3JkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBsb2dvbl90eXBlKTsKTlRTVEFUVVMgY2xpX25ldF9z
cnZfcHdzZXQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBtYWNoaW5lX25hbWUsIHVuc2lnbmVkIGNoYXIg
aGFzaGVkX21hY2hfcHdkWzE2XSk7CgoKCnN0cnVjdCBjbGlfc3RhdGUgKmNsaV9waXBlX2luaXRp
YWxpc2Uoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjaGFyICpzeXN0ZW1fbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpwaXBlX25hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG50dXNlcl9jcmVkcyAqY3JlZHMpOwp2
b2lkIGNsaV9waXBlX3NodXRkb3duKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7CgoKCnN0cnVjdCBj
bGlfc3RhdGUgKmNsaV93aW5yZWdfaW5pdGlhbGlzZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzeXN0ZW1fbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBudHVzZXJfY3Jl
ZHMgKmNyZWRzKTsKTlRTVEFUVVMgY2xpX3JlZ19zaHV0ZG93bihzdHJ1Y3QgY2xpX3N0YXRlICog
Y2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKnNydl9uYW1lLCBjb25zdCBjaGFyICptc2csCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IHRpbWVvdXQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKTlRTVEFUVVMg
Y2xpX3JlZ19hYm9ydF9zaHV0ZG93bihzdHJ1Y3QgY2xpX3N0YXRlICogY2xpLCBUQUxMT0NfQ1RY
ICptZW1fY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNy
dl9uYW1lKTsKCgoKc3RydWN0IGNsaV9zdGF0ZSAqY2xpX3NhbXJfaW5pdGlhbGlzZShzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGksIGNoYXIgKnN5c3RlbV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBudHVzZXJfY3JlZHMgKmNyZWRzKTsKTlRTVEFUVVMgY2xp
X3NhbXJfY29ubmVjdChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrLCBQT0xJ
Q1lfSE5EICpjb25uZWN0X3BvbCk7Ck5UU1RBVFVTIGNsaV9zYW1yX2Nsb3NlKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
UE9MSUNZX0hORCAqY29ubmVjdF9wb2wpOwpOVFNUQVRVUyBjbGlfc2Ftcl9vcGVuX2RvbWFpbihz
dHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKmNvbm5lY3RfcG9sLCB1bnNpZ25lZCBpbnQgYWNj
ZXNzX21hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IERPTV9TSUQgKmRv
bWFpbl9zaWQsIFBPTElDWV9ITkQgKmRvbWFpbl9wb2wpOwpOVFNUQVRVUyBjbGlfc2Ftcl9vcGVu
X3VzZXIoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZG9tYWluX3BvbCwgdW5zaWduZWQgaW50
IGFjY2Vzc19tYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVz
ZXJfcmlkLCBQT0xJQ1lfSE5EICp1c2VyX3BvbCk7Ck5UU1RBVFVTIGNsaV9zYW1yX29wZW5fZ3Jv
dXAoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKmRvbWFpbl9wb2wsIHVuc2lnbmVkIGludCBh
Y2Nlc3NfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZ3Jv
dXBfcmlkLCBQT0xJQ1lfSE5EICpncm91cF9wb2wpOwpOVFNUQVRVUyBjbGlfc2Ftcl9xdWVyeV91
c2VyaW5mbyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnVzZXJfcG9sLCB1bnNpZ25l
ZCBzaG9ydCBzd2l0Y2hfdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNB
TV9VU0VSSU5GT19DVFIgKipjdHIpOwpOVFNUQVRVUyBjbGlfc2Ftcl9xdWVyeV9ncm91cGluZm8o
c3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZ3JvdXBfcG9sLCB1bnNpZ25lZCBpbnQg
aW5mb19sZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdST1VQX0lORk9f
Q1RSICpjdHIpOwpOVFNUQVRVUyBjbGlfc2Ftcl9xdWVyeV91c2VyZ3JvdXBzKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQT0xJQ1lfSE5EICp1c2VyX3BvbCwgdW5zaWduZWQgaW50ICpudW1fZ3JvdXBz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9HSUQgKipnaWQpOwpOVFNU
QVRVUyBjbGlfc2Ftcl9xdWVyeV91c2VyYWxpYXNlcyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRB
TExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9M
SUNZX0hORCAqdXNlcl9wb2wsIHVuc2lnbmVkIGludCBudW1fc2lkcywgRE9NX1NJRDIgKnNpZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm51bV9hbGlh
c2VzLCB1bnNpZ25lZCBpbnQgKiphbHNfcmlkcyk7Ck5UU1RBVFVTIGNsaV9zYW1yX3F1ZXJ5X2dy
b3VwbWVtKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZ3JvdXBfcG9sLCB1bnNpZ25l
ZCBpbnQgKm51bV9tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCAqKnJpZCwgdW5zaWduZWQgaW50ICoqYXR0cik7Ck5UU1RBVFVTIGNsaV9zYW1yX2VudW1f
ZG9tX2dyb3VwcyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpwb2wsIHVuc2lnbmVk
IGludCAqc3RhcnRfaWR4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IHNpemUsIHN0cnVjdCBhY2N0X2luZm8gKipkb21fZ3JvdXBzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fZG9tX2dyb3Vwcyk7Ck5UU1RB
VFVTIGNsaV9zYW1yX2VudW1fYWxzX2dyb3VwcyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExP
Q19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lf
SE5EICpwb2wsIHVuc2lnbmVkIGludCAqc3RhcnRfaWR4LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IHNpemUsIHN0cnVjdCBhY2N0X2luZm8gKipkb21fZ3Jv
dXBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1f
ZG9tX2dyb3Vwcyk7Ck5UU1RBVFVTIGNsaV9zYW1yX3F1ZXJ5X2FsaWFzbWVtKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUE9MSUNZX0hORCAqYWxpYXNfcG9sLCB1bnNpZ25lZCBpbnQgKm51bV9tZW0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9TSUQgKipzaWRzKTsKTlRTVEFUVVMg
Y2xpX3NhbXJfb3Blbl9hbGlhcyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1l
bV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZG9tYWluX3Bv
bCwgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCBhbGlhc19yaWQsIFBPTElDWV9ITkQgKmFsaWFzX3BvbCk7Ck5UU1RBVFVT
IGNsaV9zYW1yX3F1ZXJ5X2RvbV9pbmZvKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NU
WCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAq
ZG9tYWluX3BvbCwgdW5zaWduZWQgc2hvcnQgc3dpdGNoX3ZhbHVlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTQU1fVU5LX0NUUiAqY3RyKTsKTlRTVEFUVVMgY2xpX3NhbXJfcXVl
cnlfZGlzcGluZm8oc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpkb21haW5fcG9sLCB1
bnNpZ25lZCBpbnQgKnN0YXJ0X2lkeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgc2hvcnQgc3dpdGNoX3ZhbHVlLCB1bnNpZ25lZCBpbnQgKm51bV9lbnRyaWVzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X2VudHJpZXMs
IFNBTV9ESVNQSU5GT19DVFIgKmN0cik7Ck5UU1RBVFVTIGNsaV9zYW1yX2xvb2t1cF9yaWRzKHN0
cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZG9tYWluX3BvbCwgdW5zaWduZWQgaW50IGZsYWdz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3JpZHMsIHVu
c2lnbmVkIGludCAqcmlkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50ICpudW1fbmFtZXMsIGNoYXIgKioqbmFtZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCAqKm5hbWVfdHlwZXMpOwpOVFNUQVRVUyBjbGlfc2Ftcl9sb29rdXBf
bmFtZXMoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqZG9tYWluX3BvbCwgdW5zaWduZWQg
aW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51
bV9uYW1lcywgY2hhciAqKm5hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50ICpudW1fcmlkcywgdW5zaWduZWQgaW50ICoqcmlkcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqKnJpZF90eXBlcyk7Ck5UU1RBVFVTIGNsaV9z
YW1yX2NyZWF0ZV9kb21fdXNlcihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1l
bV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpkb21h
aW5fcG9sLCBjb25zdCBjaGFyICphY2N0X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgYWNiX2luZm8sIHVuc2lnbmVkIGludCB1bmtub3duLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqdXNlcl9wb2wsIHVuc2ln
bmVkIGludCAqcmlkKTsKTlRTVEFUVVMgY2xpX3NhbXJfc2V0X3VzZXJpbmZvKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBPTElDWV9ITkQgKnVzZXJfcG9sLCB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHNlc3Nfa2V5WzE2
XSwgU0FNX1VTRVJJTkZPX0NUUiAqY3RyKTsKTlRTVEFUVVMgY2xpX3NhbXJfc2V0X3VzZXJpbmZv
MihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqdXNlcl9wb2wsIHVuc2lnbmVkIHNob3J0
IHN3aXRjaF92YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyIHNlc3Nfa2V5WzE2XSwgU0FNX1VTRVJJTkZPX0NUUiAqY3RyKTsKTlRTVEFUVVMgY2xpX3Nh
bXJfZGVsZXRlX2RvbV91c2VyKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgVEFMTE9DX0NUWCAqbWVt
X2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnVzZXJf
cG9sKTsKTlRTVEFUVVMgY2xpX3NhbXJfcXVlcnlfc2VjX29iaihzdHJ1Y3QgY2xpX3N0YXRlICpj
bGksIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBPTElDWV9ITkQgKnVzZXJfcG9sLCB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBTExPQ19DVFggKmN0eCwgU0VDX0RFU0NfQlVG
ICoqc2VjX2Rlc2NfYnVmKTsKCgoKc3RydWN0IGNsaV9zdGF0ZSAqY2xpX3Nwb29sc3NfaW5pdGlh
bGlzZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhciAqc3lzdGVtX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IG50dXNlcl9jcmVkcyAqY3JlZHMpOwpOVFNUQVRVUyBjbGlf
c3Bvb2xzc19vcGVuX3ByaW50ZXJfZXgoCiAgICAgICAgc3RydWN0IGNsaV9zdGF0ZSAqY2xpLAog
ICAgICAgIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgY2hhciAqcHJpbnRlcm5hbWUsCiAg
ICAgICAgY2hhciAqZGF0YXR5cGUsCiAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19yZXF1aXJl
ZCwKICAgICAgICBjaGFyICpzdGF0aW9uLAogICAgICAgIGNoYXIgKnVzZXJuYW1lLAogICAgICAg
IFBPTElDWV9ITkQgKnBvbAopOwpOVFNUQVRVUyBjbGlfc3Bvb2xzc19jbG9zZV9wcmludGVyKAog
ICAgICAgIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4
LAogICAgICAgIFBPTElDWV9ITkQgKnBvbAopOwpOVFNUQVRVUyBjbGlfc3Bvb2xzc19lbnVtX3By
aW50ZXJzKAogICAgICAgIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0NfQ1RY
ICptZW1fY3R4LAogICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICB1bnNpZ25lZCBp
bnQgbGV2ZWwsCiAgICAgICAgaW50ICpyZXR1cm5lZCwKICAgICAgICBQUklOVEVSX0lORk9fQ1RS
ICpjdHIKKTsKTlRTVEFUVVMgY2xpX3Nwb29sc3NfZW51bV9wb3J0cygKICAgICAgICBzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGksCiAgICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICB1bnNp
Z25lZCBpbnQgbGV2ZWwsCiAgICAgICAgaW50ICpyZXR1cm5lZCwKICAgICAgICBQT1JUX0lORk9f
Q1RSICpjdHIKKTsKTlRTVEFUVVMgY2xpX3Nwb29sc3NfZ2V0cHJpbnRlcigKICAgICAgICBzdHJ1
Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICBQ
T0xJQ1lfSE5EICpwb2wsCiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsLAogICAgICAgIFBSSU5U
RVJfSU5GT19DVFIgKmN0cgopOwpOVFNUQVRVUyBjbGlfc3Bvb2xzc19zZXRwcmludGVyKAogICAg
ICAgIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4LAog
ICAgICAgIFBPTElDWV9ITkQgKnBvbCwKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAg
ICAgUFJJTlRFUl9JTkZPX0NUUiAqY3RyLAogICAgICAgIHVuc2lnbmVkIGludCBjb21tYW5kCik7
Ck5UU1RBVFVTIGNsaV9zcG9vbHNzX2dldHByaW50ZXJkcml2ZXIgKAogICAgICAgIHN0cnVjdCBj
bGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgIFBPTElD
WV9ITkQgKnBvbCwKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAgICAgY2hhciogZW52
LAogICAgICAgIFBSSU5URVJfRFJJVkVSX0NUUiAqY3RyCik7Ck5UU1RBVFVTIGNsaV9zcG9vbHNz
X2VudW1wcmludGVyZHJpdmVycyAoCiAgICAgICAgc3RydWN0IGNsaV9zdGF0ZSAqY2xpLAogICAg
ICAgIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgdW5zaWduZWQgaW50IGxldmVsLAogICAg
ICAgIGNoYXIqIGVudiwKICAgICAgICB1bnNpZ25lZCBpbnQgKnJldHVybmVkLAogICAgICAgIFBS
SU5URVJfRFJJVkVSX0NUUiAqY3RyCik7Ck5UU1RBVFVTIGNsaV9zcG9vbHNzX2dldHByaW50ZXJk
cml2ZXJkaXIgKAogICAgICAgIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0Nf
Q1RYICptZW1fY3R4LAogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwKICAgICAgICBjaGFyKiBl
bnYsCiAgICAgICAgRFJJVkVSX0RJUkVDVE9SWV9DVFIgKmN0cgopOwpOVFNUQVRVUyBjbGlfc3Bv
b2xzc19hZGRwcmludGVyZHJpdmVyICgKICAgICAgICBzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAg
ICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAg
ICAgICAgUFJJTlRFUl9EUklWRVJfQ1RSICpjdHIKKTsKTlRTVEFUVVMgY2xpX3Nwb29sc3NfYWRk
cHJpbnRlcmV4ICgKICAgICAgICBzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgVEFMTE9D
X0NUWCAqbWVtX2N0eCwKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAgICAgUFJJTlRF
Ul9JTkZPX0NUUiAqY3RyCik7Ck5UU1RBVFVTIGNsaV9zcG9vbHNzX2RlbGV0ZXByaW50ZXJkcml2
ZXIgKAogICAgICAgIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICBUQUxMT0NfQ1RYICpt
ZW1fY3R4LAogICAgICAgIGNoYXIgKmFyY2gsCiAgICAgICAgY2hhciAqZHJpdmVyCik7Ck5UU1RB
VFVTIGNsaV9zcG9vbHNzX2dldHByaW50cHJvY2Vzc29yZGlyZWN0b3J5KHN0cnVjdCBjbGlfc3Rh
dGUgKmNsaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqZW52aXJvbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZzdHJpbmcgcHJvY2Rpcik7CgoKCnN0cnVjdCBjbGlf
c3RhdGUgKmNsaV9zdnJzdmNfaW5pdGlhbGlzZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzeXN0ZW1fbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBudHVzZXJfY3JlZHMg
KmNyZWRzKTsKTlRTVEFUVVMgY2xpX3NydnN2Y19uZXRfc3J2X2dldF9pbmZvKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBTExPQ19D
VFggKm1lbV9jdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgc3dpdGNoX3ZhbHVlLCBTUlZfSU5GT19DVFIgKmN0cik7CgoKCkJPT0wgY2xpX3Nlc3Np
b25fc2V0dXAoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLAogICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKnVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcGFzcywgaW50IHBhc3NsZW4s
CiAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbnRwYXNzLCBpbnQgbnRwYXNzbGVuLAogICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKndvcmtncm91cCk7CkJPT0wgY2xpX3Vsb2dvZmYoc3Ry
dWN0IGNsaV9zdGF0ZSAqY2xpKTsKQk9PTCBjbGlfc2VuZF90Y29uWChzdHJ1Y3QgY2xpX3N0YXRl
ICpjbGksCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc2hhcmUsIGNvbnN0IGNoYXIg
KmRldiwgY29uc3QgY2hhciAqcGFzcywgaW50IHBhc3NsZW4pOwpCT09MIGNsaV90ZGlzKHN0cnVj
dCBjbGlfc3RhdGUgKmNsaSk7CnZvaWQgY2xpX25lZ3Byb3Rfc2VuZChzdHJ1Y3QgY2xpX3N0YXRl
ICpjbGkpOwpCT09MIGNsaV9uZWdwcm90KHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7CkJPT0wgY2xp
X3Nlc3Npb25fcmVxdWVzdChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKmNhbGxpbmcsIHN0cnVjdCBubWJfbmFtZSAqY2FsbGVk
KTsKQk9PTCBjbGlfY29ubmVjdChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKmhv
c3QsIHN0cnVjdCBpbl9hZGRyICppcCk7CkJPT0wgY2xpX2VzdGFibGlzaF9jb25uZWN0aW9uKHN0
cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
ICpkZXN0X2hvc3QsIHN0cnVjdCBpbl9hZGRyICpkZXN0X2lwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCBubWJfbmFtZSAqY2FsbGluZywgc3RydWN0IG5tYl9uYW1lICpj
YWxsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc2VydmljZSwgY2hh
ciAqc2VydmljZV90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT0wgZG9f
c2h1dGRvd24sIEJPT0wgZG9fdGNvbik7Ck5UU1RBVFVTIGNsaV9mdWxsX2Nvbm5lY3Rpb24oc3Ry
dWN0IGNsaV9zdGF0ZSAqKm91dHB1dF9jbGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqbXlfbmFtZSwgY29uc3QgY2hhciAqZGVzdF9ob3N0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9hZGRyICpkZXN0X2lwLCBpbnQgcG9ydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzZXJ2aWNlLCBjaGFyICpzZXJ2aWNlX3R5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqdXNlciwgY2hhciAqZG9tYWluLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnBhc3N3b3JkLCBpbnQgcGFzc19sZW4p
IDsKQk9PTCBhdHRlbXB0X25ldGJpb3Nfc2Vzc2lvbl9yZXF1ZXN0KHN0cnVjdCBjbGlfc3RhdGUg
KmNsaSwgY2hhciAqc3JjaG9zdCwgY2hhciAqZGVzdGhvc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciAqcGRlc3RfaXApOwoKCgppbnQgY2xpX3Nl
bmRfbWFpbHNsb3QoaW50IGRncmFtX3NvY2ssIEJPT0wgdW5pcXVlLCBjaGFyICptYWlsc2xvdCwK
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmJ1ZiwgaW50IGxlbiwKICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyY25hbWUsIGludCBzcmNfdHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKmRzdG5hbWUsIGludCBkZXN0X3R5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgaW5fYWRkciBkZXN0X2lwLCBzdHJ1Y3QgaW5fYWRkciBzcmNfaXAsCiAg
ICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdF9wb3J0LCBpbnQgc3JjX3BvcnQpOwppbnQgY2xp
X2dldF9yZXNwb25zZShpbnQgZGdyYW1fc29jaywgQk9PTCB1bmlxdWUsIGNoYXIgKm1haWxzbG90
LCBjaGFyICpidWYsIGludCBidWZzaXopOwppbnQgY2xpX2dldF9iYWNrdXBfbGlzdChjb25zdCBj
aGFyICpteW5hbWUsIGNvbnN0IGNoYXIgKnNlbmRfdG9fbmFtZSk7CmludCBjbGlfZ2V0X2JhY2t1
cF9zZXJ2ZXIoY2hhciAqbXlfbmFtZSwgY2hhciAqdGFyZ2V0LCBjaGFyICpzZXJ2ZXJuYW1lLCBp
bnQgbmFtZXNpemUpOwoKCgppbnQgY2xpX3NldF9wb3J0KHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwg
aW50IHBvcnQpOwpCT09MIGNsaV9yZWNlaXZlX3NtYihzdHJ1Y3QgY2xpX3N0YXRlICpjbGkpOwpC
T09MIGNsaV9zZW5kX3NtYihzdHJ1Y3QgY2xpX3N0YXRlICpjbGkpOwp2b2lkIGNsaV9zZXR1cF9w
YWNrZXQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpKTsKdm9pZCBjbGlfc2V0dXBfYmNjKHN0cnVjdCBj
bGlfc3RhdGUgKmNsaSwgdm9pZCAqcCk7CnZvaWQgY2xpX2luaXRfY3JlZHMoc3RydWN0IGNsaV9z
dGF0ZSAqY2xpLCBjb25zdCBzdHJ1Y3QgbnR1c2VyX2NyZWRzICp1c3IpOwpzdHJ1Y3QgY2xpX3N0
YXRlICpjbGlfaW5pdGlhbGlzZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGkpOwp2b2lkIGNsaV9zaHV0
ZG93bihzdHJ1Y3QgY2xpX3N0YXRlICpjbGkpOwp2b2lkIGNsaV9zb2Nrb3B0KHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgY2hhciAqb3B0aW9ucyk7CnVuc2lnbmVkIHNob3J0IGNsaV9zZXRwaWQoc3Ry
dWN0IGNsaV9zdGF0ZSAqY2xpLCB1bnNpZ25lZCBzaG9ydCBwaWQpOwoKCgpjaGFyICpjbGlfZXJy
c3RyKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7Ck5UU1RBVFVTIGNsaV9udF9lcnJvcihzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGkpOwp2b2lkIGNsaV9kb3NfZXJyb3Ioc3RydWN0IGNsaV9zdGF0ZSAqY2xp
LCB1bnNpZ25lZCBjaGFyICplY2xhc3MsIHVuc2lnbmVkIGludCAqZWNvZGUpOwppbnQgY2xpX2Vy
cm5vX2Zyb21fZG9zKHVuc2lnbmVkIGNoYXIgZWNsYXNzLCB1bnNpZ25lZCBpbnQgbnVtKTsKaW50
IGNsaV9lcnJub19mcm9tX250KE5UU1RBVFVTIHN0YXR1cyk7CmludCBjbGlfZXJybm8oc3RydWN0
IGNsaV9zdGF0ZSAqY2xpKTsKQk9PTCBjbGlfaXNfZXJyb3Ioc3RydWN0IGNsaV9zdGF0ZSAqY2xp
KTsKQk9PTCBjbGlfaXNfbnRfZXJyb3Ioc3RydWN0IGNsaV9zdGF0ZSAqY2xpKTsKQk9PTCBjbGlf
aXNfZG9zX2Vycm9yKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7CgoKCkJPT0wgY2xpX3JlbmFtZShz
dHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKmZuYW1lX3NyYywgY29uc3QgY2hhciAq
Zm5hbWVfZHN0KTsKQk9PTCBjbGlfdW5saW5rKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgY29uc3Qg
Y2hhciAqZm5hbWUpOwpCT09MIGNsaV9ta2RpcihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0
IGNoYXIgKmRuYW1lKTsKQk9PTCBjbGlfcm1kaXIoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25z
dCBjaGFyICpkbmFtZSk7CmludCBjbGlfbnRfZGVsZXRlX29uX2Nsb3NlKHN0cnVjdCBjbGlfc3Rh
dGUgKmNsaSwgaW50IGZudW0sIEJPT0wgZmxhZyk7CmludCBjbGlfbnRfY3JlYXRlX2Z1bGwoc3Ry
dWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBjaGFyICpmbmFtZSwgdW5zaWduZWQgaW50IERlc2ly
ZWRBY2Nlc3MsCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IEZpbGVBdHRyaWJ1dGVzLCB1
bnNpZ25lZCBpbnQgU2hhcmVBY2Nlc3MsCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IENy
ZWF0ZURpc3Bvc2l0aW9uLCB1bnNpZ25lZCBpbnQgQ3JlYXRlT3B0aW9ucyk7CmludCBjbGlfbnRf
Y3JlYXRlKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgY29uc3QgY2hhciAqZm5hbWUsIHVuc2lnbmVk
IGludCBEZXNpcmVkQWNjZXNzKTsKaW50IGNsaV9vcGVuKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwg
Y29uc3QgY2hhciAqZm5hbWUsIGludCBmbGFncywgaW50IHNoYXJlX21vZGUpOwpCT09MIGNsaV9j
bG9zZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGludCBmbnVtKTsKQk9PTCBjbGlfbG9jayhzdHJ1
Y3QgY2xpX3N0YXRlICpjbGksIGludCBmbnVtLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBv
ZmZzZXQsIHVuc2lnbmVkIGludCBsZW4sIGludCB0aW1lb3V0LCBlbnVtIGJybF90eXBlIGxvY2tf
dHlwZSk7CkJPT0wgY2xpX3VubG9jayhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGludCBmbnVtLCB1
bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgbGVuKTsKQk9PTCBjbGlfbG9jazY0KHN0
cnVjdCBjbGlfc3RhdGUgKmNsaSwgaW50IGZudW0sCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGxvbmcgbGVuLCBpbnQgdGltZW91dCwgZW51
bSBicmxfdHlwZSBsb2NrX3R5cGUpOwpCT09MIGNsaV91bmxvY2s2NChzdHJ1Y3QgY2xpX3N0YXRl
ICpjbGksIGludCBmbnVtLCB1bnNpZ25lZCBsb25nIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25n
IGxvbmcgbGVuKTsKQk9PTCBjbGlfZ2V0YXR0ckUoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBpbnQg
ZmQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICphdHRyLCBzaXplX3QgKnNpemUs
CiAgICAgICAgICAgICAgICAgIHRpbWVfdCAqY190aW1lLCB0aW1lX3QgKmFfdGltZSwgdGltZV90
ICptX3RpbWUpOwpCT09MIGNsaV9nZXRhdHIoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBj
aGFyICpmbmFtZSwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICphdHRyLCBzaXplX3Qg
KnNpemUsIHRpbWVfdCAqdCk7CkJPT0wgY2xpX3NldGF0cihzdHJ1Y3QgY2xpX3N0YXRlICpjbGks
IGNvbnN0IGNoYXIgKmZuYW1lLCB1bnNpZ25lZCBzaG9ydCBhdHRyLCB0aW1lX3QgdCk7CkJPT0wg
Y2xpX2Noa3BhdGgoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBjaGFyICpwYXRoKTsKQk9P
TCBjbGlfZHNrYXR0cihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGludCAqYnNpemUsIGludCAqdG90
YWwsIGludCAqYXZhaWwpOwppbnQgY2xpX2N0ZW1wKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgY29u
c3QgY2hhciAqcGF0aCwgY2hhciAqKnRtcF9wYXRoKTsKCgoKREFUQV9CTE9CIGtyYjVfZ2V0X3Rp
Y2tldChjaGFyICpwcmluY2lwYWwpOwoKCgppbnQgY2xpX2xpc3RfbmV3KHN0cnVjdCBjbGlfc3Rh
dGUgKmNsaSxjb25zdCBjaGFyICpNYXNrLHVuc2lnbmVkIHNob3J0IGF0dHJpYnV0ZSwKICAgICAg
ICAgICAgICAgICB2b2lkICgqZm4pKGZpbGVfaW5mbyAqLCBjb25zdCBjaGFyICosIHZvaWQgKiks
IHZvaWQgKnN0YXRlKTsKaW50IGNsaV9saXN0X29sZChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksY29u
c3QgY2hhciAqTWFzayx1bnNpZ25lZCBzaG9ydCBhdHRyaWJ1dGUsCiAgICAgICAgICAgICAgICAg
dm9pZCAoKmZuKShmaWxlX2luZm8gKiwgY29uc3QgY2hhciAqLCB2b2lkICopLCB2b2lkICpzdGF0
ZSk7CmludCBjbGlfbGlzdChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksY29uc3QgY2hhciAqTWFzayx1
bnNpZ25lZCBzaG9ydCBhdHRyaWJ1dGUsCiAgICAgICAgICAgICB2b2lkICgqZm4pKGZpbGVfaW5m
byAqLCBjb25zdCBjaGFyICosIHZvaWQgKiksIHZvaWQgKnN0YXRlKTsKCgoKQk9PTCBjbGlfbWVz
c2FnZV9zdGFydChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNoYXIgKmhvc3QsIGNoYXIgKnVzZXJu
YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmdycCk7CkJPT0wgY2xpX21l
c3NhZ2VfdGV4dChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNoYXIgKm1zZywgaW50IGxlbiwgaW50
IGdycCk7CkJPT0wgY2xpX21lc3NhZ2VfZW5kKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgaW50IGdy
cCk7CgoKCkJPT0wgY2xpX29wbG9ja19hY2soc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBpbnQgZm51
bSwgdW5zaWduZWQgY2hhciBsZXZlbCk7CnZvaWQgY2xpX29wbG9ja19oYW5kbGVyKHN0cnVjdCBj
bGlfc3RhdGUgKmNsaSwKICAgICAgICAgICAgICAgICAgICAgICAgQk9PTCAoKmhhbmRsZXIpKHN0
cnVjdCBjbGlfc3RhdGUgKiwgaW50LCB1bnNpZ25lZCBjaGFyKSk7CgoKCmludCBjbGlfcHJpbnRf
cXVldWUoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLAogICAgICAgICAgICAgICAgICAgIHZvaWQgKCpm
bikoc3RydWN0IHByaW50X2pvYl9pbmZvICopKTsKaW50IGNsaV9wcmludGpvYl9kZWwoc3RydWN0
IGNsaV9zdGF0ZSAqY2xpLCBpbnQgam9iKTsKCgoKQk9PTCBjbGlfYXBpX3BpcGUoc3RydWN0IGNs
aV9zdGF0ZSAqY2xpLCBjaGFyICpwaXBlX25hbWUsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHNob3J0ICpzZXR1cCwgdW5zaWduZWQgaW50IHNldHVwX2NvdW50LCB1bnNpZ25lZCBpbnQgbWF4
X3NldHVwX2NvdW50LAogICAgICAgICAgICAgICAgICBjaGFyICpwYXJhbXMsIHVuc2lnbmVkIGlu
dCBwYXJhbV9jb3VudCwgdW5zaWduZWQgaW50IG1heF9wYXJhbV9jb3VudCwKICAgICAgICAgICAg
ICAgICAgY2hhciAqZGF0YSwgdW5zaWduZWQgaW50IGRhdGFfY291bnQsIHVuc2lnbmVkIGludCBt
YXhfZGF0YV9jb3VudCwKICAgICAgICAgICAgICAgICAgY2hhciAqKnJwYXJhbSwgdW5zaWduZWQg
aW50ICpycGFyYW1fY291bnQsCiAgICAgICAgICAgICAgICAgIGNoYXIgKipyZGF0YSwgdW5zaWdu
ZWQgaW50ICpyZGF0YV9jb3VudCk7CkJPT0wgY2xpX2FwaShzdHJ1Y3QgY2xpX3N0YXRlICpjbGks
CiAgICAgICAgICAgICBjaGFyICpwYXJhbSwgaW50IHByY250LCBpbnQgbXByY250LAogICAgICAg
ICAgICAgY2hhciAqZGF0YSwgaW50IGRyY250LCBpbnQgbWRyY250LAogICAgICAgICAgICAgY2hh
ciAqKnJwYXJhbSwgaW50ICpycHJjbnQsCiAgICAgICAgICAgICBjaGFyICoqcmRhdGEsIGludCAq
cmRyY250KTsKQk9PTCBjbGlfTmV0V2tzdGFVc2VyTG9nb24oc3RydWN0IGNsaV9zdGF0ZSAqY2xp
LGNoYXIgKnVzZXIsIGNoYXIgKndvcmtzdGF0aW9uKTsKaW50IGNsaV9STmV0U2hhcmVFbnVtKHN0
cnVjdCBjbGlfc3RhdGUgKmNsaSwgdm9pZCAoKmZuKShjb25zdCBjaGFyICosIHVuc2lnbmVkIGlu
dCwgY29uc3QgY2hhciAqLCB2b2lkICopLCB2b2lkICpzdGF0ZSk7CkJPT0wgY2xpX05ldFNlcnZl
ckVudW0oc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjaGFyICp3b3JrZ3JvdXAsIHVuc2lnbmVkIGlu
dCBzdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqZm4pKGNvbnN0IGNoYXIgKiwg
dW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIHZvaWQgKiksCiAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCAqc3RhdGUpOwpCT09MIGNsaV9vZW1fY2hhbmdlX3Bhc3N3b3JkKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgY29uc3QgY2hhciAqdXNlciwgY29uc3QgY2hhciAqbmV3X3Bhc3N3b3JkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm9sZF9wYXNzd29yZCk7CkJP
T0wgY2xpX3FwYXRoaW5mbyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKmZuYW1l
LAogICAgICAgICAgICAgICAgICAgdGltZV90ICpjX3RpbWUsIHRpbWVfdCAqYV90aW1lLCB0aW1l
X3QgKm1fdGltZSwKICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2l6ZSwgdW5zaWduZWQgc2hv
cnQgKm1vZGUpOwpCT09MIGNsaV9xcGF0aGluZm8yKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgY29u
c3QgY2hhciAqZm5hbWUsCiAgICAgICAgICAgICAgICAgICAgdGltZV90ICpjX3RpbWUsIHRpbWVf
dCAqYV90aW1lLCB0aW1lX3QgKm1fdGltZSwKICAgICAgICAgICAgICAgICAgICB0aW1lX3QgKndf
dGltZSwgc2l6ZV90ICpzaXplLCB1bnNpZ25lZCBzaG9ydCAqbW9kZSwKICAgICAgICAgICAgICAg
ICAgICBpbm9fdCAqaW5vKTsKQk9PTCBjbGlfcWZpbGVpbmZvKHN0cnVjdCBjbGlfc3RhdGUgKmNs
aSwgaW50IGZudW0sCiAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqbW9kZSwgc2l6
ZV90ICpzaXplLAogICAgICAgICAgICAgICAgICAgdGltZV90ICpjX3RpbWUsIHRpbWVfdCAqYV90
aW1lLCB0aW1lX3QgKm1fdGltZSwKICAgICAgICAgICAgICAgICAgIHRpbWVfdCAqd190aW1lLCBp
bm9fdCAqaW5vKTsKQk9PTCBjbGlfcWZpbGVpbmZvX3Rlc3Qoc3RydWN0IGNsaV9zdGF0ZSAqY2xp
LCBpbnQgZm51bSwgaW50IGxldmVsLCBjaGFyICpvdXRkYXRhKTsKTlRTVEFUVVMgY2xpX3FwYXRo
aW5mb19hbHRfbmFtZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKmZuYW1lLCBm
c3RyaW5nIGFsdF9uYW1lKTsKCgoKaW50IGNsaV9OZXRHcm91cERlbGV0ZShzdHJ1Y3QgY2xpX3N0
YXRlICpjbGksIGNvbnN0IGNoYXIgKmdyb3VwX25hbWUgKTsKaW50IGNsaV9OZXRHcm91cEFkZChz
dHJ1Y3QgY2xpX3N0YXRlICpjbGksIFJBUF9HUk9VUF9JTkZPXzEgKiBncmluZm8gKTsKaW50IGNs
aV9STmV0R3JvdXBFbnVtKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgdm9pZCAoKmZuKShjb25zdCBj
aGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqKSwgdm9pZCAqc3RhdGUpOwppbnQgY2xpX05ldEdy
b3VwRGVsVXNlcihzdHJ1Y3QgY2xpX3N0YXRlICogY2xpLCBjb25zdCBjaGFyICpncm91cF9uYW1l
LCBjb25zdCBjaGFyICp1c2VyX25hbWUpOwppbnQgY2xpX05ldEdyb3VwQWRkVXNlcihzdHJ1Y3Qg
Y2xpX3N0YXRlICogY2xpLCBjb25zdCBjaGFyICpncm91cF9uYW1lLCBjb25zdCBjaGFyICp1c2Vy
X25hbWUpOwppbnQgY2xpX05ldEdyb3VwR2V0VXNlcnMoc3RydWN0IGNsaV9zdGF0ZSAqIGNsaSwg
Y29uc3QgY2hhciAqZ3JvdXBfbmFtZSwgdm9pZCAoKmZuKShjb25zdCBjaGFyICosIHZvaWQgKiks
IHZvaWQgKnN0YXRlICk7CmludCBjbGlfTmV0VXNlckdldEdyb3VwcyhzdHJ1Y3QgY2xpX3N0YXRl
ICogY2xpLCBjb25zdCBjaGFyICp1c2VyX25hbWUsIHZvaWQgKCpmbikoY29uc3QgY2hhciAqLCB2
b2lkICopLCB2b2lkICpzdGF0ZSApOwppbnQgY2xpX05ldFVzZXJEZWxldGUoc3RydWN0IGNsaV9z
dGF0ZSAqY2xpLCBjb25zdCBjaGFyICogdXNlcl9uYW1lICk7CmludCBjbGlfTmV0VXNlckFkZChz
dHJ1Y3QgY2xpX3N0YXRlICpjbGksIFJBUF9VU0VSX0lORk9fMSAqIHVzZXJpbmZvICk7CmludCBj
bGlfUk5ldFVzZXJFbnVtKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgdm9pZCAoKmZuKShjb25zdCBj
aGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHZvaWQgKiks
IHZvaWQgKnN0YXRlKTsKaW50IGNsaV9OZXRGaWxlQ2xvc2Uoc3RydWN0IGNsaV9zdGF0ZSAqY2xp
LCB1bnNpZ25lZCBpbnQgZmlsZV9pZCApOwppbnQgY2xpX05ldEZpbGVHZXRJbmZvKHN0cnVjdCBj
bGlfc3RhdGUgKmNsaSwgdW5zaWduZWQgaW50IGZpbGVfaWQsIHZvaWQgKCpmbikoY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICosIHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBzaG9ydCwgdW5zaWdu
ZWQgaW50KSk7CmludCBjbGlfTmV0RmlsZUVudW0oc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjaGFy
ICogdXNlciwgY2hhciAqIGJhc2VfcGF0aCwgdm9pZCAoKmZuKShjb25zdCBjaGFyICosIGNvbnN0
IGNoYXIgKiwgdW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBpbnQpKTsK
aW50IGNsaV9OZXRTaGFyZUFkZChzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIFJBUF9TSEFSRV9JTkZP
XzIgKiBzaW5mbyApOwppbnQgY2xpX05ldFNoYXJlRGVsZXRlKHN0cnVjdCBjbGlfc3RhdGUgKmNs
aSwgY29uc3QgY2hhciAqIHNoYXJlX25hbWUgKTsKQk9PTCBjbGlfZ2V0X3BkY19uYW1lKHN0cnVj
dCBjbGlfc3RhdGUgKmNsaSwgY2hhciAqd29ya2dyb3VwLCBjaGFyICpwZGNfbmFtZSk7CkJPT0wg
Y2xpX2dldF9zZXJ2ZXJfZG9tYWluKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7CkJPT0wgY2xpX2dl
dF9zZXJ2ZXJfdHlwZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIHVuc2lnbmVkIGludCAqcHN0eXBl
KTsKQk9PTCBjbGlfbnNfY2hlY2tfc2VydmVyX3R5cGUoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBj
aGFyICp3b3JrZ3JvdXAsIHVuc2lnbmVkIGludCBzdHlwZSk7CkJPT0wgY2xpX05ldFdrc3RhVXNl
ckxvZ29mZihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksY2hhciAqdXNlciwgY2hhciAqd29ya3N0YXRp
b24pOwppbnQgY2xpX05ldFByaW50UUVudW0oc3RydWN0IGNsaV9zdGF0ZSAqY2xpLAogICAgICAg
ICAgICAgICAgdm9pZCAoKnFmbikoY29uc3QgY2hhciosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQg
c2hvcnQsdW5zaWduZWQgc2hvcnQsY29uc3QgY2hhciosY29uc3QgY2hhciosY29uc3QgY2hhcios
Y29uc3QgY2hhciosY29uc3QgY2hhciosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpLAog
ICAgICAgICAgICAgICAgdm9pZCAoKmpmbikodW5zaWduZWQgc2hvcnQsY29uc3QgY2hhciosY29u
c3QgY2hhciosY29uc3QgY2hhciosY29uc3QgY2hhciosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQg
c2hvcnQsY29uc3QgY2hhciosdWludCx1aW50LGNvbnN0IGNoYXIqKSk7CmludCBjbGlfTmV0UHJp
bnRRR2V0SW5mbyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKnByaW50ZXIsCiAg
ICAgICAgdm9pZCAoKnFmbikoY29uc3QgY2hhciosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hv
cnQsdW5zaWduZWQgc2hvcnQsY29uc3QgY2hhciosY29uc3QgY2hhciosY29uc3QgY2hhciosY29u
c3QgY2hhciosY29uc3QgY2hhciosdW5zaWduZWQgc2hvcnQsdW5zaWduZWQgc2hvcnQpLAogICAg
ICAgIHZvaWQgKCpqZm4pKHVuc2lnbmVkIHNob3J0LGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIqLGNv
bnN0IGNoYXIqLGNvbnN0IGNoYXIqLHVuc2lnbmVkIHNob3J0LHVuc2lnbmVkIHNob3J0LGNvbnN0
IGNoYXIqLHVpbnQsdWludCxjb25zdCBjaGFyKikpOwppbnQgY2xpX1JOZXRTZXJ2aWNlRW51bShz
dHJ1Y3QgY2xpX3N0YXRlICpjbGksIHZvaWQgKCpmbikoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICosIHZvaWQgKiksIHZvaWQgKnN0YXRlKTsKaW50IGNsaV9OZXRTZXNzaW9uRW51bShzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGksIHZvaWQgKCpmbikoY2hhciAqLCBjaGFyICosIHVuc2lnbmVkIHNob3J0
LCB1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgc2hvcnQsIHVpbnQsIHVpbnQsIHVpbnQsIGNoYXIg
KikpOwppbnQgY2xpX05ldFNlc3Npb25HZXRJbmZvKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgY29u
c3QgY2hhciAqd29ya3N0YXRpb24sIHZvaWQgKCpmbikoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICosIHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgc2hvcnQsIHVpbnQs
IHVpbnQsIHVpbnQsIGNvbnN0IGNoYXIgKikpOwppbnQgY2xpX05ldFNlc3Npb25EZWwoc3RydWN0
IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBjaGFyICp3b3Jrc3RhdGlvbik7CmludCBjbGlfTmV0Q29u
bmVjdGlvbkVudW0oc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBjaGFyICpxdWFsaWZpZXIs
IHZvaWQgKCpmbikodW5zaWduZWQgc2hvcnQgY29uaWQsIHVuc2lnbmVkIHNob3J0IGNvbnR5cGUs
IHVuc2lnbmVkIHNob3J0IG51bW9wZW5zLCB1bnNpZ25lZCBzaG9ydCBudW11c2VycywgdW5zaWdu
ZWQgaW50IGNvbnRpbWUsIGNvbnN0IGNoYXIgKnVzZXJuYW1lLCBjb25zdCBjaGFyICpuZXRuYW1l
KSk7CgoKCnNzaXplX3QgY2xpX3JlYWQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBpbnQgZm51bSwg
Y2hhciAqYnVmLCBvZmZfdCBvZmZzZXQsIHNpemVfdCBzaXplKTsKc3NpemVfdCBjbGlfcmVhZHJh
dyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGludCBmbnVtLCBjaGFyICpidWYsIG9mZl90IG9mZnNl
dCwgc2l6ZV90IHNpemUpOwpzc2l6ZV90IGNsaV93cml0ZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGks
CiAgICAgICAgICAgICAgICAgIGludCBmbnVtLCB1bnNpZ25lZCBzaG9ydCB3cml0ZV9tb2RlLAog
ICAgICAgICAgICAgICAgICBjaGFyICpidWYsIG9mZl90IG9mZnNldCwgc2l6ZV90IHNpemUpOwpz
c2l6ZV90IGNsaV9zbWJ3cml0ZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgICAgICAg
ICAgICAgIGludCBmbnVtLCBjaGFyICpidWYsIG9mZl90IG9mZnNldCwgc2l6ZV90IHNpemUxKTsK
CgoKU0VDX0RFU0MgKmNsaV9xdWVyeV9zZWNkZXNjKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgaW50
IGZudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4KTsK
Qk9PTCBjbGlfc2V0X3NlY2Rlc2Moc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBpbnQgZm51bSwgU0VD
X0RFU0MgKnNkKTsKCgoKREFUQV9CTE9CIHNwbmVnb19nZW5fbmVnVG9rZW5Jbml0KHVuc2lnbmVk
IGNoYXIgZ3VpZFsxNl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpPSURzW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpwcmluY2lwYWwpOwpCT09MIHNwbmVnb19wYXJzZV9uZWdUb2tlbkluaXQoREFUQV9CTE9CIGJs
b2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGd1aWRbMTZd
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqT0lEc1syMF0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqcHJpbmNpcGFsKTsKREFUQV9CTE9CIGdlbl9u
ZWdUb2tlblRhcmcoY29uc3QgY2hhciAqT0lEc1tdLCBEQVRBX0JMT0IgYmxvYik7CkJPT0wgcGFy
c2VfbmVnVG9rZW5UYXJnKERBVEFfQkxPQiBibG9iLCBjaGFyICpPSURzWzIwXSwgREFUQV9CTE9C
ICpzZWNibG9iKTsKREFUQV9CTE9CIHNwbmVnb19nZW5fa3JiNV93cmFwKERBVEFfQkxPQiB0aWNr
ZXQpOwpCT09MIHNwbmVnb19wYXJzZV9rcmI1X3dyYXAoREFUQV9CTE9CIGJsb2IsIERBVEFfQkxP
QiAqdGlja2V0KTsKREFUQV9CTE9CIHNwbmVnb19nZW5fbmVnVG9rZW5UYXJnKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgY2hhciAqcHJpbmNpcGFsKTsKQk9PTCBzcG5lZ29fcGFyc2VfY2hhbGxlbmdl
KERBVEFfQkxPQiBibG9iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9CTE9CICpj
aGFsMSwgREFUQV9CTE9CICpjaGFsMik7CkJPT0wgc3BuZWdvX2dlbl9jaGFsbGVuZ2UoREFUQV9C
TE9CICpibG9iLAogICAgICAgICAgICAgICAgICAgICAgICAgIERBVEFfQkxPQiAqY2hhbDEsIERB
VEFfQkxPQiAqY2hhbDIpOwpEQVRBX0JMT0Igc3BuZWdvX2dlbl9hdXRoKERBVEFfQkxPQiBibG9i
KTsKQk9PTCBzcG5lZ29fcGFyc2VfYXV0aChEQVRBX0JMT0IgYmxvYiwgREFUQV9CTE9CICphdXRo
KTsKQk9PTCBtc3JwY19nZW4oREFUQV9CTE9CICpibG9iLAogICAgICAgICAgICAgICBjb25zdCBj
aGFyICpmb3JtYXQsIC4uLik7CkJPT0wgbXNycGNfcGFyc2UoREFUQV9CTE9CICpibG9iLAogICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKCgoKaW50IGNsaXN0cl9wdXNo
KHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwgdm9pZCAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBpbnQg
ZGVzdF9sZW4sIGludCBmbGFncyk7CmludCBjbGlzdHJfcHVsbChzdHJ1Y3QgY2xpX3N0YXRlICpj
bGksIGNoYXIgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgaW50IGRlc3RfbGVuLCBpbnQgc3JjX2xl
biwKICAgICAgICAgICAgICAgIGludCBmbGFncyk7CmludCBjbGlzdHJfYWxpZ25fb3V0KHN0cnVj
dCBjbGlfc3RhdGUgKmNsaSwgY29uc3Qgdm9pZCAqcCwgaW50IGZsYWdzKTsKaW50IGNsaXN0cl9h
bGlnbl9pbihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IHZvaWQgKnAsIGludCBmbGFncyk7
CgoKCkJPT0wgY2xpX3NlbmRfdHJhbnMoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBpbnQgdHJhbnMs
CiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGlwZV9uYW1lLAogICAgICAgICAgICAg
ICAgICAgIGludCBmaWQsIGludCBmbGFncywKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBz
aG9ydCAqc2V0dXAsIGludCBsc2V0dXAsIGludCBtc2V0dXAsCiAgICAgICAgICAgICAgICAgICAg
Y2hhciAqcGFyYW0sIGludCBscGFyYW0sIGludCBtcGFyYW0sCiAgICAgICAgICAgICAgICAgICAg
Y2hhciAqZGF0YSwgaW50IGxkYXRhLCBpbnQgbWRhdGEpOwpCT09MIGNsaV9yZWNlaXZlX3RyYW5z
KHN0cnVjdCBjbGlfc3RhdGUgKmNsaSxpbnQgdHJhbnMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKipwYXJhbSwgaW50ICpwYXJhbV9sZW4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKipkYXRhLCBpbnQgKmRhdGFfbGVuKTsKQk9PTCBjbGlfc2VuZF9udF90
cmFucyhzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgICAgICAgICAgICAgICAgaW50IGZ1
bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncywKICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBzaG9ydCAqc2V0dXAsIGludCBsc2V0dXAsIGludCBtc2V0dXAsCiAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqcGFyYW0sIGludCBscGFyYW0sIGludCBtcGFyYW0s
CiAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGF0YSwgaW50IGxkYXRhLCBpbnQgbWRhdGEp
OwpCT09MIGNsaV9yZWNlaXZlX250X3RyYW5zKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICoqcGFyYW0sIGludCAqcGFyYW1fbGVuLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKipkYXRhLCBpbnQgKmRhdGFfbGVuKTsKCgoKY2hhciAq
Y3JlZHN0cih1bnNpZ25lZCBjaGFyICpjcmVkKTsKdm9pZCBjcmVkX3Nlc3Npb25fa2V5KERPTV9D
SEFMICpjbG50X2NoYWwsIERPTV9DSEFMICpzcnZfY2hhbCwgY2hhciAqcGFzcywKICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc2Vzc2lvbl9rZXlbOF0pOwp2b2lkIGNyZWRfY3Jl
YXRlKHVuc2lnbmVkIGNoYXIgc2Vzc2lvbl9rZXlbOF0sIERPTV9DSEFMICpzdG9yX2NyZWQsIFVU
SU1FIHRpbWVzdGFtcCwKICAgICAgICAgICAgICAgICBET01fQ0hBTCAqY3JlZCk7CmludCBjcmVk
X2Fzc2VydChET01fQ0hBTCAqY3JlZCwgdW5zaWduZWQgY2hhciBzZXNzaW9uX2tleVs4XSwgRE9N
X0NIQUwgKnN0b3JlZF9jcmVkLAogICAgICAgICAgICAgICAgVVRJTUUgdGltZXN0YW1wKTsKQk9P
TCBjbG50X2RlYWxfd2l0aF9jcmVkcyh1bnNpZ25lZCBjaGFyIHNlc3Nfa2V5WzhdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIERPTV9DUkVEICpzdG9fY2xudF9jcmVkLCBET01fQ1JFRCAqcmN2
X3Nydl9jcmVkKTsKQk9PTCBkZWFsX3dpdGhfY3JlZHModW5zaWduZWQgY2hhciBzZXNzX2tleVs4
XSwKICAgICAgICAgICAgICAgICAgICAgRE9NX0NSRUQgKnN0b19jbG50X2NyZWQsCiAgICAgICAg
ICAgICAgICAgICAgIERPTV9DUkVEICpyY3ZfY2xudF9jcmVkLCBET01fQ1JFRCAqcnRuX3Nydl9j
cmVkKTsKCgoKTlRTVEFUVVMgZG9zX3RvX250c3RhdHVzKGludCBlY2xhc3MsIGludCBlY29kZSk7
CnZvaWQgbnRzdGF0dXNfdG9fZG9zKE5UU1RBVFVTIG50c3RhdHVzLCB1bnNpZ25lZCBjaGFyICpl
Y2xhc3MsIHVuc2lnbmVkIGludCAqZWNvZGUpOwpOVFNUQVRVUyB3ZXJyb3JfdG9fbnRzdGF0dXMo
V0VSUk9SIGVycm9yKTsKV0VSUk9SIG50c3RhdHVzX3RvX3dlcnJvcihOVFNUQVRVUyBlcnJvcik7
CgoKCnN0cnVjdCBub2RlX3N0YXR1cyAqbm9kZV9zdGF0dXNfcXVlcnkoaW50IGZkLHN0cnVjdCBu
bWJfbmFtZSAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3QgaW5fYWRkciB0b19pcCwgaW50ICpudW1fbmFtZXMpOwpCT09MIG5hbWVfc3RhdHVzX2ZpbmQo
Y29uc3QgY2hhciAqcV9uYW1lLCBpbnQgcV90eXBlLCBpbnQgdHlwZSwgc3RydWN0IGluX2FkZHIg
dG9faXAsIGNoYXIgKm5hbWUpOwpCT09MIG5hbWVfcmVnaXN0ZXIoaW50IGZkLCBjb25zdCBjaGFy
ICpuYW1lLCBpbnQgbmFtZV90eXBlLAogICAgICAgICAgICAgICAgICAgc3RydWN0IGluX2FkZHIg
bmFtZV9pcCwgaW50IG9wY29kZSwKICAgICAgICAgICAgICAgICAgIEJPT0wgYmNhc3QsCiAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciB0b19pcCwgaW50ICpjb3VudCk7CnN0cnVjdCBp
bl9hZGRyICpuYW1lX3F1ZXJ5KGludCBmZCxjb25zdCBjaGFyICpuYW1lLGludCBuYW1lX3R5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT0wgYmNhc3QsQk9PTCByZWN1cnNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciB0b19pcCwgaW50ICpjb3VudCk7
ClhGSUxFICpzdGFydGxtaG9zdHMoY2hhciAqZm5hbWUpOwpCT09MIGdldGxtaG9zdHNlbnQoIFhG
SUxFICpmcCwgcHN0cmluZyBuYW1lLCBpbnQgKm5hbWVfdHlwZSwgc3RydWN0IGluX2FkZHIgKmlw
YWRkcik7CnZvaWQgZW5kbG1ob3N0cyhYRklMRSAqZnApOwpCT09MIG5hbWVfcmVnaXN0ZXJfd2lu
cyhjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZV90eXBlKTsKQk9PTCBuYW1lX3Jlc29sdmVfYmNh
c3QoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVfdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IGluX2FkZHIgKipyZXR1cm5faXBfbGlzdCwgaW50ICpyZXR1cm5fY291bnQpOwpC
T09MIHJlc29sdmVfbmFtZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgaW5fYWRkciAqcmV0dXJu
X2lwLCBpbnQgbmFtZV90eXBlKTsKQk9PTCByZXNvbHZlX3Nydl9uYW1lKGNvbnN0IGNoYXIqIHNy
dl9uYW1lLCBmc3RyaW5nIGRlc3RfaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgaW5fYWRkciAqaXApOwpCT09MIGZpbmRfbWFzdGVyX2lwKGNoYXIgKmdyb3VwLCBz
dHJ1Y3QgaW5fYWRkciAqbWFzdGVyX2lwKTsKQk9PTCBsb29rdXBfZGNfbmFtZShjb25zdCBjaGFy
ICpzcmNuYW1lLCBjb25zdCBjaGFyICpkb21haW4sCiAgICAgICAgICAgICAgICAgICAgc3RydWN0
IGluX2FkZHIgKmRjX2lwLCBjaGFyICpyZXRfbmFtZSk7CkJPT0wgZ2V0X2RjX2xpc3QoQk9PTCBw
ZGNfb25seSwgY2hhciAqZ3JvdXAsIHN0cnVjdCBpbl9hZGRyICoqaXBfbGlzdCwgaW50ICpjb3Vu
dCk7CkJPT0wgZ2V0X2xtYl9saXN0KHN0cnVjdCBpbl9hZGRyICoqaXBfbGlzdCwgaW50ICpjb3Vu
dCk7CgoKCnZvaWQgZGVidWdfbm1iX3BhY2tldChzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCk7CmNo
YXIgKm5tYl9uYW1lc3RyKHN0cnVjdCBubWJfbmFtZSAqbik7CnN0cnVjdCBwYWNrZXRfc3RydWN0
ICpjb3B5X3BhY2tldChzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcGFja2V0KTsKdm9pZCBmcmVlX3Bh
Y2tldChzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcGFja2V0KTsKc3RydWN0IHBhY2tldF9zdHJ1Y3Qg
KnBhcnNlX3BhY2tldChjaGFyICpidWYsaW50IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbnVtIHBhY2tldF90eXBlIHBhY2tldF90eXBlKTsKc3RydWN0IHBhY2tl
dF9zdHJ1Y3QgKnJlYWRfcGFja2V0KGludCBmZCxlbnVtIHBhY2tldF90eXBlIHBhY2tldF90eXBl
KTsKdm9pZCBtYWtlX25tYl9uYW1lKCBzdHJ1Y3Qgbm1iX25hbWUgKm4sIGNvbnN0IGNoYXIgKm5h
bWUsIGludCB0eXBlKTsKQk9PTCBubWJfbmFtZV9lcXVhbChzdHJ1Y3Qgbm1iX25hbWUgKm4xLCBz
dHJ1Y3Qgbm1iX25hbWUgKm4yKTsKaW50IGJ1aWxkX3BhY2tldChjaGFyICpidWYsIHN0cnVjdCBw
YWNrZXRfc3RydWN0ICpwKTsKQk9PTCBzZW5kX3BhY2tldChzdHJ1Y3QgcGFja2V0X3N0cnVjdCAq
cCk7CnN0cnVjdCBwYWNrZXRfc3RydWN0ICpyZWNlaXZlX3BhY2tldChpbnQgZmQsZW51bSBwYWNr
ZXRfdHlwZSB0eXBlLGludCB0KTsKc3RydWN0IHBhY2tldF9zdHJ1Y3QgKnJlY2VpdmVfbm1iX3Bh
Y2tldChpbnQgZmQsIGludCB0LCBpbnQgdHJuX2lkKTsKc3RydWN0IHBhY2tldF9zdHJ1Y3QgKnJl
Y2VpdmVfZGdyYW1fcGFja2V0KGludCBmZCwgaW50IHQsIGNoYXIgKm1haWxzbG90X25hbWUpOwpC
T09MIG1hdGNoX21haWxzbG90X25hbWUoc3RydWN0IHBhY2tldF9zdHJ1Y3QgKnAsIGNoYXIgKm1h
aWxzbG90X25hbWUpOwp2b2lkIHNvcnRfcXVlcnlfcmVwbGllcyhjaGFyICpkYXRhLCBpbnQgbiwg
c3RydWN0IGluX2FkZHIgaXApOwpjaGFyICpkbnNfdG9fbmV0Ymlvc19uYW1lKGNoYXIgKmRuc19u
YW1lKTsKaW50IG5hbWVfbWFuZ2xlKCBjaGFyICpJbiwgY2hhciAqT3V0LCBjaGFyIG5hbWVfdHlw
ZSApOwppbnQgbmFtZV9leHRyYWN0KGNoYXIgKmJ1ZixpbnQgb2ZzLGNoYXIgKm5hbWUpOwppbnQg
bmFtZV9sZW4oY2hhciAqczEpOwoKCgpjaGFyICpnZXRfbnRfZXJyb3JfbXNnKE5UU1RBVFVTIG50
X2NvZGUpOwpjaGFyICpnZXRfbnRfZXJyb3JfY19jb2RlKE5UU1RBVFVTIG50X2NvZGUpOwoKCgpC
T09MIHJlbW90ZV9wYXNzd29yZF9jaGFuZ2UoY29uc3QgY2hhciAqcmVtb3RlX21hY2hpbmUsIGNv
bnN0IGNoYXIgKnVzZXJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKm9sZF9wYXNzd2QsIGNvbnN0IGNoYXIgKm5ld19wYXNzd2QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFyICplcnJfc3RyLCBzaXplX3QgZXJyX3N0cl9sZW4pOwoKCgp2b2lkIHB3
ZF9pbml0KHN0cnVjdCBwd2RfaW5mbyAqcHdkKTsKQk9PTCBwd2RfaXNfbnVsbHB3ZChjb25zdCBz
dHJ1Y3QgcHdkX2luZm8gKnB3ZCk7CkJPT0wgcHdkX2NvbXBhcmUoY29uc3Qgc3RydWN0IHB3ZF9p
bmZvICpwd2QxLCBjb25zdCBzdHJ1Y3QgcHdkX2luZm8gKnB3ZDIpOwp2b2lkIHB3ZF9yZWFkKHN0
cnVjdCBwd2RfaW5mbyAqcHdkLCBjaGFyICpwYXNzd2RfcmVwb3J0LCBCT09MIGRvX2VuY3J5cHQp
Owp2b2lkIHB3ZF9zZXRfbnVsbHB3ZChzdHJ1Y3QgcHdkX2luZm8gKnB3ZCk7CnZvaWQgcHdkX3Nl
dF9jbGVhcnRleHQoc3RydWN0IHB3ZF9pbmZvICpwd2QsIGNoYXIgKmNscik7CnZvaWQgcHdkX2dl
dF9jbGVhcnRleHQoc3RydWN0IHB3ZF9pbmZvICpwd2QsIGNoYXIgKmNscik7CnZvaWQgcHdkX3Nl
dF9sbV9udF8xNihzdHJ1Y3QgcHdkX2luZm8gKnB3ZCwgdW5zaWduZWQgY2hhciBsbV9wd2RbMTZd
LCB1bnNpZ25lZCBjaGFyIG50X3B3ZFsxNl0pOwp2b2lkIHB3ZF9nZXRfbG1fbnRfMTYoc3RydWN0
IHB3ZF9pbmZvICpwd2QsIHVuc2lnbmVkIGNoYXIgbG1fcHdkWzE2XSwgdW5zaWduZWQgY2hhciBu
dF9wd2RbMTZdKTsKdm9pZCBwd2RfbWFrZV9sbV9udF8xNihzdHJ1Y3QgcHdkX2luZm8gKnB3ZCwg
Y2hhciAqY2xyKTsKdm9pZCBwd2RfbWFrZV9sbV9udF9vd2Yoc3RydWN0IHB3ZF9pbmZvICpwd2Qs
IHVuc2lnbmVkIGNoYXIgY3J5cHRrZXlbOF0pOwp2b2lkIHB3ZF9nZXRfbG1fbnRfb3dmKHN0cnVj
dCBwd2RfaW5mbyAqcHdkLCB1bnNpZ25lZCBjaGFyIGxtX293ZlsyNF0sIHVuc2lnbmVkIGNoYXIg
bnRfb3dmWzI0XSk7CgoKCnZvaWQgRV9QMTYoY29uc3QgdW5zaWduZWQgY2hhciAqcDE0LHVuc2ln
bmVkIGNoYXIgKnAxNik7CnZvaWQgRV9QMjQoY29uc3QgdW5zaWduZWQgY2hhciAqcDIxLCBjb25z
dCB1bnNpZ25lZCBjaGFyICpjOCwgdW5zaWduZWQgY2hhciAqcDI0KTsKdm9pZCBEX1AxNihjb25z
dCB1bnNpZ25lZCBjaGFyICpwMTQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCB1bnNpZ25lZCBj
aGFyICpvdXQpOwp2b2lkIEVfb2xkX3B3X2hhc2goIHVuc2lnbmVkIGNoYXIgKnAxNCwgY29uc3Qg
dW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGNoYXIgKm91dCk7CnZvaWQgY3JlZF9oYXNoMSh1
bnNpZ25lZCBjaGFyICpvdXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLHVuc2lnbmVkIGNoYXIg
KmtleSk7CnZvaWQgY3JlZF9oYXNoMih1bnNpZ25lZCBjaGFyICpvdXQsIGNvbnN0IHVuc2lnbmVk
IGNoYXIgKmluLHVuc2lnbmVkIGNoYXIgKmtleSk7CnZvaWQgY3JlZF9oYXNoMyh1bnNpZ25lZCBj
aGFyICpvdXQsdW5zaWduZWQgY2hhciAqaW4sdW5zaWduZWQgY2hhciAqa2V5LCBpbnQgZm9ydyk7
CnZvaWQgU2FtT0VNaGFzaCggdW5zaWduZWQgY2hhciAqZGF0YSwgY29uc3QgdW5zaWduZWQgY2hh
ciAqa2V5LCBpbnQgdmFsKTsKdm9pZCBzYW1fcHdkX2hhc2godW5zaWduZWQgaW50IHJpZCwgY29u
c3QgdW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGNoYXIgKm91dCwgaW50IGZvcncpOwoKCgp2
b2lkIFNNQmVuY3J5cHQoY29uc3QgdW5zaWduZWQgY2hhciAqcGFzc3dkLCBjb25zdCB1bnNpZ25l
ZCBjaGFyICpjOCwgdW5zaWduZWQgY2hhciAqcDI0KTsKdm9pZCBFX21kNGhhc2goY29uc3QgdW5z
aWduZWQgY2hhciAqcGFzc3dkLCB1bnNpZ25lZCBjaGFyICpwMTYpOwp2b2lkIG50X2xtX293Zl9n
ZW4oY29uc3QgY2hhciAqcHdkLCB1bnNpZ25lZCBjaGFyIG50X3AxNlsxNl0sIHVuc2lnbmVkIGNo
YXIgcDE2WzE2XSk7CnZvaWQgbnR2Ml9vd2ZfZ2VuKGNvbnN0IHVuc2lnbmVkIGNoYXIgb3dmWzE2
XSwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdXNlcl9uLCBjb25zdCBjaGFyICpkb21h
aW5fbiwgdW5zaWduZWQgY2hhciBrcl9idWZbMTZdKTsKdm9pZCBTTUJPV0ZlbmNyeXB0KGNvbnN0
IHVuc2lnbmVkIGNoYXIgcGFzc3dkWzE2XSwgY29uc3QgdW5zaWduZWQgY2hhciAqYzgsIHVuc2ln
bmVkIGNoYXIgcDI0WzI0XSk7CnZvaWQgTlRMTVNTUE9XRmVuY3J5cHQoY29uc3QgdW5zaWduZWQg
Y2hhciBwYXNzd2RbOF0sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm50bG1jaGFscmVzcCwgdW5zaWdu
ZWQgY2hhciBwMjRbMjRdKTsKdm9pZCBTTUJOVGVuY3J5cHQoY29uc3QgdW5zaWduZWQgY2hhciAq
cGFzc3dkLCB1bnNpZ25lZCBjaGFyICpjOCwgdW5zaWduZWQgY2hhciAqcDI0KTsKQk9PTCBtYWtl
X29lbV9wYXNzd2RfaGFzaChjaGFyIGRhdGFbNTE2XSwgY29uc3QgY2hhciAqcGFzc3dkLCB1bnNp
Z25lZCBjaGFyIG9sZF9wd19oYXNoWzE2XSwgQk9PTCB1bmljb2RlKTsKdm9pZCBTTUJPV0ZlbmNy
eXB0X250djIoY29uc3QgdW5zaWduZWQgY2hhciBrclsxNl0sCiAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IERBVEFfQkxPQiBzcnZfY2hhbCwKICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgREFUQV9CTE9CIGNsaV9jaGFsLAogICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHJlc3Bf
YnVmWzE2XSk7CnZvaWQgU01Cc2Vzc2tleWdlbl9udHYyKGNvbnN0IHVuc2lnbmVkIGNoYXIga3Jb
MTZdLAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogbnRfcmVz
cCwgdW5zaWduZWQgY2hhciBzZXNzX2tleVsxNl0pOwp2b2lkIFNNQnNlc3NrZXlnZW5fbnR2MShj
b25zdCB1bnNpZ25lZCBjaGFyIGtyWzE2XSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dW5zaWduZWQgY2hhciAqIG50X3Jlc3AsIHVuc2lnbmVkIGNoYXIgc2Vzc19rZXlbMTZdKTsKQk9P
TCBlbmNvZGVfcHdfYnVmZmVyKGNoYXIgYnVmZmVyWzUxNl0sIGNoYXIgKm5ld19wdywgaW50IG5l
d19wd19sZW5ndGgpOwpCT09MIGRlY29kZV9wd19idWZmZXIoY2hhciBpbl9idWZmZXJbNTE2XSwg
Y2hhciAqbmV3X3B3cmQsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3B3cmRfc2l6ZSwg
dW5zaWduZWQgaW50ICpuZXdfcHdfbGVuKTsKdm9pZCBudF9vd2ZfZ2VuVyhjb25zdCBVTklTVFIy
ICpwd2QsIHVuc2lnbmVkIGNoYXIgbnRfcDE2WzE2XSk7CgoKCmNoYXIgKnNtYl9kb3NfZXJyX25h
bWUodW5zaWduZWQgY2hhciBjbGFzcywgdW5zaWduZWQgc2hvcnQgbnVtKTsKY2hhciAqc21iX2Rv
c19lcnJfY2xhc3ModW5zaWduZWQgY2hhciBjbGFzcyk7CmNoYXIgKnNtYl9kb3NfZXJyc3RyKGNo
YXIgKmluYnVmKTsKY2hhciAqd2Vycm9yX3N0cihXRVJST1Igc3RhdHVzKTsKV0VSUk9SIG1hcF93
ZXJyb3JfZnJvbV91bml4KGludCBlcnJvcik7CgoKCk5UU1RBVFVTIHRydXN0X3B3X2NoYW5nZV9h
bmRfc3RvcmVfaXQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3JpZ190
cnVzdF9wYXNzd2RfaGFzaFsxNl0pOwpOVFNUQVRVUyB0cnVzdF9wd19maW5kX2NoYW5nZV9hbmRf
c3RvcmVfaXQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBUQUxMT0NfQ1RYICptZW1fY3R4LCBjaGFy
ICpkb21haW4pIDsKCgoKdm9pZCB1bmV4cGVjdGVkX3BhY2tldChzdHJ1Y3QgcGFja2V0X3N0cnVj
dCAqcCk7CnZvaWQgY2xlYXJfdW5leHBlY3RlZCh0aW1lX3QgdCk7CnN0cnVjdCBwYWNrZXRfc3Ry
dWN0ICpyZWNlaXZlX3VuZXhwZWN0ZWQoZW51bSBwYWNrZXRfdHlwZSBwYWNrZXRfdHlwZSwgaW50
IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm1haWxz
bG90X25hbWUpOwoKCgp2b2lkIGJybF9pbml0KGludCByZWFkX29ubHkpOwp2b2lkIGJybF9zaHV0
ZG93bihpbnQgcmVhZF9vbmx5KTsKTlRTVEFUVVMgYnJsX2xvY2soZGV2X3QgZGV2LCBpbm9fdCBp
bm8sIGludCBmbnVtLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzbWJwaWQsIHBp
ZF90IHBpZCwgdW5zaWduZWQgc2hvcnQgdGlkLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAg
ICBlbnVtIGJybF90eXBlIGxvY2tfdHlwZSk7CkJPT0wgYnJsX3VubG9jayhkZXZfdCBkZXYsIGlu
b190IGlubywgaW50IGZudW0sCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzbWJwaWQs
IHBpZF90IHBpZCwgdW5zaWduZWQgc2hvcnQgdGlkLAogICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CkJPT0wgYnJsX2xvY2t0
ZXN0KGRldl90IGRldiwgaW5vX3QgaW5vLCBpbnQgZm51bSwKICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgc2hvcnQgc21icGlkLCBwaWRfdCBwaWQsIHVuc2lnbmVkIHNob3J0IHRpZCwKICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwKICAgICAgICAgICAgICAgICAgZW51bSBicmxfdHlwZSBsb2NrX3R5cGUsIGludCBjaGVj
a19zZWxmKTsKdm9pZCBicmxfY2xvc2UoZGV2X3QgZGV2LCBpbm9fdCBpbm8sIHBpZF90IHBpZCwg
aW50IHRpZCwgaW50IGZudW0pOwppbnQgYnJsX2ZvcmFsbCh2b2lkICgqZm4pKGRldl90IGRldiwg
aW5vX3QgaW5vLCBpbnQgcGlkLCBlbnVtIGJybF90eXBlIGxvY2tfdHlwZSwgdW5zaWduZWQgbG9u
ZyBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkpOwoKCgpCT09MIGlzX2xvY2tl
ZChmaWxlc19zdHJ1Y3QgKmZzcCxjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGNvdW50LHVuc2lnbmVkIGxvbmcgbG9uZyBvZmZzZXQsCiAg
ICAgICAgICAgICAgIGVudW0gYnJsX3R5cGUgbG9ja190eXBlLCBCT09MIGNoZWNrX3NlbGYpOwpO
VFNUQVRVUyBkb19sb2NrKGZpbGVzX3N0cnVjdCAqZnNwLGNvbm5lY3Rpb25fc3RydWN0ICpjb25u
LCB1bnNpZ25lZCBzaG9ydCBsb2NrX3BpZCwKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgY291bnQsdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCxlbnVtIGJybF90eXBlIGxvY2tf
dHlwZSk7Ck5UU1RBVFVTIGRvX3VubG9jayhmaWxlc19zdHJ1Y3QgKmZzcCxjb25uZWN0aW9uX3N0
cnVjdCAqY29ubiwgdW5zaWduZWQgc2hvcnQgbG9ja19waWQsCiAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgY291bnQsdW5zaWduZWQgbG9uZyBsb25nIG9mZnNldCk7CnZvaWQg
bG9ja2luZ19jbG9zZV9maWxlKGZpbGVzX3N0cnVjdCAqZnNwKTsKQk9PTCBsb2NraW5nX2luaXQo
aW50IHJlYWRfb25seSk7CkJPT0wgbG9ja2luZ19lbmQodm9pZCk7CkJPT0wgbG9ja19zaGFyZV9l
bnRyeShjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgICAgIGRldl90
IGRldiwgaW5vX3QgaW5vZGUpOwp2b2lkIHVubG9ja19zaGFyZV9lbnRyeShjb25uZWN0aW9uX3N0
cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgICAgICAgZGV2X3QgZGV2LCBpbm9fdCBpbm9k
ZSk7CkJPT0wgbG9ja19zaGFyZV9lbnRyeV9mc3AoZmlsZXNfc3RydWN0ICpmc3ApOwp2b2lkIHVu
bG9ja19zaGFyZV9lbnRyeV9mc3AoZmlsZXNfc3RydWN0ICpmc3ApOwppbnQgZ2V0X3NoYXJlX21v
ZGVzKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgIGRldl90IGRl
diwgaW5vX3QgaW5vZGUsCiAgICAgICAgICAgICAgICAgICAgc2hhcmVfbW9kZV9lbnRyeSAqKnBw
X3NoYXJlcyk7CkJPT0wgc2hhcmVfbW9kZXNfaWRlbnRpY2FsKCBzaGFyZV9tb2RlX2VudHJ5ICpl
MSwgc2hhcmVfbW9kZV9lbnRyeSAqZTIpOwpzc2l6ZV90IGRlbF9zaGFyZV9lbnRyeSggZGV2X3Qg
ZGV2LCBpbm9fdCBpbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVfbW9kZV9lbnRy
eSAqZW50cnksIHNoYXJlX21vZGVfZW50cnkgKipwcHNlKTsKc3NpemVfdCBkZWxfc2hhcmVfbW9k
ZShmaWxlc19zdHJ1Y3QgKmZzcCwgc2hhcmVfbW9kZV9lbnRyeSAqKnBwc2UpOwpCT09MIHNldF9z
aGFyZV9tb2RlKGZpbGVzX3N0cnVjdCAqZnNwLCB1bnNpZ25lZCBzaG9ydCBwb3J0LCB1bnNpZ25l
ZCBzaG9ydCBvcF90eXBlKTsKQk9PTCByZW1vdmVfc2hhcmVfb3Bsb2NrKGZpbGVzX3N0cnVjdCAq
ZnNwKTsKQk9PTCBkb3duZ3JhZGVfc2hhcmVfb3Bsb2NrKGZpbGVzX3N0cnVjdCAqZnNwKTsKQk9P
TCBtb2RpZnlfZGVsZXRlX2ZsYWcoIGRldl90IGRldiwgaW5vX3QgaW5vZGUsIEJPT0wgZGVsZXRl
X29uX2Nsb3NlKTsKaW50IHNoYXJlX21vZGVfZm9yYWxsKHZvaWQgKCpmbikoc2hhcmVfbW9kZV9l
bnRyeSAqLCBjaGFyKikpOwoKCgppbnQgZmRfY2xvc2VfcG9zaXgoc3RydWN0IGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uLCBmaWxlc19zdHJ1Y3QgKmZzcCk7CkJPT0wgaXNfcG9zaXhfbG9ja2VkKGZp
bGVzX3N0cnVjdCAqZnNwLCB1bnNpZ25lZCBsb25nIGxvbmcgdV9vZmZzZXQsIHVuc2lnbmVkIGxv
bmcgbG9uZyB1X2NvdW50LCBlbnVtIGJybF90eXBlIGxvY2tfdHlwZSk7CkJPT0wgc2V0X3Bvc2l4
X2xvY2soZmlsZXNfc3RydWN0ICpmc3AsIHVuc2lnbmVkIGxvbmcgbG9uZyB1X29mZnNldCwgdW5z
aWduZWQgbG9uZyBsb25nIHVfY291bnQsIGVudW0gYnJsX3R5cGUgbG9ja190eXBlKTsKQk9PTCBy
ZWxlYXNlX3Bvc2l4X2xvY2soZmlsZXNfc3RydWN0ICpmc3AsIHVuc2lnbmVkIGxvbmcgbG9uZyB1
X29mZnNldCwgdW5zaWduZWQgbG9uZyBsb25nIHVfY291bnQpOwp2b2lkIHBvc2l4X2xvY2tpbmdf
Y2xvc2VfZmlsZShmaWxlc19zdHJ1Y3QgKmZzcCk7CkJPT0wgcG9zaXhfbG9ja2luZ19pbml0KGlu
dCByZWFkX29ubHkpOwpCT09MIHBvc2l4X2xvY2tpbmdfZW5kKHZvaWQpOwoKCgpCT09MIGNyZWF0
ZV9qdW5jdGlvbihjaGFyKiBwYXRobmFtZSwgc3RydWN0IGp1bmN0aW9uX21hcCogam4pOwpCT09M
IGlzX21zZGZzX2xpbmsoY29ubmVjdGlvbl9zdHJ1Y3QqIGNvbm4sIGNoYXIqIHBhdGgpOwpCT09M
IGdldF9yZWZlcnJlZF9wYXRoKHN0cnVjdCBqdW5jdGlvbl9tYXAqIGp1bmN0aW9uKTsKQk9PTCBk
ZnNfcmVkaXJlY3QoY2hhciogcGF0aG5hbWUsIGNvbm5lY3Rpb25fc3RydWN0KiBjb25uKTsKQk9P
TCBkZnNfZmluZGZpcnN0X3JlZGlyZWN0KGNoYXIqIHBhdGhuYW1lLCBjb25uZWN0aW9uX3N0cnVj
dCogY29ubik7CmludCBzZXR1cF9kZnNfcmVmZXJyYWwoY2hhciogcGF0aG5hbWUsIGludCBtYXhf
cmVmZXJyYWxfbGV2ZWwsIGNoYXIqKiBwcGRhdGEpOwpCT09MIGNyZWF0ZV9tc2Rmc19saW5rKHN0
cnVjdCBqdW5jdGlvbl9tYXAqIGpuLCBCT09MIGV4aXN0cyk7CkJPT0wgcmVtb3ZlX21zZGZzX2xp
bmsoc3RydWN0IGp1bmN0aW9uX21hcCogam4pOwppbnQgZW51bV9tc2Rmc19saW5rcyhzdHJ1Y3Qg
anVuY3Rpb25fbWFwKiBqbik7CgoKCmludCBhc3luY2Ruc19mZCh2b2lkKTsKdm9pZCBraWxsX2Fz
eW5jX2Ruc19jaGlsZCh2b2lkKTsKdm9pZCBzdGFydF9hc3luY19kbnModm9pZCk7CnZvaWQgcnVu
X2Ruc19xdWV1ZSh2b2lkKTsKQk9PTCBxdWV1ZV9kbnNfcXVlcnkoc3RydWN0IHBhY2tldF9zdHJ1
Y3QgKnAsc3RydWN0IG5tYl9uYW1lICpxdWVzdGlvbiwKICAgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IG5hbWVfcmVjb3JkICoqbik7CkJPT0wgcXVldWVfZG5zX3F1ZXJ5KHN0cnVjdCBwYWNrZXRf
c3RydWN0ICpwLHN0cnVjdCBubWJfbmFtZSAqcXVlc3Rpb24sCiAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCBuYW1lX3JlY29yZCAqKm4pOwp2b2lkIGtpbGxfYXN5bmNfZG5zX2NoaWxkKHZvaWQp
OwoKCgoKCgp2b2lkIGFkZF9kb21haW5fbmFtZXModGltZV90IHQpOwoKCgp2b2lkIGluc2VydF9w
ZXJtYW5lbnRfbmFtZV9pbnRvX3VuaWNhc3QoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBu
bWJfbmFtZSAqbm1ibmFtZSwgdW5zaWduZWQgc2hvcnQgbmJfdHlwZSApOwp2b2lkIHVuYmVjb21l
X2xvY2FsX21hc3Rlcl9icm93c2VyKHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsIHN0cnVj
dCB3b3JrX3JlY29yZCAqd29yaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC
T09MIGZvcmNlX25ld19lbGVjdGlvbik7CnZvaWQgYmVjb21lX2xvY2FsX21hc3Rlcl9icm93c2Vy
KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsIHN0cnVjdCB3b3JrX3JlY29yZCAqd29yayk7
CnZvaWQgc2V0X3dvcmtncm91cF9sb2NhbF9tYXN0ZXJfYnJvd3Nlcl9uYW1lKCBzdHJ1Y3Qgd29y
a19yZWNvcmQgKndvcmssIGNoYXIgKm5ld25hbWUpOwoKCgp2b2lkIHVwZGF0ZV9icm93c2VyX2Rl
YXRoX3RpbWUoIHN0cnVjdCBicm93c2VfY2FjaGVfcmVjb3JkICpicm93YyApOwpzdHJ1Y3QgYnJv
d3NlX2NhY2hlX3JlY29yZCAqY3JlYXRlX2Jyb3dzZXJfaW5fbG1iX2NhY2hlKCBjaGFyICp3b3Jr
X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKmJyb3dzZXJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX2FkZHIgaXAgKTsKc3RydWN0IGJy
b3dzZV9jYWNoZV9yZWNvcmQgKmZpbmRfYnJvd3Nlcl9pbl9sbWJfY2FjaGUoIGNoYXIgKmJyb3dz
ZXJfbmFtZSApOwp2b2lkIGV4cGlyZV9sbWJfYnJvd3NlcnMoIHRpbWVfdCB0ICk7CgoKCnZvaWQg
ZG1iX2V4cGlyZV9hbmRfc3luY19icm93c2VyX2xpc3RzKHRpbWVfdCB0KTsKdm9pZCBhbm5vdW5j
ZV9hbmRfc3luY193aXRoX2RvbWFpbl9tYXN0ZXJfYnJvd3Nlciggc3RydWN0IHN1Ym5ldF9yZWNv
cmQgKnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RydWN0IHdvcmtfcmVjb3JkICp3b3JrKTsKdm9pZCBjb2xsZWN0X2FsbF93b3JrZ3Jv
dXBfbmFtZXNfZnJvbV93aW5zX3NlcnZlcih0aW1lX3QgdCk7CnZvaWQgc3luY19hbGxfZG1icyh0
aW1lX3QgdCk7CgoKCnZvaWQgY2hlY2tfbWFzdGVyX2Jyb3dzZXJfZXhpc3RzKHRpbWVfdCB0KTsK
dm9pZCBydW5fZWxlY3Rpb25zKHRpbWVfdCB0KTsKdm9pZCBwcm9jZXNzX2VsZWN0aW9uKHN0cnVj
dCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsIHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwLCBjaGFyICpi
dWYpOwpCT09MIGNoZWNrX2VsZWN0aW9ucyh2b2lkKTsKdm9pZCBubWJkX21lc3NhZ2VfZWxlY3Rp
b24oaW50IG1zZ190eXBlLCBwaWRfdCBzcmMsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CgoKCnZv
aWQgdGVsbF9iZWNvbWVfYmFja3VwKHZvaWQpOwp2b2lkIHByb2Nlc3NfaG9zdF9hbm5vdW5jZShz
dHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLCBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwgY2hh
ciAqYnVmKTsKdm9pZCBwcm9jZXNzX3dvcmtncm91cF9hbm5vdW5jZShzdHJ1Y3Qgc3VibmV0X3Jl
Y29yZCAqc3VicmVjLCBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwgY2hhciAqYnVmKTsKdm9pZCBw
cm9jZXNzX2xvY2FsX21hc3Rlcl9hbm5vdW5jZShzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVj
LCBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwgY2hhciAqYnVmKTsKdm9pZCBwcm9jZXNzX21hc3Rl
cl9icm93c2VyX2Fubm91bmNlKHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCxjaGFy
ICpidWYpOwp2b2lkIHByb2Nlc3NfbG1faG9zdF9hbm5vdW5jZShzdHJ1Y3Qgc3VibmV0X3JlY29y
ZCAqc3VicmVjLCBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwgY2hhciAqYnVmKTsKdm9pZCBwcm9j
ZXNzX2dldF9iYWNrdXBfbGlzdF9yZXF1ZXN0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFja2V0X3N0cnVj
dCAqcCxjaGFyICpidWYpOwp2b2lkIHByb2Nlc3NfcmVzZXRfYnJvd3NlcihzdHJ1Y3Qgc3VibmV0
X3JlY29yZCAqc3VicmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IHBhY2tldF9zdHJ1Y3QgKnAsY2hhciAqYnVmKTsKdm9pZCBwcm9jZXNzX2Fubm91bmNlX3JlcXVl
c3Qoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywgc3RydWN0IHBhY2tldF9zdHJ1Y3QgKnAs
IGNoYXIgKmJ1Zik7CnZvaWQgcHJvY2Vzc19sbV9hbm5vdW5jZV9yZXF1ZXN0KHN0cnVjdCBzdWJu
ZXRfcmVjb3JkICpzdWJyZWMsIHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwLCBjaGFyICpidWYpOwoK
Cgp2b2lkIHByb2Nlc3NfbmFtZV9yZWxlYXNlX3JlcXVlc3Qoc3RydWN0IHN1Ym5ldF9yZWNvcmQg
KnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwYWNrZXRf
c3RydWN0ICpwKTsKdm9pZCBwcm9jZXNzX25hbWVfcmVmcmVzaF9yZXF1ZXN0KHN0cnVjdCBzdWJu
ZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3QgcGFja2V0X3N0cnVjdCAqcCk7CnZvaWQgcHJvY2Vzc19uYW1lX3JlZ2lzdHJhdGlvbl9yZXF1
ZXN0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwKTsKdm9pZCBwcm9jZXNzX25v
ZGVfc3RhdHVzX3JlcXVlc3Qoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywgc3RydWN0IHBh
Y2tldF9zdHJ1Y3QgKnApOwp2b2lkIHByb2Nlc3NfbmFtZV9xdWVyeV9yZXF1ZXN0KHN0cnVjdCBz
dWJuZXRfcmVjb3JkICpzdWJyZWMsIHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwKTsKCgoKdm9pZCBs
b2FkX2xtaG9zdHNfZmlsZShjaGFyICpmbmFtZSk7CkJPT0wgZmluZF9uYW1lX2luX2xtaG9zdHMo
c3RydWN0IG5tYl9uYW1lICpubWJuYW1lLCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKipuYW1lcmVjcCk7
CgoKCnZvaWQgYWRkX2xvZ29uX25hbWVzKHZvaWQpOwoKCgp2b2lkIHJlZ2lzdGVyX215X3dvcmtn
cm91cF9vbmVfc3VibmV0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMpOwpCT09MIHJlZ2lz
dGVyX215X3dvcmtncm91cF9hbmRfbmFtZXModm9pZCk7CnZvaWQgcmVsZWFzZV9teV9uYW1lcyh2
b2lkKTsKdm9pZCByZWZyZXNoX215X25hbWVzKHRpbWVfdCB0KTsKCgoKdm9pZCBzZXRfc2FtYmFf
bmJfdHlwZSh2b2lkKTsKdm9pZCByZW1vdmVfbmFtZV9mcm9tX25hbWVsaXN0KCBzdHJ1Y3Qgc3Vi
bmV0X3JlY29yZCAqc3VicmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCBuYW1lX3JlY29yZCAqbmFtZXJlYyApOwpzdHJ1Y3QgbmFtZV9yZWNvcmQgKmZpbmRfbmFtZV9v
bl9zdWJuZXQoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICpubWJuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT0wgc2VsZl9vbmx5ICk7CnN0cnVj
dCBuYW1lX3JlY29yZCAqZmluZF9uYW1lX2Zvcl9yZW1vdGVfYnJvYWRjYXN0X3N1Ym5ldCgKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5t
Yl9uYW1lICpubWJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCT09MIHNlbGZfb25seSApOwp2b2lkIHVwZGF0ZV9uYW1lX3R0bCggc3RydWN0
IG5hbWVfcmVjb3JkICpuYW1lcmVjLCBpbnQgdHRsICk7CnN0cnVjdCBuYW1lX3JlY29yZCAqYWRk
X25hbWVfdG9fc3VibmV0KCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgbmJfZmxhZ3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHRsLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW51bSBuYW1lX3NvdXJjZSBzb3VyY2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX2lwcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9hZGRyICppcGxpc3QpOwp2b2lkIHN0YW5k
YXJkX3N1Y2Nlc3NfcmVnaXN0ZXIoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0ICp1c2VyZGF0YSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKm5tYm5hbWUsIHVu
c2lnbmVkIHNob3J0IG5iX2ZsYWdzLCBpbnQgdHRsLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCBpbl9hZGRyIHJlZ2lzdGVyZWRfaXApOwp2b2lkIHN0YW5kYXJkX2ZhaWxfcmVn
aXN0ZXIoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqcnJlYywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKm5tYm5hbWUgKTsKQk9PTCBmaW5kX2lwX2luX25h
bWVfcmVjb3JkKCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKm5hbWVyZWMsIHN0cnVjdCBpbl9hZGRyIGlw
ICk7CnZvaWQgYWRkX2lwX3RvX25hbWVfcmVjb3JkKCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKm5hbWVy
ZWMsIHN0cnVjdCBpbl9hZGRyIG5ld19pcCApOwp2b2lkIHJlbW92ZV9pcF9mcm9tX25hbWVfcmVj
b3JkKCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKm5hbWVyZWMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBpbl9hZGRyIHJlbW92ZV9pcCApOwp2b2lkIHN0YW5kYXJkX3N1Y2Nl
c3NfcmVsZWFzZSggc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCB1c2VyZGF0YV9zdHJ1Y3QgKnVzZXJkYXRhLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICpubWJuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX2FkZHIgcmVsZWFzZWRfaXAgKTsKdm9p
ZCBleHBpcmVfbmFtZXNfb25fc3VibmV0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsIHRp
bWVfdCB0KTsKdm9pZCBleHBpcmVfbmFtZXModGltZV90IHQpOwp2b2lkIGFkZF9zYW1iYV9uYW1l
c190b19zdWJuZXQoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMgKTsKdm9pZCBkdW1wX2Fs
bF9uYW1lbGlzdHModm9pZCk7CgoKCkJPT0wgcXVlcnlfbmFtZShzdHJ1Y3Qgc3VibmV0X3JlY29y
ZCAqc3VicmVjLCBjaGFyICpuYW1lLCBpbnQgdHlwZSwKICAgICAgICAgICAgICAgICAgIHF1ZXJ5
X25hbWVfc3VjY2Vzc19mdW5jdGlvbiBzdWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgICAgcXVl
cnlfbmFtZV9mYWlsX2Z1bmN0aW9uIGZhaWxfZm4sCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
dXNlcmRhdGFfc3RydWN0ICp1c2VyZGF0YSk7CkJPT0wgcXVlcnlfbmFtZV9mcm9tX3dpbnNfc2Vy
dmVyKHN0cnVjdCBpbl9hZGRyIGlwX3RvLAogICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSwg
aW50IHR5cGUsCiAgICAgICAgICAgICAgICAgICBxdWVyeV9uYW1lX3N1Y2Nlc3NfZnVuY3Rpb24g
c3VjY2Vzc19mbiwKICAgICAgICAgICAgICAgICAgIHF1ZXJ5X25hbWVfZmFpbF9mdW5jdGlvbiBm
YWlsX2ZuLAogICAgICAgICAgICAgICAgICAgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqdXNlcmRh
dGEpOwoKCgpCT09MIHJlZ2lzdGVyX25hbWUoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywK
ICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsIGludCB0eXBlLCB1bnNpZ25lZCBzaG9ydCBu
Yl9mbGFncywKICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX25hbWVfc3VjY2Vzc19mdW5jdGlv
biBzdWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfbmFtZV9mYWlsX2Z1bmN0
aW9uIGZhaWxfZm4sCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0ICp1
c2VyZGF0YSk7CkJPT0wgcmVmcmVzaF9uYW1lKHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMs
IHN0cnVjdCBuYW1lX3JlY29yZCAqbmFtZXJlYywKICAgICAgICAgICAgICAgICAgcmVmcmVzaF9u
YW1lX3N1Y2Nlc3NfZnVuY3Rpb24gc3VjY2Vzc19mbiwKICAgICAgICAgICAgICAgICAgcmVmcmVz
aF9uYW1lX2ZhaWxfZnVuY3Rpb24gZmFpbF9mbiwKICAgICAgICAgICAgICAgICAgc3RydWN0IHVz
ZXJkYXRhX3N0cnVjdCAqdXNlcmRhdGEpOwoKCgpCT09MIHJlbGVhc2VfbmFtZShzdHJ1Y3Qgc3Vi
bmV0X3JlY29yZCAqc3VicmVjLCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKm5hbWVyZWMsCiAgICAgICAg
ICAgICAgICAgICByZWxlYXNlX25hbWVfc3VjY2Vzc19mdW5jdGlvbiBzdWNjZXNzX2ZuLAogICAg
ICAgICAgICAgICAgICAgcmVsZWFzZV9uYW1lX2ZhaWxfZnVuY3Rpb24gZmFpbF9mbiwKICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCB1c2VyZGF0YV9zdHJ1Y3QgKnVzZXJkYXRhKTsKCgoKQk9PTCBu
b2RlX3N0YXR1cyhzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLCBzdHJ1Y3Qgbm1iX25hbWUg
Km5tYm5hbWUsCiAgICAgICAgICAgICAgICAgc3RydWN0IGluX2FkZHIgc2VuZF9pcCwgbm9kZV9z
dGF0dXNfc3VjY2Vzc19mdW5jdGlvbiBzdWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgIG5vZGVf
c3RhdHVzX2ZhaWxfZnVuY3Rpb24gZmFpbF9mbiwgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqdXNl
cmRhdGEpOwoKCgp1bnNpZ25lZCBzaG9ydCBnZXRfbmJfZmxhZ3MoY2hhciAqYnVmKTsKdm9pZCBz
ZXRfbmJfZmxhZ3MoY2hhciAqYnVmLCB1bnNpZ25lZCBzaG9ydCBuYl9mbGFncyk7CnN0cnVjdCBy
ZXNwb25zZV9yZWNvcmQgKnF1ZXVlX3JlZ2lzdGVyX25hbWUoIHN0cnVjdCBzdWJuZXRfcmVjb3Jk
ICpzdWJyZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VfZnVuY3Rpb24gcmVz
cF9mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X3Jlc3BvbnNlX2Z1bmN0aW9u
IHRpbWVvdXRfZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfbmFtZV9zdWNj
ZXNzX2Z1bmN0aW9uIHN1Y2Nlc3NfZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0
ZXJfbmFtZV9mYWlsX2Z1bmN0aW9uIGZhaWxfZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqdXNlcmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IG5tYl9uYW1lICpubWJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHNob3J0IG5iX2ZsYWdzKTsKc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqcXVldWVfcmVn
aXN0ZXJfbXVsdGlob21lZF9uYW1lKCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX2Z1bmN0aW9uIHJlc3BfZm4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZW91dF9yZXNwb25zZV9mdW5jdGlvbiB0aW1lb3V0X2ZuLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX25hbWVfc3VjY2Vzc19mdW5jdGlvbiBz
dWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyX25hbWVfZmFpbF9m
dW5jdGlvbiBmYWlsX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1c2VyZGF0
YV9zdHJ1Y3QgKnVzZXJkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBubWJf
bmFtZSAqbm1ibmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBu
Yl9mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciByZWdpc3Rl
cl9pcCk7CnN0cnVjdCByZXNwb25zZV9yZWNvcmQgKnF1ZXVlX3JlbGVhc2VfbmFtZSggc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25z
ZV9mdW5jdGlvbiByZXNwX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfcmVz
cG9uc2VfZnVuY3Rpb24gdGltZW91dF9mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWxl
YXNlX25hbWVfc3VjY2Vzc19mdW5jdGlvbiBzdWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlbGVhc2VfbmFtZV9mYWlsX2Z1bmN0aW9uIGZhaWxfZm4sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqdXNlcmRhdGEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICpubWJuYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHNob3J0IG5iX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCBpbl9hZGRyIHJlbGVhc2VfaXApOwpzdHJ1Y3QgcmVzcG9uc2VfcmVjb3JkICpx
dWV1ZV9yZWZyZXNoX25hbWUoIHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzcG9uc2VfZnVuY3Rpb24gcmVzcF9mbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0X3Jlc3BvbnNlX2Z1bmN0aW9uIHRpbWVvdXRfZm4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaF9uYW1lX3N1Y2Nlc3NfZnVuY3Rpb24gc3VjY2Vz
c19mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoX25hbWVfZmFpbF9mdW5jdGlv
biBmYWlsX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1c2VyZGF0YV9zdHJ1
Y3QgKnVzZXJkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBuYW1lX3JlY29y
ZCAqbmFtZXJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciByZWZy
ZXNoX2lwKTsKc3RydWN0IHJlc3BvbnNlX3JlY29yZCAqcXVldWVfcXVlcnlfbmFtZSggc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25z
ZV9mdW5jdGlvbiByZXNwX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfcmVz
cG9uc2VfZnVuY3Rpb24gdGltZW91dF9mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVy
eV9uYW1lX3N1Y2Nlc3NfZnVuY3Rpb24gc3VjY2Vzc19mbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBxdWVyeV9uYW1lX2ZhaWxfZnVuY3Rpb24gZmFpbF9mbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3QgdXNlcmRhdGFfc3RydWN0ICp1c2VyZGF0YSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3Qgbm1iX25hbWUgKm5tYm5hbWUpOwpzdHJ1Y3QgcmVzcG9uc2VfcmVj
b3JkICpxdWV1ZV9xdWVyeV9uYW1lX2Zyb21fd2luc19zZXJ2ZXIoIHN0cnVjdCBpbl9hZGRyIHRv
X2lwLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX2Z1bmN0aW9uIHJlc3BfZm4s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9yZXNwb25zZV9mdW5jdGlvbiB0aW1l
b3V0X2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X25hbWVfc3VjY2Vzc19mdW5j
dGlvbiBzdWNjZXNzX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X25hbWVfZmFp
bF9mdW5jdGlvbiBmYWlsX2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1c2Vy
ZGF0YV9zdHJ1Y3QgKnVzZXJkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBu
bWJfbmFtZSAqbm1ibmFtZSk7CnN0cnVjdCByZXNwb25zZV9yZWNvcmQgKnF1ZXVlX25vZGVfc3Rh
dHVzKCBzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3BvbnNlX2Z1bmN0aW9uIHJlc3BfZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dF9yZXNwb25zZV9mdW5jdGlvbiB0aW1lb3V0X2ZuLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGVfc3RhdHVzX3N1Y2Nlc3NfZnVuY3Rpb24gc3VjY2Vzc19mbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlX3N0YXR1c19mYWlsX2Z1bmN0aW9uIGZhaWxfZm4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHVzZXJkYXRhX3N0cnVjdCAqdXNlcmRhdGEsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICpubWJuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9hZGRyIHNlbmRfaXApOwp2b2lkIHJlcGx5X25l
dGJpb3NfcGFja2V0KHN0cnVjdCBwYWNrZXRfc3RydWN0ICpvcmlnX3BhY2tldCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgcmNvZGUsIGVudW0gbmV0Ymlvc19yZXBseV90eXBlX2NvZGUg
cmN2X2NvZGUsIGludCBvcGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR0bCwg
Y2hhciAqZGF0YSxpbnQgbGVuKTsKdm9pZCBydW5fcGFja2V0X3F1ZXVlKHZvaWQpOwp2b2lkIHJl
dHJhbnNtaXRfb3JfZXhwaXJlX3Jlc3BvbnNlX3JlY29yZHModGltZV90IHQpOwpCT09MIGxpc3Rl
bl9mb3JfcGFja2V0cyhCT09MIHJ1bl9lbGVjdGlvbik7CkJPT0wgc2VuZF9tYWlsc2xvdChCT09M
IHVuaXF1ZSwgY2hhciAqbWFpbHNsb3QsY2hhciAqYnVmLGludCBsZW4sCiAgICAgICAgICAgICAg
ICAgICBjaGFyICpzcmNuYW1lLCBpbnQgc3JjX3R5cGUsCiAgICAgICAgICAgICAgICAgICBjaGFy
ICpkc3RuYW1lLCBpbnQgZGVzdF90eXBlLAogICAgICAgICAgICAgICAgICAgc3RydWN0IGluX2Fk
ZHIgZGVzdF9pcCxzdHJ1Y3QgaW5fYWRkciBzcmNfaXAsCiAgICAgICAgICAgICAgICAgICBpbnQg
ZGVzdF9wb3J0KTsKCgoKdm9pZCBwcm9jZXNzX2xvZ29uX3BhY2tldChzdHJ1Y3QgcGFja2V0X3N0
cnVjdCAqcCxjaGFyICpidWYsaW50IGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
ICptYWlsc2xvdCk7CgoKCnZvaWQgcmVtb3ZlX3Jlc3BvbnNlX3JlY29yZChzdHJ1Y3Qgc3VibmV0
X3JlY29yZCAqc3VicmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBy
ZXNwb25zZV9yZWNvcmQgKnJyZWMpOwpzdHJ1Y3QgcmVzcG9uc2VfcmVjb3JkICptYWtlX3Jlc3Bv
bnNlX3JlY29yZCggc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwKICAgICAgICAgICAgICAgICAgICByZXNwb25z
ZV9mdW5jdGlvbiByZXNwX2ZuLAogICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfcmVzcG9uc2Vf
ZnVuY3Rpb24gdGltZW91dF9mbiwKICAgICAgICAgICAgICAgICAgICBzdWNjZXNzX2Z1bmN0aW9u
IHN1Y2Nlc3NfZm4sCiAgICAgICAgICAgICAgICAgICAgZmFpbF9mdW5jdGlvbiBmYWlsX2ZuLAog
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1c2VyZGF0YV9zdHJ1Y3QgKnVzZXJkYXRhKTsKc3Ry
dWN0IHJlc3BvbnNlX3JlY29yZCAqZmluZF9yZXNwb25zZV9yZWNvcmQoc3RydWN0IHN1Ym5ldF9y
ZWNvcmQgKipwcHN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBpZCk7CkJPT0wgaXNfcmVmcmVzaF9hbHJlYWR5X3F1ZXVlZChzdHJ1Y3Qgc3VibmV0
X3JlY29yZCAqc3VicmVjLCBzdHJ1Y3QgbmFtZV9yZWNvcmQgKm5hbWVyZWMpOwoKCgp2b2lkIHNl
bmRfYnJvd3Nlcl9yZXNldChpbnQgcmVzZXRfdHlwZSwgY2hhciAqdG9fbmFtZSwgaW50IHRvX3R5
cGUsIHN0cnVjdCBpbl9hZGRyIHRvX2lwKTsKdm9pZCBicm9hZGNhc3RfYW5ub3VuY2VfcmVxdWVz
dChzdHJ1Y3Qgc3VibmV0X3JlY29yZCAqc3VicmVjLCBzdHJ1Y3Qgd29ya19yZWNvcmQgKndvcmsp
Owp2b2lkIGFubm91bmNlX215X3NlcnZlcl9uYW1lcyh0aW1lX3QgdCk7CnZvaWQgYW5ub3VuY2Vf
bXlfbG1fc2VydmVyX25hbWVzKHRpbWVfdCB0KTsKdm9pZCByZXNldF9hbm5vdW5jZV90aW1lcih2
b2lkKTsKdm9pZCBhbm5vdW5jZV9teXNlbGZfdG9fZG9tYWluX21hc3Rlcl9icm93c2VyKHRpbWVf
dCB0KTsKdm9pZCBhbm5vdW5jZV9teV9zZXJ2ZXJzX3JlbW92ZWQodm9pZCk7CnZvaWQgYW5ub3Vu
Y2VfcmVtb3RlKHRpbWVfdCB0KTsKdm9pZCBicm93c2Vfc3luY19yZW1vdGUodGltZV90IHQpOwoK
Cgp2b2lkIHJlbW92ZV9hbGxfc2VydmVycyhzdHJ1Y3Qgd29ya19yZWNvcmQgKndvcmspOwpzdHJ1
Y3Qgc2VydmVyX3JlY29yZCAqZmluZF9zZXJ2ZXJfaW5fd29ya2dyb3VwKHN0cnVjdCB3b3JrX3Jl
Y29yZCAqd29yaywgY2hhciAqbmFtZSk7CnZvaWQgcmVtb3ZlX3NlcnZlcl9mcm9tX3dvcmtncm91
cChzdHJ1Y3Qgd29ya19yZWNvcmQgKndvcmssIHN0cnVjdCBzZXJ2ZXJfcmVjb3JkICpzZXJ2cmVj
KTsKc3RydWN0IHNlcnZlcl9yZWNvcmQgKmNyZWF0ZV9zZXJ2ZXJfb25fd29ya2dyb3VwKHN0cnVj
dCB3b3JrX3JlY29yZCAqd29yaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKm5hbWUsaW50IHNlcnZlcnR5cGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHRsLGNoYXIgKmNvbW1lbnQpOwp2
b2lkIHVwZGF0ZV9zZXJ2ZXJfdHRsKHN0cnVjdCBzZXJ2ZXJfcmVjb3JkICpzZXJ2cmVjLCBpbnQg
dHRsKTsKdm9pZCBleHBpcmVfc2VydmVycyhzdHJ1Y3Qgd29ya19yZWNvcmQgKndvcmssIHRpbWVf
dCB0KTsKdm9pZCB3cml0ZV9icm93c2VfbGlzdCh0aW1lX3QgdCwgQk9PTCBmb3JjZV93cml0ZSk7
CgoKCnZvaWQgY2xvc2Vfc3VibmV0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMpOwpzdHJ1
Y3Qgc3VibmV0X3JlY29yZCAqbWFrZV9ub3JtYWxfc3VibmV0KHN0cnVjdCBpbnRlcmZhY2UgKmlm
YWNlKTsKQk9PTCBjcmVhdGVfc3VibmV0cyh2b2lkKTsKQk9PTCB3ZV9hcmVfYV93aW5zX2NsaWVu
dCh2b2lkKTsKc3RydWN0IHN1Ym5ldF9yZWNvcmQgKmdldF9uZXh0X3N1Ym5ldF9tYXliZV91bmlj
YXN0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpzdWJyZWMpOwpzdHJ1Y3Qgc3VibmV0X3JlY29yZCAq
Z2V0X25leHRfc3VibmV0X21heWJlX3VuaWNhc3Rfb3Jfd2luc19zZXJ2ZXIoc3RydWN0IHN1Ym5l
dF9yZWNvcmQgKnN1YnJlYyk7CgoKCnZvaWQgc3luY19icm93c2VfbGlzdHMoc3RydWN0IHdvcmtf
cmVjb3JkICp3b3JrLAogICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUsIGludCBubV90
eXBlLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbl9hZGRyIGlwLCBCT09MIGxvY2Fs
LCBCT09MIHNlcnZlcnMpOwp2b2lkIHN5bmNfY2hlY2tfY29tcGxldGlvbih2b2lkKTsKCgoKdm9p
ZCBtYWtlX3dpbnNfcHJveHlfbmFtZV9xdWVyeV9yZXF1ZXN0KCBzdHJ1Y3Qgc3VibmV0X3JlY29y
ZCAqc3VicmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCBwYWNrZXRfc3RydWN0ICppbmNvbWluZ19wYWNrZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IG5tYl9uYW1lICpxdWVzdGlvbl9uYW1lKTsKCgoKQk9P
TCBwYWNrZXRfaXNfZm9yX3dpbnNfc2VydmVyKHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwYWNrZXQp
OwpCT09MIGluaXRpYWxpc2Vfd2lucyh2b2lkKTsKdm9pZCB3aW5zX3Byb2Nlc3NfbmFtZV9yZWZy
ZXNoX3JlcXVlc3Qoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCk7CnZv
aWQgd2luc19wcm9jZXNzX25hbWVfcmVnaXN0cmF0aW9uX3JlcXVlc3Qoc3RydWN0IHN1Ym5ldF9y
ZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCk7CnZvaWQgd2luc19wcm9jZXNzX211bHRpaG9tZWRf
bmFtZV9yZWdpc3RyYXRpb25fcmVxdWVzdCggc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCk7CnZvaWQgc2VuZF93aW5zX25hbWVfcXVlcnlfcmVzcG9u
c2UoaW50IHJjb2RlLCBzdHJ1Y3QgcGFja2V0X3N0cnVjdCAqcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5hbWVfcmVjb3JkICpuYW1lcmVjKTsKdm9p
ZCB3aW5zX3Byb2Nlc3NfbmFtZV9xdWVyeV9yZXF1ZXN0KHN0cnVjdCBzdWJuZXRfcmVjb3JkICpz
dWJyZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFja2V0
X3N0cnVjdCAqcCk7CnZvaWQgd2luc19wcm9jZXNzX25hbWVfcmVsZWFzZV9yZXF1ZXN0KHN0cnVj
dCBzdWJuZXRfcmVjb3JkICpzdWJyZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBwYWNrZXRfc3RydWN0ICpwKTsKdm9pZCBpbml0aWF0ZV93aW5zX3Byb2Nl
c3NpbmcodGltZV90IHQpOwp2b2lkIHdpbnNfd3JpdGVfZGF0YWJhc2UoQk9PTCBiYWNrZ3JvdW5k
KTsKCgoKc3RydWN0IHdvcmtfcmVjb3JkICpmaW5kX3dvcmtncm91cF9vbl9zdWJuZXQoc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7CnN0cnVjdCB3b3JrX3JlY29yZCAqY3JlYXRl
X3dvcmtncm91cF9vbl9zdWJuZXQoc3RydWN0IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1l
LCBpbnQgdHRsKTsKdm9pZCB1cGRhdGVfd29ya2dyb3VwX3R0bChzdHJ1Y3Qgd29ya19yZWNvcmQg
KndvcmssIGludCB0dGwpOwp2b2lkIGluaXRpYXRlX215d29ya2dyb3VwX3N0YXJ0dXAoc3RydWN0
IHN1Ym5ldF9yZWNvcmQgKnN1YnJlYywgc3RydWN0IHdvcmtfcmVjb3JkICp3b3JrKTsKdm9pZCBk
dW1wX3dvcmtncm91cHMoQk9PTCBmb3JjZV93cml0ZSk7CnZvaWQgZXhwaXJlX3dvcmtncm91cHNf
YW5kX3NlcnZlcnModGltZV90IHQpOwoKCgpCT09MIHdpbmJpbmRfbG9va3VwX25hbWUoY29uc3Qg
Y2hhciAqbmFtZSwgRE9NX1NJRCAqc2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBT
SURfTkFNRV9VU0UgKm5hbWVfdHlwZSk7CkJPT0wgd2luYmluZF9sb29rdXBfc2lkKERPTV9TSUQg
KnNpZCwgZnN0cmluZyBkb21fbmFtZSwgZnN0cmluZyBuYW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICBlbnVtIFNJRF9OQU1FX1VTRSAqbmFtZV90eXBlKTsKQk9PTCB3aW5iaW5kX3NpZF90b191
aWQodWlkX3QgKnB1aWQsIERPTV9TSUQgKnNpZCk7CkJPT0wgd2luYmluZF91aWRfdG9fc2lkKERP
TV9TSUQgKnNpZCwgdWlkX3QgdWlkKTsKQk9PTCB3aW5iaW5kX3NpZF90b19naWQoZ2lkX3QgKnBn
aWQsIERPTV9TSUQgKnNpZCk7CkJPT0wgd2luYmluZF9naWRfdG9fc2lkKERPTV9TSUQgKnNpZCwg
Z2lkX3QgZ2lkKTsKaW50IHdpbmJpbmRfaW5pdGdyb3VwcyhjaGFyICp1c2VyLCBnaWRfdCBnaWQp
OwppbnQgd2luYmluZF9nZXRncm91cHMoY29uc3QgY2hhciAqdXNlciwgaW50IHNpemUsIGdpZF90
ICpsaXN0KTsKQk9PTCB3aW5iaW5kX3VpZHRvbmFtZShmc3RyaW5nIG5hbWUsIHVpZF90IHVpZCk7
CkJPT0wgd2luYmluZF9naWR0b25hbWUoZnN0cmluZyBuYW1lLCBnaWRfdCBnaWQpOwpCT09MIHdp
bmJpbmRfbmFtZXRvdWlkKHVpZF90ICpwdWlkLCBjb25zdCBjaGFyICpuYW1lKTsKQk9PTCB3aW5i
aW5kX25hbWV0b2dpZChnaWRfdCAqcGdpZCwgY29uc3QgY2hhciAqZ25hbWUpOwoKCgp2b2lkIGZy
ZWVfcmVzcG9uc2Uoc3RydWN0IHdpbmJpbmRkX3Jlc3BvbnNlICpyZXNwb25zZSk7CnZvaWQgd2lu
YmluZF9leGNsdWRlX2RvbWFpbihjb25zdCBjaGFyICpkb21haW4pOwp2b2lkIGluaXRfcmVxdWVz
dChzdHJ1Y3Qgd2luYmluZGRfcmVxdWVzdCAqcmVxdWVzdCwgaW50IHJlcXVlc3RfdHlwZSk7CnZv
aWQgaW5pdF9yZXNwb25zZShzdHJ1Y3Qgd2luYmluZGRfcmVzcG9uc2UgKnJlc3BvbnNlKTsKdm9p
ZCBjbG9zZV9zb2NrKHZvaWQpOwppbnQgd2luYmluZF9vcGVuX3BpcGVfc29jayh2b2lkKTsKaW50
IHdyaXRlX3NvY2sodm9pZCAqYnVmZmVyLCBpbnQgY291bnQpOwppbnQgcmVhZF9yZXBseShzdHJ1
Y3Qgd2luYmluZGRfcmVzcG9uc2UgKnJlc3BvbnNlKTsKCgoKdm9pZCBscF90YWxsb2NfZnJlZSh2
b2lkKTsKY2hhciAqbHBfZG9zX2NoYXJzZXQodm9pZCk7CmNoYXIgKmxwX3VuaXhfY2hhcnNldCh2
b2lkKTsKY2hhciAqbHBfZGlzcGxheV9jaGFyc2V0KHZvaWQpOwpjaGFyICpscF9sb2dmaWxlKHZv
aWQpOwpjaGFyICpscF9jb25maWdmaWxlKHZvaWQpOwpjaGFyICpscF9zbWJfcGFzc3dkX2ZpbGUo
dm9pZCk7CmNoYXIgKmxwX3ByaXZhdGVfZGlyKHZvaWQpOwpjaGFyICpscF9wYXNzZGJfbW9kdWxl
X3BhdGgodm9pZCk7CmNoYXIgKmxwX3NlcnZlcnN0cmluZyh2b2lkKTsKY2hhciAqbHBfcHJpbnRj
YXBuYW1lKHZvaWQpOwpjaGFyICpscF9lbnVtcG9ydHNfY21kKHZvaWQpOwpjaGFyICpscF9hZGRw
cmludGVyX2NtZCh2b2lkKTsKY2hhciAqbHBfZGVsZXRlcHJpbnRlcl9jbWQodm9pZCk7CmNoYXIg
KmxwX29zMl9kcml2ZXJfbWFwKHZvaWQpOwpjaGFyICpscF9sb2NrZGlyKHZvaWQpOwpjaGFyICps
cF91dG1wZGlyKHZvaWQpOwpjaGFyICpscF93dG1wZGlyKHZvaWQpOwpCT09MIGxwX3V0bXAodm9p
ZCk7CmNoYXIgKmxwX3Jvb3RkaXIodm9pZCk7CmNoYXIgKmxwX3NvdXJjZV9lbnZpcm9ubWVudCh2
b2lkKTsKY2hhciAqbHBfZGVmYXVsdHNlcnZpY2Uodm9pZCk7CmNoYXIgKmxwX21zZ19jb21tYW5k
KHZvaWQpOwpjaGFyICpscF9kZnJlZV9jb21tYW5kKHZvaWQpOwpjaGFyICpscF9ob3N0c19lcXVp
dih2b2lkKTsKY2hhciAqbHBfYXV0b19zZXJ2aWNlcyh2b2lkKTsKY2hhciAqbHBfcGFzc3dkX3By
b2dyYW0odm9pZCk7CmNoYXIgKmxwX3Bhc3N3ZF9jaGF0KHZvaWQpOwpjaGFyICpscF9wYXNzd29y
ZHNlcnZlcih2b2lkKTsKY2hhciAqbHBfbmFtZV9yZXNvbHZlX29yZGVyKHZvaWQpOwpjaGFyICps
cF93b3JrZ3JvdXAodm9pZCk7CmNoYXIgKmxwX3JlYWxtKHZvaWQpOwpjaGFyICpscF9hZHNfc2Vy
dmVyKHZvaWQpOwpjaGFyICpscF91c2VybmFtZV9tYXAodm9pZCk7CmNoYXIgKmxwX2xvZ29uX3Nj
cmlwdCh2b2lkKTsKY2hhciAqbHBfbG9nb25fcGF0aCh2b2lkKTsKY2hhciAqbHBfbG9nb25fZHJp
dmUodm9pZCk7CmNoYXIgKmxwX2xvZ29uX2hvbWUodm9pZCk7CmNoYXIgKmxwX3JlbW90ZV9hbm5v
dW5jZSh2b2lkKTsKY2hhciAqbHBfcmVtb3RlX2Jyb3dzZV9zeW5jKHZvaWQpOwpjaGFyICpscF93
aW5zX3NlcnZlcl9saXN0KHZvaWQpOwpjaGFyICoqbHBfaW50ZXJmYWNlcyh2b2lkKTsKY2hhciAq
bHBfc29ja2V0X2FkZHJlc3Modm9pZCk7CmNoYXIgKmxwX25pc19ob21lX21hcF9uYW1lKHZvaWQp
OwpjaGFyICoqbHBfbmV0Ymlvc19hbGlhc2VzKHZvaWQpOwpjaGFyICpscF9wYW5pY19hY3Rpb24o
dm9pZCk7CmNoYXIgKmxwX2FkZHVzZXJfc2NyaXB0KHZvaWQpOwpjaGFyICpscF9kZWx1c2VyX3Nj
cmlwdCh2b2lkKTsKY2hhciAqbHBfZ3Vlc3RhY2NvdW50KHZvaWQpOwpjaGFyICpscF9hZGRncm91
cF9zY3JpcHQodm9pZCk7CmNoYXIgKmxwX2RlbGdyb3VwX3NjcmlwdCh2b2lkKTsKY2hhciAqbHBf
YWRkdXNlcnRvZ3JvdXBfc2NyaXB0KHZvaWQpOwpjaGFyICpscF9kZWx1c2VyZnJvbWdyb3VwX3Nj
cmlwdCh2b2lkKTsKY2hhciAqbHBfYWRkbWFjaGluZV9zY3JpcHQodm9pZCk7CmNoYXIgKmxwX3No
dXRkb3duX3NjcmlwdCh2b2lkKTsKY2hhciAqbHBfYWJvcnRfc2h1dGRvd25fc2NyaXB0KHZvaWQp
OwpjaGFyICpscF93aW5zX2hvb2sodm9pZCk7CmNoYXIgKmxwX3RlbXBsYXRlX2hvbWVkaXIodm9p
ZCk7CmNoYXIgKmxwX3RlbXBsYXRlX3NoZWxsKHZvaWQpOwpjaGFyICpscF93aW5iaW5kX3NlcGFy
YXRvcih2b2lkKTsKQk9PTCBscF93aW5iaW5kX2VudW1fdXNlcnModm9pZCk7CkJPT0wgbHBfd2lu
YmluZF9lbnVtX2dyb3Vwcyh2b2lkKTsKY2hhciAqbHBfbGRhcF9zZXJ2ZXIodm9pZCk7CmNoYXIg
KmxwX2xkYXBfc3VmZml4KHZvaWQpOwpjaGFyICpscF9sZGFwX2ZpbHRlcih2b2lkKTsKY2hhciAq
bHBfbGRhcF9hZG1pbl9kbih2b2lkKTsKaW50IGxwX2xkYXBfcG9ydCh2b2lkKTsKaW50IGxwX2xk
YXBfc3NsKHZvaWQpOwpjaGFyICpscF9hZGRfc2hhcmVfY21kKHZvaWQpOwpjaGFyICpscF9jaGFu
Z2Vfc2hhcmVfY21kKHZvaWQpOwpjaGFyICpscF9kZWxldGVfc2hhcmVfY21kKHZvaWQpOwppbnQg
bHBfc3NsX3ZlcnNpb24odm9pZCk7CmNoYXIgKipscF9zc2xfaG9zdHModm9pZCk7CmNoYXIgKips
cF9zc2xfaG9zdHNfcmVzaWduKHZvaWQpOwpjaGFyICpscF9zc2xfY2FjZXJ0ZGlyKHZvaWQpOwpj
aGFyICpscF9zc2xfY2FjZXJ0ZmlsZSh2b2lkKTsKY2hhciAqbHBfc3NsX3NlcnZlcl9jZXJ0KHZv
aWQpOwpjaGFyICpscF9zc2xfc2VydmVyX3ByaXZrZXkodm9pZCk7CmNoYXIgKmxwX3NzbF9jbGll
bnRfY2VydCh2b2lkKTsKY2hhciAqbHBfc3NsX2NsaWVudF9wcml2a2V5KHZvaWQpOwpjaGFyICps
cF9zc2xfY2lwaGVycyh2b2lkKTsKY2hhciAqbHBfc3NsX2VnZHNvY2tldCh2b2lkKTsKY2hhciAq
bHBfc3NsX2VudHJvcHlmaWxlKHZvaWQpOwppbnQgbHBfc3NsX2VudHJvcHlieXRlcyh2b2lkKTsK
Qk9PTCBscF9zc2xfZW5hYmxlZCh2b2lkKTsKQk9PTCBscF9zc2xfcmVxQ2xpZW50Q2VydCh2b2lk
KTsKQk9PTCBscF9zc2xfcmVxU2VydmVyQ2VydCh2b2lkKTsKQk9PTCBscF9zc2xfY29tcGF0aWJp
bGl0eSh2b2lkKTsKQk9PTCBscF9tc19hZGRfcHJpbnRlcl93aXphcmQodm9pZCk7CkJPT0wgbHBf
ZG5zX3Byb3h5KHZvaWQpOwpCT09MIGxwX3dpbnNfc3VwcG9ydCh2b2lkKTsKQk9PTCBscF93ZV9h
cmVfYV93aW5zX3NlcnZlcih2b2lkKTsKQk9PTCBscF93aW5zX3Byb3h5KHZvaWQpOwpCT09MIGxw
X2xvY2FsX21hc3Rlcih2b2lkKTsKQk9PTCBscF9kb21haW5fbG9nb25zKHZvaWQpOwpCT09MIGxw
X2xvYWRfcHJpbnRlcnModm9pZCk7CkJPT0wgbHBfcmVhZHByZWRpY3Rpb24odm9pZCk7CkJPT0wg
bHBfcmVhZGJtcHgodm9pZCk7CkJPT0wgbHBfcmVhZHJhdyh2b2lkKTsKQk9PTCBscF9sYXJnZV9y
ZWFkd3JpdGUodm9pZCk7CkJPT0wgbHBfd3JpdGVyYXcodm9pZCk7CkJPT0wgbHBfbnVsbF9wYXNz
d29yZHModm9pZCk7CkJPT0wgbHBfb2JleV9wYW1fcmVzdHJpY3Rpb25zKHZvaWQpOwpCT09MIGxw
X3N0cmlwX2RvdCh2b2lkKTsKQk9PTCBscF9lbmNyeXB0ZWRfcGFzc3dvcmRzKHZvaWQpOwpCT09M
IGxwX3VwZGF0ZV9lbmNyeXB0ZWQodm9pZCk7CkJPT0wgbHBfc3lzbG9nX29ubHkodm9pZCk7CkJP
T0wgbHBfdGltZXN0YW1wX2xvZ3Modm9pZCk7CkJPT0wgbHBfZGVidWdfaGlyZXNfdGltZXN0YW1w
KHZvaWQpOwpCT09MIGxwX2RlYnVnX3BpZCh2b2lkKTsKQk9PTCBscF9kZWJ1Z191aWQodm9pZCk7
CkJPT0wgbHBfYnJvd3NlX2xpc3Qodm9pZCk7CkJPT0wgbHBfbmlzX2hvbWVfbWFwKHZvaWQpOwpC
T09MIGxwX2JpbmRfaW50ZXJmYWNlc19vbmx5KHZvaWQpOwpCT09MIGxwX3BhbV9wYXNzd29yZF9j
aGFuZ2Uodm9pZCk7CkJPT0wgbHBfdW5peF9wYXNzd29yZF9zeW5jKHZvaWQpOwpCT09MIGxwX3Bh
c3N3ZF9jaGF0X2RlYnVnKHZvaWQpOwpCT09MIGxwX3VuaWNvZGUodm9pZCk7CkJPT0wgbHBfbnRf
cGlwZV9zdXBwb3J0KHZvaWQpOwpCT09MIGxwX3N0YXRfY2FjaGUodm9pZCk7CkJPT0wgbHBfYWxs
b3dfdHJ1c3RlZF9kb21haW5zKHZvaWQpOwpCT09MIGxwX3Jlc3RyaWN0X2Fub255bW91cyh2b2lk
KTsKQk9PTCBscF9sYW5tYW5fYXV0aCh2b2lkKTsKQk9PTCBscF9udGxtX2F1dGgodm9pZCk7CkJP
T0wgbHBfaG9zdF9tc2Rmcyh2b2lkKTsKQk9PTCBscF9rZXJuZWxfb3Bsb2Nrcyh2b2lkKTsKQk9P
TCBscF9lbmhhbmNlZF9icm93c2luZyh2b2lkKTsKQk9PTCBscF91c2VfbW1hcCh2b2lkKTsKQk9P
TCBscF91c2Vfc3BuZWdvKHZvaWQpOwpCT09MIGxwX2hvc3RuYW1lX2xvb2t1cHModm9pZCk7Cmlu
dCBscF9vc19sZXZlbCh2b2lkKTsKaW50IGxwX21heF90dGwodm9pZCk7CmludCBscF9tYXhfd2lu
c190dGwodm9pZCk7CmludCBscF9taW5fd2luc190dGwodm9pZCk7CmludCBscF9tYXhfbG9nX3Np
emUodm9pZCk7CmludCBscF9tYXhfb3Blbl9maWxlcyh2b2lkKTsKaW50IGxwX21heHhtaXQodm9p
ZCk7CmludCBscF9tYXhtdXgodm9pZCk7CmludCBscF9wYXNzd29yZGxldmVsKHZvaWQpOwppbnQg
bHBfdXNlcm5hbWVsZXZlbCh2b2lkKTsKaW50IGxwX3JlYWRzaXplKHZvaWQpOwppbnQgbHBfZGVh
ZHRpbWUodm9pZCk7CmludCBscF9tYXhwcm90b2NvbCh2b2lkKTsKaW50IGxwX21pbnByb3RvY29s
KHZvaWQpOwppbnQgbHBfc2VjdXJpdHkodm9pZCk7CmNoYXIgKipscF9hdXRoX21ldGhvZHModm9p
ZCk7CkJPT0wgbHBfcGFyYW5vaWRfc2VydmVyX3NlY3VyaXR5KHZvaWQpOwppbnQgbHBfbWF4ZGlz
a3NpemUodm9pZCk7CmludCBscF9scHFjYWNoZXRpbWUodm9pZCk7CmludCBscF9tYXhfc21iZF9w
cm9jZXNzZXModm9pZCk7CmludCBscF9kaXNhYmxlX3Nwb29sc3Modm9pZCk7CmludCBscF90b3Rh
bHByaW50am9icyh2b2lkKTsKaW50IGxwX3N5c2xvZyh2b2lkKTsKaW50IGxwX2xtX2Fubm91bmNl
KHZvaWQpOwppbnQgbHBfbG1faW50ZXJ2YWwodm9pZCk7CmludCBscF9tYWNoaW5lX3Bhc3N3b3Jk
X3RpbWVvdXQodm9pZCk7CmludCBscF9jaGFuZ2Vfbm90aWZ5X3RpbWVvdXQodm9pZCk7CmludCBs
cF9zdGF0X2NhY2hlX3NpemUodm9pZCk7CmludCBscF9tYXBfdG9fZ3Vlc3Qodm9pZCk7CmludCBs
cF9taW5fcGFzc3dkX2xlbmd0aCh2b2lkKTsKaW50IGxwX29wbG9ja19icmVha193YWl0X3RpbWUo
dm9pZCk7CmNoYXIgKmxwX3ByZWV4ZWMoaW50ICk7CmNoYXIgKmxwX3Bvc3RleGVjKGludCApOwpj
aGFyICpscF9yb290cHJlZXhlYyhpbnQgKTsKY2hhciAqbHBfcm9vdHBvc3RleGVjKGludCApOwpj
aGFyICpscF9zZXJ2aWNlbmFtZShpbnQgKTsKY2hhciAqbHBfcGF0aG5hbWUoaW50ICk7CmNoYXIg
KmxwX2RvbnRkZXNjZW5kKGludCApOwpjaGFyICpscF91c2VybmFtZShpbnQgKTsKY2hhciAqKmxw
X2ludmFsaWRfdXNlcnMoaW50ICk7CmNoYXIgKipscF92YWxpZF91c2VycyhpbnQgKTsKY2hhciAq
KmxwX2FkbWluX3VzZXJzKGludCApOwpjaGFyICpscF9wcmludGNvbW1hbmQoaW50ICk7CmNoYXIg
KmxwX2xwcWNvbW1hbmQoaW50ICk7CmNoYXIgKmxwX2xwcm1jb21tYW5kKGludCApOwpjaGFyICps
cF9scHBhdXNlY29tbWFuZChpbnQgKTsKY2hhciAqbHBfbHByZXN1bWVjb21tYW5kKGludCApOwpj
aGFyICpscF9xdWV1ZXBhdXNlY29tbWFuZChpbnQgKTsKY2hhciAqbHBfcXVldWVyZXN1bWVjb21t
YW5kKGludCApOwpjaGFyICpscF9kcml2ZXJmaWxlKGludCApOwpjaGFyICpscF9wcmludGVyZHJp
dmVyKGludCApOwpjaGFyICoqbHBfaG9zdHNhbGxvdyhpbnQgKTsKY2hhciAqKmxwX2hvc3RzZGVu
eShpbnQgKTsKY2hhciAqbHBfbWFnaWNzY3JpcHQoaW50ICk7CmNoYXIgKmxwX21hZ2ljb3V0cHV0
KGludCApOwpjaGFyICpscF9jb21tZW50KGludCApOwpjaGFyICpscF9mb3JjZV91c2VyKGludCAp
OwpjaGFyICpscF9mb3JjZV9ncm91cChpbnQgKTsKY2hhciAqKmxwX3JlYWRsaXN0KGludCApOwpj
aGFyICoqbHBfd3JpdGVsaXN0KGludCApOwpjaGFyICoqbHBfcHJpbnRlcl9hZG1pbihpbnQgKTsK
Y2hhciAqbHBfZnN0eXBlKGludCApOwpjaGFyICpscF92ZnNvYmooaW50ICk7CmNoYXIgKmxwX21h
bmdsZWRfbWFwKGludCApOwpjaGFyICpscF92ZXRvX2ZpbGVzKGludCApOwpjaGFyICpscF9oaWRl
X2ZpbGVzKGludCApOwpjaGFyICpscF92ZXRvX29wbG9ja3MoaW50ICk7CmNoYXIgKmxwX2RyaXZl
cmxvY2F0aW9uKGludCApOwpCT09MIGxwX21zZGZzX3Jvb3QoaW50ICk7CkJPT0wgbHBfYXV0b2xv
YWRlZChpbnQgKTsKQk9PTCBscF9wcmVleGVjX2Nsb3NlKGludCApOwpCT09MIGxwX3Jvb3RwcmVl
eGVjX2Nsb3NlKGludCApOwpCT09MIGxwX2Nhc2VzZW5zaXRpdmUoaW50ICk7CkJPT0wgbHBfcHJl
c2VydmVjYXNlKGludCApOwpCT09MIGxwX3Nob3J0cHJlc2VydmVjYXNlKGludCApOwpCT09MIGxw
X2Nhc2VtYW5nbGUoaW50ICk7CkJPT0wgbHBfaGlkZV9kb3RfZmlsZXMoaW50ICk7CkJPT0wgbHBf
aGlkZXVucmVhZGFibGUoaW50ICk7CkJPT0wgbHBfYnJvd3NlYWJsZShpbnQgKTsKQk9PTCBscF9y
ZWFkb25seShpbnQgKTsKQk9PTCBscF9ub19zZXRfZGlyKGludCApOwpCT09MIGxwX2d1ZXN0X29r
KGludCApOwpCT09MIGxwX2d1ZXN0X29ubHkoaW50ICk7CkJPT0wgbHBfcHJpbnRfb2soaW50ICk7
CkJPT0wgbHBfcG9zdHNjcmlwdChpbnQgKTsKQk9PTCBscF9tYXBfaGlkZGVuKGludCApOwpCT09M
IGxwX21hcF9hcmNoaXZlKGludCApOwpCT09MIGxwX2xvY2tpbmcoaW50ICk7CkJPT0wgbHBfc3Ry
aWN0X2xvY2tpbmcoaW50ICk7CkJPT0wgbHBfcG9zaXhfbG9ja2luZyhpbnQgKTsKQk9PTCBscF9z
aGFyZV9tb2RlcyhpbnQgKTsKQk9PTCBscF9vcGxvY2tzKGludCApOwpCT09MIGxwX2xldmVsMl9v
cGxvY2tzKGludCApOwpCT09MIGxwX29ubHl1c2VyKGludCApOwpCT09MIGxwX21hbmdsZWRuYW1l
cyhpbnQgKTsKQk9PTCBscF93aWRlbGlua3MoaW50ICk7CkJPT0wgbHBfc3ltbGlua3MoaW50ICk7
CkJPT0wgbHBfc3luY2Fsd2F5cyhpbnQgKTsKQk9PTCBscF9zdHJpY3RfYWxsb2NhdGUoaW50ICk7
CkJPT0wgbHBfc3RyaWN0X3N5bmMoaW50ICk7CkJPT0wgbHBfbWFwX3N5c3RlbShpbnQgKTsKQk9P
TCBscF9kZWxldGVfcmVhZG9ubHkoaW50ICk7CkJPT0wgbHBfZmFrZV9vcGxvY2tzKGludCApOwpC
T09MIGxwX3JlY3Vyc2l2ZV92ZXRvX2RlbGV0ZShpbnQgKTsKQk9PTCBscF9kb3NfZmlsZW1vZGUo
aW50ICk7CkJPT0wgbHBfZG9zX2ZpbGV0aW1lcyhpbnQgKTsKQk9PTCBscF9kb3NfZmlsZXRpbWVf
cmVzb2x1dGlvbihpbnQgKTsKQk9PTCBscF9mYWtlX2Rpcl9jcmVhdGVfdGltZXMoaW50ICk7CkJP
T0wgbHBfYmxvY2tpbmdfbG9ja3MoaW50ICk7CkJPT0wgbHBfaW5oZXJpdF9wZXJtcyhpbnQgKTsK
Qk9PTCBscF91c2VfY2xpZW50X2RyaXZlcihpbnQgKTsKQk9PTCBscF9udF9hY2xfc3VwcG9ydChp
bnQgKTsKaW50IGxwX2NyZWF0ZV9tYXNrKGludCApOwppbnQgbHBfZm9yY2VfY3JlYXRlX21vZGUo
aW50ICk7CmludCBscF9zZWN1cml0eV9tYXNrKGludCApOwppbnQgbHBfZm9yY2Vfc2VjdXJpdHlf
bW9kZShpbnQgKTsKaW50IGxwX2Rpcl9tYXNrKGludCApOwppbnQgbHBfZm9yY2VfZGlyX21vZGUo
aW50ICk7CmludCBscF9kaXJfc2VjdXJpdHlfbWFzayhpbnQgKTsKaW50IGxwX2ZvcmNlX2Rpcl9z
ZWN1cml0eV9tb2RlKGludCApOwppbnQgbHBfbWF4X2Nvbm5lY3Rpb25zKGludCApOwppbnQgbHBf
ZGVmYXVsdGNhc2UoaW50ICk7CmludCBscF9taW5wcmludHNwYWNlKGludCApOwppbnQgbHBfbWF4
cHJpbnRqb2JzKGludCApOwppbnQgbHBfcHJpbnRpbmcoaW50ICk7CmludCBscF9vcGxvY2tfY29u
dGVudGlvbl9saW1pdChpbnQgKTsKaW50IGxwX3dyaXRlX2NhY2hlX3NpemUoaW50ICk7CmNoYXIg
bHBfbWFnaWNjaGFyKGludCApOwppbnQgbHBfd2luYmluZF9jYWNoZV90aW1lKHZvaWQpOwpCT09M
IGxwX2hpZGVfbG9jYWxfdXNlcnModm9pZCk7CkJPT0wgbHBfYWRkX2hvbWUoY29uc3QgY2hhciAq
cHN6SG9tZW5hbWUsIGludCBpRGVmYXVsdFNlcnZpY2UsIGNvbnN0IGNoYXIgKnBzekhvbWVkaXIp
OwppbnQgbHBfYWRkX3NlcnZpY2UoY2hhciAqcHN6U2VydmljZSwgaW50IGlEZWZhdWx0U2Vydmlj
ZSk7CkJPT0wgbHBfYWRkX3ByaW50ZXIoY2hhciAqcHN6UHJpbnRlcm5hbWUsIGludCBpRGVmYXVs
dFNlcnZpY2UpOwpCT09MIGxwX2ZpbGVfbGlzdF9jaGFuZ2VkKHZvaWQpOwpCT09MIGxwX3dpbmJp
bmRfdWlkKHVpZF90ICpsb3csIHVpZF90ICpoaWdoKTsKQk9PTCBscF93aW5iaW5kX2dpZChnaWRf
dCAqbG93LCBnaWRfdCAqaGlnaCk7CnZvaWQgKmxwX2xvY2FsX3B0cihpbnQgc251bSwgdm9pZCAq
cHRyKTsKQk9PTCBscF9kb19wYXJhbWV0ZXIoaW50IHNudW0sIGNoYXIgKnBzelBhcm1OYW1lLCBj
aGFyICpwc3pQYXJtVmFsdWUpOwp2b2lkIGluaXRfbG9jYWxzKHZvaWQpOwpCT09MIGxwX2lzX2Rl
ZmF1bHQoaW50IHNudW0sIHN0cnVjdCBwYXJtX3N0cnVjdCAqcGFybSk7CnN0cnVjdCBwYXJtX3N0
cnVjdCAqbHBfbmV4dF9wYXJhbWV0ZXIoaW50IHNudW0sIGludCAqaSwgaW50IGFsbHBhcmFtZXRl
cnMpOwpCT09MIGxwX3NudW1fb2soaW50IGlTZXJ2aWNlKTsKdm9pZCBscF9hZGRfb25lX3ByaW50
ZXIoY2hhciAqbmFtZSwgY2hhciAqY29tbWVudCk7CkJPT0wgbHBfbG9hZGVkKHZvaWQpOwp2b2lk
IGxwX2tpbGx1bnVzZWQoQk9PTCAoKnNudW11c2VkKSAoaW50KSk7CnZvaWQgbHBfa2lsbHNlcnZp
Y2UoaW50IGlTZXJ2aWNlSW4pOwpCT09MIGxwX2xvYWQoY2hhciAqcHN6Rm5hbWUsIEJPT0wgZ2xv
YmFsX29ubHksIEJPT0wgc2F2ZV9kZWZhdWx0cywKICAgICAgICAgICAgIEJPT0wgYWRkX2lwYyk7
CnZvaWQgbHBfcmVzZXRudW1zZXJ2aWNlcyh2b2lkKTsKaW50IGxwX251bXNlcnZpY2VzKHZvaWQp
Owp2b2lkIGxwX2R1bXAoRklMRSAqZiwgQk9PTCBzaG93X2RlZmF1bHRzLCBpbnQgbWF4dG9wcmlu
dCk7CnZvaWQgbHBfZHVtcF9vbmUoRklMRSAqIGYsIEJPT0wgc2hvd19kZWZhdWx0cywgaW50IHNu
dW0pOwppbnQgbHBfc2VydmljZW51bWJlcihjb25zdCBjaGFyICpwc3pTZXJ2aWNlTmFtZSk7CmNo
YXIgKnZvbHVtZV9sYWJlbChpbnQgc251bSk7CmludCBscF9zZXJ2ZXJfcm9sZSh2b2lkKTsKQk9P
TCBscF9kb21haW5fbWFzdGVyKHZvaWQpOwpCT09MIGxwX3ByZWZlcnJlZF9tYXN0ZXIodm9pZCk7
CnZvaWQgbHBfcmVtb3ZlX3NlcnZpY2UoaW50IHNudW0pOwp2b2lkIGxwX2NvcHlfc2VydmljZShp
bnQgc251bSwgY2hhciAqbmV3X25hbWUpOwppbnQgbHBfZGVmYXVsdF9zZXJ2ZXJfYW5ub3VuY2Uo
dm9pZCk7CmludCBscF9tYWpvcl9hbm5vdW5jZV92ZXJzaW9uKHZvaWQpOwppbnQgbHBfbWlub3Jf
YW5ub3VuY2VfdmVyc2lvbih2b2lkKTsKdm9pZCBscF9zZXRfbmFtZV9yZXNvbHZlX29yZGVyKGNo
YXIgKm5ld19vcmRlcik7CmNoYXIgKmxwX3ByaW50ZXJuYW1lKGludCBzbnVtKTsKY2hhciAqKmxw
X2xpc3RfbWFrZShjaGFyICpzdHJpbmcpOwpCT09MIGxwX2xpc3RfY29weShjaGFyICoqKmRlc3Qs
IGNoYXIgKipzcmMpOwpCT09MIGxwX2xpc3RfY29tcGFyZShjaGFyICoqbGlzdDEsIGNoYXIgKips
aXN0Mik7CnZvaWQgbHBfbGlzdF9mcmVlKGNoYXIgKioqbGlzdCk7CkJPT0wgbHBfbGlzdF9zdWJz
dGl0dXRlKGNoYXIgKipsaXN0LCBjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICppbnNl
cnQpOwp2b2lkIGdldF9wcml2YXRlX2RpcmVjdG9yeShwc3RyaW5nIHByaXZkaXIpOwpCT09MIGlz
X25ldGJpb3NfYWxpYXNfb3JfbmFtZShjaGFyICpuYW1lKTsKdm9pZCBscF9zZXRfbG9nZmlsZShj
b25zdCBjaGFyICpuYW1lKTsKCgoKQk9PTCBwbV9wcm9jZXNzKCBjaGFyICpGaWxlTmFtZSwKICAg
ICAgICAgICAgICAgICBCT09MICgqc2Z1bmMpKGNoYXIgKiksCiAgICAgICAgICAgICAgICAgQk9P
TCAoKnBmdW5jKShjaGFyICosIGNoYXIgKikgKTsKCgoKQk9PTCBwZGJfZ2VuZXJhdGVfc2FtX3Np
ZCh2b2lkKTsKCgoKQk9PTCBpbml0aWFsaXplX3Bhc3N3b3JkX2RiKEJPT0wgcmVsb2FkKTsKQk9P
TCBwZGJfaW5pdF9zYW0oU0FNX0FDQ09VTlQgKip1c2VyKTsKQk9PTCBwZGJfaW5pdF9zYW1fcHco
U0FNX0FDQ09VTlQgKipuZXdfc2FtX2FjY3QsIGNvbnN0IHN0cnVjdCBwYXNzd2QgKnB3ZCk7CkJP
T0wgcGRiX3Jlc2V0X3NhbShTQU1fQUNDT1VOVCAqdXNlcik7CkJPT0wgcGRiX2ZyZWVfc2FtKFNB
TV9BQ0NPVU5UICoqdXNlcik7CmNoYXIgKnBkYl9lbmNvZGVfYWNjdF9jdHJsKHVuc2lnbmVkIHNo
b3J0IGFjY3RfY3RybCwgc2l6ZV90IGxlbmd0aCk7CnVuc2lnbmVkIHNob3J0IHBkYl9kZWNvZGVf
YWNjdF9jdHJsKGNvbnN0IGNoYXIgKnApOwp2b2lkIHBkYl9zZXRoZXhwd2QoY2hhciAqcCwgY29u
c3QgdW5zaWduZWQgY2hhciAqcHdkLCB1bnNpZ25lZCBzaG9ydCBhY2N0X2N0cmwpOwpCT09MIHBk
Yl9nZXRoZXhwd2QoY29uc3QgY2hhciAqcCwgdW5zaWduZWQgY2hhciAqcHdkKTsKQk9PTCBwZGJf
bmFtZV90b19yaWQoY29uc3QgY2hhciAqdXNlcl9uYW1lLCB1bnNpZ25lZCBpbnQgKnVfcmlkLCB1
bnNpZ25lZCBpbnQgKmdfcmlkKTsKdWlkX3QgcGRiX3VzZXJfcmlkX3RvX3VpZCh1bnNpZ25lZCBp
bnQgdXNlcl9yaWQpOwpnaWRfdCBwZGJfZ3JvdXBfcmlkX3RvX2dpZCh1bnNpZ25lZCBpbnQgZ3Jv
dXBfcmlkKTsKdW5zaWduZWQgaW50IHBkYl91aWRfdG9fdXNlcl9yaWQodWlkX3QgdWlkKTsKdW5z
aWduZWQgaW50IHBkYl9naWRfdG9fZ3JvdXBfcmlkKGdpZF90IGdpZCk7CkJPT0wgcGRiX3JpZF9p
c191c2VyKHVuc2lnbmVkIGludCByaWQpOwpCT09MIGxvY2FsX2xvb2t1cF9zaWQoRE9NX1NJRCAq
c2lkLCBjaGFyICpuYW1lLCBlbnVtIFNJRF9OQU1FX1VTRSAqcHNpZF9uYW1lX3VzZSk7CkJPT0wg
bG9jYWxfbG9va3VwX25hbWUoY29uc3QgY2hhciAqY19kb21haW4sIGNvbnN0IGNoYXIgKmNfdXNl
ciwgRE9NX1NJRCAqcHNpZCwgZW51bSBTSURfTkFNRV9VU0UgKnBzaWRfbmFtZV91c2UpOwpET01f
U0lEICpsb2NhbF91aWRfdG9fc2lkKERPTV9TSUQgKnBzaWQsIHVpZF90IHVpZCk7CkJPT0wgbG9j
YWxfc2lkX3RvX3VpZCh1aWRfdCAqcHVpZCwgRE9NX1NJRCAqcHNpZCwgZW51bSBTSURfTkFNRV9V
U0UgKm5hbWVfdHlwZSk7CkRPTV9TSUQgKmxvY2FsX2dpZF90b19zaWQoRE9NX1NJRCAqcHNpZCwg
Z2lkX3QgZ2lkKTsKQk9PTCBsb2NhbF9zaWRfdG9fZ2lkKGdpZF90ICpwZ2lkLCBET01fU0lEICpw
c2lkLCBlbnVtIFNJRF9OQU1FX1VTRSAqbmFtZV90eXBlKTsKdm9pZCBjb3B5X2lkMjNfdG9fc2Ft
X3Bhc3N3ZChTQU1fQUNDT1VOVCAqdG8sIFNBTV9VU0VSX0lORk9fMjMgKmZyb20pOwp2b2lkIGNv
cHlfaWQyMV90b19zYW1fcGFzc3dkKFNBTV9BQ0NPVU5UICp0bywgU0FNX1VTRVJfSU5GT18yMSAq
ZnJvbSk7CkJPT0wgbG9jYWxfcGFzc3dvcmRfY2hhbmdlKGNvbnN0IGNoYXIgKnVzZXJfbmFtZSwg
aW50IGxvY2FsX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu
ZXdfcGFzc3dkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICplcnJfc3RyLCBzaXpl
X3QgZXJyX3N0cl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm1zZ19zdHIs
IHNpemVfdCBtc2dfc3RyX2xlbik7CnVuc2lnbmVkIHNob3J0IHBkYl9nZXRfYWNjdF9jdHJsIChj
b25zdCBTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CnRpbWVfdCBwZGJfZ2V0X2xvZ29uX3RpbWUgKGNv
bnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKdGltZV90IHBkYl9nZXRfbG9nb2ZmX3RpbWUgKGNv
bnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKdGltZV90IHBkYl9nZXRfa2lja29mZl90aW1lIChj
b25zdCBTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CnRpbWVfdCBwZGJfZ2V0X3Bhc3NfbGFzdF9zZXRf
dGltZSAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwp0aW1lX3QgcGRiX2dldF9wYXNzX2Nh
bl9jaGFuZ2VfdGltZSAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwp0aW1lX3QgcGRiX2dl
dF9wYXNzX211c3RfY2hhbmdlX3RpbWUgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKdW5z
aWduZWQgc2hvcnQgcGRiX2dldF9sb2dvbl9kaXZzIChjb25zdCBTQU1fQUNDT1VOVCAqc2FtcGFz
cyk7CnVuc2lnbmVkIGludCBwZGJfZ2V0X2hvdXJzX2xlbiAoY29uc3QgU0FNX0FDQ09VTlQgKnNh
bXBhc3MpOwpjb25zdCB1bnNpZ25lZCBjaGFyKiBwZGJfZ2V0X2hvdXJzIChjb25zdCBTQU1fQUND
T1VOVCAqc2FtcGFzcyk7CmNvbnN0IHVuc2lnbmVkIGNoYXIqIHBkYl9nZXRfbnRfcGFzc3dkIChj
b25zdCBTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CmNvbnN0IHVuc2lnbmVkIGNoYXIqIHBkYl9nZXRf
bGFubWFuX3Bhc3N3ZCAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwp1bnNpZ25lZCBpbnQg
cGRiX2dldF91c2VyX3JpZCAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwp1bnNpZ25lZCBp
bnQgcGRiX2dldF9ncm91cF9yaWQgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKdWlkX3Qg
cGRiX2dldF91aWQgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKZ2lkX3QgcGRiX2dldF9n
aWQgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKY29uc3QgY2hhciogcGRiX2dldF91c2Vy
bmFtZSAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwpjb25zdCBjaGFyKiBwZGJfZ2V0X2Rv
bWFpbiAoY29uc3QgU0FNX0FDQ09VTlQgKnNhbXBhc3MpOwpjb25zdCBjaGFyKiBwZGJfZ2V0X250
X3VzZXJuYW1lIChjb25zdCBTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CmNvbnN0IGNoYXIqIHBkYl9n
ZXRfZnVsbG5hbWUgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKY29uc3QgY2hhciogcGRi
X2dldF9ob21lZGlyIChjb25zdCBTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CmNvbnN0IGNoYXIqIHBk
Yl9nZXRfZGlyZHJpdmUgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKY29uc3QgY2hhciog
cGRiX2dldF9sb2dvbl9zY3JpcHQgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKY29uc3Qg
Y2hhciogcGRiX2dldF9wcm9maWxlX3BhdGggKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsK
Y29uc3QgY2hhciogcGRiX2dldF9hY2N0X2Rlc2MgKGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNz
KTsKY29uc3QgY2hhciogcGRiX2dldF93b3Jrc3RhdGlvbnMgKGNvbnN0IFNBTV9BQ0NPVU5UICpz
YW1wYXNzKTsKY29uc3QgY2hhciogcGRiX2dldF9tdW5nZWRfZGlhbCAoY29uc3QgU0FNX0FDQ09V
TlQgKnNhbXBhc3MpOwp1bnNpZ25lZCBpbnQgcGRiX2dldF91bmtub3duMyAoY29uc3QgU0FNX0FD
Q09VTlQgKnNhbXBhc3MpOwp1bnNpZ25lZCBpbnQgcGRiX2dldF91bmtub3duNSAoY29uc3QgU0FN
X0FDQ09VTlQgKnNhbXBhc3MpOwp1bnNpZ25lZCBpbnQgcGRiX2dldF91bmtub3duNiAoY29uc3Qg
U0FNX0FDQ09VTlQgKnNhbXBhc3MpOwpCT09MIHBkYl9zZXRfYWNjdF9jdHJsIChTQU1fQUNDT1VO
VCAqc2FtcGFzcywgdW5zaWduZWQgc2hvcnQgZmxhZ3MpOwpCT09MIHBkYl9zZXRfbG9nb25fdGlt
ZSAoU0FNX0FDQ09VTlQgKnNhbXBhc3MsIHRpbWVfdCBteXRpbWUpOwpCT09MIHBkYl9zZXRfbG9n
b2ZmX3RpbWUgKFNBTV9BQ0NPVU5UICpzYW1wYXNzLCB0aW1lX3QgbXl0aW1lKTsKQk9PTCBwZGJf
c2V0X2tpY2tvZmZfdGltZSAoU0FNX0FDQ09VTlQgKnNhbXBhc3MsIHRpbWVfdCBteXRpbWUpOwpC
T09MIHBkYl9zZXRfcGFzc19jYW5fY2hhbmdlX3RpbWUgKFNBTV9BQ0NPVU5UICpzYW1wYXNzLCB0
aW1lX3QgbXl0aW1lKTsKQk9PTCBwZGJfc2V0X3Bhc3NfbXVzdF9jaGFuZ2VfdGltZSAoU0FNX0FD
Q09VTlQgKnNhbXBhc3MsIHRpbWVfdCBteXRpbWUpOwpCT09MIHBkYl9zZXRfcGFzc19sYXN0X3Nl
dF90aW1lIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgdGltZV90IG15dGltZSk7CkJPT0wgcGRiX3Nl
dF9ob3Vyc19sZW4gKFNBTV9BQ0NPVU5UICpzYW1wYXNzLCB1bnNpZ25lZCBpbnQgbGVuKTsKQk9P
TCBwZGJfc2V0X2xvZ29uc19kaXZzIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgdW5zaWduZWQgc2hv
cnQgaG91cnMpOwpCT09MIHBkYl9zZXRfdWlkIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3Qg
dWlkX3QgdWlkKTsKQk9PTCBwZGJfc2V0X2dpZCAoU0FNX0FDQ09VTlQgKnNhbXBhc3MsIGNvbnN0
IGdpZF90IGdpZCk7CkJPT0wgcGRiX3NldF91c2VyX3JpZCAoU0FNX0FDQ09VTlQgKnNhbXBhc3Ms
IHVuc2lnbmVkIGludCByaWQpOwpCT09MIHBkYl9zZXRfZ3JvdXBfcmlkIChTQU1fQUNDT1VOVCAq
c2FtcGFzcywgdW5zaWduZWQgaW50IGdyaWQpOwpCT09MIHBkYl9zZXRfdXNlcm5hbWUoU0FNX0FD
Q09VTlQgKnNhbXBhc3MsIGNvbnN0IGNoYXIgKnVzZXJuYW1lKTsKQk9PTCBwZGJfc2V0X2RvbWFp
bihTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hhciAqZG9tYWluKTsKQk9PTCBwZGJfc2V0
X250X3VzZXJuYW1lKFNBTV9BQ0NPVU5UICpzYW1wYXNzLCBjb25zdCBjaGFyICpudF91c2VybmFt
ZSk7CkJPT0wgcGRiX3NldF9mdWxsbmFtZShTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hh
ciAqZnVsbG5hbWUpOwpCT09MIHBkYl9zZXRfbG9nb25fc2NyaXB0KFNBTV9BQ0NPVU5UICpzYW1w
YXNzLCBjb25zdCBjaGFyICpsb2dvbl9zY3JpcHQpOwpCT09MIHBkYl9zZXRfcHJvZmlsZV9wYXRo
IChTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hhciAqcHJvZmlsZV9wYXRoKTsKQk9PTCBw
ZGJfc2V0X2Rpcl9kcml2ZSAoU0FNX0FDQ09VTlQgKnNhbXBhc3MsIGNvbnN0IGNoYXIgKmRpcl9k
cml2ZSk7CkJPT0wgcGRiX3NldF9ob21lZGlyIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3Qg
Y2hhciAqaG9tZWRpcik7CkJPT0wgcGRiX3NldF9hY2N0X2Rlc2MgKFNBTV9BQ0NPVU5UICpzYW1w
YXNzLCBjb25zdCBjaGFyICphY2N0X2Rlc2MpOwpCT09MIHBkYl9zZXRfd29ya3N0YXRpb25zIChT
QU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hhciAqd29ya3N0YXRpb25zKTsKQk9PTCBwZGJf
c2V0X211bmdlZF9kaWFsIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hhciAqbXVuZ2Vk
X2RpYWwpOwpCT09MIHBkYl9zZXRfbnRfcGFzc3dkIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgY29u
c3QgdW5zaWduZWQgY2hhciAqcHdkKTsKQk9PTCBwZGJfc2V0X2xhbm1hbl9wYXNzd2QgKFNBTV9B
Q0NPVU5UICpzYW1wYXNzLCBjb25zdCB1bnNpZ25lZCBjaGFyICpwd2QpOwpCT09MIHBkYl9zZXRf
dW5rbm93bl8zIChTQU1fQUNDT1VOVCAqc2FtcGFzcywgdW5zaWduZWQgaW50IHVua24pOwpCT09M
IHBkYl9zZXRfdW5rbm93bl81IChTQU1fQUNDT1VOVCAqc2FtcGFzcywgdW5zaWduZWQgaW50IHVu
a24pOwpCT09MIHBkYl9zZXRfdW5rbm93bl82IChTQU1fQUNDT1VOVCAqc2FtcGFzcywgdW5zaWdu
ZWQgaW50IHVua24pOwpCT09MIHBkYl9zZXRfaG91cnMgKFNBTV9BQ0NPVU5UICpzYW1wYXNzLCBj
b25zdCB1bnNpZ25lZCBjaGFyICpob3Vycyk7CkJPT0wgcGRiX3NldF9wYXNzX2NoYW5nZWRfbm93
IChTQU1fQUNDT1VOVCAqc2FtcGFzcyk7CkJPT0wgcGRiX3NldF9wbGFpbnRleHRfcGFzc3dkIChT
QU1fQUNDT1VOVCAqc2FtcGFzcywgY29uc3QgY2hhciAqcGxhaW50ZXh0KTsKCgoKQk9PTCBwZGJf
c2V0c2FtcHdlbnQoQk9PTCB1cGRhdGUpOwp2b2lkIHBkYl9lbmRzYW1wd2VudCh2b2lkKTsKQk9P
TCBwZGJfZ2V0c2FtcHdlbnQoU0FNX0FDQ09VTlQgKiB1c2VyKTsKQk9PTCBwZGJfZ2V0c2FtcHdu
YW0oU0FNX0FDQ09VTlQgKiB1c2VyLCBjb25zdCBjaGFyICpzbmFtZSk7CkJPT0wgcGRiX2dldHNh
bXB3cmlkKFNBTV9BQ0NPVU5UICogdXNlciwgdW5zaWduZWQgaW50IHJpZCk7CkJPT0wgcGRiX2dl
dHNhbXB3dWlkKFNBTV9BQ0NPVU5UICogdXNlciwgdWlkX3QgdWlkKTsKQk9PTCBwZGJfZGVsZXRl
X3NhbV9hY2NvdW50KGNvbnN0IGNoYXIgKnNuYW1lKTsKQk9PTCBwZGJfdXBkYXRlX3NhbV9hY2Nv
dW50KGNvbnN0IFNBTV9BQ0NPVU5UICogbmV3cHdkLCBCT09MIG92ZXJyaWRlKTsKQk9PTCBwZGJf
YWRkX3NhbV9hY2NvdW50KGNvbnN0IFNBTV9BQ0NPVU5UICogbmV3cHdkKTsKCgoKQk9PTCBwZGJf
c2V0c2FtcHdlbnQoQk9PTCB1cGRhdGUpOwp2b2lkIHBkYl9lbmRzYW1wd2VudCh2b2lkKTsKQk9P
TCBwZGJfZ2V0c2FtcHdlbnQoU0FNX0FDQ09VTlQgKnVzZXIpOwpCT09MIHBkYl9nZXRzYW1wd25h
bShTQU1fQUNDT1VOVCAqIHVzZXIsIGNvbnN0IGNoYXIgKnNuYW1lKTsKQk9PTCBwZGJfZ2V0c2Ft
cHdyaWQoU0FNX0FDQ09VTlQgKiB1c2VyLCB1bnNpZ25lZCBpbnQgcmlkKTsKQk9PTCBwZGJfZ2V0
c2FtcHd1aWQoU0FNX0FDQ09VTlQgKiB1c2VyLCB1aWRfdCB1aWQpOwpCT09MIHBkYl9kZWxldGVf
c2FtX2FjY291bnQoY29uc3QgY2hhciAqc25hbWUpOwpCT09MIHBkYl9hZGRfc2FtX2FjY291bnQo
Y29uc3QgU0FNX0FDQ09VTlQgKiBuZXdwd2QpOwpCT09MIHBkYl91cGRhdGVfc2FtX2FjY291bnQo
Y29uc3QgU0FNX0FDQ09VTlQgKiBuZXdwd2QsIEJPT0wgb3ZlcnJpZGUpOwoKCgpCT09MIHBkYl9z
ZXRzYW1wd2VudCAoQk9PTCB1cGRhdGUpOwp2b2lkIHBkYl9lbmRzYW1wd2VudCAodm9pZCk7CkJP
T0wgcGRiX2dldHNhbXB3ZW50KFNBTV9BQ0NPVU5UICp1c2VyKTsKQk9PTCBwZGJfZ2V0c2FtcHdu
YW0oU0FNX0FDQ09VTlQgKnNhbV9hY2N0LCBjb25zdCBjaGFyICp1c2VybmFtZSk7CkJPT0wgcGRi
X2dldHNhbXB3dWlkIChTQU1fQUNDT1VOVCAqc2FtX2FjY3QsIHVpZF90IHVpZCk7CkJPT0wgcGRi
X2dldHNhbXB3cmlkKFNBTV9BQ0NPVU5UICpzYW1fYWNjdCx1bnNpZ25lZCBpbnQgcmlkKTsKQk9P
TCBwZGJfYWRkX3NhbV9hY2NvdW50KGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzKTsKQk9PTCBw
ZGJfdXBkYXRlX3NhbV9hY2NvdW50KGNvbnN0IFNBTV9BQ0NPVU5UICpzYW1wYXNzLCBCT09MIG92
ZXJyaWRlKTsKQk9PTCBwZGJfZGVsZXRlX3NhbV9hY2NvdW50IChjb25zdCBjaGFyKiB1c2VybmFt
ZSk7CgoKCkJPT0wgcGRiX3NldHNhbXB3ZW50KEJPT0wgdXBkYXRlKTsKdm9pZCBwZGJfZW5kc2Ft
cHdlbnQodm9pZCk7CkJPT0wgcGRiX2dldHNhbXB3ZW50KFNBTV9BQ0NPVU5UICp1c2VyKTsKQk9P
TCBwZGJfZ2V0c2FtcHduYW0gKFNBTV9BQ0NPVU5UICp1c2VyLCBjb25zdCBjaGFyICpzbmFtZSk7
CkJPT0wgcGRiX2dldHNhbXB3dWlkIChTQU1fQUNDT1VOVCogdXNlciwgdWlkX3QgdWlkKTsKQk9P
TCBwZGJfZ2V0c2FtcHdyaWQgKFNBTV9BQ0NPVU5UICp1c2VyLCB1bnNpZ25lZCBpbnQgcmlkKTsK
Qk9PTCBwZGJfZGVsZXRlX3NhbV9hY2NvdW50KGNvbnN0IGNoYXIgKnNuYW1lKTsKQk9PTCBwZGJf
dXBkYXRlX3NhbV9hY2NvdW50IChjb25zdCBTQU1fQUNDT1VOVCAqbmV3cHdkLCBCT09MIG92ZXJy
aWRlKTsKQk9PTCBwZGJfYWRkX3NhbV9hY2NvdW50IChjb25zdCBTQU1fQUNDT1VOVCAqbmV3cHdk
KTsKCgoKQk9PTCBzZWNyZXRzX2luaXQodm9pZCk7CnZvaWQgKnNlY3JldHNfZmV0Y2goY2hhciAq
a2V5LCBzaXplX3QgKnNpemUpOwpCT09MIHNlY3JldHNfc3RvcmUoY2hhciAqa2V5LCB2b2lkICpk
YXRhLCBzaXplX3Qgc2l6ZSk7CkJPT0wgc2VjcmV0c19kZWxldGUoY2hhciAqa2V5KTsKQk9PTCBz
ZWNyZXRzX3N0b3JlX2RvbWFpbl9zaWQoY2hhciAqZG9tYWluLCBET01fU0lEICpzaWQpOwpCT09M
IHNlY3JldHNfZmV0Y2hfZG9tYWluX3NpZChjaGFyICpkb21haW4sIERPTV9TSUQgKnNpZCk7CmNo
YXIgKnRydXN0X2tleXN0cihjaGFyICpkb21haW4pOwpCT09MIHNlY3JldHNfZmV0Y2hfdHJ1c3Rf
YWNjb3VudF9wYXNzd29yZChjaGFyICpkb21haW4sIHVuc2lnbmVkIGNoYXIgcmV0X3B3ZFsxNl0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfdCAqcGFzc19s
YXN0X3NldF90aW1lKTsKQk9PTCBzZWNyZXRzX3N0b3JlX3RydXN0X2FjY291bnRfcGFzc3dvcmQo
Y2hhciAqZG9tYWluLCB1bnNpZ25lZCBjaGFyIG5ld19wd2RbMTZdKTsKQk9PTCBzZWNyZXRzX3N0
b3JlX21hY2hpbmVfcGFzc3dvcmQoY2hhciAqcGFzcyk7CmNoYXIgKnNlY3JldHNfZmV0Y2hfbWFj
aGluZV9wYXNzd29yZCh2b2lkKTsKQk9PTCB0cnVzdF9wYXNzd29yZF9kZWxldGUoY2hhciAqZG9t
YWluKTsKdm9pZCByZXNldF9nbG9iYWxzX2FmdGVyX2Zvcmsodm9pZCk7CkJPT0wgc2VjcmV0c19z
dG9yZV9sZGFwX3B3KGNoYXIqIGRuLCBjaGFyKiBwdyk7CkJPT0wgZmV0Y2hfbGRhcF9wdyhjaGFy
ICpkbiwgY2hhciogcHcsIGludCBsZW4pOwoKCgp2b2lkIGFkZF9hbGxfcHJpbnRlcnModm9pZCk7
CnZvaWQgbG9hZF9wcmludGVycyh2b2lkKTsKCgoKQk9PTCBwYXJzZV9scHFfZW50cnkoaW50IHNu
dW0sY2hhciAqbGluZSwKICAgICAgICAgICAgICAgICAgICAgcHJpbnRfcXVldWVfc3RydWN0ICpi
dWYsCiAgICAgICAgICAgICAgICAgICAgIHByaW50X3N0YXR1c19zdHJ1Y3QgKnN0YXR1cyxCT09M
IGZpcnN0KTsKCgoKQk9PTCBudF9wcmludGluZ19pbml0KHZvaWQpOwppbnQgZ2V0X2J1aWx0aW5f
bnRmb3JtcyhudF9mb3Jtc19zdHJ1Y3QgKipsaXN0KTsKQk9PTCBnZXRfYV9idWlsdGluX250Zm9y
bShVTklTVFIyICp1bmlfZm9ybW5hbWUsbnRfZm9ybXNfc3RydWN0ICpmb3JtKTsKaW50IGdldF9u
dGZvcm1zKG50X2Zvcm1zX3N0cnVjdCAqKmxpc3QpOwppbnQgd3JpdGVfbnRmb3JtcyhudF9mb3Jt
c19zdHJ1Y3QgKipsaXN0LCBpbnQgbnVtYmVyKTsKQk9PTCBhZGRfYV9mb3JtKG50X2Zvcm1zX3N0
cnVjdCAqKmxpc3QsIGNvbnN0IEZPUk0gKmZvcm0sIGludCAqY291bnQpOwpCT09MIGRlbGV0ZV9h
X2Zvcm0obnRfZm9ybXNfc3RydWN0ICoqbGlzdCwgVU5JU1RSMiAqZGVsX25hbWUsIGludCAqY291
bnQsIFdFUlJPUiAqcmV0KTsKdm9pZCB1cGRhdGVfYV9mb3JtKG50X2Zvcm1zX3N0cnVjdCAqKmxp
c3QsIGNvbnN0IEZPUk0gKmZvcm0sIGludCBjb3VudCk7CmludCBnZXRfbnRkcml2ZXJzKGZzdHJp
bmcgKipsaXN0LCBjaGFyICphcmNoaXRlY3R1cmUsIHVuc2lnbmVkIGludCB2ZXJzaW9uKTsKQk9P
TCBnZXRfc2hvcnRfYXJjaGkoY2hhciAqc2hvcnRfYXJjaGksIGNoYXIgKmxvbmdfYXJjaGkpOwpX
RVJST1IgY2xlYW5fdXBfZHJpdmVyX3N0cnVjdChOVF9QUklOVEVSX0RSSVZFUl9JTkZPX0xFVkVM
IGRyaXZlcl9hYnN0cmFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwgc3RydWN0IGN1cnJlbnRfdXNl
ciAqdXNlcik7CkJPT0wgbW92ZV9kcml2ZXJfdG9fZG93bmxvYWRfYXJlYShOVF9QUklOVEVSX0RS
SVZFUl9JTkZPX0xFVkVMIGRyaXZlcl9hYnN0cmFjdCwgdW5zaWduZWQgaW50IGxldmVsLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGN1cnJlbnRfdXNlciAqdXNlciwg
V0VSUk9SICpwZXJyKTsKdW5zaWduZWQgaW50IGdldF9hX3ByaW50ZXJfZHJpdmVyXzl4X2NvbXBh
dGlibGUocHN0cmluZyBsaW5lLCBmc3RyaW5nIG1vZGVsKTsKdW5zaWduZWQgaW50IGRlbF9hX3By
aW50ZXIoY2hhciAqc2hhcmVuYW1lKTsKdm9pZCBhZGRfYV9zcGVjaWZpY19wYXJhbShOVF9QUklO
VEVSX0lORk9fTEVWRUxfMiAqaW5mb18yLCBOVF9QUklOVEVSX1BBUkFNICoqcGFyYW0pOwpCT09M
IHVubGlua19zcGVjaWZpY19wYXJhbV9pZl9leGlzdChOVF9QUklOVEVSX0lORk9fTEVWRUxfMiAq
aW5mb18yLCBOVF9QUklOVEVSX1BBUkFNICpwYXJhbSk7CnZvaWQgZnJlZV9udF9wcmludGVyX3Bh
cmFtKE5UX1BSSU5URVJfUEFSQU0gKipwYXJhbV9wdHIpOwpOVF9ERVZJQ0VNT0RFICpjb25zdHJ1
Y3RfbnRfZGV2aWNlbW9kZShjb25zdCBmc3RyaW5nIGRlZmF1bHRfZGV2aWNlbmFtZSk7Ck5UX0RF
VklDRU1PREUgKmR1cF9udF9kZXZpY2Vtb2RlKE5UX0RFVklDRU1PREUgKm50X2RldmljZW1vZGUp
Owp2b2lkIGZyZWVfbnRfZGV2aWNlbW9kZShOVF9ERVZJQ0VNT0RFICoqZGV2bW9kZV9wdHIpOwp2
b2lkIGdldF9wcmludGVyX3N1YnN0X3BhcmFtcyhpbnQgc251bSwgZnN0cmluZyAqcHJpbnRlcm5h
bWUsIGZzdHJpbmcgKnNoYXJlbmFtZSwgZnN0cmluZyAqcG9ydG5hbWUpOwpXRVJST1IgbW9kX2Ff
cHJpbnRlcihOVF9QUklOVEVSX0lORk9fTEVWRUwgcHJpbnRlciwgdW5zaWduZWQgaW50IGxldmVs
KTsKV0VSUk9SIGFkZF9hX3ByaW50ZXIoTlRfUFJJTlRFUl9JTkZPX0xFVkVMIHByaW50ZXIsIHVu
c2lnbmVkIGludCBsZXZlbCk7CnVuc2lnbmVkIGludCBzZXRfZHJpdmVyX2luaXQoTlRfUFJJTlRF
Ul9JTkZPX0xFVkVMICpwcmludGVyLCB1bnNpZ25lZCBpbnQgbGV2ZWwpOwpXRVJST1Igc2F2ZV9k
cml2ZXJfaW5pdChOVF9QUklOVEVSX0lORk9fTEVWRUwgKnByaW50ZXIsIHVuc2lnbmVkIGludCBs
ZXZlbCwgTlRfUFJJTlRFUl9QQVJBTSAqcGFyYW0pOwpXRVJST1IgZ2V0X2FfcHJpbnRlcihOVF9Q
UklOVEVSX0lORk9fTEVWRUwgKipwcF9wcmludGVyLCB1bnNpZ25lZCBpbnQgbGV2ZWwsIGZzdHJp
bmcgc2hhcmVuYW1lKTsKdW5zaWduZWQgaW50IGZyZWVfYV9wcmludGVyKE5UX1BSSU5URVJfSU5G
T19MRVZFTCAqKnBwX3ByaW50ZXIsIHVuc2lnbmVkIGludCBsZXZlbCk7CnVuc2lnbmVkIGludCBh
ZGRfYV9wcmludGVyX2RyaXZlcihOVF9QUklOVEVSX0RSSVZFUl9JTkZPX0xFVkVMIGRyaXZlciwg
dW5zaWduZWQgaW50IGxldmVsKTsKV0VSUk9SIGdldF9hX3ByaW50ZXJfZHJpdmVyKE5UX1BSSU5U
RVJfRFJJVkVSX0lORk9fTEVWRUwgKmRyaXZlciwgdW5zaWduZWQgaW50IGxldmVsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnN0cmluZyBwcmludGVybmFtZSwgZnN0cmluZyBhcmNoaXRl
Y3R1cmUsIHVuc2lnbmVkIGludCB2ZXJzaW9uKTsKdW5zaWduZWQgaW50IGZyZWVfYV9wcmludGVy
X2RyaXZlcihOVF9QUklOVEVSX0RSSVZFUl9JTkZPX0xFVkVMIGRyaXZlciwgdW5zaWduZWQgaW50
IGxldmVsKTsKQk9PTCBwcmludGVyX2RyaXZlcl9pbl91c2UgKGNoYXIgKmFyY2gsIGNoYXIgKmRy
aXZlcik7CldFUlJPUiBkZWxldGVfcHJpbnRlcl9kcml2ZXIgKE5UX1BSSU5URVJfRFJJVkVSX0lO
Rk9fTEVWRUxfMyAqaSk7CkJPT0wgZ2V0X3NwZWNpZmljX3BhcmFtX2J5X2luZGV4KE5UX1BSSU5U
RVJfSU5GT19MRVZFTCBwcmludGVyLCB1bnNpZ25lZCBpbnQgbGV2ZWwsIHVuc2lnbmVkIGludCBw
YXJhbV9pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnN0cmluZyB2YWx1
ZSwgdW5zaWduZWQgY2hhciAqKmRhdGEsIHVuc2lnbmVkIGludCAqdHlwZSwgdW5zaWduZWQgaW50
ICpsZW4pOwpCT09MIGdldF9zcGVjaWZpY19wYXJhbShOVF9QUklOVEVSX0lORk9fTEVWRUwgcHJp
bnRlciwgdW5zaWduZWQgaW50IGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5n
IHZhbHVlLCB1bnNpZ25lZCBjaGFyICoqZGF0YSwgdW5zaWduZWQgaW50ICp0eXBlLCB1bnNpZ25l
ZCBpbnQgKmxlbik7CldFUlJPUiBudF9wcmludGluZ19zZXRzZWMoY2hhciAqcHJpbnRlcm5hbWUs
IFNFQ19ERVNDX0JVRiAqc2VjZGVzY19jdHIpOwpCT09MIG50X3ByaW50aW5nX2dldHNlYyhUQUxM
T0NfQ1RYICpjdHgsIGNoYXIgKnByaW50ZXJuYW1lLCBTRUNfREVTQ19CVUYgKipzZWNkZXNjX2N0
cik7CnZvaWQgbWFwX3ByaW50ZXJfcGVybWlzc2lvbnMoU0VDX0RFU0MgKnNkKTsKQk9PTCBwcmlu
dF9hY2Nlc3NfY2hlY2soc3RydWN0IGN1cnJlbnRfdXNlciAqdXNlciwgaW50IHNudW0sIGludCBh
Y2Nlc3NfdHlwZSk7CkJPT0wgcHJpbnRfdGltZV9hY2Nlc3NfY2hlY2soaW50IHNudW0pOwpXRVJS
T1IgcHJpbnRlcl93cml0ZV9kZWZhdWx0X2RldihpbnQgc251bSwgY29uc3QgUFJJTlRFUl9ERUZB
VUxUICpwcmludGVyX2RlZmF1bHQpOwoKCgpCT09MIHBjYXBfcHJpbnRlcm5hbWVfb2soY2hhciAq
cHN6UHJpbnRlcm5hbWUsIGNoYXIgKnBzelByaW50Y2FwbmFtZSk7CnZvaWQgcGNhcF9wcmludGVy
X2ZuKHZvaWQgKCpmbikoY2hhciAqLCBjaGFyICopKTsKIyAyNzk1ICJpbmNsdWRlL3Byb3RvLmgi
CnZvaWQgc3lzdl9wcmludGVyX2ZuKHZvaWQgKCpmbikoY2hhciAqLCBjaGFyICopKTsKaW50IHN5
c3ZfcHJpbnRlcm5hbWVfb2soY2hhciAqbmFtZSk7CgoKCmZpbGVzX3N0cnVjdCAqcHJpbnRfZnNw
X29wZW4oY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4pOwp2b2lkIHByaW50X2ZzcF9lbmQoZmlsZXNf
c3RydWN0ICpmc3AsIEJPT0wgbm9ybWFsX2Nsb3NlKTsKCgoKQk9PTCBwcmludF9iYWNrZW5kX2lu
aXQodm9pZCk7CnZvaWQgYnJvYWRjYXN0X3ByaW50ZXJfbm90aWZ5KGNvbnN0IGNoYXIgKnByaW50
ZXJfbmFtZSk7CnZvaWQgc3RhcnRfYmFja2dyb3VuZF9xdWV1ZSh2b2lkKTsKQk9PTCBwcmludF9q
b2JfZXhpc3RzKGludCBqb2JpZCk7CmludCBwcmludF9qb2Jfc251bShpbnQgam9iaWQpOwppbnQg
cHJpbnRfam9iX2ZkKGludCBqb2JpZCk7CmNoYXIgKnByaW50X2pvYl9mbmFtZShpbnQgam9iaWQp
OwpCT09MIHByaW50X2pvYl9zZXRfcGxhY2UoaW50IGpvYmlkLCBpbnQgcGxhY2UpOwpCT09MIHBy
aW50X2pvYl9zZXRfbmFtZShpbnQgam9iaWQsIGNoYXIgKm5hbWUpOwpCT09MIHByaW50X2pvYl9k
ZWxldGUoc3RydWN0IGN1cnJlbnRfdXNlciAqdXNlciwgaW50IGpvYmlkLCBXRVJST1IgKmVycmNv
ZGUpOwpCT09MIHByaW50X2pvYl9wYXVzZShzdHJ1Y3QgY3VycmVudF91c2VyICp1c2VyLCBpbnQg
am9iaWQsIFdFUlJPUiAqZXJyY29kZSk7CkJPT0wgcHJpbnRfam9iX3Jlc3VtZShzdHJ1Y3QgY3Vy
cmVudF91c2VyICp1c2VyLCBpbnQgam9iaWQsIFdFUlJPUiAqZXJyY29kZSk7CmludCBwcmludF9q
b2Jfd3JpdGUoaW50IGpvYmlkLCBjb25zdCBjaGFyICpidWYsIGludCBzaXplKTsKaW50IHByaW50
X3F1ZXVlX2xlbmd0aChpbnQgc251bSwgcHJpbnRfc3RhdHVzX3N0cnVjdCAqcHN0YXR1cyk7Cmlu
dCBwcmludF9qb2Jfc3RhcnQoc3RydWN0IGN1cnJlbnRfdXNlciAqdXNlciwgaW50IHNudW0sIGNo
YXIgKmpvYm5hbWUpOwpCT09MIHByaW50X2pvYl9lbmQoaW50IGpvYmlkLCBCT09MIG5vcm1hbF9j
bG9zZSk7CmludCBwcmludF9xdWV1ZV9zdGF0dXMoaW50IHNudW0sCiAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnRfcXVldWVfc3RydWN0ICoqcXVldWUsCiAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnRfc3RhdHVzX3N0cnVjdCAqc3RhdHVzKTsKaW50IHByaW50X3F1ZXVlX3NudW0oY2hhciAq
cW5hbWUpOwpCT09MIHByaW50X3F1ZXVlX3BhdXNlKHN0cnVjdCBjdXJyZW50X3VzZXIgKnVzZXIs
IGludCBzbnVtLCBXRVJST1IgKmVycmNvZGUpOwpCT09MIHByaW50X3F1ZXVlX3Jlc3VtZShzdHJ1
Y3QgY3VycmVudF91c2VyICp1c2VyLCBpbnQgc251bSwgV0VSUk9SICplcnJjb2RlKTsKQk9PTCBw
cmludF9xdWV1ZV9wdXJnZShzdHJ1Y3QgY3VycmVudF91c2VyICp1c2VyLCBpbnQgc251bSwgV0VS
Uk9SICplcnJjb2RlKTsKCgoKdm9pZCBwcm9maWxlX21lc3NhZ2UoaW50IG1zZ190eXBlLCBwaWRf
dCBzcmMsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CnZvaWQgcmVxcHJvZmlsZV9tZXNzYWdlKGlu
dCBtc2dfdHlwZSwgcGlkX3Qgc3JjLCB2b2lkICpidWYsIHNpemVfdCBsZW4pOwpCT09MIHByb2Zp
bGVfc2V0dXAoQk9PTCByZG9ubHkpOwoKCgpOVFNUQVRVUyBjbGlfbnRfc2V0dXBfY3JlZHMoc3Ry
dWN0IGNsaV9zdGF0ZSAqY2xpLCB1bnNpZ25lZCBjaGFyIG1hY2hfcHdkWzE2XSk7Ck5UU1RBVFVT
IGNsaV9udF9sb2dpbl9pbnRlcmFjdGl2ZShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNoYXIgKmRv
bWFpbiwgY2hhciAqdXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBzbWJfdXNlcmlkX2xvdywgY2hhciAqcGFzc3dvcmQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5FVF9JRF9JTkZPX0NUUiAqY3RyLCBORVRfVVNFUl9JTkZPXzMgKnVzZXJf
aW5mbzMpOwpOVFNUQVRVUyBjbGlfbnRfbG9naW5fbmV0d29yayhzdHJ1Y3QgY2xpX3N0YXRlICpj
bGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhfdXNlcnN1cHBsaWVk
X2luZm8gKnVzZXJfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBjaGFsWzhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
c21iX3VzZXJpZF9sb3csIE5FVF9JRF9JTkZPX0NUUiAqY3RyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBORVRfVVNFUl9JTkZPXzMgKnVzZXJfaW5mbzMpOwpCT09MIGNsaV9udF9sb2dv
ZmYoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBORVRfSURfSU5GT19DVFIgKmN0cik7CgoKCkJPT0wg
Y2xpX25ldF9sb2dvbl9jdHJsMihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIE5UU1RBVFVTIHN0YXR1
c19sZXZlbCk7Ck5UU1RBVFVTIGNsaV9uZXRfYXV0aDIoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCB1
bnNpZ25lZCBzaG9ydCBzZWNfY2hhbiwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgbmVnX2ZsYWdzLCBET01fQ0hBTCAqc3J2X2NoYWwpOwpCT09MIGNsaV9uZXRfcmVxX2NoYWwo
c3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBET01fQ0hBTCAqY2xudF9jaGFsLCBET01fQ0hBTCAqc3J2
X2NoYWwpOwpOVFNUQVRVUyBjbGlfbmV0X3NhbV9sb2dvbihzdHJ1Y3QgY2xpX3N0YXRlICpjbGks
IE5FVF9JRF9JTkZPX0NUUiAqY3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgTkVUX1VTRVJf
SU5GT18zICp1c2VyX2luZm8zKTsKQk9PTCBjbGlfbmV0X3NhbV9sb2dvZmYoc3RydWN0IGNsaV9z
dGF0ZSAqY2xpLCBORVRfSURfSU5GT19DVFIgKmN0cik7CgoKCkJPT0wgcnBjX2FwaV9waXBlX3Jl
cShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIHVuc2lnbmVkIGNoYXIgb3BfbnVtLAogICAgICAgICAg
ICAgICAgICAgICAgcHJzX3N0cnVjdCAqZGF0YSwgcHJzX3N0cnVjdCAqcmRhdGEpOwpCT09MIHJw
Y19waXBlX2JpbmQoc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjb25zdCBjaGFyICpwaXBlX25hbWUs
IGNoYXIgKm15X25hbWUpOwp2b2lkIGNsaV9udF9zZXRfbnRsbXNzcF9mbGdzKHN0cnVjdCBjbGlf
c3RhdGUgKmNsaSwgdW5zaWduZWQgaW50IG50bG1zc3BfZmxncyk7CkJPT0wgY2xpX250X3Nlc3Np
b25fb3BlbihzdHJ1Y3QgY2xpX3N0YXRlICpjbGksIGNvbnN0IGNoYXIgKnBpcGVfbmFtZSk7CnZv
aWQgY2xpX250X3Nlc3Npb25fY2xvc2Uoc3RydWN0IGNsaV9zdGF0ZSAqY2xpKTsKCgoKQk9PTCBz
cG9vbHNzX2Rpc2Nvbm5lY3RfZnJvbV9jbGllbnQoIHN0cnVjdCBjbGlfc3RhdGUgKmNsaSk7CkJP
T0wgc3Bvb2xzc19jb25uZWN0X3RvX2NsaWVudCggc3RydWN0IGNsaV9zdGF0ZSAqY2xpLCBjaGFy
ICpyZW1vdGVfbWFjaGluZSk7CkJPT0wgY2xpX3Nwb29sc3NfcmVwbHlfb3Blbl9wcmludGVyKHN0
cnVjdCBjbGlfc3RhdGUgKmNsaSwgY2hhciAqcHJpbnRlciwgdW5zaWduZWQgaW50IGxvY2FscHJp
bnRlciwgdW5zaWduZWQgaW50IHR5cGUsIFdFUlJPUiAqc3RhdHVzLCBQT0xJQ1lfSE5EICpoYW5k
bGUpOwpCT09MIGNsaV9zcG9vbHNzX3JlcGx5X3JycGNuKHN0cnVjdCBjbGlfc3RhdGUgKmNsaSwg
UE9MSUNZX0hORCAqaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBjaGFuZ2VfbG93LCB1bnNpZ25lZCBpbnQgY2hhbmdlX2hpZ2gsIFdFUlJPUiAqc3RhdHVz
KTsKQk9PTCBjbGlfc3Bvb2xzc19yZXBseV9jbG9zZV9wcmludGVyKHN0cnVjdCBjbGlfc3RhdGUg
KmNsaSwgUE9MSUNZX0hORCAqaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VSUk9SICpzdGF0dXMpOwoKCgpOVFNUQVRVUyBjaGFuZ2VfdHJ1c3RfYWNjb3VudF9w
YXNzd29yZCggY2hhciAqZG9tYWluLCBjaGFyICpyZW1vdGVfbWFjaGluZV9saXN0KTsKCgoKdm9p
ZCBpbml0X2Rmc19xX2Rmc19leGlzdChERlNfUV9ERlNfRVhJU1QgKnFfZCk7CkJPT0wgZGZzX2lv
X3FfZGZzX2V4aXN0KGNoYXIgKmRlc2MsIERGU19RX0RGU19FWElTVCAqcV9kLCBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKQk9PTCBkZnNfaW9fcl9kZnNfZXhpc3QoY2hhciAqZGVzYywgREZT
X1JfREZTX0VYSVNUICpxX2QsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGluaXRf
ZGZzX3FfZGZzX3JlbW92ZShERlNfUV9ERlNfUkVNT1ZFICpxX2QsIGNoYXIgKmVudHJ5cGF0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc2VydmVybmFtZSwgY2hhciAqc2hhcmVu
YW1lKTsKQk9PTCBkZnNfaW9fcV9kZnNfcmVtb3ZlKGNoYXIgKmRlc2MsIERGU19RX0RGU19SRU1P
VkUgKnFfZCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgZGZzX2lvX3JfZGZzX3Jl
bW92ZShjaGFyICpkZXNjLCBERlNfUl9ERlNfUkVNT1ZFICpyX2QsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIGluaXRfZGZzX3FfZGZzX2FkZChERlNfUV9ERlNfQUREICpxX2QsIGNo
YXIgKmVudHJ5cGF0aCwgY2hhciAqc2VydmVybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhciAqc2hhcmVuYW1lLCBjaGFyICpjb21tZW50LCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwpCT09M
IGRmc19pb19xX2Rmc19hZGQoY2hhciAqZGVzYywgREZTX1FfREZTX0FERCAqcV9kLCBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBkZnNfaW9fcl9kZnNfYWRkKGNoYXIgKmRlc2MsIERG
U19SX0RGU19BREQgKnJfZCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgaW5pdF9k
ZnNfcV9kZnNfZ2V0X2luZm8oREZTX1FfREZTX0dFVF9JTkZPICpxX2QsIGNoYXIgKmVudHJ5cGF0
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzZXJ2ZXJuYW1lLCBjaGFyICpz
aGFyZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGluZm9f
bGV2ZWwpOwpCT09MIGRmc19pb19xX2Rmc19nZXRfaW5mbyhjaGFyKiBkZXNjLCBERlNfUV9ERlNf
R0VUX0lORk8qIHFfaSwgcHJzX3N0cnVjdCogcHMsIGludCBkZXB0aCk7CkJPT0wgZGZzX2lvX3Jf
ZGZzX2dldF9pbmZvKGNoYXIqIGRlc2MsIERGU19SX0RGU19HRVRfSU5GTyogcl9pLCBwcnNfc3Ry
dWN0KiBwcywgaW50IGRlcHRoKTsKQk9PTCBpbml0X2Rmc19xX2Rmc19lbnVtKERGU19RX0RGU19F
TlVNICpxX2QsIHVuc2lnbmVkIGludCBsZXZlbCwgREZTX0lORk9fQ1RSICpjdHIpOwpCT09MIGRm
c19pb19xX2Rmc19lbnVtKGNoYXIgKmRlc2MsIERGU19RX0RGU19FTlVNICpxX2QsIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGRmc19pb19kZnNfaW5mb19jdHIoY2hhciogZGVzYywg
REZTX0lORk9fQ1RSKiBjdHIsIHVuc2lnbmVkIGludCBudW1fZW50cmllcywgdW5zaWduZWQgaW50
IGxldmVsLCBwcnNfc3RydWN0KiBwcywgaW50IGRlcHRoKTsKQk9PTCBkZnNfaW9fcl9kZnNfZW51
bShjaGFyICpkZXNjLCBERlNfUl9ERlNfRU5VTSAqcV9kLCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBkZnNfaW9fZGZzX3N0b3JhZ2VfaW5mbyhjaGFyICpkZXNjLCBERlNfSU5GT18z
KiBpbmZvMywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CgoKCnZvaWQgaW5pdF9sc2FfdHJh
bnNfbmFtZShMU0FfVFJBTlNfTkFNRSAqdHJuLCBVTklTVFIyICp1bmlfbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHNpZF9uYW1lX3VzZSwgY2hhciAqbmFtZSwg
dW5zaWduZWQgaW50IGlkeCk7CnZvaWQgaW5pdF9sc2Ffc2VjX3FvcyhMU0FfU0VDX1FPUyAqcW9z
LCB1bnNpZ25lZCBzaG9ydCBpbXBfbGV2LCB1bnNpZ25lZCBjaGFyIGN0eHQsIHVuc2lnbmVkIGNo
YXIgZWZmKTsKdm9pZCBpbml0X2xzYV9vYmpfYXR0cihMU0FfT0JKX0FUVFIgKmF0dHIsIHVuc2ln
bmVkIGludCBhdHRyaWJ1dGVzLCBMU0FfU0VDX1FPUyAqcW9zKTsKdm9pZCBpbml0X3Ffb3Blbl9w
b2woTFNBX1FfT1BFTl9QT0wgKnJfcSwgdW5zaWduZWQgc2hvcnQgc3lzdGVtX25hbWUsCiAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBhdHRyaWJ1dGVzLCB1bnNpZ25lZCBpbnQgZGVz
aXJlZF9hY2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgIExTQV9TRUNfUU9TICpxb3MpOwpCT09M
IGxzYV9pb19xX29wZW5fcG9sKGNoYXIgKmRlc2MsIExTQV9RX09QRU5fUE9MICpyX3EsIHByc19z
dHJ1Y3QgKnBzLAogICAgICAgICAgICAgICAgICAgICAgIGludCBkZXB0aCk7CkJPT0wgbHNhX2lv
X3Jfb3Blbl9wb2woY2hhciAqZGVzYywgTFNBX1JfT1BFTl9QT0wgKnJfcCwgcHJzX3N0cnVjdCAq
cHMsCiAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlcHRoKTsKdm9pZCBpbml0X3Ffb3Blbl9w
b2wyKExTQV9RX09QRU5fUE9MMiAqcl9xLCBjaGFyICpzZXJ2ZXJfbmFtZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGF0dHJpYnV0ZXMsIHVuc2lnbmVkIGludCBkZXNpcmVk
X2FjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgTFNBX1NFQ19RT1MgKnFvcyk7CkJPT0wg
bHNhX2lvX3Ffb3Blbl9wb2wyKGNoYXIgKmRlc2MsIExTQV9RX09QRU5fUE9MMiAqcl9xLCBwcnNf
c3RydWN0ICpwcywKICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlcHRoKTsKQk9PTCBsc2Ff
aW9fcl9vcGVuX3BvbDIoY2hhciAqZGVzYywgTFNBX1JfT1BFTl9QT0wyICpyX3AsIHByc19zdHJ1
Y3QgKnBzLAogICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcV9x
dWVyeV9zZWNfb2JqKExTQV9RX1FVRVJZX1NFQ19PQkogKnFfcSwgY29uc3QgUE9MSUNZX0hORCAq
aG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzZWNfaW5mbyk7CkJP
T0wgbHNhX2lvX3FfcXVlcnlfc2VjX29iaihjaGFyICpkZXNjLCBMU0FfUV9RVUVSWV9TRUNfT0JK
ICpxX3EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBsc2FfaW9fcl9xdWVyeV9zZWNfb2JqKGNoYXIgKmRlc2MsIExTQV9SX1FVRVJZ
X1NFQ19PQkogKnJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBz
LCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcV9xdWVyeShMU0FfUV9RVUVSWV9JTkZPICpxX3EsIFBP
TElDWV9ITkQgKmhuZCwgdW5zaWduZWQgc2hvcnQgaW5mb19jbGFzcyk7CkJPT0wgbHNhX2lvX3Ff
cXVlcnkoY2hhciAqZGVzYywgTFNBX1FfUVVFUllfSU5GTyAqcV9xLCBwcnNfc3RydWN0ICpwcywK
ICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgpOwpCT09MIGluaXRfcV9lbnVtX3RydXN0X2Rv
bShMU0FfUV9FTlVNX1RSVVNUX0RPTSAqIHFfZSwgUE9MSUNZX0hORCAqcG9sLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZW51bV9jb250ZXh0LCB1bnNpZ25lZCBpbnQg
cHJlZmVycmVkX2xlbik7CkJPT0wgbHNhX2lvX3FfZW51bV90cnVzdF9kb20oY2hhciAqZGVzYywg
TFNBX1FfRU5VTV9UUlVTVF9ET00gKnFfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3JfZW51bV90cnVzdF9kb20oVEFM
TE9DX0NUWCAqY3R4LCBMU0FfUl9FTlVNX1RSVVNUX0RPTSAqcl9lLCB1bnNpZ25lZCBpbnQgZW51
bV9jb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkb21haW5fbmFtZSwg
RE9NX1NJRCAqZG9tYWluX3NpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRTVEFUVVMg
c3RhdHVzKTsKQk9PTCBsc2FfaW9fcl9lbnVtX3RydXN0X2RvbShjaGFyICpkZXNjLCBMU0FfUl9F
TlVNX1RSVVNUX0RPTSAqcl9lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19kb21fcXVlcnlfNShjaGFyICpkZXNjLCBE
T01fUVVFUllfNSAqZF9xLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBsc2FfaW9f
cl9xdWVyeShjaGFyICpkZXNjLCBMU0FfUl9RVUVSWV9JTkZPICpyX3EsIHByc19zdHJ1Y3QgKnBz
LAogICAgICAgICAgICAgICAgICAgIGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2Ffc2lkX2VudW0o
VEFMTE9DX0NUWCAqbWVtX2N0eCwgTFNBX1NJRF9FTlVNICpzZW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgaW50IG51bV9lbnRyaWVzLCBET01fU0lEICpzaWRzKTsKdm9pZCBpbml0X3FfbG9va3Vw
X3NpZHMoVEFMTE9DX0NUWCAqbWVtX2N0eCwgTFNBX1FfTE9PS1VQX1NJRFMgKnFfbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqaG5kLCBpbnQgbnVtX3NpZHMsIERPTV9TSUQg
KnNpZHMsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGxldmVsKTsKQk9P
TCBsc2FfaW9fcV9sb29rdXBfc2lkcyhjaGFyICpkZXNjLCBMU0FfUV9MT09LVVBfU0lEUyAqcV9z
LCBwcnNfc3RydWN0ICpwcywKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgpOwpC
T09MIGxzYV9pb19yX2xvb2t1cF9zaWRzKGNoYXIgKmRlc2MsIExTQV9SX0xPT0tVUF9TSURTICpy
X3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9xX2xvb2t1cF9uYW1lcyhUQUxMT0NfQ1RYICptZW1fY3R4LCBMU0FfUV9MT09L
VVBfTkFNRVMgKnFfbCwKICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKmhuZCwg
aW50IG51bV9uYW1lcywgY29uc3QgY2hhciAqKm5hbWVzKTsKQk9PTCBsc2FfaW9fcV9sb29rdXBf
bmFtZXMoY2hhciAqZGVzYywgTFNBX1FfTE9PS1VQX05BTUVTICpxX3IsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19yX2xv
b2t1cF9uYW1lcyhjaGFyICpkZXNjLCBMU0FfUl9MT09LVVBfTkFNRVMgKnJfciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9s
c2FfcV9jbG9zZShMU0FfUV9DTE9TRSAqcV9jLCBQT0xJQ1lfSE5EICpobmQpOwpCT09MIGxzYV9p
b19xX2Nsb3NlKGNoYXIgKmRlc2MsIExTQV9RX0NMT1NFICpxX2MsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIGxzYV9pb19yX2Nsb3NlKGNoYXIgKmRlc2MsIExTQV9SX0NMT1NFICpy
X2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19xX29wZW5fc2VjcmV0
KGNoYXIgKmRlc2MsIExTQV9RX09QRU5fU0VDUkVUICpxX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQg
ZGVwdGgpOwpCT09MIGxzYV9pb19yX29wZW5fc2VjcmV0KGNoYXIgKmRlc2MsIExTQV9SX09QRU5f
U0VDUkVUICpyX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcV9lbnVt
X3ByaXZzKExTQV9RX0VOVU1fUFJJVlMgKnFfcSwgUE9MSUNZX0hORCAqaG5kLCB1bnNpZ25lZCBp
bnQgZW51bV9jb250ZXh0LCB1bnNpZ25lZCBpbnQgcHJlZl9tYXhfbGVuZ3RoKTsKQk9PTCBsc2Ff
aW9fcV9lbnVtX3ByaXZzKGNoYXIgKmRlc2MsIExTQV9RX0VOVU1fUFJJVlMgKnFfcSwgcHJzX3N0
cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2Ffcl9lbnVtX3ByaXZzKExTQV9SX0VO
VU1fUFJJVlMgKnJfdSwgdW5zaWduZWQgaW50IGVudW1fY29udGV4dCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQsIExTQV9QUklWX0VOVFJZICplbnRyaWVzKTsK
Qk9PTCBsc2FfaW9fcl9lbnVtX3ByaXZzKGNoYXIgKmRlc2MsIExTQV9SX0VOVU1fUFJJVlMgKnJf
cSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2FfcHJpdl9nZXRfZGlz
cG5hbWUoTFNBX1FfUFJJVl9HRVRfRElTUE5BTUUgKnRybiwgUE9MSUNZX0hORCAqaG5kLCBjaGFy
ICpuYW1lLCB1bnNpZ25lZCBzaG9ydCBsYW5nX2lkLCB1bnNpZ25lZCBzaG9ydCBsYW5nX2lkX3N5
cyk7CkJPT0wgbHNhX2lvX3FfcHJpdl9nZXRfZGlzcG5hbWUoY2hhciAqZGVzYywgTFNBX1FfUFJJ
Vl9HRVRfRElTUE5BTUUgKnFfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbHNh
X2lvX3JfcHJpdl9nZXRfZGlzcG5hbWUoY2hhciAqZGVzYywgTFNBX1JfUFJJVl9HRVRfRElTUE5B
TUUgKnJfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2FfcV9lbnVt
X2FjY291bnRzKExTQV9RX0VOVU1fQUNDT1VOVFMgKnRybiwgUE9MSUNZX0hORCAqaG5kLCB1bnNp
Z25lZCBpbnQgZW51bV9jb250ZXh0LCB1bnNpZ25lZCBpbnQgcHJlZl9tYXhfbGVuZ3RoKTsKQk9P
TCBsc2FfaW9fcV9lbnVtX2FjY291bnRzKGNoYXIgKmRlc2MsIExTQV9RX0VOVU1fQUNDT1VOVFMg
KnFfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2Ffcl9lbnVtX2Fj
Y291bnRzKExTQV9SX0VOVU1fQUNDT1VOVFMgKnJfdSwgdW5zaWduZWQgaW50IGVudW1fY29udGV4
dCk7CkJPT0wgbHNhX2lvX3JfZW51bV9hY2NvdW50cyhjaGFyICpkZXNjLCBMU0FfUl9FTlVNX0FD
Q09VTlRTICpyX3EsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19xX3Vu
a19nZXRfY29ubnVzZXIoY2hhciAqZGVzYywgTFNBX1FfVU5LX0dFVF9DT05OVVNFUiAqcV9jLCBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBsc2FfaW9fcl91bmtfZ2V0X2Nvbm51c2Vy
KGNoYXIgKmRlc2MsIExTQV9SX1VOS19HRVRfQ09OTlVTRVIgKnJfYywgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CnZvaWQgaW5pdF9sc2FfcV9vcGVuX2FjY291bnQoTFNBX1FfT1BFTkFDQ09V
TlQgKnRybiwgUE9MSUNZX0hORCAqaG5kLCBET01fU0lEICpzaWQsIHVuc2lnbmVkIGludCBkZXNp
cmVkX2FjY2Vzcyk7CkJPT0wgbHNhX2lvX3Ffb3Blbl9hY2NvdW50KGNoYXIgKmRlc2MsIExTQV9R
X09QRU5BQ0NPVU5UICpyX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9p
b19yX29wZW5fYWNjb3VudChjaGFyICpkZXNjLCBMU0FfUl9PUEVOQUNDT1VOVCAqcl9jLCBwcnNf
c3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X2xzYV9xX2VudW1fcHJpdnNhY2NvdW50
KExTQV9RX0VOVU1QUklWU0FDQ09VTlQgKnRybiwgUE9MSUNZX0hORCAqaG5kKTsKQk9PTCBsc2Ff
aW9fcV9lbnVtX3ByaXZzYWNjb3VudChjaGFyICpkZXNjLCBMU0FfUV9FTlVNUFJJVlNBQ0NPVU5U
ICpyX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19sdWlkKGNoYXIg
KmRlc2MsIExVSUQgKnJfYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbHNhX2lv
X2x1aWRfYXR0cihjaGFyICpkZXNjLCBMVUlEX0FUVFIgKnJfYywgcHJzX3N0cnVjdCAqcHMsIGlu
dCBkZXB0aCk7CkJPT0wgbHNhX2lvX3ByaXZpbGVnZV9zZXQoY2hhciAqZGVzYywgUFJJVklMRUdF
X1NFVCAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X2xzYV9yX2Vu
dW1fcHJpdnNhY2NvdW50KExTQV9SX0VOVU1QUklWU0FDQ09VTlQgKnJfdSwgTFVJRF9BVFRSICpz
ZXQsIHVuc2lnbmVkIGludCBjb3VudCwgdW5zaWduZWQgaW50IGNvbnRyb2wpOwpCT09MIGxzYV9p
b19yX2VudW1fcHJpdnNhY2NvdW50KGNoYXIgKmRlc2MsIExTQV9SX0VOVU1QUklWU0FDQ09VTlQg
KnJfYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbHNhX2lvX3FfZ2V0c3lzdGVt
YWNjb3VudChjaGFyICpkZXNjLCBMU0FfUV9HRVRTWVNURU1BQ0NPVU5UICpyX2MsIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIGxzYV9pb19yX2dldHN5c3RlbWFjY291bnQoY2hhciAq
ZGVzYywgTFNBX1JfR0VUU1lTVEVNQUNDT1VOVCAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBsc2FfaW9fcV9zZXRzeXN0ZW1hY2NvdW50KGNoYXIgKmRlc2MsIExTQV9RX1NF
VFNZU1RFTUFDQ09VTlQgKnJfYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbHNh
X2lvX3Jfc2V0c3lzdGVtYWNjb3VudChjaGFyICpkZXNjLCBMU0FfUl9TRVRTWVNURU1BQ0NPVU5U
ICpyX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfbHNhX3FfbG9va3Vw
cHJpdnZhbHVlKExTQV9RX0xPT0tVUFBSSVZWQUxVRSAqdHJuLCBQT0xJQ1lfSE5EICpobmQsIGNo
YXIgKm5hbWUpOwpCT09MIGxzYV9pb19xX2xvb2t1cHByaXZ2YWx1ZShjaGFyICpkZXNjLCBMU0Ff
UV9MT09LVVBQUklWVkFMVUUgKnJfYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wg
bHNhX2lvX3JfbG9va3VwcHJpdnZhbHVlKGNoYXIgKmRlc2MsIExTQV9SX0xPT0tVUFBSSVZWQUxV
RSAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBsc2FfaW9fcV9hZGRwcml2
cyhjaGFyICpkZXNjLCBMU0FfUV9BRERQUklWUyAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBsc2FfaW9fcl9hZGRwcml2cyhjaGFyICpkZXNjLCBMU0FfUl9BRERQUklWUyAq
cl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBsc2FfaW9fcV9yZW1vdmVwcml2
cyhjaGFyICpkZXNjLCBMU0FfUV9SRU1PVkVQUklWUyAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBsc2FfaW9fcl9yZW1vdmVwcml2cyhjaGFyICpkZXNjLCBMU0FfUl9SRU1P
VkVQUklWUyAqcl9jLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKCgoKVEFMTE9DX0NUWCAq
Z2V0X2N1cnJlbnRfcnBjX3RhbGxvYyh2b2lkKTsKdm9pZCBzZXRfY3VycmVudF9ycGNfdGFsbG9j
KCBUQUxMT0NfQ1RYICpjdHgpOwp2b2lkIG1haW5fbG9vcF90YWxsb2NfZnJlZSh2b2lkKTsKVEFM
TE9DX0NUWCAqbWFpbl9sb29wX3RhbGxvY19nZXQodm9pZCk7ClRBTExPQ19DVFggKmdldF90YWxs
b2NfY3R4KHZvaWQpOwpCT09MIHNtYl9pb190aW1lKGNoYXIgKmRlc2MsIE5UVElNRSAqbnR0aW1l
LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fbG9va3VwX2xldmVsKGNo
YXIgKmRlc2MsIExPT0tVUF9MRVZFTCAqbGV2ZWwsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
Owp1bnNpZ25lZCBpbnQgZ2V0X2VudW1faG5kKEVOVU1fSE5EICplbmgpOwp2b2lkIGluaXRfZW51
bV9obmQoRU5VTV9ITkQgKmVuaCwgdW5zaWduZWQgaW50IGhuZCk7CkJPT0wgc21iX2lvX2VudW1f
aG5kKGNoYXIgKmRlc2MsIEVOVU1fSE5EICpobmQsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
OwpCT09MIHNtYl9pb19kb21fc2lkKGNoYXIgKmRlc2MsIERPTV9TSUQgKnNpZCwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9kb21fc2lkKERPTV9TSUQgKnNpZCwgY2hhciAq
c3RyX3NpZCk7CnZvaWQgaW5pdF9kb21fc2lkMihET01fU0lEMiAqc2lkMiwgY29uc3QgRE9NX1NJ
RCAqc2lkKTsKQk9PTCBzbWJfaW9fZG9tX3NpZDIoY2hhciAqZGVzYywgRE9NX1NJRDIgKnNpZCwg
cHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zdHJfaGRyKFNUUkhEUiAqaGRy
LCBpbnQgbWF4X2xlbiwgaW50IGxlbiwgdW5zaWduZWQgaW50IGJ1ZmZlcik7CkJPT0wgc21iX2lv
X3N0cmhkcihjaGFyICpkZXNjLCBTVFJIRFIgKmhkciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCk7CnZvaWQgaW5pdF91bmlfaGRyKFVOSUhEUiAqaGRyLCBpbnQgbGVuKTsKQk9PTCBzbWJfaW9f
dW5paGRyKGNoYXIgKmRlc2MsIFVOSUhEUiAqaGRyLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKdm9pZCBpbml0X2J1Zl9oZHIoQlVGSERSICpoZHIsIGludCBtYXhfbGVuLCBpbnQgbGVuKTsK
Qk9PTCBzbWJfaW9faGRyYnVmX3ByZShjaGFyICpkZXNjLCBCVUZIRFIgKmhkciwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCwgdW5zaWduZWQgaW50ICpvZmZzZXQpOwpCT09MIHNtYl9pb19oZHJi
dWZfcG9zdChjaGFyICpkZXNjLCBCVUZIRFIgKmhkciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX2hkcmJ1
ZiwgdW5zaWduZWQgaW50IG1heF9sZW4sIHVuc2lnbmVkIGludCBsZW4pOwpCT09MIHNtYl9pb19o
ZHJidWYoY2hhciAqZGVzYywgQlVGSERSICpoZHIsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
Owp2b2lkIGluaXRfdW5pX2hkcjIoVU5JSERSMiAqaGRyLCBpbnQgbGVuKTsKQk9PTCBzbWJfaW9f
dW5paGRyMihjaGFyICpkZXNjLCBVTklIRFIyICpoZHIyLCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKdm9pZCBpbml0X3VuaXN0cihVTklTVFIgKnN0ciwgY29uc3QgY2hhciAqYnVmKTsKQk9P
TCBzbWJfaW9fdW5pc3RyKGNoYXIgKmRlc2MsIFVOSVNUUiAqdW5pLCBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKdm9pZCBpbml0X2J1ZmZlcjNfdWludDMyKEJVRkZFUjMgKnN0ciwgdW5zaWdu
ZWQgaW50IHZhbCk7CnZvaWQgaW5pdF9idWZmZXIzX3N0cihCVUZGRVIzICpzdHIsIGNoYXIgKmJ1
ZiwgaW50IGxlbik7CnZvaWQgaW5pdF9idWZmZXIzX2hleChCVUZGRVIzICpzdHIsIGNoYXIgKmJ1
Zik7CnZvaWQgaW5pdF9idWZmZXIzX2J5dGVzKEJVRkZFUjMgKnN0ciwgdW5zaWduZWQgY2hhciAq
YnVmLCBpbnQgbGVuKTsKQk9PTCBzbWJfaW9fYnVmZmVyMyhjaGFyICpkZXNjLCBCVUZGRVIzICpi
dWYzLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fYnVmZmVyNShjaGFy
ICpkZXNjLCBCVUZGRVI1ICpidWY1LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X2J1ZmZlcjIoQlVGRkVSMiAqc3RyLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pOwpC
T09MIHNtYl9pb19idWZmZXIyKGNoYXIgKmRlc2MsIEJVRkZFUjIgKmJ1ZjIsIHVuc2lnbmVkIGlu
dCBidWZmZXIsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfYnVmX3VuaXN0
cjIoVU5JU1RSMiAqc3RyLCB1bnNpZ25lZCBpbnQgKnB0ciwgY29uc3QgY2hhciAqYnVmKTsKdm9p
ZCBjb3B5X3VuaXN0cjIoVU5JU1RSMiAqc3RyLCBjb25zdCBVTklTVFIyICpmcm9tKTsKdm9pZCBp
bml0X3N0cmluZzIoU1RSSU5HMiAqc3RyLCBjb25zdCBjaGFyICpidWYsIGludCBtYXhfbGVuLCBp
bnQgc3RyX2xlbik7CkJPT0wgc21iX2lvX3N0cmluZzIoY2hhciAqZGVzYywgU1RSSU5HMiAqc3Ry
MiwgdW5zaWduZWQgaW50IGJ1ZmZlciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQg
aW5pdF91bmlzdHIyKFVOSVNUUjIgKnN0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKTsK
dm9pZCBpbml0X3VuaXN0cjJfZnJvbV91bmlzdHIgKFVOSVNUUjIgKnRvLCBVTklTVFIgKmZyb20p
OwpCT09MIHNtYl9pb191bmlzdHIyKGNoYXIgKmRlc2MsIFVOSVNUUjIgKnVuaTIsIHVuc2lnbmVk
IGludCBidWZmZXIsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfZG9tX3Jp
ZDIoRE9NX1JJRDIgKnJpZDIsIHVuc2lnbmVkIGludCByaWQsIHVuc2lnbmVkIGNoYXIgdHlwZSwg
dW5zaWduZWQgaW50IGlkeCk7CkJPT0wgc21iX2lvX2RvbV9yaWQyKGNoYXIgKmRlc2MsIERPTV9S
SUQyICpyaWQyLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X2RvbV9yaWQz
KERPTV9SSUQzICpyaWQzLCB1bnNpZ25lZCBpbnQgcmlkLCB1bnNpZ25lZCBjaGFyIHR5cGUpOwpC
T09MIHNtYl9pb19kb21fcmlkMyhjaGFyICpkZXNjLCBET01fUklEMyAqcmlkMywgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9kb21fcmlkNChET01fUklENCAqcmlkNCwgdW5z
aWduZWQgc2hvcnQgdW5rbm93biwgdW5zaWduZWQgc2hvcnQgYXR0ciwgdW5zaWduZWQgaW50IHJp
ZCk7CnZvaWQgaW5pdF9sb2dfaW5mbyhET01fTE9HX0lORk8gKmxvZywgY2hhciAqbG9nb25fc3J2
LCBjaGFyICphY2N0X25hbWUsCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZWNfY2hh
biwgY2hhciAqY29tcF9uYW1lKTsKQk9PTCBzbWJfaW9fbG9nX2luZm8oY2hhciAqZGVzYywgRE9N
X0xPR19JTkZPICpsb2csIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19j
aGFsKGNoYXIgKmRlc2MsIERPTV9DSEFMICpjaGFsLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKQk9PTCBzbWJfaW9fY3JlZChjaGFyICpkZXNjLCBET01fQ1JFRCAqY3JlZCwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9jbG50X2luZm8yKERPTV9DTE5UX0lORk8yICpj
bG50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmxvZ29uX3NydiwgY2hh
ciAqY29tcF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9DUkVEICpj
bG50X2NyZWQpOwpCT09MIHNtYl9pb19jbG50X2luZm8yKGNoYXIgKmRlc2MsIERPTV9DTE5UX0lO
Rk8yICpjbG50LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X2NsbnRfaW5m
byhET01fQ0xOVF9JTkZPICpjbG50LAogICAgICAgICAgICAgICAgY2hhciAqbG9nb25fc3J2LCBj
aGFyICphY2N0X25hbWUsCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZWNfY2hhbiwg
Y2hhciAqY29tcF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9DUkVE
ICpjcmVkKTsKQk9PTCBzbWJfaW9fY2xudF9pbmZvKGNoYXIgKmRlc2MsIERPTV9DTE5UX0lORk8g
KmNsbnQsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfbG9nb25faWQoRE9N
X0xPR09OX0lEICpsb2csIHVuc2lnbmVkIGludCBsb2dfaWRfbG93LCB1bnNpZ25lZCBpbnQgbG9n
X2lkX2hpZ2gpOwpCT09MIHNtYl9pb19sb2dvbl9pZChjaGFyICpkZXNjLCBET01fTE9HT05fSUQg
KmxvZywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9vd2ZfaW5mbyhPV0Zf
SU5GTyAqaGFzaCwgdW5zaWduZWQgY2hhciBkYXRhWzE2XSk7CkJPT0wgc21iX2lvX293Zl9pbmZv
KGNoYXIgKmRlc2MsIE9XRl9JTkZPICpoYXNoLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
Qk9PTCBzbWJfaW9fZ2lkKGNoYXIgKmRlc2MsIERPTV9HSUQgKmdpZCwgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CkJPT0wgc21iX2lvX3BvbF9obmQoY2hhciAqZGVzYywgUE9MSUNZX0hORCAq
cG9sLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3VuaXN0cjMoVU5JU1RS
MyAqc3RyLCBjb25zdCBjaGFyICpidWYpOwpCT09MIHNtYl9pb191bmlzdHIzKGNoYXIgKmRlc2Ms
IFVOSVNUUjMgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHByc191aW50
NjQoY2hhciAqbmFtZSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCwgVUlOVDY0X1MgKmRhdGE2
NCk7CkJPT0wgc21iX2lvX2J1ZmhkcjIoY2hhciAqZGVzYywgQlVGSERSMiAqaGRyLCBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fYnVmZmVyNChjaGFyICpkZXNjLCBCVUZG
RVI0ICpidWY0LCB1bnNpZ25lZCBpbnQgYnVmZmVyLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKQk9PTCBtYWtlX3VuaV9oZHIoVU5JSERSICpoZHIsIGludCBsZW4pOwpCT09MIG1ha2VfYnVm
aGRyMihCVUZIRFIyICpoZHIsIHVuc2lnbmVkIGludCBpbmZvX2xldmVsLCB1bnNpZ25lZCBpbnQg
bGVuZ3RoLCB1bnNpZ25lZCBpbnQgYnVmZmVyKTsKCgoKQk9PTCBuZXRfaW9fcV9sb2dvbl9jdHJs
MihjaGFyICpkZXNjLCBORVRfUV9MT0dPTl9DVFJMMiAqcV9sLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKdm9pZCBpbml0X25ldF9xX2xvZ29uX2N0cmwyKE5FVF9RX0xPR09OX0NUUkwyICpx
X2wsIGNoYXIgKnNydl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IHF1ZXJ5X2xldmVsKTsKdm9pZCBpbml0X25ldF9yX2xvZ29uX2N0cmwyKE5FVF9SX0xPR09O
X0NUUkwyICpyX2wsIHVuc2lnbmVkIGludCBxdWVyeV9sZXZlbCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IHBkY19zdGF0dXMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbG9nb25fYXR0ZW1wdHMsIHVu
c2lnbmVkIGludCB0Y19zdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICp0
cnVzdGVkX2RvbWFpbl9uYW1lKTsKQk9PTCBuZXRfaW9fcl9sb2dvbl9jdHJsMihjaGFyICpkZXNj
LCBORVRfUl9MT0dPTl9DVFJMMiAqcl9sLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9P
TCBuZXRfaW9fcV9sb2dvbl9jdHJsKGNoYXIgKmRlc2MsIE5FVF9RX0xPR09OX0NUUkwgKnFfbCwg
cHJzX3N0cnVjdCAqcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgpOwp2b2lk
IGluaXRfbmV0X3FfbG9nb25fY3RybChORVRfUV9MT0dPTl9DVFJMICpxX2wsIGNoYXIgKnNydl9u
YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcXVlcnlfbGV2ZWwp
Owp2b2lkIGluaXRfbmV0X3JfbG9nb25fY3RybChORVRfUl9MT0dPTl9DVFJMICpyX2wsIHVuc2ln
bmVkIGludCBxdWVyeV9sZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGZsYWdzLCB1bnNpZ25lZCBpbnQgcGRjX3N0YXR1cyk7CkJPT0wgbmV0X2lvX3JfbG9nb25f
Y3RybChjaGFyICpkZXNjLCBORVRfUl9MT0dPTl9DVFJMICpyX2wsIHByc19zdHJ1Y3QgKnBzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlcHRoKTsKdm9pZCBpbml0X3JfdHJ1c3RfZG9t
KE5FVF9SX1RSVVNUX0RPTV9MSVNUICpyX3QsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBudW1fZG9tcywgY2hhciAqZG9tX25hbWUpOwpCT09MIG5ldF9pb19yX3RydXN0X2Rv
bShjaGFyICpkZXNjLCBORVRfUl9UUlVTVF9ET01fTElTVCAqcl90LCBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKQk9PTCBuZXRfaW9fcV90cnVzdF9kb20oY2hhciAqZGVzYywgTkVUX1FfVFJV
U1RfRE9NX0xJU1QgKnFfbCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9x
X3JlcV9jaGFsKE5FVF9RX1JFUV9DSEFMICpxX2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhciAqbG9nb25fc3J2LCBjaGFyICpsb2dvbl9jbG50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERPTV9DSEFMICpjbG50X2NoYWwpOwpCT09MIG5ldF9pb19xX3JlcV9j
aGFsKGNoYXIgKmRlc2MsIE5FVF9RX1JFUV9DSEFMICpxX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQg
ZGVwdGgpOwpCT09MIG5ldF9pb19yX3JlcV9jaGFsKGNoYXIgKmRlc2MsIE5FVF9SX1JFUV9DSEFM
ICpyX2MsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIG5ldF9pb19xX2F1dGgoY2hh
ciAqZGVzYywgTkVUX1FfQVVUSCAqcV9hLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9P
TCBuZXRfaW9fcl9hdXRoKGNoYXIgKmRlc2MsIE5FVF9SX0FVVEggKnJfYSwgcHJzX3N0cnVjdCAq
cHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9xX2F1dGhfMihORVRfUV9BVVRIXzIgKnFfYSwKICAg
ICAgICAgICAgICAgIGNoYXIgKmxvZ29uX3NydiwgY2hhciAqYWNjdF9uYW1lLCB1bnNpZ25lZCBz
aG9ydCBzZWNfY2hhbiwgY2hhciAqY29tcF9uYW1lLAogICAgICAgICAgICAgICAgRE9NX0NIQUwg
KmNsbnRfY2hhbCwgdW5zaWduZWQgaW50IGNsbnRfZmxncyk7CkJPT0wgbmV0X2lvX3FfYXV0aF8y
KGNoYXIgKmRlc2MsIE5FVF9RX0FVVEhfMiAqcV9hLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKQk9PTCBuZXRfaW9fcl9hdXRoXzIoY2hhciAqZGVzYywgTkVUX1JfQVVUSF8yICpyX2EsIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcV9zcnZfcHdzZXQoTkVUX1FfU1JW
X1BXU0VUICpxX3MsIGNoYXIgKmxvZ29uX3NydiwgY2hhciAqc2Vzc19rZXksIGNoYXIgKmFjY3Rf
bmFtZSwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHNlY19jaGFuLCBjaGFyICpjb21w
X25hbWUsIERPTV9DUkVEICpjcmVkLCBjaGFyIGhhc2hlZF9tYWNoX3B3ZFsxNl0pOwpCT09MIG5l
dF9pb19xX3Nydl9wd3NldChjaGFyICpkZXNjLCBORVRfUV9TUlZfUFdTRVQgKnFfcywgcHJzX3N0
cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbmV0X2lvX3Jfc3J2X3B3c2V0KGNoYXIgKmRlc2Ms
IE5FVF9SX1NSVl9QV1NFVCAqcl9zLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X2lkX2luZm8xKE5FVF9JRF9JTkZPXzEgKmlkLCBjaGFyICpkb21haW5fbmFtZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFyYW1fY3RybCwgdW5zaWdu
ZWQgaW50IGxvZ19pZF9sb3csIHVuc2lnbmVkIGludCBsb2dfaWRfaGlnaCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICp1c2VyX25hbWUsIGNoYXIgKndrc3RhX25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc2Vzc19rZXksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBsbV9jeXBoZXJbMTZdLCB1bnNpZ25l
ZCBjaGFyIG50X2N5cGhlclsxNl0pOwp2b2lkIGluaXRfaWRfaW5mbzIoTkVUX0lEX0lORk9fMiAq
IGlkLCBjb25zdCBjaGFyICpkb21haW5fbmFtZSwKICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBwYXJhbV9jdHJsLAogICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxvZ19pZF9s
b3csIHVuc2lnbmVkIGludCBsb2dfaWRfaGlnaCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnVzZXJfbmFtZSwgY29uc3QgY2hhciAqd2tzdGFfbmFtZSwKICAgICAgICAgICAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGNoYXIgbG1fY2hhbGxlbmdlWzhdLAogICAgICAgICAgICAgICAgICAg
Y29uc3QgdW5zaWduZWQgY2hhciAqIGxtX2NoYWxfcmVzcCwgaW50IGxtX2NoYWxfcmVzcF9sZW4s
CiAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogbnRfY2hhbF9yZXNwLCBp
bnQgbnRfY2hhbF9yZXNwX2xlbik7CnZvaWQgaW5pdF9zYW1faW5mbyhET01fU0FNX0lORk8gKnNh
bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpsb2dvbl9zcnYsIGNoYXIg
KmNvbXBfbmFtZSwgRE9NX0NSRUQgKmNsbnRfY3JlZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBET01fQ1JFRCAqcnRuX2NyZWQsIHVuc2lnbmVkIHNob3J0IGxvZ29uX2xldmVsLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FVF9JRF9JTkZPX0NUUiAqY3RyKTsKdm9p
ZCBpbml0X25ldF91c2VyX2luZm8zKFRBTExPQ19DVFggKmN0eCwgTkVUX1VTRVJfSU5GT18zICp1
c3IsIFNBTV9BQ0NPVU5UICpzYW1wdywKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHNob3J0IGxvZ29uX2NvdW50LCB1bnNpZ25lZCBzaG9ydCBiYWRfcHdfY291bnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2dyb3VwcywgRE9NX0dJRCAqZ2lkcywK
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB1c2VyX2ZsZ3MsIHVuc2lnbmVk
IGNoYXIgKnNlc3Nfa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbG9nb25fc3J2
LCBjaGFyICpsb2dvbl9kb20sCiAgICAgICAgICAgICAgICAgICAgICAgICBET01fU0lEICpkb21f
c2lkLCBjaGFyICpvdGhlcl9zaWRzKTsKQk9PTCBuZXRfaW9fcV9zYW1fbG9nb24oY2hhciAqZGVz
YywgTkVUX1FfU0FNX0xPR09OICpxX2wsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09M
IG5ldF9pb19yX3NhbV9sb2dvbihjaGFyICpkZXNjLCBORVRfUl9TQU1fTE9HT04gKnJfbCwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbmV0X2lvX3Ffc2FtX2xvZ29mZihjaGFyICpk
ZXNjLCBORVRfUV9TQU1fTE9HT0ZGICpxX2wsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpC
T09MIG5ldF9pb19yX3NhbV9sb2dvZmYoY2hhciAqZGVzYywgTkVUX1JfU0FNX0xPR09GRiAqcl9s
LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBpbml0X25ldF9xX3NhbV9zeW5jKE5F
VF9RX1NBTV9TWU5DICogcV9zLCBjb25zdCBjaGFyICpzcnZfbmFtZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKmNsaV9uYW1lLCBET01fQ1JFRCAqY2xpX2NyZWRzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgRE9NX0NSRUQgKnJldF9jcmVkcywgdW5zaWduZWQgaW50IGRh
dGFiYXNlX2lkKTsKQk9PTCBuZXRfaW9fcV9zYW1fc3luYyhjaGFyICpkZXNjLCBORVRfUV9TQU1f
U1lOQyAqIHFfcywgcHJzX3N0cnVjdCAqcHMsCiAgICAgICAgICAgICAgICAgICAgICAgaW50IGRl
cHRoKTsKQk9PTCBtYWtlX3NhbV9hY2NvdW50X2luZm8oU0FNX0FDQ09VTlRfSU5GTyAqIGluZm8s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVOSVNUUjIgKnVzZXJfbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVU5JU1RSMiAqZnVsbF9uYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9yaWQsIHVuc2lnbmVkIGludCBn
cm91cF9yaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVOSVNUUjIgKmhvbWVf
ZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVTklTVFIyICpkaXJfZHJpdmUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVOSVNUUjIgKmxvZ19zY3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVOSVNUUjIgKmRlc2MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBhY2JfaW5mbywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVU5JU1RSMiAqcHJvZl9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBVTklTVFIyICp3a3N0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFVOSVNUUjIgKnVua19zdHIsIGNvbnN0IFVOSVNUUjIgKm11bmdfZGlhbCk7CkJPT0wgbmV0X2lv
X3Jfc2FtX3N5bmMoY2hhciAqZGVzYywgdW5zaWduZWQgY2hhciBzZXNzX2tleVsxNl0sCiAgICAg
ICAgICAgICAgICAgICAgICAgTkVUX1JfU0FNX1NZTkMgKiByX3MsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIGluaXRfbmV0X3Ffc2FtX2RlbHRhcyhORVRfUV9TQU1fREVMVEFTICpx
X3MsIGNvbnN0IGNoYXIgKnNydl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpjbGlfbmFtZSwgRE9NX0NSRUQgKmNsaV9jcmVkcywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IGRhdGFiYXNlX2lkLCBVSU5UNjRfUyBkb21fbW9kX2NvdW50
KTsKQk9PTCBuZXRfaW9fcV9zYW1fZGVsdGFzKGNoYXIgKmRlc2MsIE5FVF9RX1NBTV9ERUxUQVMg
KnFfcywgcHJzX3N0cnVjdCAqcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgp
OwpCT09MIG5ldF9pb19yX3NhbV9kZWx0YXMoY2hhciAqZGVzYywgdW5zaWduZWQgY2hhciBzZXNz
X2tleVsxNl0sCiAgICAgICAgICAgICAgICAgICAgICAgICBORVRfUl9TQU1fREVMVEFTICpyX3Ms
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwoKCgp2b2lkIHByc19kdW1wKGNoYXIgKm5hbWUs
IGludCB2LCBwcnNfc3RydWN0ICpwcyk7CnZvaWQgcHJzX2RlYnVnKHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgsIGNoYXIgKmRlc2MsIGNoYXIgKmZuX25hbWUpOwpCT09MIHByc19pbml0KHByc19z
dHJ1Y3QgKnBzLCB1bnNpZ25lZCBpbnQgc2l6ZSwgVEFMTE9DX0NUWCAqY3R4LCBCT09MIGlvKTsK
Qk9PTCBwcnNfcmVhZChwcnNfc3RydWN0ICpwcywgaW50IGZkLCBzaXplX3QgbGVuLCBpbnQgdGlt
ZW91dCk7CnZvaWQgcHJzX21lbV9mcmVlKHByc19zdHJ1Y3QgKnBzKTsKY2hhciAqcHJzX2FsbG9j
X21lbShwcnNfc3RydWN0ICpwcywgc2l6ZV90IHNpemUpOwpUQUxMT0NfQ1RYICpwcnNfZ2V0X21l
bV9jb250ZXh0KHByc19zdHJ1Y3QgKnBzKTsKdm9pZCBwcnNfZ2l2ZV9tZW1vcnkocHJzX3N0cnVj
dCAqcHMsIGNoYXIgKmJ1ZiwgdW5zaWduZWQgaW50IHNpemUsIEJPT0wgaXNfZHluYW1pYyk7CmNo
YXIgKnByc190YWtlX21lbW9yeShwcnNfc3RydWN0ICpwcywgdW5zaWduZWQgaW50ICpwc2l6ZSk7
CkJPT0wgcHJzX3NldF9idWZmZXJfc2l6ZShwcnNfc3RydWN0ICpwcywgdW5zaWduZWQgaW50IG5l
d3NpemUpOwpCT09MIHByc19ncm93KHByc19zdHJ1Y3QgKnBzLCB1bnNpZ25lZCBpbnQgZXh0cmFf
c3BhY2UpOwpCT09MIHByc19mb3JjZV9ncm93KHByc19zdHJ1Y3QgKnBzLCB1bnNpZ25lZCBpbnQg
ZXh0cmFfc3BhY2UpOwpjaGFyICpwcnNfZGF0YV9wKHByc19zdHJ1Y3QgKnBzKTsKdW5zaWduZWQg
aW50IHByc19kYXRhX3NpemUocHJzX3N0cnVjdCAqcHMpOwp1bnNpZ25lZCBpbnQgcHJzX29mZnNl
dChwcnNfc3RydWN0ICpwcyk7CkJPT0wgcHJzX3NldF9vZmZzZXQocHJzX3N0cnVjdCAqcHMsIHVu
c2lnbmVkIGludCBvZmZzZXQpOwpCT09MIHByc19hcHBlbmRfcHJzX2RhdGEocHJzX3N0cnVjdCAq
ZHN0LCBwcnNfc3RydWN0ICpzcmMpOwpCT09MIHByc19hcHBlbmRfc29tZV9wcnNfZGF0YShwcnNf
c3RydWN0ICpkc3QsIHByc19zdHJ1Y3QgKnNyYywgaW50IHN0YXJ0LCB1bnNpZ25lZCBpbnQgbGVu
KTsKQk9PTCBwcnNfYXBwZW5kX2RhdGEocHJzX3N0cnVjdCAqZHN0LCBjaGFyICpzcmMsIHVuc2ln
bmVkIGludCBsZW4pOwp2b2lkIHByc19zZXRfZW5kaWFuX2RhdGEocHJzX3N0cnVjdCAqcHMsIEJP
T0wgZW5kaWFuKTsKQk9PTCBwcnNfYWxpZ24ocHJzX3N0cnVjdCAqcHMpOwpCT09MIHByc19hbGln
bl9uZWVkZWQocHJzX3N0cnVjdCAqcHMsIHVuc2lnbmVkIGludCBuZWVkZWQpOwpjaGFyICpwcnNf
bWVtX2dldChwcnNfc3RydWN0ICpwcywgdW5zaWduZWQgaW50IGV4dHJhX3NpemUpOwp2b2lkIHBy
c19zd2l0Y2hfdHlwZShwcnNfc3RydWN0ICpwcywgQk9PTCBpbyk7CnZvaWQgcHJzX2ZvcmNlX2R5
bmFtaWMocHJzX3N0cnVjdCAqcHMpOwpCT09MIHByc191aW50OChjaGFyICpuYW1lLCBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBjaGFyICpkYXRhOCk7CkJPT0wgcHJzX3VpbnQx
NihjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBzaG9ydCAq
ZGF0YTE2KTsKQk9PTCBwcnNfdWludDMyKGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBpbnQg
ZGVwdGgsIHVuc2lnbmVkIGludCAqZGF0YTMyKTsKQk9PTCBwcnNfbnRzdGF0dXMoY2hhciAqbmFt
ZSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCwgTlRTVEFUVVMgKnN0YXR1cyk7CkJPT0wgcHJz
X3dlcnJvcihjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCBXRVJST1IgKnN0
YXR1cyk7CkJPT0wgcHJzX3VpbnQ4cyhCT09MIGNoYXJtb2RlLCBjaGFyICpuYW1lLCBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBjaGFyICpkYXRhOHMsIGludCBsZW4pOwpCT09M
IHByc191aW50MTZzKEJPT0wgY2hhcm1vZGUsIGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgsIHVuc2lnbmVkIHNob3J0ICpkYXRhMTZzLCBpbnQgbGVuKTsKQk9PTCBwcnNfdWlu
dDE2dW5pKEJPT0wgY2hhcm1vZGUsIGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgsIHVuc2lnbmVkIHNob3J0ICpkYXRhMTZzLCBpbnQgbGVuKTsKQk9PTCBwcnNfdWludDMycyhC
T09MIGNoYXJtb2RlLCBjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCB1bnNp
Z25lZCBpbnQgKmRhdGEzMnMsIGludCBsZW4pOwpCT09MIHByc19idWZmZXI1KEJPT0wgY2hhcm1v
ZGUsIGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgsIEJVRkZFUjUgKnN0cik7
CkJPT0wgcHJzX2J1ZmZlcjIoQk9PTCBjaGFybW9kZSwgY2hhciAqbmFtZSwgcHJzX3N0cnVjdCAq
cHMsIGludCBkZXB0aCwgQlVGRkVSMiAqc3RyKTsKQk9PTCBwcnNfc3RyaW5nMihCT09MIGNoYXJt
b2RlLCBjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCBTVFJJTkcyICpzdHIp
OwpCT09MIHByc191bmlzdHIyKEJPT0wgY2hhcm1vZGUsIGNoYXIgKm5hbWUsIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgsIFVOSVNUUjIgKnN0cik7CkJPT0wgcHJzX3VuaXN0cjMoQk9PTCBjaGFy
bW9kZSwgY2hhciAqbmFtZSwgVU5JU1RSMyAqc3RyLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKQk9PTCBwcnNfdW5pc3RyKGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgs
IFVOSVNUUiAqc3RyKTsKQk9PTCBwcnNfc3RyaW5nKGNoYXIgKm5hbWUsIHByc19zdHJ1Y3QgKnBz
LCBpbnQgZGVwdGgsIGNoYXIgKnN0ciwgaW50IGxlbiwgaW50IG1heF9idWZfc2l6ZSk7CkJPT0wg
cHJzX3VpbnQxNl9wcmUoY2hhciAqbmFtZSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCwgdW5z
aWduZWQgc2hvcnQgKmRhdGExNiwgdW5zaWduZWQgaW50ICpvZmZzZXQpOwpCT09MIHByc191aW50
MTZfcG9zdChjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBz
aG9ydCAqZGF0YTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBwdHJfdWludDE2LCB1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0KTsKQk9PTCBwcnNfdWludDMy
X3ByZShjaGFyICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBpbnQg
KmRhdGEzMiwgdW5zaWduZWQgaW50ICpvZmZzZXQpOwpCT09MIHByc191aW50MzJfcG9zdChjaGFy
ICpuYW1lLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoLCB1bnNpZ25lZCBpbnQgKmRhdGEzMiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHRyX3VpbnQzMiwg
dW5zaWduZWQgaW50IGRhdGFfc2l6ZSk7CmludCB0ZGJfcHJzX3N0b3JlKFREQl9DT05URVhUICp0
ZGIsIGNoYXIgKmtleXN0ciwgcHJzX3N0cnVjdCAqcHMpOwppbnQgdGRiX3Byc19mZXRjaChUREJf
Q09OVEVYVCAqdGRiLCBjaGFyICprZXlzdHIsIHByc19zdHJ1Y3QgKnBzLCBUQUxMT0NfQ1RYICpt
ZW1fY3R4KTsKQk9PTCBwcnNfaGFzaDEocHJzX3N0cnVjdCAqcHMsIHVuc2lnbmVkIGludCBvZmZz
ZXQsIHVuc2lnbmVkIGNoYXIgc2Vzc19rZXlbMTZdKTsKCgoKdm9pZCBpbml0X3JlZ19xX29wZW5f
aGtjcihSRUdfUV9PUEVOX0hLQ1IgKnFfbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzAsIHVuc2lnbmVkIGludCBsZXZlbCk7CkJPT0wgcmVn
X2lvX3Ffb3Blbl9oa2NyKGNoYXIgKmRlc2MsIFJFR19RX09QRU5fSEtDUiAqcl9xLCBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9vcGVuX2hrY3IoY2hhciAqZGVzYywg
UkVHX1JfT1BFTl9IS0NSICpyX3IsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGlu
aXRfcmVnX3Ffb3Blbl9oa2xtKFJFR19RX09QRU5fSEtMTSAqIHFfbywKICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bmtub3duXzAsIHVuc2lnbmVkIGludCBhY2Nlc3Nf
bWFzayk7CkJPT0wgcmVnX2lvX3Ffb3Blbl9oa2xtKGNoYXIgKmRlc2MsIFJFR19RX09QRU5fSEtM
TSAqIHJfcSwgcHJzX3N0cnVjdCAqcHMsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXB0
aCk7CkJPT0wgcmVnX2lvX3Jfb3Blbl9oa2xtKGNoYXIgKmRlc2MsIFJFR19SX09QRU5fSEtMTSAq
IHJfciwgcHJzX3N0cnVjdCAqcHMsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9yZWdfcV9mbHVzaF9rZXkoUkVHX1FfRkxVU0hfS0VZICpxX3UsIFBPTElDWV9I
TkQgKnBvbCk7CkJPT0wgcmVnX2lvX3FfZmx1c2hfa2V5KGNoYXIgKmRlc2MsIFJFR19RX0ZMVVNI
X0tFWSAqcl9xLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9mbHVz
aF9rZXkoY2hhciAqZGVzYywgUkVHX1JfRkxVU0hfS0VZICpyX3IsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwp2b2lkIGluaXRfcmVnX3FfY3JlYXRlX2tleShSRUdfUV9DUkVBVEVfS0VZICpx
X2MsIFBPTElDWV9ITkQgKmhuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
ICpuYW1lLCBjaGFyICpjbGFzcywgU0VDX0FDQ0VTUyAqc2FtX2FjY2VzcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTRUNfREVTQ19CVUYgKnNlY19idWYpOwpCT09MIHJlZ19pb19x
X2NyZWF0ZV9rZXkoY2hhciAqZGVzYywgUkVHX1FfQ1JFQVRFX0tFWSAqcl9xLCBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9jcmVhdGVfa2V5KGNoYXIgKmRlc2MsIFJF
R19SX0NSRUFURV9LRVkgKnJfciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5p
dF9yZWdfcV9kZWxldGVfdmFsKFJFR19RX0RFTEVURV9WQUxVRSAqcV9jLCBQT0xJQ1lfSE5EICpo
bmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSk7CkJPT0wgcmVn
X2lvX3FfZGVsZXRlX3ZhbChjaGFyICpkZXNjLCBSRUdfUV9ERUxFVEVfVkFMVUUgKnJfcSwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgcmVnX2lvX3JfZGVsZXRlX3ZhbChjaGFyICpk
ZXNjLCBSRUdfUl9ERUxFVEVfVkFMVUUgKnJfciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9yZWdfcV9kZWxldGVfa2V5KFJFR19RX0RFTEVURV9LRVkgKnFfYywgUE9MSUNZ
X0hORCAqaG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUpOwpC
T09MIHJlZ19pb19xX2RlbGV0ZV9rZXkoY2hhciAqZGVzYywgUkVHX1FfREVMRVRFX0tFWSAqcl9x
LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9kZWxldGVfa2V5KGNo
YXIgKmRlc2MsIFJFR19SX0RFTEVURV9LRVkgKnJfciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCk7CnZvaWQgaW5pdF9yZWdfcV9xdWVyeV9rZXkoUkVHX1FfUVVFUllfS0VZICpxX28sIFBPTElD
WV9ITkQgKmhuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
bWF4X2NsYXNzX2xlbik7CkJPT0wgcmVnX2lvX3FfcXVlcnlfa2V5KGNoYXIgKmRlc2MsIFJFR19R
X1FVRVJZX0tFWSAqcl9xLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9f
cl9xdWVyeV9rZXkoY2hhciAqZGVzYywgUkVHX1JfUVVFUllfS0VZICpyX3IsIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcmVnX3FfdW5rXzFhKFJFR19RX1VOS18xQSAqcV9v
LCBQT0xJQ1lfSE5EICpobmQpOwpCT09MIHJlZ19pb19xX3Vua18xYShjaGFyICpkZXNjLCBSRUdf
UV9VTktfMUEgKnJfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgcmVnX2lvX3Jf
dW5rXzFhKGNoYXIgKmRlc2MsIFJFR19SX1VOS18xQSAqcl9yLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKdm9pZCBpbml0X3JlZ19xX29wZW5faGt1KFJFR19RX09QRU5fSEtVICpxX28sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgdW5rbm93bl8wLCB1
bnNpZ25lZCBpbnQgbGV2ZWwpOwpCT09MIHJlZ19pb19xX29wZW5faGt1KGNoYXIgKmRlc2MsIFJF
R19RX09QRU5fSEtVICpyX3EsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHJlZ19p
b19yX29wZW5faGt1KGNoYXIgKmRlc2MsIFJFR19SX09QRU5fSEtVICpyX3IsIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcmVnX3FfY2xvc2UoUkVHX1FfQ0xPU0UgKnFfYywg
UE9MSUNZX0hORCAqaG5kKTsKQk9PTCByZWdfaW9fcV9jbG9zZShjaGFyICpkZXNjLCBSRUdfUV9D
TE9TRSAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9jbG9z
ZShjaGFyICpkZXNjLCBSRUdfUl9DTE9TRSAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKdm9pZCBpbml0X3JlZ19xX3NldF9rZXlfc2VjKFJFR19RX1NFVF9LRVlfU0VDICpxX2ksIFBP
TElDWV9ITkQgKnBvbCwgU0VDX0RFU0NfQlVGICpzZWNfZGVzY19idWYpOwpCT09MIHJlZ19pb19x
X3NldF9rZXlfc2VjKGNoYXIgKmRlc2MsIFJFR19RX1NFVF9LRVlfU0VDICpyX3EsIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHJlZ19pb19yX3NldF9rZXlfc2VjKGNoYXIgKmRlc2Ms
IFJFR19SX1NFVF9LRVlfU0VDICpyX3EsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lk
IGluaXRfcmVnX3FfZ2V0X2tleV9zZWMoUkVHX1FfR0VUX0tFWV9TRUMgKnFfaSwgUE9MSUNZX0hO
RCAqcG9sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzZWNf
YnVmX3NpemUsIFNFQ19ERVNDX0JVRiAqcHNkYik7CkJPT0wgcmVnX2lvX3FfZ2V0X2tleV9zZWMo
Y2hhciAqZGVzYywgUkVHX1FfR0VUX0tFWV9TRUMgKnJfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CkJPT0wgcmVnX2lvX3JfZ2V0X2tleV9zZWMoY2hhciAqZGVzYywgUkVHX1JfR0VUX0tF
WV9TRUMgKnJfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgaW5pdF9yZWdfcV9p
bmZvKFJFR19RX0lORk8gKnFfaSwgUE9MSUNZX0hORCAqcG9sLCBjaGFyKiB2YWxfbmFtZSk7CkJP
T0wgcmVnX2lvX3FfaW5mbyhjaGFyICpkZXNjLCBSRUdfUV9JTkZPICpyX3EsIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgpOwpCT09MIGluaXRfcmVnX3JfaW5mbyh1bnNpZ25lZCBpbnQgaW5jbHVk
ZV9rZXl2YWwsIFJFR19SX0lORk8gKnJfciwKICAgICAgICAgICAgICAgICAgICAgQlVGRkVSMiog
YnVmLCB1bnNpZ25lZCBpbnQgdHlwZSwgTlRTVEFUVVMgc3RhdHVzKTsKQk9PTCByZWdfaW9fcl9p
bmZvKGNoYXIgKmRlc2MsIFJFR19SX0lORk8gKnJfciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCk7CnZvaWQgaW5pdF9yZWdfcV9lbnVtX3ZhbChSRUdfUV9FTlVNX1ZBTFVFICpxX2ksIFBPTElD
WV9ITkQgKnBvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
dmFsX2lkeCwgdW5zaWduZWQgaW50IG1heF92YWxfbGVuLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfYnVmX2xlbik7CkJPT0wgcmVnX2lvX3FfZW51bV92
YWwoY2hhciAqZGVzYywgUkVHX1FfRU5VTV9WQUxVRSAqcV9xLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCByZWdfaW9fcl9lbnVtX3ZhbChjaGFyICpkZXNjLCBSRUdfUl9FTlVNX1ZB
TFVFICpyX3EsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfcmVnX3FfY3Jl
YXRlX3ZhbChSRUdfUV9DUkVBVEVfVkFMVUUgKnFfaSwgUE9MSUNZX0hORCAqcG9sLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnZhbF9uYW1lLCB1bnNpZ25lZCBpbnQgdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCVUZGRVIzICp2YWwpOwpCT09MIHJl
Z19pb19xX2NyZWF0ZV92YWwoY2hhciAqZGVzYywgUkVHX1FfQ1JFQVRFX1ZBTFVFICpxX3EsIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHJlZ19pb19yX2NyZWF0ZV92YWwoY2hhciAq
ZGVzYywgUkVHX1JfQ1JFQVRFX1ZBTFVFICpyX3EsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
Owp2b2lkIGluaXRfcmVnX3FfZW51bV9rZXkoUkVHX1FfRU5VTV9LRVkgKnFfaSwgUE9MSUNZX0hO
RCAqcG9sLCB1bnNpZ25lZCBpbnQga2V5X2lkeCk7CkJPT0wgcmVnX2lvX3FfZW51bV9rZXkoY2hh
ciAqZGVzYywgUkVHX1FfRU5VTV9LRVkgKnFfcSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CkJPT0wgcmVnX2lvX3JfZW51bV9rZXkoY2hhciAqZGVzYywgUkVHX1JfRU5VTV9LRVkgKnJfcSwg
cHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9yZWdfcV9vcGVuX2VudHJ5KFJF
R19RX09QRU5fRU5UUlkgKnJfcSwgUE9MSUNZX0hORCAqcG9sLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKmtleV9uYW1lLCB1bnNpZ25lZCBpbnQgdW5rKTsKQk9PTCByZWdf
aW9fcV9vcGVuX2VudHJ5KGNoYXIgKmRlc2MsIFJFR19RX09QRU5fRU5UUlkgKnJfcSwgcHJzX3N0
cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9yZWdfcl9vcGVuX2VudHJ5KFJFR19SX09Q
RU5fRU5UUlkgKnJfciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqcG9s
LCBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHJlZ19pb19yX29wZW5fZW50cnkoY2hhciAqZGVzYywg
UkVHX1JfT1BFTl9FTlRSWSAqcl9yLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X3JlZ19xX3NodXRkb3duKFJFR19RX1NIVVRET1dOICogcV9zLAogICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqbXNnLCB1bnNpZ25lZCBpbnQgdGltZW91dCwgdW5zaWduZWQg
c2hvcnQgZmxhZ3MpOwpCT09MIHJlZ19pb19xX3NodXRkb3duKGNoYXIgKmRlc2MsIFJFR19RX1NI
VVRET1dOICogcV9zLCBwcnNfc3RydWN0ICpwcywKICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ZGVwdGgpOwpCT09MIHJlZ19pb19yX3NodXRkb3duKGNoYXIgKmRlc2MsIFJFR19SX1NIVVRET1dO
ICogcl9zLCBwcnNfc3RydWN0ICpwcywKICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVwdGgp
Owp2b2lkIGluaXRfcmVnX3FfYWJvcnRfc2h1dGRvd24oUkVHX1FfQUJPUlRfU0hVVERPV04gKiBx
X3MpOwpCT09MIHJlZ19pb19xX2Fib3J0X3NodXRkb3duKGNoYXIgKmRlc2MsIFJFR19RX0FCT1JU
X1NIVVRET1dOICogcV9zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgpOwpCT09MIHJlZ19pb19yX2Fib3J0X3NodXRkb3duKGNoYXIgKmRlc2Ms
IFJFR19SX0FCT1JUX1NIVVRET1dOICogcl9zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwoKCgp2b2lkIGluaXRfcnBjX2hkcihSUENfSERS
ICpoZHIsIGVudW0gUlBDX1BLVF9UWVBFIHBrdF90eXBlLCB1bnNpZ25lZCBjaGFyIGZsYWdzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjYWxsX2lkLCBpbnQg
ZGF0YV9sZW4sIGludCBhdXRoX2xlbik7CkJPT0wgc21iX2lvX3JwY19oZHIoY2hhciAqZGVzYywg
UlBDX0hEUiAqcnBjLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3JwY19o
ZHJfcmIoUlBDX0hEUl9SQiAqcnBjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHNob3J0IG1heF90c2l6ZSwgdW5zaWduZWQgc2hvcnQgbWF4X3JzaXplLCB1bnNpZ25l
ZCBpbnQgYXNzb2NfZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBudW1fZWxlbWVudHMsIHVuc2lnbmVkIHNob3J0IGNvbnRleHRfaWQsIHVuc2lnbmVkIGNo
YXIgbnVtX3N5bnRheGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJQQ19JRkFD
RSAqYWJzdHJhY3QsIFJQQ19JRkFDRSAqdHJhbnNmZXIpOwpCT09MIHNtYl9pb19ycGNfaGRyX3Ji
KGNoYXIgKmRlc2MsIFJQQ19IRFJfUkIgKnJwYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9ycGNfaGRyX2JhKFJQQ19IRFJfQkEgKnJwYywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBtYXhfdHNpemUsIHVuc2lnbmVkIHNob3J0IG1h
eF9yc2l6ZSwgdW5zaWduZWQgaW50IGFzc29jX2dpZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyICpwaXBlX2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY2hhciBudW1fcmVzdWx0cywgdW5zaWduZWQgc2hvcnQgcmVzdWx0LCB1bnNpZ25l
ZCBzaG9ydCByZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlBDX0lGQUNF
ICp0cmFuc2Zlcik7CkJPT0wgc21iX2lvX3JwY19oZHJfYmEoY2hhciAqZGVzYywgUlBDX0hEUl9C
QSAqcnBjLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3JwY19oZHJfcmVx
KFJQQ19IRFJfUkVRICpoZHIsIHVuc2lnbmVkIGludCBhbGxvY19oaW50LCB1bnNpZ25lZCBzaG9y
dCBvcG51bSk7CkJPT0wgc21iX2lvX3JwY19oZHJfcmVxKGNoYXIgKmRlc2MsIFJQQ19IRFJfUkVR
ICpycGMsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19ycGNfaGRyX3Jl
c3AoY2hhciAqZGVzYywgUlBDX0hEUl9SRVNQICpycGMsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIHNtYl9pb19ycGNfaGRyX2ZhdWx0KGNoYXIgKmRlc2MsIFJQQ19IRFJfRkFVTFQg
KnJwYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9ycGNfaGRyX2F1dGhh
KFJQQ19IRFJfQVVUSEEgKnJhaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBzaG9ydCBtYXhfdHNpemUsIHVuc2lnbmVkIHNob3J0IG1heF9yc2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGF1dGhfdHlwZSwgdW5zaWduZWQg
Y2hhciBhdXRoX2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGNoYXIgc3R1Yl90eXBlX2xlbik7CkJPT0wgc21iX2lvX3JwY19oZHJfYXV0aGEoY2hhciAqZGVz
YywgUlBDX0hEUl9BVVRIQSAqcmFpLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBy
cGNfaGRyX2F1dGhfY2hrKFJQQ19IRFJfQVVUSCAqcmFpKTsKdm9pZCBpbml0X3JwY19oZHJfYXV0
aChSUENfSERSX0FVVEggKnJhaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBjaGFyIGF1dGhfdHlwZSwgdW5zaWduZWQgY2hhciBhdXRoX2xldmVsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc3R1Yl90eXBlX2xlbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHRyKTsKQk9PTCBzbWJfaW9f
cnBjX2hkcl9hdXRoKGNoYXIgKmRlc2MsIFJQQ19IRFJfQVVUSCAqcmFpLCBwcnNfc3RydWN0ICpw
cywgaW50IGRlcHRoKTsKQk9PTCBycGNfYXV0aF92ZXJpZmllcl9jaGsoUlBDX0FVVEhfVkVSSUZJ
RVIgKnJhdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzaWduYXR1cmUs
IHVuc2lnbmVkIGludCBtc2dfdHlwZSk7CnZvaWQgaW5pdF9ycGNfYXV0aF92ZXJpZmllcihSUENf
QVVUSF9WRVJJRklFUiAqcmF2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg
KnNpZ25hdHVyZSwgdW5zaWduZWQgaW50IG1zZ190eXBlKTsKQk9PTCBzbWJfaW9fcnBjX2F1dGhf
dmVyaWZpZXIoY2hhciAqZGVzYywgUlBDX0FVVEhfVkVSSUZJRVIgKnJhdiwgcHJzX3N0cnVjdCAq
cHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9ycGNfYXV0aF9udGxtc3NwX25lZyhSUENfQVVUSF9O
VExNU1NQX05FRyAqbmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBuZWdfZmxncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmc3RyaW5nIG15
bmFtZSwgZnN0cmluZyBkb21haW4pOwpCT09MIHNtYl9pb19ycGNfYXV0aF9udGxtc3NwX25lZyhj
aGFyICpkZXNjLCBSUENfQVVUSF9OVExNU1NQX05FRyAqbmVnLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKdm9pZCBpbml0X3JwY19hdXRoX250bG1zc3BfY2hhbChSUENfQVVUSF9OVExNU1NQ
X0NIQUwgKmNobCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
bmVnX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg
Y2hhbGxlbmdlWzhdKTsKQk9PTCBzbWJfaW9fcnBjX2F1dGhfbnRsbXNzcF9jaGFsKGNoYXIgKmRl
c2MsIFJQQ19BVVRIX05UTE1TU1BfQ0hBTCAqY2hsLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKdm9pZCBpbml0X3JwY19hdXRoX250bG1zc3BfcmVzcChSUENfQVVUSF9OVExNU1NQX1JFU1Ag
KnJzcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGxtX3Jl
c3BbMjRdLCB1bnNpZ25lZCBjaGFyIG50X3Jlc3BbMjRdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKmRvbWFpbiwgY2hhciAqdXNlciwgY2hhciAqd2tzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuZWdfZmxhZ3MpOwpCT09MIHNtYl9p
b19ycGNfYXV0aF9udGxtc3NwX3Jlc3AoY2hhciAqZGVzYywgUlBDX0FVVEhfTlRMTVNTUF9SRVNQ
ICpyc3AsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHJwY19hdXRoX250bG1zc3Bf
Y2hrKFJQQ19BVVRIX05UTE1TU1BfQ0hLICpjaGssIHVuc2lnbmVkIGludCBjcmMzMiwgdW5zaWdu
ZWQgaW50IHNlcV9udW0pOwp2b2lkIGluaXRfcnBjX2F1dGhfbnRsbXNzcF9jaGsoUlBDX0FVVEhf
TlRMTVNTUF9DSEsgKmNoaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgdmVyLCB1bnNpZ25lZCBpbnQgY3JjMzIsIHVuc2lnbmVkIGludCBzZXFfbnVtKTsKQk9P
TCBzbWJfaW9fcnBjX2F1dGhfbnRsbXNzcF9jaGsoY2hhciAqZGVzYywgUlBDX0FVVEhfTlRMTVNT
UF9DSEsgKmNoaywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CgoKCnZvaWQgaW5pdF9zYW1y
X3FfY2xvc2VfaG5kKFNBTVJfUV9DTE9TRV9ITkQgKiBxX2MsIFBPTElDWV9ITkQgKmhuZCk7CkJP
T0wgc2Ftcl9pb19xX2Nsb3NlX2huZChjaGFyICpkZXNjLCBTQU1SX1FfQ0xPU0VfSE5EICogcV91
LAogICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJP
T0wgc2Ftcl9pb19yX2Nsb3NlX2huZChjaGFyICpkZXNjLCBTQU1SX1JfQ0xPU0VfSE5EICogcl91
LAogICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZv
aWQgaW5pdF9zYW1yX3FfbG9va3VwX2RvbWFpbihTQU1SX1FfTE9PS1VQX0RPTUFJTiAqIHFfdSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwgY2hhciAqZG9t
X25hbWUpOwpCT09MIHNhbXJfaW9fcV9sb29rdXBfZG9tYWluKGNoYXIgKmRlc2MsIFNBTVJfUV9M
T09LVVBfRE9NQUlOICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX2xvb2t1cF9kb21haW4oU0FNUl9S
X0xPT0tVUF9ET01BSU4gKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBET01f
U0lEICpkb21fc2lkLCBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9sb29rdXBfZG9t
YWluKGNoYXIgKmRlc2MsIFNBTVJfUl9MT09LVVBfRE9NQUlOICogcl91LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ft
cl9xX3Vua25vd25fMmQoU0FNUl9RX1VOS05PV05fMkQgKiBxX3UsIFBPTElDWV9ITkQgKmRvbV9w
b2wsIERPTV9TSUQgKnNpZCk7CkJPT0wgc2Ftcl9pb19xX3Vua25vd25fMmQoY2hhciAqZGVzYywg
U0FNUl9RX1VOS05PV05fMkQgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0
cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc2Ftcl9pb19yX3Vua25vd25fMmQoY2hhciAqZGVz
YywgU0FNUl9SX1VOS05PV05fMkQgKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3Ffb3Blbl9kb21haW4oU0FN
Ul9RX09QRU5fRE9NQUlOICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElD
WV9ITkQgKnBvbCwgdW5zaWduZWQgaW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IERPTV9TSUQgKnNpZCk7CkJPT0wgc2Ftcl9pb19xX29wZW5fZG9tYWluKGNoYXIg
KmRlc2MsIFNBTVJfUV9PUEVOX0RPTUFJTiAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc2Ftcl9pb19yX29wZW5fZG9tYWlu
KGNoYXIgKmRlc2MsIFNBTVJfUl9PUEVOX0RPTUFJTiAqIHJfdSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfZ2V0
X3VzcmRvbV9wd2luZm8oU0FNUl9RX0dFVF9VU1JET01fUFdJTkZPICogcV91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnVzZXJfcG9sKTsKQk9PTCBzYW1y
X2lvX3FfZ2V0X3VzcmRvbV9wd2luZm8oY2hhciAqZGVzYywgU0FNUl9RX0dFVF9VU1JET01fUFdJ
TkZPICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpw
cywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9nZXRfdXNyZG9tX3B3aW5mbyhTQU1SX1Jf
R0VUX1VTUkRPTV9QV0lORk8gKnJfdSwgTlRTVEFUVVMgc3RhdHVzKTsKQk9PTCBzYW1yX2lvX3Jf
Z2V0X3VzcmRvbV9wd2luZm8oY2hhciAqZGVzYywgU0FNUl9SX0dFVF9VU1JET01fUFdJTkZPICog
cl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9xdWVyeV9zZWNfb2JqKFNBTVJfUV9RVUVSWV9TRUNf
T0JKICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqdXNl
cl9wb2wsIHVuc2lnbmVkIGludCBzZWNfaW5mbyk7CkJPT0wgc2Ftcl9pb19xX3F1ZXJ5X3NlY19v
YmooY2hhciAqZGVzYywgU0FNUl9RX1FVRVJZX1NFQ19PQkogKiBxX3UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1y
X3FfcXVlcnlfZG9tX2luZm8oU0FNUl9RX1FVRVJZX0RPTUFJTl9JTkZPICogcV91LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKmRvbWFpbl9wb2wsIHVuc2lnbmVk
IHNob3J0IHN3aXRjaF92YWx1ZSk7CkJPT0wgc2Ftcl9pb19xX3F1ZXJ5X2RvbV9pbmZvKGNoYXIg
KmRlc2MsIFNBTVJfUV9RVUVSWV9ET01BSU5fSU5GTyAqIHFfdSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF91bmtfaW5m
bzMoU0FNX1VOS19JTkZPXzMgKnVfMywgTlRUSU1FIG50X2xvZ291dCk7CnZvaWQgaW5pdF91bmtf
aW5mbzYoU0FNX1VOS19JTkZPXzYgKiB1XzYpOwp2b2lkIGluaXRfdW5rX2luZm83KFNBTV9VTktf
SU5GT183ICogdV83KTsKdm9pZCBpbml0X3Vua19pbmZvMTIoU0FNX1VOS19JTkZPXzEyICogdV8x
MiwgTlRUSU1FIG50X2xvY2tfZHVyYXRpb24sIE5UVElNRSBudF9yZXNldF90aW1lLCB1bnNpZ25l
ZCBzaG9ydCBsb2Nrb3V0KTsKdm9pZCBpbml0X3Vua19pbmZvNShTQU1fVU5LX0lORk9fNSAqIHVf
NSxjaGFyICpzZXJ2ZXIpOwp2b2lkIGluaXRfdW5rX2luZm8yKFNBTV9VTktfSU5GT18yICogdV8y
LAogICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkb21haW4sIGNoYXIgKnNlcnZlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNlcV9udW0sIHVuc2lnbmVkIGludCBu
dW1fdXNlcnMsIHVuc2lnbmVkIGludCBudW1fZ3JvdXBzLCB1bnNpZ25lZCBpbnQgbnVtX2FsaWFz
KTsKdm9pZCBpbml0X3Vua19pbmZvMShTQU1fVU5LX0lORk9fMSAqdV8xLCB1bnNpZ25lZCBzaG9y
dCBtaW5fcGFzc19sZW4sIHVuc2lnbmVkIHNob3J0IHBhc3NfaGlzdCwKICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgZmxhZywgTlRUSU1FIG50X2V4cGlyZSwgTlRUSU1FIG50X21pbl9h
Z2UpOwp2b2lkIGluaXRfc2Ftcl9yX3F1ZXJ5X2RvbV9pbmZvKFNBTVJfUl9RVUVSWV9ET01BSU5f
SU5GTyAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9y
dCBzd2l0Y2hfdmFsdWUsIFNBTV9VTktfQ1RSICogY3RyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5UU1RBVFVTIHN0YXR1cyk7CkJPT0wgc2Ftcl9pb19yX3F1ZXJ5X2RvbV9pbmZv
KGNoYXIgKmRlc2MsIFNBTVJfUl9RVUVSWV9ET01BSU5fSU5GTyAqIHJfdSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc2Ftcl9p
b19yX3F1ZXJ5X3NlY19vYmooY2hhciAqZGVzYywgU0FNUl9SX1FVRVJZX1NFQ19PQkogKiByX3Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9zYW1fZW50cnkoU0FNX0VOVFJZICogc2FtLCB1bnNpZ25lZCBpbnQgbGVuX3Nh
bV9uYW1lLCB1bnNpZ25lZCBpbnQgcmlkKTsKdm9pZCBpbml0X3NhbXJfcV9lbnVtX2RvbV91c2Vy
cyhTQU1SX1FfRU5VTV9ET01fVVNFUlMgKiBxX2UsIFBPTElDWV9ITkQgKnBvbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnRfaWR4LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGFjYl9tYXNrLCB1bnNpZ25lZCBz
aG9ydCB1bmtfMSwgdW5zaWduZWQgaW50IHNpemUpOwpCT09MIHNhbXJfaW9fcV9lbnVtX2RvbV91
c2VycyhjaGFyICpkZXNjLCBTQU1SX1FfRU5VTV9ET01fVVNFUlMgKiBxX2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRf
c2Ftcl9yX2VudW1fZG9tX3VzZXJzKFNBTVJfUl9FTlVNX0RPTV9VU0VSUyAqIHJfdSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmV4dF9pZHgsIHVuc2lnbmVk
IGludCBudW1fc2FtX2VudHJpZXMpOwpCT09MIHNhbXJfaW9fcl9lbnVtX2RvbV91c2VycyhjaGFy
ICpkZXNjLCBTQU1SX1JfRU5VTV9ET01fVVNFUlMgKiByX3UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX3F1
ZXJ5X2Rpc3BpbmZvKFNBTVJfUV9RVUVSWV9ESVNQSU5GTyAqIHFfZSwgUE9MSUNZX0hORCAqcG9s
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF9s
ZXZlbCwgdW5zaWduZWQgaW50IHN0YXJ0X2lkeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgbWF4X2VudHJpZXMpOwpCT09MIHNhbXJfaW9fcV9xdWVyeV9kaXNw
aW5mbyhjaGFyICpkZXNjLCBTQU1SX1FfUVVFUllfRElTUElORk8gKiBxX2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpOVFNUQVRVUyBp
bml0X3NhbV9kaXNwaW5mb18xKFRBTExPQ19DVFggKmN0eCwgU0FNX0RJU1BJTkZPXzEgKnNhbSwg
dW5zaWduZWQgaW50IG51bV9lbnRyaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IHN0YXJ0X2lkeCwgRElTUF9VU0VSX0lORk8gKmRpc3BfdXNlcl9pbmZvKTsKTlRTVEFU
VVMgaW5pdF9zYW1fZGlzcGluZm9fMihUQUxMT0NfQ1RYICpjdHgsIFNBTV9ESVNQSU5GT18yICpz
YW0sIHVuc2lnbmVkIGludCBudW1fZW50cmllcywKICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBzdGFydF9pZHgsIERJU1BfVVNFUl9JTkZPICpkaXNwX3VzZXJfaW5mbyk7Ck5U
U1RBVFVTIGluaXRfc2FtX2Rpc3BpbmZvXzMoVEFMTE9DX0NUWCAqY3R4LCBTQU1fRElTUElORk9f
MyAqc2FtLCB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgc3RhcnRfaWR4LCBESVNQX0dST1VQX0lORk8gKmRpc3BfZ3JvdXBfaW5m
byk7Ck5UU1RBVFVTIGluaXRfc2FtX2Rpc3BpbmZvXzQoVEFMTE9DX0NUWCAqY3R4LCBTQU1fRElT
UElORk9fNCAqc2FtLCB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnRfaWR4LCBESVNQX1VTRVJfSU5GTyAqZGlzcF91c2Vy
X2luZm8pOwpOVFNUQVRVUyBpbml0X3NhbV9kaXNwaW5mb181KFRBTExPQ19DVFggKmN0eCwgU0FN
X0RJU1BJTkZPXzUgKnNhbSwgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X2lkeCwgRElTUF9HUk9VUF9JTkZPICpkaXNw
X2dyb3VwX2luZm8pOwp2b2lkIGluaXRfc2Ftcl9yX3F1ZXJ5X2Rpc3BpbmZvKFNBTVJfUl9RVUVS
WV9ESVNQSU5GTyAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgbnVtX2VudHJpZXMsIHVuc2lnbmVkIGludCB0b3RhbF9zaXplLCB1bnNpZ25lZCBpbnQg
ZGF0YV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0
IHN3aXRjaF9sZXZlbCwgU0FNX0RJU1BJTkZPX0NUUiAqIGN0ciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9xdWVyeV9kaXNw
aW5mbyhjaGFyICpkZXNjLCBTQU1SX1JfUVVFUllfRElTUElORk8gKiByX3UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRf
c2Ftcl9xX29wZW5fZ3JvdXAoU0FNUl9RX09QRU5fR1JPVVAgKiBxX2MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpobmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgYWNjZXNzX21hc2ssIHVuc2lnbmVkIGludCByaWQpOwpCT09MIHNhbXJf
aW9fcV9vcGVuX2dyb3VwKGNoYXIgKmRlc2MsIFNBTVJfUV9PUEVOX0dST1VQICogcV91LAogICAg
ICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNh
bXJfaW9fcl9vcGVuX2dyb3VwKGNoYXIgKmRlc2MsIFNBTVJfUl9PUEVOX0dST1VQICogcl91LAog
ICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lk
IGluaXRfc2Ftcl9ncm91cF9pbmZvMShHUk9VUF9JTkZPMSAqIGdyMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhciAqYWNjdF9uYW1lLCBjaGFyICphY2N0X2Rlc2MsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1fbWVtYmVycyk7CkJPT0wgc2Ftcl9pb19n
cm91cF9pbmZvMShjaGFyICpkZXNjLCBHUk9VUF9JTkZPMSAqIGdyMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9ncm91
cF9pbmZvMyhHUk9VUF9JTkZPMyAqZ3IzKTsKQk9PTCBzYW1yX2lvX2dyb3VwX2luZm8zKGNoYXIg
KmRlc2MsIEdST1VQX0lORk8zICpncjMsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lk
IGluaXRfc2Ftcl9ncm91cF9pbmZvNChHUk9VUF9JTkZPNCAqIGdyNCwgY2hhciAqYWNjdF9kZXNj
KTsKQk9PTCBzYW1yX2lvX2dyb3VwX2luZm80KGNoYXIgKmRlc2MsIEdST1VQX0lORk80ICogZ3I0
LAogICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZv
aWQgaW5pdF9zYW1yX3FfY3JlYXRlX2RvbV9ncm91cChTQU1SX1FfQ1JFQVRFX0RPTV9HUk9VUCAq
IHFfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwg
Y2hhciAqYWNjdF9kZXNjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGFjY2Vzc19tYXNrKTsKQk9PTCBzYW1yX2lvX3FfY3JlYXRlX2RvbV9ncm91cChjaGFy
ICpkZXNjLCBTQU1SX1FfQ1JFQVRFX0RPTV9HUk9VUCAqIHFfZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1yX2lvX3Jf
Y3JlYXRlX2RvbV9ncm91cChjaGFyICpkZXNjLCBTQU1SX1JfQ1JFQVRFX0RPTV9HUk9VUCAqIHJf
dSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKdm9pZCBpbml0X3NhbXJfcV9kZWxldGVfZG9tX2dyb3VwKFNBTVJfUV9ERUxFVEVfRE9N
X0dST1VQICogcV9jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hO
RCAqaG5kKTsKQk9PTCBzYW1yX2lvX3FfZGVsZXRlX2RvbV9ncm91cChjaGFyICpkZXNjLCBTQU1S
X1FfREVMRVRFX0RPTV9HUk9VUCAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1yX2lvX3JfZGVsZXRlX2RvbV9n
cm91cChjaGFyICpkZXNjLCBTQU1SX1JfREVMRVRFX0RPTV9HUk9VUCAqIHJfdSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X3NhbXJfcV9kZWxfZ3JvdXBtZW0oU0FNUl9RX0RFTF9HUk9VUE1FTSAqIHFfZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqcG9sLCB1bnNpZ25lZCBpbnQgcmlk
KTsKQk9PTCBzYW1yX2lvX3FfZGVsX2dyb3VwbWVtKGNoYXIgKmRlc2MsIFNBTVJfUV9ERUxfR1JP
VVBNRU0gKiBxX2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9kZWxfZ3JvdXBtZW0oU0FNUl9SX0RFTF9HUk9V
UE1FTSAqIHJfdSwgUE9MSUNZX0hORCAqcG9sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9kZWxfZ3JvdXBtZW0oY2hhciAqZGVz
YywgU0FNUl9SX0RFTF9HUk9VUE1FTSAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX2FkZF9ncm91cG1l
bShTQU1SX1FfQUREX0dST1VQTUVNICogcV9lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQT0xJQ1lfSE5EICpwb2wsIHVuc2lnbmVkIGludCByaWQpOwpCT09MIHNhbXJfaW9fcV9hZGRf
Z3JvdXBtZW0oY2hhciAqZGVzYywgU0FNUl9RX0FERF9HUk9VUE1FTSAqIHFfZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRf
c2Ftcl9yX2FkZF9ncm91cG1lbShTQU1SX1JfQUREX0dST1VQTUVNICogcl91LCBQT0xJQ1lfSE5E
ICpwb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UU1RBVFVTIHN0YXR1cyk7CkJP
T0wgc2Ftcl9pb19yX2FkZF9ncm91cG1lbShjaGFyICpkZXNjLCBTQU1SX1JfQUREX0dST1VQTUVN
ICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3Ffc2V0X2dyb3VwaW5mbyhTQU1SX1FfU0VUX0dST1VQSU5G
TyAqIHFfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwg
R1JPVVBfSU5GT19DVFIgKiBjdHIpOwpCT09MIHNhbXJfaW9fcV9zZXRfZ3JvdXBpbmZvKGNoYXIg
KmRlc2MsIFNBTVJfUV9TRVRfR1JPVVBJTkZPICogcV9lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX3NldF9n
cm91cGluZm8oU0FNUl9SX1NFVF9HUk9VUElORk8gKiByX3UsIE5UU1RBVFVTIHN0YXR1cyk7CkJP
T0wgc2Ftcl9pb19yX3NldF9ncm91cGluZm8oY2hhciAqZGVzYywgU0FNUl9SX1NFVF9HUk9VUElO
Rk8gKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGlu
dCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfcXVlcnlfZ3JvdXBpbmZvKFNBTVJfUV9RVUVSWV9H
Uk9VUElORk8gKiBxX2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9I
TkQgKnBvbCwgdW5zaWduZWQgc2hvcnQgc3dpdGNoX2xldmVsKTsKQk9PTCBzYW1yX2lvX3FfcXVl
cnlfZ3JvdXBpbmZvKGNoYXIgKmRlc2MsIFNBTVJfUV9RVUVSWV9HUk9VUElORk8gKiBxX2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
dm9pZCBpbml0X3NhbXJfcl9xdWVyeV9ncm91cGluZm8oU0FNUl9SX1FVRVJZX0dST1VQSU5GTyAq
IHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVBfSU5GT19DVFIgKiBj
dHIsIE5UU1RBVFVTIHN0YXR1cyk7CkJPT0wgc2Ftcl9pb19yX3F1ZXJ5X2dyb3VwaW5mbyhjaGFy
ICpkZXNjLCBTQU1SX1JfUVVFUllfR1JPVVBJTkZPICogcl91LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3Ff
cXVlcnlfZ3JvdXBtZW0oU0FNUl9RX1FVRVJZX0dST1VQTUVNICogcV9jLCBQT0xJQ1lfSE5EICpo
bmQpOwpCT09MIHNhbXJfaW9fcV9xdWVyeV9ncm91cG1lbShjaGFyICpkZXNjLCBTQU1SX1FfUVVF
UllfR1JPVVBNRU0gKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX3F1ZXJ5X2dyb3VwbWVtKFNBTVJf
Ul9RVUVSWV9HUk9VUE1FTSAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgbnVtX2VudHJpZXMsIHVuc2lnbmVkIGludCAqcmlkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqYXR0ciwgTlRTVEFUVVMgc3RhdHVzKTsK
Qk9PTCBzYW1yX2lvX3JfcXVlcnlfZ3JvdXBtZW0oY2hhciAqZGVzYywgU0FNUl9SX1FVRVJZX0dS
T1VQTUVNICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpw
cywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9xdWVyeV91c2VyZ3JvdXBzKFNBTVJfUV9R
VUVSWV9VU0VSR1JPVVBTICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UE9MSUNZX0hORCAqaG5kKTsKQk9PTCBzYW1yX2lvX3FfcXVlcnlfdXNlcmdyb3VwcyhjaGFyICpk
ZXNjLCBTQU1SX1FfUVVFUllfVVNFUkdST1VQUyAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9x
dWVyeV91c2VyZ3JvdXBzKFNBTVJfUl9RVUVSWV9VU0VSR1JPVVBTICogcl91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9naWRzLCBET01fR0lEICog
Z2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRTVEFUVVMgc3RhdHVzKTsK
Qk9PTCBzYW1yX2lvX2dpZHMoY2hhciAqZGVzYywgdW5zaWduZWQgaW50ICpudW1fZ2lkcywgRE9N
X0dJRCAqKiBnaWQsCiAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
OwpCT09MIHNhbXJfaW9fcl9xdWVyeV91c2VyZ3JvdXBzKGNoYXIgKmRlc2MsIFNBTVJfUl9RVUVS
WV9VU0VSR1JPVVBTICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19z
dHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX2VudW1fZG9tYWlucyhTQU1S
X1FfRU5VTV9ET01BSU5TICogcV9lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJ
Q1lfSE5EICpwb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
dGFydF9pZHgsIHVuc2lnbmVkIGludCBzaXplKTsKQk9PTCBzYW1yX2lvX3FfZW51bV9kb21haW5z
KGNoYXIgKmRlc2MsIFNBTVJfUV9FTlVNX0RPTUFJTlMgKiBxX2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9l
bnVtX2RvbWFpbnMoU0FNUl9SX0VOVU1fRE9NQUlOUyAqIHJfdSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IG5leHRfaWR4LCB1bnNpZ25lZCBpbnQgbnVtX3NhbV9l
bnRyaWVzKTsKQk9PTCBzYW1yX2lvX3JfZW51bV9kb21haW5zKGNoYXIgKmRlc2MsIFNBTVJfUl9F
TlVNX0RPTUFJTlMgKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9lbnVtX2RvbV9ncm91cHMoU0FNUl9R
X0VOVU1fRE9NX0dST1VQUyAqIHFfZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UE9MSUNZX0hORCAqcG9sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgc3RhcnRfaWR4LCB1bnNpZ25lZCBpbnQgc2l6ZSk7CkJPT0wgc2Ftcl9pb19xX2VudW1f
ZG9tX2dyb3VwcyhjaGFyICpkZXNjLCBTQU1SX1FfRU5VTV9ET01fR1JPVVBTICogcV9lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZv
aWQgaW5pdF9zYW1yX3JfZW51bV9kb21fZ3JvdXBzKFNBTVJfUl9FTlVNX0RPTV9HUk9VUFMgKiBy
X3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuZXh0X2lk
eCwgdW5zaWduZWQgaW50IG51bV9zYW1fZW50cmllcyk7CkJPT0wgc2Ftcl9pb19yX2VudW1fZG9t
X2dyb3VwcyhjaGFyICpkZXNjLCBTQU1SX1JfRU5VTV9ET01fR1JPVVBTICogcl91LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQg
aW5pdF9zYW1yX3FfZW51bV9kb21fYWxpYXNlcyhTQU1SX1FfRU5VTV9ET01fQUxJQVNFUyAqIHFf
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwgdW5z
aWduZWQgaW50IHN0YXJ0X2lkeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBzaXplKTsKQk9PTCBzYW1yX2lvX3FfZW51bV9kb21fYWxpYXNlcyhjaGFyICpk
ZXNjLCBTQU1SX1FfRU5VTV9ET01fQUxJQVNFUyAqIHFfZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9l
bnVtX2RvbV9hbGlhc2VzKFNBTVJfUl9FTlVNX0RPTV9BTElBU0VTICpyX3UsIHVuc2lnbmVkIGlu
dCBuZXh0X2lkeCwgdW5zaWduZWQgaW50IG51bV9zYW1fZW50cmllcyk7CkJPT0wgc2Ftcl9pb19y
X2VudW1fZG9tX2FsaWFzZXMoY2hhciAqZGVzYywgU0FNUl9SX0VOVU1fRE9NX0FMSUFTRVMgKiBy
X3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CnZvaWQgaW5pdF9zYW1yX2FsaWFzX2luZm8xKEFMSUFTX0lORk8xICogYWwxLCBjaGFy
ICphY2N0X25hbWUsIHVuc2lnbmVkIGludCBudW1fbWVtYmVyLCBjaGFyICphY2N0X2Rlc2MpOwpC
T09MIHNhbXJfaW9fYWxpYXNfaW5mbzEoY2hhciAqZGVzYywgQUxJQVNfSU5GTzEgKiBhbDEsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X3NhbXJfYWxpYXNfaW5mbzMoQUxJQVNfSU5GTzMgKiBhbDMsIGNoYXIgKmFjY3RfZGVzYyk7
CkJPT0wgc2Ftcl9pb19hbGlhc19pbmZvMyhjaGFyICpkZXNjLCBBTElBU19JTkZPMyAqIGFsMywK
ICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09M
IHNhbXJfYWxpYXNfaW5mb19jdHIoY2hhciAqZGVzYywgQUxJQVNfSU5GT19DVFIgKiBjdHIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X3NhbXJfcV9xdWVyeV9hbGlhc2luZm8oU0FNUl9RX1FVRVJZX0FMSUFTSU5GTyAqIHFfZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqcG9sLCB1bnNpZ25l
ZCBzaG9ydCBzd2l0Y2hfbGV2ZWwpOwpCT09MIHNhbXJfaW9fcV9xdWVyeV9hbGlhc2luZm8oY2hh
ciAqZGVzYywgU0FNUl9RX1FVRVJZX0FMSUFTSU5GTyAqIHFfZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9y
X3F1ZXJ5X2FsaWFzaW5mbyhTQU1SX1JfUVVFUllfQUxJQVNJTkZPICogcl91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBTElBU19JTkZPX0NUUiAqIGN0ciwgTlRTVEFUVVMgc3Rh
dHVzKTsKQk9PTCBzYW1yX2lvX3JfcXVlcnlfYWxpYXNpbmZvKGNoYXIgKmRlc2MsIFNBTVJfUl9R
VUVSWV9BTElBU0lORk8gKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNf
c3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9zZXRfYWxpYXNpbmZvKFNB
TVJfUV9TRVRfQUxJQVNJTkZPICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UE9MSUNZX0hORCAqaG5kLCBBTElBU19JTkZPX0NUUiAqIGN0cik7CkJPT0wgc2Ftcl9pb19xX3Nl
dF9hbGlhc2luZm8oY2hhciAqZGVzYywgU0FNUl9RX1NFVF9BTElBU0lORk8gKiBxX3UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wg
c2Ftcl9pb19yX3NldF9hbGlhc2luZm8oY2hhciAqZGVzYywgU0FNUl9SX1NFVF9BTElBU0lORk8g
KiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfcXVlcnlfdXNlcmFsaWFzZXMoU0FNUl9RX1FVRVJZX1VT
RVJBTElBU0VTICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElD
WV9ITkQgKmhuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgbnVtX3NpZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50ICpwdHJfc2lkLCBET01fU0lEMiAqIHNpZCk7CkJPT0wgc2Ftcl9pb19xX3F1ZXJ5X3VzZXJh
bGlhc2VzKGNoYXIgKmRlc2MsIFNBTVJfUV9RVUVSWV9VU0VSQUxJQVNFUyAqIHFfdSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZv
aWQgaW5pdF9zYW1yX3JfcXVlcnlfdXNlcmFsaWFzZXMoU0FNUl9SX1FVRVJZX1VTRVJBTElBU0VT
ICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBu
dW1fcmlkcywgdW5zaWduZWQgaW50ICpyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlRTVEFUVVMgc3RhdHVzKTsKQk9PTCBzYW1yX2lvX3JpZHMoY2hhciAqZGVzYywgdW5z
aWduZWQgaW50ICpudW1fcmlkcywgdW5zaWduZWQgaW50ICoqcmlkLAogICAgICAgICAgICAgICAg
ICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1yX2lvX3JfcXVlcnlfdXNlcmFs
aWFzZXMoY2hhciAqZGVzYywgU0FNUl9SX1FVRVJZX1VTRVJBTElBU0VTICogcl91LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9p
ZCBpbml0X3NhbXJfcV9vcGVuX2FsaWFzKFNBTVJfUV9PUEVOX0FMSUFTICogcV91LCBQT0xJQ1lf
SE5EICpwb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYWNjZXNz
X21hc2ssIHVuc2lnbmVkIGludCByaWQpOwpCT09MIHNhbXJfaW9fcV9vcGVuX2FsaWFzKGNoYXIg
KmRlc2MsIFNBTVJfUV9PUEVOX0FMSUFTICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAg
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNhbXJfaW9fcl9vcGVuX2FsaWFzKGNo
YXIgKmRlc2MsIFNBTVJfUl9PUEVOX0FMSUFTICogcl91LAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX2xvb2t1cF9y
aWRzKFRBTExPQ19DVFggKmN0eCwgU0FNUl9RX0xPT0tVUF9SSURTICogcV91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwgdW5zaWduZWQgaW50IGZsYWdzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1fcmlkcywgdW5zaWdu
ZWQgaW50ICpyaWQpOwpCT09MIHNhbXJfaW9fcV9sb29rdXBfcmlkcyhjaGFyICpkZXNjLCBTQU1S
X1FfTE9PS1VQX1JJRFMgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX2xvb2t1cF9yaWRzKFNBTVJfUl9M
T09LVVBfUklEUyAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgbnVtX25hbWVzLCBVTklIRFIgKiBoZHJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVTklTVFIyICp1bmlfbmFtZSwgdW5zaWduZWQgaW50ICp0eXBlKTsKQk9PTCBzYW1yX2lv
X3JfbG9va3VwX3JpZHMoY2hhciAqZGVzYywgU0FNUl9SX0xPT0tVUF9SSURTICogcl91LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBp
bml0X3NhbXJfcV9kZWxldGVfYWxpYXMoU0FNUl9RX0RFTEVURV9ET01fQUxJQVMgKiBxX3UsIFBP
TElDWV9ITkQgKmhuZCk7CkJPT0wgc2Ftcl9pb19xX2RlbGV0ZV9hbGlhcyhjaGFyICpkZXNjLCBT
QU1SX1FfREVMRVRFX0RPTV9BTElBUyAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNhbXJfaW9fcl9kZWxldGVfYWxpYXMo
Y2hhciAqZGVzYywgU0FNUl9SX0RFTEVURV9ET01fQUxJQVMgKiByX3UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJf
cV9jcmVhdGVfZG9tX2FsaWFzKFNBTVJfUV9DUkVBVEVfRE9NX0FMSUFTICogcV91LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqaG5kLCBjaGFyICphY2N0X2Rl
c2MpOwpCT09MIHNhbXJfaW9fcV9jcmVhdGVfZG9tX2FsaWFzKGNoYXIgKmRlc2MsIFNBTVJfUV9D
UkVBVEVfRE9NX0FMSUFTICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNhbXJfaW9fcl9jcmVhdGVfZG9tX2FsaWFz
KGNoYXIgKmRlc2MsIFNBTVJfUl9DUkVBVEVfRE9NX0FMSUFTICogcl91LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRf
c2Ftcl9xX2FkZF9hbGlhc21lbShTQU1SX1FfQUREX0FMSUFTTUVNICogcV91LCBQT0xJQ1lfSE5E
ICpobmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERPTV9TSUQgKnNpZCk7CkJPT0wg
c2Ftcl9pb19xX2FkZF9hbGlhc21lbShjaGFyICpkZXNjLCBTQU1SX1FfQUREX0FMSUFTTUVNICog
cV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCk7CkJPT0wgc2Ftcl9pb19yX2FkZF9hbGlhc21lbShjaGFyICpkZXNjLCBTQU1SX1JfQUREX0FM
SUFTTUVNICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfZGVsX2FsaWFzbWVtKFNBTVJfUV9ERUxfQUxJ
QVNNRU0gKiBxX3UsIFBPTElDWV9ITkQgKmhuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRE9NX1NJRCAqc2lkKTsKQk9PTCBzYW1yX2lvX3FfZGVsX2FsaWFzbWVtKGNoYXIgKmRlc2Ms
IFNBTVJfUV9ERUxfQUxJQVNNRU0gKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1yX2lvX3JfZGVsX2FsaWFzbWVtKGNo
YXIgKmRlc2MsIFNBTVJfUl9ERUxfQUxJQVNNRU0gKiByX3UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9kZWxl
dGVfZG9tX2FsaWFzKFNBTVJfUV9ERUxFVEVfRE9NX0FMSUFTICogcV9jLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqaG5kKTsKQk9PTCBzYW1yX2lvX3FfZGVs
ZXRlX2RvbV9hbGlhcyhjaGFyICpkZXNjLCBTQU1SX1FfREVMRVRFX0RPTV9BTElBUyAqIHFfdSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKdm9pZCBpbml0X3NhbXJfcl9kZWxldGVfZG9tX2FsaWFzKFNBTVJfUl9ERUxFVEVfRE9NX0FM
SUFTICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRTVEFUVVMgc3Rh
dHVzKTsKQk9PTCBzYW1yX2lvX3JfZGVsZXRlX2RvbV9hbGlhcyhjaGFyICpkZXNjLCBTQU1SX1Jf
REVMRVRFX0RPTV9BTElBUyAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9xdWVyeV9hbGlhc21l
bShTQU1SX1FfUVVFUllfQUxJQVNNRU0gKiBxX2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUE9MSUNZX0hORCAqaG5kKTsKQk9PTCBzYW1yX2lvX3FfcXVlcnlfYWxpYXNtZW0oY2hh
ciAqZGVzYywgU0FNUl9RX1FVRVJZX0FMSUFTTUVNICogcV91LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9x
dWVyeV9hbGlhc21lbShTQU1SX1JfUVVFUllfQUxJQVNNRU0gKiByX3UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9zaWRzLCBET01fU0lEMiAqIHNpZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNh
bXJfaW9fcl9xdWVyeV9hbGlhc21lbShjaGFyICpkZXNjLCBTQU1SX1JfUVVFUllfQUxJQVNNRU0g
KiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQg
ZGVwdGgpOwpOVFNUQVRVUyBpbml0X3NhbXJfcV9sb29rdXBfbmFtZXMoVEFMTE9DX0NUWCAqY3R4
LCBTQU1SX1FfTE9PS1VQX05BTUVTICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQT0xJQ1lfSE5EICpwb2wsIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9uYW1lcywgY2hhciAqKm5hbWUpOwpCT09MIHNh
bXJfaW9fcV9sb29rdXBfbmFtZXMoY2hhciAqZGVzYywgU0FNUl9RX0xPT0tVUF9OQU1FUyAqIHFf
dSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
OwpOVFNUQVRVUyBpbml0X3NhbXJfcl9sb29rdXBfbmFtZXMoVEFMTE9DX0NUWCAqY3R4LCBTQU1S
X1JfTE9PS1VQX05BTUVTICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgbnVtX3JpZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCAqcmlkLCB1bnNpZ25lZCBpbnQgKnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5UU1RBVFVTIHN0YXR1cyk7CkJPT0wgc2Ftcl9pb19yX2xvb2t1cF9uYW1lcyhjaGFyICpk
ZXNjLCBTQU1SX1JfTE9PS1VQX05BTUVTICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfZGVsZXRlX2Rv
bV91c2VyKFNBTVJfUV9ERUxFVEVfRE9NX1VTRVIgKiBxX2MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBPTElDWV9ITkQgKmhuZCk7CkJPT0wgc2Ftcl9pb19xX2RlbGV0ZV9kb21f
dXNlcihjaGFyICpkZXNjLCBTQU1SX1FfREVMRVRFX0RPTV9VU0VSICogcV91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc2Ft
cl9pb19yX2RlbGV0ZV9kb21fdXNlcihjaGFyICpkZXNjLCBTQU1SX1JfREVMRVRFX0RPTV9VU0VS
ICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGlu
dCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3Ffb3Blbl91c2VyKFNBTVJfUV9PUEVOX1VTRVIgKiBx
X3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQgKnBvbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrLCB1bnNpZ25lZCBpbnQg
cmlkKTsKQk9PTCBzYW1yX2lvX3Ffb3Blbl91c2VyKGNoYXIgKmRlc2MsIFNBTVJfUV9PUEVOX1VT
RVIgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBzYW1yX2lvX3Jfb3Blbl91c2VyKGNoYXIgKmRlc2MsIFNBTVJfUl9PUEVOX1VT
RVIgKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKdm9pZCBpbml0X3NhbXJfcV9jcmVhdGVfdXNlcihTQU1SX1FfQ1JFQVRFX1VTRVIgKiBx
X3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9MSUNZX0hORCAqcG9sLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGFjYl9pbmZvLCB1bnNpZ25lZCBpbnQgYWNjZXNzX21h
c2spOwpCT09MIHNhbXJfaW9fcV9jcmVhdGVfdXNlcihjaGFyICpkZXNjLCBTQU1SX1FfQ1JFQVRF
X1VTRVIgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIHNhbXJfaW9fcl9jcmVhdGVfdXNlcihjaGFyICpkZXNjLCBTQU1SX1Jf
Q1JFQVRFX1VTRVIgKiByX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3Qg
KnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX3F1ZXJ5X3VzZXJpbmZvKFNBTVJfUV9R
VUVSWV9VU0VSSU5GTyAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJ
Q1lfSE5EICpobmQsIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZSk7CkJPT0wgc2Ftcl9pb19x
X3F1ZXJ5X3VzZXJpbmZvKGNoYXIgKmRlc2MsIFNBTVJfUV9RVUVSWV9VU0VSSU5GTyAqIHFfdSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CnZvaWQgaW5pdF9zYW1fdXNlcl9pbmZvMTIoU0FNX1VTRVJfSU5GT18xMiAqIHVzciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGxtX3B3ZFsxNl0sIGNvbnN0
IHVuc2lnbmVkIGNoYXIgbnRfcHdkWzE2XSk7CnZvaWQgaW5pdF9zYW1fdXNlcl9pbmZvMTAoU0FN
X1VTRVJfSU5GT18xMCAqIHVzciwgdW5zaWduZWQgaW50IGFjYl9pbmZvKTsKdm9pZCBpbml0X3Nh
bV91c2VyX2luZm8xMShTQU1fVVNFUl9JTkZPXzExICogdXNyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIE5UVElNRSAqIGV4cGlyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpt
YWNoX2FjY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJpZF91c2Vy
LCB1bnNpZ25lZCBpbnQgcmlkX2dyb3VwLCB1bnNpZ25lZCBzaG9ydCBhY2N0X2N0cmwpOwp2b2lk
IGluaXRfc2FtX3VzZXJfaW5mbzI0KFNBTV9VU0VSX0lORk9fMjQgKiB1c3IsIGNoYXIgbmV3cGFz
c1s1MTZdLCB1bnNpZ25lZCBzaG9ydCBwd19sZW4pOwp2b2lkIGluaXRfc2FtX3VzZXJfaW5mbzIz
VyhTQU1fVVNFUl9JTkZPXzIzICogdXNyLCBOVFRJTUUgKiBsb2dvbl90aW1lLAogICAgICAgICAg
ICAgICAgICAgICAgICBOVFRJTUUgKiBsb2dvZmZfdGltZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgTlRUSU1FICoga2lja29mZl90aW1lLAogICAgICAgICAgICAgICAgICAgICAgICBOVFRJTUUg
KiBwYXNzX2xhc3Rfc2V0X3RpbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIE5UVElNRSAqIHBh
c3NfY2FuX2NoYW5nZV90aW1lLAogICAgICAgICAgICAgICAgICAgICAgICBOVFRJTUUgKiBwYXNz
X211c3RfY2hhbmdlX3RpbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIFVOSVNUUjIgKnVzZXJf
bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgVU5JU1RSMiAqZnVsbF9uYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICBVTklTVFIyICpob21lX2RpciwKICAgICAgICAgICAgICAgICAgICAg
ICAgVU5JU1RSMiAqZGlyX2RyaXZlLAogICAgICAgICAgICAgICAgICAgICAgICBVTklTVFIyICps
b2dfc2NyLAogICAgICAgICAgICAgICAgICAgICAgICBVTklTVFIyICpwcm9mX3BhdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgIFVOSVNUUjIgKmRlc2MsCiAgICAgICAgICAgICAgICAgICAgICAg
IFVOSVNUUjIgKndrc3RhcywKICAgICAgICAgICAgICAgICAgICAgICAgVU5JU1RSMiAqdW5rX3N0
ciwKICAgICAgICAgICAgICAgICAgICAgICAgVU5JU1RSMiAqbXVuZ19kaWFsLAogICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9yaWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCBncm91cF9yaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBhY2JfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVu
a25vd25fMywKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgbG9nb25fZGl2
cywKICAgICAgICAgICAgICAgICAgICAgICAgTE9HT05fSFJTICogaHJzLAogICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl81LAogICAgICAgICAgICAgICAgICAgICAg
ICBjaGFyIG5ld3Bhc3NbNTE2XSwgdW5zaWduZWQgaW50IHVua25vd25fNik7CnZvaWQgaW5pdF9z
YW1fdXNlcl9pbmZvMjNBKFNBTV9VU0VSX0lORk9fMjMgKiB1c3IsIE5UVElNRSAqIGxvZ29uX3Rp
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UVElNRSAqIGxvZ29mZl90aW1lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBOVFRJTUUgKiBraWNrb2ZmX3RpbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5UVElNRSAqIHBhc3NfbGFzdF9zZXRfdGltZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlRUSU1FICogcGFzc19jYW5fY2hhbmdlX3RpbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5UVElNRSAqIHBhc3NfbXVzdF9jaGFuZ2VfdGltZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqdXNlcl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyICpmdWxsX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmhv
bWVfZGlyLCBjaGFyICpkaXJfZHJpdmUsIGNoYXIgKmxvZ19zY3IsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKnByb2ZfcGF0aCwgY2hhciAqZGVzYywgY2hhciAqd2tzdGFzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICp1bmtfc3RyLCBjaGFyICptdW5nX2RpYWwsIHVu
c2lnbmVkIGludCB1c2VyX3JpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGdyb3VwX3JpZCwgdW5zaWduZWQgaW50IGFjYl9pbmZvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgdW5rbm93bl8zLCB1bnNpZ25lZCBzaG9ydCBsb2dvbl9kaXZz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBMT0dPTl9IUlMgKiBocnMsIHVuc2lnbmVkIGlu
dCB1bmtub3duXzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3cGFzc1s1MTZd
LCB1bnNpZ25lZCBpbnQgdW5rbm93bl82KTsKdm9pZCBpbml0X3NhbV91c2VyX2luZm8yMVcoU0FN
X1VTRVJfSU5GT18yMSAqIHVzciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRUSU1FICog
bG9nb25fdGltZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRUSU1FICogbG9nb2ZmX3Rp
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UVElNRSAqIGtpY2tvZmZfdGltZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlRUSU1FICogcGFzc19sYXN0X3NldF90aW1lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBOVFRJTUUgKiBwYXNzX2Nhbl9jaGFuZ2VfdGltZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlRUSU1FICogcGFzc19tdXN0X2NoYW5nZV90aW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBVTklTVFIyICp1c2VyX25hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVOSVNUUjIgKmZ1bGxfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVU5JU1RSMiAqaG9tZV9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVNU
UjIgKmRpcl9kcml2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JU1RSMiAqbG9nX3Nj
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgVU5JU1RSMiAqcHJvZl9wYXRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICBVTklTVFIyICpkZXNjLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBVTklTVFIyICp3a3N0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVNUUjIg
KnVua19zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVNUUjIgKm11bmdfZGlhbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBsbV9wd2RbMTZdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG50X3B3ZFsxNl0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB1c2VyX3JpZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGdyb3VwX3JpZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IGFjYl9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgdW5rbm93bl8zLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBsb2dvbl9kaXZzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBMT0dPTl9IUlMg
KiBocnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB1bmtub3duXzUs
IHVuc2lnbmVkIGludCB1bmtub3duXzYpOwp2b2lkIGluaXRfc2FtX3VzZXJfaW5mbzIxQShTQU1f
VVNFUl9JTkZPXzIxICp1c3IsIFNBTV9BQ0NPVU5UICpwdyk7CnZvaWQgaW5pdF9zYW1fdXNlcl9p
bmZvMjBBKFNBTV9VU0VSX0lORk9fMjAgKnVzciwgU0FNX0FDQ09VTlQgKnB3KTsKTlRTVEFUVVMg
bWFrZV9zYW1yX3VzZXJpbmZvX2N0cl91c3IyMShUQUxMT0NfQ1RYICpjdHgsIFNBTV9VU0VSSU5G
T19DVFIgKiBjdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHNob3J0IHN3aXRjaF92YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0FNX1VTRVJfSU5GT18yMSAqIHVzcik7CnZvaWQgaW5pdF9zYW1yX3VzZXJpbmZvX2N0cihTQU1f
VVNFUklORk9fQ1RSICogY3RyLCB1bnNpZ25lZCBjaGFyICogc2Vzc19rZXksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUsIHZvaWQgKmluZm8p
Owp2b2lkIGluaXRfc2Ftcl9yX3F1ZXJ5X3VzZXJpbmZvKFNBTVJfUl9RVUVSWV9VU0VSSU5GTyAq
IHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQU1fVVNFUklORk9fQ1RSICog
Y3RyLCBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9xdWVyeV91c2VyaW5mbyhjaGFy
ICpkZXNjLCBTQU1SX1JfUVVFUllfVVNFUklORk8gKiByX3UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX3Nl
dF91c2VyaW5mbyhTQU1SX1FfU0VUX1VTRVJJTkZPICogcV91LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQT0xJQ1lfSE5EICpobmQsIHVuc2lnbmVkIGNoYXIgc2Vzc19rZXlbMTZdLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzd2l0Y2hfdmFsdWUs
IHZvaWQgKmluZm8pOwpCT09MIHNhbXJfaW9fcV9zZXRfdXNlcmluZm8oY2hhciAqZGVzYywgU0FN
Ul9RX1NFVF9VU0VSSU5GTyAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByc19z
dHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX3NldF91c2VyaW5mbyhTQU1S
X1JfU0VUX1VTRVJJTkZPICogcl91LCBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9z
ZXRfdXNlcmluZm8oY2hhciAqZGVzYywgU0FNUl9SX1NFVF9VU0VSSU5GTyAqIHJfdSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGlu
aXRfc2Ftcl9xX3NldF91c2VyaW5mbzIoU0FNUl9RX1NFVF9VU0VSSU5GTzIgKiBxX3UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQT0xJQ1lfSE5EICpobmQsIHVuc2lnbmVkIGNoYXIg
c2Vzc19rZXlbMTZdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hv
cnQgc3dpdGNoX3ZhbHVlLCBTQU1fVVNFUklORk9fQ1RSICogY3RyKTsKQk9PTCBzYW1yX2lvX3Ff
c2V0X3VzZXJpbmZvMihjaGFyICpkZXNjLCBTQU1SX1FfU0VUX1VTRVJJTkZPMiAqIHFfdSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9p
ZCBpbml0X3NhbXJfcl9zZXRfdXNlcmluZm8yKFNBTVJfUl9TRVRfVVNFUklORk8yICogcl91LCBO
VFNUQVRVUyBzdGF0dXMpOwpCT09MIHNhbXJfaW9fcl9zZXRfdXNlcmluZm8yKGNoYXIgKmRlc2Ms
IFNBTVJfUl9TRVRfVVNFUklORk8yICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9xX2Nvbm5lY3QoU0FN
Ul9RX0NPTk5FQ1QgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzcnZfbmFt
ZSwgdW5zaWduZWQgaW50IGFjY2Vzc19tYXNrKTsKQk9PTCBzYW1yX2lvX3FfY29ubmVjdChjaGFy
ICpkZXNjLCBTQU1SX1FfQ09OTkVDVCAqIHFfdSwKICAgICAgICAgICAgICAgICAgICAgICBwcnNf
c3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1yX2lvX3JfY29ubmVjdChjaGFyICpkZXNj
LCBTQU1SX1JfQ09OTkVDVCAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9jb25uZWN0X2Fub24oU0FNUl9RX0NP
Tk5FQ1RfQU5PTiAqIHFfdSk7CkJPT0wgc2Ftcl9pb19xX2Nvbm5lY3RfYW5vbihjaGFyICpkZXNj
LCBTQU1SX1FfQ09OTkVDVF9BTk9OICogcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc2Ftcl9pb19yX2Nvbm5lY3RfYW5vbihj
aGFyICpkZXNjLCBTQU1SX1JfQ09OTkVDVF9BTk9OICogcl91LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfZ2V0
X2RvbV9wd2luZm8oU0FNUl9RX0dFVF9ET01fUFdJTkZPICogcV91LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKnNydl9uYW1lKTsKQk9PTCBzYW1yX2lvX3FfZ2V0X2RvbV9w
d2luZm8oY2hhciAqZGVzYywgU0FNUl9RX0dFVF9ET01fUFdJTkZPICogcV91LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzYW1y
X2lvX3JfZ2V0X2RvbV9wd2luZm8oY2hhciAqZGVzYywgU0FNUl9SX0dFVF9ET01fUFdJTkZPICog
cl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKdm9pZCBpbml0X2VuY19wYXNzd2QoU0FNUl9FTkNfUEFTU1dEICogcHdkLCBjaGFyIHBh
c3NbNTEyXSk7CkJPT0wgc2Ftcl9pb19lbmNfcGFzc3dkKGNoYXIgKmRlc2MsIFNBTVJfRU5DX1BB
U1NXRCAqIHB3ZCwKICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CnZvaWQgaW5pdF9lbmNfaGFzaChTQU1SX0VOQ19IQVNIICogaHNoLCB1bnNpZ25lZCBj
aGFyIGhhc2hbMTZdKTsKQk9PTCBzYW1yX2lvX2VuY19oYXNoKGNoYXIgKmRlc2MsIFNBTVJfRU5D
X0hBU0ggKiBoc2gsCiAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKdm9pZCBpbml0X3NhbXJfcV9jaGdwYXNzd2RfdXNlcihTQU1SX1FfQ0hHUEFTU1dEX1VT
RVIgKiBxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdF9ob3N0
LCBjaGFyICp1c2VyX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBu
dF9uZXdwYXNzWzUxNl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBudF9vbGRoYXNoWzE2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFy
IGxtX25ld3Bhc3NbNTE2XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyIGxtX29sZGhhc2hbMTZdKTsKQk9PTCBzYW1yX2lvX3FfY2hncGFzc3dkX3VzZXIoY2hh
ciAqZGVzYywgU0FNUl9RX0NIR1BBU1NXRF9VU0VSICogcV91LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcl9j
aGdwYXNzd2RfdXNlcihTQU1SX1JfQ0hHUEFTU1dEX1VTRVIgKiByX3UsIE5UU1RBVFVTIHN0YXR1
cyk7CkJPT0wgc2Ftcl9pb19yX2NoZ3Bhc3N3ZF91c2VyKGNoYXIgKmRlc2MsIFNBTVJfUl9DSEdQ
QVNTV0RfVVNFUiAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9zYW1yX3FfdW5rbm93bl8yZShTQU1SX1FfVU5L
Tk9XTl8yRSAqcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPTElDWV9ITkQg
KmRvbWFpbl9wb2wsIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZSk7CkJPT0wgc2Ftcl9pb19x
X3Vua25vd25fMmUoY2hhciAqZGVzYywgU0FNUl9RX1VOS05PV05fMkUgKnFfdSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5p
dF9zYW1yX3Jfc2Ftcl91bmtub3duXzJlKFNBTVJfUl9VTktOT1dOXzJFICogcl91LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZSwgU0FN
X1VOS19DVFIgKiBjdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRTVEFUVVMg
c3RhdHVzKTsKQk9PTCBzYW1yX2lvX3Jfc2Ftcl91bmtub3duXzJlKGNoYXIgKmRlc2MsIFNBTVJf
Ul9VTktOT1dOXzJFICogcl91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3Ry
dWN0ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3NhbXJfcV9zZXRfZG9tYWluX2luZm8oU0FN
Ul9RX1NFVF9ET01BSU5fSU5GTyAqcV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBPTElDWV9ITkQgKmRvbWFpbl9wb2wsIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZSwgU0FN
X1VOS19DVFIgKmN0cik7CkJPT0wgc2Ftcl9pb19xX3NldF9kb21haW5faW5mbyhjaGFyICpkZXNj
LCBTQU1SX1FfU0VUX0RPTUFJTl9JTkZPICpxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2Ftcl9yX3NldF9kb21h
aW5faW5mbyhTQU1SX1JfU0VUX0RPTUFJTl9JTkZPICogcl91LCBOVFNUQVRVUyBzdGF0dXMpOwpC
T09MIHNhbXJfaW9fcl9zZXRfZG9tYWluX2luZm8oY2hhciAqZGVzYywgU0FNUl9SX1NFVF9ET01B
SU5fSU5GTyAqIHJfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJzX3N0cnVjdCAq
cHMsIGludCBkZXB0aCk7CgoKCnZvaWQgaW5pdF9zZWNfYWNjZXNzKFNFQ19BQ0NFU1MgKnQsIHVu
c2lnbmVkIGludCBtYXNrKTsKQk9PTCBzZWNfaW9fYWNjZXNzKGNoYXIgKmRlc2MsIFNFQ19BQ0NF
U1MgKnQsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc2VjX2FjZShTRUNf
QUNFICp0LCBET01fU0lEICpzaWQsIHVuc2lnbmVkIGNoYXIgdHlwZSwgU0VDX0FDQ0VTUyBtYXNr
LCB1bnNpZ25lZCBjaGFyIGZsYWcpOwpCT09MIHNlY19pb19hY2UoY2hhciAqZGVzYywgU0VDX0FD
RSAqcHNhLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKU0VDX0FDTCAqbWFrZV9zZWNfYWNs
KFRBTExPQ19DVFggKmN0eCwgdW5zaWduZWQgc2hvcnQgcmV2aXNpb24sIGludCBudW1fYWNlcywg
U0VDX0FDRSAqYWNlX2xpc3QpOwpTRUNfQUNMICpkdXBfc2VjX2FjbChUQUxMT0NfQ1RYICpjdHgs
IFNFQ19BQ0wgKnNyYyk7CkJPT0wgc2VjX2lvX2FjbChjaGFyICpkZXNjLCBTRUNfQUNMICoqcHBz
YSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnNpemVfdCBzZWNfZGVzY19zaXplKFNFQ19E
RVNDICpwc2QpOwpCT09MIHNlY19hY2VfZXF1YWwoU0VDX0FDRSAqczEsIFNFQ19BQ0UgKnMyKTsK
Qk9PTCBzZWNfYWNsX2VxdWFsKFNFQ19BQ0wgKnMxLCBTRUNfQUNMICpzMik7CkJPT0wgc2VjX2Rl
c2NfZXF1YWwoU0VDX0RFU0MgKnMxLCBTRUNfREVTQyAqczIpOwpTRUNfREVTQ19CVUYgKnNlY19k
ZXNjX21lcmdlKFRBTExPQ19DVFggKmN0eCwgU0VDX0RFU0NfQlVGICpuZXdfc2RiLCBTRUNfREVT
Q19CVUYgKm9sZF9zZGIpOwpTRUNfREVTQyAqbWFrZV9zZWNfZGVzYyhUQUxMT0NfQ1RYICpjdHgs
IHVuc2lnbmVkIHNob3J0IHJldmlzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICBET01fU0lE
ICpvd25lcl9zaWQsIERPTV9TSUQgKmdycF9zaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNF
Q19BQ0wgKnNhY2wsIFNFQ19BQ0wgKmRhY2wsIHNpemVfdCAqc2Rfc2l6ZSk7ClNFQ19ERVNDICpk
dXBfc2VjX2Rlc2MoIFRBTExPQ19DVFggKmN0eCwgU0VDX0RFU0MgKnNyYyk7ClNFQ19ERVNDICpt
YWtlX3N0YW5kYXJkX3NlY19kZXNjKFRBTExPQ19DVFggKmN0eCwgRE9NX1NJRCAqb3duZXJfc2lk
LCBET01fU0lEICpncnBfc2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNf
QUNMICpkYWNsLCBzaXplX3QgKnNkX3NpemUpOwpCT09MIHNlY19pb19kZXNjKGNoYXIgKmRlc2Ms
IFNFQ19ERVNDICoqcHBzZCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7ClNFQ19ERVNDX0JV
RiAqbWFrZV9zZWNfZGVzY19idWYoVEFMTE9DX0NUWCAqY3R4LCBzaXplX3QgbGVuLCBTRUNfREVT
QyAqc2VjX2Rlc2MpOwpTRUNfREVTQ19CVUYgKmR1cF9zZWNfZGVzY19idWYoVEFMTE9DX0NUWCAq
Y3R4LCBTRUNfREVTQ19CVUYgKnNyYyk7CkJPT0wgc2VjX2lvX2Rlc2NfYnVmKGNoYXIgKmRlc2Ms
IFNFQ19ERVNDX0JVRiAqKnBwc2RiLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKCgoKQk9P
TCBtYWtlX3N5c3RlbXRpbWUoU1lTVEVNVElNRSAqc3lzdGltZSwgc3RydWN0IHRtICp1bml4dGlt
ZSk7CkJPT0wgc21iX2lvX25vdGlmeV9pbmZvX2RhdGFfc3RyaW5ncyhjaGFyICpkZXNjLFNQT09M
X05PVElGWV9JTkZPX0RBVEEgKmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX2Rldm1vZGUo
Y2hhciAqZGVzYywgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCwgREVWSUNFTU9ERSAqZGV2bW9k
ZSk7CkJPT0wgbWFrZV9zcG9vbHNzX3Ffb3Blbl9wcmludGVyX2V4KFNQT09MX1FfT1BFTl9QUklO
VEVSX0VYICpxX3UsCiAgICAgICAgICAgICAgICBjb25zdCBmc3RyaW5nIHByaW50ZXJuYW1lLAog
ICAgICAgICAgICAgICAgY29uc3QgZnN0cmluZyBkYXRhdHlwZSwKICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBhY2Nlc3NfcmVxdWlyZWQsCiAgICAgICAgICAgICAgICBjb25zdCBmc3RyaW5n
IGNsaWVudG5hbWUsCiAgICAgICAgICAgICAgICBjb25zdCBmc3RyaW5nIHVzZXJfbmFtZSk7CkJP
T0wgbWFrZV9zcG9vbHNzX3FfYWRkcHJpbnRlcmV4KAogICAgICAgIFRBTExPQ19DVFggKm1lbV9j
dHgsCiAgICAgICAgU1BPT0xfUV9BRERQUklOVEVSRVggKnFfdSwKICAgICAgICBjb25zdCBjaGFy
ICpzcnZfbmFtZSwKICAgICAgICBjb25zdCBjaGFyKiBjbGllbnRuYW1lLAogICAgICAgIGNvbnN0
IGNoYXIqIHVzZXJfbmFtZSwKICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAgICAgUFJJ
TlRFUl9JTkZPX0NUUiAqY3RyKTsKQk9PTCBtYWtlX3Nwb29sc3NfcHJpbnRlcl9pbmZvXzIoCiAg
ICAgICAgVEFMTE9DX0NUWCAqbWVtX2N0eCwKICAgICAgICBTUE9PTF9QUklOVEVSX0lORk9fTEVW
RUxfMiAqKnNwb29sX2luZm8yLAogICAgICAgIFBSSU5URVJfSU5GT18yICppbmZvCik7CkJPT0wg
c3Bvb2xzc19pb19xX29wZW5fcHJpbnRlcl9leChjaGFyICpkZXNjLCBTUE9PTF9RX09QRU5fUFJJ
TlRFUl9FWCAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBtYWtlX3Nwb29s
c3NfcV9kZWxldGVwcmludGVyZHJpdmVyKAogICAgICAgIFRBTExPQ19DVFggKm1lbV9jdHgsCiAg
ICAgICAgU1BPT0xfUV9ERUxFVEVQUklOVEVSRFJJVkVSICpxX3UsCiAgICAgICAgY29uc3QgY2hh
ciAqc2VydmVyLAogICAgICAgIGNvbnN0IGNoYXIqIGFyY2gsCiAgICAgICAgY29uc3QgY2hhciog
ZHJpdmVyCik7CkJPT0wgc3Bvb2xzc19pb19yX29wZW5fcHJpbnRlcl9leChjaGFyICpkZXNjLCBT
UE9PTF9SX09QRU5fUFJJTlRFUl9FWCAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
Qk9PTCBtYWtlX3Nwb29sc3NfcV9nZXRwcmludGVyZGF0YShTUE9PTF9RX0dFVFBSSU5URVJEQVRB
ICpxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUE9MSUNZX0hORCAq
aGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVNUUjIgKnZhbHVlbmFt
ZSwgdW5zaWduZWQgaW50IHNpemUpOwpCT09MIHNwb29sc3NfaW9fcV9nZXRwcmludGVyZGF0YShj
aGFyICpkZXNjLCBTUE9PTF9RX0dFVFBSSU5URVJEQVRBICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9kZWxldGVwcmludGVyZGF0YShjaGFyICpkZXNj
LCBTUE9PTF9RX0RFTEVURVBSSU5URVJEQVRBICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIHNwb29sc3NfaW9fcl9kZWxldGVwcmludGVyZGF0YShjaGFyICpkZXNjLCBTUE9P
TF9SX0RFTEVURVBSSU5URVJEQVRBICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpC
T09MIHNwb29sc3NfaW9fcl9nZXRwcmludGVyZGF0YShjaGFyICpkZXNjLCBTUE9PTF9SX0dFVFBS
SU5URVJEQVRBICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIG1ha2Vfc3Bv
b2xzc19xX2Nsb3NlcHJpbnRlcihTUE9PTF9RX0NMT1NFUFJJTlRFUiAqcV91LCBQT0xJQ1lfSE5E
ICpobmQpOwpCT09MIHNwb29sc3NfaW9fcV9hYm9ydHByaW50ZXIoY2hhciAqZGVzYywgU1BPT0xf
UV9BQk9SVFBSSU5URVIgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bv
b2xzc19pb19yX2Fib3J0cHJpbnRlcihjaGFyICpkZXNjLCBTUE9PTF9SX0FCT1JUUFJJTlRFUiAq
cl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3FfZGVsZXRl
cHJpbnRlcihjaGFyICpkZXNjLCBTUE9PTF9RX0RFTEVURVBSSU5URVIgKnFfdSwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2RlbGV0ZXByaW50ZXIoY2hhciAq
ZGVzYywgU1BPT0xfUl9ERUxFVEVQUklOVEVSICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIHNwb29sc3NfaW9fcV9kZWxldGVwcmludGVyZHJpdmVyKGNoYXIgKmRlc2MsIFNQ
T09MX1FfREVMRVRFUFJJTlRFUkRSSVZFUiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKQk9PTCBzcG9vbHNzX2lvX3JfZGVsZXRlcHJpbnRlcmRyaXZlcihjaGFyICpkZXNjLCBTUE9P
TF9SX0RFTEVURVBSSU5URVJEUklWRVIgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7
CkJPT0wgc3Bvb2xzc19pb19xX2Nsb3NlcHJpbnRlcihjaGFyICpkZXNjLCBTUE9PTF9RX0NMT1NF
UFJJTlRFUiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lv
X3JfY2xvc2VwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1JfQ0xPU0VQUklOVEVSICpyX3UsIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9zdGFydGRvY3ByaW50
ZXIoY2hhciAqZGVzYywgU1BPT0xfUV9TVEFSVERPQ1BSSU5URVIgKnFfdSwgcHJzX3N0cnVjdCAq
cHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX3N0YXJ0ZG9jcHJpbnRlcihjaGFyICpk
ZXNjLCBTUE9PTF9SX1NUQVJURE9DUFJJTlRFUiAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW5kZG9jcHJpbnRlcihjaGFyICpkZXNjLCBTUE9PTF9R
X0VORERPQ1BSSU5URVIgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bv
b2xzc19pb19yX2VuZGRvY3ByaW50ZXIoY2hhciAqZGVzYywgU1BPT0xfUl9FTkRET0NQUklOVEVS
ICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9zdGFy
dHBhZ2VwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1FfU1RBUlRQQUdFUFJJTlRFUiAqcV91LCBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Jfc3RhcnRwYWdlcHJp
bnRlcihjaGFyICpkZXNjLCBTUE9PTF9SX1NUQVJUUEFHRVBSSU5URVIgKnJfdSwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2VuZHBhZ2VwcmludGVyKGNoYXIg
KmRlc2MsIFNQT09MX1FfRU5EUEFHRVBSSU5URVIgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2VuZHBhZ2VwcmludGVyKGNoYXIgKmRlc2MsIFNQT09M
X1JfRU5EUEFHRVBSSU5URVIgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wg
c3Bvb2xzc19pb19xX3dyaXRlcHJpbnRlcihjaGFyICpkZXNjLCBTUE9PTF9RX1dSSVRFUFJJTlRF
UiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Jfd3Jp
dGVwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1JfV1JJVEVQUklOVEVSICpyX3UsIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9yZmZwY25leChjaGFyICpkZXNj
LCBTUE9PTF9RX1JGRlBDTkVYICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09M
IHNwb29sc3NfaW9fcl9yZmZwY25leChjaGFyICpkZXNjLCBTUE9PTF9SX1JGRlBDTkVYICpyX3Us
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9yZm5wY25leChj
aGFyICpkZXNjLCBTUE9PTF9RX1JGTlBDTkVYICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIHNwb29sc3NfaW9fcl9yZm5wY25leChjaGFyICpkZXNjLCBTUE9PTF9SX1JGTlBD
TkVYICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wcmludGVy
X2luZm9fMChjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIFBSSU5URVJfSU5GT18wICpp
bmZvLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wcmludGVyX2luZm9fMShjaGFyICpkZXNjLCBO
RVdfQlVGRkVSICpidWZmZXIsIFBSSU5URVJfSU5GT18xICppbmZvLCBpbnQgZGVwdGgpOwpCT09M
IHNtYl9pb19wcmludGVyX2luZm9fMihjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIFBS
SU5URVJfSU5GT18yICppbmZvLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wcmludGVyX2luZm9f
MyhjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIFBSSU5URVJfSU5GT18zICppbmZvLCBp
bnQgZGVwdGgpOwpCT09MIHNtYl9pb19wb3J0X2luZm9fMShjaGFyICpkZXNjLCBORVdfQlVGRkVS
ICpidWZmZXIsIFBPUlRfSU5GT18xICppbmZvLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wb3J0
X2luZm9fMihjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIFBPUlRfSU5GT18yICppbmZv
LCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wcmludGVyX2RyaXZlcl9pbmZvXzEoY2hhciAqZGVz
YywgTkVXX0JVRkZFUiAqYnVmZmVyLCBEUklWRVJfSU5GT18xICppbmZvLCBpbnQgZGVwdGgpIDsK
Qk9PTCBzbWJfaW9fcHJpbnRlcl9kcml2ZXJfaW5mb18yKGNoYXIgKmRlc2MsIE5FV19CVUZGRVIg
KmJ1ZmZlciwgRFJJVkVSX0lORk9fMiAqaW5mbywgaW50IGRlcHRoKSA7CkJPT0wgc21iX2lvX3By
aW50ZXJfZHJpdmVyX2luZm9fMyhjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIERSSVZF
Ul9JTkZPXzMgKmluZm8sIGludCBkZXB0aCk7CkJPT0wgc21iX2lvX3ByaW50ZXJfZHJpdmVyX2lu
Zm9fNihjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIERSSVZFUl9JTkZPXzYgKmluZm8s
IGludCBkZXB0aCk7CkJPT0wgc21iX2lvX2pvYl9pbmZvXzEoY2hhciAqZGVzYywgTkVXX0JVRkZF
UiAqYnVmZmVyLCBKT0JfSU5GT18xICppbmZvLCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19qb2Jf
aW5mb18yKGNoYXIgKmRlc2MsIE5FV19CVUZGRVIgKmJ1ZmZlciwgSk9CX0lORk9fMiAqaW5mbywg
aW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fZm9ybV8xKGNoYXIgKmRlc2MsIE5FV19CVUZGRVIgKmJ1
ZmZlciwgRk9STV8xICppbmZvLCBpbnQgZGVwdGgpOwp2b2lkIHNwb29sc3NfbW92ZV9idWZmZXIo
TkVXX0JVRkZFUiAqc3JjLCBORVdfQlVGRkVSICoqZGVzdCk7CnVuc2lnbmVkIGludCBuZXdfZ2V0
X2J1ZmZlcl9zaXplKE5FV19CVUZGRVIgKmJ1ZmZlcik7CkJPT0wgc21iX2lvX2RyaXZlcmRpcl8x
KGNoYXIgKmRlc2MsIE5FV19CVUZGRVIgKmJ1ZmZlciwgRFJJVkVSX0RJUkVDVE9SWV8xICppbmZv
LCBpbnQgZGVwdGgpOwpCT09MIHNtYl9pb19wb3J0XzEoY2hhciAqZGVzYywgTkVXX0JVRkZFUiAq
YnVmZmVyLCBQT1JUX0lORk9fMSAqaW5mbywgaW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fcG9ydF8y
KGNoYXIgKmRlc2MsIE5FV19CVUZGRVIgKmJ1ZmZlciwgUE9SVF9JTkZPXzIgKmluZm8sIGludCBk
ZXB0aCk7CkJPT0wgc21iX2lvX3ByaW50cHJvY2Vzc29yX2luZm9fMShjaGFyICpkZXNjLCBORVdf
QlVGRkVSICpidWZmZXIsIFBSSU5UUFJPQ0VTU09SXzEgKmluZm8sIGludCBkZXB0aCk7CkJPT0wg
c21iX2lvX3ByaW50cHJvY2RhdGF0eXBlX2luZm9fMShjaGFyICpkZXNjLCBORVdfQlVGRkVSICpi
dWZmZXIsIFBSSU5UUFJPQ0RBVEFUWVBFXzEgKmluZm8sIGludCBkZXB0aCk7CkJPT0wgc21iX2lv
X3ByaW50bW9uaXRvcl9pbmZvXzEoY2hhciAqZGVzYywgTkVXX0JVRkZFUiAqYnVmZmVyLCBQUklO
VE1PTklUT1JfMSAqaW5mbywgaW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fcHJpbnRtb25pdG9yX2lu
Zm9fMihjaGFyICpkZXNjLCBORVdfQlVGRkVSICpidWZmZXIsIFBSSU5UTU9OSVRPUl8yICppbmZv
LCBpbnQgZGVwdGgpOwp1bnNpZ25lZCBpbnQgc3Bvb2xzc19zaXplX3ByaW50ZXJfaW5mb18wKFBS
SU5URVJfSU5GT18wICppbmZvKTsKdW5zaWduZWQgaW50IHNwb29sc3Nfc2l6ZV9wcmludGVyX2lu
Zm9fMShQUklOVEVSX0lORk9fMSAqaW5mbyk7CnVuc2lnbmVkIGludCBzcG9vbHNzX3NpemVfcHJp
bnRlcl9pbmZvXzIoUFJJTlRFUl9JTkZPXzIgKmluZm8pOwp1bnNpZ25lZCBpbnQgc3Bvb2xzc19z
aXplX3ByaW50ZXJfaW5mb18zKFBSSU5URVJfSU5GT18zICppbmZvKTsKdW5zaWduZWQgaW50IHNw
b29sc3Nfc2l6ZV9wcmludGVyX2RyaXZlcl9pbmZvXzEoRFJJVkVSX0lORk9fMSAqaW5mbyk7CnVu
c2lnbmVkIGludCBzcG9vbHNzX3NpemVfcHJpbnRlcl9kcml2ZXJfaW5mb18yKERSSVZFUl9JTkZP
XzIgKmluZm8pOwp1bnNpZ25lZCBpbnQgc3Bvb2xzc19zaXplX3N0cmluZ19hcnJheSh1bnNpZ25l
ZCBzaG9ydCAqc3RyaW5nKTsKdW5zaWduZWQgaW50IHNwb29sc3Nfc2l6ZV9wcmludGVyX2RyaXZl
cl9pbmZvXzMoRFJJVkVSX0lORk9fMyAqaW5mbyk7CnVuc2lnbmVkIGludCBzcG9vbHNzX3NpemVf
cHJpbnRlcl9kcml2ZXJfaW5mb182KERSSVZFUl9JTkZPXzYgKmluZm8pOwp1bnNpZ25lZCBpbnQg
c3Bvb2xzc19zaXplX2pvYl9pbmZvXzEoSk9CX0lORk9fMSAqaW5mbyk7CnVuc2lnbmVkIGludCBz
cG9vbHNzX3NpemVfam9iX2luZm9fMihKT0JfSU5GT18yICppbmZvKTsKdW5zaWduZWQgaW50IHNw
b29sc3Nfc2l6ZV9mb3JtXzEoRk9STV8xICppbmZvKTsKdW5zaWduZWQgaW50IHNwb29sc3Nfc2l6
ZV9wb3J0X2luZm9fMShQT1JUX0lORk9fMSAqaW5mbyk7CnVuc2lnbmVkIGludCBzcG9vbHNzX3Np
emVfZHJpdmVyZGlyX2luZm9fMShEUklWRVJfRElSRUNUT1JZXzEgKmluZm8pOwp1bnNpZ25lZCBp
bnQgc3Bvb2xzc19zaXplX3ByaW50cHJvY2Vzc29yZGlyZWN0b3J5X2luZm9fMShQUklOVFBST0NF
U1NPUl9ESVJFQ1RPUllfMSAqaW5mbyk7CnVuc2lnbmVkIGludCBzcG9vbHNzX3NpemVfcG9ydF9p
bmZvXzIoUE9SVF9JTkZPXzIgKmluZm8pOwp1bnNpZ25lZCBpbnQgc3Bvb2xzc19zaXplX3ByaW50
cHJvY2Vzc29yX2luZm9fMShQUklOVFBST0NFU1NPUl8xICppbmZvKTsKdW5zaWduZWQgaW50IHNw
b29sc3Nfc2l6ZV9wcmludHByb2NkYXRhdHlwZV9pbmZvXzEoUFJJTlRQUk9DREFUQVRZUEVfMSAq
aW5mbyk7CnVuc2lnbmVkIGludCBzcG9vbHNzX3NpemVfcHJpbnRlcl9lbnVtX3ZhbHVlcyhQUklO
VEVSX0VOVU1fVkFMVUVTICpwKTsKdW5zaWduZWQgaW50IHNwb29sc3Nfc2l6ZV9wcmludG1vbml0
b3JfaW5mb18xKFBSSU5UTU9OSVRPUl8xICppbmZvKTsKdW5zaWduZWQgaW50IHNwb29sc3Nfc2l6
ZV9wcmludG1vbml0b3JfaW5mb18yKFBSSU5UTU9OSVRPUl8yICppbmZvKTsKQk9PTCBtYWtlX3Nw
b29sc3NfcV9nZXRwcmludGVyZHJpdmVyMihTUE9PTF9RX0dFVFBSSU5URVJEUklWRVIyICpxX3Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQT0xJQ1lfSE5EICpobmQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmc3RyaW5nIGFyY2hpdGVjdHVyZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwgdW5zaWdu
ZWQgaW50IGNsaWVudG1ham9yLCB1bnNpZ25lZCBpbnQgY2xpZW50bWlub3IsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBORVdfQlVGRkVSICpidWZmZXIsIHVuc2lnbmVkIGludCBvZmZl
cmVkKTsKQk9PTCBzcG9vbHNzX2lvX3FfZ2V0cHJpbnRlcmRyaXZlcjIoY2hhciAqZGVzYywgU1BP
T0xfUV9HRVRQUklOVEVSRFJJVkVSMiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
Qk9PTCBzcG9vbHNzX2lvX3JfZ2V0cHJpbnRlcmRyaXZlcjIoY2hhciAqZGVzYywgU1BPT0xfUl9H
RVRQUklOVEVSRFJJVkVSMiAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBt
YWtlX3Nwb29sc3NfcV9lbnVtcHJpbnRlcnMoCiAgICAgICAgU1BPT0xfUV9FTlVNUFJJTlRFUlMg
KnFfdSwKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAgZnN0cmluZyBzZXJ2ZXJu
YW1lLAogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwKICAgICAgICBORVdfQlVGRkVSICpidWZm
ZXIsCiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQKKTsKQk9PTCBtYWtlX3Nwb29sc3NfcV9l
bnVtcG9ydHMoU1BPT0xfUV9FTlVNUE9SVFMgKnFfdSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmc3RyaW5nIHNlcnZlcm5hbWUsIHVuc2lnbmVkIGludCBsZXZlbCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBORVdfQlVGRkVSICpidWZmZXIsIHVuc2lnbmVkIGludCBv
ZmZlcmVkKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW51bXByaW50ZXJzKGNoYXIgKmRlc2MsIFNQT09M
X1FfRU5VTVBSSU5URVJTICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNw
b29sc3NfaW9fcl9lbnVtcHJpbnRlcnMoY2hhciAqZGVzYywgU1BPT0xfUl9FTlVNUFJJTlRFUlMg
KnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2dldHBy
aW50ZXIoY2hhciAqZGVzYywgU1BPT0xfUl9HRVRQUklOVEVSICpyX3UsIHByc19zdHJ1Y3QgKnBz
LCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9nZXRwcmludGVyKGNoYXIgKmRlc2MsIFNQ
T09MX1FfR0VUUFJJTlRFUiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBt
YWtlX3Nwb29sc3NfcV9nZXRwcmludGVyKAogICAgICAgIFRBTExPQ19DVFggKm1lbV9jdHgsCiAg
ICAgICAgU1BPT0xfUV9HRVRQUklOVEVSICpxX3UsCiAgICAgICAgY29uc3QgUE9MSUNZX0hORCAq
aG5kLAogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwKICAgICAgICBORVdfQlVGRkVSICpidWZm
ZXIsCiAgICAgICAgdW5zaWduZWQgaW50IG9mZmVyZWQKKTsKQk9PTCBtYWtlX3Nwb29sc3NfcV9z
ZXRwcmludGVyKAogICAgICAgIFRBTExPQ19DVFggKm1lbV9jdHgsCiAgICAgICAgU1BPT0xfUV9T
RVRQUklOVEVSICpxX3UsCiAgICAgICAgY29uc3QgUE9MSUNZX0hORCAqaG5kLAogICAgICAgIHVu
c2lnbmVkIGludCBsZXZlbCwKICAgICAgICBQUklOVEVSX0lORk9fQ1RSICppbmZvLAogICAgICAg
IHVuc2lnbmVkIGludCBjb21tYW5kCik7CkJPT0wgc3Bvb2xzc19pb19yX3NldHByaW50ZXIoY2hh
ciAqZGVzYywgU1BPT0xfUl9TRVRQUklOVEVSICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIHNwb29sc3NfaW9fcV9zZXRwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1FfU0VU
UFJJTlRFUiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lv
X3JfZmNwbihjaGFyICpkZXNjLCBTUE9PTF9SX0ZDUE4gKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGlu
dCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2ZjcG4oY2hhciAqZGVzYywgU1BPT0xfUV9GQ1BO
ICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcl9hZGRq
b2IoY2hhciAqZGVzYywgU1BPT0xfUl9BRERKT0IgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2FkZGpvYihjaGFyICpkZXNjLCBTUE9PTF9RX0FEREpP
QiAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3JfZW51
bWpvYnMoY2hhciAqZGVzYywgU1BPT0xfUl9FTlVNSk9CUyAqcl91LCBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKQk9PTCBtYWtlX3Nwb29sc3NfcV9lbnVtam9icyhTUE9PTF9RX0VOVU1KT0JT
ICpxX3UsIGNvbnN0IFBPTElDWV9ITkQgKmhuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgZmlyc3Rqb2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IG51bW9mam9icywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVX
X0JVRkZFUiAqYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBvZmZlcmVkKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW51bWpvYnMoY2hhciAqZGVzYywgU1BP
T0xfUV9FTlVNSk9CUyAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9v
bHNzX2lvX3Jfc2NoZWR1bGVqb2IoY2hhciAqZGVzYywgU1BPT0xfUl9TQ0hFRFVMRUpPQiAqcl91
LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Ffc2NoZWR1bGVq
b2IoY2hhciAqZGVzYywgU1BPT0xfUV9TQ0hFRFVMRUpPQiAqcV91LCBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Jfc2V0am9iKGNoYXIgKmRlc2MsIFNQT09MX1Jf
U0VUSk9CICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9f
cV9zZXRqb2IoY2hhciAqZGVzYywgU1BPT0xfUV9TRVRKT0IgKnFfdSwgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2VudW1wcmludGVyZHJpdmVycyhjaGFyICpk
ZXNjLCBTUE9PTF9SX0VOVU1QUklOVEVSRFJJVkVSUyAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBtYWtlX3Nwb29sc3NfcV9lbnVtcHJpbnRlcmRyaXZlcnMoU1BPT0xfUV9F
TlVNUFJJTlRFUkRSSVZFUlMgKnFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKmVudmlyb25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVdfQlVGRkVSICpi
dWZmZXIsIHVuc2lnbmVkIGludCBvZmZlcmVkKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW51bXByaW50
ZXJkcml2ZXJzKGNoYXIgKmRlc2MsIFNQT09MX1FfRU5VTVBSSU5URVJEUklWRVJTICpxX3UsIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9lbnVtZm9ybXMoY2hh
ciAqZGVzYywgU1BPT0xfUV9FTlVNRk9STVMgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0
aCk7CkJPT0wgc3Bvb2xzc19pb19yX2VudW1mb3JtcyhjaGFyICpkZXNjLCBTUE9PTF9SX0VOVU1G
T1JNUyAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Ff
Z2V0Zm9ybShjaGFyICpkZXNjLCBTUE9PTF9RX0dFVEZPUk0gKnFfdSwgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2dldGZvcm0oY2hhciAqZGVzYywgU1BPT0xf
Ul9HRVRGT1JNICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3Nf
aW9fcl9lbnVtcG9ydHMoY2hhciAqZGVzYywgU1BPT0xfUl9FTlVNUE9SVFMgKnJfdSwgcHJzX3N0
cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2VudW1wb3J0cyhjaGFyICpk
ZXNjLCBTUE9PTF9RX0VOVU1QT1JUUyAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
Qk9PTCBzcG9vbF9pb19wcmludGVyX2luZm9fbGV2ZWxfMShjaGFyICpkZXNjLCBTUE9PTF9QUklO
VEVSX0lORk9fTEVWRUxfMSAqaWwsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNw
b29sX2lvX3ByaW50ZXJfaW5mb19sZXZlbF8zKGNoYXIgKmRlc2MsIFNQT09MX1BSSU5URVJfSU5G
T19MRVZFTF8zICppbCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xfaW9f
cHJpbnRlcl9pbmZvX2xldmVsXzIoY2hhciAqZGVzYywgU1BPT0xfUFJJTlRFUl9JTkZPX0xFVkVM
XzIgKmlsLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbF9pb19wcmludGVy
X2luZm9fbGV2ZWwoY2hhciAqZGVzYywgU1BPT0xfUFJJTlRFUl9JTkZPX0xFVkVMICppbCwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2FkZHByaW50ZXJleChj
aGFyICpkZXNjLCBTUE9PTF9RX0FERFBSSU5URVJFWCAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3JfYWRkcHJpbnRlcmV4KGNoYXIgKmRlc2MsIFNQT09M
X1JfQUREUFJJTlRFUkVYICpyX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNf
c3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbF9pb19wcmludGVyX2RyaXZlcl9pbmZv
X2xldmVsXzMoY2hhciAqZGVzYywgU1BPT0xfUFJJTlRFUl9EUklWRVJfSU5GT19MRVZFTF8zICoq
cV91LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbF9pb19wcmludGVyX2RyaXZlcl9pbmZvX2xldmVs
XzYoY2hhciAqZGVzYywgU1BPT0xfUFJJTlRFUl9EUklWRVJfSU5GT19MRVZFTF82ICoqcV91LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnNfc3RydWN0ICpwcywg
aW50IGRlcHRoKTsKQk9PTCBzbWJfaW9fdW5pYnVmZmVyKGNoYXIgKmRlc2MsIFVOSVNUUjIgKmJ1
ZmZlciwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xfaW9fcHJpbnRlcl9k
cml2ZXJfaW5mb19sZXZlbChjaGFyICpkZXNjLCBTUE9PTF9QUklOVEVSX0RSSVZFUl9JTkZPX0xF
VkVMICppbCwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbWFrZV9zcG9vbHNzX3Ff
YWRkcHJpbnRlcmRyaXZlcigKICAgICAgICBUQUxMT0NfQ1RYICptZW1fY3R4LAogICAgICAgIFNQ
T09MX1FfQUREUFJJTlRFUkRSSVZFUiAqcV91LAogICAgICAgIGNvbnN0IGNoYXIqIHNydl9uYW1l
LAogICAgICAgIHVuc2lnbmVkIGludCBsZXZlbCwKICAgICAgICBQUklOVEVSX0RSSVZFUl9DVFIg
KmluZm8pOwpCT09MIG1ha2Vfc3Bvb2xzc19kcml2ZXJfaW5mb18zKAogICAgICAgIFRBTExPQ19D
VFggKm1lbV9jdHgsCiAgICAgICAgU1BPT0xfUFJJTlRFUl9EUklWRVJfSU5GT19MRVZFTF8zICoq
c3Bvb2xfZHJ2X2luZm8sCiAgICAgICAgRFJJVkVSX0lORk9fMyAqaW5mbzMKKTsKQk9PTCBtYWtl
X3Nwb29sc3NfYnVmZmVyNShUQUxMT0NfQ1RYICptZW1fY3R4LCBCVUZGRVI1ICpidWY1LCB1bnNp
Z25lZCBpbnQgbGVuLCB1bnNpZ25lZCBzaG9ydCAqc3JjKTsKQk9PTCBzcG9vbHNzX2lvX3FfYWRk
cHJpbnRlcmRyaXZlcihjaGFyICpkZXNjLCBTUE9PTF9RX0FERFBSSU5URVJEUklWRVIgKnFfdSwg
cHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2FkZHByaW50ZXJk
cml2ZXIoY2hhciAqZGVzYywgU1BPT0xfUl9BRERQUklOVEVSRFJJVkVSICpxX3UsIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHVuaV8yX2FzY19wcmludGVyX2RyaXZlcl8zKFNQT09M
X1BSSU5URVJfRFJJVkVSX0lORk9fTEVWRUxfMyAqdW5pLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5UX1BSSU5URVJfRFJJVkVSX0lORk9fTEVWRUxfMyAqKmFzYyk7CkJPT0wgdW5p
XzJfYXNjX3ByaW50ZXJfZHJpdmVyXzYoU1BPT0xfUFJJTlRFUl9EUklWRVJfSU5GT19MRVZFTF82
ICp1bmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlRfUFJJTlRFUl9EUklWRVJf
SU5GT19MRVZFTF82ICoqYXNjKTsKQk9PTCB1bmlfMl9hc2NfcHJpbnRlcl9pbmZvXzIoY29uc3Qg
U1BPT0xfUFJJTlRFUl9JTkZPX0xFVkVMXzIgKnVuaSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTlRfUFJJTlRFUl9JTkZPX0xFVkVMXzIgKiphc2MpOwpCT09MIG1ha2Vfc3Bvb2xzc19x
X2dldHByaW50ZXJkcml2ZXJkaXIoU1BPT0xfUV9HRVRQUklOVEVSRFJJVkVSRElSICpxX3UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnN0cmluZyBzZXJ2ZXJuYW1lLCBmc3RyaW5n
IGVudl9uYW1lLCB1bnNpZ25lZCBpbnQgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTkVXX0JVRkZFUiAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgb2ZmZXJlZCk7CkJPT0wgc3Bv
b2xzc19pb19xX2dldHByaW50ZXJkcml2ZXJkaXIoY2hhciAqZGVzYywgU1BPT0xfUV9HRVRQUklO
VEVSRFJJVkVSRElSICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29s
c3NfaW9fcl9nZXRwcmludGVyZHJpdmVyZGlyKGNoYXIgKmRlc2MsIFNQT09MX1JfR0VUUFJJTlRF
UkRSSVZFUkRJUiAqcl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNz
X2lvX3JfZW51bXByaW50cHJvY2Vzc29ycyhjaGFyICpkZXNjLCBTUE9PTF9SX0VOVU1QUklOVFBS
T0NFU1NPUlMgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19p
b19xX2VudW1wcmludHByb2Nlc3NvcnMoY2hhciAqZGVzYywgU1BPT0xfUV9FTlVNUFJJTlRQUk9D
RVNTT1JTICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9f
cV9hZGRwcmludHByb2Nlc3NvcihjaGFyICpkZXNjLCBTUE9PTF9RX0FERFBSSU5UUFJPQ0VTU09S
ICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcl9hZGRw
cmludHByb2Nlc3NvcihjaGFyICpkZXNjLCBTUE9PTF9SX0FERFBSSU5UUFJPQ0VTU09SICpyX3Us
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcl9lbnVtcHJpbnRw
cm9jZGF0YXR5cGVzKGNoYXIgKmRlc2MsIFNQT09MX1JfRU5VTVBSSU5UUFJPQ0RBVEFUWVBFUyAq
cl91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW51bXBy
aW50cHJvY2RhdGF0eXBlcyhjaGFyICpkZXNjLCBTUE9PTF9RX0VOVU1QUklOVFBST0NEQVRBVFlQ
RVMgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2Vu
dW1wcmludG1vbml0b3JzKGNoYXIgKmRlc2MsIFNQT09MX1FfRU5VTVBSSU5UTU9OSVRPUlMgKnFf
dSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2VudW1wcmlu
dG1vbml0b3JzKGNoYXIgKmRlc2MsIFNQT09MX1JfRU5VTVBSSU5UTU9OSVRPUlMgKnJfdSwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2VudW1wcmludGVyZGF0
YShjaGFyICpkZXNjLCBTUE9PTF9SX0VOVU1QUklOVEVSREFUQSAqcl91LCBwcnNfc3RydWN0ICpw
cywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3FfZW51bXByaW50ZXJkYXRhKGNoYXIgKmRl
c2MsIFNQT09MX1FfRU5VTVBSSU5URVJEQVRBICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIG1ha2Vfc3Bvb2xzc19xX2VudW1wcmludGVyZGF0YShTUE9PTF9RX0VOVU1QUklO
VEVSREFUQSAqcV91LAogICAgICAgICAgICAgICAgY29uc3QgUE9MSUNZX0hORCAqaG5kLAogICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGlkeCwgdW5zaWduZWQgaW50IHZhbHVlbGVuLCB1bnNp
Z25lZCBpbnQgZGF0YWxlbik7CkJPT0wgc3Bvb2xzc19pb19xX3NldHByaW50ZXJkYXRhKGNoYXIg
KmRlc2MsIFNQT09MX1FfU0VUUFJJTlRFUkRBVEEgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBk
ZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX3NldHByaW50ZXJkYXRhKGNoYXIgKmRlc2MsIFNQT09M
X1JfU0VUUFJJTlRFUkRBVEEgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wg
Y29udmVydF9zcGVjaWZpY19wYXJhbShOVF9QUklOVEVSX1BBUkFNICoqcGFyYW0sIGNvbnN0IFVO
SVNUUjIgKnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCB0eXBlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgbGVuKTsKQk9P
TCBzcG9vbHNzX2lvX3FfZGVsZXRlZm9ybShjaGFyICpkZXNjLCBTUE9PTF9RX0RFTEVURUZPUk0g
KnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX2RlbGV0
ZWZvcm0oY2hhciAqZGVzYywgU1BPT0xfUl9ERUxFVEVGT1JNICpyX3UsIHByc19zdHJ1Y3QgKnBz
LCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9hZGRmb3JtKGNoYXIgKmRlc2MsIFNQT09M
X1FfQURERk9STSAqcV91LCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNz
X2lvX3JfYWRkZm9ybShjaGFyICpkZXNjLCBTUE9PTF9SX0FEREZPUk0gKnJfdSwgcHJzX3N0cnVj
dCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX3NldGZvcm0oY2hhciAqZGVzYywg
U1BPT0xfUV9TRVRGT1JNICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNw
b29sc3NfaW9fcl9zZXRmb3JtKGNoYXIgKmRlc2MsIFNQT09MX1JfU0VURk9STSAqcl91LCBwcnNf
c3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3JfZ2V0am9iKGNoYXIgKmRl
c2MsIFNQT09MX1JfR0VUSk9CICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09M
IHNwb29sc3NfaW9fcV9nZXRqb2IoY2hhciAqZGVzYywgU1BPT0xfUV9HRVRKT0IgKnFfdSwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgZnJlZV9kZXZtb2RlKERFVklDRU1PREUgKmRl
dm1vZGUpOwp2b2lkIGZyZWVfcHJpbnRlcl9pbmZvXzEoUFJJTlRFUl9JTkZPXzEgKnByaW50ZXIp
Owp2b2lkIGZyZWVfcHJpbnRlcl9pbmZvXzIoUFJJTlRFUl9JTkZPXzIgKnByaW50ZXIpOwp2b2lk
IGZyZWVfcHJpbnRlcl9pbmZvXzMoUFJJTlRFUl9JTkZPXzMgKnByaW50ZXIpOwp2b2lkIGZyZWVf
am9iX2luZm9fMihKT0JfSU5GT18yICpqb2IpOwpCT09MIG1ha2Vfc3Bvb2xzc19xX3JlcGx5b3Bl
bnByaW50ZXIoU1BPT0xfUV9SRVBMWU9QRU5QUklOVEVSICpxX3UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBmc3RyaW5nIHN0cmluZywgdW5zaWduZWQgaW50IHByaW50ZXIs
IHVuc2lnbmVkIGludCB0eXBlKTsKQk9PTCBzcG9vbHNzX2lvX3FfcmVwbHlvcGVucHJpbnRlcihj
aGFyICpkZXNjLCBTUE9PTF9RX1JFUExZT1BFTlBSSU5URVIgKnFfdSwgcHJzX3N0cnVjdCAqcHMs
IGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX3JlcGx5b3BlbnByaW50ZXIoY2hhciAqZGVz
YywgU1BPT0xfUl9SRVBMWU9QRU5QUklOVEVSICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVw
dGgpOwpCT09MIG1ha2Vfc3Bvb2xzc19xX3JlcGx5X2Nsb3NlcHJpbnRlcihTUE9PTF9RX1JFUExZ
Q0xPU0VQUklOVEVSICpxX3UsIFBPTElDWV9ITkQgKmhuZCk7CkJPT0wgc3Bvb2xzc19pb19xX3Jl
cGx5Y2xvc2VwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1FfUkVQTFlDTE9TRVBSSU5URVIgKnFf
dSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX3JlcGx5Y2xv
c2VwcmludGVyKGNoYXIgKmRlc2MsIFNQT09MX1JfUkVQTFlDTE9TRVBSSU5URVIgKnJfdSwgcHJz
X3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgbWFrZV9zcG9vbHNzX3FfcmVwbHlfcnJwY24o
U1BPT0xfUV9SRVBMWV9SUlBDTiAqcV91LCBQT0xJQ1lfSE5EICpobmQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNoYW5nZV9sb3csIHVuc2lnbmVkIGludCBj
aGFuZ2VfaGlnaCk7CkJPT0wgc3Bvb2xzc19pb19xX3JlcGx5X3JycGNuKGNoYXIgKmRlc2MsIFNQ
T09MX1FfUkVQTFlfUlJQQ04gKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wg
c3Bvb2xzc19pb19yX3JlcGx5X3JycGNuKGNoYXIgKmRlc2MsIFNQT09MX1JfUkVQTFlfUlJQQ04g
KnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19xX2dldHBy
aW50ZXJkYXRhZXgoY2hhciAqZGVzYywgU1BPT0xfUV9HRVRQUklOVEVSREFUQUVYICpxX3UsIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcl9nZXRwcmludGVyZGF0
YWV4KGNoYXIgKmRlc2MsIFNQT09MX1JfR0VUUFJJTlRFUkRBVEFFWCAqcl91LCBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcG9vbHNzX2lvX3Ffc2V0cHJpbnRlcmRhdGFleChjaGFy
ICpkZXNjLCBTUE9PTF9RX1NFVFBSSU5URVJEQVRBRVggKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGlu
dCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19pb19yX3NldHByaW50ZXJkYXRhZXgoY2hhciAqZGVzYywg
U1BPT0xfUl9TRVRQUklOVEVSREFUQUVYICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgp
OwpCT09MIHNwb29sc3NfaW9fcV9lbnVtcHJpbnRlcmtleShjaGFyICpkZXNjLCBTUE9PTF9RX0VO
VU1QUklOVEVSS0VZICpxX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29s
c3NfaW9fcl9lbnVtcHJpbnRlcmtleShjaGFyICpkZXNjLCBTUE9PTF9SX0VOVU1QUklOVEVSS0VZ
ICpyX3UsIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcV9lbnVt
cHJpbnRlcmRhdGFleChjaGFyICpkZXNjLCBTUE9PTF9RX0VOVU1QUklOVEVSREFUQUVYICpxX3Us
IHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNwb29sc3NfaW9fcl9lbnVtcHJpbnRl
cmRhdGFleChjaGFyICpkZXNjLCBTUE9PTF9SX0VOVU1QUklOVEVSREFUQUVYICpyX3UsIHByc19z
dHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIG1ha2Vfc3Bvb2xzc19xX2dldHByaW50cHJvY2Vz
c29yZGlyZWN0b3J5KFNQT09MX1FfR0VUUFJJTlRQUk9DRVNTT1JESVJFQ1RPUlkgKnFfdSwgY29u
c3QgY2hhciAqbmFtZSwgY2hhciAqZW52aXJvbm1lbnQsIGludCBsZXZlbCwgTkVXX0JVRkZFUiAq
YnVmZmVyLCB1bnNpZ25lZCBpbnQgb2ZmZXJlZCk7CkJPT0wgc3Bvb2xzc19pb19xX2dldHByaW50
cHJvY2Vzc29yZGlyZWN0b3J5KGNoYXIgKmRlc2MsIFNQT09MX1FfR0VUUFJJTlRQUk9DRVNTT1JE
SVJFQ1RPUlkgKnFfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3Bvb2xzc19p
b19yX2dldHByaW50cHJvY2Vzc29yZGlyZWN0b3J5KGNoYXIgKmRlc2MsIFNQT09MX1JfR0VUUFJJ
TlRQUk9DRVNTT1JESVJFQ1RPUlkgKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJP
T0wgc21iX2lvX3ByaW50cHJvY2Vzc29yZGlyZWN0b3J5XzEoY2hhciAqZGVzYywgTkVXX0JVRkZF
UiAqYnVmZmVyLCBQUklOVFBST0NFU1NPUl9ESVJFQ1RPUllfMSAqaW5mbywgaW50IGRlcHRoKTsK
CgoKdm9pZCBpbml0X3Nydl9zaGFyZV9pbmZvMV9zdHIoU0hfSU5GT18xX1NUUiAqc2gxLCBjaGFy
ICpuZXRfbmFtZSwgY2hhciAqcmVtYXJrKTsKdm9pZCBpbml0X3Nydl9zaGFyZV9pbmZvMShTSF9J
TkZPXzEgKnNoMSwgY2hhciAqbmV0X25hbWUsIHVuc2lnbmVkIGludCB0eXBlLCBjaGFyICpyZW1h
cmspOwp2b2lkIGluaXRfc3J2X3NoYXJlX2luZm8yX3N0cihTSF9JTkZPXzJfU1RSICpzaDIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmV0X25hbWUsIGNoYXIgKnJlbWFy
aywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpwYXRoLCBjaGFyICpwYXNz
d2QpOwp2b2lkIGluaXRfc3J2X3NoYXJlX2luZm8yKFNIX0lORk9fMiAqc2gyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5ldF9uYW1lLCB1bnNpZ25lZCBpbnQgdHlwZSwg
Y2hhciAqcmVtYXJrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBwZXJtcywgdW5zaWduZWQgaW50IG1heF91c2VzLCB1bnNpZ25lZCBpbnQgbnVtX3VzZXMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcGF0aCwgY2hhciAqcGFzc3dkKTsK
dm9pZCBpbml0X3Nydl9zaGFyZV9pbmZvNTAyKFNIX0lORk9fNTAyICpzaDUwMiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuZXRfbmFtZSwgdW5zaWduZWQgaW50IHR5cGUs
IGNoYXIgKnJlbWFyaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgcGVybXMsIHVuc2lnbmVkIGludCBtYXhfdXNlcywgdW5zaWduZWQgaW50IG51bV91c2VzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnBhdGgsIGNoYXIgKnBhc3N3ZCwg
U0VDX0RFU0MgKnBzZCwgc2l6ZV90IHNkX3NpemUpOwp2b2lkIGluaXRfc3J2X3NoYXJlX2luZm81
MDJfc3RyKFNIX0lORk9fNTAyX1NUUiAqc2g1MDJzdHIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU0hfSU5GT181MDIgKnB0cnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhciAqbmV0X25hbWUsIGNoYXIgKnJlbWFyaywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFyICpwYXRoLCBjaGFyICpwYXNzd2QsIFNFQ19ERVNDICpwc2QsIHNpemVfdCBz
ZF9zaXplKTsKdm9pZCBpbml0X3Nydl9xX25ldF9zaGFyZV9lbnVtKFNSVl9RX05FVF9TSEFSRV9F
TlVNICpxX24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqc3J2X25hbWUs
IHVuc2lnbmVkIGludCBpbmZvX2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCBwcmVmZXJyZWRfbGVuLCBFTlVNX0hORCAqaG5kKTsKQk9PTCBzcnZfaW9f
cV9uZXRfc2hhcmVfZW51bShjaGFyICpkZXNjLCBTUlZfUV9ORVRfU0hBUkVfRU5VTSAqcV9uLCBw
cnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfc2hhcmVfZW51bShj
aGFyICpkZXNjLCBTUlZfUl9ORVRfU0hBUkVfRU5VTSAqcl9uLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBzcnZfaW9fcV9uZXRfc2hhcmVfZ2V0X2luZm8oY2hhciAqZGVzYywgU1JW
X1FfTkVUX1NIQVJFX0dFVF9JTkZPICpxX24sIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpC
T09MIHNydl9pb19yX25ldF9zaGFyZV9nZXRfaW5mbyhjaGFyICpkZXNjLCBTUlZfUl9ORVRfU0hB
UkVfR0VUX0lORk8gKnJfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3J2X2lv
X3FfbmV0X3NoYXJlX3NldF9pbmZvKGNoYXIgKmRlc2MsIFNSVl9RX05FVF9TSEFSRV9TRVRfSU5G
TyAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfc2hh
cmVfc2V0X2luZm8oY2hhciAqZGVzYywgU1JWX1JfTkVUX1NIQVJFX1NFVF9JTkZPICpxX24sIHBy
c19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNydl9pb19xX25ldF9zaGFyZV9hZGQoY2hh
ciAqZGVzYywgU1JWX1FfTkVUX1NIQVJFX0FERCAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRl
cHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfc2hhcmVfYWRkKGNoYXIgKmRlc2MsIFNSVl9SX05FVF9T
SEFSRV9BREQgKnFfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3J2X2lvX3Ff
bmV0X3NoYXJlX2RlbChjaGFyICpkZXNjLCBTUlZfUV9ORVRfU0hBUkVfREVMICpxX24sIHByc19z
dHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNydl9pb19yX25ldF9zaGFyZV9kZWwoY2hhciAq
ZGVzYywgU1JWX1JfTkVUX1NIQVJFX0RFTCAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRo
KTsKdm9pZCBpbml0X3Nydl9zZXNzX2luZm8wX3N0cihTRVNTX0lORk9fMF9TVFIgKnNzMCwgY2hh
ciAqbmFtZSk7CnZvaWQgaW5pdF9zcnZfc2Vzc19pbmZvMChTRVNTX0lORk9fMCAqc3MwLCBjaGFy
ICpuYW1lKTsKdm9pZCBpbml0X3Nydl9zZXNzX2luZm8xX3N0cihTRVNTX0lORk9fMV9TVFIgKnNz
MSwgY2hhciAqbmFtZSwgY2hhciAqdXNlcik7CnZvaWQgaW5pdF9zcnZfc2Vzc19pbmZvMShTRVNT
X0lORk9fMSAqc3MxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5hbWUs
IGNoYXIgKnVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
IG51bV9vcGVucywgdW5zaWduZWQgaW50IG9wZW5fdGltZSwgdW5zaWduZWQgaW50IGlkbGVfdGlt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdXNlcl9mbGFn
cyk7CnZvaWQgaW5pdF9zcnZfcV9uZXRfc2Vzc19lbnVtKFNSVl9RX05FVF9TRVNTX0VOVU0gKnFf
biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzcnZfbmFtZSwgY2hhciAq
cXVhbF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz
ZXNzX2xldmVsLCBTUlZfU0VTU19JTkZPX0NUUiAqY3RyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfbGVuLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVOVU1fSE5EICpobmQpOwpCT09MIHNydl9pb19xX25ldF9zZXNzX2VudW0o
Y2hhciAqZGVzYywgU1JWX1FfTkVUX1NFU1NfRU5VTSAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfc2Vzc19lbnVtKGNoYXIgKmRlc2MsIFNSVl9SX05F
VF9TRVNTX0VOVU0gKnJfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9z
cnZfY29ubl9pbmZvMChDT05OX0lORk9fMCAqc3MwLCB1bnNpZ25lZCBpbnQgaWQpOwp2b2lkIGlu
aXRfc3J2X2Nvbm5faW5mbzFfc3RyKENPTk5fSU5GT18xX1NUUiAqc3MxLCBjaGFyICp1c3JfbmFt
ZSwgY2hhciAqbmV0X25hbWUpOwp2b2lkIGluaXRfc3J2X2Nvbm5faW5mbzEoQ09OTl9JTkZPXzEg
KnNzMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWQsIHVu
c2lnbmVkIGludCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBudW1fb3BlbnMsIHVuc2lnbmVkIGludCBudW1fdXNlcnMsIHVuc2lnbmVkIGludCBvcGVu
X3RpbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqdXNyX25hbWUsIGNo
YXIgKm5ldF9uYW1lKTsKdm9pZCBpbml0X3Nydl9xX25ldF9jb25uX2VudW0oU1JWX1FfTkVUX0NP
Tk5fRU5VTSAqcV9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnNydl9u
YW1lLCBjaGFyICpxdWFsX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IGNvbm5fbGV2ZWwsIFNSVl9DT05OX0lORk9fQ1RSICpjdHIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHByZWZlcnJlZF9sZW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRU5VTV9ITkQgKmhuZCk7CkJPT0wgc3J2X2lvX3FfbmV0
X2Nvbm5fZW51bShjaGFyICpkZXNjLCBTUlZfUV9ORVRfQ09OTl9FTlVNICpxX24sIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNydl9pb19yX25ldF9jb25uX2VudW0oY2hhciAqZGVz
YywgU1JWX1JfTkVUX0NPTk5fRU5VTSAqcl9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsK
dm9pZCBpbml0X3Nydl9maWxlX2luZm8zX3N0cihGSUxFX0lORk9fM19TVFIgKmZpMywgY2hhciAq
dXNlcl9uYW1lLCBjaGFyICpwYXRoX25hbWUpOwp2b2lkIGluaXRfc3J2X2ZpbGVfaW5mbzMoRklM
RV9JTkZPXzMgKmZsMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgaWQsIHVuc2lnbmVkIGludCBwZXJtcywgdW5zaWduZWQgaW50IG51bV9sb2NrcywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpwYXRoX25hbWUsIGNoYXIgKnVzZXJfbmFt
ZSk7CnZvaWQgaW5pdF9zcnZfcV9uZXRfZmlsZV9lbnVtKFNSVl9RX05FVF9GSUxFX0VOVU0gKnFf
biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzcnZfbmFtZSwgY2hhciAq
cXVhbF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBm
aWxlX2xldmVsLCBTUlZfRklMRV9JTkZPX0NUUiAqY3RyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfbGVuLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVOVU1fSE5EICpobmQpOwpCT09MIHNydl9pb19xX25ldF9maWxlX2VudW0o
Y2hhciAqZGVzYywgU1JWX1FfTkVUX0ZJTEVfRU5VTSAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50
IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfZmlsZV9lbnVtKGNoYXIgKmRlc2MsIFNSVl9SX05F
VF9GSUxFX0VOVU0gKnJfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CnZvaWQgaW5pdF9z
cnZfaW5mb18xMDAoU1JWX0lORk9fMTAwICpzdjEwMCwgdW5zaWduZWQgaW50IHBsYXRmb3JtX2lk
LCBjaGFyICpuYW1lKTsKdm9pZCBpbml0X3Nydl9pbmZvXzEwMShTUlZfSU5GT18xMDEgKnN2MTAx
LCB1bnNpZ25lZCBpbnQgcGxhdGZvcm1faWQsIGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZlcl9tYWpvciwgdW5zaWduZWQgaW50IHZlcl9t
aW5vciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc3J2X3R5
cGUsIGNoYXIgKmNvbW1lbnQpOwp2b2lkIGluaXRfc3J2X2luZm9fMTAyKFNSVl9JTkZPXzEwMiAq
c3YxMDIsIHVuc2lnbmVkIGludCBwbGF0Zm9ybV9pZCwgY2hhciAqbmFtZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICpjb21tZW50LCB1bnNpZ25lZCBpbnQgdmVyX21ham9y
LCB1bnNpZ25lZCBpbnQgdmVyX21pbm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGludCBzcnZfdHlwZSwgdW5zaWduZWQgaW50IHVzZXJzLCB1bnNpZ25lZCBpbnQg
ZGlzYywgdW5zaWduZWQgaW50IGhpZGRlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpbnQgYW5ub3VuY2UsIHVuc2lnbmVkIGludCBhbm5fZGVsdGEsIHVuc2lnbmVk
IGludCBsaWNlbnNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICp1c3Jf
cGF0aCk7CnZvaWQgaW5pdF9zcnZfcV9uZXRfc3J2X2dldF9pbmZvKFNSVl9RX05FVF9TUlZfR0VU
X0lORk8gKnNydiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpzZXJ2ZXJf
bmFtZSwgdW5zaWduZWQgaW50IHN3aXRjaF92YWx1ZSk7CkJPT0wgc3J2X2lvX3FfbmV0X3Nydl9n
ZXRfaW5mbyhjaGFyICpkZXNjLCBTUlZfUV9ORVRfU1JWX0dFVF9JTkZPICpxX24sIHByc19zdHJ1
Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfc3J2X3JfbmV0X3Nydl9nZXRfaW5mbyhTUlZf
Ul9ORVRfU1JWX0dFVF9JTkZPICpzcnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgaW50IHN3aXRjaF92YWx1ZSwgU1JWX0lORk9fQ1RSICpjdHIsIE5UU1RBVFVTIHN0
YXR1cyk7CnZvaWQgaW5pdF9zcnZfcl9uZXRfc3J2X3NldF9pbmZvKFNSVl9SX05FVF9TUlZfU0VU
X0lORk8gKnNydiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50
IHN3aXRjaF92YWx1ZSwgTlRTVEFUVVMgc3RhdHVzKTsKQk9PTCBzcnZfaW9fcV9uZXRfc3J2X3Nl
dF9pbmZvKGNoYXIgKmRlc2MsIFNSVl9RX05FVF9TUlZfU0VUX0lORk8gKnFfbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNy
dl9pb19yX25ldF9zcnZfZ2V0X2luZm8oY2hhciAqZGVzYywgU1JWX1JfTkVUX1NSVl9HRVRfSU5G
TyAqcl9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9uZXRfc3J2
X3NldF9pbmZvKGNoYXIgKmRlc2MsIFNSVl9SX05FVF9TUlZfU0VUX0lORk8gKnJfbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09M
IHNydl9pb19xX25ldF9yZW1vdGVfdG9kKGNoYXIgKmRlc2MsIFNSVl9RX05FVF9SRU1PVEVfVE9E
ICpxX24sIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwp2b2lkIGluaXRfdGltZV9vZl9kYXlf
aW5mbyhUSU1FX09GX0RBWV9JTkZPICp0b2QsIHVuc2lnbmVkIGludCBlbGFwc2VkdCwgdW5zaWdu
ZWQgaW50IG1zZWNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaG91
cnMsIHVuc2lnbmVkIGludCBtaW5zLCB1bnNpZ25lZCBpbnQgc2VjcywgdW5zaWduZWQgaW50IGh1
bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgem9uZSwgdW5zaWdu
ZWQgaW50IHRpbnRlcnZhbHMsIHVuc2lnbmVkIGludCBkYXksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBtb250aCwgdW5zaWduZWQgaW50IHllYXIsIHVuc2lnbmVkIGlu
dCB3ZWVrZGF5KTsKQk9PTCBzcnZfaW9fcl9uZXRfcmVtb3RlX3RvZChjaGFyICpkZXNjLCBTUlZf
Ul9ORVRfUkVNT1RFX1RPRCAqcl9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBz
cnZfaW9fcV9uZXRfZGlza19lbnVtKGNoYXIgKmRlc2MsIFNSVl9RX05FVF9ESVNLX0VOVU0gKnFf
biwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3J2X2lvX3JfbmV0X2Rpc2tfZW51
bShjaGFyICpkZXNjLCBTUlZfUl9ORVRfRElTS19FTlVNICpyX24sIHByc19zdHJ1Y3QgKnBzLCBp
bnQgZGVwdGgpOwpCT09MIHNydl9pb19xX25ldF9uYW1lX3ZhbGlkYXRlKGNoYXIgKmRlc2MsIFNS
Vl9RX05FVF9OQU1FX1ZBTElEQVRFICpxX24sIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpC
T09MIHNydl9pb19yX25ldF9uYW1lX3ZhbGlkYXRlKGNoYXIgKmRlc2MsIFNSVl9SX05FVF9OQU1F
X1ZBTElEQVRFICpyX24sIHByc19zdHJ1Y3QgKnBzLCBpbnQgZGVwdGgpOwpCT09MIHNydl9pb19x
X25ldF9maWxlX3F1ZXJ5X3NlY2Rlc2MoY2hhciAqZGVzYywgU1JWX1FfTkVUX0ZJTEVfUVVFUllf
U0VDREVTQyAqcV9uLCBwcnNfc3RydWN0ICpwcywgaW50IGRlcHRoKTsKQk9PTCBzcnZfaW9fcl9u
ZXRfZmlsZV9xdWVyeV9zZWNkZXNjKGNoYXIgKmRlc2MsIFNSVl9SX05FVF9GSUxFX1FVRVJZX1NF
Q0RFU0MgKnJfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3J2X2lvX3FfbmV0
X2ZpbGVfc2V0X3NlY2Rlc2MoY2hhciAqZGVzYywgU1JWX1FfTkVUX0ZJTEVfU0VUX1NFQ0RFU0Mg
KnFfbiwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CkJPT0wgc3J2X2lvX3JfbmV0X2ZpbGVf
c2V0X3NlY2Rlc2MoY2hhciAqZGVzYywgU1JWX1JfTkVUX0ZJTEVfU0VUX1NFQ0RFU0MgKnJfbiwg
cHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CgoKCnZvaWQgaW5pdF93a3NfcV9xdWVyeV9pbmZv
KFdLU19RX1FVRVJZX0lORk8gKnFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFyICpzZXJ2ZXIsIHVuc2lnbmVkIHNob3J0IHN3aXRjaF92YWx1ZSkgOwpCT09MIHdrc19pb19x
X3F1ZXJ5X2luZm8oY2hhciAqZGVzYywgV0tTX1FfUVVFUllfSU5GTyAqcV91LCBwcnNfc3RydWN0
ICpwcywgaW50IGRlcHRoKTsKdm9pZCBpbml0X3drc19pbmZvXzEwMChXS1NfSU5GT18xMDAgKmlu
ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGxhdGZvcm1f
aWQsIHVuc2lnbmVkIGludCB2ZXJfbWFqb3IsIHVuc2lnbmVkIGludCB2ZXJfbWlub3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbXlfbmFtZSwgY2hhciAqZG9tYWluX25h
bWUpOwp2b2lkIGluaXRfd2tzX3JfcXVlcnlfaW5mbyhXS1NfUl9RVUVSWV9JTkZPICpyX3UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzd2l0Y2hfdmFsdWUsIFdLU19J
TkZPXzEwMCAqd2tzMTAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICBOVFNUQVRVUyBzdGF0
dXMpIDsKQk9PTCB3a3NfaW9fcl9xdWVyeV9pbmZvKGNoYXIgKmRlc2MsIFdLU19SX1FVRVJZX0lO
Rk8gKnJfdSwgcHJzX3N0cnVjdCAqcHMsIGludCBkZXB0aCk7CgoKCkJPT0wgYXBpX25ldGRmc19y
cGMocGlwZXNfc3RydWN0ICpwKTsKCgoKdW5zaWduZWQgaW50IF9kZnNfZXhpc3QocGlwZXNfc3Ry
dWN0ICpwLCBERlNfUV9ERlNfRVhJU1QgKnFfdSwgREZTX1JfREZTX0VYSVNUICpyX3UpOwpXRVJS
T1IgX2Rmc19hZGQocGlwZXNfc3RydWN0ICpwLCBERlNfUV9ERlNfQUREKiBxX3UsIERGU19SX0RG
U19BREQgKnJfdSk7CldFUlJPUiBfZGZzX3JlbW92ZShwaXBlc19zdHJ1Y3QgKnAsIERGU19RX0RG
U19SRU1PVkUgKnFfdSwKICAgICAgICAgICAgICAgICAgIERGU19SX0RGU19SRU1PVkUgKnJfdSk7
CldFUlJPUiBfZGZzX2VudW0ocGlwZXNfc3RydWN0ICpwLCBERlNfUV9ERlNfRU5VTSAqcV91LCBE
RlNfUl9ERlNfRU5VTSAqcl91KTsKV0VSUk9SIF9kZnNfZ2V0X2luZm8ocGlwZXNfc3RydWN0ICpw
LCBERlNfUV9ERlNfR0VUX0lORk8gKnFfdSwKICAgICAgICAgICAgICAgICAgICAgREZTX1JfREZT
X0dFVF9JTkZPICpyX3UpOwoKCgpCT09MIGFwaV9udGxzYV9ycGMocGlwZXNfc3RydWN0ICpwKTsK
CgoKQk9PTCBpbml0X3BpcGVfaGFuZGxlX2xpc3QocGlwZXNfc3RydWN0ICpwLCBjaGFyICpwaXBl
X25hbWUpOwpCT09MIGNyZWF0ZV9wb2xpY3lfaG5kKHBpcGVzX3N0cnVjdCAqcCwgUE9MSUNZX0hO
RCAqaG5kLCB2b2lkICgqZnJlZV9mbikodm9pZCAqKSwgdm9pZCAqZGF0YV9wdHIpOwpCT09MIGZp
bmRfcG9saWN5X2J5X2huZChwaXBlc19zdHJ1Y3QgKnAsIFBPTElDWV9ITkQgKmhuZCwgdm9pZCAq
KmRhdGFfcCk7CkJPT0wgY2xvc2VfcG9saWN5X2huZChwaXBlc19zdHJ1Y3QgKnAsIFBPTElDWV9I
TkQgKmhuZCk7CnZvaWQgY2xvc2VfcG9saWN5X2J5X3BpcGUocGlwZXNfc3RydWN0ICpwKTsKCgoK
TlRTVEFUVVMgX2xzYV9vcGVuX3BvbGljeTIocGlwZXNfc3RydWN0ICpwLCBMU0FfUV9PUEVOX1BP
TDIgKnFfdSwgTFNBX1JfT1BFTl9QT0wyICpyX3UpOwpOVFNUQVRVUyBfbHNhX29wZW5fcG9saWN5
KHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfT1BFTl9QT0wgKnFfdSwgTFNBX1JfT1BFTl9QT0wgKnJf
dSk7Ck5UU1RBVFVTIF9sc2FfZW51bV90cnVzdF9kb20ocGlwZXNfc3RydWN0ICpwLCBMU0FfUV9F
TlVNX1RSVVNUX0RPTSAqcV91LCBMU0FfUl9FTlVNX1RSVVNUX0RPTSAqcl91KTsKTlRTVEFUVVMg
X2xzYV9xdWVyeV9pbmZvKHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfUVVFUllfSU5GTyAqcV91LCBM
U0FfUl9RVUVSWV9JTkZPICpyX3UpOwpOVFNUQVRVUyBfbHNhX2xvb2t1cF9zaWRzKHBpcGVzX3N0
cnVjdCAqcCwgTFNBX1FfTE9PS1VQX1NJRFMgKnFfdSwgTFNBX1JfTE9PS1VQX1NJRFMgKnJfdSk7
Ck5UU1RBVFVTIF9sc2FfbG9va3VwX25hbWVzKHBpcGVzX3N0cnVjdCAqcCxMU0FfUV9MT09LVVBf
TkFNRVMgKnFfdSwgTFNBX1JfTE9PS1VQX05BTUVTICpyX3UpOwpOVFNUQVRVUyBfbHNhX2Nsb3Nl
KHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfQ0xPU0UgKnFfdSwgTFNBX1JfQ0xPU0UgKnJfdSk7Ck5U
U1RBVFVTIF9sc2Ffb3Blbl9zZWNyZXQocGlwZXNfc3RydWN0ICpwLCBMU0FfUV9PUEVOX1NFQ1JF
VCAqcV91LCBMU0FfUl9PUEVOX1NFQ1JFVCAqcl91KTsKTlRTVEFUVVMgX2xzYV9lbnVtX3ByaXZz
KHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfRU5VTV9QUklWUyAqcV91LCBMU0FfUl9FTlVNX1BSSVZT
ICpyX3UpOwpOVFNUQVRVUyBfbHNhX3ByaXZfZ2V0X2Rpc3BuYW1lKHBpcGVzX3N0cnVjdCAqcCwg
TFNBX1FfUFJJVl9HRVRfRElTUE5BTUUgKnFfdSwgTFNBX1JfUFJJVl9HRVRfRElTUE5BTUUgKnJf
dSk7Ck5UU1RBVFVTIF9sc2FfZW51bV9hY2NvdW50cyhwaXBlc19zdHJ1Y3QgKnAsIExTQV9RX0VO
VU1fQUNDT1VOVFMgKnFfdSwgTFNBX1JfRU5VTV9BQ0NPVU5UUyAqcl91KTsKTlRTVEFUVVMgX2xz
YV91bmtfZ2V0X2Nvbm51c2VyKHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfVU5LX0dFVF9DT05OVVNF
UiAqcV91LCBMU0FfUl9VTktfR0VUX0NPTk5VU0VSICpyX3UpOwpOVFNUQVRVUyBfbHNhX29wZW5f
YWNjb3VudChwaXBlc19zdHJ1Y3QgKnAsIExTQV9RX09QRU5BQ0NPVU5UICpxX3UsIExTQV9SX09Q
RU5BQ0NPVU5UICpyX3UpOwpOVFNUQVRVUyBfbHNhX2VudW1fcHJpdnNhY2NvdW50KHBpcGVzX3N0
cnVjdCAqcCwgTFNBX1FfRU5VTVBSSVZTQUNDT1VOVCAqcV91LCBMU0FfUl9FTlVNUFJJVlNBQ0NP
VU5UICpyX3UpOwpOVFNUQVRVUyBfbHNhX2dldHN5c3RlbWFjY291bnQocGlwZXNfc3RydWN0ICpw
LCBMU0FfUV9HRVRTWVNURU1BQ0NPVU5UICpxX3UsIExTQV9SX0dFVFNZU1RFTUFDQ09VTlQgKnJf
dSk7Ck5UU1RBVFVTIF9sc2Ffc2V0c3lzdGVtYWNjb3VudChwaXBlc19zdHJ1Y3QgKnAsIExTQV9R
X1NFVFNZU1RFTUFDQ09VTlQgKnFfdSwgTFNBX1JfU0VUU1lTVEVNQUNDT1VOVCAqcl91KTsKTlRT
VEFUVVMgX2xzYV9hZGRwcml2cyhwaXBlc19zdHJ1Y3QgKnAsIExTQV9RX0FERFBSSVZTICpxX3Us
IExTQV9SX0FERFBSSVZTICpyX3UpOwpOVFNUQVRVUyBfbHNhX3JlbW92ZXByaXZzKHBpcGVzX3N0
cnVjdCAqcCwgTFNBX1FfUkVNT1ZFUFJJVlMgKnFfdSwgTFNBX1JfUkVNT1ZFUFJJVlMgKnJfdSk7
Ck5UU1RBVFVTIF9sc2FfcXVlcnlfc2Vjb2JqKHBpcGVzX3N0cnVjdCAqcCwgTFNBX1FfUVVFUllf
U0VDX09CSiAqcV91LCBMU0FfUl9RVUVSWV9TRUNfT0JKICpyX3UpOwoKCgpCT09MIGFwaV9uZXRs
b2dfcnBjKHBpcGVzX3N0cnVjdCAqcCk7CgoKCk5UU1RBVFVTIF9uZXRfbG9nb25fY3RybChwaXBl
c19zdHJ1Y3QgKnAsIE5FVF9RX0xPR09OX0NUUkwgKnFfdSwKICAgICAgICAgICAgICAgICAgICAg
ICBORVRfUl9MT0dPTl9DVFJMICpyX3UpOwpOVFNUQVRVUyBfbmV0X2xvZ29uX2N0cmwyKHBpcGVz
X3N0cnVjdCAqcCwgTkVUX1FfTE9HT05fQ1RSTDIgKnFfdSwgTkVUX1JfTE9HT05fQ1RSTDIgKnJf
dSk7Ck5UU1RBVFVTIF9uZXRfdHJ1c3RfZG9tX2xpc3QocGlwZXNfc3RydWN0ICpwLCBORVRfUV9U
UlVTVF9ET01fTElTVCAqcV91LCBORVRfUl9UUlVTVF9ET01fTElTVCAqcl91KTsKTlRTVEFUVVMg
X25ldF9yZXFfY2hhbChwaXBlc19zdHJ1Y3QgKnAsIE5FVF9RX1JFUV9DSEFMICpxX3UsIE5FVF9S
X1JFUV9DSEFMICpyX3UpOwpOVFNUQVRVUyBfbmV0X2F1dGgocGlwZXNfc3RydWN0ICpwLCBORVRf
UV9BVVRIICpxX3UsIE5FVF9SX0FVVEggKnJfdSk7Ck5UU1RBVFVTIF9uZXRfYXV0aF8yKHBpcGVz
X3N0cnVjdCAqcCwgTkVUX1FfQVVUSF8yICpxX3UsIE5FVF9SX0FVVEhfMiAqcl91KTsKTlRTVEFU
VVMgX25ldF9zcnZfcHdzZXQocGlwZXNfc3RydWN0ICpwLCBORVRfUV9TUlZfUFdTRVQgKnFfdSwg
TkVUX1JfU1JWX1BXU0VUICpyX3UpOwpOVFNUQVRVUyBfbmV0X3NhbV9sb2dvZmYocGlwZXNfc3Ry
dWN0ICpwLCBORVRfUV9TQU1fTE9HT0ZGICpxX3UsIE5FVF9SX1NBTV9MT0dPRkYgKnJfdSk7Ck5U
U1RBVFVTIF9uZXRfc2FtX2xvZ29uKHBpcGVzX3N0cnVjdCAqcCwgTkVUX1FfU0FNX0xPR09OICpx
X3UsIE5FVF9SX1NBTV9MT0dPTiAqcl91KTsKCgoKQk9PTCBjcmVhdGVfbmV4dF9wZHUocGlwZXNf
c3RydWN0ICpwKTsKQk9PTCBhcGlfcGlwZV9iaW5kX2F1dGhfcmVzcChwaXBlc19zdHJ1Y3QgKnAs
IHByc19zdHJ1Y3QgKnJwY19pbl9wKTsKQk9PTCBzZXR1cF9mYXVsdF9wZHUocGlwZXNfc3RydWN0
ICpwLCBOVFNUQVRVUyBzdGF0dXMpOwpCT09MIGNoZWNrX2JpbmRfcmVxKGNoYXIqIHBpcGVfbmFt
ZSwgUlBDX0lGQUNFKiBhYnN0cmFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJQQ19JRkFDRSogdHJhbnNmZXIpOwpCT09MIGFwaV9waXBlX2JpbmRfcmVxKHBpcGVz
X3N0cnVjdCAqcCwgcHJzX3N0cnVjdCAqcnBjX2luX3ApOwpCT09MIGFwaV9waXBlX2F1dGhfcHJv
Y2VzcyhwaXBlc19zdHJ1Y3QgKnAsIHByc19zdHJ1Y3QgKnJwY19pbik7CnN0cnVjdCBjdXJyZW50
X3VzZXIgKmdldF9jdXJyZW50X3VzZXIoc3RydWN0IGN1cnJlbnRfdXNlciAqdXNlciwgcGlwZXNf
c3RydWN0ICpwKTsKQk9PTCBhcGlfcGlwZV9yZXF1ZXN0KHBpcGVzX3N0cnVjdCAqcCk7CkJPT0wg
YXBpX3JwY1ROUChwaXBlc19zdHJ1Y3QgKnAsIGNoYXIgKnJwY19uYW1lLAogICAgICAgICAgICAg
ICAgc3RydWN0IGFwaV9zdHJ1Y3QgKmFwaV9ycGNfY21kcyk7CgoKCnBpcGVzX3N0cnVjdCAqZ2V0
X2ZpcnN0X3BpcGUodm9pZCk7CnBpcGVzX3N0cnVjdCAqZ2V0X25leHRfcGlwZShwaXBlc19zdHJ1
Y3QgKnApOwp2b2lkIHNldF9waXBlX2hhbmRsZV9vZmZzZXQoaW50IG1heF9vcGVuX2ZpbGVzKTsK
dm9pZCByZXNldF9jaGFpbl9wKHZvaWQpOwp2b2lkIGluaXRfcnBjX3BpcGVfaG5kKHZvaWQpOwpw
aXBlc19zdHJ1Y3QgKm9wZW5fcnBjX3BpcGVfcChjaGFyICpwaXBlX25hbWUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCB1bnNpZ25lZCBzaG9y
dCB2dWlkKTsKdm9pZCBmcmVlX3BpcGVfY29udGV4dChwaXBlc19zdHJ1Y3QgKnApOwpzc2l6ZV90
IHdyaXRlX3RvX3BpcGUocGlwZXNfc3RydWN0ICpwLCBjaGFyICpkYXRhLCBzaXplX3Qgbik7CnNz
aXplX3QgcmVhZF9mcm9tX3BpcGUocGlwZXNfc3RydWN0ICpwLCBjaGFyICpkYXRhLCBzaXplX3Qg
bik7CkJPT0wgd2FpdF9ycGNfcGlwZV9obmRfc3RhdGUocGlwZXNfc3RydWN0ICpwLCB1bnNpZ25l
ZCBzaG9ydCBwcmlvcml0eSk7CkJPT0wgc2V0X3JwY19waXBlX2huZF9zdGF0ZShwaXBlc19zdHJ1
Y3QgKnAsIHVuc2lnbmVkIHNob3J0IGRldmljZV9zdGF0ZSk7CkJPT0wgY2xvc2VfcnBjX3BpcGVf
aG5kKHBpcGVzX3N0cnVjdCAqcCwgY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4pOwpwaXBlc19zdHJ1
Y3QgKmdldF9ycGNfcGlwZV9wKGNoYXIgKmJ1ZiwgaW50IHdoZXJlKTsKcGlwZXNfc3RydWN0ICpn
ZXRfcnBjX3BpcGUoaW50IHBudW0pOwoKCgpCT09MIGFwaV9yZWdfcnBjKHBpcGVzX3N0cnVjdCAq
cCk7CgoKCk5UU1RBVFVTIF9yZWdfY2xvc2UocGlwZXNfc3RydWN0ICpwLCBSRUdfUV9DTE9TRSAq
cV91LCBSRUdfUl9DTE9TRSAqcl91KTsKTlRTVEFUVVMgX3JlZ19vcGVuKHBpcGVzX3N0cnVjdCAq
cCwgUkVHX1FfT1BFTl9IS0xNICpxX3UsIFJFR19SX09QRU5fSEtMTSAqcl91KTsKTlRTVEFUVVMg
X3JlZ19vcGVuX2VudHJ5KHBpcGVzX3N0cnVjdCAqcCwgUkVHX1FfT1BFTl9FTlRSWSAqcV91LCBS
RUdfUl9PUEVOX0VOVFJZICpyX3UpOwpOVFNUQVRVUyBfcmVnX2luZm8ocGlwZXNfc3RydWN0ICpw
LCBSRUdfUV9JTkZPICpxX3UsIFJFR19SX0lORk8gKnJfdSk7Ck5UU1RBVFVTIF9yZWdfc2h1dGRv
d24ocGlwZXNfc3RydWN0ICpwLCBSRUdfUV9TSFVURE9XTiAqcV91LCBSRUdfUl9TSFVURE9XTiAq
cl91KTsKTlRTVEFUVVMgX3JlZ19hYm9ydF9zaHV0ZG93bihwaXBlc19zdHJ1Y3QgKnAsIFJFR19R
X0FCT1JUX1NIVVRET1dOICpxX3UsIFJFR19SX0FCT1JUX1NIVVRET1dOICpyX3UpOwoKCgpCT09M
IGFwaV9zYW1yX3JwYyhwaXBlc19zdHJ1Y3QgKnApOwoKCgpOVFNUQVRVUyBfc2Ftcl9jbG9zZV9o
bmQocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfQ0xPU0VfSE5EICpxX3UsIFNBTVJfUl9DTE9TRV9I
TkQgKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX29wZW5fZG9tYWluKHBpcGVzX3N0cnVjdCAqcCwgU0FN
Ul9RX09QRU5fRE9NQUlOICpxX3UsIFNBTVJfUl9PUEVOX0RPTUFJTiAqcl91KTsKTlRTVEFUVVMg
X3NhbXJfZ2V0X3VzcmRvbV9wd2luZm8ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfR0VUX1VTUkRP
TV9QV0lORk8gKnFfdSwgU0FNUl9SX0dFVF9VU1JET01fUFdJTkZPICpyX3UpOwpOVFNUQVRVUyBf
c2Ftcl9xdWVyeV9zZWNfb2JqKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX1FVRVJZX1NFQ19PQkog
KnFfdSwgU0FNUl9SX1FVRVJZX1NFQ19PQkogKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX2VudW1fZG9t
X3VzZXJzKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX0VOVU1fRE9NX1VTRVJTICpxX3UsIFNBTVJf
Ul9FTlVNX0RPTV9VU0VSUyAqcl91KTsKTlRTVEFUVVMgX3NhbXJfZW51bV9kb21fZ3JvdXBzKHBp
cGVzX3N0cnVjdCAqcCwgU0FNUl9RX0VOVU1fRE9NX0dST1VQUyAqcV91LCBTQU1SX1JfRU5VTV9E
T01fR1JPVVBTICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9lbnVtX2RvbV9hbGlhc2VzKHBpcGVzX3N0
cnVjdCAqcCwgU0FNUl9RX0VOVU1fRE9NX0FMSUFTRVMgKnFfdSwgU0FNUl9SX0VOVU1fRE9NX0FM
SUFTRVMgKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX3F1ZXJ5X2Rpc3BpbmZvKHBpcGVzX3N0cnVjdCAq
cCwgU0FNUl9RX1FVRVJZX0RJU1BJTkZPICpxX3UsIFNBTVJfUl9RVUVSWV9ESVNQSU5GTyAqcl91
KTsKTlRTVEFUVVMgX3NhbXJfcXVlcnlfYWxpYXNpbmZvKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9R
X1FVRVJZX0FMSUFTSU5GTyAqcV91LCBTQU1SX1JfUVVFUllfQUxJQVNJTkZPICpyX3UpOwpOVFNU
QVRVUyBfc2Ftcl9sb29rdXBfbmFtZXMocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfTE9PS1VQX05B
TUVTICpxX3UsIFNBTVJfUl9MT09LVVBfTkFNRVMgKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX2NoZ3Bh
c3N3ZF91c2VyKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX0NIR1BBU1NXRF9VU0VSICpxX3UsIFNB
TVJfUl9DSEdQQVNTV0RfVVNFUiAqcl91KTsKTlRTVEFUVVMgX3NhbXJfbG9va3VwX3JpZHMocGlw
ZXNfc3RydWN0ICpwLCBTQU1SX1FfTE9PS1VQX1JJRFMgKnFfdSwgU0FNUl9SX0xPT0tVUF9SSURT
ICpyX3UpOwpOVFNUQVRVUyBfYXBpX3NhbXJfb3Blbl91c2VyKHBpcGVzX3N0cnVjdCAqcCwgU0FN
Ul9RX09QRU5fVVNFUiAqcV91LCBTQU1SX1JfT1BFTl9VU0VSICpyX3UpOwpOVFNUQVRVUyBfc2Ft
cl9xdWVyeV91c2VyaW5mbyhwaXBlc19zdHJ1Y3QgKnAsIFNBTVJfUV9RVUVSWV9VU0VSSU5GTyAq
cV91LCBTQU1SX1JfUVVFUllfVVNFUklORk8gKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX3F1ZXJ5X3Vz
ZXJncm91cHMocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfUVVFUllfVVNFUkdST1VQUyAqcV91LCBT
QU1SX1JfUVVFUllfVVNFUkdST1VQUyAqcl91KTsKTlRTVEFUVVMgX3NhbXJfcXVlcnlfZG9tX2lu
Zm8ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfUVVFUllfRE9NQUlOX0lORk8gKnFfdSwgU0FNUl9S
X1FVRVJZX0RPTUFJTl9JTkZPICpyX3UpOwpOVFNUQVRVUyBfYXBpX3NhbXJfY3JlYXRlX3VzZXIo
cGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfQ1JFQVRFX1VTRVIgKnFfdSwgU0FNUl9SX0NSRUFURV9V
U0VSICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9jb25uZWN0X2Fub24ocGlwZXNfc3RydWN0ICpwLCBT
QU1SX1FfQ09OTkVDVF9BTk9OICpxX3UsIFNBTVJfUl9DT05ORUNUX0FOT04gKnJfdSk7Ck5UU1RB
VFVTIF9zYW1yX2Nvbm5lY3QocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfQ09OTkVDVCAqcV91LCBT
QU1SX1JfQ09OTkVDVCAqcl91KTsKTlRTVEFUVVMgX3NhbXJfbG9va3VwX2RvbWFpbihwaXBlc19z
dHJ1Y3QgKnAsIFNBTVJfUV9MT09LVVBfRE9NQUlOICpxX3UsIFNBTVJfUl9MT09LVVBfRE9NQUlO
ICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9lbnVtX2RvbWFpbnMocGlwZXNfc3RydWN0ICpwLCBTQU1S
X1FfRU5VTV9ET01BSU5TICpxX3UsIFNBTVJfUl9FTlVNX0RPTUFJTlMgKnJfdSk7Ck5UU1RBVFVT
IF9hcGlfc2Ftcl9vcGVuX2FsaWFzKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX09QRU5fQUxJQVMg
KnFfdSwgU0FNUl9SX09QRU5fQUxJQVMgKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX3NldF91c2VyaW5m
byhwaXBlc19zdHJ1Y3QgKnAsIFNBTVJfUV9TRVRfVVNFUklORk8gKnFfdSwgU0FNUl9SX1NFVF9V
U0VSSU5GTyAqcl91KTsKTlRTVEFUVVMgX3NhbXJfc2V0X3VzZXJpbmZvMihwaXBlc19zdHJ1Y3Qg
KnAsIFNBTVJfUV9TRVRfVVNFUklORk8yICpxX3UsIFNBTVJfUl9TRVRfVVNFUklORk8yICpyX3Up
OwpOVFNUQVRVUyBfc2Ftcl9xdWVyeV91c2VyYWxpYXNlcyhwaXBlc19zdHJ1Y3QgKnAsIFNBTVJf
UV9RVUVSWV9VU0VSQUxJQVNFUyAqcV91LCBTQU1SX1JfUVVFUllfVVNFUkFMSUFTRVMgKnJfdSk7
Ck5UU1RBVFVTIF9zYW1yX3F1ZXJ5X2FsaWFzbWVtKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX1FV
RVJZX0FMSUFTTUVNICpxX3UsIFNBTVJfUl9RVUVSWV9BTElBU01FTSAqcl91KTsKTlRTVEFUVVMg
X3NhbXJfcXVlcnlfZ3JvdXBtZW0ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfUVVFUllfR1JPVVBN
RU0gKnFfdSwgU0FNUl9SX1FVRVJZX0dST1VQTUVNICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9hZGRf
YWxpYXNtZW0ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfQUREX0FMSUFTTUVNICpxX3UsIFNBTVJf
Ul9BRERfQUxJQVNNRU0gKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX2RlbF9hbGlhc21lbShwaXBlc19z
dHJ1Y3QgKnAsIFNBTVJfUV9ERUxfQUxJQVNNRU0gKnFfdSwgU0FNUl9SX0RFTF9BTElBU01FTSAq
cl91KTsKTlRTVEFUVVMgX3NhbXJfYWRkX2dyb3VwbWVtKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9R
X0FERF9HUk9VUE1FTSAqcV91LCBTQU1SX1JfQUREX0dST1VQTUVNICpyX3UpOwpOVFNUQVRVUyBf
c2Ftcl9kZWxfZ3JvdXBtZW0ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfREVMX0dST1VQTUVNICpx
X3UsIFNBTVJfUl9ERUxfR1JPVVBNRU0gKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX2RlbGV0ZV9kb21f
dXNlcihwaXBlc19zdHJ1Y3QgKnAsIFNBTVJfUV9ERUxFVEVfRE9NX1VTRVIgKnFfdSwgU0FNUl9S
X0RFTEVURV9ET01fVVNFUiAqcl91ICk7Ck5UU1RBVFVTIF9zYW1yX2RlbGV0ZV9kb21fZ3JvdXAo
cGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfREVMRVRFX0RPTV9HUk9VUCAqcV91LCBTQU1SX1JfREVM
RVRFX0RPTV9HUk9VUCAqcl91KTsKTlRTVEFUVVMgX3NhbXJfZGVsZXRlX2RvbV9hbGlhcyhwaXBl
c19zdHJ1Y3QgKnAsIFNBTVJfUV9ERUxFVEVfRE9NX0FMSUFTICpxX3UsIFNBTVJfUl9ERUxFVEVf
RE9NX0FMSUFTICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9jcmVhdGVfZG9tX2dyb3VwKHBpcGVzX3N0
cnVjdCAqcCwgU0FNUl9RX0NSRUFURV9ET01fR1JPVVAgKnFfdSwgU0FNUl9SX0NSRUFURV9ET01f
R1JPVVAgKnJfdSk7Ck5UU1RBVFVTIF9zYW1yX2NyZWF0ZV9kb21fYWxpYXMocGlwZXNfc3RydWN0
ICpwLCBTQU1SX1FfQ1JFQVRFX0RPTV9BTElBUyAqcV91LCBTQU1SX1JfQ1JFQVRFX0RPTV9BTElB
UyAqcl91KTsKTlRTVEFUVVMgX3NhbXJfcXVlcnlfZ3JvdXBpbmZvKHBpcGVzX3N0cnVjdCAqcCwg
U0FNUl9RX1FVRVJZX0dST1VQSU5GTyAqcV91LCBTQU1SX1JfUVVFUllfR1JPVVBJTkZPICpyX3Up
OwpOVFNUQVRVUyBfc2Ftcl9zZXRfZ3JvdXBpbmZvKHBpcGVzX3N0cnVjdCAqcCwgU0FNUl9RX1NF
VF9HUk9VUElORk8gKnFfdSwgU0FNUl9SX1NFVF9HUk9VUElORk8gKnJfdSk7Ck5UU1RBVFVTIF9z
YW1yX3NldF9hbGlhc2luZm8ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfU0VUX0FMSUFTSU5GTyAq
cV91LCBTQU1SX1JfU0VUX0FMSUFTSU5GTyAqcl91KTsKTlRTVEFUVVMgX3NhbXJfZ2V0X2RvbV9w
d2luZm8ocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfR0VUX0RPTV9QV0lORk8gKnFfdSwgU0FNUl9S
X0dFVF9ET01fUFdJTkZPICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9vcGVuX2dyb3VwKHBpcGVzX3N0
cnVjdCAqcCwgU0FNUl9RX09QRU5fR1JPVVAgKnFfdSwgU0FNUl9SX09QRU5fR1JPVVAgKnJfdSk7
Ck5UU1RBVFVTIF9zYW1yX3Vua25vd25fMmQocGlwZXNfc3RydWN0ICpwLCBTQU1SX1FfVU5LTk9X
Tl8yRCAqcV91LCBTQU1SX1JfVU5LTk9XTl8yRCAqcl91KTsKTlRTVEFUVVMgX3NhbXJfdW5rbm93
bl8yZShwaXBlc19zdHJ1Y3QgKnAsIFNBTVJfUV9VTktOT1dOXzJFICpxX3UsIFNBTVJfUl9VTktO
T1dOXzJFICpyX3UpOwpOVFNUQVRVUyBfc2Ftcl9zZXRfZG9tX2luZm8ocGlwZXNfc3RydWN0ICpw
LCBTQU1SX1FfU0VUX0RPTUFJTl9JTkZPICpxX3UsIFNBTVJfUl9TRVRfRE9NQUlOX0lORk8gKnJf
dSk7CgoKCkJPT0wgYXBpX3Nwb29sc3NfcnBjKHBpcGVzX3N0cnVjdCAqcCk7CgoKCldFUlJPUiBf
c3Bvb2xzc19vcGVuX3ByaW50ZXJfZXgoIHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9PUEVOX1BS
SU5URVJfRVggKnFfdSwgU1BPT0xfUl9PUEVOX1BSSU5URVJfRVggKnJfdSk7CkJPT0wgY29udmVy
dF9kZXZpY2Vtb2RlKGNoYXIgKnByaW50ZXJuYW1lLCBjb25zdCBERVZJQ0VNT0RFICpkZXZtb2Rl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5UX0RFVklDRU1PREUgKipwcF9udF9k
ZXZtb2RlKTsKV0VSUk9SIF9zcG9vbHNzX2Nsb3NlcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQ
T09MX1FfQ0xPU0VQUklOVEVSICpxX3UsIFNQT09MX1JfQ0xPU0VQUklOVEVSICpyX3UpOwpXRVJS
T1IgX3Nwb29sc3NfZGVsZXRlcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfREVMRVRF
UFJJTlRFUiAqcV91LCBTUE9PTF9SX0RFTEVURVBSSU5URVIgKnJfdSk7CldFUlJPUiBfc3Bvb2xz
c19kZWxldGVwcmludGVyZHJpdmVyKHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9ERUxFVEVQUklO
VEVSRFJJVkVSICpxX3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQT09M
X1JfREVMRVRFUFJJTlRFUkRSSVZFUiAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2dldHByaW50ZXJk
YXRhKHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9HRVRQUklOVEVSREFUQSAqcV91LCBTUE9PTF9S
X0dFVFBSSU5URVJEQVRBICpyX3UpOwpXRVJST1IgX3Nwb29sc3NfcmZmcGNuZXgocGlwZXNfc3Ry
dWN0ICpwLCBTUE9PTF9RX1JGRlBDTkVYICpxX3UsIFNQT09MX1JfUkZGUENORVggKnJfdSk7CldF
UlJPUiBfc3Bvb2xzc19yZm5wY25leCggcGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX1JGTlBDTkVY
ICpxX3UsIFNQT09MX1JfUkZOUENORVggKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19lbnVtcHJpbnRl
cnMoIHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9FTlVNUFJJTlRFUlMgKnFfdSwgU1BPT0xfUl9F
TlVNUFJJTlRFUlMgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19nZXRwcmludGVyKHBpcGVzX3N0cnVj
dCAqcCwgU1BPT0xfUV9HRVRQUklOVEVSICpxX3UsIFNQT09MX1JfR0VUUFJJTlRFUiAqcl91KTsK
V0VSUk9SIF9zcG9vbHNzX2dldHByaW50ZXJkcml2ZXIyKHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xf
UV9HRVRQUklOVEVSRFJJVkVSMiAqcV91LCBTUE9PTF9SX0dFVFBSSU5URVJEUklWRVIyICpyX3Up
OwpXRVJST1IgX3Nwb29sc3Nfc3RhcnRwYWdlcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQT09M
X1FfU1RBUlRQQUdFUFJJTlRFUiAqcV91LCBTUE9PTF9SX1NUQVJUUEFHRVBSSU5URVIgKnJfdSk7
CldFUlJPUiBfc3Bvb2xzc19lbmRwYWdlcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1Ff
RU5EUEFHRVBSSU5URVIgKnFfdSwgU1BPT0xfUl9FTkRQQUdFUFJJTlRFUiAqcl91KTsKV0VSUk9S
IF9zcG9vbHNzX3N0YXJ0ZG9jcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfU1RBUlRE
T0NQUklOVEVSICpxX3UsIFNQT09MX1JfU1RBUlRET0NQUklOVEVSICpyX3UpOwpXRVJST1IgX3Nw
b29sc3NfZW5kZG9jcHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfRU5ERE9DUFJJTlRF
UiAqcV91LCBTUE9PTF9SX0VORERPQ1BSSU5URVIgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc193cml0
ZXByaW50ZXIocGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX1dSSVRFUFJJTlRFUiAqcV91LCBTUE9P
TF9SX1dSSVRFUFJJTlRFUiAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2Fib3J0cHJpbnRlcihwaXBl
c19zdHJ1Y3QgKnAsIFNQT09MX1FfQUJPUlRQUklOVEVSICpxX3UsIFNQT09MX1JfQUJPUlRQUklO
VEVSICpyX3UpOwpXRVJST1IgX3Nwb29sc3Nfc2V0cHJpbnRlcihwaXBlc19zdHJ1Y3QgKnAsIFNQ
T09MX1FfU0VUUFJJTlRFUiAqcV91LCBTUE9PTF9SX1NFVFBSSU5URVIgKnJfdSk7CldFUlJPUiBf
c3Bvb2xzc19mY3BuKHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9GQ1BOICpxX3UsIFNQT09MX1Jf
RkNQTiAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2FkZGpvYihwaXBlc19zdHJ1Y3QgKnAsIFNQT09M
X1FfQURESk9CICpxX3UsIFNQT09MX1JfQURESk9CICpyX3UpOwpXRVJST1IgX3Nwb29sc3NfZW51
bWpvYnMoIHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9FTlVNSk9CUyAqcV91LCBTUE9PTF9SX0VO
VU1KT0JTICpyX3UpOwpXRVJST1IgX3Nwb29sc3Nfc2NoZWR1bGVqb2IoIHBpcGVzX3N0cnVjdCAq
cCwgU1BPT0xfUV9TQ0hFRFVMRUpPQiAqcV91LCBTUE9PTF9SX1NDSEVEVUxFSk9CICpyX3UpOwpX
RVJST1IgX3Nwb29sc3Nfc2V0am9iKHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9TRVRKT0IgKnFf
dSwgU1BPT0xfUl9TRVRKT0IgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19lbnVtcHJpbnRlcmRyaXZl
cnMoIHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9FTlVNUFJJTlRFUkRSSVZFUlMgKnFfdSwgU1BP
T0xfUl9FTlVNUFJJTlRFUkRSSVZFUlMgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19lbnVtZm9ybXMo
cGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX0VOVU1GT1JNUyAqcV91LCBTUE9PTF9SX0VOVU1GT1JN
UyAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2dldGZvcm0ocGlwZXNfc3RydWN0ICpwLCBTUE9PTF9R
X0dFVEZPUk0gKnFfdSwgU1BPT0xfUl9HRVRGT1JNICpyX3UpOwpXRVJST1IgX3Nwb29sc3NfZW51
bXBvcnRzKCBwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfRU5VTVBPUlRTICpxX3UsIFNQT09MX1Jf
RU5VTVBPUlRTICpyX3UpOwpXRVJST1IgX3Nwb29sc3NfYWRkcHJpbnRlcmV4KCBwaXBlc19zdHJ1
Y3QgKnAsIFNQT09MX1FfQUREUFJJTlRFUkVYICpxX3UsIFNQT09MX1JfQUREUFJJTlRFUkVYICpy
X3UpOwpXRVJST1IgX3Nwb29sc3NfYWRkcHJpbnRlcmRyaXZlcihwaXBlc19zdHJ1Y3QgKnAsIFNQ
T09MX1FfQUREUFJJTlRFUkRSSVZFUiAqcV91LCBTUE9PTF9SX0FERFBSSU5URVJEUklWRVIgKnJf
dSk7CldFUlJPUiBfc3Bvb2xzc19nZXRwcmludGVyZHJpdmVyZGlyZWN0b3J5KHBpcGVzX3N0cnVj
dCAqcCwgU1BPT0xfUV9HRVRQUklOVEVSRFJJVkVSRElSICpxX3UsIFNQT09MX1JfR0VUUFJJTlRF
UkRSSVZFUkRJUiAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2VudW1wcmludGVyZGF0YShwaXBlc19z
dHJ1Y3QgKnAsIFNQT09MX1FfRU5VTVBSSU5URVJEQVRBICpxX3UsIFNQT09MX1JfRU5VTVBSSU5U
RVJEQVRBICpyX3UpOwpXRVJST1IgX3Nwb29sc3Nfc2V0cHJpbnRlcmRhdGEoIHBpcGVzX3N0cnVj
dCAqcCwgU1BPT0xfUV9TRVRQUklOVEVSREFUQSAqcV91LCBTUE9PTF9SX1NFVFBSSU5URVJEQVRB
ICpyX3UpOwpXRVJST1IgX3Nwb29sc3NfZGVsZXRlcHJpbnRlcmRhdGEocGlwZXNfc3RydWN0ICpw
LCBTUE9PTF9RX0RFTEVURVBSSU5URVJEQVRBICpxX3UsIFNQT09MX1JfREVMRVRFUFJJTlRFUkRB
VEEgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19hZGRmb3JtKCBwaXBlc19zdHJ1Y3QgKnAsIFNQT09M
X1FfQURERk9STSAqcV91LCBTUE9PTF9SX0FEREZPUk0gKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19k
ZWxldGVmb3JtKCBwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfREVMRVRFRk9STSAqcV91LCBTUE9P
TF9SX0RFTEVURUZPUk0gKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19zZXRmb3JtKHBpcGVzX3N0cnVj
dCAqcCwgU1BPT0xfUV9TRVRGT1JNICpxX3UsIFNQT09MX1JfU0VURk9STSAqcl91KTsKV0VSUk9S
IF9zcG9vbHNzX2VudW1wcmludHByb2Nlc3NvcnMocGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX0VO
VU1QUklOVFBST0NFU1NPUlMgKnFfdSwgU1BPT0xfUl9FTlVNUFJJTlRQUk9DRVNTT1JTICpyX3Up
OwpXRVJST1IgX3Nwb29sc3NfZW51bXByaW50cHJvY2RhdGF0eXBlcyhwaXBlc19zdHJ1Y3QgKnAs
IFNQT09MX1FfRU5VTVBSSU5UUFJPQ0RBVEFUWVBFUyAqcV91LCBTUE9PTF9SX0VOVU1QUklOVFBS
T0NEQVRBVFlQRVMgKnJfdSk7CldFUlJPUiBfc3Bvb2xzc19lbnVtcHJpbnRtb25pdG9ycyhwaXBl
c19zdHJ1Y3QgKnAsIFNQT09MX1FfRU5VTVBSSU5UTU9OSVRPUlMgKnFfdSwgU1BPT0xfUl9FTlVN
UFJJTlRNT05JVE9SUyAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2dldGpvYiggcGlwZXNfc3RydWN0
ICpwLCBTUE9PTF9RX0dFVEpPQiAqcV91LCBTUE9PTF9SX0dFVEpPQiAqcl91KTsKV0VSUk9SIF9z
cG9vbHNzX2dldHByaW50ZXJkYXRhZXgocGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX0dFVFBSSU5U
RVJEQVRBRVggKnFfdSwgU1BPT0xfUl9HRVRQUklOVEVSREFUQUVYICpyX3UpOwpXRVJST1IgX3Nw
b29sc3Nfc2V0cHJpbnRlcmRhdGFleChwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfU0VUUFJJTlRF
UkRBVEFFWCAqcV91LCBTUE9PTF9SX1NFVFBSSU5URVJEQVRBRVggKnJfdSk7CldFUlJPUiBfc3Bv
b2xzc19lbnVtcHJpbnRlcmtleShwaXBlc19zdHJ1Y3QgKnAsIFNQT09MX1FfRU5VTVBSSU5URVJL
RVkgKnFfdSwgU1BPT0xfUl9FTlVNUFJJTlRFUktFWSAqcl91KTsKV0VSUk9SIF9zcG9vbHNzX2Vu
dW1wcmludGVyZGF0YWV4KHBpcGVzX3N0cnVjdCAqcCwgU1BPT0xfUV9FTlVNUFJJTlRFUkRBVEFF
WCAqcV91LCBTUE9PTF9SX0VOVU1QUklOVEVSREFUQUVYICpyX3UpOwpXRVJST1IgX3Nwb29sc3Nf
Z2V0cHJpbnRwcm9jZXNzb3JkaXJlY3RvcnkocGlwZXNfc3RydWN0ICpwLCBTUE9PTF9RX0dFVFBS
SU5UUFJPQ0VTU09SRElSRUNUT1JZICpxX3UsIFNQT09MX1JfR0VUUFJJTlRQUk9DRVNTT1JESVJF
Q1RPUlkgKnJfdSk7CgoKCkJPT0wgYXBpX3NydnN2Y19ycGMocGlwZXNfc3RydWN0ICpwKTsKCgoK
Qk9PTCBzaGFyZV9pbmZvX2RiX2luaXQodm9pZCk7CnZvaWQgbWFwX2dlbmVyaWNfc2hhcmVfc2Rf
Yml0cyhTRUNfREVTQyAqcHNkKTsKQk9PTCBzaGFyZV9hY2Nlc3NfY2hlY2soY29ubmVjdGlvbl9z
dHJ1Y3QgKmNvbm4sIGludCBzbnVtLCB1bnNpZ25lZCBzaG9ydCB2dWlkLCB1bnNpZ25lZCBpbnQg
ZGVzaXJlZF9hY2Nlc3MpOwpOVFNUQVRVUyBfc3J2X25ldF9zcnZfZ2V0X2luZm8ocGlwZXNfc3Ry
dWN0ICpwLCBTUlZfUV9ORVRfU1JWX0dFVF9JTkZPICpxX3UsIFNSVl9SX05FVF9TUlZfR0VUX0lO
Rk8gKnJfdSk7Ck5UU1RBVFVTIF9zcnZfbmV0X3Nydl9zZXRfaW5mbyhwaXBlc19zdHJ1Y3QgKnAs
IFNSVl9RX05FVF9TUlZfU0VUX0lORk8gKnFfdSwgU1JWX1JfTkVUX1NSVl9TRVRfSU5GTyAqcl91
KTsKTlRTVEFUVVMgX3Nydl9uZXRfZmlsZV9lbnVtKHBpcGVzX3N0cnVjdCAqcCwgU1JWX1FfTkVU
X0ZJTEVfRU5VTSAqcV91LCBTUlZfUl9ORVRfRklMRV9FTlVNICpyX3UpOwpOVFNUQVRVUyBfc3J2
X25ldF9jb25uX2VudW0ocGlwZXNfc3RydWN0ICpwLCBTUlZfUV9ORVRfQ09OTl9FTlVNICpxX3Us
IFNSVl9SX05FVF9DT05OX0VOVU0gKnJfdSk7Ck5UU1RBVFVTIF9zcnZfbmV0X3Nlc3NfZW51bShw
aXBlc19zdHJ1Y3QgKnAsIFNSVl9RX05FVF9TRVNTX0VOVU0gKnFfdSwgU1JWX1JfTkVUX1NFU1Nf
RU5VTSAqcl91KTsKTlRTVEFUVVMgX3Nydl9uZXRfc2hhcmVfZW51bV9hbGwocGlwZXNfc3RydWN0
ICpwLCBTUlZfUV9ORVRfU0hBUkVfRU5VTSAqcV91LCBTUlZfUl9ORVRfU0hBUkVfRU5VTSAqcl91
KTsKTlRTVEFUVVMgX3Nydl9uZXRfc2hhcmVfZW51bShwaXBlc19zdHJ1Y3QgKnAsIFNSVl9RX05F
VF9TSEFSRV9FTlVNICpxX3UsIFNSVl9SX05FVF9TSEFSRV9FTlVNICpyX3UpOwpOVFNUQVRVUyBf
c3J2X25ldF9zaGFyZV9nZXRfaW5mbyhwaXBlc19zdHJ1Y3QgKnAsIFNSVl9RX05FVF9TSEFSRV9H
RVRfSU5GTyAqcV91LCBTUlZfUl9ORVRfU0hBUkVfR0VUX0lORk8gKnJfdSk7Ck5UU1RBVFVTIF9z
cnZfbmV0X3NoYXJlX3NldF9pbmZvKHBpcGVzX3N0cnVjdCAqcCwgU1JWX1FfTkVUX1NIQVJFX1NF
VF9JTkZPICpxX3UsIFNSVl9SX05FVF9TSEFSRV9TRVRfSU5GTyAqcl91KTsKTlRTVEFUVVMgX3Ny
dl9uZXRfc2hhcmVfYWRkKHBpcGVzX3N0cnVjdCAqcCwgU1JWX1FfTkVUX1NIQVJFX0FERCAqcV91
LCBTUlZfUl9ORVRfU0hBUkVfQUREICpyX3UpOwpOVFNUQVRVUyBfc3J2X25ldF9zaGFyZV9kZWwo
cGlwZXNfc3RydWN0ICpwLCBTUlZfUV9ORVRfU0hBUkVfREVMICpxX3UsIFNSVl9SX05FVF9TSEFS
RV9ERUwgKnJfdSk7Ck5UU1RBVFVTIF9zcnZfbmV0X3JlbW90ZV90b2QocGlwZXNfc3RydWN0ICpw
LCBTUlZfUV9ORVRfUkVNT1RFX1RPRCAqcV91LCBTUlZfUl9ORVRfUkVNT1RFX1RPRCAqcl91KTsK
TlRTVEFUVVMgX3Nydl9uZXRfZmlsZV9xdWVyeV9zZWNkZXNjKHBpcGVzX3N0cnVjdCAqcCwgU1JW
X1FfTkVUX0ZJTEVfUVVFUllfU0VDREVTQyAqcV91LAogICAgICAgICAgICAgICAgICAgICAgICBT
UlZfUl9ORVRfRklMRV9RVUVSWV9TRUNERVNDICpyX3UpOwpOVFNUQVRVUyBfc3J2X25ldF9maWxl
X3NldF9zZWNkZXNjKHBpcGVzX3N0cnVjdCAqcCwgU1JWX1FfTkVUX0ZJTEVfU0VUX1NFQ0RFU0Mg
KnFfdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU1JWX1JfTkVUX0ZJTEVfU0VUX1NFQ0RFU0MgKnJfdSk7Ck5U
U1RBVFVTIF9zcnZfbmV0X2Rpc2tfZW51bShwaXBlc19zdHJ1Y3QgKnAsIFNSVl9RX05FVF9ESVNL
X0VOVU0gKnFfdSwgU1JWX1JfTkVUX0RJU0tfRU5VTSAqcl91KTsKTlRTVEFUVVMgX3Nydl9uZXRf
bmFtZV92YWxpZGF0ZShwaXBlc19zdHJ1Y3QgKnAsIFNSVl9RX05FVF9OQU1FX1ZBTElEQVRFICpx
X3UsIFNSVl9SX05FVF9OQU1FX1ZBTElEQVRFICpyX3UpOwoKCgpOVFNUQVRVUyBnZXRfYWxpYXNf
dXNlcl9ncm91cHMoVEFMTE9DX0NUWCAqY3R4LCBET01fU0lEICpzaWQsIGludCAqbnVtZ3JvdXBz
LCB1bnNpZ25lZCBpbnQgKipwcmlkcywgRE9NX1NJRCAqcV9zaWQpOwpCT09MIGdldF9kb21haW5f
dXNlcl9ncm91cHMoVEFMTE9DX0NUWCAqY3R4LCBpbnQgKm51bWdyb3VwcywgRE9NX0dJRCAqKnBn
aWRzLCBTQU1fQUNDT1VOVCAqc2FtX3Bhc3MpOwpOVFNUQVRVUyBsb2NhbF9sb29rdXBfZ3JvdXBf
bmFtZSh1bnNpZ25lZCBpbnQgcmlkLCBjaGFyICpncm91cF9uYW1lLCB1bnNpZ25lZCBpbnQgKnR5
cGUpOwpOVFNUQVRVUyBsb2NhbF9sb29rdXBfYWxpYXNfbmFtZSh1bnNpZ25lZCBpbnQgcmlkLCBj
aGFyICphbGlhc19uYW1lLCB1bnNpZ25lZCBpbnQgKnR5cGUpOwpOVFNUQVRVUyBsb2NhbF9sb29r
dXBfdXNlcl9uYW1lKHVuc2lnbmVkIGludCByaWQsIGNoYXIgKnVzZXJfbmFtZSwgdW5zaWduZWQg
aW50ICp0eXBlKTsKTlRTVEFUVVMgbG9jYWxfbG9va3VwX2dyb3VwX3JpZChjaGFyICpncm91cF9u
YW1lLCB1bnNpZ25lZCBpbnQgKnJpZCk7Ck5UU1RBVFVTIGxvY2FsX2xvb2t1cF9hbGlhc19yaWQo
Y2hhciAqYWxpYXNfbmFtZSwgdW5zaWduZWQgaW50ICpyaWQpOwpOVFNUQVRVUyBsb2NhbF9sb29r
dXBfdXNlcl9yaWQoY2hhciAqdXNlcl9uYW1lLCB1bnNpZ25lZCBpbnQgKnJpZCk7CgoKCkJPT0wg
YXBpX3drc3N2Y19ycGMocGlwZXNfc3RydWN0ICpwKTsKCgoKTlRTVEFUVVMgX3drc19xdWVyeV9p
bmZvKHBpcGVzX3N0cnVjdCAqcCwgV0tTX1FfUVVFUllfSU5GTyAqcV91LCBXS1NfUl9RVUVSWV9J
TkZPICpyX3UpOwojIDQ1MjcgImluY2x1ZGUvcHJvdG8uaCIKQk9PTCBnZXRfc2hvcnRfYXJjaGko
Y2hhciAqc2hvcnRfYXJjaGksIGNoYXIgKmxvbmdfYXJjaGkpOwp2b2lkIHNldF9kcnZfaW5mb18z
X2VudiAoRFJJVkVSX0lORk9fMyAqaW5mbywgY29uc3QgY2hhciAqYXJjaCk7CgoKCgoKCmNoYXIg
KmdldF9zZWNfbWFza19zdHIodW5zaWduZWQgaW50IHR5cGUpOwp2b2lkIGRpc3BsYXlfc2VjX2Fj
Y2VzcyhTRUNfQUNDRVNTICppbmZvKTsKdm9pZCBkaXNwbGF5X3NlY19hY2UoU0VDX0FDRSAqYWNl
KTsKdm9pZCBkaXNwbGF5X3NlY19hY2woU0VDX0FDTCAqc2VjX2FjbCk7CnZvaWQgZGlzcGxheV9z
ZWNfZGVzYyhTRUNfREVTQyAqc2VjKTsKCgoKdm9pZCBmZXRjaF9tYWNoaW5lX3NpZChzdHJ1Y3Qg
Y2xpX3N0YXRlICpjbGkpOwoKCgpCT09MIHB1c2hfYmxvY2tpbmdfbG9ja19yZXF1ZXN0KCBjaGFy
ICppbmJ1ZiwgaW50IGxlbmd0aCwgaW50IGxvY2tfdGltZW91dCwgaW50IGxvY2tfbnVtKTsKdm9p
ZCByZW1vdmVfcGVuZGluZ19sb2NrX3JlcXVlc3RzX2J5X2ZpZChmaWxlc19zdHJ1Y3QgKmZzcCk7
CnZvaWQgcmVtb3ZlX3BlbmRpbmdfbG9ja19yZXF1ZXN0c19ieV9taWQoaW50IG1pZCk7CkJPT0wg
YmxvY2tpbmdfbG9ja3NfcGVuZGluZyh2b2lkKTsKdm9pZCBwcm9jZXNzX2Jsb2NraW5nX2xvY2tf
cXVldWUodGltZV90IHQpOwoKCgp2b2lkIGJ1aWxkX29wdGlvbnMoQk9PTCBzY3JlZW4pOwoKCgpC
T09MIGNoZ3Bhc3N3ZChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpvbGRwYXNzLCBjb25z
dCBjaGFyICpuZXdwYXNzLCBCT09MIGFzX3Jvb3QpOwpCT09MIGNoZ3Bhc3N3ZChjb25zdCBjaGFy
ICpuYW1lLCBjb25zdCBjaGFyICpvbGRwYXNzLCBjb25zdCBjaGFyICpuZXdwYXNzLCBCT09MIGFz
X3Jvb3QpOwpCT09MIGNoZWNrX2xhbm1hbl9wYXNzd29yZChjaGFyICp1c2VyLCB1bnNpZ25lZCBj
aGFyICogcGFzczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBw
YXNzMiwgU0FNX0FDQ09VTlQgKipobmQpOwpCT09MIGNoYW5nZV9sYW5tYW5fcGFzc3dvcmQoU0FN
X0FDQ09VTlQgKnNhbXBhc3MsIHVuc2lnbmVkIGNoYXIgKiBwYXNzMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBwYXNzMik7CkJPT0wgcGFzc19vZW1fY2hhbmdl
KGNoYXIgKnVzZXIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBsbWRhdGEs
IHVuc2lnbmVkIGNoYXIgKiBsbWhhc2gsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNo
YXIgKiBudGRhdGEsIHVuc2lnbmVkIGNoYXIgKiBudGhhc2gpOwpCT09MIGNoYW5nZV9vZW1fcGFz
c3dvcmQoU0FNX0FDQ09VTlQgKmhuZCwgY2hhciAqbmV3X3Bhc3N3ZCk7CkJPT0wgY2hlY2tfcGxh
aW50ZXh0X3Bhc3N3b3JkKGNoYXIgKnVzZXIsIGNoYXIgKm9sZF9wYXNzd2QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBvbGRfcGFzc3dkX3NpemUsIFNBTV9BQ0NPVU5UICoqaG5k
KTsKCgoKaW50IGNsb3NlX2ZpbGUoZmlsZXNfc3RydWN0ICpmc3AsIEJPT0wgbm9ybWFsX2Nsb3Nl
KTsKCgoKdm9pZCBjb25uX2luaXQodm9pZCk7CmludCBjb25uX251bV9vcGVuKHZvaWQpOwpCT09M
IGNvbm5fc251bV91c2VkKGludCBzbnVtKTsKY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm5fZmluZChp
bnQgY251bSk7CmNvbm5lY3Rpb25fc3RydWN0ICpjb25uX25ldyh2b2lkKTsKdm9pZCBjb25uX2Ns
b3NlX2FsbCh2b2lkKTsKQk9PTCBjb25uX2lkbGVfYWxsKHRpbWVfdCB0LCBpbnQgZGVhZHRpbWUp
Owp2b2lkIGNvbm5fZnJlZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubik7CnZvaWQgbXNnX2ZvcmNl
X3RkaXMoaW50IG1zZ190eXBlLCBwaWRfdCBwaWQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CgoK
ClREQl9DT05URVhUICpjb25uX3RkYl9jdHgodm9pZCk7CkJPT0wgeWllbGRfY29ubmVjdGlvbihj
b25uZWN0aW9uX3N0cnVjdCAqY29ubixjaGFyICpuYW1lLGludCBtYXhfY29ubmVjdGlvbnMpOwpC
T09MIGNsYWltX2Nvbm5lY3Rpb24oY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sY2hhciAqbmFtZSxp
bnQgbWF4X2Nvbm5lY3Rpb25zLEJPT0wgQ2xlYXIpOwoKCgp1bnNpZ25lZCBsb25nIGxvbmcgc3lz
X2Rpc2tfZnJlZShjb25zdCBjaGFyICpwYXRoLCBCT09MIHNtYWxsX3F1ZXJ5LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKmJzaXplLHVuc2lnbmVkIGxvbmcg
bG9uZyAqZGZyZWUsdW5zaWduZWQgbG9uZyBsb25nICpkc2l6ZSk7CgoKCnZvaWQgaW5pdF9kcHRy
cyh2b2lkKTsKY2hhciAqZHB0cl9wYXRoKGludCBrZXkpOwpjaGFyICpkcHRyX3djYXJkKGludCBr
ZXkpOwpCT09MIGRwdHJfc2V0X3djYXJkKGludCBrZXksIGNoYXIgKndjYXJkKTsKQk9PTCBkcHRy
X3NldF9hdHRyKGludCBrZXksIHVuc2lnbmVkIHNob3J0IGF0dHIpOwp1bnNpZ25lZCBzaG9ydCBk
cHRyX2F0dHIoaW50IGtleSk7CnZvaWQgZHB0cl9jbG9zZShpbnQgKmtleSk7CnZvaWQgZHB0cl9j
bG9zZWNudW0oY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4pOwp2b2lkIGRwdHJfaWRsZWNudW0oY29u
bmVjdGlvbl9zdHJ1Y3QgKmNvbm4pOwp2b2lkIGRwdHJfY2xvc2VwYXRoKGNoYXIgKnBhdGgsdW5z
aWduZWQgc2hvcnQgc3BpZCk7CmludCBkcHRyX2NyZWF0ZShjb25uZWN0aW9uX3N0cnVjdCAqY29u
bixjaGFyICpwYXRoLCBCT09MIG9sZF9oYW5kbGUsIEJPT0wgZXhwZWN0X2Nsb3NlLHVuc2lnbmVk
IHNob3J0IHNwaWQpOwpCT09MIGRwdHJfZmlsbChjaGFyICpidWYxLHVuc2lnbmVkIGludCBrZXkp
Owp2b2lkICpkcHRyX2ZldGNoKGNoYXIgKmJ1ZixpbnQgKm51bSk7CnZvaWQgKmRwdHJfZmV0Y2hf
bGFubWFuMihpbnQgZHB0cl9udW0pOwpCT09MIGRpcl9jaGVja19mdHlwZShjb25uZWN0aW9uX3N0
cnVjdCAqY29ubixpbnQgbW9kZSxzdHJ1Y3Qgc3RhdCAqc3QsaW50IGRpcnR5cGUpOwpCT09MIGdl
dF9kaXJfZW50cnkoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sY2hhciAqbWFzayxpbnQgZGlydHlw
ZSxjaGFyICpmbmFtZSwKICAgICAgICAgICAgICAgICAgIG9mZl90ICpzaXplLGludCAqbW9kZSx0
aW1lX3QgKmRhdGUsQk9PTCBjaGVja19kZXNjZW5kKTsKdm9pZCAqT3BlbkRpcihjb25uZWN0aW9u
X3N0cnVjdCAqY29ubiwgY2hhciAqbmFtZSwgQk9PTCB1c2VfdmV0byk7CnZvaWQgQ2xvc2VEaXIo
dm9pZCAqcCk7CmNoYXIgKlJlYWREaXJOYW1lKHZvaWQgKnApOwpCT09MIFNlZWtEaXIodm9pZCAq
cCxpbnQgcG9zKTsKaW50IFRlbGxEaXIodm9pZCAqcCk7CnZvaWQgRGlyQ2FjaGVBZGQoIGNoYXIg
KnBhdGgsIGNoYXIgKm5hbWUsIGNoYXIgKmRuYW1lLCBpbnQgc251bSApOwpjaGFyICpEaXJDYWNo
ZUNoZWNrKCBjaGFyICpwYXRoLCBjaGFyICpuYW1lLCBpbnQgc251bSApOwp2b2lkIERpckNhY2hl
Rmx1c2goaW50IHNudW0pOwoKCgptb2RlX3QgdW5peF9tb2RlKGNvbm5lY3Rpb25fc3RydWN0ICpj
b25uLGludCBkb3Ntb2RlLGNvbnN0IGNoYXIgKmZuYW1lKTsKaW50IGRvc19tb2RlKGNvbm5lY3Rp
b25fc3RydWN0ICpjb25uLGNoYXIgKnBhdGgsc3RydWN0IHN0YXQgKnNidWYpOwppbnQgZmlsZV9j
aG1vZChjb25uZWN0aW9uX3N0cnVjdCAqY29ubixjaGFyICpmbmFtZSxpbnQgZG9zbW9kZSxzdHJ1
Y3Qgc3RhdCAqc3QpOwppbnQgZmlsZV91dGltZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hh
ciAqZm5hbWUsIHN0cnVjdCB1dGltYnVmICp0aW1lcyk7CkJPT0wgc2V0X2ZpbGV0aW1lKGNvbm5l
Y3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICpmbmFtZSwgdGltZV90IG10aW1lKTsKCgoKaW50IGNh
Y2hlZF9lcnJvcl9wYWNrZXQoY2hhciAqb3V0YnVmLGZpbGVzX3N0cnVjdCAqZnNwLGludCBsaW5l
LGNvbnN0IGNoYXIgKmZpbGUpOwppbnQgdW5peF9lcnJvcl9wYWNrZXQoY2hhciAqb3V0YnVmLGlu
dCBkZWZfY2xhc3MsdW5zaWduZWQgaW50IGRlZl9jb2RlLAogICAgICAgICAgICAgICAgICAgICAg
aW50IGxpbmUsIGNvbnN0IGNoYXIgKmZpbGUpOwppbnQgZXJyb3JfcGFja2V0KGNoYXIgKm91dGJ1
ZixOVFNUQVRVUyBudHN0YXR1cywKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGVjbGFz
cyx1bnNpZ25lZCBpbnQgZWNvZGUsaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZpbGUpOwoKCgpvZmZf
dCBzZWVrX2ZpbGUoZmlsZXNfc3RydWN0ICpmc3Asb2ZmX3QgcG9zKTsKQk9PTCByZWFkX2Zyb21f
d3JpdGVfY2FjaGUoZmlsZXNfc3RydWN0ICpmc3AsY2hhciAqZGF0YSxvZmZfdCBwb3Msc2l6ZV90
IG4pOwpzc2l6ZV90IHJlYWRfZmlsZShmaWxlc19zdHJ1Y3QgKmZzcCxjaGFyICpkYXRhLG9mZl90
IHBvcyxzaXplX3Qgbik7CnNzaXplX3Qgd3JpdGVfZmlsZShmaWxlc19zdHJ1Y3QgKmZzcCwgY2hh
ciAqZGF0YSwgb2ZmX3QgcG9zLCBzaXplX3Qgbik7CnZvaWQgZGVsZXRlX3dyaXRlX2NhY2hlKGZp
bGVzX3N0cnVjdCAqZnNwKTsKdm9pZCBzZXRfZmlsZWxlbl93cml0ZV9jYWNoZShmaWxlc19zdHJ1
Y3QgKmZzcCwgb2ZmX3QgZmlsZV9zaXplKTsKc3NpemVfdCBmbHVzaF93cml0ZV9jYWNoZShmaWxl
c19zdHJ1Y3QgKmZzcCwgZW51bSBmbHVzaF9yZWFzb25fZW51bSByZWFzb24pOwp2b2lkIHN5bmNf
ZmlsZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgZmlsZXNfc3RydWN0ICpmc3ApOwoKCgpCT09M
IHVuaXhfY29udmVydChjaGFyICpuYW1lLGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLGNoYXIgKnNh
dmVkX2xhc3RfY29tcG9uZW50LAogICAgICAgICAgICAgICAgICBCT09MICpiYWRfcGF0aCwgc3Ry
dWN0IHN0YXQgKnBzdCk7CkJPT0wgY2hlY2tfbmFtZShjaGFyICpuYW1lLGNvbm5lY3Rpb25fc3Ry
dWN0ICpjb25uKTsKCgoKZmlsZXNfc3RydWN0ICpmaWxlX25ldyhjb25uZWN0aW9uX3N0cnVjdCAq
Y29ubik7CnZvaWQgZmlsZV9jbG9zZV9jb25uKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uKTsKdm9p
ZCBmaWxlX2luaXQodm9pZCk7CnZvaWQgZmlsZV9jbG9zZV91c2VyKGludCB2dWlkKTsKZmlsZXNf
c3RydWN0ICpmaWxlX2ZpbmRfZmQoaW50IGZkKTsKZmlsZXNfc3RydWN0ICpmaWxlX2ZpbmRfZGlm
KGRldl90IGRldiwgaW5vX3QgaW5vZGUsIHVuc2lnbmVkIGxvbmcgZmlsZV9pZCk7CmZpbGVzX3N0
cnVjdCAqZmlsZV9maW5kX2ZzcChmaWxlc19zdHJ1Y3QgKm9yaWdfZnNwKTsKZmlsZXNfc3RydWN0
ICpmaWxlX2ZpbmRfZGlfZmlyc3QoZGV2X3QgZGV2LCBpbm9fdCBpbm9kZSk7CmZpbGVzX3N0cnVj
dCAqZmlsZV9maW5kX2RpX25leHQoZmlsZXNfc3RydWN0ICpzdGFydF9mc3ApOwpmaWxlc19zdHJ1
Y3QgKmZpbGVfZmluZF9wcmludCh2b2lkKTsKdm9pZCBmaWxlX3N5bmNfYWxsKGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uKTsKdm9pZCBmaWxlX2ZyZWUoZmlsZXNfc3RydWN0ICpmc3ApOwpmaWxlc19z
dHJ1Y3QgKmZpbGVfZnNwKGNoYXIgKmJ1ZiwgaW50IHdoZXJlKTsKdm9pZCBmaWxlX2NoYWluX3Jl
c2V0KHZvaWQpOwp2b2lkIGZpbGVfY2hhaW5fc2F2ZSh2b2lkKTsKdm9pZCBmaWxlX2NoYWluX3Jl
c3RvcmUodm9pZCk7CgoKCnZvaWQgc2VuZF90cmFuc19yZXBseShjaGFyICpvdXRidWYsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcnBhcmFtLCBpbnQgcnBhcmFtX2xlbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpyZGF0YSwgaW50IHJkYXRhX2xl
biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09MIGJ1ZmZlcl90b29fbGFyZ2Up
OwppbnQgcmVwbHlfdHJhbnMoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNo
YXIgKm91dGJ1ZiwgaW50IHNpemUsIGludCBidWZzaXplKTsKCgoKaW50IGFwaV9yZXBseShjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubix1bnNpZ25lZCBzaG9ydCB2dWlkLGNoYXIgKm91dGJ1ZixjaGFy
ICpkYXRhLGNoYXIgKnBhcmFtcywKICAgICAgICAgICAgICAgICAgICAgaW50IHRkc2NudCxpbnQg
dHBzY250LGludCBtZHJjbnQsaW50IG1wcmNudCk7CgoKCkJPT0wgaW5pdF9tYW5nbGVfdGRiKHZv
aWQpOwpzbWJfdWNzMl90ICp1bm1hbmdsZShjb25zdCBzbWJfdWNzMl90ICptYW5nbGVkKTsKc21i
X3VjczJfdCAqbWFuZ2xlKGNvbnN0IHNtYl91Y3MyX3QgKnVubWFuZ2xlZCk7CmNoYXIgKmRvc19t
YW5nbGUoY29uc3QgY2hhciAqZG9zX3VubWFuZ2xlZCk7CmNoYXIgKmRvc191bm1hbmdsZShjb25z
dCBjaGFyICpkb3NfbWFuZ2xlZCk7CkJPT0wgaXNfOF8zKGNvbnN0IGNoYXIgKmZuYW1lLCBCT09M
IGNoZWNrX2Nhc2UpOwpOVFNUQVRVUyBpc184XzNfdyhjb25zdCBzbWJfdWNzMl90ICpmbmFtZSk7
Ck5UU1RBVFVTIGhhc192YWxpZF9jaGFycyhjb25zdCBzbWJfdWNzMl90ICpzKTsKTlRTVEFUVVMg
aXNfdmFsaWRfbmFtZShjb25zdCBzbWJfdWNzMl90ICpmbmFtZSk7CkJPT0wgaXNfbWFuZ2xlZChj
b25zdCBjaGFyICpzKTsKTlRTVEFUVVMgaXNfbWFuZ2xlZF93KGNvbnN0IHNtYl91Y3MyX3QgKnMp
OwpOVFNUQVRVUyBwYXRoX2hhc19tYW5nbGVkKGNvbnN0IHNtYl91Y3MyX3QgKnMpOwp2b2lkIHJl
c2V0X21hbmdsZWRfY2FjaGUodm9pZCk7CkJPT0wgY2hlY2tfbWFuZ2xlZF9jYWNoZShjaGFyICpz
KTsKdm9pZCBtYW5nbGVfbmFtZV84MyhjaGFyICpzKTsKQk9PTCBuYW1lX21hcF9tYW5nbGUoY2hh
ciAqT3V0TmFtZSwgQk9PTCBuZWVkODMsIEJPT0wgY2FjaGU4MywgaW50IHNudW0pOwp2b2lkIG1h
bmdsZV90ZXN0X2NvZGUodm9pZCk7CgoKCmludCByZXBseV9zZW5kcyhjb25uZWN0aW9uX3N0cnVj
dCAqY29ubiwKICAgICAgICAgICAgICAgIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1
bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3NlbmRzdHJ0KGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgY2hhciAqaW5idWYsY2hhciAqb3V0YnVm
LCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfc2VuZHR4dChjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgY2hhciAqaW5idWYsY2hhciAq
b3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfc2VuZGVu
ZChjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgY2hhciAqaW5idWYs
Y2hhciAqb3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwoKCgppbnQgcmVw
bHlfbmVncHJvdChjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgY2hh
ciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgZHVtX3NpemUsCiAgICAgICAgICAgICAgICAgIGlu
dCBkdW1fYnVmZnNpemUpOwoKCgpCT09MIGRpc2tfcXVvdGFzKGNvbnN0IGNoYXIgKnBhdGgsdW5z
aWduZWQgbG9uZyBsb25nICpic2l6ZSx1bnNpZ25lZCBsb25nIGxvbmcgKmRmcmVlLHVuc2lnbmVk
IGxvbmcgbG9uZyAqZHNpemUpOwoKCgp2b2lkIHJlbW92ZV9wZW5kaW5nX2NoYW5nZV9ub3RpZnlf
cmVxdWVzdHNfYnlfZmlkKGZpbGVzX3N0cnVjdCAqZnNwKTsKdm9pZCByZW1vdmVfcGVuZGluZ19j
aGFuZ2Vfbm90aWZ5X3JlcXVlc3RzX2J5X21pZChpbnQgbWlkKTsKdm9pZCByZW1vdmVfcGVuZGlu
Z19jaGFuZ2Vfbm90aWZ5X3JlcXVlc3RzX2J5X2ZpbGVuYW1lKGZpbGVzX3N0cnVjdCAqZnNwKTsK
aW50IGNoYW5nZV9ub3RpZnlfdGltZW91dCh2b2lkKTsKQk9PTCBwcm9jZXNzX3BlbmRpbmdfY2hh
bmdlX25vdGlmeV9xdWV1ZSh0aW1lX3QgdCk7CkJPT0wgY2hhbmdlX25vdGlmeV9zZXQoY2hhciAq
aW5idWYsIGZpbGVzX3N0cnVjdCAqZnNwLCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgdW5zaWdu
ZWQgaW50IGZsYWdzKTsKQk9PTCBpbml0X2NoYW5nZV9ub3RpZnkodm9pZCk7CgoKCnN0cnVjdCBj
bm90aWZ5X2ZucyAqaGFzaF9ub3RpZnlfaW5pdCh2b2lkKSA7CgoKCnN0cnVjdCBjbm90aWZ5X2Zu
cyAqa2VybmVsX25vdGlmeV9pbml0KHZvaWQpIDsKCgoKaW50IHJlcGx5X250Y3JlYXRlX2FuZF9Y
KGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq
aW5idWYsY2hhciAqb3V0YnVmLGludCBsZW5ndGgsaW50IGJ1ZnNpemUpOwppbnQgcmVwbHlfbnRj
YW5jZWwoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAgICAgICAgICAgICAgICBjaGFyICpp
bmJ1ZixjaGFyICpvdXRidWYsaW50IGxlbmd0aCxpbnQgYnVmc2l6ZSk7CmludCByZXBseV9udHRy
YW5zcyhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgIGNoYXIgKmlu
YnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50IHJlcGx5X250dHJh
bnMoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAgICAgICAgICAgICAgIGNoYXIgKmluYnVm
LGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKCgoKaW50IGZkX2Nsb3NlKHN0
cnVjdCBjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgZmlsZXNfc3RydWN0ICpmc3ApOwpmaWxlc19z
dHJ1Y3QgKm9wZW5fZmlsZV9zaGFyZWQoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sY2hhciAqZm5h
bWUsIHN0cnVjdCBzdGF0ICpwc2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzaGFyZV9tb2RlLGludCBvZnVuLCBtb2RlX3QgbW9kZSxpbnQgb3Bsb2NrX3JlcXVlc3QsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKkFjY2VzcyxpbnQgKmFjdGlvbik7CmZp
bGVzX3N0cnVjdCAqb3Blbl9maWxlX3N0YXQoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIg
KmZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBzdGF0ICpwc2J1ZiwgaW50IHNtYl9vZnVuLCBpbnQgKmFjdGlvbik7CmZp
bGVzX3N0cnVjdCAqb3Blbl9maWxlX2ZjaG1vZChjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hh
ciAqZm5hbWUsIHN0cnVjdCBzdGF0ICpwc2J1Zik7CmludCBjbG9zZV9maWxlX2ZjaG1vZChmaWxl
c19zdHJ1Y3QgKmZzcCk7CmZpbGVzX3N0cnVjdCAqb3Blbl9kaXJlY3RvcnkoY29ubmVjdGlvbl9z
dHJ1Y3QgKmNvbm4sIGNoYXIgKmZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzdGF0ICpwc2J1ZiwgaW50IHNoYXJlX21v
ZGUsIGludCBzbWJfb2Z1biwgbW9kZV90IHVuaXhtb2RlLCBpbnQgKmFjdGlvbik7CkJPT0wgY2hl
Y2tfZmlsZV9zaGFyaW5nKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLGNoYXIgKmZuYW1lLCBCT09M
IHJlbmFtZV9vcCk7CgoKCmludCBnZXRfbnVtYmVyX29mX2V4Y2x1c2l2ZV9vcGVuX29wbG9ja3Mo
dm9pZCk7CkJPT0wgb3Bsb2NrX21lc3NhZ2Vfd2FpdGluZyhmZF9zZXQgKmZkcyk7CkJPT0wgcmVj
ZWl2ZV9sb2NhbF9tZXNzYWdlKGZkX3NldCAqZmRzLCBjaGFyICpidWZmZXIsIGludCBidWZmZXJf
bGVuLCBpbnQgdGltZW91dCk7CkJPT0wgc2V0X2ZpbGVfb3Bsb2NrKGZpbGVzX3N0cnVjdCAqZnNw
LCBpbnQgb3Bsb2NrX3R5cGUpOwp2b2lkIHJlbGVhc2VfZmlsZV9vcGxvY2soZmlsZXNfc3RydWN0
ICpmc3ApOwpCT09MIHJlbW92ZV9vcGxvY2soZmlsZXNfc3RydWN0ICpmc3AsIEJPT0wgYnJlYWtf
dG9fbm9uZSk7CmludCBzZXR1cF9vcGxvY2tfc2VsZWN0X3NldCggZmRfc2V0ICpmZHMpOwpCT09M
IHByb2Nlc3NfbG9jYWxfbWVzc2FnZShjaGFyICpidWZmZXIsIGludCBidWZfc2l6ZSk7CkJPT0wg
b3Bsb2NrX2JyZWFrX2xldmVsMihmaWxlc19zdHJ1Y3QgKmZzcCwgQk9PTCBsb2NhbF9yZXF1ZXN0
LCBpbnQgdG9rZW4pOwpCT09MIHJlcXVlc3Rfb3Bsb2NrX2JyZWFrKHNoYXJlX21vZGVfZW50cnkg
KnNoYXJlX2VudHJ5KTsKQk9PTCBhdHRlbXB0X2Nsb3NlX29wbG9ja2VkX2ZpbGUoZmlsZXNfc3Ry
dWN0ICpmc3ApOwp2b2lkIHJlbGVhc2VfbGV2ZWxfMl9vcGxvY2tzX29uX2NoYW5nZShmaWxlc19z
dHJ1Y3QgKmZzcCk7CkJPT0wgaW5pdF9vcGxvY2tzKHZvaWQpOwoKCgpzdHJ1Y3Qga2VybmVsX29w
bG9ja3MgKmlyaXhfaW5pdF9rZXJuZWxfb3Bsb2Nrcyh2b2lkKSA7CgoKCnN0cnVjdCBrZXJuZWxf
b3Bsb2NrcyAqbGludXhfaW5pdF9rZXJuZWxfb3Bsb2Nrcyh2b2lkKSA7CgoKCnVzZXJfc3RydWN0
ICpnZXRfdmFsaWRfdXNlcl9zdHJ1Y3QodW5zaWduZWQgc2hvcnQgdnVpZCk7CnZvaWQgaW52YWxp
ZGF0ZV92dWlkKHVuc2lnbmVkIHNob3J0IHZ1aWQpOwp2b2lkIGludmFsaWRhdGVfYWxsX3Z1aWRz
KHZvaWQpOwpjaGFyICp2YWxpZGF0ZWRfdXNlcm5hbWUodW5zaWduZWQgc2hvcnQgdnVpZCk7CmNo
YXIgKnZhbGlkYXRlZF9kb21haW4odW5zaWduZWQgc2hvcnQgdnVpZCk7Ck5UX1VTRVJfVE9LRU4g
KmNyZWF0ZV9udF90b2tlbih1aWRfdCB1aWQsIGdpZF90IGdpZCwgaW50IG5ncm91cHMsIGdpZF90
ICpncm91cHMsIEJPT0wgaXNfZ3Vlc3QsIE5UX1VTRVJfVE9LRU4gKnN1cF90b2spOwppbnQgcmVn
aXN0ZXJfdnVpZChhdXRoX3NlcnZlcnN1cHBsaWVkX2luZm8gKnNlcnZlcl9pbmZvLCBjaGFyICpz
bWJfbmFtZSk7CnZvaWQgYWRkX3Nlc3Npb25fdXNlcihjaGFyICp1c2VyKTsKQk9PTCB1c2VyX29r
KGNoYXIgKnVzZXIsaW50IHNudW0pOwpCT09MIGF1dGhvcmlzZV9sb2dpbihpbnQgc251bSxjaGFy
ICp1c2VyLCBEQVRBX0JMT0IgcGFzc3dvcmQsCiAgICAgICAgICAgICAgICAgICAgIEJPT0wgKmd1
ZXN0LEJPT0wgKmZvcmNlLHVuc2lnbmVkIHNob3J0IHZ1aWQpOwoKCgppbnQgcmVwbHlfb3Blbl9w
aXBlX2FuZF9YKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50
IHJlcGx5X3BpcGVfd3JpdGUoY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLGludCBsZW5ndGgsaW50
IGR1bV9idWZzaXplKTsKaW50IHJlcGx5X3BpcGVfd3JpdGVfYW5kX1goY2hhciAqaW5idWYsY2hh
ciAqb3V0YnVmLGludCBsZW5ndGgsaW50IGJ1ZnNpemUpOwppbnQgcmVwbHlfcGlwZV9yZWFkX2Fu
ZF9YKGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50
IHJlcGx5X3BpcGVfY2xvc2UoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNo
YXIgKm91dGJ1Zik7CgoKCnNpemVfdCBnZXRfbnRfYWNsKGZpbGVzX3N0cnVjdCAqZnNwLCBTRUNf
REVTQyAqKnBwZGVzYyk7CkJPT0wgc2V0X250X2FjbChmaWxlc19zdHJ1Y3QgKmZzcCwgdW5zaWdu
ZWQgaW50IHNlY3VyaXR5X2luZm9fc2VudCwgU0VDX0RFU0MgKnBzZCk7CmludCBjaG1vZF9hY2wo
Y29uc3QgY2hhciAqbmFtZSwgbW9kZV90IG1vZGUpOwppbnQgZmNobW9kX2FjbChpbnQgZmQsIG1v
ZGVfdCBtb2RlKTsKCgoKQk9PTCBwdXNoX29wbG9ja19wZW5kaW5nX3NtYl9tZXNzYWdlKGNoYXIg
KmJ1ZiwgaW50IG1zZ19sZW4pOwpCT09MIHJlY2VpdmVfbmV4dF9zbWIoY2hhciAqaW5idWYsIGlu
dCBidWZzaXplLCBpbnQgdGltZW91dCk7CnZvaWQgcmVzcG9uZF90b19hbGxfcmVtYWluaW5nX2xv
Y2FsX21lc3NhZ2VzKHZvaWQpOwp2b2lkIHByb2Nlc3Nfc21iKGNoYXIgKmluYnVmLCBjaGFyICpv
dXRidWYpOwpjaGFyICpzbWJfZm5fbmFtZShpbnQgdHlwZSk7CnZvaWQgY29uc3RydWN0X3JlcGx5
X2NvbW1vbihjaGFyICppbmJ1ZixjaGFyICpvdXRidWYpOwppbnQgY2hhaW5fcmVwbHkoY2hhciAq
aW5idWYsY2hhciAqb3V0YnVmLGludCBzaXplLGludCBidWZzaXplKTsKdm9pZCBjaGVja19yZWxv
YWQoaW50IHQpOwp2b2lkIHNtYmRfcHJvY2Vzcyh2b2lkKTsKCgoKaW50IHJlcGx5X3NwZWNpYWwo
Y2hhciAqaW5idWYsY2hhciAqb3V0YnVmKTsKaW50IHJlcGx5X3Rjb24oY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sCiAgICAgICAgICAgICAgIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1
bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3Rjb25fYW5kX1goY29ubmVjdGlv
bl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBi
dWZzaXplKTsKaW50IHJlcGx5X3Vua25vd24oY2hhciAqaW5idWYsY2hhciAqb3V0YnVmKTsKaW50
IHJlcGx5X2lvY3RsKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgY2hh
ciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwpp
bnQgcmVwbHlfY2hrcHRoKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFy
ICpvdXRidWYsIGludCBkdW1fc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9nZXRh
dHIoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50
IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3NldGF0cihjb25uZWN0aW9u
X3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgZHVtX3NpemUsIGlu
dCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfZHNrYXR0cihjb25uZWN0aW9uX3N0cnVjdCAqY29u
biwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNp
emUpOwppbnQgcmVwbHlfc2VhcmNoKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1
ZixjaGFyICpvdXRidWYsIGludCBkdW1fc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBs
eV9mY2xvc2UoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1
ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X29wZW4oY29ubmVj
dGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXpl
LCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X29wZW5fYW5kX1goY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXpl
KTsKaW50IHJlcGx5X3Vsb2dvZmZYKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1
ZixjaGFyICpvdXRidWYsaW50IGxlbmd0aCxpbnQgYnVmc2l6ZSk7CmludCByZXBseV9ta25ldyhj
b25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgZHVt
X3NpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfY3RlbXAoY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVt
X2J1ZmZzaXplKTsKTlRTVEFUVVMgdW5saW5rX2ludGVybmFscyhjb25uZWN0aW9uX3N0cnVjdCAq
Y29ubiwgaW50IGRpcnR5cGUsIGNoYXIgKm5hbWUpOwppbnQgcmVwbHlfdW5saW5rKGNvbm5lY3Rp
b25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBkdW1fc2l6ZSwK
ICAgICAgICAgICAgICAgICBpbnQgZHVtX2J1ZmZzaXplKTsKdm9pZCBmYWlsX3JlYWRyYXcodm9p
ZCk7CmludCByZXBseV9yZWFkYnJhdyhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5i
dWYsIGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJl
cGx5X2xvY2tyZWFkKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpv
dXRidWYsIGludCBsZW5ndGgsIGludCBkdW1fYnVmZnNpeik7CmludCByZXBseV9yZWFkKGNvbm5l
Y3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBzaXplLCBp
bnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3JlYWRfYW5kX1goY29ubmVjdGlvbl9zdHJ1Y3Qg
KmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsK
aW50IHJlcGx5X3dyaXRlYnJhdyhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYs
Y2hhciAqb3V0YnVmLCBpbnQgc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV93cml0
ZXVubG9jayhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVm
LAogICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQg
cmVwbHlfd3JpdGUoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91
dGJ1ZixpbnQgc2l6ZSxpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3dyaXRlX2FuZF9YKGNv
bm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsaW50IGxlbmd0
aCxpbnQgYnVmc2l6ZSk7CmludCByZXBseV9sc2Vlayhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwg
Y2hhciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7Cmlu
dCByZXBseV9mbHVzaChjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAq
b3V0YnVmLCBpbnQgc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9leGl0KGNvbm5l
Y3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICBjaGFyICppbmJ1ZixjaGFyICpvdXRi
dWYsIGludCBkdW1fc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9jbG9zZShjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLCBpbnQgc2l6ZSwK
ICAgICAgICAgICAgICAgIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfd3JpdGVjbG9zZShj
b25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICAgICAgY2hhciAqaW5idWYs
Y2hhciAqb3V0YnVmLCBpbnQgc2l6ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9sb2Nr
KGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICBjaGFyICppbmJ1ZixjaGFy
ICpvdXRidWYsIGludCBsZW5ndGgsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfdW5sb2Nr
KGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBz
aXplLAogICAgICAgICAgICAgICAgIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfdGRpcyhj
b25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgY2hhciAqaW5idWYsY2hhciAq
b3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfZWNobyhj
b25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgY2hhciAqaW5idWYsY2hhciAq
b3V0YnVmLCBpbnQgZHVtX3NpemUsIGludCBkdW1fYnVmZnNpemUpOwppbnQgcmVwbHlfcHJpbnRv
cGVuKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgIGNoYXIgKmlu
YnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJl
cGx5X3ByaW50Y2xvc2UoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZz
aXplKTsKaW50IHJlcGx5X3ByaW50cXVldWUoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBp
bnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3ByaW50d3JpdGUoY29ubmVjdGlvbl9zdHJ1Y3Qg
KmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1
ZmZzaXplKTsKTlRTVEFUVVMgbWtkaXJfaW50ZXJuYWwoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4s
IHBzdHJpbmcgZGlyZWN0b3J5KTsKaW50IHJlcGx5X21rZGlyKGNvbm5lY3Rpb25fc3RydWN0ICpj
b25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBkdW1fc2l6ZSwgaW50IGR1bV9idWZm
c2l6ZSk7CkJPT0wgcm1kaXJfaW50ZXJuYWxzKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFy
ICpkaXJlY3RvcnkpOwppbnQgcmVwbHlfcm1kaXIoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNo
YXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsK
TlRTVEFUVVMgcmVuYW1lX2ludGVybmFscyhjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYXIgKm5ld25hbWUsIEJPT0wgcmVwbGFjZV9pZl9leGlzdHMpOwppbnQgcmVwbHlfbXYoY29u
bmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9z
aXplLAogICAgICAgICAgICAgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9jb3B5KGNvbm5l
Y3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBkdW1fc2l6
ZSwgaW50IGR1bV9idWZmc2l6ZSk7CmludCByZXBseV9zZXRkaXIoY29ubmVjdGlvbl9zdHJ1Y3Qg
KmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IGR1bV9zaXplLCBpbnQgZHVtX2J1
ZmZzaXplKTsKdW5zaWduZWQgc2hvcnQgZ2V0X2xvY2tfcGlkKCBjaGFyICpkYXRhLCBpbnQgZGF0
YV9vZmZzZXQsIEJPT0wgbGFyZ2VfZmlsZV9mb3JtYXQpOwp1bnNpZ25lZCBsb25nIGxvbmcgZ2V0
X2xvY2tfY291bnQoIGNoYXIgKmRhdGEsIGludCBkYXRhX29mZnNldCwgQk9PTCBsYXJnZV9maWxl
X2Zvcm1hdCk7CnVuc2lnbmVkIGxvbmcgbG9uZyBnZXRfbG9ja19vZmZzZXQoIGNoYXIgKmRhdGEs
IGludCBkYXRhX29mZnNldCwgQk9PTCBsYXJnZV9maWxlX2Zvcm1hdCwgQk9PTCAqZXJyKTsKaW50
IHJlcGx5X2xvY2tpbmdYKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFy
ICpvdXRidWYsaW50IGxlbmd0aCxpbnQgYnVmc2l6ZSk7CmludCByZXBseV9yZWFkYm1weChjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqaW5idWYsY2hhciAqb3V0YnVmLGludCBsZW5ndGgs
aW50IGJ1ZnNpemUpOwppbnQgcmVwbHlfc2V0YXR0ckUoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4s
IGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50IHNpemUsIGludCBkdW1fYnVmZnNpemUpOwpp
bnQgcmVwbHlfd3JpdGVibXB4KGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1Zixj
aGFyICpvdXRidWYsIGludCBzaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X3dyaXRl
YnMoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZiwgaW50
IGR1bV9zaXplLCBpbnQgZHVtX2J1ZmZzaXplKTsKaW50IHJlcGx5X2dldGF0dHJFKGNvbm5lY3Rp
b25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpvdXRidWYsIGludCBzaXplLCBpbnQg
ZHVtX2J1ZmZzaXplKTsKCgoKaW50IGdldF9jdXJyZW50X2dyb3VwcyhpbnQgKnBfbmdyb3Vwcywg
Z2lkX3QgKipwX2dyb3Vwcyk7CkJPT0wgaW5pdGlhbGlzZV9ncm91cHMoY2hhciAqdXNlciwgdWlk
X3QgdWlkLCBnaWRfdCBnaWQpOwpCT09MIHB1c2hfc2VjX2N0eCh2b2lkKTsKdm9pZCBzZXRfc2Vj
X2N0eCh1aWRfdCB1aWQsIGdpZF90IGdpZCwgaW50IG5ncm91cHMsIGdpZF90ICpncm91cHMsIE5U
X1VTRVJfVE9LRU4gKnRva2VuKTsKdm9pZCBzZXRfcm9vdF9zZWNfY3R4KHZvaWQpOwpCT09MIHBv
cF9zZWNfY3R4KHZvaWQpOwp2b2lkIGluaXRfc2VjX2N0eCh2b2lkKTsKCgoKaW50IHNtYmRfc2Vy
dmVyX2ZkKHZvaWQpOwp2b2lkIHNtYmRfc2V0X3NlcnZlcl9mZChpbnQgZmQpOwpCT09MIHJlbG9h
ZF9zZXJ2aWNlcyhCT09MIHRlc3QpOwp2b2lkIGV4aXRfc2VydmVyKGNoYXIgKnJlYXNvbik7CgoK
CkJPT0wgc2V0X2N1cnJlbnRfc2VydmljZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubixCT09MIGRv
X2NoZGlyKTsKaW50IGFkZF9ob21lX3NlcnZpY2UoY29uc3QgY2hhciAqc2VydmljZSwgY29uc3Qg
Y2hhciAqaG9tZWRpcik7CmludCBmaW5kX3NlcnZpY2UoY2hhciAqc2VydmljZSk7CmNvbm5lY3Rp
b25fc3RydWN0ICptYWtlX2Nvbm5lY3Rpb24oY2hhciAqc2VydmljZSwgREFUQV9CTE9CIHBhc3N3
b3JkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRldix1bnNpZ25l
ZCBzaG9ydCB2dWlkLCBOVFNUQVRVUyAqc3RhdHVzKTsKdm9pZCBjbG9zZV9jbnVtKGNvbm5lY3Rp
b25fc3RydWN0ICpjb25uLCB1bnNpZ25lZCBzaG9ydCB2dWlkKTsKCgoKQk9PTCBzZXNzaW9uX2Ns
YWltKHVzZXJfc3RydWN0ICp2dXNlcik7CnZvaWQgc2Vzc2lvbl95aWVsZCh1c2VyX3N0cnVjdCAq
dnVzZXIpOwpCT09MIHNlc3Npb25fdHJhdmVyc2UoaW50ICgqZm4pKFREQl9DT05URVhUICosIFRE
Ql9EQVRBLCBUREJfREFUQSwgdm9pZCAqKSwgdm9pZCAqc3RhdGUpOwoKCgppbnQgcmVwbHlfc2Vz
c3NldHVwX2FuZF9YKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjaGFyICppbmJ1ZixjaGFyICpv
dXRidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCxpbnQgYnVmc2l6ZSk7
CgoKCmludCBzcnZzdHJfcHVzaCh2b2lkICpiYXNlX3B0ciwgdm9pZCAqZGVzdCwgY29uc3QgY2hh
ciAqc3JjLCBpbnQgZGVzdF9sZW4sIGludCBmbGFncyk7CmludCBzcnZzdHJfcHVsbCh2b2lkICpi
YXNlX3B0ciwgY2hhciAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBpbnQgZGVzdF9sZW4sIGludCBz
cmNfbGVuLAogICAgICAgICAgICAgICAgaW50IGZsYWdzKTsKCgoKaW50IHNzbHV0aWxfaW5pdChp
bnQgaXNTZXJ2ZXIpOwppbnQgc3NsdXRpbF9hY2NlcHQoaW50IGZkKTsKaW50IHNzbHV0aWxfZmRf
aXNfc3NsKGludCBmZCk7CmludCBzc2x1dGlsX2Nvbm5lY3QoaW50IGZkKTsKaW50IHNzbHV0aWxf
ZGlzY29ubmVjdChpbnQgZmQpOwppbnQgc3NsdXRpbF9uZWdvdGlhdGVfc3NsKGludCBmZCwgaW50
IG1zZ190eXBlKTsKCgoKdm9pZCBzdGF0X2NhY2hlX2FkZCggY2hhciAqZnVsbF9vcmlnX25hbWUs
IGNoYXIgKm9yaWdfdHJhbnNsYXRlZF9wYXRoKTsKQk9PTCBzdGF0X2NhY2hlX2xvb2t1cChjb25u
ZWN0aW9uX3N0cnVjdCAqY29ubiwgY2hhciAqbmFtZSwgY2hhciAqZGlycGF0aCwKICAgICAgICAg
ICAgICAgICAgICAgICBjaGFyICoqc3RhcnQsIHN0cnVjdCBzdGF0ICpwc3QpOwpCT09MIHJlc2V0
X3N0YXRfY2FjaGUoIHZvaWQgKTsKCgoKTlRTVEFUVVMgc2V0X2RlbGV0ZV9vbl9jbG9zZV9pbnRl
cm5hbChmaWxlc19zdHJ1Y3QgKmZzcCwgQk9PTCBkZWxldGVfb25fY2xvc2UpOwppbnQgcmVwbHlf
ZmluZGNsb3NlKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLAogICAgICAgICAgICAgICAgICAgIGNo
YXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50IHJlcGx5
X2ZpbmRuY2xvc2UoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAgICAgICAgICAgICAgICAg
IGNoYXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50IHJl
cGx5X3RyYW5zczIoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sCiAgICAgICAgICAgICAgICAgIGNo
YXIgKmluYnVmLGNoYXIgKm91dGJ1ZixpbnQgbGVuZ3RoLGludCBidWZzaXplKTsKaW50IHJlcGx5
X3RyYW5zMihjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwKICAgICAgICAgICAgICAgICBjaGFyICpp
bmJ1ZixjaGFyICpvdXRidWYsaW50IGxlbmd0aCxpbnQgYnVmc2l6ZSk7CgoKCkJPT0wgY2hhbmdl
X3RvX2d1ZXN0KHZvaWQpOwpCT09MIGNoYW5nZV90b191c2VyKGNvbm5lY3Rpb25fc3RydWN0ICpj
b25uLCB1bnNpZ25lZCBzaG9ydCB2dWlkKTsKQk9PTCBjaGFuZ2VfdG9fcm9vdF91c2VyKHZvaWQp
OwpCT09MIGJlY29tZV9hdXRoZW50aWNhdGVkX3BpcGVfdXNlcihwaXBlc19zdHJ1Y3QgKnApOwpC
T09MIHVuYmVjb21lX2F1dGhlbnRpY2F0ZWRfcGlwZV91c2VyKHZvaWQpOwp2b2lkIGluaXRfY29u
bl9jdHgodm9pZCk7CnZvaWQgYmVjb21lX3Jvb3Qodm9pZCk7CnZvaWQgdW5iZWNvbWVfcm9vdCh2
b2lkKTsKQk9PTCBiZWNvbWVfdXNlcihjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgdW5zaWduZWQg
c2hvcnQgdnVpZCk7CkJPT0wgdW5iZWNvbWVfdXNlcih2b2lkKTsKdm9pZCBhZGRfc3VwcGxlbWVu
dGFyeV9udF9sb2dpbl9ncm91cHMoaW50ICpuX2dyb3VwcywgZ2lkX3QgKipwcF9ncm91cHMsIE5U
X1VTRVJfVE9LRU4gKipwcHRvayk7CkJPT0wgbG9va3VwX25hbWUoY29uc3QgY2hhciAqbmFtZSwg
RE9NX1NJRCAqcHNpZCwgZW51bSBTSURfTkFNRV9VU0UgKm5hbWVfdHlwZSk7CkJPT0wgbG9va3Vw
X3NpZChET01fU0lEICpzaWQsIGZzdHJpbmcgZG9tX25hbWUsIGZzdHJpbmcgbmFtZSwgZW51bSBT
SURfTkFNRV9VU0UgKm5hbWVfdHlwZSk7CkRPTV9TSUQgKnVpZF90b19zaWQoRE9NX1NJRCAqcHNp
ZCwgdWlkX3QgdWlkKTsKRE9NX1NJRCAqZ2lkX3RvX3NpZChET01fU0lEICpwc2lkLCBnaWRfdCBn
aWQpOwpCT09MIHNpZF90b191aWQoRE9NX1NJRCAqcHNpZCwgdWlkX3QgKnB1aWQsIGVudW0gU0lE
X05BTUVfVVNFICpzaWR0eXBlKTsKQk9PTCBzaWRfdG9fZ2lkKERPTV9TSUQgKnBzaWQsIGdpZF90
ICpwZ2lkLCBlbnVtIFNJRF9OQU1FX1VTRSAqc2lkdHlwZSk7CgoKCnZvaWQgc3lzX3V0bXBfeWll
bGQoY29uc3QgY2hhciAqdXNlcm5hbWUsIGNvbnN0IGNoYXIgKmhvc3RuYW1lLAogICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKmlkX3N0ciwgaW50IGlkX251bSk7CnZvaWQgc3lzX3V0bXBf
Y2xhaW0oY29uc3QgY2hhciAqdXNlcm5hbWUsIGNvbnN0IGNoYXIgKmhvc3RuYW1lLAogICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkX3N0ciwgaW50IGlkX251bSk7CgoKCmludCB2ZnN3
cmFwX2R1bW15X2Nvbm5lY3QoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKnNl
cnZpY2UsIGNvbnN0IGNoYXIgKnVzZXIpOwp2b2lkIHZmc3dyYXBfZHVtbXlfZGlzY29ubmVjdChj
b25uZWN0aW9uX3N0cnVjdCAqY29ubik7CnVuc2lnbmVkIGxvbmcgbG9uZyB2ZnN3cmFwX2Rpc2tf
ZnJlZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgQk9PTCBzbWFs
bF9xdWVyeSwgdW5zaWduZWQgbG9uZyBsb25nICpic2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyAqZGZyZWUsIHVuc2lnbmVkIGxvbmcgbG9uZyAq
ZHNpemUpOwpESVIgKnZmc3dyYXBfb3BlbmRpcihjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29u
c3QgY2hhciAqZm5hbWUpOwpzdHJ1Y3QgZGlyZW50ICp2ZnN3cmFwX3JlYWRkaXIoY29ubmVjdGlv
bl9zdHJ1Y3QgKmNvbm4sIERJUiAqZGlycCk7CmludCB2ZnN3cmFwX21rZGlyKGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpwYXRoLCBtb2RlX3QgbW9kZSk7CmludCB2ZnN3cmFw
X3JtZGlyKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpwYXRoKTsKaW50IHZm
c3dyYXBfY2xvc2VkaXIoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIERJUiAqZGlycCk7CmludCB2
ZnN3cmFwX29wZW4oY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKmZuYW1lLCBp
bnQgZmxhZ3MsIG1vZGVfdCBtb2RlKTsKaW50IHZmc3dyYXBfY2xvc2UoZmlsZXNfc3RydWN0ICpm
c3AsIGludCBmZCk7CnNzaXplX3QgdmZzd3JhcF9yZWFkKGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQg
ZmQsIHZvaWQgKmRhdGEsIHNpemVfdCBuKTsKc3NpemVfdCB2ZnN3cmFwX3dyaXRlKGZpbGVzX3N0
cnVjdCAqZnNwLCBpbnQgZmQsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBuKTsKb2ZmX3QgdmZz
d3JhcF9sc2VlayhmaWxlc19zdHJ1Y3QgKmZzcCwgaW50IGZpbGVkZXMsIG9mZl90IG9mZnNldCwg
aW50IHdoZW5jZSk7CmludCB2ZnN3cmFwX3JlbmFtZShjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwg
Y29uc3QgY2hhciAqb2xkLCBjb25zdCBjaGFyICpuZXcpOwppbnQgdmZzd3JhcF9mc3luYyhmaWxl
c19zdHJ1Y3QgKmZzcCwgaW50IGZkKTsKaW50IHZmc3dyYXBfc3RhdChjb25uZWN0aW9uX3N0cnVj
dCAqY29ubiwgY29uc3QgY2hhciAqZm5hbWUsIHN0cnVjdCBzdGF0ICpzYnVmKTsKaW50IHZmc3dy
YXBfZnN0YXQoZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgc3RydWN0IHN0YXQgKnNidWYpOwpp
bnQgdmZzd3JhcF9sc3RhdChjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0
aCwgc3RydWN0IHN0YXQgKnNidWYpOwppbnQgdmZzd3JhcF91bmxpbmsoY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKnBhdGgpOwppbnQgdmZzd3JhcF9jaG1vZChjb25uZWN0aW9u
X3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgbW9kZV90IG1vZGUpOwppbnQgdmZzd3Jh
cF9mY2htb2QoZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgbW9kZV90IG1vZGUpOwppbnQgdmZz
d3JhcF9jaG93bihjb25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgdWlk
X3QgdWlkLCBnaWRfdCBnaWQpOwppbnQgdmZzd3JhcF9mY2hvd24oZmlsZXNfc3RydWN0ICpmc3As
IGludCBmZCwgdWlkX3QgdWlkLCBnaWRfdCBnaWQpOwppbnQgdmZzd3JhcF9jaGRpcihjb25uZWN0
aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCk7CmNoYXIgKnZmc3dyYXBfZ2V0d2Qo
Y29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNoYXIgKnBhdGgpOwppbnQgdmZzd3JhcF91dGltZShj
b25uZWN0aW9uX3N0cnVjdCAqY29ubiwgY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHV0aW1idWYg
KnRpbWVzKTsKaW50IHZmc3dyYXBfZnRydW5jYXRlKGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQs
IG9mZl90IGxlbik7CkJPT0wgdmZzd3JhcF9sb2NrKGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQs
IGludCBvcCwgb2ZmX3Qgb2Zmc2V0LCBvZmZfdCBjb3VudCwgaW50IHR5cGUpOwppbnQgdmZzd3Jh
cF9zeW1saW5rKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpvbGRwYXRoLCBj
b25zdCBjaGFyICpuZXdwYXRoKTsKaW50IHZmc3dyYXBfcmVhZGxpbmsoY29ubmVjdGlvbl9zdHJ1
Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKnBhdGgsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZnNpeik7CnNp
emVfdCB2ZnN3cmFwX2ZnZXRfbnRfYWNsKGZpbGVzX3N0cnVjdCAqZnNwLCBpbnQgZmQsIFNFQ19E
RVNDICoqcHBkZXNjKTsKc2l6ZV90IHZmc3dyYXBfZ2V0X250X2FjbChmaWxlc19zdHJ1Y3QgKmZz
cCwgY29uc3QgY2hhciAqbmFtZSwgU0VDX0RFU0MgKipwcGRlc2MpOwpCT09MIHZmc3dyYXBfZnNl
dF9udF9hY2woZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgdW5zaWduZWQgaW50IHNlY3VyaXR5
X2luZm9fc2VudCwgU0VDX0RFU0MgKnBzZCk7CkJPT0wgdmZzd3JhcF9zZXRfbnRfYWNsKGZpbGVz
X3N0cnVjdCAqZnNwLCBjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQgc2VjdXJpdHlfaW5m
b19zZW50LCBTRUNfREVTQyAqcHNkKTsKaW50IHZmc3dyYXBfY2htb2RfYWNsKGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uLCBjb25zdCBjaGFyICpuYW1lLCBtb2RlX3QgbW9kZSk7CmludCB2ZnN3cmFw
X2ZjaG1vZF9hY2woZmlsZXNfc3RydWN0ICpmc3AsIGludCBmZCwgbW9kZV90IG1vZGUpOwoKCgpC
T09MIHNtYmRfdmZzX2luaXQoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4pOwpCT09MIHZmc19kaXJl
Y3RvcnlfZXhpc3QoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIGNvbnN0IGNoYXIgKmRuYW1lLCBz
dHJ1Y3Qgc3RhdCAqc3QpOwpjaGFyICp2ZnNfZ2V0d2QoY29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4s
IGNoYXIgKnBhdGgpOwppbnQgdmZzX21rZGlyKGNvbm5lY3Rpb25fc3RydWN0ICpjb25uLCBjb25z
dCBjaGFyICpuYW1lLCBtb2RlX3QgbW9kZSk7CkJPT0wgdmZzX2ZpbGVfZXhpc3QoY29ubmVjdGlv
bl9zdHJ1Y3QgKmNvbm4sY29uc3QgY2hhciAqZm5hbWUsc3RydWN0IHN0YXQgKnNidWYpOwpzc2l6
ZV90IHZmc19yZWFkX2RhdGEoZmlsZXNfc3RydWN0ICpmc3AsIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ5
dGVfY291bnQpOwpzc2l6ZV90IHZmc193cml0ZV9kYXRhKGZpbGVzX3N0cnVjdCAqZnNwLGNvbnN0
IGNoYXIgKmJ1ZmZlcixzaXplX3QgTik7CmludCB2ZnNfYWxsb2NhdGVfZmlsZV9zcGFjZShmaWxl
c19zdHJ1Y3QgKmZzcCwgb2ZmX3QgbGVuKTsKaW50IHZmc19zZXRfZmlsZWxlbihmaWxlc19zdHJ1
Y3QgKmZzcCwgb2ZmX3QgbGVuKTsKb2ZmX3QgdmZzX3RyYW5zZmVyX2ZpbGUoZmlsZXNfc3RydWN0
ICppbiwgZmlsZXNfc3RydWN0ICpvdXQsIG9mZl90IG4pOwpjaGFyICp2ZnNfcmVhZGRpcm5hbWUo
Y29ubmVjdGlvbl9zdHJ1Y3QgKmNvbm4sIHZvaWQgKnApOwppbnQgdmZzX0NoRGlyKGNvbm5lY3Rp
b25fc3RydWN0ICpjb25uLCBjaGFyICpwYXRoKTsKY2hhciAqdmZzX0dldFdkKGNvbm5lY3Rpb25f
c3RydWN0ICpjb25uLCBjaGFyICpwYXRoKTsKQk9PTCByZWR1Y2VfbmFtZShjb25uZWN0aW9uX3N0
cnVjdCAqY29ubiwgY2hhciAqcyxjaGFyICpkaXIsQk9PTCB3aWRlbGlua3MpOwoKCgppbnQgcmVh
bF91dGltZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdXRpbWJ1ZiAqYnVmKTsKaW50IHJlYWxf
dXRpbWVzKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB0aW1ldmFsIHR2WzJdKTsKCgoKdm9pZCBz
bWJ3X3NldHVwX3NoYXJlZCh2b2lkKTsKY2hhciAqc21id19nZXRzaGFyZWQoY29uc3QgY2hhciAq
bmFtZSk7CnZvaWQgc21id19zZXRzaGFyZWQoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq
dmFsKTsKaW50IHNtYndfc2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVl
KTsKaW50IHNtYndfc2hhcmVkX2ZkKGludCBmZCk7CgoKCnZvaWQgc21id19pbml0KHZvaWQpOwpp
bnQgc21id19mZChpbnQgZmQpOwppbnQgc21id19sb2NhbF9mZChpbnQgZmQpOwppbm9fdCBzbWJ3
X2lub2RlKGNvbnN0IGNoYXIgKm5hbWUpOwp2b2lkIGNsZWFuX2ZuYW1lKGNoYXIgKm5hbWUpOwpj
aGFyICpzbWJ3X3BhcnNlX3BhdGgoY29uc3QgY2hhciAqZm5hbWUsIGNoYXIgKnNlcnZlciwgY2hh
ciAqc2hhcmUsIGNoYXIgKnBhdGgpOwppbnQgc21id19wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwpp
bnQgc21id19lcnJubyhzdHJ1Y3QgY2xpX3N0YXRlICpjKTsKdm9pZCBnZXRfZW52dmFyX2F1dGhf
ZGF0YShjaGFyICpzZXJ2ZXIsIGNoYXIgKnNoYXJlLCBjaGFyICoqd29ya2dyb3VwLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKip1c2VybmFtZSwgY2hhciAqKnBhc3N3b3JkKTsKdm9p
ZCBzbWJ3X3NldF9hdXRoX2RhdGFfZm4oc21id19nZXRfYXV0aF9kYXRhX2ZuIGZuKTsKc3RydWN0
IHNtYndfc2VydmVyICpzbWJ3X3NlcnZlcihjaGFyICpzZXJ2ZXIsIGNoYXIgKnNoYXJlKTsKc3Ry
dWN0IHNtYndfZmlsZSAqc21id19maWxlKGludCBmZCk7CmludCBzbWJ3X29wZW4oY29uc3QgY2hh
ciAqZm5hbWUsIGludCBmbGFncywgbW9kZV90IG1vZGUpOwpzc2l6ZV90IHNtYndfcHJlYWQoaW50
IGZkLCB2b2lkICpidWYsIHNpemVfdCBjb3VudCwgb2ZmX3Qgb2ZzKTsKc3NpemVfdCBzbWJ3X3Jl
YWQoaW50IGZkLCB2b2lkICpidWYsIHNpemVfdCBjb3VudCk7CnNzaXplX3Qgc21id193cml0ZShp
bnQgZmQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKc3NpemVfdCBzbWJ3X3B3cml0ZShpbnQg
ZmQsIHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50LCBvZmZfdCBvZnMpOwppbnQgc21id19jbG9zZShp
bnQgZmQpOwppbnQgc21id19mY250bChpbnQgZmQsIGludCBjbWQsIGxvbmcgYXJnKTsKaW50IHNt
YndfYWNjZXNzKGNvbnN0IGNoYXIgKm5hbWUsIGludCBtb2RlKTsKaW50IHNtYndfcmVhZGxpbmso
Y29uc3QgY2hhciAqcGF0aCwgY2hhciAqYnVmLCBzaXplX3QgYnVmc2l6ZSk7CmludCBzbWJ3X3Vu
bGluayhjb25zdCBjaGFyICpmbmFtZSk7CmludCBzbWJ3X3JlbmFtZShjb25zdCBjaGFyICpvbGRu
YW1lLCBjb25zdCBjaGFyICpuZXduYW1lKTsKaW50IHNtYndfdXRpbWUoY29uc3QgY2hhciAqZm5h
bWUsIHZvaWQgKmJ1Zik7CmludCBzbWJ3X3V0aW1lcyhjb25zdCBjaGFyICpmbmFtZSwgdm9pZCAq
YnVmKTsKaW50IHNtYndfY2hvd24oY29uc3QgY2hhciAqZm5hbWUsIHVpZF90IG93bmVyLCBnaWRf
dCBncm91cCk7CmludCBzbWJ3X2NobW9kKGNvbnN0IGNoYXIgKmZuYW1lLCBtb2RlX3QgbmV3bW9k
ZSk7Cm9mZl90IHNtYndfbHNlZWsoaW50IGZkLCBvZmZfdCBvZmZzZXQsIGludCB3aGVuY2UpOwpp
bnQgc21id19kdXAoaW50IGZkKTsKaW50IHNtYndfZHVwMihpbnQgZmQsIGludCBmZDIpOwppbnQg
c21id19mb3JrKHZvaWQpOwoKCgpCT09MIHNtYndfTmV0U2VydmVyRW51bShzdHJ1Y3QgY2xpX3N0
YXRlICpjbGksIGNoYXIgKndvcmtncm91cCwgdW5zaWduZWQgaW50IHN0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICB2b2lkICgqZm4pKGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBjb25z
dCBjaGFyICosIHZvaWQgKiksCiAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnN0YXRlKTsK
aW50IHNtYndfUk5ldFNoYXJlRW51bShzdHJ1Y3QgY2xpX3N0YXRlICpjbGksCiAgICAgICAgICAg
ICAgICAgICAgICAgdm9pZCAoKmZuKShjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgY29uc3Qg
Y2hhciAqLCB2b2lkICopLAogICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnN0YXRlKTsKCgoK
c3RydWN0IHNtYndfZGlyICpzbWJ3X2RpcihpbnQgZmQpOwppbnQgc21id19kaXJwKERJUiAqZGly
cCk7CmludCBzbWJ3X2Rpcl9vcGVuKGNvbnN0IGNoYXIgKmZuYW1lKTsKaW50IHNtYndfZGlyX2Zz
dGF0KGludCBmZCwgc3RydWN0IHN0YXQgKnN0KTsKaW50IHNtYndfZGlyX2Nsb3NlKGludCBmZCk7
CmludCBzbWJ3X2dldGRlbnRzKHVuc2lnbmVkIGludCBmZCwgc3RydWN0IGRpcmVudCAqZGlycCwg
aW50IGNvdW50KTsKaW50IHNtYndfY2hkaXIoY29uc3QgY2hhciAqbmFtZSk7Cm9mZl90IHNtYndf
ZGlyX2xzZWVrKGludCBmZCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsKaW50IHNtYndfbWtk
aXIoY29uc3QgY2hhciAqZm5hbWUsIG1vZGVfdCBtb2RlKTsKaW50IHNtYndfcm1kaXIoY29uc3Qg
Y2hhciAqZm5hbWUpOwpjaGFyICpzbWJ3X2dldGN3ZChjaGFyICpidWYsIHNpemVfdCBzaXplKTsK
aW50IHNtYndfZmNoZGlyKHVuc2lnbmVkIGludCBmZCk7CkRJUiAqc21id19vcGVuZGlyKGNvbnN0
IGNoYXIgKmZuYW1lKTsKc3RydWN0IGRpcmVudCAqc21id19yZWFkZGlyKERJUiAqZGlycCk7Cmlu
dCBzbWJ3X2Nsb3NlZGlyKERJUiAqZGlycCk7CnZvaWQgc21id19zZWVrZGlyKERJUiAqZGlycCwg
b2ZmX3Qgb2Zmc2V0KTsKb2ZmX3Qgc21id190ZWxsZGlyKERJUiAqZGlycCk7CgoKCnZvaWQgc21i
d19zZXR1cF9zdGF0KHN0cnVjdCBzdGF0ICpzdCwgY2hhciAqZm5hbWUsIHNpemVfdCBzaXplLCBp
bnQgbW9kZSk7CkJPT0wgc21id19nZXRhdHIoc3RydWN0IHNtYndfc2VydmVyICpzcnYsIGNoYXIg
KnBhdGgsCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKm1vZGUsIHNpemVfdCAqc2l6
ZSwKICAgICAgICAgICAgICAgICB0aW1lX3QgKmNfdGltZSwgdGltZV90ICphX3RpbWUsIHRpbWVf
dCAqbV90aW1lLAogICAgICAgICAgICAgICAgIGlub190ICppbm8pOwppbnQgc21id19zdGF0X3By
aW50am9iKHN0cnVjdCBzbWJ3X3NlcnZlciAqc3J2LGNoYXIgKnBhdGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90ICpzaXplLCB0aW1lX3QgKm1fdGltZSk7CmludCBzbWJ3X2ZzdGF0KGlu
dCBmZCwgc3RydWN0IHN0YXQgKnN0KTsKaW50IHNtYndfc3RhdChjb25zdCBjaGFyICpmbmFtZSwg
c3RydWN0IHN0YXQgKnN0KTsKCgoKaW50IHRkYl9zcGlubG9jayhUREJfQ09OVEVYVCAqdGRiLCBp
bnQgbGlzdCwgaW50IHJ3X3R5cGUpOwppbnQgdGRiX3NwaW51bmxvY2soVERCX0NPTlRFWFQgKnRk
YiwgaW50IGxpc3QsIGludCByd190eXBlKTsKaW50IHRkYl9jcmVhdGVfcndsb2NrcyhpbnQgZmQs
IHVuc2lnbmVkIGludCBoYXNoX3NpemUpOwppbnQgdGRiX2NsZWFyX3NwaW5sb2NrcyhUREJfQ09O
VEVYVCAqdGRiKTsKaW50IHRkYl9jbGVhcl9zcGlubG9ja3MoVERCX0NPTlRFWFQgKnRkYik7CgoK
CnZvaWQgdGRiX2R1bXBfYWxsKFREQl9DT05URVhUICp0ZGIpOwp2b2lkIHRkYl9wcmludGZyZWVs
aXN0KFREQl9DT05URVhUICp0ZGIpOwplbnVtIFREQl9FUlJPUiB0ZGJfZXJyb3IoVERCX0NPTlRF
WFQgKnRkYik7CmNvbnN0IGNoYXIgKnRkYl9lcnJvcnN0cihUREJfQ09OVEVYVCAqdGRiKTsKVERC
X0RBVEEgdGRiX2ZldGNoKFREQl9DT05URVhUICp0ZGIsIFREQl9EQVRBIGtleSk7CmludCB0ZGJf
ZXhpc3RzKFREQl9DT05URVhUICp0ZGIsIFREQl9EQVRBIGtleSk7CmludCB0ZGJfdHJhdmVyc2Uo
VERCX0NPTlRFWFQgKnRkYiwgdGRiX3RyYXZlcnNlX2Z1bmMgZm4sIHZvaWQgKnN0YXRlKTsKVERC
X0RBVEEgdGRiX2ZpcnN0a2V5KFREQl9DT05URVhUICp0ZGIpOwpUREJfREFUQSB0ZGJfbmV4dGtl
eShUREJfQ09OVEVYVCAqdGRiLCBUREJfREFUQSBvbGRrZXkpOwppbnQgdGRiX2RlbGV0ZShUREJf
Q09OVEVYVCAqdGRiLCBUREJfREFUQSBrZXkpOwppbnQgdGRiX3N0b3JlKFREQl9DT05URVhUICp0
ZGIsIFREQl9EQVRBIGtleSwgVERCX0RBVEEgZGJ1ZiwgaW50IGZsYWcpOwpUREJfQ09OVEVYVCAq
dGRiX29wZW4oY29uc3QgY2hhciAqbmFtZSwgaW50IGhhc2hfc2l6ZSwgaW50IHRkYl9mbGFncywK
ICAgICAgICAgICAgICAgICAgICAgIGludCBvcGVuX2ZsYWdzLCBtb2RlX3QgbW9kZSk7ClREQl9D
T05URVhUICp0ZGJfb3Blbl9leChjb25zdCBjaGFyICpuYW1lLCBpbnQgaGFzaF9zaXplLCBpbnQg
dGRiX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wZW5fZmxhZ3MsIG1vZGVf
dCBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgdGRiX2xvZ19mdW5jIGxvZ19mbik7Cmlu
dCB0ZGJfY2xvc2UoVERCX0NPTlRFWFQgKnRkYik7CmludCB0ZGJfbG9ja2FsbChUREJfQ09OVEVY
VCAqdGRiKTsKdm9pZCB0ZGJfdW5sb2NrYWxsKFREQl9DT05URVhUICp0ZGIpOwppbnQgdGRiX2xv
Y2trZXlzKFREQl9DT05URVhUICp0ZGIsIHVuc2lnbmVkIG51bWJlciwgVERCX0RBVEEga2V5c1td
KTsKdm9pZCB0ZGJfdW5sb2Nra2V5cyhUREJfQ09OVEVYVCAqdGRiKTsKaW50IHRkYl9jaGFpbmxv
Y2soVERCX0NPTlRFWFQgKnRkYiwgVERCX0RBVEEga2V5KTsKdm9pZCB0ZGJfY2hhaW51bmxvY2so
VERCX0NPTlRFWFQgKnRkYiwgVERCX0RBVEEga2V5KTsKdm9pZCB0ZGJfbG9nZ2luZ19mdW5jdGlv
bihUREJfQ09OVEVYVCAqdGRiLCB2b2lkICgqZm4pKFREQl9DT05URVhUICosIGludCAsIGNvbnN0
IGNoYXIgKiwgLi4uKSk7CmludCB0ZGJfcmVvcGVuKFREQl9DT05URVhUICp0ZGIpOwppbnQgdGRi
X3Jlb3Blbl9hbGwodm9pZCk7CgoKCmludCB0ZGJfbG9ja19ieXN0cmluZyhUREJfQ09OVEVYVCAq
dGRiLCBjaGFyICprZXl2YWwpOwp2b2lkIHRkYl91bmxvY2tfYnlzdHJpbmcoVERCX0NPTlRFWFQg
KnRkYiwgY2hhciAqa2V5dmFsKTsKaW50IHRkYl9mZXRjaF9pbnRfYnlibG9iKFREQl9DT05URVhU
ICp0ZGIsIGNoYXIgKmtleXZhbCwgc2l6ZV90IGxlbik7CmludCB0ZGJfZmV0Y2hfaW50KFREQl9D
T05URVhUICp0ZGIsIGNoYXIgKmtleXN0cik7CmludCB0ZGJfc3RvcmVfaW50X2J5YmxvYihUREJf
Q09OVEVYVCAqdGRiLCBjaGFyICprZXlzdHIsIHNpemVfdCBsZW4sIGludCB2KTsKaW50IHRkYl9z
dG9yZV9pbnQoVERCX0NPTlRFWFQgKnRkYiwgY2hhciAqa2V5c3RyLCBpbnQgdik7CmludCB0ZGJf
c3RvcmVfYnlfc3RyaW5nKFREQl9DT05URVhUICp0ZGIsIGNoYXIgKmtleXN0ciwgdm9pZCAqYnVm
ZmVyLCBpbnQgbGVuKTsKVERCX0RBVEEgdGRiX2ZldGNoX2J5X3N0cmluZyhUREJfQ09OVEVYVCAq
dGRiLCBjaGFyICprZXlzdHIpOwppbnQgdGRiX2NoYW5nZV9pbnRfYXRvbWljKFREQl9DT05URVhU
ICp0ZGIsIGNoYXIgKmtleXN0ciwgaW50ICpvbGR2YWwsIGludCBjaGFuZ2VfdmFsKTsKc2l6ZV90
IHRkYl9wYWNrKGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUsIGNoYXIgKmZtdCwgLi4uKTsKaW50IHRk
Yl91bnBhY2soY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSwgY2hhciAqZm10LCAuLi4pOwpUREJfQ09O
VEVYVCAqdGRiX29wZW5fbG9nKGNoYXIgKm5hbWUsIGludCBoYXNoX3NpemUsIGludCB0ZGJfZmxh
Z3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wZW5fZmxhZ3MsIG1vZGVfdCBtb2Rl
KTsKCgoKQk9PTCB0b3J0dXJlX2Rlbnl0ZXN0MShpbnQgZHVtbXkpOwpCT09MIHRvcnR1cmVfZGVu
eXRlc3QyKGludCBkdW1teSk7CgoKCnZvaWQgbmJfc2V0dXAoc3RydWN0IGNsaV9zdGF0ZSAqY2xp
KTsKdm9pZCBuYl91bmxpbmsoY2hhciAqZm5hbWUpOwp2b2lkIG5iX29wZW4oY2hhciAqZm5hbWUs
IGludCBoYW5kbGUsIGludCBzaXplKTsKdm9pZCBuYl93cml0ZShpbnQgaGFuZGxlLCBpbnQgc2l6
ZSwgaW50IG9mZnNldCk7CnZvaWQgbmJfcmVhZChpbnQgaGFuZGxlLCBpbnQgc2l6ZSwgaW50IG9m
ZnNldCk7CnZvaWQgbmJfY2xvc2UoaW50IGhhbmRsZSk7CnZvaWQgbmJfbWtkaXIoY2hhciAqZm5h
bWUpOwp2b2lkIG5iX3JtZGlyKGNoYXIgKmZuYW1lKTsKdm9pZCBuYl9yZW5hbWUoY2hhciAqb2xk
LCBjaGFyICpuZXcpOwp2b2lkIG5iX3N0YXQoY2hhciAqZm5hbWUsIGludCBzaXplKTsKdm9pZCBu
Yl9jcmVhdGUoY2hhciAqZm5hbWUsIGludCBzaXplKTsKCgoKQk9PTCB0b3J0dXJlX3RyYW5zMl9z
Y2FuKGludCBkdW1teSk7CkJPT0wgdG9ydHVyZV9udHRyYW5zX3NjYW4oaW50IGR1bW15KTsKCgoK
Qk9PTCB0b3J0dXJlX29wZW5fY29ubmVjdGlvbihzdHJ1Y3QgY2xpX3N0YXRlICpjKTsKQk9PTCB0
b3J0dXJlX2Nsb3NlX2Nvbm5lY3Rpb24oc3RydWN0IGNsaV9zdGF0ZSAqYyk7CgoKCkJPT0wgdG9y
dHVyZV91dGFibGUoaW50IGR1bW15KTsKQk9PTCB0b3J0dXJlX2Nhc2V0YWJsZShpbnQgZHVtbXkp
OwoKCgppbnQgbmV0X3J1bl9mdW5jdGlvbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0
cnVjdCBmdW5jdGFibGUgKnRhYmxlLAogICAgICAgICAgICAgICAgICAgICBpbnQgKCp1c2FnZV9m
bikoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KSk7CnN0cnVjdCBjbGlfc3RhdGUgKm5ldF9t
YWtlX2lwY19jb25uZWN0aW9uKHVuc2lnbmVkIGZsYWdzKTsKCgoKaW50IG5ldF9hZHNfdXNhZ2Uo
aW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9hZHMoaW50IGFyZ2MsIGNvbnN0
IGNoYXIgKiphcmd2KTsKaW50IG5ldF9hZHNfdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiph
cmd2KTsKaW50IG5ldF9hZHMoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKCgoKaW50IG5l
dF9sb29rdXBfdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9sb29r
dXAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKCgoKaW50IGdlbmVyYWxfcmFwX3VzYWdl
KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CmludCBuZXRfcmFwX2ZpbGVfdXNhZ2UoaW50
IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9yYXBfZmlsZShpbnQgYXJnYywgY29u
c3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9zaGFyZV91c2FnZShpbnQgYXJnYywgY29uc3Qg
Y2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9zaGFyZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFy
Z3YpOwppbnQgbmV0X3JhcF9zZXNzaW9uX3VzYWdlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJn
dik7CmludCBuZXRfcmFwX3Nlc3Npb24oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50
IG5ldF9yYXBfc2VydmVyX3VzYWdlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CmludCBu
ZXRfcmFwX3NlcnZlcihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9k
b21haW5fdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9yYXBfZG9t
YWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CmludCBuZXRfcmFwX3ByaW50cV91c2Fn
ZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9wcmludHEoaW50IGFy
Z2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9yYXBfdXNlcl91c2FnZShpbnQgYXJnYywg
Y29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF91c2VyKGludCBhcmdjLCBjb25zdCBjaGFy
ICoqYXJndik7CmludCBuZXRfcmFwX2dyb3VwX3VzYWdlKGludCBhcmdjLCBjb25zdCBjaGFyICoq
YXJndik7CmludCBuZXRfcmFwX2dyb3VwKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7Cmlu
dCBuZXRfcmFwX2dyb3VwbWVtYmVyX3VzYWdlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7
CmludCBuZXRfcmFwX2dyb3VwbWVtYmVyKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7Cmlu
dCBuZXRfcmFwX3ZhbGlkYXRlX3VzYWdlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7Cmlu
dCBuZXRfcmFwX3ZhbGlkYXRlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CmludCBuZXRf
cmFwX3NlcnZpY2VfdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKaW50IG5ldF9y
YXBfc2VydmljZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9wYXNz
d29yZF91c2FnZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9wYXNz
d29yZChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9hZG1pbl91c2Fn
ZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF9hZG1pbihpbnQgYXJn
YywgY29uc3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3JhcF91c2FnZShpbnQgYXJnYywgY29uc3Qg
Y2hhciAqKmFyZ3YpOwppbnQgcmFwX2hlbHBfdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiph
cmd2KTsKaW50IG5ldF9yYXAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKCgoKaW50IG5l
dF9ycGNfdXNhZ2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KSA7CmludCBuZXRfcnBjKGlu
dCBhcmdjLCBjb25zdCBjaGFyICoqYXJndik7CgoKCmludCBuZXRfcnBjX2pvaW4oaW50IGFyZ2Ms
IGNvbnN0IGNoYXIgKiphcmd2KSA7CgoKCmludCBuZXRfdGltZV91c2FnZShpbnQgYXJnYywgY29u
c3QgY2hhciAqKmFyZ3YpOwppbnQgbmV0X3RpbWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2
KTsKCgoKdm9pZCBjZ2lfbG9hZF92YXJpYWJsZXModm9pZCk7CmNoYXIgKmNnaV92YXJpYWJsZShj
aGFyICpuYW1lKTsKQk9PTCBhbV9yb290KHZvaWQpOwpjaGFyICpjZ2lfdXNlcl9uYW1lKHZvaWQp
Owp2b2lkIGNnaV9zZXR1cChjb25zdCBjaGFyICpyb290ZGlyLCBpbnQgYXV0aF9yZXF1aXJlZCk7
CmNoYXIgKmNnaV9iYXNldXJsKHZvaWQpOwpjaGFyICpjZ2lfcGF0aGluZm8odm9pZCk7CmNoYXIg
KmNnaV9yZW1vdGVfaG9zdCh2b2lkKTsKY2hhciAqY2dpX3JlbW90ZV9hZGRyKHZvaWQpOwpCT09M
IGNnaV93YXNwb3N0KHZvaWQpOwoKCgpCT09MIG5tYmRfcnVubmluZyh2b2lkKTsKQk9PTCBzbWJk
X3J1bm5pbmcodm9pZCk7CgoKCmludCB3ZWJfb3Blbihjb25zdCBjaGFyICpmbmFtZSwgaW50IGZs
YWdzLCBtb2RlX3QgbW9kZSk7CnZvaWQgd2ViX3NldF9sYW5nKGNvbnN0IGNoYXIgKmxhbmdfbGlz
dCk7CgoKCnZvaWQgc3RhcnRfc21iZCh2b2lkKTsKdm9pZCBzdGFydF9ubWJkKHZvaWQpOwp2b2lk
IHN0b3Bfc21iZCh2b2lkKTsKdm9pZCBzdG9wX25tYmQodm9pZCk7CnZvaWQga2lsbF9waWQocGlk
X3QgcGlkKTsKCgoKdm9pZCBzdGF0dXNfcGFnZSh2b2lkKTsKIyA3NzIgImluY2x1ZGUvaW5jbHVk
ZXMuaCIgMgoKCgojIDEgImluY2x1ZGUvc2FmZV9zdHJpbmcuaCIgMQojIDc3NiAiaW5jbHVkZS9p
bmNsdWRlcy5oIiAyCiMgODczICJpbmNsdWRlL2luY2x1ZGVzLmgiCiMgMSAiL3Vzci9sb2NhbC9p
bmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgiIDEgMwojIDM1ICIvdXNyL2xvY2FsL2luY2x1ZGUv
cmVhZGxpbmUvcmVhZGxpbmUuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9y
bHN0ZGMuaCIgMSAzCiMgMzYgIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5o
IiAyIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUva2V5bWFwcy5oIiAxIDMKIyAz
NiAiL3Vzci9sb2NhbC9pbmNsdWRlL3JlYWRsaW5lL2tleW1hcHMuaCIgMwojIDEgIi91c3IvbG9j
YWwvaW5jbHVkZS9yZWFkbGluZS9jaGFyZGVmcy5oIiAxIDMKIyAzNyAiL3Vzci9sb2NhbC9pbmNs
dWRlL3JlYWRsaW5lL2tleW1hcHMuaCIgMiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JlYWRs
aW5lL3JsdHlwZWRlZnMuaCIgMSAzCiMgMzUgIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9y
bHR5cGVkZWZzLmgiIDMKdHlwZWRlZiBpbnQgRnVuY3Rpb24gKCk7CnR5cGVkZWYgdm9pZCBWRnVu
Y3Rpb24gKCk7CnR5cGVkZWYgY2hhciAqQ1BGdW5jdGlvbiAoKTsKdHlwZWRlZiBjaGFyICoqQ1BQ
RnVuY3Rpb24gKCk7CiMgNDggIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz
LmgiIDMKdHlwZWRlZiBpbnQgcmxfY29tbWFuZF9mdW5jX3QgKGludCwgaW50KSA7CgoKdHlwZWRl
ZiBjaGFyICpybF9jb21wZW50cnlfZnVuY190IChjb25zdCBjaGFyICosIGludCkgOwp0eXBlZGVm
IGNoYXIgKipybF9jb21wbGV0aW9uX2Z1bmNfdCAoY29uc3QgY2hhciAqLCBpbnQsIGludCkgOwoK
dHlwZWRlZiBjaGFyICpybF9xdW90ZV9mdW5jX3QgKGNoYXIgKiwgaW50LCBjaGFyICopIDsKdHlw
ZWRlZiBjaGFyICpybF9kZXF1b3RlX2Z1bmNfdCAoY2hhciAqLCBpbnQpIDsKCnR5cGVkZWYgaW50
IHJsX2NvbXBpZ25vcmVfZnVuY190IChjaGFyICoqKSA7Cgp0eXBlZGVmIHZvaWQgcmxfY29tcGRp
c3BfZnVuY190IChjaGFyICoqLCBpbnQsIGludCkgOwoKCnR5cGVkZWYgaW50IHJsX2hvb2tfZnVu
Y190ICh2b2lkKSA7CgoKdHlwZWRlZiBpbnQgcmxfZ2V0Y19mdW5jX3QgKEZJTEUgKikgOwoKCgoK
dHlwZWRlZiBpbnQgcmxfbGluZWJ1Zl9mdW5jX3QgKGNoYXIgKiwgaW50KSA7CgoKdHlwZWRlZiBp
bnQgcmxfaW50ZnVuY190IChpbnQpIDsKCnR5cGVkZWYgaW50IHJsX2ljcGZ1bmNfdCAoY2hhciAq
KSA7CnR5cGVkZWYgaW50IHJsX2ljcHBmdW5jX3QgKGNoYXIgKiopIDsKCnR5cGVkZWYgdm9pZCBy
bF92b2lkZnVuY190ICh2b2lkKSA7CnR5cGVkZWYgdm9pZCBybF92aW50ZnVuY190IChpbnQpIDsK
dHlwZWRlZiB2b2lkIHJsX3ZjcGZ1bmNfdCAoY2hhciAqKSA7CnR5cGVkZWYgdm9pZCBybF92Y3Bw
ZnVuY190IChjaGFyICoqKSA7CiMgMzggIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9rZXlt
YXBzLmgiIDIgMwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX2tleW1hcF9lbnRyeSB7CiAgY2hhciB0
eXBlOwogIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbjsKfSBLRVlNQVBfRU5UUlk7CiMgNjAg
Ii91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9rZXltYXBzLmgiIDMKdHlwZWRlZiBLRVlNQVBf
RU5UUlkgS0VZTUFQX0VOVFJZX0FSUkFZWzI1Nl07CnR5cGVkZWYgS0VZTUFQX0VOVFJZICpLZXlt
YXA7CgoKCgoKCmV4dGVybiBLRVlNQVBfRU5UUllfQVJSQVkgZW1hY3Nfc3RhbmRhcmRfa2V5bWFw
LCBlbWFjc19tZXRhX2tleW1hcCwgZW1hY3NfY3RseF9rZXltYXA7CmV4dGVybiBLRVlNQVBfRU5U
UllfQVJSQVkgdmlfaW5zZXJ0aW9uX2tleW1hcCwgdmlfbW92ZW1lbnRfa2V5bWFwOwoKCgpleHRl
cm4gS2V5bWFwIHJsX21ha2VfYmFyZV9rZXltYXAgKHZvaWQpIDsKCgpleHRlcm4gS2V5bWFwIHJs
X2NvcHlfa2V5bWFwIChLZXltYXApIDsKCgoKCmV4dGVybiBLZXltYXAgcmxfbWFrZV9rZXltYXAg
KHZvaWQpIDsKCgpleHRlcm4gdm9pZCBybF9kaXNjYXJkX2tleW1hcCAoS2V5bWFwKSA7CgoKCgoK
ZXh0ZXJuIEtleW1hcCBybF9nZXRfa2V5bWFwX2J5X25hbWUgKGNvbnN0IGNoYXIgKikgOwoKCmV4
dGVybiBLZXltYXAgcmxfZ2V0X2tleW1hcCAodm9pZCkgOwoKCmV4dGVybiB2b2lkIHJsX3NldF9r
ZXltYXAgKEtleW1hcCkgOwojIDM3ICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxp
bmUuaCIgMiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3JlYWRsaW5lL3RpbGRlLmgiIDEgMwoj
IDU1ICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUvdGlsZGUuaCIgMwp0eXBlZGVmIGNoYXIg
KnRpbGRlX2hvb2tfZnVuY190IChjaGFyICopIDsKCgoKCgpleHRlcm4gdGlsZGVfaG9va19mdW5j
X3QgKnRpbGRlX2V4cGFuc2lvbl9wcmVleHBhbnNpb25faG9vazsKCgoKCgpleHRlcm4gdGlsZGVf
aG9va19mdW5jX3QgKnRpbGRlX2V4cGFuc2lvbl9mYWlsdXJlX2hvb2s7CgoKCgpleHRlcm4gY2hh
ciAqKnRpbGRlX2FkZGl0aW9uYWxfcHJlZml4ZXM7CgoKCgpleHRlcm4gY2hhciAqKnRpbGRlX2Fk
ZGl0aW9uYWxfc3VmZml4ZXM7CgoKZXh0ZXJuIGNoYXIgKnRpbGRlX2V4cGFuZCAoY29uc3QgY2hh
ciAqKSA7CgoKCmV4dGVybiBjaGFyICp0aWxkZV9leHBhbmRfd29yZCAoY29uc3QgY2hhciAqKSA7
CiMgMzggIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oIiAyIDMKIyA0OCAi
L3Vzci9sb2NhbC9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgiIDMKZW51bSB1bmRvX2NvZGUg
eyBVTkRPX0RFTEVURSwgVU5ET19JTlNFUlQsIFVORE9fQkVHSU4sIFVORE9fRU5EIH07CgoKdHlw
ZWRlZiBzdHJ1Y3QgdW5kb19saXN0IHsKICBzdHJ1Y3QgdW5kb19saXN0ICpuZXh0OwogIGludCBz
dGFydCwgZW5kOwogIGNoYXIgKnRleHQ7CiAgZW51bSB1bmRvX2NvZGUgd2hhdDsKfSBVTkRPX0xJ
U1Q7CgoKZXh0ZXJuIFVORE9fTElTVCAqcmxfdW5kb19saXN0OwoKCnR5cGVkZWYgc3RydWN0IF9m
dW5tYXAgewogIGNvbnN0IGNoYXIgKm5hbWU7CiAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9u
Owp9IEZVTk1BUDsKCmV4dGVybiBGVU5NQVAgKipmdW5tYXA7CiMgNzYgIi91c3IvbG9jYWwvaW5j
bHVkZS9yZWFkbGluZS9yZWFkbGluZS5oIiAzCmV4dGVybiBpbnQgcmxfZGlnaXRfYXJndW1lbnQg
KGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdW5pdmVyc2FsX2FyZ3VtZW50IChpbnQsIGludCkg
OwoKCmV4dGVybiBpbnQgcmxfZm9yd2FyZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9iYWNr
d2FyZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9iZWdfb2ZfbGluZSAoaW50LCBpbnQpIDsK
ZXh0ZXJuIGludCBybF9lbmRfb2ZfbGluZSAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9mb3J3
YXJkX3dvcmQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfYmFja3dhcmRfd29yZCAoaW50LCBp
bnQpIDsKZXh0ZXJuIGludCBybF9yZWZyZXNoX2xpbmUgKGludCwgaW50KSA7CmV4dGVybiBpbnQg
cmxfY2xlYXJfc2NyZWVuIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2Fycm93X2tleXMgKGlu
dCwgaW50KSA7CgoKZXh0ZXJuIGludCBybF9pbnNlcnQgKGludCwgaW50KSA7CmV4dGVybiBpbnQg
cmxfcXVvdGVkX2luc2VydCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF90YWJfaW5zZXJ0IChp
bnQsIGludCkgOwpleHRlcm4gaW50IHJsX25ld2xpbmUgKGludCwgaW50KSA7CmV4dGVybiBpbnQg
cmxfZG9fbG93ZXJjYXNlX3ZlcnNpb24gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfcnVib3V0
IChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2RlbGV0ZSAoaW50LCBpbnQpIDsKZXh0ZXJuIGlu
dCBybF9ydWJvdXRfb3JfZGVsZXRlIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2RlbGV0ZV9o
b3Jpem9udGFsX3NwYWNlIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2RlbGV0ZV9vcl9zaG93
X2NvbXBsZXRpb25zIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2luc2VydF9jb21tZW50IChp
bnQsIGludCkgOwoKCmV4dGVybiBpbnQgcmxfdXBjYXNlX3dvcmQgKGludCwgaW50KSA7CmV4dGVy
biBpbnQgcmxfZG93bmNhc2Vfd29yZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9jYXBpdGFs
aXplX3dvcmQgKGludCwgaW50KSA7CgoKZXh0ZXJuIGludCBybF90cmFuc3Bvc2Vfd29yZHMgKGlu
dCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdHJhbnNwb3NlX2NoYXJzIChpbnQsIGludCkgOwoKCmV4
dGVybiBpbnQgcmxfY2hhcl9zZWFyY2ggKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfYmFja3dh
cmRfY2hhcl9zZWFyY2ggKGludCwgaW50KSA7CgoKZXh0ZXJuIGludCBybF9iZWdpbm5pbmdfb2Zf
aGlzdG9yeSAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9lbmRfb2ZfaGlzdG9yeSAoaW50LCBp
bnQpIDsKZXh0ZXJuIGludCBybF9nZXRfbmV4dF9oaXN0b3J5IChpbnQsIGludCkgOwpleHRlcm4g
aW50IHJsX2dldF9wcmV2aW91c19oaXN0b3J5IChpbnQsIGludCkgOwoKCmV4dGVybiBpbnQgcmxf
c2V0X21hcmsgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfZXhjaGFuZ2VfcG9pbnRfYW5kX21h
cmsgKGludCwgaW50KSA7CgoKZXh0ZXJuIGludCBybF92aV9lZGl0aW5nX21vZGUgKGludCwgaW50
KSA7CmV4dGVybiBpbnQgcmxfZW1hY3NfZWRpdGluZ19tb2RlIChpbnQsIGludCkgOwoKCmV4dGVy
biBpbnQgcmxfcmVfcmVhZF9pbml0X2ZpbGUgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfZHVt
cF9mdW5jdGlvbnMgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfZHVtcF9tYWNyb3MgKGludCwg
aW50KSA7CmV4dGVybiBpbnQgcmxfZHVtcF92YXJpYWJsZXMgKGludCwgaW50KSA7CgoKZXh0ZXJu
IGludCBybF9jb21wbGV0ZSAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9wb3NzaWJsZV9jb21w
bGV0aW9ucyAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9pbnNlcnRfY29tcGxldGlvbnMgKGlu
dCwgaW50KSA7CmV4dGVybiBpbnQgcmxfbWVudV9jb21wbGV0ZSAoaW50LCBpbnQpIDsKCgpleHRl
cm4gaW50IHJsX2tpbGxfd29yZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9iYWNrd2FyZF9r
aWxsX3dvcmQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfa2lsbF9saW5lIChpbnQsIGludCkg
OwpleHRlcm4gaW50IHJsX2JhY2t3YXJkX2tpbGxfbGluZSAoaW50LCBpbnQpIDsKZXh0ZXJuIGlu
dCBybF9raWxsX2Z1bGxfbGluZSAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF91bml4X3dvcmRf
cnVib3V0IChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3VuaXhfbGluZV9kaXNjYXJkIChpbnQs
IGludCkgOwpleHRlcm4gaW50IHJsX2NvcHlfcmVnaW9uX3RvX2tpbGwgKGludCwgaW50KSA7CmV4
dGVybiBpbnQgcmxfa2lsbF9yZWdpb24gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfY29weV9m
b3J3YXJkX3dvcmQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfY29weV9iYWNrd2FyZF93b3Jk
IChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3lhbmsgKGludCwgaW50KSA7CmV4dGVybiBpbnQg
cmxfeWFua19wb3AgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfeWFua19udGhfYXJnIChpbnQs
IGludCkgOwpleHRlcm4gaW50IHJsX3lhbmtfbGFzdF9hcmcgKGludCwgaW50KSA7CgoKCgoKCmV4
dGVybiBpbnQgcmxfcmV2ZXJzZV9zZWFyY2hfaGlzdG9yeSAoaW50LCBpbnQpIDsKZXh0ZXJuIGlu
dCBybF9mb3J3YXJkX3NlYXJjaF9oaXN0b3J5IChpbnQsIGludCkgOwoKCmV4dGVybiBpbnQgcmxf
c3RhcnRfa2JkX21hY3JvIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX2VuZF9rYmRfbWFjcm8g
KGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfY2FsbF9sYXN0X2tiZF9tYWNybyAoaW50LCBpbnQp
IDsKCgpleHRlcm4gaW50IHJsX3JldmVydF9saW5lIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJs
X3VuZG9fY29tbWFuZCAoaW50LCBpbnQpIDsKCgpleHRlcm4gaW50IHJsX3RpbGRlX2V4cGFuZCAo
aW50LCBpbnQpIDsKCgpleHRlcm4gaW50IHJsX3Jlc3RhcnRfb3V0cHV0IChpbnQsIGludCkgOwpl
eHRlcm4gaW50IHJsX3N0b3Bfb3V0cHV0IChpbnQsIGludCkgOwoKCmV4dGVybiBpbnQgcmxfYWJv
cnQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdHR5X3N0YXR1cyAoaW50LCBpbnQpIDsKCgpl
eHRlcm4gaW50IHJsX2hpc3Rvcnlfc2VhcmNoX2ZvcndhcmQgKGludCwgaW50KSA7CmV4dGVybiBp
bnQgcmxfaGlzdG9yeV9zZWFyY2hfYmFja3dhcmQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxf
bm9uaW5jX2ZvcndhcmRfc2VhcmNoIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX25vbmluY19y
ZXZlcnNlX3NlYXJjaCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF9ub25pbmNfZm9yd2FyZF9z
ZWFyY2hfYWdhaW4gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfbm9uaW5jX3JldmVyc2Vfc2Vh
cmNoX2FnYWluIChpbnQsIGludCkgOwoKCmV4dGVybiBpbnQgcmxfaW5zZXJ0X2Nsb3NlIChpbnQs
IGludCkgOwoKCmV4dGVybiB2b2lkIHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGFsbCAoY29uc3Qg
Y2hhciAqLCBybF92Y3BmdW5jX3QgKikgOwpleHRlcm4gdm9pZCBybF9jYWxsYmFja19yZWFkX2No
YXIgKHZvaWQpIDsKZXh0ZXJuIHZvaWQgcmxfY2FsbGJhY2tfaGFuZGxlcl9yZW1vdmUgKHZvaWQp
IDsKCgoKZXh0ZXJuIGludCBybF92aV9yZWRvIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3Zp
X3VuZG8gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfeWFua19hcmcgKGludCwgaW50KSA7
CmV4dGVybiBpbnQgcmxfdmlfZmV0Y2hfaGlzdG9yeSAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBy
bF92aV9zZWFyY2hfYWdhaW4gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfc2VhcmNoIChp
bnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX2NvbXBsZXRlIChpbnQsIGludCkgOwpleHRlcm4g
aW50IHJsX3ZpX3RpbGRlX2V4cGFuZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF92aV9wcmV2
X3dvcmQgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfbmV4dF93b3JkIChpbnQsIGludCkg
OwpleHRlcm4gaW50IHJsX3ZpX2VuZF93b3JkIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3Zp
X2luc2VydF9iZWcgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfYXBwZW5kX21vZGUgKGlu
dCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfYXBwZW5kX2VvbCAoaW50LCBpbnQpIDsKZXh0ZXJu
IGludCBybF92aV9lb2ZfbWF5YmUgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfaW5zZXJ0
aW9uX21vZGUgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfbW92ZW1lbnRfbW9kZSAoaW50
LCBpbnQpIDsKZXh0ZXJuIGludCBybF92aV9hcmdfZGlnaXQgKGludCwgaW50KSA7CmV4dGVybiBp
bnQgcmxfdmlfY2hhbmdlX2Nhc2UgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfcHV0IChp
bnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX2NvbHVtbiAoaW50LCBpbnQpIDsKZXh0ZXJuIGlu
dCBybF92aV9kZWxldGVfdG8gKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfY2hhbmdlX3Rv
IChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX3lhbmtfdG8gKGludCwgaW50KSA7CmV4dGVy
biBpbnQgcmxfdmlfZGVsZXRlIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX2JhY2tfdG9f
aW5kZW50IChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX2ZpcnN0X3ByaW50IChpbnQsIGlu
dCkgOwpleHRlcm4gaW50IHJsX3ZpX2NoYXJfc2VhcmNoIChpbnQsIGludCkgOwpleHRlcm4gaW50
IHJsX3ZpX21hdGNoIChpbnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX2NoYW5nZV9jaGFyIChp
bnQsIGludCkgOwpleHRlcm4gaW50IHJsX3ZpX3N1YnN0IChpbnQsIGludCkgOwpleHRlcm4gaW50
IHJsX3ZpX292ZXJzdHJpa2UgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfb3ZlcnN0cmlr
ZV9kZWxldGUgKGludCwgaW50KSA7CmV4dGVybiBpbnQgcmxfdmlfcmVwbGFjZSAoaW50LCBpbnQp
IDsKZXh0ZXJuIGludCBybF92aV9zZXRfbWFyayAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF92
aV9nb3RvX21hcmsgKGludCwgaW50KSA7CgoKZXh0ZXJuIGludCBybF92aV9jaGVjayAodm9pZCkg
OwpleHRlcm4gaW50IHJsX3ZpX2RvbW92ZSAoaW50LCBpbnQgKikgOwpleHRlcm4gaW50IHJsX3Zp
X2JyYWNrdHlwZSAoaW50KSA7CgoKZXh0ZXJuIGludCBybF92aV9mV29yZCAoaW50LCBpbnQpIDsK
ZXh0ZXJuIGludCBybF92aV9iV29yZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF92aV9lV29y
ZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF92aV9md29yZCAoaW50LCBpbnQpIDsKZXh0ZXJu
IGludCBybF92aV9id29yZCAoaW50LCBpbnQpIDsKZXh0ZXJuIGludCBybF92aV9ld29yZCAoaW50
LCBpbnQpIDsKIyAyNjMgIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oIiAz
CmV4dGVybiBjaGFyICpyZWFkbGluZSAoY29uc3QgY2hhciAqKSA7CgpleHRlcm4gaW50IHJsX3Nl
dF9wcm9tcHQgKGNvbnN0IGNoYXIgKikgOwpleHRlcm4gaW50IHJsX2V4cGFuZF9wcm9tcHQgKGNo
YXIgKikgOwoKZXh0ZXJuIGludCBybF9pbml0aWFsaXplICh2b2lkKSA7CgoKZXh0ZXJuIGludCBy
bF9kaXNjYXJkX2FyZ3VtZW50ICh2b2lkKSA7CgoKZXh0ZXJuIGludCBybF9hZGRfZGVmdW4gKGNv
bnN0IGNoYXIgKiwgcmxfY29tbWFuZF9mdW5jX3QgKiwgaW50KSA7CmV4dGVybiBpbnQgcmxfYmlu
ZF9rZXkgKGludCwgcmxfY29tbWFuZF9mdW5jX3QgKikgOwpleHRlcm4gaW50IHJsX2JpbmRfa2V5
X2luX21hcCAoaW50LCBybF9jb21tYW5kX2Z1bmNfdCAqLCBLZXltYXApIDsKZXh0ZXJuIGludCBy
bF91bmJpbmRfa2V5IChpbnQpIDsKZXh0ZXJuIGludCBybF91bmJpbmRfa2V5X2luX21hcCAoaW50
LCBLZXltYXApIDsKZXh0ZXJuIGludCBybF91bmJpbmRfZnVuY3Rpb25faW5fbWFwIChybF9jb21t
YW5kX2Z1bmNfdCAqLCBLZXltYXApIDsKZXh0ZXJuIGludCBybF91bmJpbmRfY29tbWFuZF9pbl9t
YXAgKGNvbnN0IGNoYXIgKiwgS2V5bWFwKSA7CmV4dGVybiBpbnQgcmxfc2V0X2tleSAoY29uc3Qg
Y2hhciAqLCBybF9jb21tYW5kX2Z1bmNfdCAqLCBLZXltYXApIDsKZXh0ZXJuIGludCBybF9nZW5l
cmljX2JpbmQgKGludCwgY29uc3QgY2hhciAqLCBjaGFyICosIEtleW1hcCkgOwpleHRlcm4gaW50
IHJsX3ZhcmlhYmxlX2JpbmQgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSA7CgoKZXh0ZXJu
IGludCBybF9tYWNyb19iaW5kIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgS2V5bWFwKSA7
CgoKZXh0ZXJuIGludCBybF90cmFuc2xhdGVfa2V5c2VxIChjb25zdCBjaGFyICosIGNoYXIgKiwg
aW50ICopIDsKZXh0ZXJuIGNoYXIgKnJsX3VudHJhbnNsYXRlX2tleXNlcSAoaW50KSA7CgpleHRl
cm4gcmxfY29tbWFuZF9mdW5jX3QgKnJsX25hbWVkX2Z1bmN0aW9uIChjb25zdCBjaGFyICopIDsK
ZXh0ZXJuIHJsX2NvbW1hbmRfZnVuY190ICpybF9mdW5jdGlvbl9vZl9rZXlzZXEgKGNvbnN0IGNo
YXIgKiwgS2V5bWFwLCBpbnQgKikgOwoKZXh0ZXJuIHZvaWQgcmxfbGlzdF9mdW5tYXBfbmFtZXMg
KHZvaWQpIDsKZXh0ZXJuIGNoYXIgKipybF9pbnZva2luZ19rZXlzZXFzX2luX21hcCAocmxfY29t
bWFuZF9mdW5jX3QgKiwgS2V5bWFwKSA7CmV4dGVybiBjaGFyICoqcmxfaW52b2tpbmdfa2V5c2Vx
cyAocmxfY29tbWFuZF9mdW5jX3QgKikgOwoKZXh0ZXJuIHZvaWQgcmxfZnVuY3Rpb25fZHVtcGVy
IChpbnQpIDsKZXh0ZXJuIHZvaWQgcmxfbWFjcm9fZHVtcGVyIChpbnQpIDsKZXh0ZXJuIHZvaWQg
cmxfdmFyaWFibGVfZHVtcGVyIChpbnQpIDsKCmV4dGVybiBpbnQgcmxfcmVhZF9pbml0X2ZpbGUg
KGNvbnN0IGNoYXIgKikgOwpleHRlcm4gaW50IHJsX3BhcnNlX2FuZF9iaW5kIChjaGFyICopIDsK
CgpleHRlcm4gS2V5bWFwIHJsX21ha2VfYmFyZV9rZXltYXAgKHZvaWQpIDsKZXh0ZXJuIEtleW1h
cCBybF9jb3B5X2tleW1hcCAoS2V5bWFwKSA7CmV4dGVybiBLZXltYXAgcmxfbWFrZV9rZXltYXAg
KHZvaWQpIDsKZXh0ZXJuIHZvaWQgcmxfZGlzY2FyZF9rZXltYXAgKEtleW1hcCkgOwoKZXh0ZXJu
IEtleW1hcCBybF9nZXRfa2V5bWFwX2J5X25hbWUgKGNvbnN0IGNoYXIgKikgOwpleHRlcm4gY2hh
ciAqcmxfZ2V0X2tleW1hcF9uYW1lIChLZXltYXApIDsKZXh0ZXJuIHZvaWQgcmxfc2V0X2tleW1h
cCAoS2V5bWFwKSA7CmV4dGVybiBLZXltYXAgcmxfZ2V0X2tleW1hcCAodm9pZCkgOwoKZXh0ZXJu
IHZvaWQgcmxfc2V0X2tleW1hcF9mcm9tX2VkaXRfbW9kZSAodm9pZCkgOwpleHRlcm4gY2hhciAq
cmxfZ2V0X2tleW1hcF9uYW1lX2Zyb21fZWRpdF9tb2RlICh2b2lkKSA7CgoKZXh0ZXJuIGludCBy
bF9hZGRfZnVubWFwX2VudHJ5IChjb25zdCBjaGFyICosIHJsX2NvbW1hbmRfZnVuY190ICopIDsK
ZXh0ZXJuIGNvbnN0IGNoYXIgKipybF9mdW5tYXBfbmFtZXMgKHZvaWQpIDsKCgpleHRlcm4gdm9p
ZCBybF9pbml0aWFsaXplX2Z1bm1hcCAodm9pZCkgOwoKCmV4dGVybiB2b2lkIHJsX3B1c2hfbWFj
cm9faW5wdXQgKGNoYXIgKikgOwoKCmV4dGVybiB2b2lkIHJsX2FkZF91bmRvIChlbnVtIHVuZG9f
Y29kZSwgaW50LCBpbnQsIGNoYXIgKikgOwpleHRlcm4gdm9pZCBybF9mcmVlX3VuZG9fbGlzdCAo
dm9pZCkgOwpleHRlcm4gaW50IHJsX2RvX3VuZG8gKHZvaWQpIDsKZXh0ZXJuIGludCBybF9iZWdp
bl91bmRvX2dyb3VwICh2b2lkKSA7CmV4dGVybiBpbnQgcmxfZW5kX3VuZG9fZ3JvdXAgKHZvaWQp
IDsKZXh0ZXJuIGludCBybF9tb2RpZnlpbmcgKGludCwgaW50KSA7CgoKZXh0ZXJuIHZvaWQgcmxf
cmVkaXNwbGF5ICh2b2lkKSA7CmV4dGVybiBpbnQgcmxfb25fbmV3X2xpbmUgKHZvaWQpIDsKZXh0
ZXJuIGludCBybF9vbl9uZXdfbGluZV93aXRoX3Byb21wdCAodm9pZCkgOwpleHRlcm4gaW50IHJs
X2ZvcmNlZF91cGRhdGVfZGlzcGxheSAodm9pZCkgOwpleHRlcm4gaW50IHJsX2NsZWFyX21lc3Nh
Z2UgKHZvaWQpIDsKZXh0ZXJuIGludCBybF9yZXNldF9saW5lX3N0YXRlICh2b2lkKSA7CmV4dGVy
biBpbnQgcmxfY3JsZiAodm9pZCkgOwoKCgoKZXh0ZXJuIGludCBybF9tZXNzYWdlICgpOwoKCmV4
dGVybiBpbnQgcmxfc2hvd19jaGFyIChpbnQpIDsKCgpleHRlcm4gaW50IHJsX2NoYXJhY3Rlcl9s
ZW4gKGludCwgaW50KSA7CgoKZXh0ZXJuIHZvaWQgcmxfc2F2ZV9wcm9tcHQgKHZvaWQpIDsKZXh0
ZXJuIHZvaWQgcmxfcmVzdG9yZV9wcm9tcHQgKHZvaWQpIDsKCgpleHRlcm4gaW50IHJsX2luc2Vy
dF90ZXh0IChjb25zdCBjaGFyICopIDsKZXh0ZXJuIGludCBybF9kZWxldGVfdGV4dCAoaW50LCBp
bnQpIDsKZXh0ZXJuIGludCBybF9raWxsX3RleHQgKGludCwgaW50KSA7CmV4dGVybiBjaGFyICpy
bF9jb3B5X3RleHQgKGludCwgaW50KSA7CgoKZXh0ZXJuIHZvaWQgcmxfcHJlcF90ZXJtaW5hbCAo
aW50KSA7CmV4dGVybiB2b2lkIHJsX2RlcHJlcF90ZXJtaW5hbCAodm9pZCkgOwpleHRlcm4gdm9p
ZCBybF90dHlfc2V0X2RlZmF1bHRfYmluZGluZ3MgKEtleW1hcCkgOwoKZXh0ZXJuIGludCBybF9y
ZXNldF90ZXJtaW5hbCAoY29uc3QgY2hhciAqKSA7CmV4dGVybiB2b2lkIHJsX3Jlc2l6ZV90ZXJt
aW5hbCAodm9pZCkgOwpleHRlcm4gdm9pZCBybF9zZXRfc2NyZWVuX3NpemUgKGludCwgaW50KSA7
CmV4dGVybiB2b2lkIHJsX2dldF9zY3JlZW5fc2l6ZSAoaW50ICosIGludCAqKSA7CgoKZXh0ZXJu
IGludCBybF9zdHVmZl9jaGFyIChpbnQpIDsKZXh0ZXJuIGludCBybF9leGVjdXRlX25leHQgKGlu
dCkgOwpleHRlcm4gaW50IHJsX2NsZWFyX3BlbmRpbmdfaW5wdXQgKHZvaWQpIDsKZXh0ZXJuIGlu
dCBybF9yZWFkX2tleSAodm9pZCkgOwpleHRlcm4gaW50IHJsX2dldGMgKEZJTEUgKikgOwpleHRl
cm4gaW50IHJsX3NldF9rZXlib2FyZF9pbnB1dF90aW1lb3V0IChpbnQpIDsKCgpleHRlcm4gdm9p
ZCBybF9leHRlbmRfbGluZV9idWZmZXIgKGludCkgOwpleHRlcm4gaW50IHJsX2RpbmcgKHZvaWQp
IDsKZXh0ZXJuIGludCBybF9hbHBoYWJldGljIChpbnQpIDsKCgpleHRlcm4gaW50IHJsX3NldF9z
aWduYWxzICh2b2lkKSA7CmV4dGVybiBpbnQgcmxfY2xlYXJfc2lnbmFscyAodm9pZCkgOwpleHRl
cm4gdm9pZCBybF9jbGVhbnVwX2FmdGVyX3NpZ25hbCAodm9pZCkgOwpleHRlcm4gdm9pZCBybF9y
ZXNldF9hZnRlcl9zaWduYWwgKHZvaWQpIDsKZXh0ZXJuIHZvaWQgcmxfZnJlZV9saW5lX3N0YXRl
ICh2b2lkKSA7CgoKZXh0ZXJuIGludCBybF9zZXRfcGFyZW5fYmxpbmtfdGltZW91dCAoaW50KSA7
CgoKZXh0ZXJuIGludCBybF9tYXliZV9zYXZlX2xpbmUgKHZvaWQpIDsKZXh0ZXJuIGludCBybF9t
YXliZV91bnNhdmVfbGluZSAodm9pZCkgOwpleHRlcm4gaW50IHJsX21heWJlX3JlcGxhY2VfbGlu
ZSAodm9pZCkgOwoKCmV4dGVybiBpbnQgcmxfY29tcGxldGVfaW50ZXJuYWwgKGludCkgOwpleHRl
cm4gdm9pZCBybF9kaXNwbGF5X21hdGNoX2xpc3QgKGNoYXIgKiosIGludCwgaW50KSA7CgpleHRl
cm4gY2hhciAqKnJsX2NvbXBsZXRpb25fbWF0Y2hlcyAoY29uc3QgY2hhciAqLCBybF9jb21wZW50
cnlfZnVuY190ICopIDsKZXh0ZXJuIGNoYXIgKnJsX3VzZXJuYW1lX2NvbXBsZXRpb25fZnVuY3Rp
b24gKGNvbnN0IGNoYXIgKiwgaW50KSA7CmV4dGVybiBjaGFyICpybF9maWxlbmFtZV9jb21wbGV0
aW9uX2Z1bmN0aW9uIChjb25zdCBjaGFyICosIGludCkgOwojIDQzNyAiL3Vzci9sb2NhbC9pbmNs
dWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgiIDMKZXh0ZXJuIGNvbnN0IGNoYXIgKnJsX2xpYnJhcnlf
dmVyc2lvbjsKCgpleHRlcm4gaW50IHJsX2dudV9yZWFkbGluZV9wOwoKCmV4dGVybiBpbnQgcmxf
cmVhZGxpbmVfc3RhdGU7CgoKCmV4dGVybiBpbnQgcmxfZWRpdGluZ19tb2RlOwoKCgpleHRlcm4g
Y29uc3QgY2hhciAqcmxfcmVhZGxpbmVfbmFtZTsKCgoKZXh0ZXJuIGNoYXIgKnJsX3Byb21wdDsK
CgpleHRlcm4gY2hhciAqcmxfbGluZV9idWZmZXI7CgoKZXh0ZXJuIGludCBybF9wb2ludDsKZXh0
ZXJuIGludCBybF9lbmQ7CgoKZXh0ZXJuIGludCBybF9tYXJrOwoKCgpleHRlcm4gaW50IHJsX2Rv
bmU7CgoKZXh0ZXJuIGludCBybF9wZW5kaW5nX2lucHV0OwoKCgoKZXh0ZXJuIGludCBybF9kaXNw
YXRjaGluZzsKCgoKZXh0ZXJuIGludCBybF9leHBsaWNpdF9hcmc7CgoKZXh0ZXJuIGludCBybF9u
dW1lcmljX2FyZzsKCgpleHRlcm4gcmxfY29tbWFuZF9mdW5jX3QgKnJsX2xhc3RfZnVuYzsKCgpl
eHRlcm4gY29uc3QgY2hhciAqcmxfdGVybWluYWxfbmFtZTsKCgpleHRlcm4gRklMRSAqcmxfaW5z
dHJlYW07CmV4dGVybiBGSUxFICpybF9vdXRzdHJlYW07CgoKCmV4dGVybiBybF9ob29rX2Z1bmNf
dCAqcmxfc3RhcnR1cF9ob29rOwoKCgoKZXh0ZXJuIHJsX2hvb2tfZnVuY190ICpybF9wcmVfaW5w
dXRfaG9vazsKCgoKZXh0ZXJuIHJsX2hvb2tfZnVuY190ICpybF9ldmVudF9ob29rOwoKCgpleHRl
cm4gcmxfZ2V0Y19mdW5jX3QgKnJsX2dldGNfZnVuY3Rpb247CgpleHRlcm4gcmxfdm9pZGZ1bmNf
dCAqcmxfcmVkaXNwbGF5X2Z1bmN0aW9uOwoKZXh0ZXJuIHJsX3ZpbnRmdW5jX3QgKnJsX3ByZXBf
dGVybV9mdW5jdGlvbjsKZXh0ZXJuIHJsX3ZvaWRmdW5jX3QgKnJsX2RlcHJlcF90ZXJtX2Z1bmN0
aW9uOwoKCmV4dGVybiBLZXltYXAgcmxfZXhlY3V0aW5nX2tleW1hcDsKZXh0ZXJuIEtleW1hcCBy
bF9iaW5kaW5nX2tleW1hcDsKCgoKCgpleHRlcm4gaW50IHJsX2VyYXNlX2VtcHR5X2xpbmU7CgoK
CgpleHRlcm4gaW50IHJsX2FscmVhZHlfcHJvbXB0ZWQ7CgoKCmV4dGVybiBpbnQgcmxfbnVtX2No
YXJzX3RvX3JlYWQ7CgoKZXh0ZXJuIGNoYXIgKnJsX2V4ZWN1dGluZ19tYWNybzsKCgoKCmV4dGVy
biBpbnQgcmxfY2F0Y2hfc2lnbmFsczsKCgoKCgoKZXh0ZXJuIGludCBybF9jYXRjaF9zaWd3aW5j
aDsKCgoKCgpleHRlcm4gcmxfY29tcGVudHJ5X2Z1bmNfdCAqcmxfY29tcGxldGlvbl9lbnRyeV9m
dW5jdGlvbjsKCgoKCgoKCmV4dGVybiBybF9jb21waWdub3JlX2Z1bmNfdCAqcmxfaWdub3JlX3Nv
bWVfY29tcGxldGlvbnNfZnVuY3Rpb247CiMgNTczICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxp
bmUvcmVhZGxpbmUuaCIgMwpleHRlcm4gcmxfY29tcGxldGlvbl9mdW5jX3QgKnJsX2F0dGVtcHRl
ZF9jb21wbGV0aW9uX2Z1bmN0aW9uOwoKCgoKZXh0ZXJuIGNvbnN0IGNoYXIgKnJsX2Jhc2ljX3dv
cmRfYnJlYWtfY2hhcmFjdGVyczsKCgoKCmV4dGVybiBjb25zdCBjaGFyICpybF9jb21wbGV0ZXJf
d29yZF9icmVha19jaGFyYWN0ZXJzOwoKCgoKCmV4dGVybiBjb25zdCBjaGFyICpybF9jb21wbGV0
ZXJfcXVvdGVfY2hhcmFjdGVyczsKCgpleHRlcm4gY29uc3QgY2hhciAqcmxfYmFzaWNfcXVvdGVf
Y2hhcmFjdGVyczsKCgpleHRlcm4gY29uc3QgY2hhciAqcmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFj
dGVyczsKCgoKCmV4dGVybiBjb25zdCBjaGFyICpybF9zcGVjaWFsX3ByZWZpeGVzOwoKCgoKCgpl
eHRlcm4gcmxfaWNwcGZ1bmNfdCAqcmxfZGlyZWN0b3J5X2NvbXBsZXRpb25faG9vazsKIyA2MTYg
Ii91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oIiAzCmV4dGVybiBybF9pY3Bw
ZnVuY190ICpybF9kaXJlY3RvcnlfcmV3cml0ZV9ob29rOwojIDYyOCAiL3Vzci9sb2NhbC9pbmNs
dWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgiIDMKZXh0ZXJuIHJsX2NvbXBkaXNwX2Z1bmNfdCAqcmxf
Y29tcGxldGlvbl9kaXNwbGF5X21hdGNoZXNfaG9vazsKCgoKCmV4dGVybiBpbnQgcmxfZmlsZW5h
bWVfY29tcGxldGlvbl9kZXNpcmVkOwoKCgoKCgpleHRlcm4gaW50IHJsX2ZpbGVuYW1lX3F1b3Rp
bmdfZGVzaXJlZDsKCgoKCgpleHRlcm4gcmxfcXVvdGVfZnVuY190ICpybF9maWxlbmFtZV9xdW90
aW5nX2Z1bmN0aW9uOwoKCgoKZXh0ZXJuIHJsX2RlcXVvdGVfZnVuY190ICpybF9maWxlbmFtZV9k
ZXF1b3RpbmdfZnVuY3Rpb247CgoKCgpleHRlcm4gcmxfbGluZWJ1Zl9mdW5jX3QgKnJsX2NoYXJf
aXNfcXVvdGVkX3A7CgoKCmV4dGVybiBpbnQgcmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fb3ZlcjsK
CgoKCmV4dGVybiBpbnQgcmxfY29tcGxldGlvbl90eXBlOwoKCgpleHRlcm4gaW50IHJsX2NvbXBs
ZXRpb25fYXBwZW5kX2NoYXJhY3RlcjsKCgoKCmV4dGVybiBpbnQgcmxfY29tcGxldGlvbl9xdWVy
eV9pdGVtczsKCgpleHRlcm4gaW50IHJsX2lnbm9yZV9jb21wbGV0aW9uX2R1cGxpY2F0ZXM7CgoK
CmV4dGVybiBpbnQgcmxfaW5oaWJpdF9jb21wbGV0aW9uOwojIDg3NCAiaW5jbHVkZS9pbmNsdWRl
cy5oIiAyCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9yZWFkbGluZS9oaXN0b3J5LmgiIDEgMwoj
IDM4ICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUvaGlzdG9yeS5oIiAzCnR5cGVkZWYgdm9p
ZCAqaGlzdGRhdGFfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdCBfaGlzdF9lbnRyeSB7CiAgY2hhciAq
bGluZTsKICBoaXN0ZGF0YV90IGRhdGE7Cn0gSElTVF9FTlRSWTsKCgp0eXBlZGVmIHN0cnVjdCBf
aGlzdF9zdGF0ZSB7CiAgSElTVF9FTlRSWSAqKmVudHJpZXM7CiAgaW50IG9mZnNldDsKICBpbnQg
bGVuZ3RoOwogIGludCBzaXplOwogIGludCBmbGFnczsKfSBISVNUT1JZX1NUQVRFOwojIDY1ICIv
dXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUvaGlzdG9yeS5oIiAzCmV4dGVybiB2b2lkIHVzaW5n
X2hpc3RvcnkgKHZvaWQpIDsKCgpleHRlcm4gSElTVE9SWV9TVEFURSAqaGlzdG9yeV9nZXRfaGlz
dG9yeV9zdGF0ZSAodm9pZCkgOwoKCmV4dGVybiB2b2lkIGhpc3Rvcnlfc2V0X2hpc3Rvcnlfc3Rh
dGUgKEhJU1RPUllfU1RBVEUgKikgOwoKCgoKCmV4dGVybiB2b2lkIGFkZF9oaXN0b3J5IChjb25z
dCBjaGFyICopIDsKCgoKCmV4dGVybiBISVNUX0VOVFJZICpyZW1vdmVfaGlzdG9yeSAoaW50KSA7
CgoKCgpleHRlcm4gSElTVF9FTlRSWSAqcmVwbGFjZV9oaXN0b3J5X2VudHJ5IChpbnQsIGNvbnN0
IGNoYXIgKiwgaGlzdGRhdGFfdCkgOwoKCmV4dGVybiB2b2lkIGNsZWFyX2hpc3RvcnkgKHZvaWQp
IDsKCgpleHRlcm4gdm9pZCBzdGlmbGVfaGlzdG9yeSAoaW50KSA7CgoKCgpleHRlcm4gaW50IHVu
c3RpZmxlX2hpc3RvcnkgKHZvaWQpIDsKCgpleHRlcm4gaW50IGhpc3RvcnlfaXNfc3RpZmxlZCAo
dm9pZCkgOwoKCgoKCgpleHRlcm4gSElTVF9FTlRSWSAqKmhpc3RvcnlfbGlzdCAodm9pZCkgOwoK
CgpleHRlcm4gaW50IHdoZXJlX2hpc3RvcnkgKHZvaWQpIDsKCgoKZXh0ZXJuIEhJU1RfRU5UUlkg
KmN1cnJlbnRfaGlzdG9yeSAodm9pZCkgOwoKCgpleHRlcm4gSElTVF9FTlRSWSAqaGlzdG9yeV9n
ZXQgKGludCkgOwoKCgpleHRlcm4gaW50IGhpc3RvcnlfdG90YWxfYnl0ZXMgKHZvaWQpIDsKCgoK
CmV4dGVybiBpbnQgaGlzdG9yeV9zZXRfcG9zIChpbnQpIDsKCgoKCmV4dGVybiBISVNUX0VOVFJZ
ICpwcmV2aW91c19oaXN0b3J5ICh2b2lkKSA7CgoKCgpleHRlcm4gSElTVF9FTlRSWSAqbmV4dF9o
aXN0b3J5ICh2b2lkKSA7CiMgMTQ5ICIvdXNyL2xvY2FsL2luY2x1ZGUvcmVhZGxpbmUvaGlzdG9y
eS5oIiAzCmV4dGVybiBpbnQgaGlzdG9yeV9zZWFyY2ggKGNvbnN0IGNoYXIgKiwgaW50KSA7CgoK
CgpleHRlcm4gaW50IGhpc3Rvcnlfc2VhcmNoX3ByZWZpeCAoY29uc3QgY2hhciAqLCBpbnQpIDsK
CgoKCgoKZXh0ZXJuIGludCBoaXN0b3J5X3NlYXJjaF9wb3MgKGNvbnN0IGNoYXIgKiwgaW50LCBp
bnQpIDsKCgoKCgoKZXh0ZXJuIGludCByZWFkX2hpc3RvcnkgKGNvbnN0IGNoYXIgKikgOwoKCgoK
CgpleHRlcm4gaW50IHJlYWRfaGlzdG9yeV9yYW5nZSAoY29uc3QgY2hhciAqLCBpbnQsIGludCkg
OwoKCgoKZXh0ZXJuIGludCB3cml0ZV9oaXN0b3J5IChjb25zdCBjaGFyICopIDsKCgoKZXh0ZXJu
IGludCBhcHBlbmRfaGlzdG9yeSAoaW50LCBjb25zdCBjaGFyICopIDsKCgpleHRlcm4gaW50IGhp
c3RvcnlfdHJ1bmNhdGVfZmlsZSAoY29uc3QgY2hhciAqLCBpbnQpIDsKIyAyMDMgIi91c3IvbG9j
YWwvaW5jbHVkZS9yZWFkbGluZS9oaXN0b3J5LmgiIDMKZXh0ZXJuIGludCBoaXN0b3J5X2V4cGFu
ZCAoY2hhciAqLCBjaGFyICoqKSA7CgoKCgpleHRlcm4gY2hhciAqaGlzdG9yeV9hcmdfZXh0cmFj
dCAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKikgOwoKCgoKCgoKZXh0ZXJuIGNoYXIgKmdldF9oaXN0
b3J5X2V2ZW50IChjb25zdCBjaGFyICosIGludCAqLCBpbnQpIDsKCgoKZXh0ZXJuIGNoYXIgKipo
aXN0b3J5X3Rva2VuaXplIChjb25zdCBjaGFyICopIDsKCgpleHRlcm4gaW50IGhpc3RvcnlfYmFz
ZTsKZXh0ZXJuIGludCBoaXN0b3J5X2xlbmd0aDsKZXh0ZXJuIGludCBoaXN0b3J5X21heF9lbnRy
aWVzOwpleHRlcm4gY2hhciBoaXN0b3J5X2V4cGFuc2lvbl9jaGFyOwpleHRlcm4gY2hhciBoaXN0
b3J5X3N1YnN0X2NoYXI7CmV4dGVybiBjaGFyICpoaXN0b3J5X3dvcmRfZGVsaW1pdGVyczsKZXh0
ZXJuIGNoYXIgaGlzdG9yeV9jb21tZW50X2NoYXI7CmV4dGVybiBjaGFyICpoaXN0b3J5X25vX2V4
cGFuZF9jaGFyczsKZXh0ZXJuIGNoYXIgKmhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFyczsK
ZXh0ZXJuIGludCBoaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbjsKCgpleHRlcm4gaW50
IG1heF9pbnB1dF9oaXN0b3J5OwoKCgoKZXh0ZXJuIHJsX2xpbmVidWZfZnVuY190ICpoaXN0b3J5
X2luaGliaXRfZXhwYW5zaW9uX2Z1bmN0aW9uOwojIDg3NiAiaW5jbHVkZS9pbmNsdWRlcy5oIiAy
CiMgOTEwICJpbmNsdWRlL2luY2x1ZGVzLmgiCnNpemVfdCBzdHJsY3B5KGNoYXIgKmQsIGNvbnN0
IGNoYXIgKnMsIHNpemVfdCBidWZzaXplKTsKCgoKc2l6ZV90IHN0cmxjYXQoY2hhciAqZCwgY29u
c3QgY2hhciAqcywgc2l6ZV90IGJ1ZnNpemUpOwojIDkyNyAiaW5jbHVkZS9pbmNsdWRlcy5oIgpp
bnQgc2V0cmVzdWlkKHVpZF90IHJ1aWQsIHVpZF90IGV1aWQsIHVpZF90IHN1aWQpOwoKCmludCBz
ZXRyZXNnaWQoZ2lkX3QgcmdpZCwgZ2lkX3QgZWdpZCwgZ2lkX3Qgc2dpZCk7CiMgOTc1ICJpbmNs
dWRlL2luY2x1ZGVzLmgiCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2RsZmNuLmgiIDEgMwojIDI2
ICIvdXNyL2xvY2FsL2luY2x1ZGUvZGxmY24uaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9i
aXRzL2RsZmNuLmgiIDEgMwojIDU3ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9kbGZjbi5oIiAz
CgoKCmV4dGVybiB2b2lkIF9kbF9tY291bnRfd3JhcHBlcl9jaGVjayAodm9pZCAqX19zZWxmcGMp
IDsKCgojIDI3ICIvdXNyL2xvY2FsL2luY2x1ZGUvZGxmY24uaCIgMiAzCiMgNDMgIi91c3IvbG9j
YWwvaW5jbHVkZS9kbGZjbi5oIiAzCgoKCgpleHRlcm4gdm9pZCAqZGxvcGVuIChfX2NvbnN0IGNo
YXIgKl9fZmlsZSwgaW50IF9fbW9kZSkgOwoKCgpleHRlcm4gaW50IGRsY2xvc2UgKHZvaWQgKl9f
aGFuZGxlKSA7CgoKCmV4dGVybiB2b2lkICpkbHN5bSAodm9pZCAqX19yZXN0cmljdCBfX2hhbmRs
ZSwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lKSA7
CgoKCgpleHRlcm4gdm9pZCAqZGx2c3ltICh2b2lkICpfX3Jlc3RyaWN0IF9faGFuZGxlLAogICAg
ICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lLAogICAgICAg
ICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX192ZXJzaW9uKSA7CgoKCgoK
ZXh0ZXJuIGNoYXIgKmRsZXJyb3IgKHZvaWQpIDsKCgoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgX19j
b25zdCBjaGFyICpkbGlfZm5hbWU7CiAgdm9pZCAqZGxpX2ZiYXNlOwogIF9fY29uc3QgY2hhciAq
ZGxpX3NuYW1lOwogIHZvaWQgKmRsaV9zYWRkcjsKfSBEbF9pbmZvOwoKCgpleHRlcm4gaW50IGRs
YWRkciAoX19jb25zdCB2b2lkICpfX2FkZHJlc3MsIERsX2luZm8gKl9faW5mbykgOwoKCgojIDk3
NiAiaW5jbHVkZS9pbmNsdWRlcy5oIiAyCiMgMTA0OCAiaW5jbHVkZS9pbmNsdWRlcy5oIgpleHRl
cm4gaW50ICpkZWJ1Z19sZXZlbDsKIyAxMDg2ICJpbmNsdWRlL2luY2x1ZGVzLmgiCmludCBmZHBy
aW50ZihpbnQgLCBjb25zdCBjaGFyICosIC4uLikgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAoX19w
cmludGZfXywgMiwgMykpKTsKaW50IGRfcHJpbnRmKGNvbnN0IGNoYXIgKiwgLi4uKSBfX2F0dHJp
YnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9fLCAxLCAyKSkpOwppbnQgZF9mcHJpbnRmKEZJTEUg
KmYsIGNvbnN0IGNoYXIgKiwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3ByaW50Zl9f
LCAyLCAzKSkpOwojIDIzICJsaWJzbWIvZXJyb3JtYXAuYyIgMgoKCnN0YXRpYyBzdHJ1Y3Qgewog
ICAgICAgIHVuc2lnbmVkIGNoYXIgZG9zX2NsYXNzOwogICAgICAgIHVuc2lnbmVkIGludCBkb3Nf
Y29kZTsKICAgICAgICBOVFNUQVRVUyBudHN0YXR1czsKfSBudHN0YXR1c190b19kb3NfbWFwW10g
PSB7CiAgICAgICAgezB4MDEsIDk5NywgKChOVFNUQVRVUykgeyAweDAwMDAwMTAzIH0pfSwKICAg
ICAgICB7MHgwMSwgMTExLCAoKE5UU1RBVFVTKSB7IDB4MDEwNSB9KX0sCiAgICAgICAgezB4MDEs
IDEzMDAsICgoTlRTVEFUVVMpIHsgMHgwMDAwMDEwNiB9KX0sCiAgICAgICAgezB4MDEsIDEzMDEs
ICgoTlRTVEFUVVMpIHsgMHgwMDAwMDEwNyB9KX0sCiAgICAgICAgezB4MDEsIDEwMjIsICgoTlRT
VEFUVVMpIHsgMHgwMDAwMDEwYyB9KX0sCiAgICAgICAgezB4MDEsIDEzMDIsICgoTlRTVEFUVVMp
IHsgMHgwMDAwMDEwZCB9KX0sCiAgICAgICAgezB4MDEsIDgyMDEsICgoTlRTVEFUVVMpIHsgMHgw
MDAwMDEyMSB9KX0sCiAgICAgICAgezB4MDEsIDMxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMDEgfSl9LAogICAgICAgIHsweDAyLCA2NCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDAyIH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwMDMgfSl9LAogICAgICAgIHsweDAxLCAyNCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMDA0IH0pfSwKICAgICAgICB7MHgwMSwgOTk4LCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAwMDUgfSl9LAogICAgICAgIHsweDAxLCA5OTksICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDAwNiB9KX0sCiAgICAgICAgezB4MDEsIDE0NTQsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDAwNyB9KX0sCiAgICAgICAgezB4MDEsIDYsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDAwOCB9KX0sCiAgICAgICAgezB4MDEsIDEwMDEsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDAwOSB9KX0sCiAgICAgICAgezB4MDEsIDE5MywgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDBhIH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMGIgfSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwZCB9KX0sCiAgICAgICAgezB4MDEsIDIsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwZSB9KX0sCiAgICAgICAgezB4MDEsIDIsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwZiB9KX0sCiAgICAgICAgezB4MDIsIDY0LCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTAgfSl9LAogICAgICAgIHsweDAxLCAzOCwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDExIH0pfSwKICAgICAgICB7MHgwMSwgMzQsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAxMiB9KX0sCiAgICAgICAgezB4MDEsIDIxLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTMgfSl9LAogICAgICAgIHsweDAxLCAxNzg1
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTQgfSl9LAogICAgICAgIHsweDAxLCAy
NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDE1IH0pfSwKICAgICAgICB7MHgwMSwg
MTExLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTYgfSl9LAogICAgICAgIHsweDAx
LCA4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTcgfSl9LAogICAgICAgIHsweDAx
LCA0ODcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAxOCB9KX0sCiAgICAgICAgezB4
MDEsIDQ4NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDE5IH0pfSwKICAgICAgICB7
MHgwMSwgMjMwLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMWEgfSl9LAogICAgICAgIHsweDAxLCAy
MzAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAxYiB9KX0sCiAgICAgICAgezB4MDIs
IDY0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMWMgfSl9LAogICAgICAgIHsweDAx
LCAyOSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDFkIH0pfSwKICAgICAgICB7MHgw
MSwgMTIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAxZSB9KX0sCiAgICAgICAgezB4
MDEsIDEyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMWYgfSl9LAogICAgICAgIHsw
eDAxLCAxOTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAyMCB9KX0sCiAgICAgICAg
ezB4MDEsIDEyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMjEgfSl9LAogICAgICAg
IHsweDAxLCAxMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDIyIH0pfSwKICAgICAg
ICB7MHgwMSwgMTIyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMjMgfSl9LAogICAg
ICAgIHsweDAxLCA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMjQgfSl9LAogICAg
ICAgIHsweDAxLCAzNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDI1IH0pfSwKICAg
ICAgICB7MHgwMSwgMzgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAyNiB9KX0sCiAg
ICAgICAgezB4MDEsIDE1OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDJhIH0pfSwK
ICAgICAgICB7MHgwMSwgNDMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAyYiB9KX0s
CiAgICAgICAgezB4MDEsIDQ4NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDJjIH0p
fSwKICAgICAgICB7MHgwMSwgNDg3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMmQg
fSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAz
MCB9KX0sCiAgICAgICAgezB4MDEsIDI2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
MzIgfSl9LAogICAgICAgIHsweDAyLCAyMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDAzMyB9KX0sCiAgICAgICAgezB4MDEsIDIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDAzNCB9KX0sCiAgICAgICAgezB4MDEsIDgwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwMzUgfSl9LAogICAgICAgIHsweDAxLCA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwMzcgfSl9LAogICAgICAgIHsweDAxLCAxNjEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDAzOSB9KX0sCiAgICAgICAgezB4MDEsIDMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDAzYSB9KX0sCiAgICAgICAgezB4MDEsIDE2MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDNiIH0pfSwKICAgICAgICB7MHgwMSwgMTExNywgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMDNjIH0pfSwKICAgICAgICB7MHgwMSwgMTExNywgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMDNkIH0pfSwKICAgICAgICB7MHgwMSwgMTMsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDAzZSB9KX0sCiAgICAgICAgezB4MDEsIDEzLCAoKE5UU1RBVFVTKSB7IDB4
QzAwMDAwMDAgfCAweDAwM2YgfSl9LAogICAgICAgIHsweDAxLCA4LCAoKE5UU1RBVFVTKSB7IDB4
QzAwMDAwMDAgfCAweDAwNDAgfSl9LAogICAgICAgIHsweDAxLCAxMiwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMDQxIH0pfSwKICAgICAgICB7MHgwMSwgNiwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMDQyIH0pfSwKICAgICAgICB7MHgwMSwgMzIsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDA0MyB9KX0sCiAgICAgICAgezB4MDEsIDE4MTYsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDA0NCB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDQ1IH0pfSwKICAgICAgICB7MHgwMSwgMjg4LCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNDYgfSl9LAogICAgICAgIHsweDAxLCAyOTgsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA0NyB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDQ4IH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNDkgfSl9LAogICAgICAgIHsweDAxLCAxNTYs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA0YSB9KX0sCiAgICAgICAgezB4MDEsIDEy
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNGIgfSl9LAogICAgICAgIHsweDAxLCAy
MzAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA0YyB9KX0sCiAgICAgICAgezB4MDEs
IDIzMCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDRkIH0pfSwKICAgICAgICB7MHgw
MSwgMjMwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNGUgfSl9LAogICAgICAgIHsw
eDAxLCAyODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA0ZiB9KX0sCiAgICAgICAg
ezB4MDEsIDI3NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDUwIH0pfSwKICAgICAg
ICB7MHgwMSwgMjc2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNTEgfSl9LAogICAg
ICAgIHsweDAxLCAyNzYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA1MiB9KX0sCiAg
ICAgICAgezB4MDEsIDI3NiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDUzIH0pfSwK
ICAgICAgICB7MHgwMSwgMzMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA1NCB9KX0s
CiAgICAgICAgezB4MDEsIDMzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNTUgfSl9
LAogICAgICAgIHsweDAxLCAxMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDU2IH0p
fSwKICAgICAgICB7MHgwMSwgNTAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA1NyB9
KX0sCiAgICAgICAgezB4MDEsIDEzMDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA1
OCB9KX0sCiAgICAgICAgezB4MDEsIDEzMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDA1OSB9KX0sCiAgICAgICAgezB4MDEsIDEzMDcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDA1YSB9KX0sCiAgICAgICAgezB4MDEsIDEzMDgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDA1YiB9KX0sCiAgICAgICAgezB4MDEsIDEzMDksICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDA1YyB9KX0sCiAgICAgICAgezB4MDEsIDEzMTAsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDA1ZCB9KX0sCiAgICAgICAgezB4MDEsIDEzMTEsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDA1ZSB9KX0sCiAgICAgICAgezB4MDEsIDEzMTIsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDA1ZiB9KX0sCiAgICAgICAgezB4MDEsIDEzMTMsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2MCB9KX0sCiAgICAgICAgezB4MDEsIDEzMTQsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2MSB9KX0sCiAgICAgICAgezB4MDEsIDEzMTUsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2MiB9KX0sCiAgICAgICAgezB4MDEsIDEzMTYs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2MyB9KX0sCiAgICAgICAgezB4MDEsIDEz
MTcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2NCB9KX0sCiAgICAgICAgezB4MDEs
IDEzMTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2NSB9KX0sCiAgICAgICAgezB4
MDEsIDEzMTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2NiB9KX0sCiAgICAgICAg
ezB4MDEsIDEzMjAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2NyB9KX0sCiAgICAg
ICAgezB4MDEsIDEzMjEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2OCB9KX0sCiAg
ICAgICAgezB4MDEsIDEzMjIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2OSB9KX0s
CiAgICAgICAgezB4MDIsIDIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2YSB9KX0s
CiAgICAgICAgezB4MDEsIDEzMjQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2YiB9
KX0sCiAgICAgICAgezB4MDEsIDEzMjUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2
YyB9KX0sCiAgICAgICAgezB4MDEsIDEzMjYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDA2ZCB9KX0sCiAgICAgICAgezB4MDEsIDEzMjcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDA2ZSB9KX0sCiAgICAgICAgezB4MDIsIDIyNDEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDA2ZiB9KX0sCiAgICAgICAgezB4MDIsIDIyNDAsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDA3MCB9KX0sCiAgICAgICAgezB4MDIsIDIyNDIsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDA3MSB9KX0sCiAgICAgICAgezB4MDIsIDIyMzksICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDA3MiB9KX0sCiAgICAgICAgezB4MDEsIDEzMzIsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDA3MyB9KX0sCiAgICAgICAgezB4MDEsIDEzMzMsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3NCB9KX0sCiAgICAgICAgezB4MDEsIDEzMzQsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3NSB9KX0sCiAgICAgICAgezB4MDEsIDEzMzUsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3NiB9KX0sCiAgICAgICAgezB4MDEsIDEzMzYs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3NyB9KX0sCiAgICAgICAgezB4MDEsIDEz
MzcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3OCB9KX0sCiAgICAgICAgezB4MDEs
IDEzMzgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3OSB9KX0sCiAgICAgICAgezB4
MDEsIDEyNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDdhIH0pfSwKICAgICAgICB7
MHgwMSwgMTkzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2IgfSl9LAogICAgICAg
IHsweDAxLCAxMDA4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2MgfSl9LAogICAg
ICAgIHsweDAxLCAxMzQwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2QgfSl9LAog
ICAgICAgIHsweDAxLCAxNTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3ZSB9KX0s
CiAgICAgICAgezB4MDIsIDgzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2YgfSl9
LAogICAgICAgIHsweDAxLCAxMzQxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwODAg
fSl9LAogICAgICAgIHsweDAxLCAxMzQyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
ODEgfSl9LAogICAgICAgIHsweDAxLCA2OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MDgyIH0pfSwKICAgICAgICB7MHgwMSwgMjU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwODMgfSl9LAogICAgICAgIHsweDAxLCAxMzQzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwODQgfSl9LAogICAgICAgIHsweDAxLCAyNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDA4NSB9KX0sCiAgICAgICAgezB4MDEsIDE1NCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMDg2IH0pfSwKICAgICAgICB7MHgwMSwgMTQsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDA4NyB9KX0sCiAgICAgICAgezB4MDEsIDQ4NywgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMDg4IH0pfSwKICAgICAgICB7MHgwMSwgMTgxMiwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMDg5IH0pfSwKICAgICAgICB7MHgwMSwgMTgxMywgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMDhhIH0pfSwKICAgICAgICB7MHgwMSwgMTgxNCwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDhiIH0pfSwKICAgICAgICB7MHgwMSwgMTQwLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOGMgfSl9LAogICAgICAgIHsweDAxLCAxNDEsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA4ZCB9KX0sCiAgICAgICAgezB4MDEsIDE0MiwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDhlIH0pfSwKICAgICAgICB7MHgwMSwgMTQzLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOGYgfSl9LAogICAgICAgIHsweDAxLCAxNDQs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5MCB9KX0sCiAgICAgICAgezB4MDEsIDE0
NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDkxIH0pfSwKICAgICAgICB7MHgwMSwg
MTQ2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOTIgfSl9LAogICAgICAgIHsweDAx
LCAxNDcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5MyB9KX0sCiAgICAgICAgezB4
MDEsIDE0OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDk0IH0pfSwKICAgICAgICB7
MHgwMSwgNTM0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOTUgfSl9LAogICAgICAg
IHsweDAxLCAxNTAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5NiB9KX0sCiAgICAg
ICAgezB4MDEsIDgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5NyB9KX0sCiAgICAg
ICAgezB4MDEsIDEwMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5OCB9KX0sCiAg
ICAgICAgezB4MDEsIDEzNDQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5OSB9KX0s
CiAgICAgICAgezB4MDEsIDgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5YSB9KX0s
CiAgICAgICAgezB4MDEsIDMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5YiB9KX0s
CiAgICAgICAgezB4MDEsIDEzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOWMgfSl9
LAogICAgICAgIHsweDAxLCAxMTY3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwOWQg
fSl9LAogICAgICAgIHsweDAxLCAyMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDll
IH0pfSwKICAgICAgICB7MHgwMSwgNDg3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
OWYgfSl9LAogICAgICAgIHsweDAxLCA0ODcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDBhMCB9KX0sCiAgICAgICAgezB4MDEsIDE0NTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDBhMSB9KX0sCiAgICAgICAgezB4MDEsIDE5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwYTIgfSl9LAogICAgICAgIHsweDAxLCAyMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMGEzIH0pfSwKICAgICAgICB7MHgwMSwgMTM0NSwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMGE0IH0pfSwKICAgICAgICB7MHgwMSwgMTM0NiwgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMGE1IH0pfSwKICAgICAgICB7MHgwMSwgMTM0NywgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMGE2IH0pfSwKICAgICAgICB7MHgwMSwgMTM0OCwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMGE3IH0pfSwKICAgICAgICB7MHgwMSwgMTM0OSwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMGE4IH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYTkgfSl9LAogICAgICAgIHsweDAxLCAyMzEsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBhYiB9KX0sCiAgICAgICAgezB4MDEsIDIzMSwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGFjIH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYWQgfSl9LAogICAgICAgIHsweDAxLCAyMzEs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBhZSB9KX0sCiAgICAgICAgezB4MDIsIDY0
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYWYgfSl9LAogICAgICAgIHsweDAxLCAy
MzMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiMCB9KX0sCiAgICAgICAgezB4MDEs
IDIzMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGIxIH0pfSwKICAgICAgICB7MHgw
MSwgNTM1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYjIgfSl9LAogICAgICAgIHsw
eDAxLCA1MzYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiMyB9KX0sCiAgICAgICAg
ezB4MDEsIDIzMCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGI0IH0pfSwKICAgICAg
ICB7MHgwMSwgMTIxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYjUgfSl9LAogICAg
ICAgIHsweDAxLCAzOCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGI2IH0pfSwKICAg
ICAgICB7MHgwMSwgMTIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiYSB9KX0sCiAg
ICAgICAgezB4MDEsIDUwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYmIgfSl9LAog
ICAgICAgIHsweDAxLCA1MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGJjIH0pfSwK
ICAgICAgICB7MHgwMSwgNTIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiZCB9KX0s
CiAgICAgICAgezB4MDEsIDUzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYmUgfSl9
LAogICAgICAgIHsweDAxLCA1NCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGJmIH0p
fSwKICAgICAgICB7MHgwMSwgNTUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjMCB9
KX0sCiAgICAgICAgezB4MDEsIDU2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzEg
fSl9LAogICAgICAgIHsweDAxLCA1NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGMy
IH0pfSwKICAgICAgICB7MHgwMSwgNTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBj
MyB9KX0sCiAgICAgICAgezB4MDEsIDU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
YzQgfSl9LAogICAgICAgIHsweDAxLCA2MCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MGM1IH0pfSwKICAgICAgICB7MHgwMiwgNDksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDBjNiB9KX0sCiAgICAgICAgezB4MDIsIDUwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwYzcgfSl9LAogICAgICAgIHsweDAyLCA1MiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGM4IH0pfSwKICAgICAgICB7MHgwMiwgNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGM5IH0pfSwKICAgICAgICB7MHgwMiwgNCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGNhIH0pfSwKICAgICAgICB7MHgwMiwgMywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGNiIH0pfSwKICAgICAgICB7MHgwMiwgNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGNjIH0pfSwKICAgICAgICB7MHgwMSwgNjgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDBjZCB9KX0sCiAgICAgICAgezB4MDIsIDkwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwY2UgfSl9LAogICAgICAgIHsweDAyLCA4MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMGNmIH0pfSwKICAgICAgICB7MHgwMiwgODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDBkMCB9KX0sCiAgICAgICAgezB4MDEsIDcyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwZDEgfSl9LAogICAgICAgIHsweDAxLCA4OCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMGQyIH0pfSwKICAgICAgICB7MHgwMSwgMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDBkNCB9KX0sCiAgICAgICAgezB4MDEsIDEyLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAwZDUgfSl9LAogICAgICAgIHsweDAxLCAyNDAsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDBkNiB9KX0sCiAgICAgICAgezB4MDEsIDEzNTAsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDBkNyB9KX0sCiAgICAgICAgezB4MDEsIDIzMiwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMGQ5IH0pfSwKICAgICAgICB7MHgwMSwgMTM1MSwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMGRhIH0pfSwKICAgICAgICB7MHgwMSwgMTM1MiwgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGRjIH0pfSwKICAgICAgICB7MHgwMSwgMTM1MywgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGRkIH0pfSwKICAgICAgICB7MHgwMSwgMTM1NCwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGRlIH0pfSwKICAgICAgICB7MHgwMSwgMTM1
NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGRmIH0pfSwKICAgICAgICB7MHgwMSwg
MTM1NiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGUwIH0pfSwKICAgICAgICB7MHgw
MSwgMTM1NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGUxIH0pfSwKICAgICAgICB7
MHgwMSwgMzAwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZTIgfSl9LAogICAgICAg
IHsweDAxLCAzMDEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBlMyB9KX0sCiAgICAg
ICAgezB4MDEsIDEzNTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBlNCB9KX0sCiAg
ICAgICAgezB4MDEsIDEzNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBlNSB9KX0s
CiAgICAgICAgezB4MDEsIDEzNjAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBlNiB9
KX0sCiAgICAgICAgezB4MDEsIDEzNjEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBl
NyB9KX0sCiAgICAgICAgezB4MDEsIDE3ODQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDBlOCB9KX0sCiAgICAgICAgezB4MDEsIDEzNjIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDBlZCB9KX0sCiAgICAgICAgezB4MDEsIDEzNjMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDBlZSB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMGVmIH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAwZjAgfSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDBmMSB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMGYyIH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RBVFVTKSB7
IDB4QzAwMDAwMDAgfCAweDAwZjMgfSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDBmNCB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMGY1IH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZjYgfSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBmNyB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGY4IH0pfSwKICAgICAgICB7MHgwMSwgMjMwLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZjkgfSl9LAogICAgICAgIHsweDAxLCAyMzAs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBmYSB9KX0sCiAgICAgICAgezB4MDEsIDMs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBmYiB9KX0sCiAgICAgICAgezB4MDEsIDEw
MDEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBmZCB9KX0sCiAgICAgICAgezB4MDEs
IDEzNjQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBmZSB9KX0sCiAgICAgICAgezB4
MDEsIDIwMywgKChOVFNUQVRVUykgeyAweGMwMDAwMTAwIH0pfSwKICAgICAgICB7MHgwMSwgMTYs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwMSB9KX0sCiAgICAgICAgezB4MDEsIDI3
NiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTAyIH0pfSwKICAgICAgICB7MHgwMSwg
MjY3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMDMgfSl9LAogICAgICAgIHsweDAx
LCAxMzY1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMDQgfSl9LAogICAgICAgIHsw
eDAxLCAxMzY2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMDUgfSl9LAogICAgICAg
IHsweDAxLCAyMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwNiB9KX0sCiAgICAg
ICAgezB4MDEsIDI0MDEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwNyB9KX0sCiAg
ICAgICAgezB4MDEsIDI0MDQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwOCB9KX0s
CiAgICAgICAgezB4MDEsIDEyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMGEgfSl9
LAogICAgICAgIHsweDAxLCAxMzY3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMGIg
fSl9LAogICAgICAgIHsweDAxLCAxMzY4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAx
MGQgfSl9LAogICAgICAgIHsweDAxLCAxMDU2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAxMGUgfSl9LAogICAgICAgIHsweDAxLCAxNDQ0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAxMTcgfSl9LAogICAgICAgIHsweDAxLCAxOTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDExYiB9KX0sCiAgICAgICAgezB4MDEsIDEzNjksICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDExYyB9KX0sCiAgICAgICAgezB4MDEsIDEzNzAsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDExZCB9KX0sCiAgICAgICAgezB4MDEsIDEwMDYsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDExZSB9KX0sCiAgICAgICAgezB4MDEsIDQsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDExZiB9KX0sCiAgICAgICAgezB4MDEsIDk5NSwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMTIwIH0pfSwKICAgICAgICB7MHgwMSwgMTIsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDEyMSB9KX0sCiAgICAgICAgezB4MDEsIDEyMTAsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEyMiB9KX0sCiAgICAgICAgezB4MDEsIDEyLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjMgfSl9LAogICAgICAgIHsweDAxLCAxMzcxLCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjQgfSl9LAogICAgICAgIHsweDAxLCAxMzcyLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjUgfSl9LAogICAgICAgIHsweDAxLCAxMzcz
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjYgfSl9LAogICAgICAgIHsweDAxLCAx
Mzc0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjcgfSl9LAogICAgICAgIHsweDAx
LCA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMjggfSl9LAogICAgICAgIHsweDAx
LCAxMzc1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMmIgfSl9LAogICAgICAgIHsw
eDAxLCAxNDU1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMmQgfSl9LAogICAgICAg
IHsweDAxLCAxOTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEyZSB9KX0sCiAgICAg
ICAgezB4MDEsIDE5MywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTJmIH0pfSwKICAg
ICAgICB7MHgwMSwgMTkzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMzAgfSl9LAog
ICAgICAgIHsweDAxLCAxOTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEzMSB9KX0s
CiAgICAgICAgezB4MDEsIDEzOTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEzMyB9
KX0sCiAgICAgICAgezB4MDEsIDEyNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTM1
IH0pfSwKICAgICAgICB7MHgwMSwgMTgyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAx
MzggfSl9LAogICAgICAgIHsweDAxLCAxMjcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDEzOSB9KX0sCiAgICAgICAgezB4MDIsIDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDEzYiB9KX0sCiAgICAgICAgezB4MDIsIDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDEzYyB9KX0sCiAgICAgICAgezB4MDEsIDUxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAxM2QgfSl9LAogICAgICAgIHsweDAxLCA1OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMTNlIH0pfSwKICAgICAgICB7MHgwMSwgNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDEzZiB9KX0sCiAgICAgICAgezB4MDEsIDU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAxNDAgfSl9LAogICAgICAgIHsweDAxLCA1OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMTQxIH0pfSwKICAgICAgICB7MHgwMSwgMTExNCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMTQyIH0pfSwKICAgICAgICB7MHgwMSwgMTI0LCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAxNDggfSl9LAogICAgICAgIHsweDAyLCAyLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAxNDkgfSl9LAogICAgICAgIHsweDAxLCAxMDksICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDE0YiB9KX0sCiAgICAgICAgezB4MDEsIDEwMDksICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDE0YyB9KX0sCiAgICAgICAgezB4MDEsIDEwMTYsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDE0ZCB9KX0sCiAgICAgICAgezB4MDEsIDEwMDUsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE0ZiB9KX0sCiAgICAgICAgezB4MDEsIDExMTgsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1MCB9KX0sCiAgICAgICAgezB4MDEsIDEzNzYsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1MSB9KX0sCiAgICAgICAgezB4MDEsIDEzNzcs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1MiB9KX0sCiAgICAgICAgezB4MDEsIDEz
NzgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1MyB9KX0sCiAgICAgICAgezB4MDEs
IDEzNzksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1NCB9KX0sCiAgICAgICAgezB4
MDEsIDEzODAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1NSB9KX0sCiAgICAgICAg
ezB4MDEsIDEzODEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1NiB9KX0sCiAgICAg
ICAgezB4MDEsIDEzODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1NyB9KX0sCiAg
ICAgICAgezB4MDEsIDEzODMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1OCB9KX0s
CiAgICAgICAgezB4MDEsIDEwMDcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1OSB9
KX0sCiAgICAgICAgezB4MDEsIDEzODQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1
YSB9KX0sCiAgICAgICAgezB4MDEsIDEzODUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDE1YiB9KX0sCiAgICAgICAgezB4MDEsIDEwMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDE1YyB9KX0sCiAgICAgICAgezB4MDEsIDEzODYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDE1ZCB9KX0sCiAgICAgICAgezB4MDEsIDExMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDE1ZiB9KX0sCiAgICAgICAgezB4MDEsIDExMTMsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDE2MiB9KX0sCiAgICAgICAgezB4MDEsIDExMjIsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDE2NSB9KX0sCiAgICAgICAgezB4MDEsIDExMjMsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDE2NiB9KX0sCiAgICAgICAgezB4MDEsIDExMjQsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2NyB9KX0sCiAgICAgICAgezB4MDEsIDExMjUsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2OCB9KX0sCiAgICAgICAgezB4MDEsIDExMjYsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2OSB9KX0sCiAgICAgICAgezB4MDEsIDExMjcs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2YSB9KX0sCiAgICAgICAgezB4MDEsIDEx
MjgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2YiB9KX0sCiAgICAgICAgezB4MDEs
IDExMTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2YyB9KX0sCiAgICAgICAgezB4
MDEsIDExMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE2ZCB9KX0sCiAgICAgICAg
ezB4MDEsIDExMDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3MiB9KX0sCiAgICAg
ICAgezB4MDEsIDExMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3MyB9KX0sCiAg
ICAgICAgezB4MDEsIDExMDcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3NCB9KX0s
CiAgICAgICAgezB4MDEsIDExMDgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3NSB9
KX0sCiAgICAgICAgezB4MDEsIDExMDksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3
NiB9KX0sCiAgICAgICAgezB4MDEsIDExMjksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDE3NyB9KX0sCiAgICAgICAgezB4MDEsIDExMTIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDE3OCB9KX0sCiAgICAgICAgezB4MDEsIDEzODcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDE3YSB9KX0sCiAgICAgICAgezB4MDEsIDEzODgsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDE3YiB9KX0sCiAgICAgICAgezB4MDEsIDEwMTgsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDE3YyB9KX0sCiAgICAgICAgezB4MDEsIDEwMTksICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDE3ZCB9KX0sCiAgICAgICAgezB4MDEsIDEzODksICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDE3ZSB9KX0sCiAgICAgICAgezB4MDEsIDEzOTAsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3ZiB9KX0sCiAgICAgICAgezB4MDEsIDEwMjAsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4MCB9KX0sCiAgICAgICAgezB4MDEsIDEwMjEsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4MSB9KX0sCiAgICAgICAgezB4MDEsIDIzMCwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTgyIH0pfSwKICAgICAgICB7MHgwMSwgMTEx
NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTgzIH0pfSwKICAgICAgICB7MHgwMSwg
MjIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4NCB9KX0sCiAgICAgICAgezB4MDEs
IDExMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4NSB9KX0sCiAgICAgICAgezB4
MDEsIDExMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4NiB9KX0sCiAgICAgICAg
ezB4MDEsIDE1MDIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4OCB9KX0sCiAgICAg
ICAgezB4MDEsIDE5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxODkgfSl9LAogICAg
ICAgIHsweDAxLCAxNzg2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOGEgfSl9LAog
ICAgICAgIHsweDAxLCAxNzg3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOGIgfSl9
LAogICAgICAgIHsweDAxLCAxNzg4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOGMg
fSl9LAogICAgICAgIHsweDAxLCAxNzg5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAx
OGQgfSl9LAogICAgICAgIHsweDAxLCAxNTAwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAxOGUgfSl9LAogICAgICAgIHsweDAxLCAxNTAxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAxOGYgfSl9LAogICAgICAgIHsweDAxLCAxNzkwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAxOTAgfSl9LAogICAgICAgIHsweDAxLCAxNzkyLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAxOTIgfSl9LAogICAgICAgIHsweDAyLCAyMjM5LCAoKE5UU1RBVFVTKSB7IDB4
QzAwMDAwMDAgfCAweDAxOTMgfSl9LAogICAgICAgIHsweDAxLCAxMTMxLCAoKE5UU1RBVFVTKSB7
IDB4QzAwMDAwMDAgfCAweDAxOTQgfSl9LAogICAgICAgIHsweDAxLCAxMjE5LCAoKE5UU1RBVFVT
KSB7IDB4QzAwMDAwMDAgfCAweDAxOTUgfSl9LAogICAgICAgIHsweDAxLCAxMjIwLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOTYgfSl9LAogICAgICAgIHsweDAxLCAxNTAzLCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOTcgfSl9LAogICAgICAgIHsweDAxLCAxODA3LCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOTggfSl9LAogICAgICAgIHsweDAxLCAxODA4
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOTkgfSl9LAogICAgICAgIHsweDAxLCAx
ODA5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOWEgfSl9LAogICAgICAgIHsweDAx
LCAxODEwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxOWIgfSl9LAogICAgICAgIHsw
eDAxLCAxMzk0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyMDIgfSl9LAogICAgICAg
IHsweDAxLCA1OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjAzIH0pfSwKICAgICAg
ICB7MHgwMSwgMTgxNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjA0IH0pfSwKICAg
ICAgICB7MHgwMSwgMTEzMCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjA1IH0pfSwK
ICAgICAgICB7MHgwMSwgMTc4NCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjA2IH0p
fSwKICAgICAgICB7MHgwMSwgMTIxNCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjA3
IH0pfSwKICAgICAgICB7MHgwMSwgMTIxNCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MjA4IH0pfSwKICAgICAgICB7MHgwMSwgNjgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDIwOSB9KX0sCiAgICAgICAgezB4MDEsIDUyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAyMGEgfSl9LAogICAgICAgIHsweDAyLCA1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAyMGIgfSl9LAogICAgICAgIHsweDAyLCA1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAyMGMgfSl9LAogICAgICAgIHsweDAyLCA1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAyMGQgfSl9LAogICAgICAgIHsweDAxLCA2OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMjBlIH0pfSwKICAgICAgICB7MHgwMSwgNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDIwZiB9KX0sCiAgICAgICAgezB4MDEsIDU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAyMTAgfSl9LAogICAgICAgIHsweDAxLCA1OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMjExIH0pfSwKICAgICAgICB7MHgwMSwgNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDIxMiB9KX0sCiAgICAgICAgezB4MDEsIDU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAyMTMgfSl9LAogICAgICAgIHsweDAxLCA1OSwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMjE0IH0pfSwKICAgICAgICB7MHgwMSwgNTksICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDIxNSB9KX0sCiAgICAgICAgezB4MDEsIDUwLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAyMTYgfSl9LAogICAgICAgIHsweDAxLCA1MCwgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMjE3IH0pfSwKICAgICAgICB7MHgwMSwgNjExOCwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMjFjIH0pfSwKICAgICAgICB7MHgwMSwgMTEzMiwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMjIwIH0pfSwKICAgICAgICB7MHgwMSwgMTkzLCAoKE5UU1RBVFVT
KSB7IDB4QzAwMDAwMDAgfCAweDAyMjEgfSl9LAogICAgICAgIHsweDAyLCAyMjQyLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyMjQgfSl9LAogICAgICAgIHsweDAxLCAxMTY4LCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyMjUgfSl9LAogICAgICAgIHsweDAxLCA1NTQsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDIyYSB9KX0sCiAgICAgICAgezB4MDEsIDU1NSwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjJiIH0pfSwKICAgICAgICB7MHgwMSwgMTIz
NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjJkIH0pfSwKICAgICAgICB7MHgwMSwg
MTE3MCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjMwIH0pfSwKICAgICAgICB7MHgw
MSwgMTkwOCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjMzIH0pfSwKICAgICAgICB7
MHgwMSwgNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM0IH0pfSwKICAgICAgICB7
MHgwMSwgNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM1IH0pfSwKICAgICAgICB7
MHgwMSwgMTIyNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM2IH0pfSwKICAgICAg
ICB7MHgwMSwgMTIyNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM3IH0pfSwKICAg
ICAgICB7MHgwMSwgMTIyNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM4IH0pfSwK
ICAgICAgICB7MHgwMSwgMTIyOCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjM5IH0p
fSwKICAgICAgICB7MHgwMSwgMTIyOSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjNh
IH0pfSwKICAgICAgICB7MHgwMSwgMTIzMCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MjNiIH0pfSwKICAgICAgICB7MHgwMSwgMTIzMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMjNjIH0pfSwKICAgICAgICB7MHgwMSwgMTIzMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMjNkIH0pfSwKICAgICAgICB7MHgwMSwgMTIzMywgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMjNlIH0pfSwKICAgICAgICB7MHgwMSwgMTIzNCwgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMjNmIH0pfSwKICAgICAgICB7MHgwMSwgMTIzNSwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMjQwIH0pfSwKICAgICAgICB7MHgwMSwgMTIzNiwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMjQxIH0pfSwKICAgICAgICB7MHgwMSwgMTIyNCwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMjQzIH0pfSwKICAgICAgICB7MHgwMSwgMTIzOCwgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjQ2IH0pfSwKICAgICAgICB7MHgwMSwgMTIzOSwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjQ3IH0pfSwKICAgICAgICB7MHgwMSwgMTI0MCwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjQ4IH0pfSwKICAgICAgICB7MHgwMSwgMTkz
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNDkgfSl9LAogICAgICAgIHsweDAxLCAx
MzU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNTMgfSl9LAogICAgICAgIHsweDAx
LCAxMjMyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNTcgfSl9LAogICAgICAgIHsw
eDAxLCAxMzk1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNTkgfSl9LAogICAgICAg
IHsweDAxLCAxMDU4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNWUgfSl9LAogICAg
ICAgIHsweDAxLCAxODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDI2MiB9KX0sCiAg
ICAgICAgezB4MDEsIDEyNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMjYzIH0pfSwK
ICAgICAgICB7MHgwMSwgMjg4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNjQgfSl9
LAogICAgICAgIHsweDAxLCAxMTQyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAyNjUg
fSl9LAogICAgICAgIHsweDAxLCA0MzUwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAy
NjcgfSl9LAogICAgICAgIHsweDAxLCAyMDAxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNmMgfSl9
LAogICAgICAgIHsweDAxLCAxMjAxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNmQgfSl9LAogICAg
ICAgIHsweDAxLCAyMSwgKChOVFNUQVRVUykgeyAweGMwMDAwMjZlIH0pfSwKICAgICAgICB7MHgw
MSwgMTE2OSwgKChOVFNUQVRVUykgeyAweGMwMDAwMjcyIH0pfSwKICAgICAgICB7MHgwMSwgNDM5
MCwgKChOVFNUQVRVUykgeyAweGMwMDAwMjc1IH0pfSwKICAgICAgICB7MHgwMSwgNDM5MywgKChO
VFNUQVRVUykgeyAweGMwMDAwMjc2IH0pfSwKICAgICAgICB7MHgwMSwgNDM5NCwgKChOVFNUQVRV
UykgeyAweGMwMDAwMjc3IH0pfSwKICAgICAgICB7MHgwMSwgNDM5MiwgKChOVFNUQVRVUykgeyAw
eGMwMDAwMjc4IH0pfSwKICAgICAgICB7MHgwMSwgMTkyMCwgKChOVFNUQVRVUykgeyAweGMwMDAw
Mjc5IH0pfSwKICAgICAgICB7MHgwMSwgMTkyMSwgKChOVFNUQVRVUykgeyAweGMwMDAwMjgwIH0p
fSwKICAgICAgICB7MHgwMSwgMTYxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyODEgfSl9LAogICAg
ICAgIHsweDAxLCAxMTYwLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyODMgfSl9LAogICAgICAgIHsw
eDAxLCAxMTYxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyODQgfSl9LAogICAgICAgIHsweDAxLCAx
MTYyLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyODUgfSl9LAogICAgICAgIHsweDAxLCAxMTYzLCAo
KE5UU1RBVFVTKSB7IDB4YzAwMDAyODYgfSl9LAogICAgICAgIHsweDAxLCAxMTY0LCAoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyODcgfSl9LAogICAgICAgIHsweDAxLCAxMiwgKChOVFNUQVRVUykgeyAw
eGMwMDAwMjhhIH0pfSwKICAgICAgICB7MHgwMSwgMTIsICgoTlRTVEFUVVMpIHsgMHhjMDAwMDI4
YiB9KX0sCiAgICAgICAgezB4MDEsIDEyLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOGQgfSl9LAog
ICAgICAgIHsweDAxLCAxMiwgKChOVFNUQVRVUykgeyAweGMwMDAwMjhlIH0pfSwKICAgICAgICB7
MHgwMSwgMTIsICgoTlRTVEFUVVMpIHsgMHhjMDAwMDI4ZiB9KX0sCiAgICAgICAgezB4MDEsIDEy
LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTAgfSl9LAogICAgICAgIHsweDAxLCA2MDA3LCAoKE5U
U1RBVFVTKSB7IDB4YzAwMDAyOTEgfSl9LAogICAgICAgIHsweDAxLCA2MDA4LCAoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyOTIgfSl9LAogICAgICAgIHsweDAxLCA2MDAyLCAoKE5UU1RBVFVTKSB7IDB4
YzAwMDAyOTMgfSl9LAogICAgICAgIHsweDAxLCA0MjAwLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAy
OTUgfSl9LAogICAgICAgIHsweDAxLCA0MjAxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTYgfSl9
LAogICAgICAgIHsweDAxLCA0MjAyLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTcgfSl9LAogICAg
ICAgIHsweDAxLCA0MjAzLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTggfSl9LAogICAgICAgIHsw
eDAxLCA4MjE4LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTkgfSl9LAogICAgICAgIHsweDAxLCA4
MjE5LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOWEgfSl9LAogICAgICAgIHsweDAxLCA4MjIwLCAo
KE5UU1RBVFVTKSB7IDB4YzAwMDAyOWIgfSl9LAogICAgICAgIHsweDAyLCA2NCwgKChOVFNUQVRV
UykgeyAweGMwMDAwMjljIH0pfSwKICAgICAgICB7MHgwMSwgNDM1MSwgKChOVFNUQVRVUykgeyAw
eGMwMDAwMjlkIH0pfSwKICAgICAgICB7MHgwMSwgNDM1MiwgKChOVFNUQVRVUykgeyAweGMwMDAw
MjllIH0pfSwKICAgICAgICB7MHgwMSwgMTE3MiwgKChOVFNUQVRVUykgeyAweGMwMDAwMjlmIH0p
fSwKICAgICAgICB7MHgwMSwgODIwMiwgKChOVFNUQVRVUykgeyAweGMwMDAwMmExIH0pfSwKICAg
ICAgICB7MHgwMSwgODIwMywgKChOVFNUQVRVUykgeyAweGMwMDAwMmEyIH0pfSwKICAgICAgICB7
MHgwMSwgODIwNCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmEzIH0pfSwKICAgICAgICB7MHgwMSwg
ODIwNSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmE0IH0pfSwKICAgICAgICB7MHgwMSwgODIwNiwg
KChOVFNUQVRVUykgeyAweGMwMDAwMmE1IH0pfSwKICAgICAgICB7MHgwMSwgODIwNywgKChOVFNU
QVRVUykgeyAweGMwMDAwMmE2IH0pfSwKICAgICAgICB7MHgwMSwgODIwOCwgKChOVFNUQVRVUykg
eyAweGMwMDAwMmE3IH0pfSwKICAgICAgICB7MHgwMSwgODIwOSwgKChOVFNUQVRVUykgeyAweGMw
MDAwMmE4IH0pfSwKICAgICAgICB7MHgwMSwgODIxMCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmE5
IH0pfSwKICAgICAgICB7MHgwMSwgODIxMSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmFhIH0pfSwK
ICAgICAgICB7MHgwMSwgODIxMiwgKChOVFNUQVRVUykgeyAweGMwMDAwMmFiIH0pfSwKICAgICAg
ICB7MHgwMSwgODIxMywgKChOVFNUQVRVUykgeyAweGMwMDAwMmFjIH0pfSwKICAgICAgICB7MHgw
MSwgODIxNCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmFkIH0pfSwKICAgICAgICB7MHgwMSwgODIx
NSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmFlIH0pfSwKICAgICAgICB7MHgwMSwgODIxNiwgKChO
VFNUQVRVUykgeyAweGMwMDAwMmFmIH0pfSwKICAgICAgICB7MHgwMSwgODIxNywgKChOVFNUQVRV
UykgeyAweGMwMDAwMmIwIH0pfSwKICAgICAgICB7MHgwMSwgODQ3OCwgKChOVFNUQVRVUykgeyAw
eGMwMDAwMmIxIH0pfSwKICAgICAgICB7MHgwMSwgNDM5MSwgKChOVFNUQVRVUykgeyAweGMwMDAw
MmIyIH0pfSwKICAgICAgICB7MHgwMSwgMTYxNywgKChOVFNUQVRVUykgeyAweGMwMDAwMmI2IH0p
fSwKICAgICAgICB7MHgwMSwgMTE3OCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmI3IH0pfSwKICAg
ICAgICB7MHgwMSwgMTE3OSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmI4IH0pfSwKICAgICAgICB7
MHgwMSwgODIyOCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmMxIH0pfSwKICAgICAgICB7MHgwMSwg
MTM5NywgKChOVFNUQVRVUykgeyAweGMwMDAwMmMzIH0pfSwKICAgICAgICB7MHgwMSwgOTk4LCAo
KE5UU1RBVFVTKSB7IDB4YzAwMDAyYzUgfSl9LAogICAgICAgIHsweDAxLCA0MjEzLCAoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyYzYgfSl9LAogICAgICAgIHsweDAxLCA0MjE0LCAoKE5UU1RBVFVTKSB7
IDB4YzAwMDAyYzcgfSl9LAogICAgICAgIHsweDAxLCA0MzI4LCAoKE5UU1RBVFVTKSB7IDB4YzAw
MDAyY2EgfSl9LAogICAgICAgIHsweDAxLCA4NTA0LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyY2Ig
fSl9LAogICAgICAgIHsweDAxLCAxMjUxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyY2MgfSl9LAog
ICAgICAgIHsweDAxLCA4NTA1LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyY2QgfSl9LAogICAgICAg
IHsweDAxLCAxMTgxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyY2YgfSl9LAogICAgICAgIHsweDAx
LCA4NTA2LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZDAgfSl9LAogICAgICAgIHsweDAxLCA4NTEz
LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZDQgfSl9LAogICAgICAgIHsweDAxLCA4NTE0LCAoKE5U
U1RBVFVTKSB7IDB4YzAwMDAyZDUgfSl9LAogICAgICAgIHsweDAxLCA4NTE1LCAoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyZDYgfSl9LAogICAgICAgIHsweDAxLCA4NTE2LCAoKE5UU1RBVFVTKSB7IDB4
YzAwMDAyZDcgfSl9LAogICAgICAgIHsweDAxLCA4NTE3LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAy
ZDggfSl9LAogICAgICAgIHsweDAxLCA4NTE4LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZDkgfSl9
LAogICAgICAgIHsweDAxLCA4NTE5LCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZGEgfSl9LAogICAg
ICAgIHsweDAxLCA4NTIwLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZGIgfSl9LAogICAgICAgIHsw
eDAxLCA4NTIxLCAoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZGMgfSl9LAogICAgICAgIHsweDAxLCA1
MCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmRkIH0pfSwKICAgICAgICB7MHgwMSwgODUyOSwgKChO
VFNUQVRVUykgeyAweGMwMDAwMmRmIH0pfSwKICAgICAgICB7MHgwMSwgODUzMCwgKChOVFNUQVRV
UykgeyAweGMwMDAwMmUwIH0pfSwKICAgICAgICB7MHgwMSwgODUzMSwgKChOVFNUQVRVUykgeyAw
eGMwMDAwMmUxIH0pfSwKICAgICAgICB7MHgwMSwgODUzMiwgKChOVFNUQVRVUykgeyAweGMwMDAw
MmUyIH0pfSwKICAgICAgICB7MHgwMSwgODU0MSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmUzIH0p
fSwKICAgICAgICB7MHgwMSwgODU0NywgKChOVFNUQVRVUykgeyAweGMwMDAwMmU0IH0pfSwKICAg
ICAgICB7MHgwMSwgODU0OCwgKChOVFNUQVRVUykgeyAweGMwMDAwMmU1IH0pfSwKICAgICAgICB7
MHgwMSwgODU0OSwgKChOVFNUQVRVUykgeyAweGMwMDAwMmU2IH0pfSwKICAgICAgICB7MHgwMSwg
ODU1NywgKChOVFNUQVRVUykgeyAweGMwMDAwMmU3IH0pfSwKICAgICAgICB7MHgwMSwgMTExNSwg
KChOVFNUQVRVUykgeyAweGMwMDAwMmZlIH0pfSwKICAgICAgICB7MHgwMSwgMTI1NSwgKChOVFNU
QVRVUykgeyAweGMwMDAwMmZmIH0pfSwKICAgICAgICB7MHgwMSwgMTI1NCwgKChOVFNUQVRVUykg
eyAweGMwMDAwMzAwIH0pfSwKICAgICAgICB7MHgwMSwgMSwgKChOVFNUQVRVUykgeyAweDgwMDAw
MDAxIH0pfSwKICAgICAgICB7MHgwMSwgOTk4LCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMDIgfSl9
LAogICAgICAgIHsweDAxLCAzLCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMDMgfSl9LAogICAgICAg
IHsweDAxLCA0LCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMDQgfSl9LAogICAgICAgIHsweDAxLCAy
MzQsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAwNSB9KX0sCiAgICAgICAgezB4MDEsIDE4LCAoKE5U
U1RBVFVTKSB7IDB4ODAwMDAwMDYgfSl9LAogICAgICAgIHsweDAxLCAxMzkxLCAoKE5UU1RBVFVT
KSB7IDB4ODAwMDAwMGIgfSl9LAogICAgICAgIHsweDAxLCAyOTksICgoTlRTVEFUVVMpIHsgMHg4
MDAwMDAwZCB9KX0sCiAgICAgICAgezB4MDEsIDI4LCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMGUg
fSl9LAogICAgICAgIHsweDAxLCAyMSwgKChOVFNUQVRVUykgeyAweDgwMDAwMDBmIH0pfSwKICAg
ICAgICB7MHgwMSwgMjEsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxMCB9KX0sCiAgICAgICAgezB4
MDEsIDE3MCwgKChOVFNUQVRVUykgeyAweDgwMDAwMDExIH0pfSwKICAgICAgICB7MHgwMSwgMjU5
LCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTIgfSl9LAogICAgICAgIHsweDAxLCAyNTQsICgoTlRT
VEFUVVMpIHsgMHg4MDAwMDAxMyB9KX0sCiAgICAgICAgezB4MDEsIDI3NSwgKChOVFNUQVRVUykg
eyAweDgwMDAwMDE0IH0pfSwKICAgICAgICB7MHgwMSwgMjc1LCAoKE5UU1RBVFVTKSB7IDB4ODAw
MDAwMTUgfSl9LAogICAgICAgIHsweDAxLCAxMTEwLCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTYg
fSl9LAogICAgICAgIHsweDAxLCAyNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAx
YSB9KX0sCiAgICAgICAgezB4MDEsIDExMDEsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxYiB9KX0s
CiAgICAgICAgezB4MDEsIDExMTAsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxYyB9KX0sCiAgICAg
ICAgezB4MDEsIDExMTEsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxZCB9KX0sCiAgICAgICAgezB4
MDEsIDExMDAsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxZSB9KX0sCiAgICAgICAgezB4MDEsIDEx
MDIsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxZiB9KX0sCiAgICAgICAgezB4MDEsIDExMDMsICgo
TlRTVEFUVVMpIHsgMHg4MDAwMDAyMSB9KX0sCiAgICAgICAgezB4MDEsIDExMDQsICgoTlRTVEFU
VVMpIHsgMHg4MDAwMDAyMiB9KX0sCiAgICAgICAgezB4MDEsIDI0MDIsICgoTlRTVEFUVVMpIHsg
MHg4MDAwMDAyNSB9KX0sCiAgICAgICAgezB4MDEsIDExNjUsICgoTlRTVEFUVVMpIHsgMHg4MDAw
MDI4OCB9KX0sCiAgICAgICAgezB4MDEsIDExNjYsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDI4OSB9
KX0sCn07CgoKCnN0YXRpYyBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGNoYXIgZG9zX2NsYXNz
OwogICAgICAgIHVuc2lnbmVkIGludCBkb3NfY29kZTsKICAgICAgICBOVFNUQVRVUyBudHN0YXR1
czsKfSBkb3NfdG9fbnRzdGF0dXNfbWFwW10gPSB7CiAgICAgICAgezB4MDEsIDEsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwMiB9KX0sCiAgICAgICAgezB4MDEsIDIsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwZiB9KX0sCiAgICAgICAgezB4MDEsIDMsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAzYSB9KX0sCiAgICAgICAgezB4MDEsIDQsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDExZiB9KX0sCiAgICAgICAgezB4MDEsIDUsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAyMiB9KX0sCiAgICAgICAgezB4MDEsIDYsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwOCB9KX0sCiAgICAgICAgezB4MDEsIDgsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5YSB9KX0sCiAgICAgICAgezB4MDEsIDEyLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMWUgfSl9LAogICAgICAgIHsweDAxLCAxMywgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDNlIH0pfSwKICAgICAgICB7MHgwMSwgMTQsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA4NyB9KX0sCiAgICAgICAgezB4MDEsIDE2LCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMDEgfSl9LAogICAgICAgIHsweDAxLCAxNywgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGQ0IH0pfSwKICAgICAgICB7MHgwMSwgMTgsICgo
TlRTVEFUVVMpIHsgMHg4MDAwMDAwNiB9KX0sCiAgICAgICAgezB4MDEsIDE5LCAoKE5UU1RBVFVT
KSB7IDB4QzAwMDAwMDAgfCAweDAwYTIgfSl9LAogICAgICAgIHsweDAxLCAyMSwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDEzIH0pfSwKICAgICAgICB7MHgwMSwgMjIsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4NCB9KX0sCiAgICAgICAgezB4MDEsIDIzLCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwM2UgfSl9LAogICAgICAgIHsweDAxLCAyNCwgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDNlIH0pfSwKICAgICAgICB7MHgwMSwgMjYsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAzMiB9KX0sCiAgICAgICAgezB4MDEsIDI3LCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTUgfSl9LAogICAgICAgIHsweDAxLCAyOCwgKChO
VFNUQVRVUykgeyAweDgwMDAwMDBlIH0pfSwKICAgICAgICB7MHgwMSwgMzEsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDAwMSB9KX0sCiAgICAgICAgezB4MDEsIDMyLCAoKE5UU1RBVFVT
KSB7IDB4QzAwMDAwMDAgfCAweDAwNDMgfSl9LAogICAgICAgIHsweDAxLCAzMywgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDU0IH0pfSwKICAgICAgICB7MHgwMSwgMzQsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAxMiB9KX0sCiAgICAgICAgezB4MDEsIDM4LCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTEgfSl9LAogICAgICAgIHsweDAxLCA1MCwgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDU3IH0pfSwKICAgICAgICB7MHgwMSwgNTEsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiYyB9KX0sCiAgICAgICAgezB4MDEsIDUyLCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYmQgfSl9LAogICAgICAgIHsweDAxLCA1MywgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGJlIH0pfSwKICAgICAgICB7MHgwMSwgNTQsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiZiB9KX0sCiAgICAgICAgezB4MDEsIDU1LCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzAgfSl9LAogICAgICAgIHsweDAxLCA1Niwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGMxIH0pfSwKICAgICAgICB7MHgwMSwgNTcs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjMiB9KX0sCiAgICAgICAgezB4MDEsIDU4
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzMgfSl9LAogICAgICAgIHsweDAxLCA1
OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGM0IH0pfSwKICAgICAgICB7MHgwMSwg
NjAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjNSB9KX0sCiAgICAgICAgezB4MDEs
IDYxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzYgfSl9LAogICAgICAgIHsweDAx
LCA2MiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGM3IH0pfSwKICAgICAgICB7MHgw
MSwgNjMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjOCB9KX0sCiAgICAgICAgezB4
MDEsIDY0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzkgfSl9LAogICAgICAgIHsw
eDAxLCA2NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNhIH0pfSwKICAgICAgICB7
MHgwMSwgNjYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjYiB9KX0sCiAgICAgICAg
ezB4MDEsIDY3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwY2MgfSl9LAogICAgICAg
IHsweDAxLCA2OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDgyIH0pfSwKICAgICAg
ICB7MHgwMSwgNjksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjZSB9KX0sCiAgICAg
ICAgezB4MDEsIDcwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwY2YgfSl9LAogICAg
ICAgIHsweDAxLCA3MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGQwIH0pfSwKICAg
ICAgICB7MHgwMSwgNzIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBkMSB9KX0sCiAg
ICAgICAgezB4MDEsIDgwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMzUgfSl9LAog
ICAgICAgIHsweDAxLCA4NiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDZhIH0pfSwK
ICAgICAgICB7MHgwMSwgODcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwMyB9KX0s
CiAgICAgICAgezB4MDEsIDg4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZDIgfSl9
LAogICAgICAgIHsweDAxLCAxMDksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE0YiB9
KX0sCiAgICAgICAgezB4MDEsIDExMSwgKChOVFNUQVRVUykgeyAweDAxMDUgfSl9LAogICAgICAg
IHsweDAxLCAxMTIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3ZiB9KX0sCiAgICAg
ICAgezB4MDEsIDEyMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGI1IH0pfSwKICAg
ICAgICB7MHgwMSwgMTIyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMjMgfSl9LAog
ICAgICAgIHsweDAxLCAxMjMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAzMyB9KX0s
CiAgICAgICAgezB4MDEsIDEyNCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTQ4IH0p
fSwKICAgICAgICB7MHgwMSwgMTI2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxMzUg
fSl9LAogICAgICAgIHsweDAxLCAxMjcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA3
YSB9KX0sCiAgICAgICAgezB4MDEsIDE0NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MTAxIH0pfSwKICAgICAgICB7MHgwMSwgMTU0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwODYgfSl9LAogICAgICAgIHsweDAxLCAxNTYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDA0YSB9KX0sCiAgICAgICAgezB4MDEsIDE1OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDJhIH0pfSwKICAgICAgICB7MHgwMSwgMTYxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwMzkgfSl9LAogICAgICAgIHsweDAxLCAxNzAsICgoTlRTVEFUVVMpIHsgMHg4MDAw
MDAxMSB9KX0sCiAgICAgICAgezB4MDEsIDE4MiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMTM4IH0pfSwKICAgICAgICB7MHgwMSwgMTgzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMzUgfSl9LAogICAgICAgIHsweDAxLCAxOTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDAwYSB9KX0sCiAgICAgICAgezB4MDEsIDIwMywgKChOVFNUQVRVUykgeyAweGMwMDAw
MTAwIH0pfSwKICAgICAgICB7MHgwMSwgMjA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAxMDYgfSl9LAogICAgICAgIHsweDAxLCAyMzAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDAwMyB9KX0sCiAgICAgICAgezB4MDEsIDIzMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMGFiIH0pfSwKICAgICAgICB7MHgwMSwgMjMyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwYjEgfSl9LAogICAgICAgIHsweDAxLCAyMzMsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDBiMCB9KX0sCiAgICAgICAgezB4MDEsIDIzNCwgKChOVFNUQVRVUykgeyAweDAx
MDUgfSl9LAogICAgICAgIHsweDAxLCAyNDAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDBkNiB9KX0sCiAgICAgICAgezB4MDEsIDI1NCwgKChOVFNUQVRVUykgeyAweDgwMDAwMDEzIH0p
fSwKICAgICAgICB7MHgwMSwgMjU1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNTAg
fSl9LAogICAgICAgIHsweDAxLCAyNTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA4
MyB9KX0sCiAgICAgICAgezB4MDEsIDI2NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MTAzIH0pfSwKICAgICAgICB7MHgwMSwgMjc1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwNTAgfSl9LAogICAgICAgIHsweDAxLCAyNzYsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDA1MSB9KX0sCiAgICAgICAgezB4MDEsIDI3NywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDUxIH0pfSwKICAgICAgICB7MHgwMSwgMjc4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwNTEgfSl9LAogICAgICAgIHsweDAxLCAyODIsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDA0ZiB9KX0sCiAgICAgICAgezB4MDEsIDI4OCwgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMDQ2IH0pfSwKICAgICAgICB7MHgwMSwgMjk4LCAoKE5UU1RBVFVTKSB7IDB4
QzAwMDAwMDAgfCAweDAwNDcgfSl9LAogICAgICAgIHsweDAxLCAyOTksICgoTlRTVEFUVVMpIHsg
MHg4MDAwMDAwZCB9KX0sCiAgICAgICAgezB4MDEsIDMwMCwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMGUyIH0pfSwKICAgICAgICB7MHgwMSwgMzAxLCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAwZTMgfSl9LAogICAgICAgIHsweDAxLCA0ODcsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDAxOCB9KX0sCiAgICAgICAgezB4MDEsIDUzNCwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMDk1IH0pfSwKICAgICAgICB7MHgwMSwgNTM1LCAoKE5UU1RBVFVTKSB7
IDB4QzAwMDAwMDAgfCAweDAwYjIgfSl9LAogICAgICAgIHsweDAxLCA1MzYsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDBiMyB9KX0sCiAgICAgICAgezB4MDEsIDk5NSwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMTIwIH0pfSwKICAgICAgICB7MHgwMSwgOTk3LCAoKE5UU1RB
VFVTKSB7IDB4MDAwMDAxMDMgfSl9LAogICAgICAgIHsweDAxLCA5OTgsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDAwNSB9KX0sCiAgICAgICAgezB4MDEsIDk5OSwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMDA2IH0pfSwKICAgICAgICB7MHgwMSwgMTAwMSwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMDA5IH0pfSwKICAgICAgICB7MHgwMSwgMTAwNSwgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTRmIH0pfSwKICAgICAgICB7MHgwMSwgMTAwNiwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDk4IH0pfSwKICAgICAgICB7MHgwMSwgMTAwNywg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTU5IH0pfSwKICAgICAgICB7MHgwMSwgMTAw
OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDdjIH0pfSwKICAgICAgICB7MHgwMSwg
MTAwOSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTRjIH0pfSwKICAgICAgICB7MHgw
MSwgMTAxNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTRkIH0pfSwKICAgICAgICB7
MHgwMSwgMTAxNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTVjIH0pfSwKICAgICAg
ICB7MHgwMSwgMTAxOCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTdjIH0pfSwKICAg
ICAgICB7MHgwMSwgMTAxOSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTdkIH0pfSwK
ICAgICAgICB7MHgwMSwgMTAyMCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTgwIH0p
fSwKICAgICAgICB7MHgwMSwgMTAyMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTgx
IH0pfSwKICAgICAgICB7MHgwMSwgMTAyMiwgKChOVFNUQVRVUykgeyAweDAwMDAwMTBjIH0pfSwK
ICAgICAgICB7MHgwMiwgMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDZhIH0pfSwK
ICAgICAgICB7MHgwMiwgMywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNiIH0pfSwK
ICAgICAgICB7MHgwMiwgNCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNhIH0pfSwK
ICAgICAgICB7MHgwMiwgNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGM5IH0pfSwK
ICAgICAgICB7MHgwMiwgNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNjIH0pfSwK
ICAgICAgICB7MHgwMiwgNywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNiIH0pfSwK
ICAgICAgICB7MHgwMiwgNDksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjNiB9KX0s
CiAgICAgICAgezB4MDIsIDUwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYzcgfSl9
LAogICAgICAgIHsweDAyLCA1MiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGM4IH0p
fSwKICAgICAgICB7MHgwMiwgNjQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAwMiB9
KX0sCiAgICAgICAgezB4MDIsIDY5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwY2Eg
fSl9LAogICAgICAgIHsweDAyLCA4MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNm
IH0pfSwKICAgICAgICB7MHgwMiwgODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBk
MCB9KX0sCiAgICAgICAgezB4MDIsIDgzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
N2YgfSl9LAogICAgICAgIHsweDAyLCA4OSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MGQwIH0pfSwKICAgICAgICB7MHgwMiwgOTAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDBjZSB9KX0sCiAgICAgICAgezB4MDIsIDEyMywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMDMzIH0pfSwKICAgICAgICB7MHgwMiwgMjA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMzMgfSl9LAogICAgICAgIHsweDAzLCAxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMDIgfSl9LAogICAgICAgIHsweDAzLCAyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMGUgfSl9LAogICAgICAgIHsweDAzLCAzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwM2EgfSl9LAogICAgICAgIHsweDAzLCA0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAxMWYgfSl9LAogICAgICAgIHsweDAzLCA1LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMWUgfSl9LAogICAgICAgIHsweDAzLCA2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMDggfSl9LAogICAgICAgIHsweDAzLCA4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwOWEgfSl9LAogICAgICAgIHsweDAzLCAxMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDFlIH0pfSwKICAgICAgICB7MHgwMywgMTMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDAzZSB9KX0sCiAgICAgICAgezB4MDMsIDE0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwODcgfSl9LAogICAgICAgIHsweDAzLCAxNiwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMTAxIH0pfSwKICAgICAgICB7MHgwMywgMTcsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDBkNCB9KX0sCiAgICAgICAgezB4MDMsIDE4LCAoKE5UU1RBVFVTKSB7IDB4ODAw
MDAwMDYgfSl9LAogICAgICAgIHsweDAzLCAxOSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMGEyIH0pfSwKICAgICAgICB7MHgwMywgMjEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDAxMyB9KX0sCiAgICAgICAgezB4MDMsIDIyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAxODQgfSl9LAogICAgICAgIHsweDAzLCAyMywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDNlIH0pfSwKICAgICAgICB7MHgwMywgMjQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDAzZSB9KX0sCiAgICAgICAgezB4MDMsIDI2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwMzIgfSl9LAogICAgICAgIHsweDAzLCAyNywgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMDE1IH0pfSwKICAgICAgICB7MHgwMywgMjgsICgoTlRTVEFUVVMpIHsgMHg4MDAw
MDAwZSB9KX0sCiAgICAgICAgezB4MDMsIDMxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwMDEgfSl9LAogICAgICAgIHsweDAzLCAzMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwg
MHgwMDQzIH0pfSwKICAgICAgICB7MHgwMywgMzMsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDA1NCB9KX0sCiAgICAgICAgezB4MDMsIDM0LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAg
fCAweDAwMTIgfSl9LAogICAgICAgIHsweDAzLCAzOCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAw
IHwgMHgwMDExIH0pfSwKICAgICAgICB7MHgwMywgNTAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDA1NyB9KX0sCiAgICAgICAgezB4MDMsIDUxLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAw
MDAgfCAweDAwYmMgfSl9LAogICAgICAgIHsweDAzLCA1MiwgKChOVFNUQVRVUykgeyAweEMwMDAw
MDAwIHwgMHgwMGJkIH0pfSwKICAgICAgICB7MHgwMywgNTMsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDBiZSB9KX0sCiAgICAgICAgezB4MDMsIDU0LCAoKE5UU1RBVFVTKSB7IDB4QzAw
MDAwMDAgfCAweDAwYmYgfSl9LAogICAgICAgIHsweDAzLCA1NSwgKChOVFNUQVRVUykgeyAweEMw
MDAwMDAwIHwgMHgwMGMwIH0pfSwKICAgICAgICB7MHgwMywgNTYsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDBjMSB9KX0sCiAgICAgICAgezB4MDMsIDU3LCAoKE5UU1RBVFVTKSB7IDB4
QzAwMDAwMDAgfCAweDAwYzIgfSl9LAogICAgICAgIHsweDAzLCA1OCwgKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMGMzIH0pfSwKICAgICAgICB7MHgwMywgNTksICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDBjNCB9KX0sCiAgICAgICAgezB4MDMsIDYwLCAoKE5UU1RBVFVTKSB7
IDB4QzAwMDAwMDAgfCAweDAwYzUgfSl9LAogICAgICAgIHsweDAzLCA2MSwgKChOVFNUQVRVUykg
eyAweEMwMDAwMDAwIHwgMHgwMGM2IH0pfSwKICAgICAgICB7MHgwMywgNjIsICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDBjNyB9KX0sCiAgICAgICAgezB4MDMsIDYzLCAoKE5UU1RBVFVT
KSB7IDB4QzAwMDAwMDAgfCAweDAwYzggfSl9LAogICAgICAgIHsweDAzLCA2NCwgKChOVFNUQVRV
UykgeyAweEMwMDAwMDAwIHwgMHgwMGM5IH0pfSwKICAgICAgICB7MHgwMywgNjUsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBjYSB9KX0sCiAgICAgICAgezB4MDMsIDY2LCAoKE5UU1RB
VFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwY2IgfSl9LAogICAgICAgIHsweDAzLCA2NywgKChOVFNU
QVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNjIH0pfSwKICAgICAgICB7MHgwMywgNjgsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA4MiB9KX0sCiAgICAgICAgezB4MDMsIDY5LCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwY2UgfSl9LAogICAgICAgIHsweDAzLCA3MCwgKChO
VFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGNmIH0pfSwKICAgICAgICB7MHgwMywgNzEsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBkMCB9KX0sCiAgICAgICAgezB4MDMsIDcyLCAo
KE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZDEgfSl9LAogICAgICAgIHsweDAzLCA4MCwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDM1IH0pfSwKICAgICAgICB7MHgwMywgODYs
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA2YSB9KX0sCiAgICAgICAgezB4MDMsIDg3
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMDMgfSl9LAogICAgICAgIHsweDAzLCA4
OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGQyIH0pfSwKICAgICAgICB7MHgwMywg
MTA5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAxNGIgfSl9LAogICAgICAgIHsweDAz
LCAxMTEsICgoTlRTVEFUVVMpIHsgMHgwMTA1IH0pfSwKICAgICAgICB7MHgwMywgMTEyLCAoKE5U
U1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2YgfSl9LAogICAgICAgIHsweDAzLCAxMjEsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBiNSB9KX0sCiAgICAgICAgezB4MDMsIDEyMiwg
KChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDIzIH0pfSwKICAgICAgICB7MHgwMywgMTIz
LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMzMgfSl9LAogICAgICAgIHsweDAzLCAx
MjQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE0OCB9KX0sCiAgICAgICAgezB4MDMs
IDEyNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTM1IH0pfSwKICAgICAgICB7MHgw
MywgMTI3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwN2EgfSl9LAogICAgICAgIHsw
eDAzLCAxNDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwMSB9KX0sCiAgICAgICAg
ezB4MDMsIDE1NCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDg2IH0pfSwKICAgICAg
ICB7MHgwMywgMTU2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNGEgfSl9LAogICAg
ICAgIHsweDAzLCAxNTgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDAyYSB9KX0sCiAg
ICAgICAgezB4MDMsIDE2MSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDM5IH0pfSwK
ICAgICAgICB7MHgwMywgMTcwLCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTEgfSl9LAogICAgICAg
IHsweDAzLCAxODIsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEzOCB9KX0sCiAgICAg
ICAgezB4MDMsIDE4MywgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDM1IH0pfSwKICAg
ICAgICB7MHgwMywgMTkzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMGEgfSl9LAog
ICAgICAgIHsweDAzLCAyMDMsICgoTlRTVEFUVVMpIHsgMHhjMDAwMDEwMCB9KX0sCiAgICAgICAg
ezB4MDMsIDIwNiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMTA2IH0pfSwKICAgICAg
ICB7MHgwMywgMjMwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMDMgfSl9LAogICAg
ICAgIHsweDAzLCAyMzEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBhYiB9KX0sCiAg
ICAgICAgezB4MDMsIDIzMiwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGIxIH0pfSwK
ICAgICAgICB7MHgwMywgMjMzLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwYjAgfSl9
LAogICAgICAgIHsweDAzLCAyMzQsICgoTlRTVEFUVVMpIHsgMHgwMTA1IH0pfSwKICAgICAgICB7
MHgwMywgMjQwLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwZDYgfSl9LAogICAgICAg
IHsweDAzLCAyNTQsICgoTlRTVEFUVVMpIHsgMHg4MDAwMDAxMyB9KX0sCiAgICAgICAgezB4MDMs
IDI1NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDUwIH0pfSwKICAgICAgICB7MHgw
MywgMjU5LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwODMgfSl9LAogICAgICAgIHsw
eDAzLCAyNjcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDEwMyB9KX0sCiAgICAgICAg
ezB4MDMsIDI3NSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDUwIH0pfSwKICAgICAg
ICB7MHgwMywgMjc2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNTEgfSl9LAogICAg
ICAgIHsweDAzLCAyNzcsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA1MSB9KX0sCiAg
ICAgICAgezB4MDMsIDI3OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDUxIH0pfSwK
ICAgICAgICB7MHgwMywgMjgyLCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwNGYgfSl9
LAogICAgICAgIHsweDAzLCAyODgsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA0NiB9
KX0sCiAgICAgICAgezB4MDMsIDI5OCwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMDQ3
IH0pfSwKICAgICAgICB7MHgwMywgMjk5LCAoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMGQgfSl9LAog
ICAgICAgIHsweDAzLCAzMDAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDBlMiB9KX0s
CiAgICAgICAgezB4MDMsIDMwMSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgwMGUzIH0p
fSwKICAgICAgICB7MHgwMywgNDg3LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAwMTgg
fSl9LAogICAgICAgIHsweDAzLCA1MzQsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDA5
NSB9KX0sCiAgICAgICAgezB4MDMsIDUzNSwgKChOVFNUQVRVUykgeyAweEMwMDAwMDAwIHwgMHgw
MGIyIH0pfSwKICAgICAgICB7MHgwMywgNTM2LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAw
eDAwYjMgfSl9LAogICAgICAgIHsweDAzLCA5OTUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDEyMCB9KX0sCiAgICAgICAgezB4MDMsIDk5NywgKChOVFNUQVRVUykgeyAweDAwMDAwMTAz
IH0pfSwKICAgICAgICB7MHgwMywgOTk4LCAoKE5UU1RBVFVTKSB7IDB4QzAwMDAwMDAgfCAweDAw
MDUgfSl9LAogICAgICAgIHsweDAzLCA5OTksICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4
MDAwNiB9KX0sCiAgICAgICAgezB4MDMsIDEwMDEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8
IDB4MDAwOSB9KX0sCiAgICAgICAgezB4MDMsIDEwMDUsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAw
MCB8IDB4MDE0ZiB9KX0sCiAgICAgICAgezB4MDMsIDEwMDYsICgoTlRTVEFUVVMpIHsgMHhDMDAw
MDAwMCB8IDB4MDA5OCB9KX0sCiAgICAgICAgezB4MDMsIDEwMDcsICgoTlRTVEFUVVMpIHsgMHhD
MDAwMDAwMCB8IDB4MDE1OSB9KX0sCiAgICAgICAgezB4MDMsIDEwMDgsICgoTlRTVEFUVVMpIHsg
MHhDMDAwMDAwMCB8IDB4MDA3YyB9KX0sCiAgICAgICAgezB4MDMsIDEwMDksICgoTlRTVEFUVVMp
IHsgMHhDMDAwMDAwMCB8IDB4MDE0YyB9KX0sCiAgICAgICAgezB4MDMsIDEwMTYsICgoTlRTVEFU
VVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE0ZCB9KX0sCiAgICAgICAgezB4MDMsIDEwMTcsICgoTlRT
VEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE1YyB9KX0sCiAgICAgICAgezB4MDMsIDEwMTgsICgo
TlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3YyB9KX0sCiAgICAgICAgezB4MDMsIDEwMTks
ICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE3ZCB9KX0sCiAgICAgICAgezB4MDMsIDEw
MjAsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4MCB9KX0sCiAgICAgICAgezB4MDMs
IDEwMjEsICgoTlRTVEFUVVMpIHsgMHhDMDAwMDAwMCB8IDB4MDE4MSB9KX0sCiAgICAgICAgezB4
MDMsIDEwMjIsICgoTlRTVEFUVVMpIHsgMHgwMDAwMDEwYyB9KX0sCn07CgoKc3RhdGljIHN0cnVj
dCB7CiAgICAgICAgTlRTVEFUVVMgbnRzdGF0dXM7CiAgICAgICAgV0VSUk9SIHdlcnJvcjsKfSBu
dHN0YXR1c190b193ZXJyb3JfbWFwW10gPSB7CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHgxMDMg
fSksICgoV0VSUk9SKSB7IDB4M2U1IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweDEwNSB9
KSwgKChXRVJST1IpIHsgMHhlYSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHgxMDYgfSks
ICgoV0VSUk9SKSB7IDB4NTE0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweDEwNyB9KSwg
KChXRVJST1IpIHsgMHg1MTUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4MTBjIH0pLCAo
KFdFUlJPUikgeyAweDNmZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHgxMGQgfSksICgo
V0VSUk9SKSB7IDB4NTE2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweDEyMSB9KSwgKChX
RVJST1IpIHsgMHgyMDA5IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDAxIH0p
LCAoKFdFUlJPUikgeyAweDFmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDAy
IH0pLCAoKFdFUlJPUikgeyAweDEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAw
MDMgfSksICgoV0VSUk9SKSB7IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAwMDQgfSksICgoV0VSUk9SKSB7IDB4MTggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAwMDUgfSksICgoV0VSUk9SKSB7IDB4M2U2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMDA2IH0pLCAoKFdFUlJPUikgeyAweDNlNyB9KX0sCiAgICAgICAgeygoTlRTVEFU
VVMpIHsgMHhjMDAwMDAwNyB9KSwgKChXRVJST1IpIHsgMHg1YWUgfSl9LAogICAgICAgIHsoKE5U
U1RBVFVTKSB7IDB4YzAwMDAwMDggfSksICgoV0VSUk9SKSB7IDB4NiB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDAwOSB9KSwgKChXRVJST1IpIHsgMHgzZTkgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMGEgfSksICgoV0VSUk9SKSB7IDB4YzEgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMGIgfSksICgoV0VSUk9SKSB7IDB4NTcgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMGQgfSksICgoV0VSUk9SKSB7IDB4NTcgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMGUgfSksICgoV0VSUk9SKSB7IDB4MiB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAwZiB9KSwgKChXRVJST1IpIHsgMHgy
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDEwIH0pLCAoKFdFUlJPUikgeyAw
eDEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMTEgfSksICgoV0VSUk9SKSB7
IDB4MjYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMTIgfSksICgoV0VSUk9S
KSB7IDB4MjIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMTMgfSksICgoV0VS
Uk9SKSB7IDB4MTUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMTQgfSksICgo
V0VSUk9SKSB7IDB4NmY5IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDE1IH0p
LCAoKFdFUlJPUikgeyAweDFiIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDE2
IH0pLCAoKFdFUlJPUikgeyAweGVhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDE3IH0pLCAoKFdFUlJPUikgeyAweDggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAwMTggfSksICgoV0VSUk9SKSB7IDB4MWU3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMDE5IH0pLCAoKFdFUlJPUikgeyAweDFlNyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDAxYSB9KSwgKChXRVJST1IpIHsgMHg1NyB9KX0sCiAgICAgICAgeygoTlRTVEFU
VVMpIHsgMHhjMDAwMDAxYiB9KSwgKChXRVJST1IpIHsgMHg1NyB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDAxYyB9KSwgKChXRVJST1IpIHsgMHgxIH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMDFkIH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDFkIH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDFlIH0pLCAoKFdFUlJPUikgeyAweDUgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMWYgfSksICgoV0VSUk9SKSB7IDB4NSB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAyMCB9KSwgKChXRVJST1IpIHsgMHhjMSB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAyMSB9KSwgKChXRVJST1IpIHsgMHg1
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDIyIH0pLCAoKFdFUlJPUikgeyAw
eDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMjMgfSksICgoV0VSUk9SKSB7
IDB4N2EgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMjQgfSksICgoV0VSUk9S
KSB7IDB4NiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAyNSB9KSwgKChXRVJS
T1IpIHsgMHhjMDAwMDAyNSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAyNiB9
KSwgKChXRVJST1IpIHsgMHhjMDAwMDAyNiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDAyYSB9KSwgKChXRVJST1IpIHsgMHg5ZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsg
MHhjMDAwMDAyYiB9KSwgKChXRVJST1IpIHsgMHhjMDAwMDAyYiB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDAyYyB9KSwgKChXRVJST1IpIHsgMHgxZTcgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAwMmQgfSksICgoV0VSUk9SKSB7IDB4MWU3IH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDMwIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDMyIH0pLCAoKFdFUlJPUikgeyAweDU3MSB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAzMyB9KSwgKChXRVJST1IpIHsgMHg3YiB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAzNCB9KSwgKChXRVJST1IpIHsgMHgy
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDM1IH0pLCAoKFdFUlJPUikgeyAw
eGI3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDM3IH0pLCAoKFdFUlJPUikg
eyAweDYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwMzkgfSksICgoV0VSUk9S
KSB7IDB4YTEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwM2EgfSksICgoV0VS
Uk9SKSB7IDB4MyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAzYiB9KSwgKChX
RVJST1IpIHsgMHhhMSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDAzYyB9KSwg
KChXRVJST1IpIHsgMHg0NWQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwM2Qg
fSksICgoV0VSUk9SKSB7IDB4NDVkIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDNlIH0pLCAoKFdFUlJPUikgeyAweDE3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMDNmIH0pLCAoKFdFUlJPUikgeyAweDE3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMDQwIH0pLCAoKFdFUlJPUikgeyAweDggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwNDEgfSksICgoV0VSUk9SKSB7IDB4NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDA0MiB9KSwgKChXRVJST1IpIHsgMHg2IH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMDQzIH0pLCAoKFdFUlJPUikgeyAweDIwIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMDQ0IH0pLCAoKFdFUlJPUikgeyAweDcxOCB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDA0NSB9KSwgKChXRVJST1IpIHsgMHg1NyB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDA0NiB9KSwgKChXRVJST1IpIHsgMHgxMjAgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNDcgfSksICgoV0VSUk9SKSB7IDB4MTJhIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDQ4IH0pLCAoKFdFUlJPUikgeyAweDU3IH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDQ5IH0pLCAoKFdFUlJPUikgeyAweDU3
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDRhIH0pLCAoKFdFUlJPUikgeyAw
eDljIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDRiIH0pLCAoKFdFUlJPUikg
eyAweDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNGMgfSksICgoV0VSUk9S
KSB7IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNGQgfSksICgoV0VS
Uk9SKSB7IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNGUgfSksICgo
V0VSUk9SKSB7IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNGYgfSks
ICgoV0VSUk9SKSB7IDB4MTFhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDUw
IH0pLCAoKFdFUlJPUikgeyAweGZmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDUxIH0pLCAoKFdFUlJPUikgeyAweDU3MCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDA1MiB9KSwgKChXRVJST1IpIHsgMHg1NzAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwNTMgfSksICgoV0VSUk9SKSB7IDB4NTcwIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMDU0IH0pLCAoKFdFUlJPUikgeyAweDIxIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMDU1IH0pLCAoKFdFUlJPUikgeyAweDIxIH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMDU2IH0pLCAoKFdFUlJPUikgeyAweDUgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAwNTcgfSksICgoV0VSUk9SKSB7IDB4MzIgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNTggfSksICgoV0VSUk9SKSB7IDB4NTE5IH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDU5IH0pLCAoKFdFUlJPUikgeyAweDUxYSB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA1YSB9KSwgKChXRVJST1IpIHsgMHg1MWIg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNWIgfSksICgoV0VSUk9SKSB7IDB4
NTFjIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDVjIH0pLCAoKFdFUlJPUikg
eyAweDUxZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA1ZCB9KSwgKChXRVJS
T1IpIHsgMHg1MWUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNWUgfSksICgo
V0VSUk9SKSB7IDB4NTFmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDVmIH0p
LCAoKFdFUlJPUikgeyAweDUyMCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA2
MCB9KSwgKChXRVJST1IpIHsgMHg1MjEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAwNjEgfSksICgoV0VSUk9SKSB7IDB4NTIyIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMDYyIH0pLCAoKFdFUlJPUikgeyAweDUyMyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDA2MyB9KSwgKChXRVJST1IpIHsgMHg1MjQgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAwNjQgfSksICgoV0VSUk9SKSB7IDB4NTI1IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMDY1IH0pLCAoKFdFUlJPUikgeyAweDUyNiB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDA2NiB9KSwgKChXRVJST1IpIHsgMHg1MjcgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNjcgfSksICgoV0VSUk9SKSB7IDB4NTI4IH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDY4IH0pLCAoKFdFUlJPUikgeyAweDUyOSB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA2OSB9KSwgKChXRVJST1IpIHsgMHg1
MmEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNmEgfSksICgoV0VSUk9SKSB7
IDB4NTYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNmIgfSksICgoV0VSUk9S
KSB7IDB4NTJjIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDZjIH0pLCAoKFdF
UlJPUikgeyAweDUyZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA2ZCB9KSwg
KChXRVJST1IpIHsgMHg1MmUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNmUg
fSksICgoV0VSUk9SKSB7IDB4NTJmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDZmIH0pLCAoKFdFUlJPUikgeyAweDUzMCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDA3MCB9KSwgKChXRVJST1IpIHsgMHg1MzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwNzEgfSksICgoV0VSUk9SKSB7IDB4NTMyIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMDcyIH0pLCAoKFdFUlJPUikgeyAweDUzMyB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDA3MyB9KSwgKChXRVJST1IpIHsgMHg1MzQgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAwNzQgfSksICgoV0VSUk9SKSB7IDB4NTM1IH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDc1IH0pLCAoKFdFUlJPUikgeyAweDUzNiB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA3NiB9KSwgKChXRVJST1IpIHsgMHg1MzcgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwNzcgfSksICgoV0VSUk9SKSB7IDB4NTM4
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDc4IH0pLCAoKFdFUlJPUikgeyAw
eDUzOSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA3OSB9KSwgKChXRVJST1Ip
IHsgMHg1M2EgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwN2EgfSksICgoV0VS
Uk9SKSB7IDB4N2YgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwN2IgfSksICgo
V0VSUk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwN2MgfSks
ICgoV0VSUk9SKSB7IDB4M2YwIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDdk
IH0pLCAoKFdFUlJPUikgeyAweDUzYyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDA3ZSB9KSwgKChXRVJST1IpIHsgMHg5ZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDA3ZiB9KSwgKChXRVJST1IpIHsgMHg3MCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsg
MHhjMDAwMDA4MCB9KSwgKChXRVJST1IpIHsgMHg1M2QgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAwODEgfSksICgoV0VSUk9SKSB7IDB4NTNlIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMDgyIH0pLCAoKFdFUlJPUikgeyAweDQ0IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMDgzIH0pLCAoKFdFUlJPUikgeyAweDEwMyB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDA4NCB9KSwgKChXRVJST1IpIHsgMHg1M2YgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwODUgfSksICgoV0VSUk9SKSB7IDB4MTAzIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDg2IH0pLCAoKFdFUlJPUikgeyAweDlhIH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDg3IH0pLCAoKFdFUlJPUikgeyAweGUg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwODggfSksICgoV0VSUk9SKSB7IDB4
MWU3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDg5IH0pLCAoKFdFUlJPUikg
eyAweDcxNCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA4YSB9KSwgKChXRVJS
T1IpIHsgMHg3MTUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwOGIgfSksICgo
V0VSUk9SKSB7IDB4NzE2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDhjIH0p
LCAoKFdFUlJPUikgeyAweGMwMDAwMDhjIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMDhkIH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDhkIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMDhlIH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDhlIH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMDhmIH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDhmIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDkwIH0pLCAoKFdFUlJPUikgeyAweGMwMDAw
MDkwIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDkxIH0pLCAoKFdFUlJPUikg
eyAweGMwMDAwMDkxIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDkyIH0pLCAo
KFdFUlJPUikgeyAweGMwMDAwMDkyIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDkzIH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDkzIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMDk0IH0pLCAoKFdFUlJPUikgeyAweGMwMDAwMDk0IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMDk1IH0pLCAoKFdFUlJPUikgeyAweDIxNiB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDA5NiB9KSwgKChXRVJST1IpIHsgMHhjMDAwMDA5NiB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA5NyB9KSwgKChXRVJST1IpIHsgMHg4IH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDk4IH0pLCAoKFdFUlJPUikgeyAweDNl
ZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDA5OSB9KSwgKChXRVJST1IpIHsg
MHg1NDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwOWEgfSksICgoV0VSUk9S
KSB7IDB4NWFhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDliIH0pLCAoKFdF
UlJPUikgeyAweDMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwOWMgfSksICgo
V0VSUk9SKSB7IDB4MTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwOWQgfSks
ICgoV0VSUk9SKSB7IDB4NDhmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMDll
IH0pLCAoKFdFUlJPUikgeyAweDE1IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MDlmIH0pLCAoKFdFUlJPUikgeyAweDFlNyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDBhMCB9KSwgKChXRVJST1IpIHsgMHgxZTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwYTEgfSksICgoV0VSUk9SKSB7IDB4NWFkIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMGEyIH0pLCAoKFdFUlJPUikgeyAweDEzIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMGEzIH0pLCAoKFdFUlJPUikgeyAweDE1IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMGE0IH0pLCAoKFdFUlJPUikgeyAweDU0MSB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDBhNSB9KSwgKChXRVJST1IpIHsgMHg1NDIgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYTYgfSksICgoV0VSUk9SKSB7IDB4NTQzIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGE3IH0pLCAoKFdFUlJPUikgeyAweDU0NCB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBhOCB9KSwgKChXRVJST1IpIHsgMHg1
NDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYTkgfSksICgoV0VSUk9SKSB7
IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYWIgfSksICgoV0VSUk9S
KSB7IDB4ZTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYWMgfSksICgoV0VS
Uk9SKSB7IDB4ZTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYWQgfSksICgo
V0VSUk9SKSB7IDB4ZTYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYWUgfSks
ICgoV0VSUk9SKSB7IDB4ZTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYWYg
fSksICgoV0VSUk9SKSB7IDB4MSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBi
MCB9KSwgKChXRVJST1IpIHsgMHhlOSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDBiMSB9KSwgKChXRVJST1IpIHsgMHhlOCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDBiMiB9KSwgKChXRVJST1IpIHsgMHgyMTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwYjMgfSksICgoV0VSUk9SKSB7IDB4MjE4IH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMGI0IH0pLCAoKFdFUlJPUikgeyAweGU2IH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMGI1IH0pLCAoKFdFUlJPUikgeyAweDc5IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMGI2IH0pLCAoKFdFUlJPUikgeyAweDI2IH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMGJhIH0pLCAoKFdFUlJPUikgeyAweDUgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYmIgfSksICgoV0VSUk9SKSB7IDB4MzIgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYmMgfSksICgoV0VSUk9SKSB7IDB4MzMgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYmQgfSksICgoV0VSUk9SKSB7IDB4MzQgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYmUgfSksICgoV0VSUk9SKSB7IDB4MzUg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYmYgfSksICgoV0VSUk9SKSB7IDB4
MzYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzAgfSksICgoV0VSUk9SKSB7
IDB4MzcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzEgfSksICgoV0VSUk9S
KSB7IDB4MzggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzIgfSksICgoV0VS
Uk9SKSB7IDB4MzkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzMgfSksICgo
V0VSUk9SKSB7IDB4M2EgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzQgfSks
ICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwYzUg
fSksICgoV0VSUk9SKSB7IDB4M2MgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAw
YzYgfSksICgoV0VSUk9SKSB7IDB4M2QgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAwYzcgfSksICgoV0VSUk9SKSB7IDB4M2UgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAwYzggfSksICgoV0VSUk9SKSB7IDB4M2YgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwYzkgfSksICgoV0VSUk9SKSB7IDB4NDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAwY2EgfSksICgoV0VSUk9SKSB7IDB4NDEgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAwY2IgfSksICgoV0VSUk9SKSB7IDB4NDIgfSl9LAogICAgICAgIHsoKE5U
U1RBVFVTKSB7IDB4YzAwMDAwY2MgfSksICgoV0VSUk9SKSB7IDB4NDMgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAwY2QgfSksICgoV0VSUk9SKSB7IDB4NDQgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwY2UgfSksICgoV0VSUk9SKSB7IDB4NDUgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwY2YgfSksICgoV0VSUk9SKSB7IDB4NDYgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDAgfSksICgoV0VSUk9SKSB7IDB4NDcgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDEgfSksICgoV0VSUk9SKSB7IDB4NDgg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDIgfSksICgoV0VSUk9SKSB7IDB4
NTggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDQgfSksICgoV0VSUk9SKSB7
IDB4MTEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDUgfSksICgoV0VSUk9S
KSB7IDB4NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBkNiB9KSwgKChXRVJS
T1IpIHsgMHhmMCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBkNyB9KSwgKChX
RVJST1IpIHsgMHg1NDYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZDkgfSks
ICgoV0VSUk9SKSB7IDB4ZTggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZGEg
fSksICgoV0VSUk9SKSB7IDB4NTQ3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MGRjIH0pLCAoKFdFUlJPUikgeyAweDU0OCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDBkZCB9KSwgKChXRVJST1IpIHsgMHg1NDkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAwZGUgfSksICgoV0VSUk9SKSB7IDB4NTRhIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMGRmIH0pLCAoKFdFUlJPUikgeyAweDU0YiB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDBlMCB9KSwgKChXRVJST1IpIHsgMHg1NGMgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAwZTEgfSksICgoV0VSUk9SKSB7IDB4NTRkIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGUyIH0pLCAoKFdFUlJPUikgeyAweDEyYyB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBlMyB9KSwgKChXRVJST1IpIHsgMHgxMmQgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZTQgfSksICgoV0VSUk9SKSB7IDB4NTRl
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGU1IH0pLCAoKFdFUlJPUikgeyAw
eDU0ZiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBlNiB9KSwgKChXRVJST1Ip
IHsgMHg1NTAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZTcgfSksICgoV0VS
Uk9SKSB7IDB4NTUxIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGU4IH0pLCAo
KFdFUlJPUikgeyAweDZmOCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDBlZCB9
KSwgKChXRVJST1IpIHsgMHg1NTIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAw
ZWUgfSksICgoV0VSUk9SKSB7IDB4NTUzIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMGVmIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMGYwIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMGYxIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMGYyIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMGYzIH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMGY0IH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMGY1IH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGY2IH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGY3IH0pLCAoKFdFUlJPUikgeyAweDU3IH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGY4IH0pLCAoKFdFUlJPUikgeyAweDU3IH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGY5IH0pLCAoKFdFUlJPUikgeyAweDU3
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGZhIH0pLCAoKFdFUlJPUikgeyAw
eDU3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGZiIH0pLCAoKFdFUlJPUikg
eyAweDMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAwZmQgfSksICgoV0VSUk9S
KSB7IDB4M2U5IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMGZlIH0pLCAoKFdF
UlJPUikgeyAweDU1NCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEwMCB9KSwg
KChXRVJST1IpIHsgMHhjYiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEwMSB9
KSwgKChXRVJST1IpIHsgMHg5MSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEw
MiB9KSwgKChXRVJST1IpIHsgMHg1NzAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAxMDMgfSksICgoV0VSUk9SKSB7IDB4MTBiIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMTA0IH0pLCAoKFdFUlJPUikgeyAweDU1NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDEwNSB9KSwgKChXRVJST1IpIHsgMHg1NTYgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAxMDYgfSksICgoV0VSUk9SKSB7IDB4Y2UgfSl9LAogICAgICAgIHsoKE5U
U1RBVFVTKSB7IDB4YzAwMDAxMDcgfSksICgoV0VSUk9SKSB7IDB4OTYxIH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMTA4IH0pLCAoKFdFUlJPUikgeyAweDk2NCB9KX0sCiAgICAg
ICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEwYSB9KSwgKChXRVJST1IpIHsgMHg1IH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTBiIH0pLCAoKFdFUlJPUikgeyAweDU1NyB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEwZCB9KSwgKChXRVJST1IpIHsgMHg1NTgg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMGUgfSksICgoV0VSUk9SKSB7IDB4
NDIwIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTE3IH0pLCAoKFdFUlJPUikg
eyAweDVhNCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDExYiB9KSwgKChXRVJS
T1IpIHsgMHhjMSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDExYyB9KSwgKChX
RVJST1IpIHsgMHg1NTkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMWQgfSks
ICgoV0VSUk9SKSB7IDB4NTVhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTFl
IH0pLCAoKFdFUlJPUikgeyAweDNlZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDExZiB9KSwgKChXRVJST1IpIHsgMHg0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMTIwIH0pLCAoKFdFUlJPUikgeyAweDNlMyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsg
MHhjMDAwMDEyMSB9KSwgKChXRVJST1IpIHsgMHg1IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMTIyIH0pLCAoKFdFUlJPUikgeyAweDRiYSB9KX0sCiAgICAgICAgeygoTlRTVEFU
VVMpIHsgMHhjMDAwMDEyMyB9KSwgKChXRVJST1IpIHsgMHg1IH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMTI0IH0pLCAoKFdFUlJPUikgeyAweDU1YiB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDEyNSB9KSwgKChXRVJST1IpIHsgMHg1NWMgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMjYgfSksICgoV0VSUk9SKSB7IDB4NTVkIH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTI3IH0pLCAoKFdFUlJPUikgeyAweDU1ZSB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEyOCB9KSwgKChXRVJST1IpIHsgMHg2IH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTJiIH0pLCAoKFdFUlJPUikgeyAweDU1
ZiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDEyZCB9KSwgKChXRVJST1IpIHsg
MHg1YWYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMmUgfSksICgoV0VSUk9S
KSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMmYgfSksICgoV0VS
Uk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMzAgfSksICgo
V0VSUk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMzEgfSks
ICgoV0VSUk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxMzMg
fSksICgoV0VSUk9SKSB7IDB4NTc2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MTM1IH0pLCAoKFdFUlJPUikgeyAweDdlIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMTM4IH0pLCAoKFdFUlJPUikgeyAweGI2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMTM5IH0pLCAoKFdFUlJPUikgeyAweDdmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMTNiIH0pLCAoKFdFUlJPUikgeyAweDQwIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMTNjIH0pLCAoKFdFUlJPUikgeyAweDQwIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMTNkIH0pLCAoKFdFUlJPUikgeyAweDMzIH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMTNlIH0pLCAoKFdFUlJPUikgeyAweDNiIH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMTNmIH0pLCAoKFdFUlJPUikgeyAweDNiIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTQwIH0pLCAoKFdFUlJPUikgeyAweDNiIH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTQxIH0pLCAoKFdFUlJPUikgeyAweDNiIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTQyIH0pLCAoKFdFUlJPUikgeyAweDQ1YSB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE0OCB9KSwgKChXRVJST1IpIHsgMHg3
YyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE0OSB9KSwgKChXRVJST1IpIHsg
MHg1NiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE0YiB9KSwgKChXRVJST1Ip
IHsgMHg2ZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE0YyB9KSwgKChXRVJS
T1IpIHsgMHgzZjEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNGQgfSksICgo
V0VSUk9SKSB7IDB4M2Y4IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTRmIH0p
LCAoKFdFUlJPUikgeyAweDNlZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE1
MCB9KSwgKChXRVJST1IpIHsgMHg0NWUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAxNTEgfSksICgoV0VSUk9SKSB7IDB4NTYwIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMTUyIH0pLCAoKFdFUlJPUikgeyAweDU2MSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDE1MyB9KSwgKChXRVJST1IpIHsgMHg1NjIgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAxNTQgfSksICgoV0VSUk9SKSB7IDB4NTYzIH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMTU1IH0pLCAoKFdFUlJPUikgeyAweDU2NCB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDE1NiB9KSwgKChXRVJST1IpIHsgMHg1NjUgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNTcgfSksICgoV0VSUk9SKSB7IDB4NTY2IH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTU4IH0pLCAoKFdFUlJPUikgeyAweDU2NyB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE1OSB9KSwgKChXRVJST1IpIHsgMHgz
ZWYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNWEgfSksICgoV0VSUk9SKSB7
IDB4NTY4IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTViIH0pLCAoKFdFUlJP
UikgeyAweDU2OSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE1YyB9KSwgKChX
RVJST1IpIHsgMHgzZjkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNWQgfSks
ICgoV0VSUk9SKSB7IDB4NTZhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTVm
IH0pLCAoKFdFUlJPUikgeyAweDQ1ZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDE2MiB9KSwgKChXRVJST1IpIHsgMHg0NTkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAxNjUgfSksICgoV0VSUk9SKSB7IDB4NDYyIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMTY2IH0pLCAoKFdFUlJPUikgeyAweDQ2MyB9KX0sCiAgICAgICAgeygoTlRTVEFU
VVMpIHsgMHhjMDAwMDE2NyB9KSwgKChXRVJST1IpIHsgMHg0NjQgfSl9LAogICAgICAgIHsoKE5U
U1RBVFVTKSB7IDB4YzAwMDAxNjggfSksICgoV0VSUk9SKSB7IDB4NDY1IH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMTY5IH0pLCAoKFdFUlJPUikgeyAweDQ2NiB9KX0sCiAgICAg
ICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE2YSB9KSwgKChXRVJST1IpIHsgMHg0NjcgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNmIgfSksICgoV0VSUk9SKSB7IDB4NDY4IH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTZjIH0pLCAoKFdFUlJPUikgeyAweDQ1
ZiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE2ZCB9KSwgKChXRVJST1IpIHsg
MHg0NWQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNzIgfSksICgoV0VSUk9S
KSB7IDB4NDUxIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTczIH0pLCAoKFdF
UlJPUikgeyAweDQ1MiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE3NCB9KSwg
KChXRVJST1IpIHsgMHg0NTMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxNzUg
fSksICgoV0VSUk9SKSB7IDB4NDU0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MTc2IH0pLCAoKFdFUlJPUikgeyAweDQ1NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDE3NyB9KSwgKChXRVJST1IpIHsgMHg0NjkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAxNzggfSksICgoV0VSUk9SKSB7IDB4NDU4IH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMTdhIH0pLCAoKFdFUlJPUikgeyAweDU2YiB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDE3YiB9KSwgKChXRVJST1IpIHsgMHg1NmMgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAxN2MgfSksICgoV0VSUk9SKSB7IDB4M2ZhIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTdkIH0pLCAoKFdFUlJPUikgeyAweDNmYiB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE3ZSB9KSwgKChXRVJST1IpIHsgMHg1NmQgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxN2YgfSksICgoV0VSUk9SKSB7IDB4NTZl
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTgwIH0pLCAoKFdFUlJPUikgeyAw
eDNmYyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE4MSB9KSwgKChXRVJST1Ip
IHsgMHgzZmQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxODIgfSksICgoV0VS
Uk9SKSB7IDB4NTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxODMgfSksICgo
V0VSUk9SKSB7IDB4NDVkIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTg0IH0p
LCAoKFdFUlJPUikgeyAweDE2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTg1
IH0pLCAoKFdFUlJPUikgeyAweDQ1ZCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDE4NiB9KSwgKChXRVJST1IpIHsgMHg0NWQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAxODggfSksICgoV0VSUk9SKSB7IDB4NWRlIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMTg5IH0pLCAoKFdFUlJPUikgeyAweDEzIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMThhIH0pLCAoKFdFUlJPUikgeyAweDZmYSB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDE4YiB9KSwgKChXRVJST1IpIHsgMHg2ZmIgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAxOGMgfSksICgoV0VSUk9SKSB7IDB4NmZjIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMThkIH0pLCAoKFdFUlJPUikgeyAweDZmZCB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE4ZSB9KSwgKChXRVJST1IpIHsgMHg1ZGMgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxOGYgfSksICgoV0VSUk9SKSB7IDB4NWRk
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTkwIH0pLCAoKFdFUlJPUikgeyAw
eDZmZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE5MiB9KSwgKChXRVJST1Ip
IHsgMHg3MDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAxOTMgfSksICgoV0VS
Uk9SKSB7IDB4NzAxIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMTk0IH0pLCAo
KFdFUlJPUikgeyAweDQ2YiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDE5NSB9
KSwgKChXRVJST1IpIHsgMHg0YzMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAx
OTYgfSksICgoV0VSUk9SKSB7IDB4NGM0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMTk3IH0pLCAoKFdFUlJPUikgeyAweDVkZiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsg
MHhjMDAwMDE5OCB9KSwgKChXRVJST1IpIHsgMHg3MGYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAxOTkgfSksICgoV0VSUk9SKSB7IDB4NzEwIH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMTlhIH0pLCAoKFdFUlJPUikgeyAweDcxMSB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDE5YiB9KSwgKChXRVJST1IpIHsgMHg3MTIgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMDIgfSksICgoV0VSUk9SKSB7IDB4NTcyIH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjAzIH0pLCAoKFdFUlJPUikgeyAweDNiIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjA0IH0pLCAoKFdFUlJPUikgeyAweDcxNyB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIwNSB9KSwgKChXRVJST1IpIHsgMHg0
NmEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMDYgfSksICgoV0VSUk9SKSB7
IDB4NmY4IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjA3IH0pLCAoKFdFUlJP
UikgeyAweDRiZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIwOCB9KSwgKChX
RVJST1IpIHsgMHg0YmUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMDkgfSks
ICgoV0VSUk9SKSB7IDB4NDQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMGEg
fSksICgoV0VSUk9SKSB7IDB4MzQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAy
MGIgfSksICgoV0VSUk9SKSB7IDB4NDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAyMGMgfSksICgoV0VSUk9SKSB7IDB4NDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAyMGQgfSksICgoV0VSUk9SKSB7IDB4NDAgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAyMGUgfSksICgoV0VSUk9SKSB7IDB4NDQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyMGYgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyMTAgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAgICAgIHsoKE5U
U1RBVFVTKSB7IDB4YzAwMDAyMTEgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAyMTIgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMTMgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMTQgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMTUgfSksICgoV0VSUk9SKSB7IDB4M2IgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMTYgfSksICgoV0VSUk9SKSB7IDB4MzIg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMTcgfSksICgoV0VSUk9SKSB7IDB4
MzIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMWMgfSksICgoV0VSUk9SKSB7
IDB4MTdlNiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIyMCB9KSwgKChXRVJS
T1IpIHsgMHg0NmMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMjEgfSksICgo
V0VSUk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMjQgfSks
ICgoV0VSUk9SKSB7IDB4NzczIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjI1
IH0pLCAoKFdFUlJPUikgeyAweDQ5MCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDIyYSB9KSwgKChXRVJST1IpIHsgMHhjMDAwMDIyYSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDIyYiB9KSwgKChXRVJST1IpIHsgMHhjMDAwMDIyYiB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDIyZCB9KSwgKChXRVJST1IpIHsgMHg0ZDUgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMzAgfSksICgoV0VSUk9SKSB7IDB4NDkyIH0pfSwKICAg
ICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjMzIH0pLCAoKFdFUlJPUikgeyAweDc3NCB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIzNCB9KSwgKChXRVJST1IpIHsgMHg3NzUg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMzUgfSksICgoV0VSUk9SKSB7IDB4
NiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIzNiB9KSwgKChXRVJST1IpIHsg
MHg0YzkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyMzcgfSksICgoV0VSUk9S
KSB7IDB4NGNhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjM4IH0pLCAoKFdF
UlJPUikgeyAweDRjYiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDIzOSB9KSwg
KChXRVJST1IpIHsgMHg0Y2MgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyM2Eg
fSksICgoV0VSUk9SKSB7IDB4NGNkIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MjNiIH0pLCAoKFdFUlJPUikgeyAweDRjZSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDIzYyB9KSwgKChXRVJST1IpIHsgMHg0Y2YgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAyM2QgfSksICgoV0VSUk9SKSB7IDB4NGQwIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMjNlIH0pLCAoKFdFUlJPUikgeyAweDRkMSB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDIzZiB9KSwgKChXRVJST1IpIHsgMHg0ZDIgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAyNDAgfSksICgoV0VSUk9SKSB7IDB4NGQzIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjQxIH0pLCAoKFdFUlJPUikgeyAweDRkNCB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI0MyB9KSwgKChXRVJST1IpIHsgMHg0YzggfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNDYgfSksICgoV0VSUk9SKSB7IDB4NGQ2
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjQ3IH0pLCAoKFdFUlJPUikgeyAw
eDRkNyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI0OCB9KSwgKChXRVJST1Ip
IHsgMHg0ZDggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNDkgfSksICgoV0VS
Uk9SKSB7IDB4YzEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNTMgfSksICgo
V0VSUk9SKSB7IDB4NTRmIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjU3IH0p
LCAoKFdFUlJPUikgeyAweDRkMCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI1
OSB9KSwgKChXRVJST1IpIHsgMHg1NzMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAw
MDAyNWUgfSksICgoV0VSUk9SKSB7IDB4NDIyIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMjYyIH0pLCAoKFdFUlJPUikgeyAweGI2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMjYzIH0pLCAoKFdFUlJPUikgeyAweDdmIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweGMwMDAwMjY0IH0pLCAoKFdFUlJPUikgeyAweDEyMCB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDI2NSB9KSwgKChXRVJST1IpIHsgMHg0NzYgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAyNjcgfSksICgoV0VSUk9SKSB7IDB4MTBmZSB9KX0sCiAgICAg
ICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI2YyB9KSwgKChXRVJST1IpIHsgMHg3ZDEgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNmQgfSksICgoV0VSUk9SKSB7IDB4NGIxIH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjZlIH0pLCAoKFdFUlJPUikgeyAweDE1
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjcyIH0pLCAoKFdFUlJPUikgeyAw
eDQ5MSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI3NSB9KSwgKChXRVJST1Ip
IHsgMHgxMTI2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjc2IH0pLCAoKFdF
UlJPUikgeyAweDExMjkgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyNzcgfSks
ICgoV0VSUk9SKSB7IDB4MTEyYSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI3
OCB9KSwgKChXRVJST1IpIHsgMHgxMTI4IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMjc5IH0pLCAoKFdFUlJPUikgeyAweDc4MCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsg
MHhjMDAwMDI4MCB9KSwgKChXRVJST1IpIHsgMHg3ODEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyODEgfSksICgoV0VSUk9SKSB7IDB4YTEgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyODMgfSksICgoV0VSUk9SKSB7IDB4NDg4IH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMjg0IH0pLCAoKFdFUlJPUikgeyAweDQ4OSB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHhjMDAwMDI4NSB9KSwgKChXRVJST1IpIHsgMHg0OGEgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyODYgfSksICgoV0VSUk9SKSB7IDB4NDhiIH0pfSwK
ICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjg3IH0pLCAoKFdFUlJPUikgeyAweDQ4YyB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI4YSB9KSwgKChXRVJST1IpIHsgMHg1
IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjhiIH0pLCAoKFdFUlJPUikgeyAw
eDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOGQgfSksICgoV0VSUk9SKSB7
IDB4NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI4ZSB9KSwgKChXRVJST1Ip
IHsgMHg1IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjhmIH0pLCAoKFdFUlJP
UikgeyAweDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOTAgfSksICgoV0VS
Uk9SKSB7IDB4NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI5MSB9KSwgKChX
RVJST1IpIHsgMHgxNzc3IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjkyIH0p
LCAoKFdFUlJPUikgeyAweDE3NzggfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAy
OTMgfSksICgoV0VSUk9SKSB7IDB4MTc3MiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDI5NSB9KSwgKChXRVJST1IpIHsgMHgxMDY4IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMjk2IH0pLCAoKFdFUlJPUikgeyAweDEwNjkgfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyOTcgfSksICgoV0VSUk9SKSB7IDB4MTA2YSB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDI5OCB9KSwgKChXRVJST1IpIHsgMHgxMDZiIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjk5IH0pLCAoKFdFUlJPUikgeyAweDIwMWEgfSl9LAog
ICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOWEgfSksICgoV0VSUk9SKSB7IDB4MjAxYiB9
KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI5YiB9KSwgKChXRVJST1IpIHsgMHgy
MDFjIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjljIH0pLCAoKFdFUlJPUikg
eyAweDEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyOWQgfSksICgoV0VSUk9S
KSB7IDB4MTBmZiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDI5ZSB9KSwgKChX
RVJST1IpIHsgMHgxMTAwIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMjlmIH0p
LCAoKFdFUlJPUikgeyAweDQ5NCB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJh
MSB9KSwgKChXRVJST1IpIHsgMHgyMDBhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMw
MDAwMmEyIH0pLCAoKFdFUlJPUikgeyAweDIwMGIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4YzAwMDAyYTMgfSksICgoV0VSUk9SKSB7IDB4MjAwYyB9KX0sCiAgICAgICAgeygoTlRTVEFU
VVMpIHsgMHhjMDAwMDJhNCB9KSwgKChXRVJST1IpIHsgMHgyMDBkIH0pfSwKICAgICAgICB7KChO
VFNUQVRVUykgeyAweGMwMDAwMmE1IH0pLCAoKFdFUlJPUikgeyAweDIwMGUgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyYTYgfSksICgoV0VSUk9SKSB7IDB4MjAwZiB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJhNyB9KSwgKChXRVJST1IpIHsgMHgyMDEwIH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmE4IH0pLCAoKFdFUlJPUikgeyAweDIw
MTEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyYTkgfSksICgoV0VSUk9SKSB7
IDB4MjAxMiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJhYSB9KSwgKChXRVJS
T1IpIHsgMHgyMDEzIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmFiIH0pLCAo
KFdFUlJPUikgeyAweDIwMTQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyYWMg
fSksICgoV0VSUk9SKSB7IDB4MjAxNSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDJhZCB9KSwgKChXRVJST1IpIHsgMHgyMDE2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMmFlIH0pLCAoKFdFUlJPUikgeyAweDIwMTcgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyYWYgfSksICgoV0VSUk9SKSB7IDB4MjAxOCB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDJiMCB9KSwgKChXRVJST1IpIHsgMHgyMDE5IH0pfSwKICAgICAgICB7
KChOVFNUQVRVUykgeyAweGMwMDAwMmIxIH0pLCAoKFdFUlJPUikgeyAweDIxMWUgfSl9LAogICAg
ICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyYjIgfSksICgoV0VSUk9SKSB7IDB4MTEyNyB9KX0s
CiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJiNiB9KSwgKChXRVJST1IpIHsgMHg2NTEg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyYjcgfSksICgoV0VSUk9SKSB7IDB4
NDlhIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmI4IH0pLCAoKFdFUlJPUikg
eyAweDQ5YiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJjMSB9KSwgKChXRVJS
T1IpIHsgMHgyMDI0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmMzIH0pLCAo
KFdFUlJPUikgeyAweDU3NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJjNSB9
KSwgKChXRVJST1IpIHsgMHgzZTYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAy
YzYgfSksICgoV0VSUk9SKSB7IDB4MTA3NSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhj
MDAwMDJjNyB9KSwgKChXRVJST1IpIHsgMHgxMDc2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykg
eyAweGMwMDAwMmNhIH0pLCAoKFdFUlJPUikgeyAweDEwZTggfSl9LAogICAgICAgIHsoKE5UU1RB
VFVTKSB7IDB4YzAwMDAyY2IgfSksICgoV0VSUk9SKSB7IDB4MjEzOCB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHhjMDAwMDJjYyB9KSwgKChXRVJST1IpIHsgMHg0ZTMgfSl9LAogICAgICAg
IHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyY2QgfSksICgoV0VSUk9SKSB7IDB4MjEzOSB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJjZiB9KSwgKChXRVJST1IpIHsgMHg0OWQgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZDAgfSksICgoV0VSUk9SKSB7IDB4MjEz
YSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJkNCB9KSwgKChXRVJST1IpIHsg
MHgyMTQxIH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmQ1IH0pLCAoKFdFUlJP
UikgeyAweDIxNDIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZDYgfSksICgo
V0VSUk9SKSB7IDB4MjE0MyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJkNyB9
KSwgKChXRVJST1IpIHsgMHgyMTQ0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAw
MmQ4IH0pLCAoKFdFUlJPUikgeyAweDIxNDUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
YzAwMDAyZDkgfSksICgoV0VSUk9SKSB7IDB4MjE0NiB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMp
IHsgMHhjMDAwMDJkYSB9KSwgKChXRVJST1IpIHsgMHgyMTQ3IH0pfSwKICAgICAgICB7KChOVFNU
QVRVUykgeyAweGMwMDAwMmRiIH0pLCAoKFdFUlJPUikgeyAweDIxNDggfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAyZGMgfSksICgoV0VSUk9SKSB7IDB4MjE0OSB9KX0sCiAgICAg
ICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJkZCB9KSwgKChXRVJST1IpIHsgMHgzMiB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJkZiB9KSwgKChXRVJST1IpIHsgMHgyMTUxIH0p
fSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmUwIH0pLCAoKFdFUlJPUikgeyAweDIx
NTIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZTEgfSksICgoV0VSUk9SKSB7
IDB4MjE1MyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAwMDJlMiB9KSwgKChXRVJS
T1IpIHsgMHgyMTU0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweGMwMDAwMmUzIH0pLCAo
KFdFUlJPUikgeyAweDIxNWQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4YzAwMDAyZTQg
fSksICgoV0VSUk9SKSB7IDB4MjE2MyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHhjMDAw
MDJlNSB9KSwgKChXRVJST1IpIHsgMHgyMTY0IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAw
eGMwMDAwMmU2IH0pLCAoKFdFUlJPUikgeyAweDIxNjUgfSl9LAogICAgICAgIHsoKE5UU1RBVFVT
KSB7IDB4YzAwMDAyZTcgfSksICgoV0VSUk9SKSB7IDB4MjE2ZCB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHhjMDAwMDJmZSB9KSwgKChXRVJST1IpIHsgMHg0NWIgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4YzAwMDAyZmYgfSksICgoV0VSUk9SKSB7IDB4NGU3IH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweGMwMDAwMzAwIH0pLCAoKFdFUlJPUikgeyAweDRlNiB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDAwMSB9KSwgKChXRVJST1IpIHsgMHg4MDAwMDAw
MSB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDAwMiB9KSwgKChXRVJST1IpIHsg
MHgzZTYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMDMgfSksICgoV0VSUk9S
KSB7IDB4ODAwMDAwMDMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMDQgfSks
ICgoV0VSUk9SKSB7IDB4ODAwMDAwMDQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAw
MDAwMDUgfSksICgoV0VSUk9SKSB7IDB4ZWEgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4
ODAwMDAwMDYgfSksICgoV0VSUk9SKSB7IDB4MTIgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4ODAwMDAwMGIgfSksICgoV0VSUk9SKSB7IDB4NTZmIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweDgwMDAwMDBkIH0pLCAoKFdFUlJPUikgeyAweDEyYiB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHg4MDAwMDAwZSB9KSwgKChXRVJST1IpIHsgMHgxYyB9KX0sCiAgICAgICAgeygo
TlRTVEFUVVMpIHsgMHg4MDAwMDAwZiB9KSwgKChXRVJST1IpIHsgMHgxNSB9KX0sCiAgICAgICAg
eygoTlRTVEFUVVMpIHsgMHg4MDAwMDAxMCB9KSwgKChXRVJST1IpIHsgMHgxNSB9KX0sCiAgICAg
ICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDAxMSB9KSwgKChXRVJST1IpIHsgMHhhYSB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDAxMiB9KSwgKChXRVJST1IpIHsgMHgxMDMgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTMgfSksICgoV0VSUk9SKSB7IDB4ZmUg
fSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTQgfSksICgoV0VSUk9SKSB7IDB4
ZmYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTUgfSksICgoV0VSUk9SKSB7
IDB4ZmYgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMTYgfSksICgoV0VSUk9S
KSB7IDB4NDU2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweDgwMDAwMDFhIH0pLCAoKFdF
UlJPUikgeyAweDEwMyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDAxYiB9KSwg
KChXRVJST1IpIHsgMHg0NGQgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4ODAwMDAwMWMg
fSksICgoV0VSUk9SKSB7IDB4NDU2IH0pfSwKICAgICAgICB7KChOVFNUQVRVUykgeyAweDgwMDAw
MDFkIH0pLCAoKFdFUlJPUikgeyAweDQ1NyB9KX0sCiAgICAgICAgeygoTlRTVEFUVVMpIHsgMHg4
MDAwMDAxZSB9KSwgKChXRVJST1IpIHsgMHg0NGMgfSl9LAogICAgICAgIHsoKE5UU1RBVFVTKSB7
IDB4ODAwMDAwMWYgfSksICgoV0VSUk9SKSB7IDB4NDRlIH0pfSwKICAgICAgICB7KChOVFNUQVRV
UykgeyAweDgwMDAwMDIxIH0pLCAoKFdFUlJPUikgeyAweDQ0ZiB9KX0sCiAgICAgICAgeygoTlRT
VEFUVVMpIHsgMHg4MDAwMDAyMiB9KSwgKChXRVJST1IpIHsgMHg0NTAgfSl9LAogICAgICAgIHso
KE5UU1RBVFVTKSB7IDB4ODAwMDAwMjUgfSksICgoV0VSUk9SKSB7IDB4OTYyIH0pfSwKICAgICAg
ICB7KChOVFNUQVRVUykgeyAweDgwMDAwMjg4IH0pLCAoKFdFUlJPUikgeyAweDQ4ZCB9KX0sCiAg
ICAgICAgeygoTlRTVEFUVVMpIHsgMHg4MDAwMDI4OSB9KSwgKChXRVJST1IpIHsgMHg0OGUgfSl9
LAogICAgICAgIHsoKE5UU1RBVFVTKSB7IDB4MDAwMCB9KSwgKChXRVJST1IpIHsgMCB9KX19OwoK
CgoKCk5UU1RBVFVTIGRvc190b19udHN0YXR1cyhpbnQgZWNsYXNzLCBpbnQgZWNvZGUpCnsKICAg
ICAgICBpbnQgaTsKICAgICAgICBpZiAoZWNsYXNzID09IDAgJiYgZWNvZGUgPT0gMCkgcmV0dXJu
ICgoTlRTVEFUVVMpIHsgMHgwMDAwIH0pOwogICAgICAgIGZvciAoaT0wOyAoKGRvc190b19udHN0
YXR1c19tYXBbaV0ubnRzdGF0dXMpLnYpOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChlY2xh
c3MgPT0gZG9zX3RvX250c3RhdHVzX21hcFtpXS5kb3NfY2xhc3MgJiYKICAgICAgICAgICAgICAg
ICAgICBlY29kZSA9PSBkb3NfdG9fbnRzdGF0dXNfbWFwW2ldLmRvc19jb2RlKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBkb3NfdG9fbnRzdGF0dXNfbWFwW2ldLm50c3RhdHVzOwog
ICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gKChOVFNUQVRVUykgeyAw
eEMwMDAwMDAwIHwgMHgwMDAxIH0pOwp9CgoKCgoKdm9pZCBudHN0YXR1c190b19kb3MoTlRTVEFU
VVMgbnRzdGF0dXMsIHVuc2lnbmVkIGNoYXIgKmVjbGFzcywgdW5zaWduZWQgaW50ICplY29kZSkK
ewogICAgICAgIGludCBpOwogICAgICAgIGlmICgoKChudHN0YXR1cykudikgPT0gMCkpIHsKICAg
ICAgICAgICAgICAgICplY2xhc3MgPSAwOwogICAgICAgICAgICAgICAgKmVjb2RlID0gMDsKICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZm9yIChpPTA7ICgobnRzdGF0
dXNfdG9fZG9zX21hcFtpXS5udHN0YXR1cykudik7IGkrKykgewogICAgICAgICAgICAgICAgaWYg
KCgobnRzdGF0dXMpLnYpID09CiAgICAgICAgICAgICAgICAgICAgKChudHN0YXR1c190b19kb3Nf
bWFwW2ldLm50c3RhdHVzKS52KSkgewogICAgICAgICAgICAgICAgICAgICAgICAqZWNsYXNzID0g
bnRzdGF0dXNfdG9fZG9zX21hcFtpXS5kb3NfY2xhc3M7CiAgICAgICAgICAgICAgICAgICAgICAg
ICplY29kZSA9IG50c3RhdHVzX3RvX2Rvc19tYXBbaV0uZG9zX2NvZGU7CiAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgKmVj
bGFzcyA9IDB4MDI7CiAgICAgICAgKmVjb2RlID0gMTsKfQoKCgoKCk5UU1RBVFVTIHdlcnJvcl90
b19udHN0YXR1cyhXRVJST1IgZXJyb3IpCnsKICAgICAgICBpbnQgaTsKICAgICAgICBpZiAoKCgo
ZXJyb3IpLnYpID09IDApKSByZXR1cm4gKChOVFNUQVRVUykgeyAweDAwMDAgfSk7CiAgICAgICAg
Zm9yIChpPTA7ICgobnRzdGF0dXNfdG9fd2Vycm9yX21hcFtpXS5udHN0YXR1cykudik7IGkrKykg
ewogICAgICAgICAgICAgICAgaWYgKCgoZXJyb3IpLnYpID09CiAgICAgICAgICAgICAgICAgICAg
KChudHN0YXR1c190b193ZXJyb3JfbWFwW2ldLndlcnJvcikudikpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG50c3RhdHVzX3RvX3dlcnJvcl9tYXBbaV0ubnRzdGF0dXM7CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgcmV0dXJuICgoTlRTVEFUVVMpIHsgKChl
cnJvcikudikgfCAweGMwMDAwMDAwIH0pOwp9CgoKCgpXRVJST1IgbnRzdGF0dXNfdG9fd2Vycm9y
KE5UU1RBVFVTIGVycm9yKQp7CiAgICAgICAgaW50IGk7CiAgICAgICAgaWYgKCgoKGVycm9yKS52
KSA9PSAwKSkgcmV0dXJuICgoV0VSUk9SKSB7IDAgfSk7CiAgICAgICAgZm9yIChpPTA7ICgobnRz
dGF0dXNfdG9fd2Vycm9yX21hcFtpXS5udHN0YXR1cykudik7IGkrKykgewogICAgICAgICAgICAg
ICAgaWYgKCgoZXJyb3IpLnYpID09CiAgICAgICAgICAgICAgICAgICAgKChudHN0YXR1c190b193
ZXJyb3JfbWFwW2ldLm50c3RhdHVzKS52KSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gbnRzdGF0dXNfdG9fd2Vycm9yX21hcFtpXS53ZXJyb3I7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgfQoKCiAgICAgICAgcmV0dXJuICgoV0VSUk9SKSB7ICgoZXJyb3IpLnYpICYgMHhmZmZm
IH0pOwp9Cg==


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-04-26  9:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-26  2:19 c/5203: initializer element is not constant rth
  -- strict thread matches above, loose matches on Subject: below --
2001-12-27  2:26 georg.wild

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).