public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* target/7240: gcc 3.1 ARM thumb target generates 32bis code sometimes
@ 2002-07-08 20:26 ted
  0 siblings, 0 replies; 2+ messages in thread
From: ted @ 2002-07-08 20:26 UTC (permalink / raw)
  To: gcc-gnats


>Number:         7240
>Category:       target
>Synopsis:       gcc 3.1 ARM thumb target generates 32bis code sometimes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 08 20:26:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Ted Merrill
>Release:        gcc 3.1
>Organization:
>Environment:
gcc 3.1 compiled to run on sparc/solaris to cross compile
for arm target (arm-ecos-elf). 
Compiler is run w/ -mthumb (for 16 bit ins).
>Description:
gcc compiled for ARM (arm-ecos-elf) and run with -mthumb
(for 16 bit instruction set).
Occasionally, when C code has auto arrays,
references to the arrays are coded by gcc as:
ldr r0,[r1,sp]
This is legal 32-bit instruction, but not a legal 16-bit
(thumb) instruction unfortunately.
Assembler accordingly rejects the instruction.

I hope Richard Earnshaw will be able to fix this soon
before it bites again... a similar or same bug has
been in the compiler previously (i filed a bug report
but was unable to send code... the problem goes away
when the function is simplified and i didn't have an
obfuscator available at the time).
Thanks in advance...
>How-To-Repeat:
Using attached file obfu.c,

gcc -mthumb -O2 obfu.c

You should see something like:
obfu.c:1933: warning: too many arguments for format
obfu.c:1939: warning: too many arguments for format
obfu.c:1943: warning: too many arguments for format
obfu.c: In function `V1208':
obfu.c:1951: warning: too many arguments for format
obfu.c: In function `V2567':
obfu.c:4440: warning: control reaches end of non-void function
/var/tmp//cc8OUOaP.s: Assembler messages:
/var/tmp//cc8OUOaP.s:307: Error: lo register required -- `ldr r0,[r1,sp]'


The warnings are largely due to a bug in the obfuscator
and anyway may be ignored.

>Fix:

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

dHlwZWRlZiBpbnQgVjU0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBWNTU7CnR5cGVkZWYgbG9uZyB1
bnNpZ25lZCBpbnQgVjU2Owp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IF9fZ251Y192YV9saXN0
Owp0eXBlZGVmIGxvbmcgVjU3Owp0eXBlZGVmIGxvbmcgVjU4Owp0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgVjU5OwpzdHJ1Y3QgVjYwCnsKICBzdHJ1Y3QgVjYwICpWNjE7CiAgaW50IFY2MjsKICBzdHJ1
Y3QgVjYzICpWNjQ7Cn07CnN0cnVjdCBWNjUKewogIHN0cnVjdCBWNjUgKlY2MTsKICBpbnQgVjY2
LCBWNjcsIFY2OCwgVjY5OwogIFY1OSBWNzBbMV07Cn07CnN0cnVjdCBWNzEKewogIGludCBWNzI7
CiAgaW50IFY3MzsKICBpbnQgVjc0OwogIGludCBWNzU7CiAgaW50IFY3NjsKICBpbnQgVjc3Owog
IGludCBWNzg7CiAgaW50IFY3OTsKICBpbnQgVjgwOwp9OwpzdHJ1Y3QgVjgxIHsKICAgICAgICBz
dHJ1Y3QgVjgxICpWNjE7ICAKICAgICAgICBpbnQgVjgyOyAgCiAgICAgICAgdm9pZCAoKlY4M1sz
Ml0pKHZvaWQpOyAgCn07CnN0cnVjdCBWODQgewogICAgICAgIHVuc2lnbmVkIGNoYXIgKlY4NTsK
ICAgICAgICBpbnQgVjg2Owp9Owp0eXBlZGVmIGxvbmcgVjg3OyAgCnN0cnVjdCBWNjMgewogIHVu
c2lnbmVkIGNoYXIgKlY4ODsgIAogIGludCBWODk7ICAKICBpbnQgVjkwOyAgCiAgc2hvcnQgVjkx
OyAgCiAgc2hvcnQgVjkyOyAgCiAgc3RydWN0IFY4NCBWOTM7ICAKICBpbnQgVjk0OyAgCiAgdm9p
ZCAqIFY5NTsgIAogIGludCAoKlY5NikgKHZvaWQgKiBWOTUsIGNoYXIgKlY5NywgaW50IFY5OCk7
CiAgaW50ICgqVjk5KSAodm9pZCAqIFY5NSwgY29uc3QgY2hhciAqVjk3LCBpbnQgVjk4KTsKICBW
ODcgKCpWMTAwKSAodm9pZCAqIFY5NSwgVjg3IFYxMDEsIGludCBWMTAyKTsKICBpbnQgKCpWMTAz
KSAodm9pZCAqIFY5NSk7CiAgc3RydWN0IFY4NCBWMTA0OyAgCiAgdW5zaWduZWQgY2hhciAqVjEw
NTsgIAogIGludCBWMTA2OyAgCiAgdW5zaWduZWQgY2hhciBWMTA3WzNdOyAgCiAgdW5zaWduZWQg
Y2hhciBWMTA4WzFdOyAgCiAgc3RydWN0IFY4NCBWMTA5OyAgCiAgaW50IFYxMTA7ICAKICBpbnQg
VjEwMTsgIAogIHN0cnVjdCBWMTExICpWMTEyOwp9OwpzdHJ1Y3QgVjExMyB7CiAgdW5zaWduZWQg
c2hvcnQgVjExNFszXTsKICB1bnNpZ25lZCBzaG9ydCBWMTE1WzNdOwogIHVuc2lnbmVkIHNob3J0
IFYxMTY7Cn07CnN0cnVjdCBWMTExCnsKICBpbnQgVjExNzsKICBzdHJ1Y3QgVjYzICpWMTE4LCAq
VjExOSwgKlYxMjA7CiAgaW50IFYxMjE7ICAKICBjaGFyIFYxMjJbMjVdOwogIGludCBWMTIzOyAg
CiAgY29uc3QgY2hhciAqVjEyNDsKICBpbnQgVjEyNTsgIAogIHZvaWQgKCpWMTI2KSAoc3RydWN0
IFYxMTEgKik7CiAgc3RydWN0IFY2NSAqVjEyNzsKICBpbnQgVjEyODsKICBzdHJ1Y3QgVjY1ICpW
MTI5OwogIHN0cnVjdCBWNjUgKipWMTMwOwogIGludCBWMTMxOyAgCiAgY2hhciAqVjEzMjsKICB1
bmlvbgogICAgewogICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICB1bnNpZ25lZCBpbnQg
VjEzMzsKICAgICAgICAgIGNoYXIgKiBWMTM0OwogICAgICAgICAgY2hhciBWMTM1WzI2XTsKICAg
ICAgICAgIHN0cnVjdCBWNzEgVjEzNjsKICAgICAgICAgIGludCBWMTM3OwogICAgICAgICAgX19l
eHRlbnNpb25fXyB1bnNpZ25lZCBsb25nIGxvbmcgVjEzODsKICAgICAgICAgIHN0cnVjdCBWMTEz
IFYxMzk7CiAgICAgICAgfSBWMTExOwogICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICB1
bnNpZ25lZCBjaGFyICogVjE0MFszMF07CiAgICAgICAgICB1bnNpZ25lZCBpbnQgVjE0MVszMF07
CiAgICAgICAgfSBWMTQyOwogICAgfSBWMTQzOwogIHN0cnVjdCBWODEgKlY4MTsgIAogIHN0cnVj
dCBWODEgVjE0NDsgIAogIHZvaWQgKCoqKFYxNDUpKShpbnQpOwogIHN0cnVjdCBWNjAgVjE0Njsg
IAogIHN0cnVjdCBWNjMgVjE0N1szXTsgIAp9OwpleHRlcm4gc3RydWN0IFYxMTEgKlYxNDggOwp2
b2lkIF9yZWNsYWltX3JlZW50IChzdHJ1Y3QgVjExMSAqKTsKdHlwZWRlZiBWODcgVjE0OTsKdHlw
ZWRlZiBzdHJ1Y3QgVjYzIFYxNTA7ClYxNTAgKiBWMTUxICh2b2lkKTsKY2hhciAqIFYxNTIgKGNo
YXIgKik7CmludCBWMTUzIChWMTUwICopOwppbnQgVjE1NCAoVjE1MCAqKTsKVjE1MCAqIFYxNTUg
KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBWMTUwICopOwp2b2lkIFYxNTYgKFYxNTAgKiwg
Y2hhciAqKTsKaW50IFYxNTcgKFYxNTAgKiwgY2hhciAqLCBpbnQsIFY1Nik7CmludCBWMTU4IChW
MTUwICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IFYxNTkgKFYxNTAgKiwgY29uc3QgY2hhciAq
LCAuLi4pOwppbnQgcHJpbnRmIChjb25zdCBjaGFyICosIC4uLik7CmludCBWMTYwIChjb25zdCBj
aGFyICosIC4uLik7CmludCBWMTYxIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsK
aW50IFYxNjIgKFYxNTAgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmludCBWMTYz
IChjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50IFYxNjQgKGNoYXIgKiwgY29uc3Qg
Y2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmludCBWMTY1IChWMTUwICopOwpjaGFyICogVjE2NiAo
Y2hhciAqLCBpbnQsIFYxNTAgKik7CmludCBWMTY3IChpbnQsIFYxNTAgKik7CmludCBWMTY4IChj
b25zdCBjaGFyICosIFYxNTAgKik7CmludCBWMTY5IChWMTUwICopOwppbnQgVjE3MCAodm9pZCk7
CmNoYXIgKiBWMTcxIChjaGFyICopOwppbnQgVjE3MiAoaW50LCBWMTUwICopOwppbnQgVjE3MyAo
aW50KTsKaW50IFYxNzQgKGNvbnN0IGNoYXIgKik7CmludCBWMTc1IChpbnQsIFYxNTAgKik7ClY1
NiBWMTc2ICh2b2lkICosIFY1NiBWODYsIFY1NiBWOTgsIFYxNTAgKik7ClY1NiBWMTc3IChjb25z
dCB2b2lkICogLCBWNTYgVjg2LCBWNTYgVjk4LCBWMTUwICopOwppbnQgVjE3OCAoVjE1MCAqLCBW
MTQ5ICopOwppbnQgVjE3OSAoVjE1MCAqLCBsb25nLCBpbnQpOwppbnQgVjE4MCAoVjE1MCAqLCBj
b25zdCBWMTQ5ICopOwpsb25nIFYxODEgKCBWMTUwICopOwp2b2lkIFYxODIgKFYxNTAgKik7CnZv
aWQgVjE4MyAoVjE1MCAqKTsKaW50IFYxODQgKFYxNTAgKik7CmludCBWMTg1IChWMTUwICopOwp2
b2lkIFYxODYgKGNvbnN0IGNoYXIgKik7ClYxNTAgKiBWMTg3IChjb25zdCBjaGFyICpWMTg4LCBj
b25zdCBjaGFyICpWMTg5KTsKaW50IFYxOTAgKGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwpp
bnQgVjE5MSAoY29uc3QgY2hhciAqKTsKaW50IFYxOTIgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh
ciAqKTsKaW50IFYxOTMgKFYxNTAgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7Cmlu
dCBWMTk0IChjb25zdCBjaGFyICosIC4uLik7CmludCBWMTk1IChWMTUwICosIGNvbnN0IGNoYXIg
KiwgLi4uKTsKaW50IFYxOTYgKGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwpjaGFyICogVjE5
NyAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwppbnQgVjE5OCAoY2hhciAqLCBWNTYsIGNv
bnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwppbnQgVjE5OSAoVjE1MCAqLCBjb25zdCBjaGFy
ICosIF9fZ251Y192YV9saXN0KTsKaW50IFYyMDAgKGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xp
c3QpOwppbnQgVjIwMSAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0
KTsKaW50IFYyMDIgKGNoYXIgKiwgVjU2LCBjb25zdCBjaGFyICosIC4uLik7ClYxNTAgKiBWMjAz
IChpbnQsIGNvbnN0IGNoYXIgKik7CmludCBWMjA0IChWMTUwICopOwppbnQgVjIwNSAoVjE1MCAq
KTsKaW50IFYyMDYgKFYxNTAgKik7ClYxNTAgKiBWMjA3IChjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKik7CmludCBWMjA4IChpbnQsIFYxNTAgKik7CnZvaWQgVjIwOSAoVjE1MCAqLCBjaGFyICos
IGludCk7CmludCBWMjEwIChWMTUwICopOwpWMTUwICogVjIxMSAoc3RydWN0IFYxMTEgKiwgaW50
LCBjb25zdCBjaGFyICopOwpWMTUwICogVjIxMiAoc3RydWN0IFYxMTEgKiwgY29uc3QgY2hhciAq
LCBjb25zdCBjaGFyICopOwppbnQgVjIxMyAoc3RydWN0IFYxMTEgKiwgVjE1MCAqLCBjb25zdCBj
aGFyICosIC4uLik7CmludCBWMjE0IChzdHJ1Y3QgVjExMSAqKTsKY2hhciAqIFYyMTUgKHN0cnVj
dCBWMTExICosIGNoYXIgKik7CmludCBWMjE2IChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFyICos
IC4uLik7CmludCBWMjE3IChzdHJ1Y3QgVjExMSAqLCBjaGFyICopOwpjaGFyICogVjIxOCAoc3Ry
dWN0IFYxMTEgKiwgY2hhciAqKTsKdm9pZCBWMjE5IChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFy
ICopOwppbnQgVjIyMCAoc3RydWN0IFYxMTEgKiwgY29uc3QgY2hhciAqLCAuLi4pOwppbnQgVjIy
MSAoc3RydWN0IFYxMTEgKiwgaW50KTsKaW50IFYyMjIgKHN0cnVjdCBWMTExICosIGNvbnN0IGNo
YXIgKik7CmludCBWMjIzIChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFyICopOwppbnQgVjIyNCAo
c3RydWN0IFYxMTEgKiwgY29uc3QgY2hhciAqVjIyNSwgY29uc3QgY2hhciAqVjE0Myk7CmludCBW
MjI2IChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFyICosIC4uLik7CmludCBWMjI3IChzdHJ1Y3Qg
VjExMSAqLCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKaW50IFYyMjggKHN0cnVjdCBWMTEx
ICosIGNoYXIgKiwgVjU2LCBjb25zdCBjaGFyICosIC4uLik7CmludCBWMjI5IChzdHJ1Y3QgVjEx
MSAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKY2hhciAqIFYyMzAgKHN0cnVj
dCBWMTExICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKVjE1MCAqIFYyMzEgKHN0cnVj
dCBWMTExICopOwpjaGFyICogVjIzMiAoc3RydWN0IFYxMTEgKiwgY2hhciAqKTsKaW50IFYyMzMg
KHN0cnVjdCBWMTExICosIFYxNTAgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7Cmlu
dCBWMjM0IChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKaW50
IFYyMzUgKHN0cnVjdCBWMTExICosIGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlz
dCk7CmludCBWMjM2IChzdHJ1Y3QgVjExMSAqLCBjaGFyICosIFY1NiwgY29uc3QgY2hhciAqLCBf
X2dudWNfdmFfbGlzdCk7CmludCBWMjM3IChzdHJ1Y3QgVjExMSAqLCBWMTUwICosIGNvbnN0IGNo
YXIgKiwgX19nbnVjX3ZhX2xpc3QpOwppbnQgVjIzOCAoc3RydWN0IFYxMTEgKiwgY29uc3QgY2hh
ciAqLCBfX2dudWNfdmFfbGlzdCk7CmludCBWMjM5IChzdHJ1Y3QgVjExMSAqLCBjb25zdCBjaGFy
ICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwppbnQgVjI0MCAoVjE1MCAqKTsKaW50
IFYyNDEgKGludCwgVjE1MCAqKTsKVjE1MCAqVjI0MiAoY29uc3Qgdm9pZCAqIFY5NSwgaW50ICgq
VjI0Mykodm9pZCAqIFY5NSwgY2hhciAqVjk3LCBpbnQgVjk4KSwgaW50ICgqVjI0NCkodm9pZCAq
IFY5NSwgY29uc3QgY2hhciAqVjk3LCBpbnQgVjk4KSwgVjE0OSAoKlYyNDUpKHZvaWQgKiBWOTUs
IFYxNDkgVjI0NiwgaW50IFYxMDIpLCBpbnQgKCpWMjQ3KSh2b2lkICogVjk1KSk7CnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBWMjQ4Owp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBjaGFyIFYy
NDk7CiAgICB1bnNpZ25lZCBjaGFyIFYyNTA7Cn0gVjI1MTsKZXh0ZXJuCnZvaWQgVjI1MihWMjUx
ICpWMjUzLCBpbnQgVjI1NCwgaW50IFYyNTUpCjsgIApleHRlcm4Kdm9pZCBWMjU2KGNvbnN0IFYy
NTEgKlYyNTMsIGludCBWMjU0KQo7ICAKZXh0ZXJuCnZvaWQgVjI1Nyhjb25zdCBWMjQ4KiBWMjU4
LCBWMjQ4KiBWMjU5KQo7ICAKZXh0ZXJuCmludCBWMjYwKGNvbnN0IFYyNTEqIFYyNTMsIGNvbnN0
IFYyNDgqIFYyNTgsIFYyNDgqIFYyNTkpCjsgIApleHRlcm4Kdm9pZCBWMjYxKAogICAgICAgIGNv
bnN0IFYyNDggKlYyNTgsICAKICAgICAgICBjb25zdCBWMjQ4KiBWMjYyLCAgCiAgICAgICAgVjI0
OCogVjI2MykgIAo7ICAKZXh0ZXJuCmludCBWMjY0KAogICAgICAgIGNvbnN0IFYyNDgqIFYyNjUs
ICAKICAgICAgICBpbnQgVjI2NikgIAo7ICAKZXh0ZXJuCnZvaWQgVjI2NygKICAgICAgICBWMjQ4
KiBWMjY1LCAgCiAgICAgICAgaW50IFYyNjYsICAKICAgICAgICBpbnQgVjI2OCkgIAo7ICAKZXh0
ZXJuCnZvaWQgVjI2OSgKICAgICAgICBWMjQ4KiBWMjY1LCAgCiAgICAgICAgaW50IFYyNjYpICAK
OyAgCmV4dGVybgp2b2lkIFYyNzAoCiAgICAgICAgY29uc3QgVjI0OCogVjI1OCwgIAogICAgICAg
IGludCBWMjcxLCAgCiAgICAgICAgVjI0OCogVjI2MykgIAo7ICAKZXh0ZXJuCmludCBWMjcyKAog
ICAgICAgIGNvbnN0IFYyNDggKlYyNTgsICAKICAgICAgICBjb25zdCBWMjQ4ICpWMjYyKSAgCjsg
IApleHRlcm4KaW50IFYyNzMoCiAgICAgICAgY29uc3QgVjI0OCAqVjI1OCwgIAogICAgICAgIGNv
bnN0IFYyNDggKlYyNjIpICAKOyAgCmV4dGVybgp2b2lkIFYyNzQoCiAgICAgICAgY29uc3QgVjI0
OCogVjI1OCwgIAogICAgICAgIGNvbnN0IFYyNDgqIFYyNjIsICAKICAgICAgICBWMjQ4KiBWMjYz
KSAgCjsgIApleHRlcm4Kdm9pZCBWMjc1KAogICAgICAgIGNvbnN0IFYyNDggKlYyNTgsICAKICAg
ICAgICBWMjQ4KiBWMjYzKSAgCjsgIApleHRlcm4Kdm9pZCBWMjc2KAogICAgICAgIGNvbnN0IFYy
NDgqIFYyNTgsICAKICAgICAgICBpbnQgVjI2NiwgIAogICAgICAgIGludCBWMjc3LCAgCiAgICAg
ICAgVjI0OCogVjI2MykgIAo7ICAKZXh0ZXJuCnZvaWQgVjI3OCgKICAgICAgICBWMjQ4KiBWMjY1
LCAgCiAgICAgICAgaW50IFYyNzcpICAKOyAgCmV4dGVybgp2b2lkIFYyNzkoCiAgICAgICAgVjI0
OCogVjI2NSwgIAogICAgICAgIGludCBWMjc3KSAgCjsgIApleHRlcm4Kdm9pZCBWMjgwKAogICAg
ICAgIFYyNDgqIFYyNjUsICAKICAgICAgICBjb25zdCBjaGFyKiBWMjgxKSAgCjsgIApleHRlcm4K
dm9pZCBWMjgyKAogICAgICAgIFYyNDgqIFYyNjUsICAKICAgICAgICBpbnQgVjI4MywgIAogICAg
ICAgIGNoYXIgKlYyODQpICAKOyAgCmV4dGVybgp2b2lkIFYyODUoCiAgICAgICAgVjI0OCogVjI2
NSwgIAogICAgICAgIGNvbnN0IGNoYXIqIFYyODYpICAKOyAgCmV4dGVybgp2b2lkIFYyODcoCiAg
ICAgICAgVjI0OCogVjI2NSwgIAogICAgICAgIGludCBWMjg4LCAgCiAgICAgICAgaW50ICpWMjg5
KSAgCjsgIApleHRlcm4Kdm9pZCBWMjkwKAogICAgICAgIFYyNDgqIFYyNjUsICAKICAgICAgICBp
bnQgVjI5MSwgIAogICAgICAgIGludCAqVjI4OSkgIAo7ICAKZXh0ZXJuCnZvaWQgVjI5MigKICAg
ICAgICBWMjQ4KiBWMjY1LCAgCiAgICAgICAgaW50IFYyNzcpICAKOyAgCmV4dGVybgp2b2lkIFYy
OTMoCiAgICAgICAgVjI0OCAqVjI5NCwgIAogICAgICAgIGludCBWMjc3KSAgCjsgIApleHRlcm4K
dm9pZCBWMjk1KAogICAgICAgIFYyNDgqIFYyNjUsICAKICAgICAgICBpbnQgVjI3NywgIAogICAg
ICAgIFYyNDggVjI5NikgIAo7ICAKZXh0ZXJuCnZvaWQgVjI5NygKICAgICAgICBWMjQ4KiBWMjY1
LCAgCiAgICAgICAgaW50IFYyNzcpICAKOyAgCmV4dGVybgp2b2lkIFYyOTgoCiAgICAgICAgVjI0
OCAqVjI2NSwgIAogICAgICAgIGludCBWMjgzLCAgCiAgICAgICAgY2hhciAqVjI4NCkgIAo7ICAK
ZXh0ZXJuCmludCBWMjk5KAogICAgICAgIFYyNDggKlYyOTQsICAKICAgICAgICBpbnQgVjMwMCwg
IAogICAgICAgIGludCBWMjc3KSAgCjsgIApleHRlcm4Kdm9pZCBWMzAxKAogICAgICAgIFYyNDgg
KlYyOTQsICAKICAgICAgICBpbnQgVjMwMCwgIAogICAgICAgIGludCBWMjc3LCAgCiAgICAgICAg
aW50IFYyNjgpICAKOyAgCmV4dGVybgp2b2lkIFYzMDIoCiAgICAgICAgVjI0OCAqVjMwMywgIAog
ICAgICAgIFYyNDggKlYzMDQsICAKICAgICAgICBWMjQ4ICpWMzA1KSAgCjsgIApleHRlcm4Kdm9p
ZCBWMzA2KAogICAgICAgIGNvbnN0IFYyNDgqIFYyNTgsICAKICAgICAgICBpbnQgVjMwNywgIAog
ICAgICAgIFYyNDgqIFYyNjMpICAKOyAgCmV4dGVybgp2b2lkIFYzMDgoCiAgICAgICAgY29uc3Qg
VjI0OCogVjI1OCwgIAogICAgICAgIGludCBWMzA3LCAgCiAgICAgICAgVjI0OCogVjI2MykgIAo7
ICAKZXh0ZXJuCmxvbmcgVjMwOSgKICAgIFYyNDggKlYyOTQsICAKICAgIGludCBWMzAwLCAgCiAg
ICBpbnQgVjI3NykgIAo7ICAKZXh0ZXJuCnZvaWQgVjMxMCgKICAgICAgICBWMjQ4ICpWMjk0LCAg
CiAgICAgICAgaW50IFYzMDAsICAKICAgICAgICBpbnQgVjI3NywgIAogICAgICAgIGxvbmcgVjI2
OCkgIAo7ICAKZXh0ZXJuCmludCBWMzExKAogICAgICAgIFYyNDggKlYyNTgsICAKICAgICAgICBW
MjQ4ICpWMjYyLCAgCiAgICAgICAgaW50ICpWMzEyKSAgCjsgIApleHRlcm4Kdm9pZCBWMzEzKAog
ICAgICAgIGNvbnN0IFYyNDggKlYyNTgsICAKICAgICAgICBjb25zdCBWMjQ4KiBWMjYyLCAgCiAg
ICAgICAgVjI0OCogVjI2MykgIAo7ICAKZXh0ZXJuCnZvaWQgVjMxNCgKICAgICAgICBjb25zdCBW
MjQ4KiBWMjY1LCAgCiAgICAgICAgY29uc3QgY2hhciAqVjMxNSkgIAo7ICAKZXh0ZXJuCnZvaWQg
VjMxNigKICAgICAgICBWMTUwICpWMzE3LCAgCiAgICAgICAgY29uc3QgVjI0OCogVjI2NSwgIAog
ICAgICAgIGNvbnN0IGNoYXIgKlYzMTUsICAKICAgICAgICBpbnQgVjMxOCkgIAo7ICAKZXh0ZXJu
CnZvaWQgVjMxOSgKICAgICAgICBjb25zdCBWMjQ4KiBWMjY1LCAgCiAgICAgICAgY29uc3QgY2hh
ciAqVjMxNSkgIAo7ICAKZXh0ZXJuCnZvaWQgVjMyMCgKICAgICAgICBWMTUwICpWMzE3LCAgCiAg
ICAgICAgY29uc3QgVjI0OCogVjI2NSwgIAogICAgICAgIGNvbnN0IGNoYXIgKlYzMTUsICAKICAg
ICAgICBpbnQgVjMxOCkgIAo7ICAKZXh0ZXJuCnZvaWQgVjMyMSgKICAgICAgICBjb25zdCBWMjQ4
KiBWMjY1LCAgCiAgICAgICAgY2hhciAqVjMyMikgIAo7ICAKZXh0ZXJuCnZvaWQgVjMyMygKICAg
ICAgICBWMjQ4ICpWMjU4LCAgCiAgICAgICAgaW50IFYzMjQsICAKICAgICAgICBpbnQgVjI3Nywg
IAogICAgICAgIGludCBWMzI1LCAgCiAgICAgICAgVjI0OCAqVjI2MykgIAo7ICAKZXh0ZXJuCnZv
aWQgVjMyNigKICAgICAgICBWMjQ4ICpWMzI3LCAgCiAgICAgICAgVjI0OCAqVjI2MykgIAo7ICAK
ZXh0ZXJuCnZvaWQgVjMyOCgKICAgICAgICBWMjQ4ICpWMzI3LCAgCiAgICAgICAgVjI0OCAqVjI2
MykgIAo7ICAKZXh0ZXJuCnZvaWQgVjMyOSgKICAgICAgICBjb25zdCBWMjQ4KiBWMjU4LCAgCiAg
ICAgICAgaW50IFYzMDcsICAKICAgICAgICBWMjQ4KiBWMjYzKSAgCjsgIApleHRlcm4Kdm9pZCBW
MzMwKAogICAgICAgIGNvbnN0IFYyNDgqIFYyNTgsICAKICAgICAgICBpbnQgVjMwNywgIAogICAg
ICAgIFYyNDgqIFYyNjMpICAKOyAgCmV4dGVybgp2b2lkIFYzMzEoCiAgICAgICAgY29uc3QgVjI0
OCogVjI1OCwgIAogICAgICAgIGludCBWMzA3LCAgCiAgICAgICAgVjI0OCogVjI2MykgIAo7ICAK
ZXh0ZXJuCmludCBWMzMyKAogICAgICAgIFYyNDggKlYyOTQpICAKOyAgCmV4dGVybgp2b2lkIFYz
MzMoCiAgICAgICAgY29uc3QgVjI0OCogVjI1OCwgIAogICAgICAgIGludCBWMzA3LCAgCiAgICAg
ICAgVjI0OCogVjI2MykgIAo7ICAKZXh0ZXJuCmludCBWMzM0KAogICAgICAgIGNvbnN0IFYyNDgg
KlYyNjUpICAKOyAgCmV4dGVybgppbnQgVjMzNSgKICAgICAgICBjb25zdCBWMjQ4ICpWMjU4LCAg
CiAgICAgICAgY29uc3QgVjI0OCAqVjI2MiwgIAogICAgICAgIGludCBWMzA3KSAgCjsgIApleHRl
cm4Kdm9pZCBWMzM2KAogICAgICAgIGNvbnN0IFYyNDggKlYyNTgsICAKICAgICAgICBWMjQ4KiBW
MjYzKSAgCjsgIApleHRlcm4Kdm9pZCBWMzM3KAogICAgICAgIGNvbnN0IFYyNDggKlYyNTgsICAK
ICAgICAgICBjb25zdCBWMjQ4KiBWMjYyLCAgCiAgICAgICAgVjI0OCogVjI2MykgIAo7ICAKZXh0
ZXJuCnZvaWQgVjMzOCgKICAgICAgICAgICAgY29uc3QgVjI0OCAqVjMzOSwgIAogICAgICAgICAg
ICBpbnQgVjM0MCwgIAogICAgICAgICAgICBpbnQgVjM0MSwgIAogICAgICAgICAgICBWMjQ4ICpW
MzQyKSAgCjsgIApleHRlcm4KaW50IFYzNDModm9pZCkKOyAgCmV4dGVybgp2b2lkIFYzNDQoCiAg
ICAgICAgVjI0OCAqVjI1OCwgIAogICAgICAgIFYyNDggKlYyNjIsICAKICAgICAgICBWMjQ4ICpW
MjYzKSAgCjsgIApleHRlcm4Kdm9pZCBWMzQ1KAogICAgICAgIFYyNDggKlYyNTgsICAKICAgICAg
ICBWMjQ4ICpWMjYyLCAgCiAgICAgICAgVjI0OCAqVjI2MykgIAo7ICAKZXh0ZXJuCnZvaWQgVjM0
NigKICAgICAgICBWMjQ4ICpWMzQ3LAogICAgICAgIFYyNDggKlYzNDgsCiAgICAgICAgVjI0OCAq
VjM0OSwKICAgICAgICBWMjQ4ICpWMzUwKQo7ICAKZXh0ZXJuCnZvaWQgVjM1MSgKICAgIHVuc2ln
bmVkICpWMzUyLCAgCiAgICBpbnQgVjM1MyAgCikKOyAgCmV4dGVybgp2b2lkIFYzNTQoCiAgICB1
bnNpZ25lZCAqVjM1MiwgIAogICAgaW50IFYzNTMsICAKICAgIGludCBWMzU1ICAKKQo7ICAKZXh0
ZXJuCnZvaWQgVjM1NigKICAgdW5zaWduZWQgKlYzNTIsICAKICAgaW50IFYzNTMsICAKICAgaW50
IFYzNTUgIAopCjsgIApleHRlcm4Kdm9pZCBWMzU3KAogICAgdW5zaWduZWQgKlYzNTIsICAKICAg
IFYyNDggKlYyOTQsICAKICAgIGludCBWMjc3ICAKKQo7ICAKZXh0ZXJuCnZvaWQgVjM1OCgKICAg
IFYyNDggKlYyOTQsICAKICAgIHVuc2lnbmVkICpWMzUyICAKKQo7ICAKZXh0ZXJuCnZvaWQgVjM1
OSgKICAgIGNoYXIgKlYzNjAsICAKICAgIGludCBWMzYxLCAgCiAgICBjb25zdCBWMjQ4KiBWMjY1
LCAgCiAgICBjb25zdCBjaGFyICpWMzE1LCAgCiAgICBpbnQgVjM2MiAgCikKOyAgCmV4dGVybgp2
b2lkIFYzNjMoCiAgICBjaGFyICpWMzYwLCAgCiAgICBpbnQgVjM2MSwgIAogICAgY29uc3QgVjI0
OCogVjI2NSwgIAogICAgY29uc3QgY2hhciAqVjMxNSwgIAogICAgaW50IFYzNjIgIAopCjsgIApl
eHRlcm4Kdm9pZCBWMzY0KAogICAgICAgIFYyNDggKlYyOTQsICAKICAgICAgICBpbnQgVjM2NSwg
IAogICAgICAgIGludCBWMzY2LCAgCiAgICAgICAgaW50IFYzNjcpICAKOyAgCmV4dGVybgp2b2lk
IFYzNjgoCiAgICAgICAgVjI0OCAqVjI5NCwgIAogICAgICAgIGludCBWMzY5LCAgCiAgICAgICAg
aW50IFYzNzAsICAKICAgICAgICBpbnQgVjM2NSwgIAogICAgICAgIGludCBWMzY2LCAgCiAgICAg
ICAgaW50IFYzNjcpICAKOyAgCmV4dGVybgp2b2lkIFYzNzEoCiAgICAgICAgVjI0OCAqVjI5NCwg
IAogICAgICAgIGludCBWMzY1LCAgCiAgICAgICAgaW50IFYzNjYsICAKICAgICAgICBpbnQgVjM2
NywgIAogICAgICAgIFYyNDggKlYzNzIpICAKOyAgCmV4dGVybgp2b2lkIFYzNzModm9pZCkKOyAg
CmV4dGVybgp2b2lkIFYzNzQoCiAgICAgICAgVjI0OCAqVjI5NCwgIAogICAgICAgIFYyNDggKlYz
NzIpICAKOyAgCmV4dGVybgp2b2lkIFYzNzUoCiAgICAgICAgY29uc3QgVjI0OCogVjI1OCwgIAog
ICAgICAgIHVuc2lnbmVkIGludCBWMjY2LCAgCiAgICAgICAgdW5zaWduZWQgaW50IFYyNzcsICAK
ICAgICAgICBWMjQ4KiBWMjYzKSAgCjsgIApleHRlcm4Kdm9pZCBWMzc2KAogICAgICAgIFYyNDgq
IFYyNTgsICAKICAgICAgICBWMjQ4KiBWMjYyICkgIAo7ICAKZXh0ZXJuCmludCBWMzc3KAogICAg
ICAgIFYyNDggKlYyOTQsICAKICAgICAgICB1bnNpZ25lZCBpbnQgVjMwMCwgIAogICAgICAgIHVu
c2lnbmVkIGludCBWMjc3KSAgCjsgIApleHRlcm4KaW50IFYzNzgoCiAgICBWMjQ4ICpWMzc5LCAg
CiAgICBWMjQ4ICpWMjk0LCAgCiAgICBpbnQgVjM2OSwgIAogICAgaW50IFYzODAsICAKICAgIGlu
dCAqVjM4MSkgIAo7ICAKZXh0ZXJuCmludCBWMzgyKCB2b2lkICkKOyAgCmV4dGVybgp2b2lkIFYz
ODMoIGludCBWMzg0ICkKOyAgCmV4dGVybgppbnQgVjM4NSh2b2lkKQo7ICAKdHlwZWRlZiBfX2du
dWNfdmFfbGlzdCBWMzg2Owp0eXBlZGVmIHN0cnVjdCBWMzg3ICpWMzg4OwplbnVtIFYzODkKewog
ICAgVjM5MCA9IDAsCiAgICBWMzkxLAogICAgVjM5MiwKICAgIFYzOTMgIAp9Owp0eXBlZGVmIHZv
aWQgKCpWMzk0KSgKICAgICAgICBWMzg4IFYzOTUsCiAgICAgICAgZW51bSBWMzg5IFYzOTYsCiAg
ICAgICAgY29uc3QgY2hhciAqVjM5NywKICAgICAgICBpbnQgVjM5OCwgIAogICAgICAgIHZvaWQg
KlYzOTksCiAgICAgICAgbG9uZyBWNDAwCiAgICAgICAgKTsKZXh0ZXJuClYzODggVjQwMSggY29u
c3QgVjM4OCBWNDAyICkKOyAgCmV4dGVybgp2b2lkIFY0MDMoCiAgICBWMzg4IFYzOTUsICAKICAg
IHZvaWQgKCpWNDA0KSggIAogICAgICAgIFYzODggVjM5NSwKICAgICAgICBlbnVtIFYzODkgVjM5
NiwKICAgICAgICBjb25zdCBjaGFyICpWMzk3LAogICAgICAgIGludCBWMzk4LAogICAgICAgIHZv
aWQgKlYzOTksCiAgICAgICAgbG9uZyBWNDAwCiAgICAgICAgKSwKICAgIHZvaWQgKiBWMzk5LCAg
CiAgICBsb25nIFY0MDAgIAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjQwNSgKICAgIFYzODggVjM5
NSwgIAogICAgVjM5NCAqVjQwNiwgIAogICAgdm9pZCAqKiBWNDA3LCAgCiAgICBsb25nICogVjQw
OCAgCiAgICApCjsgIApleHRlcm4KVjE1MCAqIFY0MDkoIFYzODggVjM5NSApCjsgIApleHRlcm4K
aW50IFY0MTAoIFYzODggVjM5NSApCjsgIApleHRlcm4KaW50IFY0MTEoIFYzODggVjM5NSApCjsg
IApleHRlcm4KaW50IFY0MTIoIFYzODggVjM5NSApCjsgIApleHRlcm4KaW50IFY0MTMoIFYzODgg
VjM5NSwgaW50IFY0MTQgKQo7ICAKZXh0ZXJuCmludCBWNDE1KCBWMzg4IFYzOTUgKQo7ICAKZXh0
ZXJuCmludCBWNDE2KCBWMzg4IFYzOTUgKQo7ICAKZXh0ZXJuCmludCBWNDE3KCBWMzg4IFYzOTUs
IGludCBWNDE4ICkKOyAgCmV4dGVybgppbnQgVjQxOSggVjM4OCBWMzk1ICkKOyAgCmV4dGVybgp2
b2lkIFY0MjAoIFYzODggVjM5NSApCjsgIApleHRlcm4Kdm9pZCBWNDIxKCBWMzg4IFYzOTUgKQo7
ICAKZXh0ZXJuCnZvaWQgVjQyMiggVjM4OCBWMzk1ICkKOyAgCmV4dGVybgpWMzg4IFY0MjMoIHZv
aWQgKQo7ICAKZXh0ZXJuCmludCBWNDI0KFYzODggVjM5NSkKOyAgCmV4dGVybgp2b2lkIFY0MjUo
IFYzODggVjM5NSwgY29uc3QgY2hhciAqVjQyNiwgLi4uICkKOyAgCmV4dGVybgp2b2lkIFY0Mjco
IFYzODggVjM5NSwgY29uc3QgY2hhciAqVjQyNiwgVjM4NiBWNDI4ICkKOyAgCmV4dGVybgp2b2lk
IFY0MjkoIFYzODggVjM5NSwgY29uc3QgY2hhciAqVjMzOSwgaW50IFY0MzAgKQo7ICAKZXh0ZXJu
CnZvaWQgVjQzMSggVjM4OCBWMzk1LCBjb25zdCBjaGFyICpWMzk3LCBpbnQgVjQzMCApCjsgIApl
eHRlcm4Kdm9pZCBWNDMyKCBWMzg4IFYzOTUsIGNvbnN0IGNoYXIgKlYzOTcgKQo7ICAKZXh0ZXJu
CnZvaWQgVjQzMyggVjM4OCBWMzk1LCBpbnQgVjQzNCApCjsgIApleHRlcm4Kdm9pZCBWNDM1KCBW
Mzg4IFYzOTUsIGludCBWNDM2ICkKOyAgCmV4dGVybgp2b2lkIFY0MzcoIFYzODggVjM5NSwgY29u
c3QgY2hhciAqVjM5NywgaW50IFY0MzAgKQo7ICAKZXh0ZXJuCnZvaWQgVjQzOCggVjM4OCBWMzk1
LCBjb25zdCBjaGFyICpWMzk3ICkKOyAgCmV4dGVybgp2b2lkIFY0MzkoCiAgICBWMzg4IFYzOTUs
CiAgICBpbnQgVjQ0MCAgCiAgICApCjsgIApleHRlcm4KVjM4OCBWNDQxKCBjb25zdCBjaGFyICpW
NDQyLCBjb25zdCBjaGFyICpWNDQzICkKOyAgCmV4dGVybgpWMTUwICogVjQ0NCggVjM4OCBWMzk1
LCBWMTUwICogVjQ0NSwgaW50IFY0NDYgKQo7ICAKZXh0ZXJuClYzODggVjQ0NyggY29uc3QgY2hh
ciAqVjQ0OCwgaW50IFY0NDkgKQo7ICAKZXh0ZXJuCnZvaWQgVjQ1MCggVjM4OCBWNDUxICkKOyAg
CmV4dGVybgp1bnNpZ25lZCBWNDUyKAogICAgVjM4OCBWNDUzLCAgCiAgICB1bnNpZ25lZCBWNDU0
ICAKICAgICkKOyAgCmV4dGVybgppbnQgVjQ1NSgpCjsgIAp0eXBlZGVmIGludCBWNDU2OyAgCnR5
cGVkZWYgaW50IFY0NTc7ICAKdHlwZWRlZiBpbnQgVjQ1ODsgIAp0eXBlZGVmIGVudW0gewogICAg
VjQ1OSA9IDAsICAKICAgIFY0NjAgPSAwLAogICAgVjQ2MSwKICAgIFY0NjIsCiAgICBWNDYzLAog
ICAgVjQ2NCwKICAgIFY0NjUsCiAgICBWNDY2LAogICAgVjQ2NywKICAgIFY0NjgsCiAgICBWNDY5
LAogICAgVjQ3MCwKICAgIFY0NzEgIAp9IFY0NzI7CnR5cGVkZWYgZW51bSB7CiAgIFY0NzMgPSAw
LAogICBWNDc0ID0gMQp9IFY0NzU7CnR5cGVkZWYgc3RydWN0IHsKICAgIHVuc2lnbmVkIFY0NzZb
Ml1bVjQ3MV07CiAgICB1bnNpZ25lZCBWNDc3OwogICAgdW5zaWduZWQgVjQ3ODsKICAgIHVuc2ln
bmVkIFY0Nzk7CiAgICB1bnNpZ25lZCBWNDgwOwogICAgVjQ1NiBWNDgxW1Y0NzFdOwogICAgc3Ry
dWN0IHsKICAgICAgICBWNDU2IFY0ODJbVjQ3MV1bOV07CiAgICAgICAgVjQ1NiBWNDgzW1Y0NzFd
WzldOwogICAgfSBWNDg0OwogICAgc3RydWN0IHsKICAgICAgICBWNDU2IFY0ODJbVjQ3MV07CiAg
ICB9IFY0ODU7Cn0gVjQ4NjsKZXh0ZXJuClY0ODYgVjQ4NyA7ICAKZXh0ZXJuCnZvaWQgVjQ4OCh2
b2lkKQo7ICAKc3RhdGljIGlubGluZSB1bnNpZ25lZCBWNDc2KFY0NzUgVjQ4OSwgVjQ3MiBWNDkw
KQp7CiAgICByZXR1cm4gVjQ4Ny5WNDc2W1Y0ODldW1Y0OTBdOwp9CnN0YXRpYyBpbmxpbmUgdW5z
aWduZWQgVjQ3Nyh2b2lkKQp7CiAgICByZXR1cm4gVjQ4Ny5WNDc3Owp9CnN0YXRpYyBpbmxpbmUg
dW5zaWduZWQgVjQ3OCh2b2lkKQp7CiAgICByZXR1cm4gVjQ4Ny5WNDc4Owp9CnN0YXRpYyBpbmxp
bmUgdW5zaWduZWQgVjQ3OSh2b2lkKQp7CiAgICByZXR1cm4gVjQ4Ny5WNDc5Owp9CnN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgVjQ4MCh2b2lkKQp7CiAgICByZXR1cm4gVjQ4Ny5WNDgwOwp9CnN0YXRp
YyBpbmxpbmUgVjQ1NiBWNDgxKFY0NzIgVjQ5MCkKewogICAgcmV0dXJuIFY0ODcuVjQ4MVtWNDkw
XTsKfQpzdGF0aWMgaW5saW5lIFY0NTYgVjQ5MShWNDcyIFY0OTAsIGludCBWNDkyKQp7CiAgICBy
ZXR1cm4gVjQ4Ny5WNDg0LlY0ODJbVjQ5MF1bVjQ5Mi0xXTsKfQpzdGF0aWMgaW5saW5lIFY0NTYg
VjQ5MyhWNDcyIFY0OTAsIGludCBWNDkyKQp7CiAgICByZXR1cm4gVjQ4Ny5WNDg0LlY0ODNbVjQ5
MF1bVjQ5Mi0xXTsKfQpzdGF0aWMgaW5saW5lIGludCBWNDk0KFY0NzIgVjQ5MCkKewogICAgcmV0
dXJuIFY0ODcuVjQ4NS5WNDgyW1Y0OTBdOwp9CnR5cGVkZWYgc3RydWN0IHsKICAgIHVuc2lnbmVk
IFY0OTUsIFY0OTYsIFY0OTdbMjU2XTsKfSBWNDk4Owp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNp
Z25lZCBWNDk5WygoKDE4NDApKzIzKS8yNCldOwp9IFY1MDA7CnR5cGVkZWYgZW51bSB7CiAgICBW
NTAxID0gMCwKICAgIFY1MDIgPSAxLCAgCiAgICBWNTAzID0gMiwgIAogICAgVjUwNCA9IDMyICAK
fSBWNTA1Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWNDU2IFY1MDZbVjUwNF07CiAgICBWNDU2IFY1
MDdbVjUwNF07CiAgICBWNDU2IFY1MDhbVjUwNF07CiAgICBzdHJ1Y3QgewogICAgICAgIGludCBW
NTA5WzJdW1Y1MDRdOwogICAgICAgIGludCBWNTEwWzJdW1Y1MDRdW1Y0NzFdOwogICAgfSBWNTEx
Owp9IFY1MTI7CmV4dGVybgpWNTEyIFY1MTMgOyAgCmV4dGVybgp2b2lkIFY1MTQodm9pZCkgOyAg
CnN0YXRpYyBpbmxpbmUgVjQ1NiBWNTE1KFY1MDUgVjUxNikKewogICAgcmV0dXJuIFY1MTMuVjUw
NltWNTE2XTsKfQpzdGF0aWMgaW5saW5lIFY0NTYgVjUxNyhWNTA1IFY1MTYpCnsKICAgIHJldHVy
biBWNTEzLlY1MDdbVjUxNl07Cn0Kc3RhdGljIGlubGluZSBWNDU2IFY1MTgoVjUwNSBWNTE2KQp7
CiAgICByZXR1cm4gVjUxMy5WNTA4W1Y1MTZdOwp9CnN0YXRpYyBpbmxpbmUgaW50IFY1MTkoVjUw
NSBWNTE2LCBWNDc1IFY1MjApCnsKICAgIHJldHVybiBWNTEzLlY1MTEuVjUwOVtWNTIwXVtWNTE2
XTsKfQpzdGF0aWMgaW5saW5lIGludCBWNTIxKFY1MDUgVjUxNiwgVjQ3NSBWNTIwLCBpbnQgVjUy
MikKewogICAgcmV0dXJuIFY1MTMuVjUxMS5WNTEwW1Y1MjBdW1Y1MTZdW1Y1MjJdOwp9CnN0YXRp
YyBpbmxpbmUgaW50IFY1MjMoVjUwNSBWNTE2LCBWNDc1IFY1MjApCnsKICAgIGludCBWNTIyID0g
KCBWNTE5KFY1MTYsVjUyMCkgLSAxICk7CiAgICByZXR1cm4gVjUxMy5WNTExLlY1MTBbVjUyMF1b
VjUxNl1bVjUyMl07Cn0KdHlwZWRlZiB1bnNpZ25lZCBWNTI0OwpzdHJ1Y3QgVjUyNTsKdHlwZWRl
ZiBzdHJ1Y3QgVjUyNSBWNTI2OwpzdHJ1Y3QgVjUyNzsKdHlwZWRlZiBlbnVtIHsKICAgIFY1Mjgs
CiAgICBWNTI5LAogICAgVjUzMCwKICAgIFY1MzEsCiAgICBWNTMyLAogICAgVjUzMwp9IFY1MzQ7
CnN0YXRpYyBpbmxpbmUgaW50IFY1MzUoIHVuc2lnbmVkIFY1MzYgKQp7CiAgICByZXR1cm4gKCgo
VjUzNiAmIDB4ODAwMDAwKSAhPSAwKSA/CiAgICAgICAgKFY1MzYgfCAofjAgPDwgMjQpKSA6IFY1
MzYgKTsKfQpzdGF0aWMgaW5saW5lIGludCBWNTM3KHVuc2lnbmVkIFY1MzgpCnsKICAgIHJldHVy
biAoaW50KSAoKChWNTM4ICYgMHg4MDAwMDApID09IDAgKSA/CiAgICAgICAgKFY1MzggJiAweEZG
RkZGRikgOiAoVjUzOCB8IH4weEZGRkZGRiApKTsKfQpzdGF0aWMgaW5saW5lIHZvaWQgVjUzOSgK
ICAgIHVuc2lnbmVkIGludCBWNTQwLCAgCiAgICB1bnNpZ25lZCBpbnQgVjU0MSAgCiAgICApCnsK
fQpzdGF0aWMgaW5saW5lIHZvaWQgVjU0MigKICAgIHVuc2lnbmVkIGludCBWNTQwLCAgCiAgICB1
bnNpZ25lZCBpbnQgVjU0MSAgCiAgICApCnsKfQp0eXBlZGVmIHN0cnVjdCB7CiAgICBzdHJ1Y3Qg
ewogICAgICAgIHVuc2lnbmVkIFY1NDNbMl0gICA7CiAgICB9IFY1NDQ7CiAgICBzdHJ1Y3Qgewog
ICAgICAgIHVuc2lnbmVkIFY1NDUgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNTQ2ICAgOyAgCiAg
ICB9IFY1NDc7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY1NDggICA7ICAKICAgICAg
ICB1bnNpZ25lZCBWNTQ5ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU1MCAgIDsgIAogICAgICAg
IHVuc2lnbmVkIFY1NTEgICA7ICAKICAgIH0gVjU1MjsKICAgIHN0cnVjdCB7CiAgICAgICAgdW5z
aWduZWQgVjU1MyAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1NTQgICA7ICAKICAgICAgICB1bnNp
Z25lZCBWNTU1ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU1NiAgIDsgIAogICAgfSBWNTU3Owog
ICAgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBWNTU4ICAgOyAgCiAgICAgICAgdW5zaWduZWQg
VjU1OSAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1NjAgICA7ICAKICAgICAgICB1bnNpZ25lZCBW
NTYxICAgOyAgCiAgICB9IFY1NjI7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY1NDNb
M10gICA7CiAgICB9IFY1NjM7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY1NjQgICA7
ICAKICAgICAgICB1bnNpZ25lZCBWNTY1ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU2NiAgIDsg
IAogICAgICAgIHVuc2lnbmVkIFY1NjcgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNTY4ICAgOyAg
CiAgICAgICAgdW5zaWduZWQgVjU2OSAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1NzAgICA7ICAK
ICAgICAgICB1bnNpZ25lZCBWNTcxICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU3MiAgIDsgIAog
ICAgICAgIHVuc2lnbmVkIFY1NzMgICA7ICAKICAgIH0gVjU3NDsKICAgIHN0cnVjdCB7CiAgICAg
ICAgdW5zaWduZWQgVjU3NSAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1NzYgICA7ICAKICAgICAg
ICB1bnNpZ25lZCBWNTc3ICAgOyAgCiAgICB9IFY1Nzg7CiAgICBzdHJ1Y3QgewogICAgICAgIHVu
c2lnbmVkIFY1NDNbMV0gICA7CiAgICB9IFY1Nzk7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2ln
bmVkIFY1ODAgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNTgxICAgOyAgCiAgICAgICAgdW5zaWdu
ZWQgVjU4MiAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1ODMgICA7ICAKICAgICAgICB1bnNpZ25l
ZCBWNTg0ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU4NSAgIDsgIAogICAgICAgIHVuc2lnbmVk
IFY1ODYgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNTg3ICAgOyAgCiAgICAgICAgdW5zaWduZWQg
VjU4OCAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1ODkgICA7ICAKICAgICAgICB1bnNpZ25lZCBW
NTkwICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU5MSAgIDsgIAogICAgfSBWNTkyOwogICAgc3Ry
dWN0IHsKICAgICAgICB1bnNpZ25lZCBWNTkzICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjU5NCAg
IDsgIAogICAgICAgIHVuc2lnbmVkIFY1OTUgICA7ICAKICAgIH0gVjU5NjsKICAgIHN0cnVjdCB7
CiAgICAgICAgdW5zaWduZWQgVjU0M1sxXSAgIDsKICAgIH0gVjU5NzsKICAgIHN0cnVjdCB7CiAg
ICAgICAgdW5zaWduZWQgVjU5OCAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY1OTkgICA7ICAKICAg
ICAgICB1bnNpZ25lZCBWNjAwICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYwMSAgIDsgIAogICAg
ICAgIHVuc2lnbmVkIFY2MDIgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjAzICAgOyAgCiAgICAg
ICAgdW5zaWduZWQgVjYwNCAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2MDUgICA7ICAKICAgICAg
ICB1bnNpZ25lZCBWNjA2ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYwNyAgIDsgIAogICAgICAg
IHVuc2lnbmVkIFY2MDggICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjA5ICAgOyAgCiAgICB9IFY2
MTA7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY2MTEgICA7ICAKICAgICAgICB1bnNp
Z25lZCBWNjEyICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYxMyAgIDsgIAogICAgfSBWNjE0Owog
ICAgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBWNTQzWzJdICAgOwogICAgfSBWNjE1OwogICAg
c3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBWNjE2ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYx
NyAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2MTggICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjE5
ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYyMCAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2MjEg
ICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjIyICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYyMyAg
IDsgIAogICAgfSBWNjI0OwogICAgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBWNTQzWzE0XSAg
IDsKICAgIH0gVjYyNTsKICAgIHN0cnVjdCB7CiAgICAgICAgdW5zaWduZWQgVjYyNiAgIDsgIAog
ICAgICAgIHVuc2lnbmVkIFY2MjcgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjI4ICAgOyAgCiAg
ICAgICAgdW5zaWduZWQgVjYyOSAgIDsgIAogICAgfSBWNjMwOwogICAgc3RydWN0IHsKICAgICAg
ICB1bnNpZ25lZCBWNjMxICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYzMiAgIDsgIAogICAgICAg
IHVuc2lnbmVkIFY2MzMgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjM0ICAgOyAgCiAgICB9IFY2
MzU7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY2MzYgICA7ICAKICAgICAgICB1bnNp
Z25lZCBWNjM3ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjYzOCAgIDsgIAogICAgICAgIHVuc2ln
bmVkIFY2MzkgICA7ICAKICAgIH0gVjY0MDsKICAgIHN0cnVjdCB7CiAgICAgICAgdW5zaWduZWQg
VjY0MSAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2NDIgICA7ICAKICAgICAgICB1bnNpZ25lZCBW
NjQzICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY0NCAgIDsgIAogICAgfSBWNjQ1OwogICAgc3Ry
dWN0IHsKICAgICAgICB1bnNpZ25lZCBWNjQ2ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY0NyAg
IDsgIAogICAgICAgIHVuc2lnbmVkIFY2NDggICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjQ5ICAg
OyAgCiAgICB9IFY2NTA7CiAgICBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIFY2NTEgICA7ICAK
ICAgICAgICB1bnNpZ25lZCBWNjUyICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY1MyAgIDsgIAog
ICAgICAgIHVuc2lnbmVkIFY2NTQgICA7ICAKICAgIH0gVjY1NTsKICAgIHN0cnVjdCB7CiAgICAg
ICAgdW5zaWduZWQgVjY1NiAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2NTcgICA7ICAKICAgICAg
ICB1bnNpZ25lZCBWNjU4ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY1OSAgIDsgIAogICAgICAg
IHVuc2lnbmVkIFY2NjAgICA7ICAKICAgIH0gVjY2MTsKICAgIHN0cnVjdCB7CiAgICAgICAgdW5z
aWduZWQgVjY2MiAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2NjMgICA7ICAKICAgICAgICB1bnNp
Z25lZCBWNjY0ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY2NSAgIDsgIAogICAgICAgIHVuc2ln
bmVkIFY2NjYgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjY3ICAgOyAgCiAgICAgICAgdW5zaWdu
ZWQgVjY2OCAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2NjkgICA7ICAKICAgICAgICB1bnNpZ25l
ZCBWNjcwICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY3MSAgIDsgIAogICAgICAgIHVuc2lnbmVk
IFY2NzIgICA7ICAKICAgIH0gVjY3MzsKfSBWNjc0Owp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNp
Z25lZCBWNTQ0WzQ4XSAgIDsKICAgIHN0cnVjdCB7ICAKICAgICAgICB1bnNpZ25lZCBWNjc1ICAg
OyAgCiAgICAgICAgdW5zaWduZWQgVjY3NiAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2NzcgICA7
ICAKICAgICAgICB1bnNpZ25lZCBWNjc4ICAgOyAgCiAgICAgICAgdW5zaWduZWQgVjY3OSAgIDsg
IAogICAgICAgIHVuc2lnbmVkIFY2ODAgICA7ICAKICAgICAgICB1bnNpZ25lZCBWNjgxICAgOyAg
CiAgICAgICAgdW5zaWduZWQgVjY4MiAgIDsgIAogICAgICAgIHVuc2lnbmVkIFY2ODMgICA7ICAK
ICAgIH0gVjY4NDsKICAgIHVuc2lnbmVkIFY1NjNbN10gICA7Cn0gVjY4NTsKdHlwZWRlZiBlbnVt
IHsKICBWNjg2ID0gMHgwMCwgIAogIFY2ODcgPSAweDAyLCAgCiAgVjY4OCA9IDB4MDQsICAKICBW
Njg5ID0gMHgwNiwgIAogIFY2OTAgPSAweDA4LCAgCiAgVjY5MSA9IDB4MEEsICAKICBWNjkyID0g
MHgxMCwgIAogIFY2OTMgPSAweDEyLCAgCiAgVjY5NCA9IDB4MTQsICAKICBWNjk1ID0gMHgxNiwg
IAogIFY2OTYgPSAweDE4LCAgCiAgVjY5NyA9IDB4MUEsICAKICBWNjk4ID0gMHgxQywgIAogIFY2
OTkgPSAweDFFLCAgCiAgVjcwMCA9IDB4MjAsICAKICBWNzAxID0gMHgyMiwgIAogIFY3MDIgPSAw
eDI0LCAgCiAgVjcwMyA9IDB4MjYsICAKICBWNzA0ID0gMHgyOCwgIAogIFY3MDUgPSAweDJBLCAg
CiAgVjcwNiA9IDB4MkMsICAKICBWNzA3ID0gMHgyRSwgIAogIFY3MDggPSAweDMwLCAgCiAgVjcw
OSA9IDB4MzIsICAKICBWNzEwID0gMHgzNCwgIAogIFY3MTEgPSAweDM2LCAgCiAgVjcxMiA9IDB4
MzgsICAKICBWNzEzID0gMHgzQSwgIAogIFY3MTQgPSAweDQwLCAgCiAgVjcxNSA9IDB4NDIsICAK
ICBWNzE2ID0gMHg0NCwgIAogIFY3MTcgPSAweDQ2LCAgCiAgVjcxOCA9IDB4NDgsICAKICBWNzE5
ID0gMHg0QSwgIAogIFY3MjAgPSAweDUwLCAgCiAgVjcyMSA9IDB4NTIsICAKICBWNzIyID0gMHg1
NCwgIAogIFY3MjMgPSAweDU2LCAgCiAgVjcyNCA9IDB4NTgsICAKICBWNzI1ID0gMHg2MCwgIAog
IFY3MjYgPSAweDYyLCAgCiAgVjcyNyA9IDB4NjQsICAKICBWNzI4ID0gMHg2OCwgIAogIFY3Mjkg
PSAweDZBICAKfSBWNzMwOwp0eXBlZGVmIGVudW0gewogIFY3MzEgPSAtMSwKICBWNzMyID0gMHgw
LAogIFY3MzMgPSAweDEsCiAgVjczNCA9IDB4MiwKICBWNzM1ID0gMHgzLAogIFY3MzYgPSAweDQs
CiAgVjczNyA9IDB4NSwKICBWNzM4ID0gMHg2LAogIFY3MzkgPSAweDcsCiAgVjc0MCA9IDB4OCwK
ICBWNzQxID0gMHg5LAogIFY3NDIgPSAweGEsCiAgVjc0MyA9IDB4YiwKICBWNzQ0ID0gMHhjLAog
IFY3NDUgPSAweGQsCiAgVjc0NiA9IDB4ZSwKICBWNzQ3ID0gMHhmLAogIFY3NDggPSAweDEwLAog
IFY3NDkgPSAweDExLAogIFY3NTAgPSAweDEyLAogIFY3NTEgPSAweDEzLAogIFY3NTIgPSAweDE0
LAogIFY3NTMgPSAweDE1LCAgCiAgVjc1NCA9IDB4MTYgIAp9IFY3NTU7CnR5cGVkZWYgZW51bSB7
CiAgICBWNzU2ID0gKChpbnQpMHhGRkZGODIpLCAgCiAgICBWNzU3ID0gKChpbnQpMHhGRkZGODMp
LCAgCiAgICBWNzU4ID0gKChpbnQpMHhGRkZGODQpLCAgCiAgICBWNzU5ID0gKChpbnQpMHhGRkZG
ODUpLCAgCiAgICBWNzYwID0gKChpbnQpMHhGRkZGODYpLCAgCiAgICBWNzYxID0gKChpbnQpMHhG
RkZGODcpLCAgCiAgICBWNzYyID0gKChpbnQpMHhGRkZGODgpLCAgCiAgICBWNzYzID0gKChpbnQp
MHhGRkZGODkpLCAgCiAgICBWNzY0ID0gKChpbnQpMHhGRkZGOEEpLCAgCiAgICBWNzY1ID0gKChp
bnQpMHhGRkZGOEIpLCAgCiAgICBWNzY2ID0gKChpbnQpMHhGRkZGOEMpLCAgCiAgICBWNzY3ID0g
KChpbnQpMHhGRkZGOEQpLCAgCiAgICBWNzY4ID0gKChpbnQpMHhGRkZGOEUpLCAgCiAgICBWNzY5
ID0gKChpbnQpMHhGRkZGOEYpLCAgCiAgICBWNzcwID0gKChpbnQpMHhGRkZGOTMpLCAgCiAgICBW
NzcxID0gKChpbnQpMHhGRkZGOTQpLCAgCiAgICBWNzcyID0gKChpbnQpMHhGRkZGOTUpLCAgCiAg
ICBWNzczID0gKChpbnQpMHhGRkZGOTYpLCAgCiAgICBWNzc0ID0gKChpbnQpMHhGRkZGOTcpLCAg
CiAgICBWNzc1ID0gKChpbnQpMHhGRkZGOTgpLCAgCiAgICBWNzc2ID0gKChpbnQpMHhGRkZGOTkp
LCAgCiAgICBWNzc3ID0gKChpbnQpMHhGRkZGOUEpLCAgCiAgICBWNzc4ID0gKChpbnQpMHhGRkZG
OUIpLCAgCiAgICBWNzc5ID0gKChpbnQpMHhGRkZGOUMpLCAgCiAgICBWNzgwID0gKChpbnQpMHhG
RkZGOUQpLCAgCiAgICBWNzgxID0gKChpbnQpMHhGRkZGOUUpLCAgCiAgICBWNzgyID0gKChpbnQp
MHhGRkZGOUYpLCAgCiAgICBWNzgzID0gKChpbnQpMHhGRkZGQTEpLCAgCiAgICBWNzg0ID0gKChp
bnQpMHhGRkZGQTIpLCAgCiAgICBWNzg1ID0gKChpbnQpMHhGRkZGQTMpLCAgCiAgICBWNzg2ID0g
KChpbnQpMHhGRkZGQTQpLCAgCiAgICBWNzg3ID0gKChpbnQpMHhGRkZGQTUpLCAgCiAgICBWNzg4
ID0gKChpbnQpMHhGRkZGQTYpLCAgCiAgICBWNzg5ID0gKChpbnQpMHhGRkZGQTcpLCAgCiAgICBW
NzkwID0gKChpbnQpMHhGRkZGQTgpLCAgCiAgICBWNzkxID0gKChpbnQpMHhGRkZGQTkpLCAgCiAg
ICBWNzkyID0gKChpbnQpMHhGRkZGQUEpLCAgCiAgICBWNzkzID0gKChpbnQpMHhGRkZGQUIpLCAg
CiAgICBWNzk0ID0gKChpbnQpMHhGRkZGQUMpLCAgCiAgICBWNzk1ID0gKChpbnQpMHhGRkZGQUQp
LCAgCiAgICBWNzk2ID0gKChpbnQpMHhGRkZGQUUpLCAgCiAgICBWNzk3ID0gKChpbnQpMHhGRkZG
QUYpLCAgCiAgICBWNzk4ID0gKChpbnQpMHhGRkZGQjEpLCAgCiAgICBWNzk5ID0gKChpbnQpMHhG
RkZGQjIpLCAgCiAgICBWODAwID0gKChpbnQpMHhGRkZGQjMpLCAgCiAgICBWODAxID0gKChpbnQp
MHhGRkZGQjQpLCAgCiAgICBWODAyID0gKChpbnQpMHhGRkZGQjUpLCAgCiAgICBWODAzID0gKChp
bnQpMHhGRkZGQjYpLCAgCiAgICBWODA0ID0gKChpbnQpMHhGRkZGQjcpLCAgCiAgICBWODA1ID0g
KChpbnQpMHhGRkZGQjgpLCAgCiAgICBWODA2ID0gKChpbnQpMHhGRkZGQjkpLCAgCiAgICBWODA3
ID0gKChpbnQpMHhGRkZGQkEpLCAgCiAgICBWODA4ID0gKChpbnQpMHhGRkZGQkIpLCAgCiAgICBW
ODA5ID0gKChpbnQpMHhGRkZGQkMpLCAgCiAgICBWODEwID0gKChpbnQpMHhGRkZGQkQpLCAgCiAg
ICBWODExID0gKChpbnQpMHhGRkZGQkUpLCAgCiAgICBWODEyID0gKChpbnQpMHhGRkZGQkYpLCAg
CiAgICBWODEzID0gKChpbnQpMHhGRkZGQzUpLCAgCiAgICBWODE0ID0gKChpbnQpMHhGRkZGQzYp
LCAgCiAgICBWODE1ID0gKChpbnQpMHhGRkZGQzcpLCAgCiAgICBWODE2ID0gKChpbnQpMHhGRkZG
QzgpLCAgCiAgICBWODE3ID0gKChpbnQpMHhGRkZGQzkpLCAgCiAgICBWODE4ID0gKChpbnQpMHhG
RkZGQ0EpLCAgCiAgICBWODE5ID0gKChpbnQpMHhGRkZGQ0IpLCAgCiAgICBWODIwID0gKChpbnQp
MHhGRkZGQ0MpLCAgCiAgICBWODIxID0gKChpbnQpMHhGRkZGQ0QpLCAgCiAgICBWODIyID0gKChp
bnQpMHhGRkZGQ0UpLCAgCiAgICBWODIzID0gKChpbnQpMHhGRkZGQ0YpLCAgCiAgICBWODI0ID0g
KChpbnQpMHhGRkZGRDgpLCAgCiAgICBWODI1ID0gKChpbnQpMHhGRkZGRDkpLCAgCiAgICBWODI2
ID0gKChpbnQpMHhGRkZGREEpLCAgCiAgICBWODI3ID0gKChpbnQpMHhGRkZGREIpLCAgCiAgICBW
ODI4ID0gKChpbnQpMHhGRkZGREMpLCAgCiAgICBWODI5ID0gKChpbnQpMHhGRkZGREQpLCAgCiAg
ICBWODMwID0gKChpbnQpMHhGRkZGREUpLCAgCiAgICBWODMxID0gKChpbnQpMHhGRkZGREYpLCAg
CiAgICBWODMyID0gKChpbnQpMHhGRkZGRTApLCAgCiAgICBWODMzID0gKChpbnQpMHhGRkZGRTEp
LCAgCiAgICBWODM0ID0gKChpbnQpMHhGRkZGRTIpLCAgCiAgICBWODM1ID0gKChpbnQpMHhGRkZG
RTMpLCAgCiAgICBWODM2ID0gKChpbnQpMHhGRkZGRTQpLCAgCiAgICBWODM3ID0gKChpbnQpMHhG
RkZGRTUpLCAgCiAgICBWODM4ID0gKChpbnQpMHhGRkZGRTYpLCAgCiAgICBWODM5ID0gKChpbnQp
MHhGRkZGRTcpLCAgCiAgICBWODQwID0gKChpbnQpMHhGRkZGRTgpLCAgCiAgICBWODQxID0gKChp
bnQpMHhGRkZGRTkpLCAgCiAgICBWODQyID0gKChpbnQpMHhGRkZGRUEpLCAgCiAgICBWODQzID0g
KChpbnQpMHhGRkZGRUIpLCAgCiAgICBWODQ0ID0gKChpbnQpMHhGRkZGRUMpLCAgCiAgICBWODQ1
ID0gKChpbnQpMHhGRkZGRUQpLCAgCiAgICBWODQ2ID0gKChpbnQpMHhGRkZGRUUpLCAgCiAgICBW
ODQ3ID0gKChpbnQpMHhGRkZGRUYpLCAgCiAgICBWODQ4ID0gKChpbnQpMHhGRkZGRjApLCAgCiAg
ICBWODQ5ID0gKChpbnQpMHhGRkZGRjEpLCAgCiAgICBWODUwID0gKChpbnQpMHhGRkZGRjIpLCAg
CiAgICBWODUxID0gKChpbnQpMHhGRkZGRjMpLCAgCiAgICBWODUyID0gKChpbnQpMHhGRkZGRjQp
LCAgCiAgICBWODUzID0gKChpbnQpMHhGRkZGRjUpLCAgCiAgICBWODU0ID0gKChpbnQpMHhGRkZG
RjYpLCAgCiAgICBWODU1ID0gKChpbnQpMHhGRkZGRjcpLCAgCiAgICBWODU2ID0gKChpbnQpMHhG
RkZGRjgpLCAgCiAgICBWODU3ID0gKChpbnQpMHhGRkZGRjkpLCAgCiAgICBWODU4ID0gKChpbnQp
MHhGRkZGRkEpLCAgCiAgICBWODU5ID0gKChpbnQpMHhGRkZGRkIpLCAgCiAgICBWODYwID0gKChp
bnQpMHhGRkZGRkMpLCAgCiAgICBWODYxID0gKChpbnQpMHhGRkZGRkQpLCAgCiAgICBWODYyID0g
KChpbnQpMHhGRkZGRkUpLCAgCiAgICBWODYzID0gKChpbnQpMHhGRkZGRkYpLCAgCiAgICBWODY0
ID0gKChpbnQpMHhGRkZGQzQpLCAgCiAgICBWODY1ID0gKChpbnQpMHhGRkZGQzgpLCAgCiAgICBW
ODY2ID0gKChpbnQpMHhGRkZGQzkpICAKfSBWODY3Owp0eXBlZGVmIHVuc2lnbmVkICpWODY4Owpl
bnVtIFY4NjkgewogICAgVjg3MCA9IDAsCiAgICBWODcxID0gMSwgICAKICAgIFY4NzIgPSAxLCAg
IAogICAgVjg3MywKICAgIFY4NzQsCiAgICBWODc1LAogICAgVjg3NiwKICAgIFY4NzcsCiAgICBW
ODc4LAogICAgVjg3OSwKICAgIFY4ODAsCiAgICBWODgxLAogICAgVjg4MiAgCn07CmVudW0gVjg4
Mwp7CiAgICBWODg0ID0gMCwgIAogICAgVjg4NSwgIAogICAgVjg4NiAgCn07CnR5cGVkZWYgZW51
bSBWODgzIFY4ODc7CmVudW0gewogICAgVjg4OCA9IDAsCiAgICBWODg5ID0gMSwKICAgIFY4OTAg
PSAwCn07CnR5cGVkZWYgaW50IFY4OTE7CnR5cGVkZWYgc3RydWN0IHsKICAgIGVudW0gVjg2OSBW
ODkyOwogICAgaW50IFY4OTM7CiAgICBpbnQgVjg5NDsgIAogICAgVjQ3MiBWNDkwOyAgCiAgICBW
ODg3IFY4OTU7ICAKICAgIHVuc2lnbmVkIFY4OTY7ICAKICAgIHVuc2lnbmVkIFY4OTc7ICAKICAg
IHVuc2lnbmVkIFY4OTg7ICAKICAgIFY0OTggKlY4OTk7CiAgICBpbnQgVjkwMDsKICAgIGludCBW
OTAxOyAgCiAgICBpbnQgVjkwMjsgIAogICAgaW50IFY5MDNbOF07ICAKICAgIGludCBWOTA0OyAg
CiAgICBpbnQgVjkwNTsgIAogICAgdW5zaWduZWQgVjkwNlsoKCgxODQwKSsyMykvMjQpXSAgOwog
ICAgaW50IFY5MDdbOF07CiAgICBzdHJ1Y3QgewogICAgICAgIGludCBWNDk1OwogICAgICAgIGlu
dCBWOTA4OwogICAgICAgIGludCBWOTA5OyAgCiAgICB9IFY5MTA7ICAKICAgIGludCBWOTExOyAg
CiAgICBpbnQgVjkxMjsKICAgIGludCBWOTEzOyAgCiAgICBWODkxIFY5MTRbOF07ICAKICAgIHVu
aW9uIHsKICAgICAgICBpbnQgVjkxNVs1ICogMiBdOyAgCiAgICAgICAgaW50ICpWOTE2OyAgCiAg
ICB9IFY5MTc7CiAgICBpbnQgVjkxODsKICAgIHZvaWQgKlY5MTk7ICAKfSBWOTIwOwp0eXBlZGVm
IGVudW0KewogICAgVjkyMSwgIAogICAgVjkyMiwgIAogICAgVjkyMywgIAogICAgVjkyNCAgCn0g
VjkyNTsKdHlwZWRlZiBzdHJ1Y3QgewogICAgZW51bSBWODY5IFY4OTI7CiAgICBpbnQgVjg5MzsK
ICAgIGludCBWODk0OyAgCiAgICBWNDcyIFY0OTA7CiAgICB1bnNpZ25lZCBWODk2OyAgCiAgICB1
bnNpZ25lZCBWODk3OyAgCiAgICB1bnNpZ25lZCBWODk4OyAgCiAgICBWNDk4ICpWOTI2OyAgCiAg
ICBzdHJ1Y3QgewogICAgICAgIGludCBWOTI3IDsKICAgICAgICBpbnQgVjkyOCA7CiAgICAgICAg
aW50IFY5MjkgOwogICAgICAgIGludCBWOTMwOwogICAgICAgIFY5MjUgVjg5MjsKICAgICAgICBp
bnQgVjkzMTsgIAogICAgfSBWOTMyOwogICAgdW5zaWduZWQgVjM1MlsoKCgxODQwKSsyMykvMjQp
XSAgOwogICAgdm9pZCAqVjkxOTsgIAp9IFY5MzM7CnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBW
OTM0WzkgKiAyICBdIDsKICAgIGludCBWOTM1WzkgKiAyICBdIDsKICAgIHZvaWQgKlY5MzY7Cn0g
VjkzNzsKZW51bSB7CiAgICBWOTM4ID0gMCwKICAgIFY5MzkgPSAxCn07CnR5cGVkZWYgaW50ICgq
Vjk0MCkodm9pZCk7CnR5cGVkZWYgdm9pZCAoKlY5NDEpKHZvaWQpOwp0eXBlZGVmIHN0cnVjdCB7
CiAgICBWODY4IFY5NDI7CiAgICB1bnNpZ25lZCBWOTQzOwogICAgaW50IFY5NDQ7CiAgICBpbnQg
Vjk0NTsKICAgIGludCBWOTQ2IDsKICAgIFY5NDAgVjk0NzsKICAgIFY5NDEgVjk0ODsKfSBWOTQ5
Owp0eXBlZGVmIHN0cnVjdCBWOTUwIHsKICAgIFY5NDkgVjk1MTsKICAgIGludCBWOTUyOwogICAg
VjkyMCAqKlY5NTM7CiAgICBWOTM3ICpWOTU0OwogICAgaW50IFY5NTU7CiAgICB2b2lkICgqVjk1
Nikoc3RydWN0IFY5NTAgKlY5NTcpOwp9IFY5NTg7CnR5cGVkZWYgc3RydWN0IFY5NTkgewogICAg
Vjk0OSBWOTUxOwogICAgVjkyMCAqVjk2MDsKICAgIFY5MzcgKlY5NjE7CiAgICBpbnQgKlY5NjI7
CiAgICBpbnQgVjk1NTsKICAgIHZvaWQgKCpWOTU2KShzdHJ1Y3QgVjk1OSAqVjk2Myk7Cn0gVjk2
NDsKZW51bSBWOTY1IHsKICAgIFY5NjYgPSAtMSwKICAgIFY5NjcgPSAwLAogICAgVjk2OCwKICAg
IFY5NjksCiAgICBWOTcwCn07CnR5cGVkZWYgZW51bSBWOTY1IFY5NzE7CnR5cGVkZWYgc3RydWN0
IHsKICAgIFY5NDkgVjk1MTsKICAgIGludCBWOTUyOwogICAgVjkzMyAqKlY5NzI7CiAgICBWOTM3
ICpWOTU0OwogICAgVjk3MSAqVjk3MzsKICAgIGludCBWOTU1Owp9IFY5NzQ7CnR5cGVkZWYgVjk0
OSBWOTc1Owp0eXBlZGVmIFY5NTggVjk3NjsKdHlwZWRlZiBWOTY0IFY5Nzc7CnR5cGVkZWYgVjk3
NCBWOTc4OwogIHR5cGVkZWYgc3RydWN0IHsKICAgICAgdW5zaWduZWQgaW50IFY5Nzk7CiAgICAg
IHVuc2lnbmVkIGludCBWOTgwOwogIH0gVjk4MTsKdHlwZWRlZiBsb25nIGxvbmcgVjk4MjsKdHlw
ZWRlZiBlbnVtIHsKICAgIFY5ODMsCiAgICBWOTg0LAogICAgVjk4NSwKICAgIFY5ODYsCiAgICBW
OTg3LAogICAgVjk4OCwKICAgIFY5ODksCiAgICBWOTkwLAogICAgVjk5MQp9IFY5OTI7CnR5cGVk
ZWYgc3RydWN0IFY5OTMgewogICAgc3RydWN0IFY5OTMgKlY5OTQ7CiAgICB2b2lkICpWOTk1OyAg
CiAgICBpbnQgVjk5NjsgIAogICAgaW50IFY5OTc7ICAKICAgIGludCBWOTk4OyAgCiAgICBpbnQg
Vjk5OTsgIAogICAgaW50IFYxMDAwOyAgCiAgICBWOTgxIFYxMDAxOyAgCiAgICBWOTgxIFYxMDAy
OyAgCn0gVjEwMDM7CmV4dGVybgppbnQgVjEwMDQodm9pZCkKOyAgCmV4dGVybgp2b2lkIFYxMDA1
KFY5ODEgKlYxMDA2KQo7ICAKZXh0ZXJuCmludCBWMTAwNyhWOTgxICpWMTAwOCwgVjk4MSAqVjEw
MDkpCjsgIApleHRlcm4Kdm9pZCBWMTAxMChWOTgxICpWMTAxMSwgaW50IFYxMDEyKQo7ICAKZXh0
ZXJuCmludCBWMTAxMyhWOTgxICpWMTAwOCwgVjk4MSAqVjEwMDkpCjsgIApleHRlcm4Kdm9pZCBW
MTAxNCggVjk4MSAqVjEwMTUgKQo7ICAKZXh0ZXJuCnZvaWQgVjEwMTYodm9pZCkKOyAgCmV4dGVy
bgpWOTgyIFYxMDE3KHZvaWQpCjsgIApleHRlcm4Kdm9pZCBWMTAxOCggVjk4MSAqVjEwMTkgKQo7
ICAKZXh0ZXJuCnZvaWQgVjEwMjAoIFY5ODEgKlYxMDE5ICkKOyAgCmV4dGVybgp1bnNpZ25lZCBW
MTAyMSh2b2lkKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYxMDIyKHZvaWQpCjsgIApleHRlcm4KdW5z
aWduZWQgVjEwMjModm9pZCkKOyAgCmV4dGVybgpWOTgxICpWMTAyNCh2b2lkKQo7ICAKZXh0ZXJu
ClY5ODEgKlYxMDI1KHZvaWQpCjsgIApleHRlcm4Kdm9pZCBWMTAyNiggdW5zaWduZWQgVjEwMjcg
KQo7ICAKZXh0ZXJuCnZvaWQgVjEwMjgodm9pZCkKOyAgCmV4dGVybgp2b2lkIFYxMDI5KHZvaWQp
CjsgIApleHRlcm4Kdm9pZCBWMTAzMChpbnQgVjEwMTIpCjsgIApleHRlcm4KaW50IFYxMDMxKHZv
aWQpCjsgIApleHRlcm4Kdm9pZCBWMTAzMihWOTgxICpWMTAzMywKICAgICAgICAgICAgdW5zaWdu
ZWQgVjEwMzQsIHVuc2lnbmVkIFYxMDM1LCB1bnNpZ25lZCBWMTAzNikKOyAgCmV4dGVybgp2b2lk
IFYxMDM3KCB1bnNpZ25lZCBWMTAzOCwgdW5zaWduZWQgVjEwMzkgKQo7ICAKZXh0ZXJuCmludCBW
MTA0MCggdW5zaWduZWQgVjEwMzgsIHVuc2lnbmVkIFYxMDM5ICkKOyAgCmV4dGVybgp2b2lkIFYx
MDQxKAogICAgVjk4MSAqVjEwMzMsCiAgICBkb3VibGUgVjEwMzUKICAgICkKOyAgCmV4dGVybgp2
b2lkIFYxMDQyKFY5ODEgKlYxMDQzLCBpbnQgVjEwNDQpCjsgIApleHRlcm4Kdm9pZCBWMTA0NShp
bnQgVjEwNDQsIGNvbnN0IGNoYXIgKlYzMTUpCjsgIApleHRlcm4Kdm9pZCBWMTA0NigKICAgIFY5
ODEgKlYxMDQ3LAogICAgaW50IFYxMDQ0LAogICAgY29uc3QgY2hhciAqVjMxNSkKOyAgCmV4dGVy
bgp2b2lkIFYxMDQ4KAogICAgaW50IFYxMDQ5ICAKICAgICkKOyAgCmV4dGVybgp2b2lkIFYxMDUw
KHVuc2lnbmVkIGludCBWMTA1MSApCjsgIApleHRlcm4Kdm9pZCBWMTA1Mihkb3VibGUgVjEwNTEg
KQo7ICAKZXh0ZXJuCnZvaWQgVjEwNTModm9pZCkKOyAgCmV4dGVybgp2b2lkIFYxMDU0KGludCBW
MTA1NVs4XSwgVjk4MSAqVjEwMTEpCjsgIApleHRlcm4Kdm9pZCBWMTA1NihjaGFyICpWMTA1Nywg
Vjk4MSAqVjEwMTEsIFY5OTIgVjEwNTgpCjsgIApleHRlcm4KaW50IFYxMDU5KGNoYXIgKlYxMDU3
LCBWOTgxICpWMTAzMykKOyAgCmV4dGVybgp1bnNpZ25lZCBpbnQgVjEwNjAoVjk4MSAqVjEwMzMp
CjsgIApleHRlcm4KdW5zaWduZWQgVjEwNjEoCiAgICBWMzg4IFYxMDYyLCAgCiAgICB1bnNpZ25l
ZCBWNDU0ICAKICAgICkKOyAgCmV4dGVybgppbnQgVjEwNjMoKQo7ICAKZXh0ZXJuCnZvaWQgVjEw
NjQoIHZvaWQgKCpWMTA2NSkoY2hhciAqKSApCjsgIApleHRlcm4KaW50IFYxMDY2KGNvbnN0IGNo
YXIgKlYzMTUsIGludCBWMTA2NywgY29uc3QgY2hhciAqVjQyNiwgVjM4NiBWMTA2OCkKOyAgCmV4
dGVybgppbnQgVjEwNjkoY29uc3QgY2hhciAqVjMxNSwgaW50IFYxMDY3LCBjb25zdCBjaGFyICpW
NDI2LCAuLi4pCiAgICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDMsIDQpKSkKOyAg
CmV4dGVybgppbnQgVjEwNzAodm9pZCkKOyAgCmV4dGVybgppbnQgVjEwNzEodm9pZCkKOyAgCmV4
dGVybgppbnQgVjEwNzIodm9pZCkKOyAgCmV4dGVybgppbnQgVjEwNzModm9pZCkKOyAgCmV4dGVy
bgppbnQgVjEwNzQoY29uc3QgY2hhciAqVjEwNzUgKQo7ICAKZXh0ZXJuCnZvaWQgVjEwNzYodm9p
ZCkKOyAgCmV4dGVybgp2b2lkIFYxMDc3KHZvaWQpCjsgIApleHRlcm4KaW50IFYxMDc4KGNvbnN0
IGNoYXIgKlYzMzkgKQo7ICAKZXh0ZXJuCmludCBWMTA3OShjb25zdCBjaGFyICpWNDI2LCBWMzg2
IFYxMDY4KQo7ICAKZXh0ZXJuCmludCBWMTA4MChjb25zdCBjaGFyICpWNDI2LCAuLi4pCiAgICBf
X2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDIpKSkKOyAgCmV4dGVybgppbnQgVjEw
ODEoIGludCBWMzE3LCBpbnQgVjEwODIsIGludCBWMTA4MyApCjsgIApleHRlcm4KaW50IFYxMDg0
KCBpbnQgVjMxNywgaW50IFYxMDgyICkKOyAgCmV4dGVybgppbnQgVjEwODUoIGludCBWMTA4MyAp
CjsgIApleHRlcm4KaW50IFYxMDg2KCB2b2lkICkKOyAgCmV4dGVybgp2b2lkIFYxMDg3KHZvaWQp
CjsgIApzdHJ1Y3QgVjEwODg7CmV4dGVybgp2b2lkIFYxMDg5KAogICAgY29uc3Qgc3RydWN0IFYx
MDg4ICpWMTA5MCAgCiAgICApCjsgIApleHRlcm4KaW50IFYxMDkxKCBpbnQgVjEwOTIgKQo7ICAK
ZXh0ZXJuCmludCBWMTA5Myhjb25zdCBjaGFyICpWMzE1KQo7ICAKZXh0ZXJuCmludCBWMTA5NCh2
b2lkKQo7ICAKZXh0ZXJuCnZvaWQgVjEwOTUodm9pZCkKOyAgCmV4dGVybgppbnQgVjEwOTYodm9p
ZCkKOyAgCmV4dGVybgp2b2lkIFYxMDk3KHZvaWQpCjsgIApleHRlcm4Kdm9pZCBWMTA5OCh2b2lk
KQo7ICAKZXh0ZXJuCmludCBWMTA5OShjb25zdCBjaGFyICpWMzE1KQo7ICAKZXh0ZXJuCmludCBW
MTEwMCggaW50IFYzMTcsIGludCBWMTA4MiwgaW50IFYxMTAxICkKOyAgCmV4dGVybgppbnQgVjEx
MDIoIGludCBWMzE3ICkKOyAgCmV4dGVybgppbnQgVjExMDMoIGludCBWMTEwMSApCjsgIApleHRl
cm4KaW50IFYxMTA0KCB2b2lkICkKOyAgCmV4dGVybgp2b2lkIFYxMTA1KCBpbnQgVjExMDYgKQo7
ICAKZXh0ZXJuCnZvaWQgVjExMDcoCiAgICB2b2lkICgqIFYxMTA4KShpbnQgVjExMDYpICAKICAg
ICkKOyAgCmV4dGVybgp2b2lkIFYxMTA5KHZvaWQpCjsgIApleHRlcm4Kdm9pZCBWMTExMCh2b2lk
KQo7ICAKZXh0ZXJuCnZvaWQgVjExMTEoCiAgICBpbnQgVjExMDYgIAogICAgKQo7ICAKZXh0ZXJu
CnZvaWQgVjExMTIoCiAgICBpbnQgVjExMDYgIAogICAgKQo7ICAKZXh0ZXJuCmludCBWMTExMyhj
b25zdCBjaGFyICpWMzE1KQo7ICAKZXh0ZXJuCmludCBWMTExNCh2b2lkKQo7ICAKZXh0ZXJuCnZv
aWQgVjExMTUoaW50IFYxMDA2KQo7ICAKZXh0ZXJuCnZvaWQgVjExMTYoaW50IFYxMDA2KQo7ICAK
ZXh0ZXJuCnZvaWQgVjExMTcodm9pZCkKOyAgCmV4dGVybgp2b2lkIFYxMTE4KHZvaWQpCjsgIApl
eHRlcm4KaW50IFYxMTE5KCBpbnQgVjExMjAgICApCjsgIApleHRlcm4Kdm9pZCBWMTEyMSh2b2lk
KQo7ICAKZXh0ZXJuCnZvaWQgVjExMjIodm9pZCkKOyAgCmV4dGVybgp2b2lkIFYxMTIzKHZvaWQp
CjsgIApleHRlcm4Kdm9pZCBWMTEyNCh2b2lkKQo7ICAKZXh0ZXJuCnZvaWQgVjExMjUodm9pZCkK
OyAgCmV4dGVybgp1bnNpZ25lZCBsb25nIFYxMTI2KCB2b2lkICkKOyAgCmV4dGVybgp1bnNpZ25l
ZCBsb25nIFYxMTI3KHZvaWQpCjsgIApleHRlcm4Kdm9pZCBWMTEyOCggY29uc3QgY2hhciAqVjEx
MjksIGludCBWMTEzMCAgICkKOyAgCmV4dGVybgppbnQgVjExMzEoCiAgICB1bnNpZ25lZCBsb25n
ICpWMTEzMiwgIAogICAgY2hhciAqVjExMzMsICAKICAgIGludCBWMTEzNCAgCiAgICApCjsgIApl
eHRlcm4Kdm9pZCBWMTEzNSgKICAgIHZvaWQgKCpWMTEzNikoCiAgICAgICAgaW50IFYxMTA2LCB2
b2lkICgqVjExMzcpKGxvbmcsIGNvbnN0IGNoYXIqLCBpbnQpLCBsb25nIFYzMTcgKQogICAgKQo7
ICAKZXh0ZXJuCnZvaWQgVjExMzgoIGludCBWMTEwNiwgdm9pZCAoKlYxMTM3KShsb25nLCBjb25z
dCBjaGFyKiwgaW50KSwgbG9uZyBWMzE3ICkKOyAgCmV4dGVybgpjb25zdCBjaGFyICpWMTEzOVtd
IDsgIApleHRlcm4Kdm9pZCBWMTE0MCh2b2lkKQo7ICAKZXh0ZXJuCmludCBWMTE0MSgKICAgIGNv
bnN0IGNoYXIgKiBWMTE0MiwgIAogICAgaW50IFYxMDkyLCAgCiAgICBjb25zdCBjaGFyICpWMzE1
LAogICAgY29uc3QgZmxvYXQgKlYxMTQzLAogICAgaW50IFYxMTQ0LAogICAgaW50IFYxMTQ1LAog
ICAgaW50IFYxMTQ2CiAgICApCjsgIApleHRlcm4KaW50IFYxMTQ3KAogICAgY29uc3QgY2hhciAq
IFYxMTQyLCAgCiAgICBpbnQgVjEwOTIsICAKICAgIGNvbnN0IGNoYXIgKlYzMTUsCiAgICBjb25z
dCBpbnQgKlYxMTQzLAogICAgaW50IFYxMTQ0LAogICAgaW50IFYxMTQ1CiAgICApCjsgIAp0eXBl
ZGVmIGVudW0gewogICAgVjExNDgsICAKICAgIFYxMTQ5LCAgCiAgICBWMTE1MCwgIAogICAgVjEx
NTEgIAp9IFYxMTUyOwp0eXBlZGVmIGVudW0gewogICAgVjExNTMgPSAwLCAgCiAgICBWMTE1NCA9
IDEsICAKICAgIFYxMTU1ID0gMiwgIAogICAgVjExNTYgPSAzLCAgCiAgICBWMTE1NyA9IDQsICAK
ICAgIFYxMTU4ID0gNSwgIAogICAgVjExNTkgPSA2LCAgCiAgICBWMTE2MCA9IDcsICAKICAgIFYx
MTYxID0gOCwgIAogICAgVjExNjIgPSA5LCAgCiAgICBWMTE2MyA9IDEwLCAgCiAgICBWMTE2NCA9
IDExLCAgCiAgICBWMTE2NSA9IDEyLCAgCiAgICBWMTE2NiA9IDEzLCAgCiAgICBWMTE2NyA9IDE0
LAogICAgVjExNjggPSAxNSwKICAgIFYxMTY5ID0gMTYsCiAgICBWMTE3MCA9IDE3LAogICAgVjEx
NzEgPSAxOCwKICAgIFYxMTcyID0gMTksCiAgICBWMTE3MyA9IDIwLAogICAgVjExNzQgPSAyMSwK
ICAgIFYxMTc1ID0gMjIsCiAgICBWMTE3NiA9IDIzLAogICAgVjExNzcgPSAyNCwKICAgIFYxMTc4
ID0gMjUsCiAgICBWMTE3OSA9IDI2LAogICAgVjExODAgPSAyNywKICAgIFYxMTgxID0gMjgsCiAg
ICBWMTE4MiA9IDI5LCAgCiAgICBWMTE4MyAgCn0gVjExODQ7CnR5cGVkZWYgdW5pb24KewogICAg
aW50IFYxMTg1OyAgCiAgICBpbnQgVjExODY7ICAKICAgIGludCBWOTAwOyAgCn0gVjExODc7CnR5
cGVkZWYgdW5zaWduZWQgVjExODhbKCg0OCArIDI0IC0gMSkgLyAyNCkgKyAxIF07CnR5cGVkZWYg
aW50IFYxMTg5OwpzdGF0aWMgaW5saW5lIHZvaWQgVjExOTAoVjExODggVjExOTEpCnsKICAgIGlu
dCBWMTE5MjsKICAgIGZvciAoIFYxMTkyID0gMCA7IFYxMTkyIDwgKCg0OCArIDI0IC0gMSkgLyAy
NCkgOyBWMTE5MisrICkKICAgICAgICBWMTE5MVtWMTE5Ml0gPSAwOwogICAgVjExOTFbKCg0OCAr
IDI0IC0gMSkgLyAyNCldID0gMDsKfQpzdGF0aWMgaW5saW5lIHZvaWQgVjExOTMoVjExODggVjEx
OTEpCnsKICAgIGludCBWMTE5MjsKICAgIGZvciAoIFYxMTkyID0gMCA7IFYxMTkyIDwgKCg0OCAr
IDI0IC0gMSkgLyAyNCkgOyBWMTE5MisrICkKICAgICAgICBWMTE5MVtWMTE5Ml0gPSB+MFUgPj4g
KDMyIC0gMjQpOwogICAgVjExOTFbKCg0OCArIDI0IC0gMSkgLyAyNCldID0gNDg7Cn0Kc3RhdGlj
IGlubGluZSB2b2lkIFYxMTk0KFYxMTg4IFYxMTkxLCBWMTE4OSBWMTE5NSkKewogICAgaW50IFYx
MTkyLCBWNDk1OwogICAgaWYgKCBWMTE5NSA8IDAgfHwgVjExOTUgPj0gNDggKSByZXR1cm47CiAg
ICBWMTE5MiA9IFYxMTk1IC8gMjQ7CiAgICBWNDk1ID0gVjExOTUgLSBWMTE5MiAqIDI0OwogICAg
VjExOTFbVjExOTJdIHw9ICgxIDw8IFY0OTUpOwogICAgVjExOTFbKCg0OCArIDI0IC0gMSkgLyAy
NCldKys7Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYxMTk2KFYxMTg4IFYxMTkxLCBWMTE4OSBWMTE5
NSkKewogICAgaW50IFYxMTkyLCBWNDk1OwogICAgaWYgKCBWMTE5NSA8IDAgfHwgVjExOTUgPj0g
NDggKSByZXR1cm47CiAgICBWMTE5MiA9IFYxMTk1IC8gMjQ7CiAgICBWNDk1ID0gVjExOTUgLSBW
MTE5MiAqIDI0OwogICAgVjExOTFbVjExOTJdICY9IH4oMSA8PCBWNDk1KTsKICAgIFYxMTkxWygo
NDggKyAyNCAtIDEpIC8gMjQpXS0tOwp9CnN0YXRpYyBpbmxpbmUgaW50IFYxMTk3KFYxMTg4IFYx
MTkxKQp7CiAgICByZXR1cm4gVjExOTFbKCg0OCArIDI0IC0gMSkgLyAyNCldOwp9CnN0YXRpYyBp
bmxpbmUgdm9pZCBWMTE5OChWMTE4OCBWMTE5OSwgVjExODggVjEyMDApCnsKICAgIGludCBWMTE5
MjsKICAgIGZvciAoIFYxMTkyID0gMCA7IFYxMTkyIDw9ICgoNDggKyAyNCAtIDEpIC8gMjQpIDsg
VjExOTIrKyApIHsgVjExOTlbVjExOTJdID0gVjEyMDBbVjExOTJdOyB9Cn0Kc3RhdGljIGlubGlu
ZSBpbnQgVjEyMDEoVjExODggVjExOTEsIFYxMTg5IFYxMTk1KQp7CiAgICBpbnQgVjExOTIsIFY0
OTU7CiAgICBpZiAoIFYxMTk1IDwgMCB8fCBWMTE5NSA+PSA0OCApIHJldHVybiAtMTsKICAgIFYx
MTkyID0gVjExOTUgLyAyNDsKICAgIFY0OTUgPSBWMTE5NSAtIFYxMTkyICogMjQ7CiAgICByZXR1
cm4gKFYxMTkxW1YxMTkyXSA+PiBWNDk1KSAmIDB4MTsKfQpzdGF0aWMgaW5saW5lIGludCBWMTIw
MihWMTE4OCBWMTIwMywgVjExODggVjEyMDQpCnsKICAgIGludCBWMTE5MiwgVjQ5NTsKICAgIGZv
ciAoIFYxMTkyID0gMCA7IFYxMTkyIDwgKCg0OCArIDI0IC0gMSkgLyAyNCkgOyBWMTE5MisrICkg
ewogICAgICAgIGZvciAoIFY0OTUgPSAwIDsgVjQ5NSA8IDI0IDsgVjQ5NSsrICkgewogICAgICAg
ICAgICBpZiAoICggKFYxMjAzW1YxMTkyXSA+PiBWNDk1KSAmIDB4MSApICYmCiAgICAgICAgICAg
ICAgICAgKCAoVjEyMDNbVjExOTJdID4+IFY0OTUpICYgMHgxICkgKSByZXR1cm4gMTsKICAgICAg
ICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQpzdGF0aWMgaW5saW5lIGludCBWMTIwNShWMTE4OCBW
MTE5MSkKewogICAgaW50IFYxMTkyOwogICAgZm9yICggVjExOTIgPSAwIDsgVjExOTIgPCAoKDQ4
ICsgMjQgLSAxKSAvIDI0KSAtIDEgOyBWMTE5MisrICkgewogICAgICAgIGlmICggVjExOTFbVjEx
OTJdICYKICAgICAgICAgICAgICh+MFUgPj4gKDMyIC0gMjQpKSApIHsKICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgICAgfQogICAgfQogICAgaWYgKCBWMTE5MVtWMTE5Ml0gJgogICAgICAgICAo
KDEgPDwgKDQ4IC0gVjExOTIgKiAyNCkpIC0gMSkgKSByZXR1cm4gMDsKICAgIHJldHVybiAxOwp9
CnN0YXRpYyBpbmxpbmUgdm9pZCBWMTIwNihWMTE4OCBWMTE5MSkKewogICAgaW50IFYxMTkyLCBW
MTIwNzsKICAgIFYxMDgwKCJTMCIsIDQ4IC0xKTsKICAgIFYxMTkyID0gKCg0OCArIDI0IC0gMSkg
LyAyNCktMTsKICAgIGZvciAoIFYxMjA3ID0gKCA0OCAtCiAgICAgICAgICAgICAgICAgICAgICgo
KDQ4ICsgMjQgLSAxKSAvIDI0KS0xKSAqIDI0ICkvNCAtIDE7CiAgICAgICAgICBWMTIwNyA+PSAw
IDsKICAgICAgICAgIFYxMjA3LS0gKSB7CiAgICAgICAgVjEwODAoIlMxIiwgKFYxMTkxW1YxMTky
XSA+PiAoVjEyMDcgKiA0KSkgJiAweGYpOwogICAgfQogICAgZm9yICggVjExOTIgPSAoKDQ4ICsg
MjQgLSAxKSAvIDI0KSAtIDIgOyBWMTE5MiA+PSAwIDsgVjExOTItLSApIHsKICAgICAgICBmb3Ig
KCBWMTIwNyA9IDI0LzQgLSAxOyBWMTIwNyA+PSAwIDsgVjEyMDctLSApIHsKICAgICAgICAgICAg
VjEwODAoIlMyIiwgKFYxMTkxW1YxMTkyXSA+PiAoVjEyMDcgKiA0KSkgJiAweGYpOwogICAgICAg
IH0KICAgIH0KICAgIFYxMDgwKCJTMyIpOwp9CnN0YXRpYyBpbmxpbmUgdm9pZCBWMTIwOChWMTE4
OCBWMTE5MSkKewogICAgaW50IFY0OTU7CiAgICBWMTA4MCgiUzQiLCA0OCAtMSk7CiAgICBmb3Ig
KCBWNDk1ID0gNDggLSAxIDsgVjQ5NSA+PSAwIDsgVjQ5NS0tICkgewogICAgICAgIGlmICggVjEy
MDEoVjExOTEsIFY0OTUpICkgewogICAgICAgICAgICBWMTA4MCgiUzUiKTsKICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICBWMTA4MCgiUzYiKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBWNDk1
ICYmIFY0OTUgJSA0ID09IDAgKSBWMTA4MCgiUzciKTsKICAgIH0KICAgIFYxMDgwKCJTOCIpOwp9
CnR5cGVkZWYgZW51bSB7CiAgICBWMTIwOSA9IDAsCiAgICBWMTIxMCA9IDEsCiAgICBWMTIxMSA9
IDIsCiAgICBWMTIxMiA9IDAgIAp9IFYxMjEzOwp0eXBlZGVmIGVudW0gewogICAgVjEyMTQgPSAw
LAogICAgVjEyMTUsCiAgICBWMTIxNiwKICAgIFYxMjE3LAogICAgVjEyMTgsCiAgICBWMTIxOSwK
ICAgIFYxMjIwLAogICAgVjEyMjEKfSBWMTIyMjsKdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IFYx
MjIzOyAgCiAgICBpbnQgVjEyMjQ7ICAKICAgIGludCBWMTIyNTsgIAogICAgaW50IFYxMjI2OyAg
CiAgICBpbnQgVjEyMjc7ICAKICAgIGludCBWMTIyODsgIAp9IFYxMjI5OwplbnVtIHsKICAgIFYx
MjMwID0gMTAsCiAgICBWMTIzMSA9IDIwLAogICAgVjEyMzIgPSAzLAogICAgVjEyMzMgPSA1LAog
ICAgVjEyMzQgPSAyMCwKICAgIFYxMjM1ID0gMwp9Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQg
VjEyMzY7ICAKICAgIGludCBWMTIzNzsgIAogICAgaW50IFYxMjM4OyAgCiAgICBpbnQgVjEyMzk7
ICAKICAgIGludCBWMTI0MDsgIAogICAgaW50IFYxMjQxOyAgCiAgICBpbnQgVjEyNDI7ICAKICAg
IGludCBWMTI0MzsgIAogICAgaW50IFYxMjQ0OyAgCiAgICBWMTIyOSBWMTI0NTsgIAp9IFYxMjQ2
OwplbnVtIHsKICAgIFYxMjQ3ID0gNSwKICAgIFYxMjQ4ID0gMywKICAgIFYxMjQ5ID0gMCwKICAg
IFYxMjUwID0gNSwKICAgIFYxMjUxID0gMCwKICAgIFYxMjUyID0gMCwKICAgIFYxMjUzID0gMSwK
ICAgIFYxMjU0ID0gMiwKICAgIFYxMjU1ID0gOAp9Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWOTgx
IFYxMjU2OwogICAgVjk4MSBWMTI1NzsKICAgIGludCBWMTI1ODsKICAgIGludCBWMTI1OTsKICAg
IGludCBWMTI2MDsKfSBWMTI2MTsKdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IFY4OTQ7CiAgICBW
MTE4OCBWMTI2MjsKICAgIGludCBWOTAwOyAgCiAgICBpbnQgVjExODU7ICAKICAgIGludCAgIFYx
MjYzOwp9IFYxMjY0Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgVjExODU7CiAgICBpbnQgVjkw
MDsKICAgIHVuc2lnbmVkIFYxMjY1WygoMTIgKyAyNCAtIDEpIC8gMjQpXTsKICAgIFYxMTg4IFYx
MTkxOwp9IFYxMjY2Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWMTIxMyBWMTI2NzsKICAgIGludCBW
MTE4NjsKICAgIGludCBWODk0OwogICAgdW5zaWduZWQgVjEyNjg7CiAgICBWMTI2NiBWMTI2OTsK
ICAgIGludCBWMTI3MDsKICAgIGludCBWMTI3MTsKICAgIFYxMjQ2IFYxMjcyOwogICAgVjEyNjEg
VjEyNzM7Cn0gVjEyNzQ7CnN0YXRpYyBpbmxpbmUgaW50IFYxMjc1KAogICAgaW50IFYxMjc2LAog
ICAgaW50IFYxMjc3ICkKewogICAgcmV0dXJuIChWMTI3NiAvIDMpICUgVjEyNzc7Cn0KdHlwZWRl
ZiBlbnVtIHsKICAgIFYxMjc4LAogICAgVjEyNzksCiAgICBWMTI4MCwKICAgIFYxMjgxCn0gVjEy
ODI7CnR5cGVkZWYgZW51bSB7CiAgICBWMTI4MywKICAgIFYxMjg0LAogICAgVjEyODUsCiAgICBW
MTI4Ngp9IFYxMjg3Owp0eXBlZGVmIGVudW0gewogICAgVjEyODggPSAweGZmZmYsCiAgICBWMTI4
OSA9IDB4ZmZmZQp9IFYxMjkwOwp0eXBlZGVmIHN0cnVjdCBWMTI5MSB7CiAgICAgVjQ3MiBWNDkw
OwogICAgIGludCBWMTI5MjsgIAogICAgIGludCBWMTEyMDsgIAogICAgIGludCBWMTI5MzsgIAog
fSBWMTI5NDsKdHlwZWRlZiBzdHJ1Y3QgVjEyOTUgewogICAgVjEyOTQgVjUxMVsyXTsgIAogICAg
dW5zaWduZWQgVjEyOTY7ICAKfSBWMTI5NzsKdHlwZWRlZiBzdHJ1Y3QgVjEyOTggewogICAgaW50
IFYxMjk5OwogICAgaW50IFYxMzAwOwogICAgaW50IFYxMzAxWzRdOwp9IFYxMzAyOwp0eXBlZGVm
IHN0cnVjdCBWMTMwMyB7CiAgICBpbnQgVjEyNjc7CiAgICBpbnQgVjEzMDQ7CiAgICBpbnQgVjg5
MlsyXTsKICAgIGludCBWNDkwWzJdOwogICAgaW50IFY5MDE7CiAgICBpbnQgVjkwMlsyXTsKICAg
IGludCBWOTAzWzJdOwogICAgaW50IFY5MDRbMl07CiAgICBpbnQgVjQ4MlsyXTsKICAgIGludCBW
MTMwNVsyXTsKICAgIGludCBWMTMwNlsyXTsKICAgIGludCBWMTMwN1syXTsKICAgIGludCBWMTMw
OFsyXTsKICAgIGludCBWOTExOwogICAgaW50IFYxMzA5OwogICAgaW50IFY5MDU7CiAgICBpbnQg
VjEzMTA7Cn0gVjEzMTE7CnR5cGVkZWYgZW51bSB7CiAgICBWMTMxMiA9IDAsICAKICAgIFYxMzEz
LAogICAgVjEzMTQsCiAgICBWMTMxNSwKICAgIFYxMzE2LAogICAgVjEzMTcsCiAgICBWMTMxOCwK
ICAgIFYxMzE5LAogICAgVjEzMjAsCiAgICBWMTMyMSwKICAgIFYxMzIyLAogICAgVjEzMjMsCiAg
ICBWMTMyNCwKICAgIFYxMzI1LAogICAgVjEzMjYsCiAgICBWMTMyNywKICAgIFYxMzI4LAogICAg
VjEzMjksCiAgICBWMTMzMCwKICAgIFYxMzMxLAogICAgVjEzMzIsCiAgICBWMTMzMywKICAgIFYx
MzM0LAogICAgVjEzMzUsCiAgICBWMTMzNiwKICAgIFYxMzM3LAogICAgVjEzMzgsCiAgICBWMTMz
OQp9IFYxMzQwOwpzdHJ1Y3QgVjEzNDEKewogICAgdm9pZCAoKlYxMzQyKShWMTI3NCAqVjEzNDMs
IFYxMjgyIFYxMzQ0KTsKICAgIHZvaWQgKCpWMTM0NSkoVjEyNjQgKlYxMzQzLCBWMTI4NyBWMTM0
NCk7CiAgICB2b2lkICgqVjEzNDYpKHVuc2lnbmVkIFYxMzQ3LCB1bnNpZ25lZCBWMTM0OFsoKDEy
ICsgMjQgLSAxKSAvIDI0KV0pOwogICAgaW50ICgqVjEzNDkpKGludCBWMTM0NywgVjExNTIgVjEx
NDIpOwogICAgdm9pZCAoKlYxMzUwKShpbnQgVjEzNTEpOwogICAgdm9pZCAoKlYxMzUyKShpbnQg
VjEzNTEpOwogICAgdm9pZCAoKlYxMzUzKShpbnQgVjEzNTEpOwogICAgdm9pZCAoKlYxMzU0KShp
bnQgVjEzNTEsIGludCBWMTM1NSwgaW50IFYxMzU2KTsKICAgIHZvaWQgKCpWMTM1NykoaW50IFYx
MzUxLCBpbnQgVjEzNTgpOwogICAgdm9pZCAoKlYxMzU5KShpbnQgVjEzNTEsIGludCBWMTM2MCwg
aW50IFYxMzYxLCBpbnQgVjEzNjIpOwogICAgdm9pZCAoKlYxMzYzKShpbnQgVjEzNTEpOwogICAg
dm9pZCAoKlYxMzY0KShpbnQgVjEzNTEsIGludCBWMTM2NSk7CiAgICB2b2lkICgqVjEzNjYpKAog
ICAgICAgIGludCBWMTM1MSwKICAgICAgICBpbnQgVjEzNjAsCiAgICAgICAgaW50IFYxMzY3LAog
ICAgICAgIHVuc2lnbmVkIFYxMzY4LAogICAgICAgIGludCBWMTM2OSk7CiAgICB2b2lkICgqVjEz
NzApKAogICAgICAgIGludCBWMTM1MSwKICAgICAgICBpbnQgVjEzNjAsCiAgICAgICAgaW50IFYx
MzY3LAogICAgICAgIGludCBWMTM3MSwKICAgICAgICB1bnNpZ25lZCBWMTM2OCk7CiAgICB2b2lk
ICgqVjEzNzIpKGludCBWMTM1MSwgaW50IFYxMzczLCBpbnQgVjEzNzQsIGludCAqVjEzNzUpOwog
ICAgY29uc3QgY2hhciAqICgqVjEzNzYpKFYxMzQwIFYxMzc3KTsKICAgIGNvbnN0IGNoYXIgKiAo
KlYxMzc4KShWMTM0MCBWMTM3Nyk7CiAgICB2b2lkICgqVjEzNzkpKGludCBWMTM4MCxpbnQgVjEz
ODEsCiAgICAgICAgICAgICAgICAgICAgICAgICBWMTM0MCBWMTM3Nyk7CiAgICB2b2lkICgqVjEz
ODIpKGludCBWMTM4MSwKICAgICAgICAgICAgICAgICAgICAgICAgICBWMTM0MCBWMTM3Nyk7CiAg
ICBWMTMxMSAqICgqVjEzODMpKGludCBWMTM4MSk7CiAgICB2b2lkICgqVjEzODQpKGludCBWMTM4
MSk7CiAgICB2b2lkICgqVjEzODUpKGludCBWMTM4MSk7CiAgICB2b2lkICgqVjEzODYpKGludCBW
MTM4MSwgVjEyOTcgKlYxMzQzKTsKICAgIHZvaWQgKCpWMTM4NykoaW50IFYxMzQ3LCBWNTA1IFY1
MTYpOwogICAgdm9pZCAoKlYxMzg4KShWMTMwMiBWMTM0Myk7CiAgICB2b2lkICgqVjEzODkpKGlu
dCBWMTM5MCwgaW50IFYxMzkxLCBpbnQgVjEzOTJbXSwgaW50ICpWMTM5Myk7CiAgICB2b2lkICgq
VjEzOTQpKGludCBWMTM5NSwgaW50ICpWMTM5Myk7CiAgICB2b2lkICgqVjEzOTYpKGludCBWMTM5
MCwgaW50IFYxMzk3KTsKfTsKZXh0ZXJuCmludCBWMTM5OCgKICAgIGNvbnN0IHN0cnVjdCBWMTM0
MSAqVjEzOTksCiAgICBjb25zdCBjaGFyICpWMTQwMCwKICAgIGludCBsaW5lCiAgICApCjsgIApl
eHRlcm4Kdm9pZCBWMTQwMSgKICAgIFYxMjc0ICpWMTM0MywKICAgIFYxMjgyIFYxMzQ0CiAgICAp
CjsgIApleHRlcm4Kdm9pZCBWMTQwMigKICAgIFYxMjY0ICpWMTM0MywKICAgIFYxMjg3IFYxMzQ0
CiAgICApCjsgIApleHRlcm4Kdm9pZCBWMTQwMyh1bnNpZ25lZCBWMTM0NywgdW5zaWduZWQgVjEz
NDhbKCgxMiArIDI0IC0gMSkgLyAyNCldKQo7ICAKZXh0ZXJuCnZvaWQgVjE0MDQoaW50IFYxMzQ3
LCBWNTA1IFY1MTYpCjsgIApleHRlcm4KaW50IFYxNDA1KGludCBWMTE4NiwgVjExNTIgVjExNDIp
CjsgIApleHRlcm4Kdm9pZCBWMTQwNihpbnQgVjEzNTEpCjsgIApleHRlcm4Kdm9pZCBWMTQwNyhp
bnQgVjEzNTEpCjsgIApleHRlcm4Kdm9pZCBWMTQwOChpbnQgVjEzNTEpCjsgIApleHRlcm4Kdm9p
ZCBWMTQwOShpbnQgVjEzNTEsIGludCBWMTM1NSwgaW50IFYxMzU2KQo7ICAKZXh0ZXJuCnZvaWQg
VjE0MTAoaW50IFYxMzUxLCBpbnQgVjEzNTgpCjsgIApleHRlcm4Kdm9pZCBWMTQxMSgKICAgIGlu
dCBWMTM1MSwKICAgIGludCBWMTM2MCwKICAgIGludCBWMTM2NywKICAgIHVuc2lnbmVkIFYxMzY4
LAogICAgaW50IFYxMzY5KQo7ICAKZXh0ZXJuCnZvaWQgVjE0MTIoCiAgICBpbnQgVjEzNTEsCiAg
ICBpbnQgVjEzNjAsCiAgICBpbnQgVjEzNjEsCiAgICBpbnQgVjEzNzEsCiAgICB1bnNpZ25lZCBW
MTM2OCkKOyAgCmV4dGVybgp2b2lkIFYxNDEzKGludCBWMTM1MSwgaW50IFYxMzYwLCBpbnQgVjEz
NjEsIGludCBWMTM2MikKOyAgCmV4dGVybgp2b2lkIFYxNDE0KGludCBWMTM1MSkKOyAgCmV4dGVy
bgp2b2lkIFYxNDE1KGludCBWMTM1MSwgaW50IFYxNDE2KQo7ICAKZXh0ZXJuCnZvaWQgVjE0MTco
CiAgICBpbnQgVjEzNTEsCiAgICBpbnQgVjEzNzMsCiAgICBpbnQgVjEzNzQsCiAgICBpbnQgKlYx
Mzc1KQo7ICAKZXh0ZXJuCnZvaWQgVjE0MTgoCiAgICBpbnQgVjEzODEsCiAgICBWMTI5NyAqVjEz
NDMpCjsgIApleHRlcm4Kdm9pZCBWMTQxOShWMTMwMiBWMTM0MykKOyAgCmV4dGVybgp2b2lkIFYx
NDIwKGludCBWMTM5MCwgaW50IFYxMzkxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgVjEzOTJbXSwgaW50ICpWMTM5MykKOyAgCmV4dGVybgp2b2lkIFYxNDIxKGludCBW
MTM5NSwgaW50ICpWMTM5MykKOyAgCmV4dGVybgp2b2lkIFYxNDIyKGludCBWMTM5MCwgaW50IFYx
Mzk3KQo7ICAKZXh0ZXJuCmNvbnN0IGNoYXIgKiBWMTQyMygKICAgIFYxMzQwIFYxMzc3KQo7ICAK
ZXh0ZXJuCmNvbnN0IGNoYXIgKiBWMTQyNCgKICAgIFYxMzQwIFYxMzc3KQo7ICAKZXh0ZXJuCnZv
aWQgVjE0MjUoCiAgICBpbnQgVjEzODAsCiAgICBpbnQgVjEzODEsCiAgICBWMTM0MCBWMTM3NykK
OyAgCmV4dGVybgp2b2lkIFYxNDI2KAogICAgaW50IFYxMzgxLAogICAgVjEzNDAgVjEzNzcpCjsg
IApleHRlcm4KVjEzMTEgKiBWMTQyNygKICAgIGludCBWMTM4MSkKOyAgCmV4dGVybgp2b2lkIFYx
NDI4KAogICAgaW50IFYxMzgxKQo7ICAKZXh0ZXJuCnZvaWQgVjE0MjkoCiAgICBpbnQgVjEzODEp
CjsgIAp0eXBlZGVmIHN0cnVjdCBWMTQzMCB7CiAgICBzdHJ1Y3QgVjE0MzAgKlYxNDMxOwogICAg
c3RydWN0IFYxNDMwICpWMTQzMjsKICAgIHVuc2lnbmVkIGNoYXIgKlYxNDMzOwogICAgdW5zaWdu
ZWQgY2hhciAqVjE0MzQ7CiAgICB1bnNpZ25lZCBjaGFyICpWMTQzNTsKICAgIHVuc2lnbmVkIGNo
YXIgVjE0MzZbMV07Cn0gVjE0Mzc7CmV4dGVybgpWMTQzNyAqVjE0MzgoIFYxNDM3ICpWMTQzOSAp
CjsgIApleHRlcm4KVjE0MzcgKlYxNDQwKCB2b2lkICkKOyAgCmV4dGVybgpWMTQzNyAqVjE0NDEo
IGludCBWMTEyMCApCjsgIApleHRlcm4KVjE0MzcgKlYxNDQyKAogICAgVjE0MzcgKlYxNDQzLCAg
CiAgICBpbnQgVjE0NDQsICAKICAgIGludCBWMTQ0NSAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBW
MTQ0NihWMTQzNyAqVjEwMDYpCjsgIApleHRlcm4KaW50IFYxNDQ3KCB2b2lkICkKOyAgCmV4dGVy
bgp2b2lkIFYxNDQ4KCBWMTQzNyAqVjE0MzkpCjsgIAp0eXBlZGVmIGVudW0gewogICAgVjE0NDks
CiAgICBWMTQ1MCwKICAgIFYxNDUxCn0gVjE0NTI7CnR5cGVkZWYgZW51bQp7CiAgICBWMTQ1MyA9
IDB4MDIwMCwKICAgIFYxNDU0ID0gMHgwMjAxLAogICAgVjE0NTUgPSAweDA2MDAsCiAgICBWMTQ1
NiA9IDB4MDgwMCwKICAgIFYxNDU3ID0gMHgwODAxLAogICAgVjE0NTggPSAweDA4MDIsCiAgICBW
MTQ1OSA9IDB4MDgwMywKICAgIFYxNDYwID0gMHgwODA0LAogICAgVjE0NjEgPSAweDA4MDUsCiAg
ICBWMTQ2MiA9IDB4MDgwNiwKICAgIFYxNDYzID0gMHgwODA3LAogICAgVjE0NjQgPSAweDA4MUMs
CiAgICBWMTQ2NSA9IDB4MDkwMCwKICAgIFYxNDY2ID0gMHgwQTAwLAogICAgVjE0NjcgPSAweDBB
MDEsCiAgICBWMTQ2OCA9IDB4MEJBRCwKICAgIFYxNDY5ID0gMHgxMDAwLAogICAgVjE0NzAgPSAw
eDE2MDAsCiAgICBWMTQ3MSA9IDB4NDI0MiwKICAgIFYxNDcyID0gMHg1MjA4LAogICAgVjE0NzMg
PSAweDYwMDAsCiAgICBWMTQ3NCA9IDB4NjAwMSwKICAgIFYxNDc1ID0gMHg2MDAyLAogICAgVjE0
NzYgPSAweDYwMDMsCiAgICBWMTQ3NyA9IDB4NjAwNCwKICAgIFYxNDc4ID0gMHg2MDA1LAogICAg
VjE0NzkgPSAweDYwMDYsCiAgICBWMTQ4MCA9IDB4NjAwNywKICAgIFYxNDgxID0gMHg3MDAwLAog
ICAgVjE0ODIgPSAweDcwMDIsCiAgICBWMTQ4MyA9IDB4NzAzMCwKICAgIFYxNDg0ID0gMHg3MDM0
LAogICAgVjE0ODUgPSAweDgwMDMsCiAgICBWMTQ4NiA9IDB4ODAwNCwKICAgIFYxNDg3ID0gMHg4
MDA1LAogICAgVjE0ODggPSAweDgwMDYsCiAgICBWMTQ4OSA9IDB4ODAwOCwKICAgIFYxNDkwID0g
MHg4MDEwLAogICAgVjE0OTEgPSAweDgwMTMsCiAgICBWMTQ5MiA9IDB4ODAxNCwKICAgIFYxNDkz
ID0gMHg4MDE1LAogICAgVjE0OTQgPSAweDgwMTYsCiAgICBWMTQ5NSA9IDB4ODAxOSwKICAgIFYx
NDk2ID0gMHg4MDJFLAogICAgVjE0OTcgPSAweDgwMkYsCiAgICBWMTQ5OCA9IDB4ODAzNSwKICAg
IFYxNDk5ID0gMHg4MDM2LAogICAgVjE1MDAgPSAweDgwMzgsCiAgICBWMTUwMSA9IDB4ODAzRCwK
ICAgIFYxNTAyID0gMHg4MDNFLAogICAgVjE1MDMgPSAweDgwM0YsCiAgICBWMTUwNCA9IDB4ODA0
NCwKICAgIFYxNTA1ID0gMHg4MDQ2LAogICAgVjE1MDYgPSAweDgwNDcsCiAgICBWMTUwNyA9IDB4
ODA0OSwKICAgIFYxNTA4ID0gMHg4MDVCLAogICAgVjE1MDkgPSAweDgwNUMsCiAgICBWMTUxMCA9
IDB4ODA1RCwKICAgIFYxNTExID0gMHg4MDYwLAogICAgVjE1MTIgPSAweDgwNjIsCiAgICBWMTUx
MyA9IDB4ODA2NywKICAgIFYxNTE0ID0gMHg4MDY4LAogICAgVjE1MTUgPSAweDgwNjksCiAgICBW
MTUxNiA9IDB4ODA2QSwKICAgIFYxNTE3ID0gMHg4MDZDLAogICAgVjE1MTggPSAweDgwNkQsCiAg
ICBWMTUxOSA9IDB4ODA3QSwKICAgIFYxNTIwID0gMHg4MDdCLAogICAgVjE1MjEgPSAweDgwN0Ms
CiAgICBWMTUyMiA9IDB4ODA4MCwKICAgIFYxNTIzID0gMHg4MDlCLAogICAgVjE1MjQgPSAweDgw
OUYsCiAgICBWMTUyNSA9IDB4ODBBMywKICAgIFYxNTI2ID0gMHg4MEM2LAogICAgVjE1MjcgPSAw
eDgwQzcsCiAgICBWMTUyOCA9IDB4ODBENSwKICAgIFYxNTI5ID0gMHg4MERELAogICAgVjE1MzAg
PSAweDgwRjIsCiAgICBWMTUzMSA9IDB4ODBGMywKICAgIFYxNTMyID0gMHg4MEY3LAogICAgVjE1
MzMgPSAweDgxMzAsCiAgICBWMTUzNCA9IDB4ODEzMSwKICAgIFYxNTM1ID0gMHg4MTRDLAogICAg
VjE1MzYgPSAweDkwMDAsCiAgICBWMTUzNyA9IDB4OTAwMSwKICAgIFYxNTM4ID0gMHg5MDAyLAog
ICAgVjE1MzkgPSAweDkwMDMsCiAgICBWMTU0MCA9IDB4RkYwMCwKICAgIFYxNTQxID0gMHg4ODYz
LAogICAgVjE1NDIgPSAweDg4NjQsCiAgICBWMTU0MyA9IDB4OGZmZgp9IFYxNTQ0Owp0eXBlZGVm
IGVudW0gewogICAgVjE1NDUsCiAgICBWMTU0Ngp9IFYxNTQ3Owp0eXBlZGVmIGVudW0gewogICAg
VjE1NDggPSAwLCAgCiAgICBWMTU0OSAgCn0gVjE1NTA7CnN0cnVjdCBWMTU1MQp7CiAgICBWMTQ1
MiAoKlYxNTUyKSgKICAgICAgICB2b2lkICpWMTU1MywKICAgICAgICB2b2lkICoqVjE1NTQsCiAg
ICAgICAgVjE1NDQgVjE1NTUsCiAgICAgICAgdW5zaWduZWQgVjE1NTYKICAgICAgICApOwogICAg
dm9pZCAoKlYxNTU3KSh2b2lkICpWMTU1NCk7CiAgICB2b2lkICgqVjE1NTgpKHZvaWQgKlYxNTU0
KTsKICAgIHZvaWQgKCpWMTU1OSkodm9pZCAqVjE1NTQsIFYxNDM3ICpWMzUyKTsKICAgIHZvaWQg
KCpWMTU2MCkodm9pZCAqVjE1NTQsIFYxNDM3ICpWMzM5KTsKICAgIHZvaWQgKCpWMTU2MSkodm9p
ZCAqVjE1NTQsIFYxNTUwIFY0ODkpOwogICAgdm9pZCAoKlYxNTYyKSh2b2lkICpWMTU1NCk7CiAg
ICB2b2lkICgqVjE1NjMpKHZvaWQgKlYxNTU0LCBWMTU0NyBWMTU2NCk7Cn07CmV4dGVybgppbnQg
VjE1NjUoCiAgICBjb25zdCBzdHJ1Y3QgVjE1NTEgKlYxMzk5LAogICAgY29uc3QgY2hhciAqVjE0
MDAsCiAgICBpbnQgbGluZQogICAgKQo7ICAKZXh0ZXJuClYxNDUyIFYxNTY2KAogICAgdm9pZCAq
VjE1NTMsCiAgICB2b2lkICoqVjE1NTQsCiAgICBWMTU0NCBWMTU1NSwKICAgIHVuc2lnbmVkIFYx
NTU2CiAgICApCjsgIApleHRlcm4Kdm9pZCBWMTU2Nyh2b2lkICpWMTU1NCkKOyAgCmV4dGVybgp2
b2lkIFYxNTY4KHZvaWQgKlYxNTU0KQo7ICAKZXh0ZXJuCnZvaWQgVjE1Njkodm9pZCAqVjE1NTQs
IFYxNDM3ICpWMTU3MCkKOyAgCmV4dGVybgp2b2lkIFYxNTcxKHZvaWQgKlYxNTU0LCBWMTQzNyAq
VjMzOSkKOyAgCmV4dGVybgp2b2lkIFYxNTcyKHZvaWQgKlYxNTU0LCBWMTU1MCBWNDg5KQo7ICAK
ZXh0ZXJuCnZvaWQgVjE1NzModm9pZCAqVjE1NTQpCjsgIApleHRlcm4Kdm9pZCBWMTU3NCh2b2lk
ICpWMTU1NCwgVjE1NDcgVjE1NjQpCjsgIApzdHJ1Y3QgVjE1NzUKewogICAgdm9pZCAoKlYxNTU5
KShpbnQgVjEzNTEsIFYxNDM3ICpWMTU3Nik7CiAgICB2b2lkICgqVjE1NzcpKGludCBWMTM1MSwg
aW50IFYxMzkzKTsKICAgIHZvaWQgKCpWMTU3OCkoaW50IFYxMzUxKTsKICAgIHZvaWQgKCpWMTU2
MykoaW50IFYxMzUxKTsKfTsKZXh0ZXJuCmludCBWMTU3OSgKICAgIGNvbnN0IHN0cnVjdCBWMTU3
NSAqVjEzOTksCiAgICBjb25zdCBjaGFyICpWMTQwMCwKICAgIGludCBsaW5lCiAgICApCjsgIApl
eHRlcm4Kdm9pZCBWMTU4MChpbnQgVjEzNTEsIFYxNDM3ICpWMTU3NikKOyAgCmV4dGVybgp2b2lk
IFYxNTgxKGludCBWMTM1MSwgaW50IFYxNTgyKQo7ICAKZXh0ZXJuCnZvaWQgVjE1ODMoaW50IFYx
MzUxKQo7ICAKZXh0ZXJuCnZvaWQgVjE1ODQoaW50IFYxMzUxKQo7ICAKdHlwZWRlZiBzdHJ1Y3Qg
VjE1ODUgewogICAgICAgIHVuc2lnbmVkIGludCBWMTU4NjsKICAgICAgICB1bnNpZ25lZCBpbnQg
VjE1ODc7CiAgICAgICAgdW5zaWduZWQgaW50IFYxNTg4Owp9IFYxNTg5Owp0eXBlZGVmIGVudW0g
ewogICAgVjE1OTAgPSAwLCAgCiAgICBWMTU5MSwKICAgIFYxNTkyLAogICAgVjE1OTMKfSBWMTU5
NDsKc3RydWN0IFYxNTk1CnsKICAgIHZvaWQgKCpWMTU1OSkoaW50IFYxMzUxLCBWMTQzNyAqVjM1
Mik7CiAgICBWMTQzNyAqKCpWMTU5NikoaW50IFYxMzUxLCBpbnQgVjE1OTcpOwogICAgY29uc3Qg
Y2hhciAqICgqVjE1OTgpKFYxNTk0IFYxMzc3KTsKICAgIGNvbnN0IGNoYXIgKiAoKlYxNTk5KSgK
ICAgICAgICBWMTU5NCBWMTM3Nyk7CiAgICB2b2lkICgqVjE2MDApKGludCBWMTM4MCwgaW50IFYx
MzgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYxNTk0IFYxMzc3KTsKICAgIHZvaWQg
KCpWMTYwMSkoaW50IFYxMzgxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMTU5NCBW
MTM3Nyk7CiAgICBWMTU4OSAqICgqVjE2MDIpKGludCBWMTM4MSk7Cn07CmV4dGVybgppbnQgVjE2
MDMoCiAgICBjb25zdCBzdHJ1Y3QgVjE1OTUgKlYxMzk5LAogICAgY29uc3QgY2hhciAqVjE0MDAs
CiAgICBpbnQgbGluZQogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjE2MDQoaW50IFYxMzUxLCBWMTQz
NyAqVjE1NzApCjsgIApleHRlcm4KVjE0MzcgKlYxNjA1KGludCBWMTM1MSwgaW50IFYxNTk3KQo7
ICAKZXh0ZXJuCmNvbnN0IGNoYXIgKiBWMTYwNigKICAgIFYxNTk0IFYxMzc3KQo7ICAKZXh0ZXJu
CmNvbnN0IGNoYXIgKiBWMTYwNygKICAgIFYxNTk0IFYxMzc3KQo7ICAKZXh0ZXJuCnZvaWQgVjE2
MDgoaW50IFYxMzgwLCBpbnQgVjEzODEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFYxNTk0IFYxMzc3KQo7ICAKZXh0ZXJuCnZvaWQgVjE2MDkoaW50IFYxMzgxLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVjE1OTQgVjEzNzcpCjsgIApleHRl
cm4KVjE1ODkgKiBWMTYxMCgKICAgIGludCBWMTM4MSkKOyAgCnN0cnVjdCBWMTYxMTsKdHlwZWRl
ZiBzdHJ1Y3QgVjE2MTEgVjE2MTI7CnN0cnVjdCBWMTYxMzsgIApzdHJ1Y3QgVjE2MTQ7CnR5cGVk
ZWYgc3RydWN0IFYxNjE0IHsKICAgIHN0cnVjdCBWMTYxMyAqVjE2MTU7ICAKICAgIFYxNjEyICpW
MTYxNjsgIAp9IFYxNjE3OwpleHRlcm4Kdm9pZCBWMTYxOCgKICAgIFYxNjEyICpWMTYxNiAgCiAg
ICApCjsgIApleHRlcm4KVjE2MTIgKlYxNjE5KAogICAgZG91YmxlIFYxNjIwICAKICAgICkKOyAg
CmV4dGVybgp2b2lkIFYxNjIxKAogICAgVjE2MTIgKlYxNjE2LCAgCiAgICBkb3VibGUgVjE2MjAg
IAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjE2MjIoCiAgICBWMTYxMiAqVjE2MTYsICAKICAgIGRv
dWJsZSBWMTYyMCAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMTYyMygKICAgIFYxNjEyICpWMTYx
NiwgIAogICAgaW50IFYxNjI0ICAKICAgICkKOyAgCmV4dGVybgp2b2lkIFYxNjI1KAogICAgVjE2
MTIgKlYxNjE2LCAgCiAgICBpbnQgVjE2MjYgIAogICAgKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYx
NjI3KAogICAgVjE2MTIgKlYxNjE2ICAKICAgICkKOyAgCmV4dGVybgp1bnNpZ25lZCBWMTYyOCgg
dm9pZCApCjsgIApleHRlcm4Kdm9pZCBWMTYyOSgKICAgIFYxNjE3ICpWMTYzMCwKICAgIHVuc2ln
bmVkIGludCBWMTYzMSwgIAogICAgdm9pZCAoKlYxNjMyKSggaW50IFYxNjMzLCB2b2lkICpWMTYz
NCApLAogICAgaW50IFYxNjMzLAogICAgdm9pZCAqVjE2MzQKICAgICkKOyAgCmV4dGVybgp2b2lk
IFYxNjM1KAogICAgVjE2MTIgKlYxNjE2LCAgCiAgICBWMTYxNyAqVjE2MzAsICAKICAgIHVuc2ln
bmVkIFYxNjMxLCAgCiAgICB2b2lkICgqVjE2MzIpKCBpbnQgVjE2MzMsIHZvaWQgKlYxNjM0ICks
CiAgICBpbnQgVjE2MzMsCiAgICB2b2lkICpWMTYzNAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjE2
MzYodm9sYXRpbGUgVjE2MTcgKlYxNjMwKQo7ICAKZXh0ZXJuCnZvaWQgVjE2Mzcodm9sYXRpbGUg
VjE2MTcgKlYxNjMwKQo7ICAKZXh0ZXJuCmNvbnN0IFYxNjE3ICogVjE2MzgoCiAgICBWMTYxMiAq
VjE2MzkgIAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjE2NDAoCiAgICBWMTYxMiAqVjE2MzkgIAog
ICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjE2NDEodm9pZCkKOyAgCmV4dGVybgppbnQgVjE2NDIoZG91
YmxlIFYxNjQzKQo7ICAKZXh0ZXJuCmludCBWMTY0NCgKICAgIFYxNjEyICpWMTYxNiwgIAogICAg
ZG91YmxlIFYxNjQzCiAgICApCjsgIApleHRlcm4KaW50IFYxNjQ1KGRvdWJsZSBWMTY0MykKOyAg
CmV4dGVybgpkb3VibGUgVjE2NDYoaW50IFYxNjQ3KQo7ICAKZXh0ZXJuCmRvdWJsZSBWMTY0OCgK
ICAgIFYxNjEyICpWMTYxNiwgIAogICAgaW50IFYxNjQ3CiAgICApCjsgIApleHRlcm4KZG91Ymxl
IFYxNjQ5KGludCBWMTY0NykKOyAgCmV4dGVybgppbnQgVjE2NTAoCiAgICBWMTYxNyAqVjE2MzAg
IAogICAgKQo7ICAKZXh0ZXJuCmludCBWMTY1MSgKICAgIFYxNjE3ICpWMTYzMCAgCiAgICApCjsg
IApleHRlcm4KaW50IFYxNjUyKAogICAgVjE2MTIgKlYxNjE2LCAgCiAgICBWMTYxNyAqVjE2MzAg
IAogICAgKQo7ICAKZXh0ZXJuCmludCBWMTY1MygKICAgIFYxNjE3ICpWMTYzMCwgIAogICAgaW50
ICpWMTY1NAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgKlYxNjU1KAogICAgVjE2MTcgKlYxNjMwLCAg
CiAgICBpbnQgKlYxNjU0CiAgICApCjsgIAp0eXBlZGVmIHN0cnVjdCBWMTY1NiB7CiAgICBWMTQz
NyAqVjE1NzY7CiAgICBpbnQgVjE2NTc7Cn0gVjE2NTg7CnR5cGVkZWYgc3RydWN0IFYxNjU5IFYx
NjYwOwp0eXBlZGVmIGVudW0gewogICAgVjE2NjEgPSAwLAogICAgVjE2NjIgPSAxLAogICAgVjE2
NjMgPSAyLAogICAgVjE2NjQgPSAzLAogICAgVjE2NjUsCn0gVjE2NjY7CmV4dGVybgp2b2lkIFYx
NjY3KAogICAgdW5zaWduZWQgaW50IFYxNjY4ICAKICAgICkKOyAgCmV4dGVybgp1bnNpZ25lZCBW
MTY2OSggdm9pZCApCjsgIApleHRlcm4KdW5zaWduZWQgaW50IFYxNjcwKHVuc2lnbmVkIGludCBW
MTY3MSkKOyAgCmV4dGVybgp1bnNpZ25lZCBpbnQgVjE2NzIoVjE2NjAgKlYxMjY3KQo7ICAKZXh0
ZXJuCmludCBWMTY3MyhWMTY2MCAqVjEyNjcsIHVuc2lnbmVkIGludCBWMTY3NCkKOyAgCmV4dGVy
bgppbnQgVjE2NzUoVjE2NjAgKlYxMjY3LCBWMTY1OCAqVjE2NzYpCjsgIApleHRlcm4KaW50IFYx
Njc3KFYxNjYwICpWMTI2NywgVjE2NTggKlYxNjc2KQo7ICAKZXh0ZXJuClYxNjYwICpWMTY3OCgg
dm9pZCApCjsgIApleHRlcm4Kdm9pZCBWMTY3OSggVjE2NjAgKiBWMTY4MCApCjsgIApleHRlcm4K
aW50IFYxNjgxKCB2b2lkICkKOyAgCmV4dGVybgp1bnNpZ25lZCBWMTY4MigKICAgIFYzODggVjQ1
MywgIAogICAgdW5zaWduZWQgVjQ1NCAgCiAgICApCjsgIApleHRlcm4KaW50IFYxNjgzKCkKOyAg
CmVudW0gVjE2ODQgewogICAgVjE2ODUgPSA0OCwKICAgIFYxNjg2ID0gNzk3LAogICAgVjE2ODcg
PSAzMiwKICAgIFYxNjg4ID0gMTAsCiAgICBWMTY4OSA9IDgsCiAgICBWMTY5MCA9IDE1LAogICAg
VjE2OTEgPSAxNSwKICAgIFYxNjkyID0gMjQsCiAgICBWMTY5MyA9IDQ4LAogICAgVjE2OTQgPSA1
LAogICAgVjE2OTUgPSAxLAogICAgVjE2OTYgPSAxLAogICAgVjE2OTcgPSAxMCwKICAgIFYxNjk4
ID0gNDY3LAogICAgVjE2OTkgPSAyNCwKICAgIFYxNzAwID0gMTYsCiAgICBWMTcwMSA9IDE2LAog
ICAgVjE3MDIgPSA4LAogICAgVjE3MDMgPSA0LAogICAgVjE3MDQgPSAxNiwKICAgIFYxNzA1ID0g
MTYsCiAgICBWMTcwNiA9IDE2LAogICAgVjE3MDcgPSAxNiwKICAgIFYxNzA4ID0gNjQsCiAgICBW
MTcwOSA9IDgsCiAgICBWMTcxMCA9IDE2LAogICAgVjE3MTEgPSA4LAogICAgVjE3MTIgPSA2LAog
ICAgVjE3MTMgPSA0OCwKICAgIFYxNzE0ID0gOCwKICAgIFYxNzE1ID0gMjQsCiAgICBWMTcxNiA9
IDEsCiAgICBWMTcxNyA9IDEsCiAgICBWMTcxOCA9IDEsCiAgICBWMTcxOSA9IDEsCiAgICBWMTcy
MCA9IDEsCiAgICBWMTcyMSA9IDEsCiAgICBWMTcyMiA9IDMyLAogICAgVjE3MjMgPSA4LAogICAg
VjE3MjQgPSAzMiwKICAgIFYxNzI1ID0gMSwKICAgIFYxNzI2ID0gMTAsCiAgICBWMTcyNyA9IDgs
CiAgICBWMTcyOCA9IDExLAp9Owp0eXBlZGVmIGVudW0gewogICAgVjE3MjkgPSAxLAogICAgVjE3
MzAgPSAyLAogICAgVjE3MzEgPSAzLAogICAgVjE3MzIgPSA0LAogICAgVjE3MzMgPSA2LAogICAg
VjE3MzQgPSA1MCwKICAgIFYxNzM1ID0gNTEsCiAgICBWMTczNiA9IDYwLAogICAgVjE3MzcgPSAx
MDAsCiAgICBWMTczOCA9IDEwMSwKICAgIFYxNzM5ID0gMTAyLAogICAgVjE3NDAgPSAxMDMsCiAg
ICBWMTc0MSA9IDEwNCwKICAgIFYxNzQyID0gMTA1LAogICAgVjE3NDMgPSAxMDYsCiAgICBWMTc0
NCA9IDEwNywKICAgIFYxNzQ1ID0gMTA4LAp9IFYxNzQ2Owp0eXBlZGVmIGVudW0gewogICAgVjE3
NDcgPSAxLAogICAgVjE3NDggPSAyLAogICAgVjE3NDkgPSAzLAogICAgVjE3NTAgPSA0LAogICAg
VjE3NTEgPSA1LAogICAgVjE3NTIgPSA2LAogICAgVjE3NTMgPSA1MCwKICAgIFYxNzU0ID0gNTEs
CiAgICBWMTc1NSA9IDYwLAogICAgVjE3NTYgPSAxMDAsCiAgICBWMTc1NyA9IDEwMSwKICAgIFYx
NzU4ID0gMTAyLAogICAgVjE3NTkgPSAxMDMsCiAgICBWMTc2MCA9IDEwNCwKICAgIFYxNzYxID0g
MTA1LAogICAgVjE3NjIgPSAxMDYsCiAgICBWMTc2MyA9IDEwNywKICAgIFYxNzY0ID0gMTA4LAp9
IFYxNzY1Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWMjQ4IFYxNzY2WygxICsgKCg3OTcpICsgKDgq
c2l6ZW9mKFYyNDgpKSAtIDEpIC8gKDgqc2l6ZW9mKFYyNDgpKSldOwogICAgVjI0OCBWMTc2N1so
MSArICgoNDgpICsgKDgqc2l6ZW9mKFYyNDgpKSAtIDEpIC8gKDgqc2l6ZW9mKFYyNDgpKSldOwp9
IFYxNzY4Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWMjQ4IFYxNzY5WygxICsgKCg0OCkgKyAoOCpz
aXplb2YoVjI0OCkpIC0gMSkgLyAoOCpzaXplb2YoVjI0OCkpKV07CiAgICB1bnNpZ25lZCBzaG9y
dCBWMTc3MDsKICAgIFYyNDggVjE3NzFbKDEgKyAoKDQ2NykgKyAoOCpzaXplb2YoVjI0OCkpIC0g
MSkgLyAoOCpzaXplb2YoVjI0OCkpKV07CiAgICBWMjQ4IFYxNzcyWygxICsgKCgyNTUpICsgKDgq
c2l6ZW9mKFYyNDgpKSAtIDEpIC8gKDgqc2l6ZW9mKFYyNDgpKSldOwogICAgdW5zaWduZWQgY2hh
ciBWMTc3MzsKICAgIHVuc2lnbmVkIGNoYXIgVjUxNjsKICAgIHVuc2lnbmVkIHNob3J0IFYxNzc0
OwogICAgdW5zaWduZWQgc2hvcnQgVjE3NzU7CiAgICB1bnNpZ25lZCBzaG9ydCBWMTc3NjsKfSBW
MTc3NzsKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5zaWduZWQgc2hvcnQgVjkwMDsKICAgIHVuc2ln
bmVkIHNob3J0IFYxMTg1OwogICAgVjI0OCBWMTc3OFsoMSArICgoNDgpICsgKDgqc2l6ZW9mKFYy
NDgpKSAtIDEpIC8gKDgqc2l6ZW9mKFYyNDgpKSldOwogICAgVjI0OCBWMTc3MlsoMSArICgoMjU1
KSArICg4KnNpemVvZihWMjQ4KSkgLSAxKSAvICg4KnNpemVvZihWMjQ4KSkpXTsKICAgIHVuc2ln
bmVkIGxvbmcgVjE3Nzk7Cn0gVjE3ODA7CnR5cGVkZWYgc3RydWN0IHsKICAgIHVuc2lnbmVkIHNo
b3J0IFYxNTU1OwogICAgdW5zaWduZWQgY2hhciBWMTc4MTsKfSBWMTc4MjsKdHlwZWRlZiBzdHJ1
Y3QgewogICAgdW5zaWduZWQgc2hvcnQgVjExODU7CiAgICB1bnNpZ25lZCBjaGFyIFYxNzgzOwp9
IFYxNzg0Owp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBsb25nIFYxNzg1Owp9IFYxNzg2
Owp0eXBlZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBsb25nIFYxNzg1Owp9IFYxNzg3Owp0eXBl
ZGVmIHN0cnVjdCB7CiAgICB1bnNpZ25lZCBjaGFyIFYxNzg4OwogICAgdW5zaWduZWQgY2hhciBW
MTI5NjsKfSBWMTc4OTsKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5zaWduZWQgc2hvcnQgVjE3OTA7
CiAgICB1bnNpZ25lZCBjaGFyIFY5MDI7Cn0gVjE3OTE7CnR5cGVkZWYgc3RydWN0IHsKICAgIFYy
NDggVjE3NzhbKDEgKyAoKDQ4KSArICg4KnNpemVvZihWMjQ4KSkgLSAxKSAvICg4KnNpemVvZihW
MjQ4KSkpXTsKfSBWMTc5MjsKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5zaWduZWQgc2hvcnQgVjE3
OTM7CiAgICB1bnNpZ25lZCBzaG9ydCBWMTM2ODsKICAgIHVuc2lnbmVkIGNoYXIgVjE3OTQ7Cn0g
VjE3OTU7CnR5cGVkZWYgc3RydWN0IHsKICAgIHVuc2lnbmVkIGNoYXIgVjE3OTY7Cn0gVjE3OTc7
CnR5cGVkZWYgc3RydWN0IHsKICAgIHVuc2lnbmVkIHNob3J0IFYxNzk4OwogICAgdW5zaWduZWQg
c2hvcnQgVjk0NjsKICAgIHVuc2lnbmVkIHNob3J0IFYxMzY4OwogICAgdW5zaWduZWQgY2hhciBW
MTc5OTsKfSBWMTgwMDsKdHlwZWRlZiBzdHJ1Y3QgewogICAgbG9uZyBWMTgwMVsxXTsKfSBWMTgw
MjsKdHlwZWRlZiBzdHJ1Y3QgewogICAgbG9uZyBWOTEwWzE3XTsKfSBWMTgwMzsKdHlwZWRlZiBz
dHJ1Y3QgewogICAgdW5zaWduZWQgbG9uZyBWMTgwNDsKICAgIHVuc2lnbmVkIGxvbmcgVjE4MDU7
CiAgICB1bnNpZ25lZCBjaGFyIFYxODA2OwogICAgdW5zaWduZWQgY2hhciBWMTgwNzsKICAgIHVu
c2lnbmVkIGNoYXIgVjE4MDg7CiAgICB1bnNpZ25lZCBjaGFyIFYxODA5OwogICAgdW5zaWduZWQg
Y2hhciBWMTgxMDsKICAgIFYyNDggVjE4MTFbKDEgKyAoKDE2Mzc2KSArICg4KnNpemVvZihWMjQ4
KSkgLSAxKSAvICg4KnNpemVvZihWMjQ4KSkpXTsKfSBWMTgxMjsKdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgdW5zaWduZWQgbG9uZyBWMTgwNDsKICAgIHVuc2lnbmVkIGNoYXIgVjE4MTM7CiAgICB1bnNp
Z25lZCBjaGFyIFYxODE0Owp9IFYxODE1Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWMTc2NSBWMTgx
NjsKICAgIHVuaW9uIHsKICAgICAgICBWMTc2OCBWMTgxNzsKICAgICAgICBWMTc3NyBWMTgxODsK
ICAgICAgICBWMTc4MCBWMTgxOTsKICAgICAgICBWMTc4MiBWMTgyMDsKICAgICAgICBWMTc4NCBW
MTgyMTsKICAgICAgICBWMTc4NiBWMTc4NTsKICAgICAgICBWMTc4NyBWMTgyMjsKICAgICAgICBW
MTc4OSBWMTI5NjsKICAgICAgICBWMTc5MSBWMTgyMzsKICAgICAgICBWMTc5MiBWMTc3ODsKICAg
ICAgICBWMTc5NSBWMTgyNDsKICAgICAgICBWMTc5NyBWMTgyNTsKICAgICAgICBWMTgwMCBWMTgy
NjsKICAgICAgICBWMTgwMiBWMTgyNzsKICAgICAgICBWMTgwMyBWMTgyODsKICAgICAgICBWMTgx
MiBWMTgyOTsKICAgICAgICBWMTgxNSBWMTgzMDsKICAgIH0gVjMzOTsKfSBWMTgzMTsKZXh0ZXJu
ClYxODMxICpWMTgzMih2b2lkKQo7ICAKZXh0ZXJuCnZvaWQgVjE4MzMoVjE4MzEgKlYzMzkpCjsg
IApleHRlcm4KY2hhciAqVjE4MzQoVjE3NDYgVjE4MzUpCjsgIApleHRlcm4KY2hhciAqVjE4MzYo
VjE3NjUgVjMzOSkKOyAgCmV4dGVybgppbnQgVjE4Mzcodm9pZCkKOyAgCmV4dGVybgpWMTQzNyAq
VjE4MzgoVjE4MzEgKlYzMzkpCjsgIApleHRlcm4KVjE4MzEgKlYxODM5KFYxNDM3ICpWMTU3NikK
OyAgCmV4dGVybgp2b2lkIFYxODQwKFYxNTAgKlYxODQxLCBWMTgzMSAqVjMzOSkKOyAgCnR5cGVk
ZWYgZW51bSB7CiAgICBWMTg0MiA9IDAsICAKICAgIFYxODQzLAogICAgVjE4NDQsCiAgICBWMTg0
NSwKICAgIFYxODQ2LAogICAgVjE4NDcsCiAgICBWMTg0OCwKICAgIFYxODQ5LAogICAgVjE4NTAs
CiAgICBWMTg1MSwKICAgIFYxODUyLAogICAgVjE4NTMsCiAgICBWMTg1NAp9IFYxODU1Owp0eXBl
ZGVmIHN0cnVjdCBWMTg1NiB7CiAgICB1bnNpZ25lZCBpbnQgVjE4NTc7CiAgICB1bnNpZ25lZCBp
bnQgVjE4NTg7CiAgICB1bnNpZ25lZCBpbnQgVjE4NTk7CiAgICB1bnNpZ25lZCBpbnQgVjE4NjA7
CiAgICB1bnNpZ25lZCBpbnQgVjE4NjE7CiAgICB1bnNpZ25lZCBpbnQgVjE4NjI7CiAgICB1bnNp
Z25lZCBpbnQgVjE4NjM7CiAgICB1bnNpZ25lZCBpbnQgVjE4NjQ7CiAgICB1bnNpZ25lZCBpbnQg
VjE4NjU7CiAgICB1bnNpZ25lZCBpbnQgVjE4NjY7CiAgICB1bnNpZ25lZCBpbnQgVjE4Njc7CiAg
ICB1bnNpZ25lZCBpbnQgVjE4Njg7Cn0gVjE4Njk7CmV4dGVybgppbnQgVjE4NzAoIHZvaWQgKQo7
ICAKZXh0ZXJuCmludCBWMTg3MShpbnQgVjE4NzIsIGludCBWMTg3MywgaW50IFYxMzU1KQo7ICAK
ZXh0ZXJuCmNvbnN0IGNoYXIgKlYxODc0KFYxODU1IFYxMzc3KQo7ICAKZXh0ZXJuCmNvbnN0IGNo
YXIgKlYxODc1KFYxODU1IFYxMzc3KQo7ICAKZXh0ZXJuCnZvaWQgVjE4NzYodm9pZCAqVjM1MikK
OyAgCmV4dGVybgp2b2lkIFYxODc3KGludCBWMTM4MCwgaW50IFYxMzgxLCBWMTg1NSBWMTM3NykK
OyAgCmV4dGVybgp2b2lkIFYxODc4KGludCBWMTM4MSwgVjE4NTUgVjEzNzcpCjsgIApleHRlcm4K
VjE4NjkgKiBWMTg3OShpbnQgVjEzODEpCjsgIApleHRlcm4Kdm9pZCBWMTg4MChpbnQgVjEzODEp
CjsgIApleHRlcm4Kdm9pZCBWMTg4MShpbnQgVjEzODEpCjsgIApleHRlcm4KdW5zaWduZWQgVjE4
ODIoCiAgICBWMzg4IFYxMDYyLCAgCiAgICB1bnNpZ25lZCBWNDU0ICAKICAgICkKOyAgCmV4dGVy
bgppbnQgVjE4ODMoKQo7ICAKdW5pb24gVjE4ODQKewogIFY1NSBWNDk1WzJdOwogIGRvdWJsZSBW
MTg4NTsKfTsKZXh0ZXJuIGNvbnN0IHVuaW9uIFYxODg0IFYxODg2W107CmV4dGVybiBkb3VibGUg
VjE4ODcgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE4ODggKGRvdWJsZSk7CmV4dGVybiBkb3Vi
bGUgVjE4ODkgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE4OTAgKGRvdWJsZSk7CmV4dGVybiBk
b3VibGUgVjE4OTEgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE4OTIgKGRvdWJsZSwgaW50ICop
OwpleHRlcm4gZG91YmxlIFYxODkzIChkb3VibGUsIGRvdWJsZSAqKTsKZXh0ZXJuIGRvdWJsZSBW
MTg5NCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTg5NSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJs
ZSBWMTg5NiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTg5NyAoZG91YmxlKTsKZXh0ZXJuIGRv
dWJsZSBWMTg5OCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTg5OSAoZG91YmxlLCBkb3VibGUp
OwpleHRlcm4gZG91YmxlIFYxOTAwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTAxIChkb3Vi
bGUpOwpleHRlcm4gZG91YmxlIFYxOTAyIChkb3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTAzIChk
b3VibGUsIGludCk7CmV4dGVybiBkb3VibGUgVjE5MDQgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUg
VjE5MDUgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MDYgKGRvdWJsZSwgZG91YmxlKTsKZXh0
ZXJuIGRvdWJsZSBWMTkwNyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTkwOCAoZG91YmxlLCBk
b3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTA5ICh2b2lkKTsKZXh0ZXJuIGRvdWJsZSBWMTkxMCAo
dm9pZCk7CmV4dGVybiBpbnQgVjE5MTEgKGRvdWJsZSk7CmV4dGVybiBpbnQgVjE5MTIgKGRvdWJs
ZSk7CmV4dGVybiBpbnQgVjE5MTMgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MTQgKGRvdWJs
ZSwgZG91YmxlKTsKZXh0ZXJuIGludCBWMTkxNSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTkx
NiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTkxNyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBW
MTkxOCAoZG91YmxlLCBkb3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTE5IChkb3VibGUpOwpleHRl
cm4gZG91YmxlIFYxOTIwIChkb3VibGUsIGludCk7CmV4dGVybiBkb3VibGUgVjE5MjEgKGRvdWJs
ZSk7CmV4dGVybiBkb3VibGUgVjE5MjIgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MjMgKGRv
dWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MjQgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MjUg
KGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBWMTkyNiAoZG91YmxlKTsKZXh0ZXJuIGRv
dWJsZSBWMTkyNyAoZG91YmxlLCBpbnQgKik7CmV4dGVybiBkb3VibGUgVjE5MjggKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgVjE5MjkgKGRvdWJsZSwgaW50ICopOwpleHRlcm4gZG91YmxlIFYxOTMw
IChkb3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTMxIChkb3VibGUpOwpleHRlcm4gZG91YmxlIFYx
OTMyIChkb3VibGUpOwpleHRlcm4gZG91YmxlIFYxOTMzIChkb3VibGUpOwpleHRlcm4gZG91Ymxl
IFYxOTM0IChpbnQsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MzUgKGRvdWJsZSk7CmV4dGVy
biBkb3VibGUgVjE5MzYgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgVjE5MzcgKGludCwgZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBWMTkzOCAoZG91YmxlLCBkb3VibGUpOwpleHRlcm4gZG91YmxlIFYx
OTM5KCk7CmV4dGVybiBkb3VibGUgVjE5NDAgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGZsb2F0
IFYxOTQxIChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk0MiAoZmxvYXQpOwpleHRlcm4gZmxvYXQg
VjE5NDMgKGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTQ0IChmbG9hdCk7CmV4dGVybiBmbG9hdCBW
MTk0NSAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5NDYgKGZsb2F0LCBpbnQgKik7CmV4dGVybiBm
bG9hdCBWMTk0NyAoZmxvYXQsIGZsb2F0ICopOwpleHRlcm4gZmxvYXQgVjE5NDggKGZsb2F0KTsK
ZXh0ZXJuIGZsb2F0IFYxOTQ5IChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk1MCAoZmxvYXQpOwpl
eHRlcm4gZmxvYXQgVjE5NTEgKGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTUyIChmbG9hdCk7CmV4
dGVybiBmbG9hdCBWMTk1MyAoZmxvYXQsIGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTU0IChmbG9h
dCk7CmV4dGVybiBmbG9hdCBWMTk1NSAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5NTYgKGZsb2F0
KTsKZXh0ZXJuIGZsb2F0IFYxOTU3IChmbG9hdCwgaW50KTsKZXh0ZXJuIGZsb2F0IFYxOTU4IChm
bG9hdCk7CmV4dGVybiBmbG9hdCBWMTk1OSAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5NjAgKGZs
b2F0LCBmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk2MSAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5
NjIgKGZsb2F0LCBmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk2MyAodm9pZCk7CmV4dGVybiBmbG9h
dCBWMTk2NCAodm9pZCk7CmV4dGVybiBpbnQgVjE5NjUgKGZsb2F0KTsKZXh0ZXJuIGludCBWMTk2
NiAoZmxvYXQpOwpleHRlcm4gaW50IFYxOTY3IChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk2OCAo
ZmxvYXQsIGZsb2F0KTsKZXh0ZXJuIGludCBWMTk2OSAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5
NzAgKGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTcxIChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk3
MiAoZmxvYXQsIGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTczIChmbG9hdCk7CmV4dGVybiBmbG9h
dCBWMTk3NCAoZmxvYXQsIGludCk7CmV4dGVybiBmbG9hdCBWMTk3NSAoZmxvYXQpOwpleHRlcm4g
ZmxvYXQgVjE5NzYgKGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTc3IChmbG9hdCk7CmV4dGVybiBm
bG9hdCBWMTk3OCAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5NzkgKGZsb2F0LCBmbG9hdCk7CmV4
dGVybiBmbG9hdCBWMTk4MCAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5ODEgKGZsb2F0LCBpbnQg
Kik7CmV4dGVybiBmbG9hdCBWMTk4MiAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5ODMgKGZsb2F0
LCBpbnQgKik7CmV4dGVybiBmbG9hdCBWMTk4NCAoZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5ODUg
KGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTg2IChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk4NyAo
ZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5ODggKGludCwgZmxvYXQpOwpleHRlcm4gZmxvYXQgVjE5
ODkgKGZsb2F0KTsKZXh0ZXJuIGZsb2F0IFYxOTkwIChmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk5
MSAoaW50LCBmbG9hdCk7CmV4dGVybiBmbG9hdCBWMTk5MiAoZmxvYXQsIGZsb2F0KTsKZXh0ZXJu
IGZsb2F0IFYxOTkzKCk7CmV4dGVybiBmbG9hdCBWMTk5NCAoZmxvYXQsIGZsb2F0KTsKZXh0ZXJu
IGludCAqVjE5OTUgKHZvaWQpOwpzdHJ1Y3QgVjE5OTYKewogIGludCBWMTE0MjsKICBjaGFyICpW
MzE1OwogIGRvdWJsZSBWMTk5NzsKICBkb3VibGUgVjE5OTg7CiAgZG91YmxlIFYxOTk5OwogIGlu
dCBWMjAwMDsKfTsKZXh0ZXJuIGludCBWMjAwMSAoc3RydWN0IFYxOTk2ICpWMjAwMik7CmVudW0g
VjIwMDMKewogIFYyMDA0ID0gLTEsCiAgVjIwMDUsCiAgVjIwMDYsCiAgVjIwMDcKfTsKZXh0ZXJu
IGNvbnN0IGVudW0gVjIwMDMgVjIwMDg7CnN0cnVjdCBWMjAwOTsgIAp0eXBlZGVmIHN0cnVjdCBW
MjAwOSAqVjIwMTA7ICAKZW51bSBWMjAxMQp7CiAgICBWMjAxMiA9IDAsICAKICAgIFYyMDEzID0g
MSwgIAogICAgVjIwMTQgPSAyLCAgCiAgICBWMjAxNSA9IDMsICAKICAgIFYyMDE2ID0gNAp9Owpl
bnVtIFYyMDE3IHsKICAgIFYyMDE4ID0gMCwgIAogICAgVjIwMTkgPSAxLCAgCiAgICBWMjAyMCA9
IDIsICAKICAgIFYyMDIxID0gMywgIAogICAgVjIwMjIgPSA0LCAgCiAgICBWMjAyMyA9IDUsICAK
ICAgIFYyMDI0ID0gNiwgIAogICAgVjIwMjUgPSA3LCAgCiAgICBWMjAyNiA9IDgsICAKICAgIFYy
MDI3ID0gOSwgIAogICAgVjIwMjggPSAxMCwgIAogICAgVjIwMjkgIAogICAgfTsKZW51bSB7IFYy
MDMwID0gNDggfTsgIApzdHJ1Y3QgVjIwMzEKewogICAgdm9pZCAoKlYyMDMyKShWMjAxMCBWMjAz
Mywgdm9pZCAqVjIwMzQpOwogICAgdm9pZCAoKlYyMDM1KShWMjAxMCBWMjAzMywgdm9pZCAqVjIw
MzQpOwogICAgdm9pZCAoKlYyMDM2KShWMjAxMCBWMjAzMywgdm9pZCAqVjIwMzQsCiAgICAgICAg
Y29uc3QgY2hhciAqVjIwMzcsIGludCBWMjAzOCApOwogICAgdm9pZCAoKlYyMDM5KShWMjAxMCBW
MjAzMywgdm9pZCAqVjIwMzQsCiAgICAgICAgY29uc3QgY2hhciAqVjIwMzcsIGludCBWMjAzOCAp
OwogICAgdm9pZCAoKlYyMDQwKShWMzg4IFY0NTMsIFYyMDEwIFYyMDMzLCB2b2lkICpWMjAzNCk7
CiAgICB2b2lkICgqVjIwNDEpKFYyMDEwIFYyMDMzLCB2b2lkICpWMjAzNCk7CiAgICB1bnNpZ25l
ZCBWMjA0MlsxMF07ICAKfTsKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNDM7ICAKZXh0ZXJuCnVu
c2lnbmVkIGNoYXIgVjIwNDQ7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNDU7ICAKZXh0ZXJu
CnVuc2lnbmVkIGNoYXIgVjIwNDY7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNDc7ICAKZXh0
ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNDg7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNDk7ICAK
ZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTA7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTE7
ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTI7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIw
NTM7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTQ7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIg
VjIwNTU7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTY7ICAKZXh0ZXJuCnVuc2lnbmVkIGNo
YXIgVjIwNTc7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNTg7ICAKZXh0ZXJuCnVuc2lnbmVk
IGNoYXIgVjIwNTk7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNjA7ICAKZXh0ZXJuCnVuc2ln
bmVkIGNoYXIgVjIwNjE7ICAKZXh0ZXJuCnVuc2lnbmVkIGNoYXIgVjIwNjI7ICAKZXh0ZXJuCnVu
c2lnbmVkIGNoYXIgVjIwNjM7ICAKZXh0ZXJuClYyMDEwIFYyMDY0KHZvaWQpCjsgIApleHRlcm4K
ZW51bSBWMjAxNyBWMjA2NSh2b2lkKQo7ICAKZXh0ZXJuCmludCBWMjA2Nih2b2lkKQo7ICAKc3Ry
dWN0IFYyMDY3CnsKICAgIGludCBWMjA2ODsKICAgIGludCBWMjA2OTsKfTsKICAgIHR5cGVkZWYg
c3RydWN0IFYyMDY3IFYyMDcwOwpzdGF0aWMgaW5saW5lIGRvdWJsZSBWMjA3MSggY29uc3QgVjIw
NzAgKlYyMDcyICkKewogICAgICAgIHJldHVybiBWMTkwMyggKGRvdWJsZSkoVjIwNzItPlYyMDY4
KSwgVjIwNzItPlYyMDY5LSgxMjctMjMpICk7Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYyMDczKCBW
MjA3MCAqVjIwNzIsIGRvdWJsZSBWMjA3NCApCnsKICAgICAgICBpbnQgVjIwNjk7CiAgICAgICAg
ZG91YmxlIFYyMDY4ID0gVjE5MDMoIFYxODkyKCBWMjA3NCwgJlYyMDY5ICksIDIzKTsKICAgICAg
ICBWMjA3Mi0+VjIwNjggPSAoaW50KSBWMjA2ODsKICAgICAgICBWMjA3Mi0+VjIwNjkgPSBWMjA2
OS0xMjc7Cn0Kc3RydWN0IFYyMDc1CnsKICAgIHVuc2lnbmVkIFYyMDc2OwogICAgdW5zaWduZWQg
VjIwNzc7Cn07CnR5cGVkZWYgc3RydWN0IFYyMDc1IFYyMDc4OwpzdGF0aWMgaW5saW5lIGxvbmcg
bG9uZyBWMjA3OSggY29uc3QgVjIwNzggKlYyMDgwICkKewogICAgaWYgKCAoVjIwODAtPlYyMDc2
ICYgMHg4MDAwMDApICE9IDAgKQogICAgICAgIHJldHVybiAoKChsb25nIGxvbmcpVjIwODAtPlYy
MDc2KTw8MjQpfChWMjA4MC0+VjIwNzcpfCh+MExMPDw0OCk7CiAgICBlbHNlCiAgICAgICAgcmV0
dXJuICgoKGxvbmcgbG9uZylWMjA4MC0+VjIwNzYpPDwyNCl8KFYyMDgwLT5WMjA3Nyk7Cn0Kc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvbmcgVjIwODEoIGNvbnN0IFYyMDc4ICpWMjA4MCAp
CnsKICAgIHJldHVybiAoKChsb25nIGxvbmcpVjIwODAtPlYyMDc2KTw8MjQpfChWMjA4MC0+VjIw
NzcpOwp9CnN0YXRpYyBpbmxpbmUgdm9pZCBWMjA4MiggVjIwNzggKlYyMDgwLCBsb25nIGxvbmcg
VjIwNzQgKQp7CiAgICBWMjA4MC0+VjIwNzYgPSAoVjIwNzQ+PjI0KSYweEZGRkZGRjsKICAgIFYy
MDgwLT5WMjA3NyA9IFYyMDc0JjB4RkZGRkZGOwp9CmV4dGVybgp1bnNpZ25lZCBWMjA4MygKICAg
IFYyMDEwIFYyMDg0CiAgICApCjsgIApleHRlcm4KdW5zaWduZWQgVjIwODUoCiAgICBWMjAxMCBW
MjA4NAogICAgKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYyMDg2KAogICAgVjIwMTAgVjIwODQKICAg
ICkKOyAgCmV4dGVybgp1bnNpZ25lZCBWMjA4NygKICAgIFYyMDEwIFYyMDg0CiAgICApCjsgIApl
eHRlcm4KdW5zaWduZWQgVjIwODgoCiAgICBWMjAxMCBWMjA4NAogICAgKQo7ICAKZXh0ZXJuCmNv
bnN0IGNoYXIgKiBWMjA4OSgKICAgIFYyMDEwIFYyMDg0CiAgICApCjsgIApleHRlcm4KVjIwMTAg
VjIwOTAoCiAgICBWMjAxMCBWMjA4NAogICAgKQo7ICAKZXh0ZXJuCmludCBWMjA5MSgKICAgIFYy
MDEwIFYyMDg0CiAgICApCjsgIApleHRlcm4Kc3RydWN0IFYyMDA5ICpWMjA5MigKICAgIHVuc2ln
bmVkIFYyMDkzLAogICAgdW5zaWduZWQgVjIwOTQsICAKICAgIHVuc2lnbmVkIFYyMDk1LCAgCiAg
ICB1bnNpZ25lZCBWMjA5NiwgIAogICAgaW50IFYyMDk3ICAKICAgICkKOyAgCmV4dGVybgpWMjAx
MCBWMjA5OCgKICAgIHVuc2lnbmVkIFYyMDkzLAogICAgdW5zaWduZWQgVjIwOTQsCiAgICB1bnNp
Z25lZCBWMjA5NSwKICAgIHVuc2lnbmVkIFYyMDk2CiAgICApCjsgIApleHRlcm4KVjIwMTAgVjIw
OTkoCiAgICBjb25zdCBjaGFyICpWMjEwMCAgCiAgICApCjsgIApleHRlcm4KVjIwMTAgVjIxMDEo
dm9pZCkKOyAgCmV4dGVybgp2b2lkIFYyMTAyKAogICAgdW5zaWduZWQgVjIwOTMsCiAgICB1bnNp
Z25lZCBWMjA5NCwKICAgIHVuc2lnbmVkIFYyMDk1LAogICAgdW5zaWduZWQgVjIwOTYsCiAgICBj
aGFyIFYyMTAzWyBWMjAzMCBdCiAgICApCjsgIApleHRlcm4KY29uc3QgY2hhciAqVjIxMDQoCiAg
ICB1bnNpZ25lZCBWMjA5MwogICAgKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYyMTA1KAogICAgY29u
c3QgY2hhciAqVjIxMDAgIAogICAgKQo7ICAKZXh0ZXJuClYyMDEwIFYyMTA2KAogICAgVjIwMTAg
VjIxMDcKICAgICkKOyAgCmV4dGVybgpWMjAxMCBWMjEwOCh2b2lkKQo7ICAKZXh0ZXJuCnZvaWQg
VjIxMDkoCiAgICBjb25zdCBjaGFyICpWMjAzNywgIAogICAgaW50IFYyMTEwICAKICAgICkKOyAg
CmV4dGVybgp2b2lkIFYyMTExKAogICAgY29uc3QgY2hhciAqVjIwMzcsICAKICAgIGludCBWMjEx
MCAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjExMigKICAgIHVuc2lnbmVkICAgVjIwOTMsCiAg
ICB2b2lkICgqVjIxMTMpKHZvaWQpLCAgCiAgICBjb25zdCBjaGFyICpWMjExNCAgCiAgICApCjsg
IApleHRlcm4Kdm9pZCBWMjExNSgKICAgIFYyMDEwIFYyMTE2LAogICAgdm9pZCAoKlYyMTEzKSh2
b2lkKSAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjExNygKICAgIFYyMDEwIFYyMTE2LAogICAg
aW50IFYyMTE4CiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjExOSgKICAgIFYyMDEwIFYyMTE2LAog
ICAgY29uc3QgY2hhciAqVjIxMTQsICAKICAgIGNvbnN0IGNoYXIgKlYyMDc0ICAKICAgICkKOyAg
CmV4dGVybgp2b2lkIFYyMTIwKAogICAgdW5zaWduZWQgVjIwOTMsCiAgICBjb25zdCBjaGFyICpW
MjExNCwgIAogICAgY29uc3QgY2hhciAqVjIwNzQgIAogICAgKQo7ICAKZXh0ZXJuCmNvbnN0IGNo
YXIgKlYyMTIxKAogICAgVjIwMTAgVjIxMTYsICAKICAgIGNvbnN0IGNoYXIgKlYyMTE0ICAKICAg
ICkKOyAgCmV4dGVybgpjb25zdCBjaGFyICpWMjEyMigKICAgIHVuc2lnbmVkIFYyMDkzLAogICAg
Y29uc3QgY2hhciAqVjIxMTQgIAogICAgKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYyMTIzKAogICAg
VjIwMTAgVjIxMTYsICAKICAgIGNvbnN0IGNoYXIgKlYyMTE0ICAKICAgICkKOyAgCmV4dGVybgpk
b3VibGUgVjIxMjQoCiAgICBWMjAxMCBWMjExNiwgIAogICAgY29uc3QgY2hhciAqVjIxMTQgIAog
ICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjIxMjUoCiAgICBjb25zdCBjaGFyICpWMjExNCwgIAogICAg
dm9pZCAqVjIwNzQsICAKICAgIHVuc2lnbmVkIFYyMTI2ICAKICAgICkKOyAgCmV4dGVybgp2b2lk
ICpWMjEyNygKICAgIFYyMDEwIFYyMTE2LAogICAgY29uc3QgY2hhciAqVjIxMTQsCiAgICB1bnNp
Z25lZCBWMjEyNiAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjEyOCgKICAgIFYyMDEwIFYyMDMz
LCAgCiAgICB2b2lkICpWMjAzNCAgCiAgICApCjsgIApleHRlcm4Kdm9pZCAqIFYyMTI5KAogICAg
VjIwMTAgVjIwMzMgIAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjIxMzAoc3RydWN0IFYyMDMxICpW
MjEzMSkKOyAgCmV4dGVybgp2b2lkIFYyMTMyKCB2b2lkICkKOyAgCmV4dGVybgppbnQgVjIxMzMo
KQo7ICAKZW51bSBWMjEzNAp7CiAgICBWMjEzNSA9IDAsCiAgICBWMjEzNiA9ICdlJywgIAogICAg
VjIxMzcgPSAnRScsICAKICAgIFYyMTM4ID0gJ2MnLCAgCiAgICBWMjEzOSA9IDI1Ngp9OwplbnVt
IHsgVjIxNDAgPSAyNTYgfTsKdHlwZWRlZiBzdHJ1Y3QgVjIxNDEgewogICAgZG91YmxlIFYyMTQy
OwogICAgZG91YmxlIFYyMTQzOwogICAgdW5zaWduZWQgaW50IFYyMTQ0OwogICAgY2hhciBWMTA3
NVtWMjE0MF07Cn0gVjIxNDU7CnR5cGVkZWYgc3RydWN0IFYyMTQ2IHsKICAgIFYxNTAgKlYyMTQ3
OwogICAgZG91YmxlIFYyMTQ4OwogICAgVjIxNDUgVjIxNDk7CiAgICBzdHJ1Y3QgVjIxNDYgKlY5
OTQ7Cn0gVjIxNTA7CmV4dGVybgppbnQgVjIxNTEoIHZvaWQgKQo7ICAKZXh0ZXJuCnZvaWQgVjIx
NTIoCiAgICB1bnNpZ25lZCBjaGFyICpWMjE1MywKICAgIGVudW0gVjIxMzQgVjIxNTQsCiAgICB1
bnNpZ25lZCBjaGFyICpWMjE1NSwKICAgIGRvdWJsZSBWMjE1NiwKICAgIGludCBWMjEyNgogICAg
KQo7ICAKZXh0ZXJuCnZvaWQgVjIxNTcoCiAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpWMjE1OCwK
ICAgIHVuc2lnbmVkIGNoYXIgKlYyMTU1LAogICAgZW51bSBWMjEzNCAqVjIxNTksCiAgICBkb3Vi
bGUgKlYyMTYwLAogICAgdW5zaWduZWQgKlYyMTYxCiAgICApCjsgIApleHRlcm4KaW50IFYyMTYy
KAogICAgVjIxNTAgKlYyMTYzLAogICAgZW51bSBWMjEzNCBWMjE1NCwKICAgIGRvdWJsZSBWMjE1
NiwKICAgIGludCBWMjEyNiwKICAgIGNvbnN0IHZvaWQgKlYyMTY0CiAgICApCjsgIApleHRlcm4K
aW50IFYyMTY1KAogICAgVjIxNTAgKlYyMTYzLAogICAgZW51bSBWMjEzNCAqVjIxNTksICAKICAg
IGRvdWJsZSAqVjIxNjAsICAKICAgIHZvaWQgKlYyMTY2LCAgCiAgICBpbnQgVjIxNjcgIAogICAg
KQo7ICAKZXh0ZXJuCnZvaWQgVjIxNjgoCiAgICBlbnVtIFYyMTM0IFYyMTU0LAogICAgZG91Ymxl
IFYyMTU2LAogICAgaW50IFYyMTI2LAogICAgY29uc3Qgdm9pZCAqVjIxNjQKICAgICkKOyAgCmV4
dGVybgpWMjE1MCAqVjIxNjkoCiAgICBjb25zdCBzdHJ1Y3QgVjIxNDEgKlYyMTcwCiAgICApCjsg
IApleHRlcm4Kdm9pZCBWMjE3MSgKICAgIGludCBWMjE3MgogICAgKQo7ICAKZXh0ZXJuCnZvaWQg
VjIxNzMoCiAgICBWMjE1MCAqVjIxNzQKICAgICkKOyAgCmV4dGVybgp2b2lkIFYyMTc1KAogICAg
aW50IFYyMTcyCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjE3NiggaW50IFYyMTcyICkKOyAgCmV4
dGVybgp2b2lkIFYyMTc3KHZvaWQpCjsgIApleHRlcm4KaW50IFYyMTc4KCBWMjE1MCAqVjIxNjMg
KQo7ICAKZXh0ZXJuCnZvaWQgVjIxNzkoIHZvaWQgKQo7ICAKc3RydWN0IFYyMTgwIHsKICAgIFYy
MTUwICpWMjE4MTsKICAgIGludCBWMjEyNjsKICAgIHVuc2lnbmVkIGNoYXIgVjIxODJbKDQwOTYp
XTsKICAgIHN0cnVjdCBWMjE4MCAqVjk5NDsKfTsKZXh0ZXJuCmRvdWJsZSBWMjE4Myh2b2lkKQo7
ICAKZXh0ZXJuCmRvdWJsZSBWMjE4NCh2b2lkKQo7ICAKZXh0ZXJuCnZvaWQgVjIxODUoCiAgICBp
bnQgVjIxODYgIAogICAgKQo7ICAKZXh0ZXJuCmludCBWMjE4Nyh2b2lkKQo7ICAKZXh0ZXJuCnZv
aWQgVjIxODgoCiAgICBlbnVtIFYyMTM0IFYyMTU0LAogICAgdm9pZCAoKlYyMTg5KShpbnQgVjIx
MjYsIHZvaWQgKlYyMTY0KQogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjIxOTAoCiAgICBWMjAxMCBW
MjExNiwKICAgIGludCBWMjE0NywgIAogICAgdm9pZCAoKlYyMTkxKSggaW50ICkKICAgICkKOyAg
CmV4dGVybgp2b2lkIFYyMTkyKAogICAgVjIwMTAgVjIxMTYKICAgICkKOyAgCmV4dGVybgp2b2lk
IFYyMTkzKAogICAgY29uc3QgY2hhciAqVjIxOTQsICAKICAgIHZvaWQgKiBWMjE5NSwgIAogICAg
ZG91YmxlIFYyMTk2LCAgCiAgICBWMjAxMCBWMjE5NywgIAogICAgdm9pZCAoKlYyMTkxKShpbnQg
VjIxOTgsIHZvaWQgKlYyMTk5KSwgIAogICAgaW50IFYyMTk4LCAgCiAgICB2b2lkICpWMjE5OSAg
CiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjIwMCgKICAgIFYyMDEwIFYyMTE2LCAgCiAgICB2b2lk
ICogVjIxOTUgIAogICAgKQo7ICAKZXh0ZXJuCnZvaWQgVjIyMDEoCiAgICBWMjAxMCBWMjExNiwg
IAogICAgZG91YmxlIFYyMTk2ICAKICAgICkKOyAgCmV4dGVybgp2b2lkIFYyMjAyKAogICAgVjIw
MTAgVjIxMTYsICAKICAgIGRvdWJsZSBWMjE5NiAgCiAgICApCjsgIApleHRlcm4Kdm9pZCBWMjIw
Myggdm9pZCApCjsgIApleHRlcm4Kdm9pZCBWMjIwNCggdm9pZCApCjsgIApleHRlcm4KaW50IFYy
MjA1KCkKOyAgCmV4dGVybgp2b2lkIFYyMjA2KHZvaWQpCjsgIApleHRlcm4KaW50IFYyMjA3KCB2
b2lkICkKOyAgCmV4dGVybgp2b2lkIFYyMjA4KAogICAgY2hhciAqKlYyMjA5ICAKICAgICkKOyAg
CmV4dGVybgppbnQgVjIyMTAoKQo7ICAKZXh0ZXJuCnVuc2lnbmVkIFYyMjExKAogICAgVjM4OCBW
MTA2MiwgIAogICAgdW5zaWduZWQgVjQ1NCAgCiAgICApCjsgIApleHRlcm4KaW50IFYyMjEyKCkK
OyAgCnZvaWQgKiBWMjIxMyAoY29uc3Qgdm9pZCAqLCBpbnQsIFY1Nik7CmludCBWMjIxNCAoY29u
c3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIFY1Nik7CnZvaWQgKiBWMjIxNSAodm9pZCAqLCBjb25z
dCB2b2lkICosIFY1Nik7CnZvaWQgKiBWMjIxNiAodm9pZCAqLCBjb25zdCB2b2lkICosIFY1Nik7
CnZvaWQgKiBWMjIxNyAodm9pZCAqLCBpbnQsIFY1Nik7CmNoYXIgKlYyMjE4IChjaGFyICosIGNv
bnN0IGNoYXIgKik7CmNoYXIgKlYyMjE5IChjb25zdCBjaGFyICosIGludCk7CmludCBWMjIyMCAo
Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwppbnQgVjIyMjEgKGNvbnN0IGNoYXIgKiwgY29u
c3QgY2hhciAqKTsKY2hhciAqVjIyMjIgKGNoYXIgKiwgY29uc3QgY2hhciAqKTsKVjU2IFYyMjIz
IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmNoYXIgKlYyMjI0IChpbnQpOwpWNTYgVjIy
MjUgKGNvbnN0IGNoYXIgKik7CmNoYXIgKlYyMjI2IChjaGFyICosIGNvbnN0IGNoYXIgKiwgVjU2
KTsKaW50IFYyMjI3IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgVjU2KTsKY2hhciAqVjIy
MjggKGNoYXIgKiwgY29uc3QgY2hhciAqLCBWNTYpOwpjaGFyICpWMjIyOSAoY29uc3QgY2hhciAq
LCBjb25zdCBjaGFyICopOwpjaGFyICpWMjIzMCAoY29uc3QgY2hhciAqLCBpbnQpOwpWNTYgVjIy
MzEgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKY2hhciAqVjIyMzIgKGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqKTsKY2hhciAqVjIyMzMgKGNoYXIgKiwgY29uc3QgY2hhciAqKTsKVjU2
IFYyMjM0IChjaGFyICosIGNvbnN0IGNoYXIgKiwgVjU2KTsKY2hhciAqVjIyMzUgKGNoYXIgKiwg
Y29uc3QgY2hhciAqLCBjaGFyICoqKTsKaW50IFYyMjM2IChjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKiwgVjU2KTsKdm9pZCBWMjIzNyAoY29uc3QgY2hhciAqLCBjaGFyICosIFY1Nik7CnZvaWQg
VjIyMzggKGNoYXIgKiwgVjU2KTsKaW50IFYyMjM5IChpbnQpOwpjaGFyICpWMTM1NiAoY29uc3Qg
Y2hhciAqLCBpbnQpOwp2b2lkICogVjIyNDAgKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBpbnQsIFY1
Nik7CmNoYXIgKlYyMjQxIChjb25zdCBjaGFyICosIGludCk7CmludCBWMjI0MiAoY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICopOwpjaGFyICpWMjI0MyAoY29uc3QgY2hhciAqKTsKY2hhciAqVjIy
NDQgKHN0cnVjdCBWMTExICosIGNvbnN0IGNoYXIgKik7CmludCBWMjI0NSAoY29uc3QgY2hhciAq
LCBjb25zdCBjaGFyICosIFY1Nik7CmNoYXIgKlYyMjQ2IChjaGFyICoqLCBjb25zdCBjaGFyICop
OwpjaGFyICpWMjI0NyAoY2hhciAqKTsKY2hhciAqVjIyNDggKGNoYXIgKik7CnR5cGVkZWYgdW5z
aWduZWQgVjIyNDk7CnN0YXRpYyBpbmxpbmUgVjIyNDkgVjIyNTAoIHVuc2lnbmVkIFYyMjUxICkK
ewogICAgcmV0dXJuIFYyMjUxOwp9CnN0YXRpYyBpbmxpbmUgVjIyNDkgVjIyNTIoIHVuc2lnbmVk
IFYyMjUxICkKewogICAgcmV0dXJuIChWMjI1MSA8PCAxNik7Cn0Kc3RhdGljIGlubGluZSBWMjI0
OSBWMjI1MyggdW5zaWduZWQgVjIyNTEgKQp7CiAgICBpZiAoICgxKSApCiAgICB7CiAgICAgICAg
cmV0dXJuIFYyMjUwKFYyMjUxKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICByZXR1cm4g
VjIyNTIoVjIyNTEpOwogICAgfQp9CnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgVjIyNTQoIFYyMjQ5
IFYyMjU1ICkKewogICAgcmV0dXJuIFYyMjU1Owp9CnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgVjIy
NTYoIFYyMjQ5IFYyMjU1ICkKewogICAgcmV0dXJuIChWMjI1NSA+PiAxNik7Cn0Kc3RhdGljIGlu
bGluZSB1bnNpZ25lZCBWMjI1NyggVjIyNDkgVjIyNTUgKQp7CiAgICBpZiAoICgxKSApCiAgICB7
CiAgICAgICAgcmV0dXJuIFYyMjU0KFYyMjU1KTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAg
ICByZXR1cm4gVjIyNTYoVjIyNTUpOwogICAgfQp9CnR5cGVkZWYgdW5zaWduZWQgY2hhciBWMjI1
ODsKdHlwZWRlZiBWMjI1OCBWMjI1OTsgIAp0eXBlZGVmIHVuc2lnbmVkIFYyMjYwOwp0eXBlZGVm
IFYyMjYwIFYyMjYxOwp0eXBlZGVmIFYyMjYwIFYyMjYyOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIg
VjIyNjM7CnR5cGVkZWYgc3RydWN0IFYyMjY0IFYyMjY1OwpzdGF0aWMgaW5saW5lIFY1NiBWMjI2
Nih2b2lkKQp7CiAgICBpZiAoICgxKSApCiAgICB7CiAgICAgICAgcmV0dXJuIHNpemVvZihWMjI1
OCk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIHNpemVvZihWMjI2MCk7CiAg
ICB9Cn0Kc3RhdGljIGlubGluZSBWMjI2NSAqVjIyNjcoCiAgICBjb25zdCBWMjI2NSAqVjIyNjgs
CiAgICBpbnQgVjIyNjkKICAgICkKewogICAgaWYgKCAoMSkgKQogICAgewogICAgICAgIHJldHVy
biAodm9pZCAqKSgoKGNvbnN0IFYyMjU4ICopVjIyNjgpICsgVjIyNjkpOwogICAgfQogICAgZWxz
ZQogICAgewogICAgICAgIHJldHVybiAodm9pZCAqKSgoKGNvbnN0IFYyMjYwICopVjIyNjgpICsg
VjIyNjkpOwogICAgfQp9CnN0YXRpYyBpbmxpbmUgaW50IFYyMjcwKAogICAgY29uc3QgVjIyNjUg
KlYyMjcxLAogICAgY29uc3QgVjIyNjUgKlYyMjcyCiAgICApCnsKICAgIGlmICggKDEpICkKICAg
IHsKICAgICAgICByZXR1cm4gKGNvbnN0IFYyMjU4ICopVjIyNzEgLSAoY29uc3QgVjIyNTggKilW
MjI3MiA7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIChjb25zdCBWMjI2MCAq
KVYyMjcxIC0gKGNvbnN0IFYyMjYwICopVjIyNzIgOwogICAgfQp9CnN0YXRpYyBpbmxpbmUgVjIy
NDkgVjIyNzMoCiAgICBjb25zdCBWMjI2NSAqVjIyNjgsCiAgICBpbnQgVjIyNjkKICAgICkKewog
ICAgaWYgKCAoMSkgKQogICAgewogICAgICAgIHJldHVybiAoKGNvbnN0IFYyMjU4ICopVjIyNjgp
W1YyMjY5XTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICByZXR1cm4gKChjb25zdCBWMjI2
MCAqKVYyMjY4KVtWMjI2OV07CiAgICB9Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYyMjc0KAogICAg
VjIyNjUgKlYyMjY4LAogICAgaW50IFYyMjY5LAogICAgVjIyNDkgVjIwNzQKICAgICkKewogICAg
aWYgKCAoMSkgKQogICAgewogICAgICAgICgoVjIyNTggKilWMjI2OClbVjIyNjldID0gVjIwNzQ7
CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgKChWMjI2MCAqKVYyMjY4KVtWMjI2OV0gPSBW
MjA3NDsKICAgIH0KfQpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIFYyMjc1KAogICAgY29uc3QgVjIy
NjUgKlYyMjY4LAogICAgaW50IFYyMjY5CiAgICApCnsKICAgIGlmICggKDEpICkKICAgIHsKICAg
ICAgICByZXR1cm4gVjIyNTcoKChjb25zdCBWMjI1OCAqKVYyMjY4KVtWMjI2OV0pOwogICAgfQog
ICAgZWxzZQogICAgewogICAgICAgIHJldHVybiBWMjI1NygoKGNvbnN0IFYyMjYwICopVjIyNjgp
W1YyMjY5XSk7CiAgICB9Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYyMjc2KAogICAgVjIyNjUgKlYy
MjY4LAogICAgaW50IFYyMjY5LAogICAgdW5zaWduZWQgVjIwNzQgIAogICAgKQp7CiAgICBpZiAo
ICgxKSApCiAgICB7CiAgICAgICAgKChWMjI1OCAqKVYyMjY4KVtWMjI2OV0gPSBWMjI1MChWMjA3
NCk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgKChWMjI2MCAqKVYyMjY4KVtWMjI2OV0g
PSBWMjI1MihWMjA3NCk7CiAgICB9Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYyMjc3KAogICAgVjIy
NjUgKlYyMjY4LAogICAgaW50IFYyMjc4LAogICAgaW50IFYyMTI2LCAgCiAgICB1bnNpZ25lZCBW
MjA3NCAgCiAgICApCnsKICAgIGlmICggVjIyNzggKQogICAgewogICAgICAgIFYyMjY4ID0gVjIy
NjcoIFYyMjY4LCBWMjI3OCApOwogICAgfQogICAgaWYgKCAoMSkgKQogICAgewogICAgICAgIFYy
MjE3KCBWMjI2OCwgVjIwNzQsIFYyMTI2ICk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAg
VjIwNzQgPSBWMjI1MihWMjA3NCk7CiAgICAgICAgVjIxMjYtLTsKICAgICAgICBkbwogICAgICAg
IHsKICAgICAgICAgICAgKChWMjI2MCAqKVYyMjY4KVtWMjEyNl0gPSBWMjA3NDsKICAgICAgICB9
IHdoaWxlICggLS1WMjEyNiA+PSAwICk7CiAgICB9Cn0Kc3RhdGljIGlubGluZSBWMjI2NSAqVjIy
NzkoCiAgICBWMjI2NSAqVjIyNjgsCiAgICB1bnNpZ25lZCBWMjA3NCAgCiAgICApCnsKICAgIGlm
ICggKDEpICkKICAgIHsKICAgICAgICBWMjI1OCAqVjIyODAgPSAoKFYyMjU4ICopVjIyNjgpOwog
ICAgICAgICpWMjI4MCsrID0gVjIyNTAoVjIwNzQpOwogICAgICAgIHJldHVybiAoVjIyNjUgKikg
VjIyODA7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgdW5zaWduZWQgKlYyMjgwID0gKChW
MjI2MCAqKVYyMjY4KTsKICAgICAgICAqVjIyODArKyA9IFYyMjUyKFYyMDc0KTsKICAgICAgICBy
ZXR1cm4gKFYyMjY1ICopIFYyMjgwOwogICAgfQp9CnN0YXRpYyBpbmxpbmUgdm9pZCBWMjI4MSgK
ICAgIFYyMjY1ICpWMjI4MiwKICAgIGNvbnN0IFYyMjY1ICpWMjI4MywKICAgIGludCBWMTEyMCAg
CiAgICApCnsKICAgIGlmICggKDEpICkKICAgIHsKICAgIH0KICAgIGVsc2UKICAgIHsgIAogICAg
ICAgIFYxMTIwICo9IHNpemVvZihWMjI2MCk7CiAgICB9CiAgICBWMjIxNShWMjI4MixWMjI4MyxW
MTEyMCk7Cn0Kc3RhdGljIGlubGluZSB2b2lkIFYyMjg0KAogICAgdW5zaWduZWQgY2hhciAqVjM1
MiwKICAgIGNvbnN0IFYyMjY1ICpWMjI4NSwKICAgIGludCBWMTEyMAogICAgKQp7CiAgICBpZiAo
ICgxKSApCiAgICB7CiAgICAgICAgVjIyMTUoVjM1MixWMjI4NSxWMTEyMCk7CiAgICB9CiAgICBl
bHNlCiAgICB7CiAgICAgICAgY29uc3QgVjIyNjAgKlYyMjg2ID0gKGNvbnN0IFYyMjYwICopVjIy
ODU7CiAgICAgICAgaWYgKCAtLVYxMTIwID49IDAgKQogICAgICAgICAgICBkbyB7IFYzNTJbVjEx
MjBdID0gVjIyNTYoVjIyODZbVjExMjBdKTsgfQogICAgICAgICAgICAgICAgd2hpbGUgKCAtLVYx
MTIwID49IDAgKTsKICAgIH0KfQpzdGF0aWMgaW5saW5lIHZvaWQgVjIyODcoCiAgICBWMjI2NSAq
VjIyODUsCiAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpWMzUyLAogICAgaW50IFYxMTIwCiAgICAp
CnsKICAgIGlmICggKDEpICkKICAgIHsKICAgICAgICBWMjIxNShWMjI4NSxWMzUyLFYxMTIwKTsK
ICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBWMjI2MCAqVjIyODYgPSAodm9pZCAqKVYyMjg1
OwogICAgICAgIGlmICggLS1WMTEyMCA+PSAwICkKICAgICAgICAgICAgZG8geyBWMjI4NltWMTEy
MF0gPSBWMjI1MihWMzUyW1YxMTIwXSk7IH0KICAgICAgICAgICAgICAgIHdoaWxlICggLS1WMTEy
MCA+PSAwICk7CiAgICB9Cn0KdHlwZWRlZiBsb25nIGludCBWMjI4ODsKdHlwZWRlZiBpbnQgVjIy
ODk7CnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBWMTE0MjsgIAogICAgaW50IFYyMjkwOyAgCiAg
ICBpbnQgVjIyOTE7ICAKICAgIGludCBWMjI5MjsgIAp9IFYyMjkzOwp0eXBlZGVmIGVudW0gewog
ICAgVjIyOTQgPSAweDEsCiAgICBWMjI5NSA9IDB4MiwKICAgIFYyMjk2ID0gMHg0LAogICAgVjIy
OTcgPSAtMSwKICAgIFYyMjk4ID0gLTIsCiAgICBWMjI5OSA9IC0zCn0gVjIzMDA7CnR5cGVkZWYg
c3RydWN0IHsKICAgIGludCBWMjMwMTsgIAogICAgaW50IFYyMzAyOyAgCiAgICBpbnQgVjIzMDM7
ICAKICAgIGludCBWMjMwNDsgIAp9IFYyMzA1Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBWMjMwNSBW
MjMwNjsKfSBWMjMwNzsKdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IFYyMzA4OyAgCiAgICBpbnQg
VjIzMDk7ICAKfSBWMjMxMDsKdHlwZWRlZiBlbnVtIHsKICAgIFYyMzExID0gMCwKICAgIFYyMzEy
ID0gMSwKICAgIFYyMzEzID0gMiwKICAgIFYyMzE0ID0gMwp9IFYyMzE1OwplbnVtIHsKICAgIFYy
MzE2ID0gNDA5NiAgCn07CnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBWMjU0OyAgCiAgICBpbnQg
VjIzMTc7ICAKICAgIFYyMjY1ICpWMTM3NTsgIAogICAgaW50IFY5MTY7ICAKfSBWMjMxODsKZXh0
ZXJuCmludCBWMjMxOSggdm9pZCApCjsgIApleHRlcm4Kdm9pZCBWMjMyMCgKICAgIHZvaWQgKCpW
MjMyMSkoaW50IFYyMzIyLCBpbnQgVjIzMjMpLAogICAgdm9pZCAoKlYyMzI0KShpbnQgVjIzMjIs
IGludCBWMjMyMykKKQo7ICAKZXh0ZXJuCnZvaWQgVjIzMjUoVjIzMDcgKlYyMTQ5KQo7ICAKZXh0
ZXJuCmludCBWMjMyNihpbnQgVjIzMjIsIFYyMzEwICpWMjE0OSkKOyAgCmV4dGVybgppbnQgVjIz
MjcoCiAgICBpbnQgVjIzMjIsICAKICAgIFYyMjkzICpWMjMyOCwgIAogICAgVjIyNjUgKlYxMzc1
LCAgCiAgICBpbnQgVjIzMjkgIAopCjsgIApleHRlcm4KaW50IFYyMzMwKAogICAgaW50IFYyMzIy
LCAgCiAgICBWMjI5MyAqVjIzMjgsICAKICAgIGNvbnN0IFYyMjY1ICpWMTM3NSwgIAogICAgaW50
IFYxMTIwICAKKQo7ICAKZXh0ZXJuClYyMzE4ICpWMjMzMShpbnQgVjIzMjIsIFYyMzE1IFYxMTQy
KQo7ICAKc3RhdGljIGlubGluZSBWMjI2NSogVjIzMzIoVjIzMTggKlY5MDgpCnsKICAgIHJldHVy
biBWMjI2NyggVjkwOC0+VjEzNzUsIFY5MDgtPlY5MTYgKTsKfQpzdGF0aWMgaW5saW5lIGludCBW
MjMzMyhWMjMxOCAqVjkwOCwgaW50IFYyMzM0KQp7CiAgICBWOTA4LT5WOTE2ID0gKFY5MDgtPlY5
MTYgKyBWMjMzNCkgJiBWOTA4LT5WMjMxNzsKICAgIHJldHVybiBWOTA4LT5WOTE2Owp9CmV4dGVy
bgp2b2lkIFYyMzM1KCB2b2lkICkKOyAgCmV4dGVybgp1bnNpZ25lZCBWMjMzNigKICAgIFYzODgg
VjEwNjIsICAKICAgIHVuc2lnbmVkIFY0NTQgIAogICAgKQo7ICAKZXh0ZXJuCmludCBWMjMzNygp
CjsgIAogICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgVjIzMzg7CnN0YXRpYyBpbmxpbmUg
aW50IFYyMzM5KCBWMjMzOCBWMjM0MCwgVjIzMzggVjIzNDEgKQp7CiAgICByZXR1cm4gVjIzNDAg
PT0gVjIzNDE7Cn0Kc3RhdGljIGlubGluZSBWMjMzOCBWMjM0Mih2b2lkKQp7CiAgICByZXR1cm4g
MDsKfQpzdGF0aWMgaW5saW5lIGludCBWMjM0MyggVjIzMzggVjIzNDQgKQp7CiAgICByZXR1cm4g
VjIzNDQgPT0gMDsKfQpzdGF0aWMgaW5saW5lIFYyMzM4IFYyMzQ1KCB1bnNpZ25lZCBjaGFyIFYy
MzQ2WzZdICkKewogICAgVjIzMzggVjIzNDQ7CiAgICBWMjM0NCA9CiAgICAgICAgKCgoVjIzMzgp
VjIzNDZbMF0pPDw0MCkgfAogICAgICAgICgoKFYyMzM4KVYyMzQ2WzFdKTw8MzIpIHwKICAgICAg
ICAoKChWMjMzOClWMjM0NlsyXSk8PDI0KSB8CiAgICAgICAgKCgoVjIzMzgpVjIzNDZbM10pPDwx
NikgfAogICAgICAgICgoKFYyMzM4KVYyMzQ2WzRdKTw8OCkgfAogICAgICAgICgoKFYyMzM4KVYy
MzQ2WzVdKSkgOwogICAgcmV0dXJuIFYyMzQ0Owp9CnN0YXRpYyBpbmxpbmUgdm9pZCBWMjM0NygK
ICAgIFYyMzM4IFYyMzQ0LAogICAgdW5zaWduZWQgY2hhciBWMjM0Nls2XQogICAgKQp7CiAgICBW
MjM0NlswXSA9IDB4RkYgJiAoVjIzNDQgPj4gNDApOwogICAgVjIzNDZbMV0gPSAweEZGICYgKFYy
MzQ0ID4+IDMyKTsKICAgIFYyMzQ2WzJdID0gMHhGRiAmIChWMjM0NCA+PiAyNCk7CiAgICBWMjM0
NlszXSA9IDB4RkYgJiAoVjIzNDQgPj4gMTYpOwogICAgVjIzNDZbNF0gPSAweEZGICYgKFYyMzQ0
ID4+IDgpOwogICAgVjIzNDZbNV0gPSAweEZGICYgKFYyMzQ0KTsKfQplbnVtIHsKICAgIFYyMzQ4
LAogICAgVjIzNDksCiAgICBWMjM1MCwKICAgIFYyMzUxLAogICAgVjIzNTIsCiAgICBWMjM1MywK
ICAgIFYyMzU0LAogICAgVjIzNTUsCiAgICBWMjM1NiwKICAgIFYyMzU3LAogICAgVjIzNTgsCiAg
ICBWMjM1OSwKICAgIFYyMzYwLAogICAgVjIzNjEsCiAgICBWMjM2MiwKICAgIFYyMzYzLAogICAg
VjIzNjQsCiAgICBWMjM2NSwKICAgIFYyMzY2LAogICAgVjIzNjcsCiAgICBWMjM2OCwKICAgIFYy
MzY5LAogICAgVjIzNzAsCiAgICBWMjM3MSwKICAgIFYyMzcyLAogICAgVjIzNzMsCiAgICBWMjM3
NCwKICAgIFYyMzc1LAogICAgVjIzNzYKfSBWMjM3NzsKZW51bSB7CiAgICBWMjM3OCA9IDAsCiAg
ICBWMjM3OSA9IDEsCiAgICBWMjM4MCA9IDIKfTsKZW51bSB7CiAgICBWMjM4MSA9IC0xLCAgCiAg
ICBWMjM4MiA9IC0xLCAgCiAgICBWMjM4MyA9IDEsICAKICAgIFYyMzg0ID0gMiwgIAogICAgVjIz
ODUgPSAzLCAgCn07CnR5cGVkZWYgZW51bSB7CiAgICBWMjM4NiA9IDAsCiAgICBWMjM4NywKICAg
IFYyMzg4LAp9IFYyMzg5Owp0eXBlZGVmIGVudW0gewogICAgVjIzOTAgPSAwLAogICAgVjIzOTEs
CiAgICBWMjM5MiwKICAgIFYyMzkzLAogICAgVjIzOTQsCn0gVjIzOTU7CnR5cGVkZWYgZW51bSB7
CiAgICBWMjM5NiA9IDAsCiAgICBWMjM5NywKICAgIFYyMzk4LAp9IFYyMzk5Owp0eXBlZGVmIGVu
dW0gewogICAgVjI0MDAgPSAwLAogICAgVjI0MDEsCiAgICBWMjQwMiwKICAgIFYyNDAzLAogICAg
VjI0MDQsCiAgICBWMjQwNSwKICAgIFYyNDA2LCAgCn0gVjI0MDc7CnR5cGVkZWYgZW51bSB7CiAg
ICBWMjQwOCA9IDAsCiAgICBWMjQwOSwgIAogICAgVjI0MTAsICAKICAgIFYyNDExLCAgCiAgICBW
MjQxMiwgIAogICAgVjI0MTMsICAKICAgIFYyNDE0LCAgCn0gVjI0MTU7CnR5cGVkZWYgZW51bSB7
CiAgICBWMjQxNiA9IDAsCiAgICBWMjQxNywKICAgIFYyNDE4LAogICAgVjI0MTksICAKfSBWMjQy
MDsKdHlwZWRlZiBlbnVtIHsKICAgIFYyNDIxID0gMCwKICAgIFYyNDIyLCAgCiAgICBWMjQyMywg
IAp9IFYyNDI0Owp0eXBlZGVmIGVudW0gewogICAgVjI0MjUsCiAgICBWMjQyNiwKfSBWMjQyNzsK
ZW51bSB7CiAgICBWMjQyOCA9ICgweGQwKSwKICAgIFYyNDI5ID0gKDB4YTcpLAogICAgICAgIFYy
NDMwID0gKDB4N2UpLAogICAgICAgIFYyNDMxID0gKDB4ZmYpLAp9Owp0eXBlZGVmIHN0cnVjdAp7
CiAgICBWMTI2NCBWOTgwOyAgCiAgICBWMjQ4IFYyNDMyWygxICsgKChWMTY5MykgKyAoOCpzaXpl
b2YoVjI0OCkpIC0gMSkgLyAoOCpzaXplb2YoVjI0OCkpKV07ICAKICAgIFYyMzM4IFYyMzQ0OyAg
CiAgICBpbnQgVjI0MzM7ICAKICAgIFYxNjE3IFYyNDM0OyAgCiAgICBpbnQgVjI0MzVbM107Cn0g
VjI0MzY7CmVudW0gewogICAgVjI0MzcsCiAgICBWMjQzOCwKICAgIFYyNDM5LAogICAgVjI0NDAs
Cn07CnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBWMjQ0MTsgIAogICAgdW5zaWduZWQgY2hhciBW
MTI2NzsgIAogICAgdW5zaWduZWQgY2hhciBWMTE0MjsgIAogICAgVjEyOTcgVjI0NDI7CiAgICBp
bnQgVjI0NDM7ICAKICAgIFY5ODEgVjI0NDQ7CiAgICBpbnQgVjI0NDU7ICAKfSBWMjQ0NjsKdHlw
ZWRlZiBzdHJ1Y3QgVjI0NDcgewogICAgVjI0OCBWMjQzMlsoMSArICgoVjE2OTMpICsgKDgqc2l6
ZW9mKFYyNDgpKSAtIDEpIC8gKDgqc2l6ZW9mKFYyNDgpKSldOwogICAgVjIzMzggVjIzNDQ7ICAK
ICAgIHN0cnVjdCBWMjQ0NyAqVjI0NDg7ICAKICAgIHN0cnVjdCBWMjQ0NyAqVjI0NDk7ICAKICAg
IFYyNDE1IFYyNDUwOyAgCiAgICBWMjQyMCBWMjQ1MTsgIAogICAgVjI0MjQgVjI0NTI7ICAKICAg
IHZvaWQgKlYxNTU0OyAgCiAgICB2b2lkICpWMTU1MzsgIAogICAgaW50IFYxMzQ3OyAgCiAgICBW
MTYxNyBWMjQ1MzsgIAogICAgaW50IFYxNzc5OyAgCiAgICBpbnQgVjI0NTQ7ICAKICAgIGludCBW
MjQ1NTsgIAogICAgVjE1NDQgVjE1NTU7ICAKICAgIFYxNjYwICpWMjQ1NjsgIAogICAgVjE2MTcg
VjI0NTc7ICAKICAgIFYxNjE3IFYyNDU4OyAgCiAgICBWMTYxNyBWMjQ1OTsgIAogICAgVjE2MTcg
VjI0NjA7ICAKICAgIHN0cnVjdCB7CiAgICB9IFYyNDYxOwogICAgaW50IFYyNDYyOyAgCiAgICBp
bnQgVjI0NjM7ICAKICAgIGludCBWMjQ2NDsgIAogICAgVjI0NDYgKlYyNDY1WzNdOwogICAgVjE2
MTcgVjI0NjY7ICAKICAgIGludCBWMjQ2NzsgIAogICAgaW50IFYyNDY4OyAgCiAgICB1bnNpZ25l
ZCBWMjQ2OTsgIAogICAgdW5zaWduZWQgVjI0NzA7ICAKICAgIHVuc2lnbmVkIFYxMjk2OyAgCiAg
ICBpbnQgVjI0NzE7ICAKICAgIGludCBWMjQ3MjsgIAogICAgaW50IFYyNDczOyAgCiAgICBWOTgx
IFYyNDc0OyAgCiAgICBzdHJ1Y3QgewogICAgICAgIFYxNDM3ICpWMjQ3NTsgIAogICAgICAgIGlu
dCBWMjQ3NjsgIAogICAgICAgIGludCBWMTEyMDsgIAogICAgfSBWMjQ3NzsKICAgIHN0cnVjdCB7
CiAgICAgICAgVjE0MzcgKlYyNDc1OyAgCiAgICAgICAgaW50IFYyNDc2OyAgCiAgICAgICAgaW50
IFYxMTIwOyAgCiAgICB9IFYyNDc4OyAgCiAgICBWMTQzNyAqVjI0Nzk7ICAKICAgIHN0cnVjdCB7
CiAgICAgICAgVjE0MzcgKlYyNDc1OyAgCiAgICAgICAgaW50IFYyNDc2OyAgCiAgICAgICAgaW50
IFYxMTIwOyAgCiAgICB9IFYyNDgwOyAgCiAgICBzdHJ1Y3QgewogICAgICAgIFYxNDM3ICpWMjQ3
NTsgIAogICAgICAgIGludCBWMjQ3NjsgIAogICAgICAgIGludCBWMTEyMDsgIAogICAgfSBWMjQ4
MTsKICAgIGludCBWMTc4MTsgIAogICAgVjk4MSBWMjQ4MjsgIAogICAgc3RydWN0IHsKICAgICAg
ICB1bnNpZ25lZCBWMjQ4MzsgIAogICAgICAgIHVuc2lnbmVkIFYyNDg0OyAgCiAgICAgICAgdW5z
aWduZWQgVjI0ODU7ICAKICAgICAgICB1bnNpZ25lZCBsb25nIFYyNDg2OyAgCiAgICAgICAgdW5z
aWduZWQgbG9uZyBWMjQ4NzsgIAogICAgICAgIHVuc2lnbmVkIGxvbmcgVjI0ODg7IAogICAgICAg
IHN0cnVjdCB7CiAgICAgICAgICAgIHVuc2lnbmVkIFYyNDgzOyAgCiAgICAgICAgICAgIHVuc2ln
bmVkIFYyNDg0OyAgCiAgICAgICAgICAgIHVuc2lnbmVkIFYyNDg2OyAgCiAgICAgICAgICAgIHVu
c2lnbmVkIFYyNDg3OyAKICAgICAgICAgICAgVjk4MSBWMjQ4MjsgIAogICAgICAgICAgICBWOTgx
IFYyNDg5OyAgCiAgICAgICAgfSBWMjQ5MFsyXTsgIAogICAgICAgIGludCBWMjQ5MTsgIAogICAg
ICAgIHN0cnVjdCB7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBWMjQ5MjsKICAgICAgICAgICAg
dW5zaWduZWQgaW50IFYyNDkzOyAgCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBWMjQ5NDsgIAog
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgVjI0OTU7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBW
MjQ5NjsKICAgICAgICAgICAgdW5zaWduZWQgaW50IFYyNDk3OwogICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgVjI0OTg7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBWMjQ4ODsKICAgICAgICAgICAg
dW5zaWduZWQgaW50IFYyNDg1OwogICAgICAgICAgICB1bnNpZ25lZCBpbnQgVjE4NTc7CiAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBWMTg1ODsKICAgICAgICAgICAgdW5zaWduZWQgaW50IFYxODU5
OwogICAgICAgICAgICB1bnNpZ25lZCBpbnQgVjE4NjA7CiAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBWMTg2MTsKICAgICAgICAgICAgdW5zaWduZWQgaW50IFYxODYyOwogICAgICAgICAgICB1bnNp
Z25lZCBpbnQgVjE4NjM7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBWMTg2NDsKICAgICAgICAg
ICAgdW5zaWduZWQgaW50IFYxODY1OwogICAgICAgICAgICB1bnNpZ25lZCBpbnQgVjE4NjY7CiAg
ICAgICAgICAgIHVuc2lnbmVkIGludCBWMTg2NzsKICAgICAgICAgICAgdW5zaWduZWQgaW50IFYx
ODY4OwogICAgICAgICAgICBpbnQgVjEzNTFbM107CiAgICAgICAgICAgIFYxODY5ICpWMjQ5OVsz
XTsKICAgICAgICAgICAgVjEzMTEgKlYyNTAwWzNdOwogICAgICAgICAgICBWMTU4OSAqVjI1MDFb
M107CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBWMjUwMjsKICAgICAgICAgICAgdW5zaWduZWQg
aW50IFYyNTAzOwogICAgICAgICAgICB1bnNpZ25lZCBpbnQgVjI1MDQ7CiAgICAgICAgICAgIHVu
c2lnbmVkIGludCBWMjUwNTsKICAgICAgICAgICAgdW5zaWduZWQgaW50IFYyNTA2OwogICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgVjI1MDc7CiAgICAgICAgICAgIGludCBWMjUwODsKICAgICAgICB9
IFYyNTA5OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgVjI1MTA7
ICAKICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBWMjUxMTsgIAogICAgICAgIH0gVjI1MTI7CiAg
ICB9IFYyNTEzOwogICAgc3RydWN0IFYyNTE0ICpWMjUxNTsKfSBWMjUxNjsKc3RydWN0IFYyNTE3
CnsKICAgIGludCBWMzg0OwogICAgVjI1MTYgKlYyNTE4OwogICAgVjI0NDYgVjI1MTlbM107CiAg
ICB1bnNpZ25lZCBWMjUyMDsKICAgIGludCBWMTM5NTsKICAgIFYyNTE2ICooKlYyNTIxKShpbnQg
VjEzNDcpOwogICAgVjI1MTYgKigqVjI1MjIpKGludCBWMTM1MSk7CiAgICBWMjUxNiAqKCpWMjUy
Mykodm9pZCAqVjE1NTMpOwogICAgVjI1MTYgKigqVjI1MjQpKFYyMzM4IFYyMzQ0KTsgIAogICAg
c3RydWN0IHsKICAgICAgICBpbnQgVjE3OTQ7ICAKICAgIH0gVjI1MjU7CiAgICBpbnQgVjEzNjg7
ICAKICAgIGludCBWOTQ2OyAgCiAgICBzdHJ1Y3QgewogICAgICAgIGludCBWMjUyNjsKICAgICAg
ICBzdHJ1Y3QgewogICAgICAgICAgICAgdm9pZCAqVjI1Mjc7CiAgICAgICAgICAgICBpbnQgVjEz
OTM7CiAgICAgICAgICAgICBpbnQgVjI1Mjg7CiAgICAgICAgfSBWMjE3NFsoNCldOwogICAgICAg
IFYxNjE3IFYyNTI5OwogICAgICAgIGludCBWMjUzMDsKICAgIH0gVjI1MzE7CiAgICAgICAgdW5z
aWduZWQgVjI1MzI7CiAgICBWMTE4OCBWMTE5MTsKICAgIGludCBWMjUzMzsKICAgIGludCBWMjUz
NDsKICAgIGludCBWMjUzNTsKICAgIHN0cnVjdCB7CiAgICAgICAgaW50IFYxMTg1OwogICAgICAg
IFYxMTg4IFYxMTkxOwogICAgfSBWMjUzNls0XTsKICAgIGludCBWMjUzNzsKICAgIGludCBWMjUz
ODsKICAgIGludCBWMjUzOTsKICAgIFYxNjE3IFYyNTQwOwogICAgdW5zaWduZWQgVjI1NDE7ICAK
ICAgIGludCBWMjU0MjsgIAogICAgZG91YmxlIFYyNTQzOyAgCiAgICBpbnQgVjI1NDQ7CiAgICBp
bnQgVjI1NDU7CiAgICBpbnQgVjI1NDY7CiAgICBpbnQgVjI1NDc7CiAgICBpbnQgVjI1NDg7CiAg
ICBpbnQgVjI1NDk7CiAgICBpbnQgVjI1NTA7CiAgICBWMTYxNyBWMjQ2MDsgIAogICAgc3RydWN0
IFYyNTUxIHsKICAgICAgICB1bnNpZ25lZCBWMjU1MjsgIAogICAgICAgIHVuc2lnbmVkIFYyNTUz
OyAgCiAgICAgICAgdW5zaWduZWQgVjI1NTQ7ICAKICAgICAgICB1bnNpZ25lZCBWMjU1NTsgIAog
ICAgICAgIHVuc2lnbmVkIFYyNTU2W1YyNDA2XTsgIAogICAgICAgIHVuc2lnbmVkIFYyNTU3W1Yy
NDA2XTsgIAogICAgICAgIHVuc2lnbmVkIGxvbmcgVjI1MTA7ICAKICAgICAgICB1bnNpZ25lZCBs
b25nIFYyNTExOyAgCiAgICAgICAgdW5zaWduZWQgbG9uZyBWMjU1ODsgIAogICAgICAgIHVuc2ln
bmVkIFYyNTU5W1Y0NzFdOwogICAgICAgIHVuc2lnbmVkIFYyNTYwW1Y0NzFdOwogICAgfSBWMjU1
MVsyXTsKICAgIHN0cnVjdCBWMjU2MSB7CiAgICAgICAgdW5zaWduZWQgVjI1NTI7ICAKICAgICAg
ICB1bnNpZ25lZCBWMjU1MzsgIAogICAgICAgIHVuc2lnbmVkIFYyNTU0OyAgCiAgICAgICAgdW5z
aWduZWQgVjI1NTU7ICAKICAgICAgICB1bnNpZ25lZCBWMjU1NltWMjQwNl07ICAKICAgICAgICB1
bnNpZ25lZCBWMjU1N1tWMjQwNl07ICAKICAgICAgICB1bnNpZ25lZCBsb25nIFYyNTEwOyAgCiAg
ICAgICAgdW5zaWduZWQgbG9uZyBWMjUxMTsgIAogICAgICAgIHVuc2lnbmVkIGxvbmcgVjI1NTg7
ICAKICAgICAgICB1bnNpZ25lZCBWMjU1OVtWNDcxXTsKICAgICAgICB1bnNpZ25lZCBWMjU2MFtW
NDcxXTsKICAgIH0gVjI1NjFbNF07CiAgICB2b2lkICpWMjU2MjsKfTsKZXh0ZXJuCnN0cnVjdCBW
MjUxNyAqIFYyNTYzOyAgCmV4dGVybgp2b2lkIFYyNTY0KFYyNTE2ICpWMjU2NSwgaW50IFYyNTY2
KQo7ICAKc3RydWN0IFYyNTE3ICogVjI1NjM7ClYxNDM3ICpWMjU2NyhWMjUxNiAqVjI1NjUpCnsK
fQp2b2lkIFYyNTY4KFYyNTE2ICpWMjU2NSwgVjE0MzcgKlYxNTcwLCBpbnQgVjI1NjkpCnsKfQpl
bnVtIFYyNTcwCnsKICAgIFYyNTcxID0gMSwKICAgIFYyNTcyID0gMiwKICAgIFYyNTczID0gMwp9
Owp2b2lkIFYyNTc0KAogICAgVjI1MTYgKlYyNTY1LAogICAgZW51bSBWMjU3MCBWMjU3NQogICAg
KQp7Cn0Kdm9pZCBWMjU2NChWMjUxNiAqVjI1NjUsIGludCBWMjU2NikKewogICAgaW50IFY0OTUs
IFYxMTIwOwogICAgVjE0MzcgKlYxNTc2LCAqVjE1NzBbM107CiAgICBpbnQgVjI1NzZbM107ICAK
ICAgIGludCBWMjU3NzsgIAogICAgVjk4MSAqVjI1Nzg7CiAgICBpbnQgVjI1Nzk7CiAgICBpbnQg
VjM0MiA9ICgwKSA/IFY0NzQgOiBWNDczOyAgCiAgICBpbnQgVjI1ODAsIFYyNTgxOwogICAgaWYg
KCBWMjU2NS0+VjI0NDggKQogICAgewogICAgICAgIFYyNTY1LT5WMjQ0OC0+VjI0NDkgPSBWMjU2
NS0+VjI0NDk7CiAgICAgICAgVjI1NjUtPlYyNDQ5LT5WMjQ0OCA9IFYyNTY1LT5WMjQ0ODsKICAg
ICAgICBpZiAoIFYyNTYzLT5WMjUxOCA9PSBWMjU2NSApCiAgICAgICAgewogICAgICAgICAgICBp
ZiAoIFYyNTY1LT5WMjQ0OCA9PSBWMjU2NSApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
IFYyNTYzLT5WMjUxOCA9ICgodm9pZCAqKTApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVjI1NjMtPlYyNTE4ID0gVjI1NjUtPlYy
NDQ4OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFYyNTY1LT5WMjQ0OCA9IFYyNTY1
LT5WMjQ0OSA9ICgodm9pZCAqKTApOwogICAgfQogICAgaWYgKCBWMjU2NiApIFYyNTc0KCBWMjU2
NSwgVjI1NzMgKTsKICAgIGVsc2UKICAgIGlmICggISBWMjU2NS0+VjI0ODEuVjI0NzUgKSB7CiAg
ICAgICAgVjI1NzQoIFYyNTY1LCBWMjU3MSApOwogICAgICAgIGlmICggISBWMjU2NS0+VjI0ODEu
VjI0NzUgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBWMjU3OCA9
IFYxMDI0KCk7CiAgICBmb3IgKCBWNDk1ID0gMDsgVjQ5NSA8IFYyNTY1LT5WMjQ2MzsgVjQ5NSsr
ICkgewogICAgICAgIGludCBWMjU4MiA9IDA7CiAgICAgICAgVjE1NzBbVjQ5NV0gPSAoKHZvaWQg
KikwKTsKICAgICAgICBWMjU3OSA9IFYxMDEzKFYyNTc4LCAmVjI1NjUtPlYyNDY1W1Y0OTVdLT5W
MjQ0NCk7CiAgICAgICAgaWYgKFYyNTY1LT5WMjQ2NVtWNDk1XS0+VjEyNjcgPT0gVjI0MzgpIHsK
ICAgICAgICAgICAgVjI1ODIgPSBWMjU2NS0+VjI0NjVbVjQ5NV0tPlYyNDQzCiAgICAgICAgICAg
ICAgICAtIFYyNTc5CiAgICAgICAgICAgICAgICAqIFYyNTY1LT5WMjQ2NVtWNDk1XS0+VjI0NDIu
VjUxMVtWMzQyXS5WMTEyMDsKICAgICAgICAgICAgaWYgKCBWMjU4MiA8IDAgKSBWMjU4MiA9IDA7
CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgVjI1ODIgPSBWMjU2NS0+VjI0NjVbVjQ5NV0t
PlYyNDQzOwogICAgICAgIH0KICAgICAgICBWMjU3NltWNDk1XSA9IFYyNTgyOwogICAgfQogICAg
aWYgKFYyNTY2KSB7CiAgICAgICAgZm9yICggVjQ5NSA9IDA7IFY0OTUgPCBWMjU2NS0+VjI0NjM7
IFY0OTUrKyApIHsKICAgICAgICAgICAgaWYgKFYyNTY1LT5WMjQ2NVtWNDk1XS0+VjEyNjcgPT0g
VjI0MzgpIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoIFY0OTUgPCBWMjU2NS0+VjI0NjMg
KSB7CiAgICAgICAgICAgIFYxNTcwW1Y0OTVdID0gVjI1NjcoVjI1NjUpOyAgCiAgICAgICAgICAg
IFYxMTIwID0gKChWMTU3MFtWNDk1XSktPlYxNDM1IC0gKFYxNTcwW1Y0OTVdKS0+VjE0MzQpOwog
ICAgICAgICAgICB3aGlsZSAoIFYyNTY1LT5WMjQ4MS5WMjQ3NSApIHsKICAgICAgICAgICAgICAg
IFYxNTc2ID0gVjI1NjcoVjI1NjUpOwogICAgICAgICAgICAgICAgVjE1NzYtPlYxNDMxID0gVjE1
NzBbVjQ5NV07CiAgICAgICAgICAgICAgICBWMTU3Ni0+VjE0MzIgPSBWMTU3MFtWNDk1XS0+VjE0
MzI7CiAgICAgICAgICAgICAgICBWMTU3MFtWNDk1XS0+VjE0MzItPlYxNDMxID0gVjE1NzY7CiAg
ICAgICAgICAgICAgICBWMTU3MFtWNDk1XS0+VjE0MzIgPSBWMTU3NjsKICAgICAgICAgICAgICAg
IFYxMTIwICs9ICgoVjE1NzYpLT5WMTQzNSAtIChWMTU3NiktPlYxNDM0KTsKICAgICAgICAgICAg
fQogICAgICAgICAgICBWMjU2NS0+VjI0NjVbVjQ5NV0tPlYyNDQzICs9IFYxMTIwOwogICAgICAg
ICAgICBWMTYwNChWMjU2NS0+VjI0NjVbVjQ5NV0tPlYyNDQxLCBWMTU3MFtWNDk1XSk7CiAgICAg
ICAgfQogICAgfSBlbHNlIHsKICAgICAgICB3aGlsZSAoIFYyNTY1LT5WMjQ4MS5WMjQ3NSApIHsK
ICAgICAgICAgICAgVjE1NzYgPSBWMjU2NyhWMjU2NSk7ICAKICAgICAgICAgICAgVjExMjAgPSAo
KFYxNTc2KS0+VjE0MzUgLSAoVjE1NzYpLT5WMTQzNCk7CiAgICAgICAgICAgIFYyNTc3ID0gLTE7
CiAgICAgICAgICAgIFYyNTgxID0gMTAwMDAwOyAgCiAgICAgICAgICAgIGZvciAoIFY0OTUgPSAw
OyBWNDk1IDwgVjI1NjUtPlYyNDYzOyBWNDk1KysgKSB7CiAgICAgICAgICAgICAgICBpZiAoIFYy
NTY1LT5WMjQ2NVtWNDk1XS0+VjEyNjcgPT0gVjI0MzggKSB7CiAgICAgICAgICAgICAgICAgICAg
aW50IFYyNTgyID0gVjI1NzZbVjQ5NV07CiAgICAgICAgICAgICAgICAgICAgVjI1ODAgPQogICAg
ICAgICAgICAgICAgICAgICAgICAoVjI1ODIKICAgICAgICAgICAgICAgICAgICAgICAgICsgVjI1
NjUtPlYyNDY1W1Y0OTVdLT5WMjQ0Mi5WNTExW1YzNDJdLlYxMTIwIC0gMSkKICAgICAgICAgICAg
ICAgICAgICAgICAgLyBWMjU2NS0+VjI0NjVbVjQ5NV0tPlYyNDQyLlY1MTFbVjM0Ml0uVjExMjA7
CiAgICAgICAgICAgICAgICAgICAgaWYgKCBWMjU4MCA8PQogICAgICAgICAgICAgICAgICAgICAg
ICAgKCAoKDApID8gMSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSArIDIpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAmJiBWMjU4MCA8IFYyNTgxICkgewogICAgICAgICAgICAgICAg
ICAgICAgICBWMjU4MSA9IFYyNTgwOwogICAgICAgICAgICAgICAgICAgICAgICBWMjU3NyA9IFY0
OTU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgICAgIGlmICggVjI1NzcgPT0gLTEgKSB7CiAgICAgICAgICAgICAgICBWMjU2OChW
MjU2NSwgVjE1NzYsIDEgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgIGlmICggVjE1NzBbVjI1NzddICkgewogICAgICAgICAgICAg
ICAgICAgIFYxNTc2LT5WMTQzMSA9IFYxNTcwW1YyNTc3XTsKICAgICAgICAgICAgICAgICAgICBW
MTU3Ni0+VjE0MzIgPSBWMTU3MFtWMjU3N10tPlYxNDMyOwogICAgICAgICAgICAgICAgICAgIFYx
NTcwW1YyNTc3XS0+VjE0MzItPlYxNDMxID0gVjE1NzY7CiAgICAgICAgICAgICAgICAgICAgVjE1
NzBbVjI1NzddLT5WMTQzMiA9IFYxNTc2OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICBWMTU3MFtWMjU3N10gPSBWMTU3NjsKICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIFYyNTY1LT5WMjQ2NVtWMjU3N10tPlYyNDQzICs9IFYxMTIwOwogICAgICAg
ICAgICAgICAgVjI1NzZbVjI1NzddICs9IFYxMTIwOwogICAgICAgICAgICB9CiAgICAgICAgfQog
ICAgICAgIGZvciAoIFY0OTUgPSAwOyBWNDk1IDwgVjI1NjUtPlYyNDYzOyBWNDk1KysgKSB7CiAg
ICAgICAgICAgIGlmICggVjE1NzBbVjQ5NV0gKQogICAgICAgICAgICAgICAgVjE2MDQoVjI1NjUt
PlYyNDY1W1Y0OTVdLT5WMjQ0MSwgVjE1NzBbVjQ5NV0pOwogICAgICAgIH0KICAgIH0KICAgIFYy
NTc0KCBWMjU2NSwgVjI1NzIgKTsKfQo=


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

* Re: target/7240: gcc 3.1 ARM thumb target generates 32bis code sometimes
@ 2002-09-30  4:58 rearnsha
  0 siblings, 0 replies; 2+ messages in thread
From: rearnsha @ 2002-09-30  4:58 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, rearnsha, ted

Synopsis: gcc 3.1 ARM thumb target generates 32bis code sometimes

Responsible-Changed-From-To: unassigned->rearnsha
Responsible-Changed-By: rearnsha
Responsible-Changed-When: Mon Sep 30 04:58:26 2002
Responsible-Changed-Why:
    .
State-Changed-From-To: open->closed
State-Changed-By: rearnsha
State-Changed-When: Mon Sep 30 04:58:26 2002
State-Changed-Why:
    I've checked in a change that should solve this problem on both the trunk and 3.2 branch.  If you still get this problem with the fixed code then please resubmit.

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


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

end of thread, other threads:[~2002-09-30 11:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-08 20:26 target/7240: gcc 3.1 ARM thumb target generates 32bis code sometimes ted
2002-09-30  4:58 rearnsha

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).