public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: bootstrap/5043: ICE compiling libgcc2.c on mips-sgi-irix6.5
@ 2002-04-10 11:45 ghazi
  0 siblings, 0 replies; 3+ messages in thread
From: ghazi @ 2002-04-10 11:45 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, reichelt

Synopsis: ICE compiling libgcc2.c on mips-sgi-irix6.5

State-Changed-From-To: open->closed
State-Changed-By: ghazi
State-Changed-When: Wed Apr 10 11:45:16 2002
State-Changed-Why:
    The problem is reported not to occur anymore.

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


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

* Re: bootstrap/5043: ICE compiling libgcc2.c on mips-sgi-irix6.5
@ 2002-04-09  7:26 Reichelt
  0 siblings, 0 replies; 3+ messages in thread
From: Reichelt @ 2002-04-09  7:26 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR bootstrap/5043; it has been noted by GNATS.

From: Reichelt <reichelt@igpm.rwth-aachen.de>
To: gcc-gnats@gcc.gnu.org, reichelt@igpm.rwth-aachen.de, gcc-bugs@gcc.gnu.org,
        nobody@gcc.gnu.org
Cc:  
Subject: Re: bootstrap/5043: ICE compiling libgcc2.c on mips-sgi-irix6.5
Date: Tue, 9 Apr 2002 16:48:45 +0200

 Hi,
 
 the PR can probably be closed, since recent snapshots of 3.1 boot clean
 using 3.0.4 or 3.0 to init the bootstrap (I didn't check 3.0.[123]
 however).
 
 Greetings,
 Volker Reichelt
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5043
 
 


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

* bootstrap/5043: ICE compiling libgcc2.c on mips-sgi-irix6.5
@ 2001-12-07  9:06 reichelt
  0 siblings, 0 replies; 3+ messages in thread
From: reichelt @ 2001-12-07  9:06 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5043
>Category:       bootstrap
>Synopsis:       ICE compiling libgcc2.c on mips-sgi-irix6.5
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Fri Dec 07 09:06:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Volker Reichelt
>Release:        gcc 3.1 20011203 (experimental)
>Organization:
>Environment:
mips-sgi-irix6.5
>Description:
Bootstrapping gcc 3.1 on mips-sgi-irix6.5 results in an ICE:

../../gcc-20011203/gcc/libgcc2.c: In function `__muldi3':
../../gcc-20011203/gcc/libgcc2.c:359: Internal compiler error in c_expand_expr, at c-common.c:3436
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
gmake[3]: *** [libgcc/./_muldi3.o] Error 1
gmake[3]: Leaving directory `/...../build/gcc'
gmake[2]: *** [stmp-multilib] Error 2
gmake[2]: Leaving directory `/...../build/gcc'
gmake[1]: *** [stage1_build] Error 2
gmake[1]: Leaving directory `/...../build/gcc'
gmake: *** [bootstrap-lean] Error 2

The command that triggers the failure is:
./xgcc -B./ -B/gcc3.1/mips-sgi-irix6.5/bin/ -isystem /gcc3.1/mips-sgi-irix6.5/include -isystem /gcc3.1/mips-sgi-irix6.5/sys-include -O2   -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../gcc-20011203/gcc -I../../gcc-20011203/gcc/. -I../../gcc-20011203/gcc/config -I../../gcc-20011203/gcc/../include  -DL_muldi3 -c ../../gcc-20011203/gcc/libgcc2.c -o libgcc/./_muldi3.o

The offending part of libgcc2.c is the following code snippet
(just compile with "BUILD_DIRECTORY/gcc/cc1 -quiet"):

typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int DItype __attribute__ ((mode (DI)));

struct DWstruct {SItype high, low;};

typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;

DItype
__muldi3 (DItype u, DItype v)
{
  DWunion w;
  DWunion uu, vv;

  uu.ll = u,
  vv.ll = v;

  w.ll = ({DWunion __w; __asm__ ("multu %2,%3" : "=l" ((USItype) (__w.s.low)), "=h" ((USItype) (__w.s.high)) : "d" ((USItype) (uu.s.low)), "d" ((USItype) (vv.s.low))); __w.ll; });
  w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
               + (USItype) uu.s.high * (USItype) vv.s.low);

  return w.ll;
}

The example can be reduced further to the follwing code
that still crashes cc1:

void f ()
{
  unsigned int u;
  __asm__ ("multu %2,%3" : "=l" (u), "=h" (u) : "d" (u), "d" (u));
}

Notes:
* I added the complete preprocessed file libgcc2.i for
  convenience.
* All three examples (libgcc2.i and the two code snippets
  above) compile fine with gcc 3.0.x.
* The bootstrap was started with gcc 3.0. I think the
  the same problem arose using SGI's native compiler
  (but I'm not quite sure about that).
* The problem persists for quite some time now
  (probably for a couple of months).
>How-To-Repeat:
make bootstrap-lean on mips-sgi-irix6.5
>Fix:

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

IyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2xpYmdjYzIuYyIKIyAxICI8YnVpbHRpbj4iCiMg
MSAiPGNvbW1hbmQgbGluZT4iCiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9saWJnY2MyLmMi
CiMgMzYgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvbGliZ2NjMi5jIgojIDEgInRjb25maWcuaCIg
MQoKIyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvaW5jbHVkZS9hbnNpZGVjbC5oIiAxCiMgMyAidGNv
bmZpZy5oIiAyCiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9pcmlzNi5o
IiAxCiMgMzMgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvaXJpczYuaCIKIyAx
ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2NvbmZpZy9taXBzL2lyaXM1LmgiIDEKIyAyNyAiLi4v
Li4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9pcmlzNS5oIgojIDEgIi4uLy4uL2djYy0y
MDAxMTIwMy9nY2MvY29uZmlnL21pcHMvaXJpczMuaCIgMQojIDI4ICIuLi8uLi9nY2MtMjAwMTEy
MDMvZ2NjL2NvbmZpZy9taXBzL2lyaXM1LmgiIDIKIyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2Nj
L2NvbmZpZy9taXBzL21pcHMuaCIgMQojIDI5ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2NvbmZp
Zy9taXBzL21pcHMuaCIKZXh0ZXJuIGNoYXIgKmFzbV9maWxlX25hbWU7CmV4dGVybiBjaGFyIGNh
bGxfdXNlZF9yZWdzW107CmV4dGVybiBpbnQgbWF5X2NhbGxfYWxsb2NhOwpleHRlcm4gY2hhciAq
KnNhdmVfYXJndjsKZXh0ZXJuIGludCB0YXJnZXRfZmxhZ3M7CgoKCgplbnVtIGNtcF90eXBlIHsK
ICBDTVBfU0ksCiAgQ01QX0RJLAogIENNUF9TRiwKICBDTVBfREYsCiAgQ01QX01BWAp9OwoKCmVu
dW0gZGVsYXlfdHlwZSB7CiAgREVMQVlfTk9ORSwKICBERUxBWV9MT0FELAogIERFTEFZX0hJTE8s
CiAgREVMQVlfRkNNUAp9OwoKCgoKCgplbnVtIHByb2Nlc3Nvcl90eXBlIHsKICBQUk9DRVNTT1Jf
REVGQVVMVCwKICBQUk9DRVNTT1JfUjMwMDAsCiAgUFJPQ0VTU09SX1IzOTAwLAogIFBST0NFU1NP
Ul9SNjAwMCwKICBQUk9DRVNTT1JfUjQwMDAsCiAgUFJPQ0VTU09SX1I0MTAwLAogIFBST0NFU1NP
Ul9SNDMwMCwKICBQUk9DRVNTT1JfUjQ2MDAsCiAgUFJPQ0VTU09SX1I0NjUwLAogIFBST0NFU1NP
Ul9SNTAwMCwKICBQUk9DRVNTT1JfUjgwMDAsCiAgUFJPQ0VTU09SX1I0S0MsCiAgUFJPQ0VTU09S
X1I1S0MsCiAgUFJPQ0VTU09SX1IyMEtDCn07CiMgMTA0ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2Nj
L2NvbmZpZy9taXBzL21pcHMuaCIKZW51bSBtaXBzX2FiaWNhbGxzX3R5cGUgewogIE1JUFNfQUJJ
Q0FMTFNfTk8sCiAgTUlQU19BQklDQUxMU19ZRVMKfTsKCgoKCgoKCmVudW0gYmxvY2tfbW92ZV90
eXBlIHsKICBCTE9DS19NT1ZFX05PUk1BTCwKICBCTE9DS19NT1ZFX05PVF9MQVNULAogIEJMT0NL
X01PVkVfTEFTVAp9OwoKZXh0ZXJuIGNoYXIgbWlwc19yZWdfbmFtZXNbXVs4XTsKZXh0ZXJuIGNo
YXIgbWlwc19wcmludF9vcGVyYW5kX3B1bmN0W107CmV4dGVybiBjb25zdCBjaGFyICpjdXJyZW50
X2Z1bmN0aW9uX2ZpbGU7CmV4dGVybiBpbnQgbnVtX3NvdXJjZV9maWxlbmFtZXM7CmV4dGVybiBp
bnQgaW5zaWRlX2Z1bmN0aW9uOwpleHRlcm4gaW50IGlnbm9yZV9saW5lX251bWJlcjsKZXh0ZXJu
IGludCBmaWxlX2luX2Z1bmN0aW9uX3dhcm5pbmc7CmV4dGVybiBpbnQgc2RiX2xhYmVsX2NvdW50
OwpleHRlcm4gaW50IHNkYl9iZWdpbl9mdW5jdGlvbl9saW5lOwpleHRlcm4gaW50IG1pcHNfc2Vj
dGlvbl90aHJlc2hvbGQ7CmV4dGVybiBpbnQgZ19zd2l0Y2hfdmFsdWU7CmV4dGVybiBpbnQgZ19z
d2l0Y2hfc2V0OwpleHRlcm4gaW50IHN5bV9saW5lbm87CmV4dGVybiBpbnQgc2V0X25vcmVvcmRl
cjsKZXh0ZXJuIGludCBzZXRfbm9tYWNybzsKZXh0ZXJuIGludCBzZXRfbm9hdDsKZXh0ZXJuIGlu
dCBzZXRfdm9sYXRpbGU7CmV4dGVybiBpbnQgbWlwc19icmFuY2hfbGlrZWx5OwpleHRlcm4gaW50
IG1pcHNfZGJ4X3JlZ25vW107CmV4dGVybiBzdHJ1Y3QgcnR4X2RlZiAqYnJhbmNoX2NtcFsyXTsK
ZXh0ZXJuIGVudW0gY21wX3R5cGUgYnJhbmNoX3R5cGU7CmV4dGVybiBlbnVtIHByb2Nlc3Nvcl90
eXBlIG1pcHNfYXJjaDsKZXh0ZXJuIGVudW0gcHJvY2Vzc29yX3R5cGUgbWlwc190dW5lOwpleHRl
cm4gZW51bSBtaXBzX2FiaWNhbGxzX3R5cGUgbWlwc19hYmljYWxsczsKZXh0ZXJuIGludCBtaXBz
X2lzYTsKZXh0ZXJuIGludCBtaXBzMTY7CmV4dGVybiBpbnQgbWlwczE2X2hhcmRfZmxvYXQ7CmV4
dGVybiBpbnQgbWlwc19lbnRyeTsKZXh0ZXJuIGNvbnN0IGNoYXIgKm1pcHNfY3B1X3N0cmluZzsK
ZXh0ZXJuIGNvbnN0IGNoYXIgKm1pcHNfYXJjaF9zdHJpbmc7CmV4dGVybiBjb25zdCBjaGFyICpt
aXBzX3R1bmVfc3RyaW5nOwpleHRlcm4gY29uc3QgY2hhciAqbWlwc19pc2Ffc3RyaW5nOwpleHRl
cm4gY29uc3QgY2hhciAqbWlwc19hYmlfc3RyaW5nOwpleHRlcm4gY29uc3QgY2hhciAqbWlwc19l
bnRyeV9zdHJpbmc7CmV4dGVybiBjb25zdCBjaGFyICptaXBzX25vX21pcHMxNl9zdHJpbmc7CmV4
dGVybiBjb25zdCBjaGFyICptaXBzX2V4cGxpY2l0X3R5cGVfc2l6ZV9zdHJpbmc7CmV4dGVybiBj
b25zdCBjaGFyICptaXBzX2NhY2hlX2ZsdXNoX2Z1bmM7CmV4dGVybiBpbnQgbWlwc19zcGxpdF9h
ZGRyZXNzZXM7CmV4dGVybiBpbnQgZHNsb3RzX2xvYWRfdG90YWw7CmV4dGVybiBpbnQgZHNsb3Rz
X2xvYWRfZmlsbGVkOwpleHRlcm4gaW50IGRzbG90c19qdW1wX3RvdGFsOwpleHRlcm4gaW50IGRz
bG90c19qdW1wX2ZpbGxlZDsKZXh0ZXJuIGludCBkc2xvdHNfbnVtYmVyX25vcHM7CmV4dGVybiBp
bnQgbnVtX3JlZnNbM107CmV4dGVybiBzdHJ1Y3QgcnR4X2RlZiAqbWlwc19sb2FkX3JlZzsKZXh0
ZXJuIHN0cnVjdCBydHhfZGVmICptaXBzX2xvYWRfcmVnMjsKZXh0ZXJuIHN0cnVjdCBydHhfZGVm
ICptaXBzX2xvYWRfcmVnMzsKZXh0ZXJuIHN0cnVjdCBydHhfZGVmICptaXBzX2xvYWRfcmVnNDsK
ZXh0ZXJuIHN0cnVjdCBydHhfZGVmICplbWJlZGRlZF9waWNfZm5hZGRyX3J0eDsKZXh0ZXJuIGlu
dCBtaXBzX3N0cmluZ19sZW5ndGg7CmV4dGVybiBzdHJ1Y3QgcnR4X2RlZiAqbWlwczE2X2dwX3Bz
ZXVkb19ydHg7CgoKZXh0ZXJuIHZvaWQgcmRhdGFfc2VjdGlvbiAodm9pZCk7CmV4dGVybiB2b2lk
IHNkYXRhX3NlY3Rpb24gKHZvaWQpOwpleHRlcm4gdm9pZCBzYnNzX3NlY3Rpb24gKHZvaWQpOwoj
IDg3NCAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9taXBzLmgiCmV4dGVybiBp
bnQgbWlwc19hYmk7CiMgMTc4NyAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9t
aXBzLmgiCmV4dGVybiBjaGFyIG1pcHNfaGFyZF9yZWdub19tb2RlX29rW11bNzZdOwojIDE5MTEg
Ii4uLy4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgplbnVtIHJlZ19jbGFz
cwp7CiAgTk9fUkVHUywKICBNMTZfTkFfUkVHUywKICBNMTZfUkVHUywKICBUX1JFRywKICBNMTZf
VF9SRUdTLAogIEdSX1JFR1MsCiAgRlBfUkVHUywKICBISV9SRUcsCiAgTE9fUkVHLAogIEhJTE9f
UkVHLAogIE1EX1JFR1MsCiAgSElfQU5EX0dSX1JFR1MsCiAgTE9fQU5EX0dSX1JFR1MsCiAgSElM
T19BTkRfR1JfUkVHUywKICBTVF9SRUdTLAogIEFMTF9SRUdTLAogIExJTV9SRUdfQ0xBU1NFUwp9
OwojIDE5OTcgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgpleHRl
cm4gY29uc3QgZW51bSByZWdfY2xhc3MgbWlwc19yZWdub190b19jbGFzc1tdOwojIDIwNjcgIi4u
Ly4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgpleHRlcm4gZW51bSByZWdf
Y2xhc3MgbWlwc19jaGFyX3RvX2NsYXNzW107CiMgMjI4OSAiLi4vLi4vZ2NjLTIwMDExMjAzL2dj
Yy9jb25maWcvbWlwcy9taXBzLmgiCnN0cnVjdCBtaXBzX2ZyYW1lX2luZm8KewogIGxvbmcgdG90
YWxfc2l6ZTsKICBsb25nIHZhcl9zaXplOwogIGxvbmcgYXJnc19zaXplOwogIGxvbmcgZXh0cmFf
c2l6ZTsKICBpbnQgZ3BfcmVnX3NpemU7CiAgaW50IGZwX3JlZ19zaXplOwogIGxvbmcgbWFzazsK
ICBsb25nIGZtYXNrOwogIGxvbmcgZ3Bfc2F2ZV9vZmZzZXQ7CiAgbG9uZyBmcF9zYXZlX29mZnNl
dDsKICBsb25nIGdwX3NwX29mZnNldDsKICBsb25nIGZwX3NwX29mZnNldDsKICBpbnQgaW5pdGlh
bGl6ZWQ7CiAgaW50IG51bV9ncDsKICBpbnQgbnVtX2ZwOwogIGxvbmcgaW5zbnNfbGVuOwp9OwoK
ZXh0ZXJuIHN0cnVjdCBtaXBzX2ZyYW1lX2luZm8gY3VycmVudF9mcmFtZV9pbmZvOwojIDI2MzEg
Ii4uLy4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvbWlwcy5oIgp0eXBlZGVmIHN0cnVj
dCBtaXBzX2FyZ3MgewogIGludCBncF9yZWdfZm91bmQ7CiAgdW5zaWduZWQgaW50IGFyZ19udW1i
ZXI7CiAgdW5zaWduZWQgaW50IGFyZ193b3JkczsKICB1bnNpZ25lZCBpbnQgZnBfYXJnX3dvcmRz
OwogIGludCBsYXN0X2FyZ19mcDsKICBpbnQgZnBfY29kZTsKICB1bnNpZ25lZCBpbnQgbnVtX2Fk
anVzdHM7CgoKCgogIGludCBwcm90b3R5cGU7CiAgc3RydWN0IHJ0eF9kZWYgKmFkanVzdFs0KjJd
Owp9IENVTVVMQVRJVkVfQVJHUzsKIyAyOSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcv
bWlwcy9pcmlzNS5oIiAyCiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9p
cmlzNC5oIiAxCiMgMzAgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvY29uZmlnL21pcHMvaXJpczUu
aCIgMgojIDM0ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2NvbmZpZy9taXBzL2lyaXM2LmgiIDIK
IyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2NvbmZpZy9taXBzL2FiaTY0LmgiIDEKIyAzNSAi
Li4vLi4vZ2NjLTIwMDExMjAzL2djYy9jb25maWcvbWlwcy9pcmlzNi5oIiAyCiMgNCAidGNvbmZp
Zy5oIiAyCiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9kZWZhdWx0cy5oIiAxCiMgNSAidGNv
bmZpZy5oIiAyCiMgMzcgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvbGliZ2NjMi5jIiAyCiMgMSAi
Li4vLi4vZ2NjLTIwMDExMjAzL2djYy90c3lzdGVtLmgiIDEKIyAzNyAiLi4vLi4vZ2NjLTIwMDEx
MjAzL2djYy90c3lzdGVtLmgiCiMgMSAiaW5jbHVkZS9zdGRkZWYuaCIgMSAzCiMgMTQ3ICJpbmNs
dWRlL3N0ZGRlZi5oIiAzCnR5cGVkZWYgaW50IHB0cmRpZmZfdDsKIyAyMDEgImluY2x1ZGUvc3Rk
ZGVmLmgiIDMKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwojIDI5MyAiaW5jbHVkZS9zdGRk
ZWYuaCIgMwp0eXBlZGVmIGxvbmcgaW50IHdjaGFyX3Q7CiMgMzggIi4uLy4uL2djYy0yMDAxMTIw
My9nY2MvdHN5c3RlbS5oIiAyCiMgNjAgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvdHN5c3RlbS5o
IgojIDEgImluY2x1ZGUvc3RkYXJnLmgiIDEgMwojIDQzICJpbmNsdWRlL3N0ZGFyZy5oIiAzCnR5
cGVkZWYgX19idWlsdGluX3ZhX2xpc3QgX19nbnVjX3ZhX2xpc3Q7CiMgMTEwICJpbmNsdWRlL3N0
ZGFyZy5oIiAzCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFfbGlzdDsKIyA2MSAiLi4vLi4vZ2Nj
LTIwMDExMjAzL2djYy90c3lzdGVtLmgiIDIKCgojIDEgImluY2x1ZGUvc3RkaW8uaCIgMSAzCiMg
MjAgImluY2x1ZGUvc3RkaW8uaCIgMwojaWRlbnQgIiRSZXZpc2lvbjogMS43NiAkIgojIDUwICJp
bmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvc3RhbmRhcmRzLmgiIDEgMwojIDE5
ICIvdXNyL2luY2x1ZGUvc3RhbmRhcmRzLmgiIDMKI2lkZW50ICIkSWQ6IHN0YW5kYXJkcy5oLHYg
MS4xOSAxOTk3LzEyLzE1IDIxOjMwOjI1IGpwaCBFeHAgJCIKIyA1MSAiaW5jbHVkZS9zdGRpby5o
IiAyIDMKIyAxICIvdXNyL2luY2x1ZGUvc2dpZGVmcy5oIiAxIDMKIyAxOSAiL3Vzci9pbmNsdWRl
L3NnaWRlZnMuaCIgMwojaWRlbnQgIiRSZXZpc2lvbjogMS4xMSAkIgojIDEzNiAiL3Vzci9pbmNs
dWRlL3NnaWRlZnMuaCIgMwp0eXBlZGVmIGludCBfX2ludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQg
X191aW50MzJfdDsKIyAxODMgIi91c3IvaW5jbHVkZS9zZ2lkZWZzLmgiIDMKdHlwZWRlZiBsb25n
IGxvbmcgX19pbnQ2NF90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VpbnQ2NF90Owoj
IDIxOSAiL3Vzci9pbmNsdWRlL3NnaWRlZnMuaCIgMwp0eXBlZGVmIF9faW50MzJfdCBfX3BzaW50
X3Q7CnR5cGVkZWYgX191aW50MzJfdCBfX3BzdW5zaWduZWRfdDsKIyAyNDEgIi91c3IvaW5jbHVk
ZS9zZ2lkZWZzLmgiIDMKdHlwZWRlZiBfX2ludDMyX3QgX19zY2ludF90Owp0eXBlZGVmIF9fdWlu
dDMyX3QgX19zY3Vuc2lnbmVkX3Q7CiMgNTIgImluY2x1ZGUvc3RkaW8uaCIgMiAzCiMgNjcgImlu
Y2x1ZGUvc3RkaW8uaCIgMwp0eXBlZGVmIGludCBzc2l6ZV90OwojIDc2ICJpbmNsdWRlL3N0ZGlv
LmgiIDMKdHlwZWRlZiBfX2ludDY0X3QgZnBvc190OwojIDg2ICJpbmNsdWRlL3N0ZGlvLmgiIDMK
dHlwZWRlZiBfX2ludDY0X3Qgb2ZmNjRfdDsKIyA5NiAiaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVk
ZWYgX19pbnQ2NF90IG9mZl90OwojIDEwOCAiaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgX19p
bnQ2NF90IGZwb3M2NF90OwojIDExNyAiaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgY2hhciAq
X19ub3RfdmFfbGlzdF9fOwojIDE4NyAiaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgc3RydWN0
CiMgMTk3ICJpbmNsdWRlL3N0ZGlvLmgiIDMKX19maWxlX3MKCnsKCiAgICAgICAgaW50IF9jbnQ7
CgoKCgogICAgICAgIHVuc2lnbmVkIGNoYXIgKl9wdHI7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
X2Jhc2U7CgoKCgoKICAgICAgICB1bnNpZ25lZCBjaGFyIF9mbGFnOwogICAgICAgIHVuc2lnbmVk
IGNoYXIgX29fZmlsZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBfZmlsZTsKCgoKCn0gRklMRTsK
CmV4dGVybiBGSUxFIF9faW9iWzEwMF07CgpleHRlcm4gRklMRSAqX2xhc3RidWY7CmV4dGVybiB1
bnNpZ25lZCBjaGFyICpfYnVmZW5kdGFiW107CmV4dGVybiB1bnNpZ25lZCBjaGFyIF9zaWJ1Zltd
LCBfc29idWZbXTsKCgpleHRlcm4gaW50IHJlbW92ZShjb25zdCBjaGFyICopOwpleHRlcm4gaW50
IHJlbmFtZShjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBGSUxFICp0bXBmaWxl
KHZvaWQpOwpleHRlcm4gY2hhciAqdG1wbmFtKGNoYXIgKik7CmV4dGVybiBpbnQgZmNsb3NlKEZJ
TEUgKik7CmV4dGVybiBpbnQgZmZsdXNoKEZJTEUgKik7CmV4dGVybiBGSUxFICpmb3Blbihjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBGSUxFICpmcmVvcGVuKGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqLCBGSUxFICopOwpleHRlcm4gdm9pZCBzZXRidWYoRklMRSAqLCBjaGFy
ICopOwpleHRlcm4gaW50IHNldHZidWYoRklMRSAqLCBjaGFyICosIGludCwgc2l6ZV90KTsKCmV4
dGVybiBpbnQgZnByaW50ZihGSUxFICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKCmV4dGVybiBpbnQg
ZnNjYW5mKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwoKZXh0ZXJuIGludCBwcmludGYoY29u
c3QgY2hhciAqLCAuLi4pOwoKZXh0ZXJuIGludCBzY2FuZihjb25zdCBjaGFyICosIC4uLik7CgoK
ZXh0ZXJuIGludCBzbnByaW50ZihjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pOwoK
CmV4dGVybiBpbnQgc3ByaW50ZihjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKCmV4dGVybiBp
bnQgc3NjYW5mKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwpleHRlcm4gaW50IHZm
cHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmV4dGVybiBpbnQg
dnByaW50Zihjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKCmV4dGVybiBpbnQgdnNucHJp
bnRmKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKCmV4dGVy
biBpbnQgdnNwcmludGYoY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKIyAy
NzEgImluY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZnZXRjKEZJTEUgKik7CmV4dGVybiBj
aGFyICpmZ2V0cyhjaGFyICosIGludCwgRklMRSAqKTsKZXh0ZXJuIGludCBmcHV0YyhpbnQsIEZJ
TEUgKik7CmV4dGVybiBpbnQgZnB1dHMoY29uc3QgY2hhciAqLCBGSUxFICopOwpleHRlcm4gaW50
IGdldGMoRklMRSAqKTsKZXh0ZXJuIGludCBnZXRjaGFyKHZvaWQpOwpleHRlcm4gY2hhciAqZ2V0
cyhjaGFyICopOwpleHRlcm4gaW50IHB1dGMoaW50LCBGSUxFICopOwpleHRlcm4gaW50IHB1dGNo
YXIoaW50KTsKZXh0ZXJuIGludCBwdXRzKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdW5nZXRj
KGludCwgRklMRSAqKTsKZXh0ZXJuIHNpemVfdCBmcmVhZCh2b2lkICosIHNpemVfdCwgc2l6ZV90
LCBGSUxFICopOwojcHJhZ21hIGludF90b191bnNpZ25lZCBmcmVhZApleHRlcm4gc2l6ZV90IGZ3
cml0ZShjb25zdCB2b2lkICosIHNpemVfdCwgc2l6ZV90LCBGSUxFICopOwojcHJhZ21hIGludF90
b191bnNpZ25lZCBmd3JpdGUKZXh0ZXJuIGludCBmZ2V0cG9zKEZJTEUgKiwgZnBvc190ICopOwpl
eHRlcm4gaW50IGZzZWVrKEZJTEUgKiwgbG9uZywgaW50KTsKZXh0ZXJuIGludCBmc2V0cG9zKEZJ
TEUgKiwgY29uc3QgZnBvc190ICopOwpleHRlcm4gbG9uZyBmdGVsbChGSUxFICopOwpleHRlcm4g
dm9pZCByZXdpbmQoRklMRSAqKTsKZXh0ZXJuIHZvaWQgY2xlYXJlcnIoRklMRSAqKTsKZXh0ZXJu
IGludCBmZW9mKEZJTEUgKik7CmV4dGVybiBpbnQgZmVycm9yKEZJTEUgKik7CmV4dGVybiB2b2lk
IHBlcnJvcihjb25zdCBjaGFyICopOwoKZXh0ZXJuIGludCBfX2ZpbGJ1ZihGSUxFICopOwpleHRl
cm4gaW50IF9fZmxzYnVmKGludCwgRklMRSAqKTsKCgoKZXh0ZXJuIEZJTEUgKmZkb3BlbihpbnQs
IGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgZmlsZW5vKEZJTEUgKik7CgoKCgpleHRlcm4gdm9p
ZCBmbG9ja2ZpbGUoRklMRSAqKTsKZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUoRklMRSAqKTsKZXh0
ZXJuIHZvaWQgZnVubG9ja2ZpbGUoRklMRSAqKTsKZXh0ZXJuIGludCBnZXRjX3VubG9ja2VkKEZJ
TEUgKik7CmV4dGVybiBpbnQgcHV0Y191bmxvY2tlZChpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQg
Z2V0Y2hhcl91bmxvY2tlZCh2b2lkKTsKZXh0ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkKGludCk7
CgoKCmV4dGVybiBGSUxFICpwb3Blbihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVy
biBpbnQgcGNsb3NlKEZJTEUgKik7CgoKCiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2luY2x1ZGUv
Z2V0b3B0LmgiIDEgMwojIDM2ICIuLi8uLi9nY2MtMjAwMTEyMDMvaW5jbHVkZS9nZXRvcHQuaCIg
MwpleHRlcm4gY2hhciAqb3B0YXJnOwojIDUwICIuLi8uLi9nY2MtMjAwMTEyMDMvaW5jbHVkZS9n
ZXRvcHQuaCIgMwpleHRlcm4gaW50IG9wdGluZDsKCgoKCmV4dGVybiBpbnQgb3B0ZXJyOwoKCgpl
eHRlcm4gaW50IG9wdG9wdDsKIyA4MiAiLi4vLi4vZ2NjLTIwMDExMjAzL2luY2x1ZGUvZ2V0b3B0
LmgiIDMKc3RydWN0IG9wdGlvbgp7CgogIGNvbnN0IGNoYXIgKm5hbWU7CgoKCgoKICBpbnQgaGFz
X2FyZzsKICBpbnQgKmZsYWc7CiAgaW50IHZhbDsKfTsKIyAxMTggIi4uLy4uL2djYy0yMDAxMTIw
My9pbmNsdWRlL2dldG9wdC5oIiAzCmV4dGVybiBpbnQgZ2V0b3B0X2xvbmcgKGludCBhcmdjLCBj
aGFyICpjb25zdCAqYXJndiwgY29uc3QgY2hhciAqc2hvcnRvcHRzLAogICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpsb25nb3B0cywgaW50ICpsb25naW5kKTsKZXh0
ZXJuIGludCBnZXRvcHRfbG9uZ19vbmx5IChpbnQgYXJnYywgY2hhciAqY29uc3QgKmFyZ3YsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc2hvcnRvcHRzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBvcHRpb24gKmxvbmdvcHRzLCBpbnQg
KmxvbmdpbmQpOwoKCmV4dGVybiBpbnQgX2dldG9wdF9pbnRlcm5hbCAoaW50IGFyZ2MsIGNoYXIg
KmNvbnN0ICphcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNo
b3J0b3B0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9u
ICpsb25nb3B0cywgaW50ICpsb25naW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBsb25nX29ubHkpOwojIDMyMyAiaW5jbHVkZS9zdGRpby5oIiAyIDMKZXh0ZXJuIGNoYXIgKmN0
ZXJtaWQoY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmN1c2VyaWQoY2hhciAqKTsKZXh0ZXJuIGNoYXIg
KnRlbXBuYW0oY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50IGdldHcoRklM
RSAqKTsKZXh0ZXJuIGludCBwdXR3KGludCwgRklMRSAqKTsKCgoKCgpleHRlcm4gY2hhciAqbWt0
ZW1wKGNoYXIgKik7CmV4dGVybiBpbnQgbWtzdGVtcChjaGFyICopOwpleHRlcm4gaW50IHNldGJ1
ZmZlcihGSUxFICosIGNoYXIgKiwgaW50KTsKZXh0ZXJuIGludCBzZXRsaW5lYnVmKEZJTEUgKik7
CmV4dGVybiBpbnQgc3lzdGVtKGNvbnN0IGNoYXIgKik7CgoKCgpleHRlcm4gb2ZmX3QgZnRlbGxv
KEZJTEUgKik7CmV4dGVybiBpbnQgZnNlZWtvKEZJTEUgKiwgb2ZmX3QsIGludCk7CgoKCgpleHRl
cm4gaW50IGZnZXRwb3M2NChGSUxFICosIGZwb3M2NF90ICopOwpleHRlcm4gRklMRSAqZm9wZW42
NChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBGSUxFICpmcmVvcGVuNjQoY29u
c3QgY2hhciAqLCBjb25zdCBjaGFyICosIEZJTEUgKik7CmV4dGVybiBpbnQgZnNlZWs2NChGSUxF
ICosIF9faW50NjRfdCwgaW50KTsKZXh0ZXJuIGludCBmc2Vla282NChGSUxFICosIG9mZjY0X3Qs
IGludCk7CmV4dGVybiBpbnQgZnNldHBvczY0KEZJTEUgKiwgY29uc3QgZnBvczY0X3QgKik7CmV4
dGVybiBfX2ludDY0X3QgZnRlbGw2NChGSUxFICopOwpleHRlcm4gb2ZmNjRfdCBmdGVsbG82NChG
SUxFICopOwpleHRlcm4gRklMRSAqdG1wZmlsZTY0KHZvaWQpOwoKCgpleHRlcm4gaW50IF9fc2Vt
cHV0YyhpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQgX19zZW1nZXRjKEZJTEUgKik7CmV4dGVybiBp
bnQgX191c19yc3RocmVhZF9zdGRpbzsKCgoKZXh0ZXJuIGNoYXIgKmN0ZXJtaWRfcihjaGFyICop
OwojIDY0ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL3RzeXN0ZW0uaCIgMgoKCiMgMSAiaW5jbHVk
ZS9zeXMvdHlwZXMuaCIgMSAzCiMgMzYgImluY2x1ZGUvc3lzL3R5cGVzLmgiIDMKI2lkZW50ICIk
UmV2aXNpb246IDMuMTQxICQiCgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyX3Q7CnR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRf
dDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVsb25nX3Q7CgoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5
cy9wdGhyZWFkLmgiIDEgMwojIDExICIvdXNyL2luY2x1ZGUvc3lzL3B0aHJlYWQuaCIgMwp0eXBl
ZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX3Q7CgoKdHlwZWRlZiBzdHJ1Y3QgeyBsb25nIF9fRFs1
XTsgfSBwdGhyZWFkX2F0dHJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBsb25nIF9fRFs4XTsgfSBwdGhy
ZWFkX211dGV4X3Q7CnR5cGVkZWYgc3RydWN0IHsgbG9uZyBfX0RbMl07IH0gcHRocmVhZF9tdXRl
eGF0dHJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBsb25nIF9fRFs4XTsgfSBwdGhyZWFkX2NvbmRfdDsK
dHlwZWRlZiBzdHJ1Y3QgeyBsb25nIF9fRFsyXTsgfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CnR5cGVk
ZWYgc3RydWN0IHsgbG9uZyBfX0RbMTZdOyB9IHB0aHJlYWRfcndsb2NrX3Q7CnR5cGVkZWYgc3Ry
dWN0IHsgbG9uZyBfX0RbNF07IH0gcHRocmVhZF9yd2xvY2thdHRyX3Q7CnR5cGVkZWYgaW50IHB0
aHJlYWRfa2V5X3Q7CnR5cGVkZWYgaW50IHB0aHJlYWRfb25jZV90OwojIDUwICJpbmNsdWRlL3N5
cy90eXBlcy5oIiAyIDMKCgoKdHlwZWRlZiBjaGFyICogYWRkcl90Owp0eXBlZGVmIGNoYXIgKiBj
YWRkcl90OwoKdHlwZWRlZiBfX2ludDY0X3QgZGFkZHJfdDsKCgoKdHlwZWRlZiBsb25nIHBnbm9f
dDsKdHlwZWRlZiBfX3VpbnQzMl90IHBmbl90Owp0eXBlZGVmIHNob3J0IGNudF90Owp0eXBlZGVm
IHVuc2lnbmVkIGxvbmcgYmFzaWN0aW1lX3Q7CnR5cGVkZWYgX19pbnQ2NF90IG1pY3JvX3Q7CgoK
Cgp0eXBlZGVmIF9faW50MzJfdCBwZ2NudF90OwoKdHlwZWRlZiBlbnVtIHsgQl9GQUxTRSwgQl9U
UlVFIH0gYm9vbGVhbl90OwojIDgzICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgbG9u
ZyBpZF90OwojIDk2ICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgdWxvbmdfdCBtYWpv
cl90Owp0eXBlZGVmIHVsb25nX3QgbWlub3JfdDsKIyAxMTUgImluY2x1ZGUvc3lzL3R5cGVzLmgi
IDMKdHlwZWRlZiB1c2hvcnRfdCBvX21vZGVfdDsKdHlwZWRlZiBzaG9ydCBvX2Rldl90Owp0eXBl
ZGVmIHVzaG9ydF90IG9fdWlkX3Q7CnR5cGVkZWYgb191aWRfdCBvX2dpZF90Owp0eXBlZGVmIHNo
b3J0IG9fbmxpbmtfdDsKdHlwZWRlZiBzaG9ydCBvX3BpZF90Owp0eXBlZGVmIF9fdWludDMyX3Qg
b19pbm9fdDsKCgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbW9kZV90Owp0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgZGV2X3Q7CnR5cGVkZWYgbG9uZyB1aWRfdDsKdHlwZWRlZiBsb25nIGdpZF90Owp0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgbmxpbmtfdDsKdHlwZWRlZiBsb25nIHBpZF90OwojIDE0MCAiaW5j
bHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIGludCB0aWRfdDsKCnR5cGVkZWYgZGV2X3QgdmVy
dGV4X2hkbF90OwoKCnR5cGVkZWYgX191aW50NjRfdCBpbm9fdDsKCgoKdHlwZWRlZiBfX3VpbnQ2
NF90IGlubzY0X3Q7CiMgMTY5ICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgX19zY2lu
dF90IF9fc2NvZmZfdDsKCnR5cGVkZWYgX19zY29mZl90IHNjb2ZmX3Q7CgoKCgp0eXBlZGVmIF9f
aW50NjRfdCBibGtjbnQ2NF90Owp0eXBlZGVmIF9fdWludDY0X3QgZnNibGtjbnQ2NF90Owp0eXBl
ZGVmIF9fdWludDY0X3QgZnNmaWxjbnQ2NF90OwoKCgp0eXBlZGVmIF9faW50NjRfdCBibGtjbnRf
dDsKdHlwZWRlZiBfX3VpbnQ2NF90IGZzYmxrY250X3Q7CnR5cGVkZWYgX191aW50NjRfdCBmc2Zp
bGNudF90OwoKCgoKCgp0eXBlZGVmIGxvbmcgc3dibGtfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IHBhZGRyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpb3BhZGRyX3Q7CnR5cGVkZWYgaW50IGtl
eV90Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdXNlX3Q7CnR5cGVkZWYgbG9uZyBzeXNpZF90Owp0
eXBlZGVmIHNob3J0IGluZGV4X3Q7Cgp0eXBlZGVmIHNpZ25lZCBzaG9ydCBuYXNpZF90Owp0eXBl
ZGVmIHNpZ25lZCBzaG9ydCBjbm9kZWlkX3Q7CnR5cGVkZWYgc2lnbmVkIGNoYXIgcGFydGlkX3Q7
CnR5cGVkZWYgc2lnbmVkIHNob3J0IG1vZHVsZWlkX3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGNt
b2R1bGVpZF90Owp0eXBlZGVmIHVjaGFyX3QgY2x1c3RlcmlkX3Q7Cgp0eXBlZGVmIHVuc2lnbmVk
IGludCBsb2NrX3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGNwdWlkX3Q7CnR5cGVkZWYgdW5zaWdu
ZWQgY2hhciBwcmlfdDsKdHlwZWRlZiBfX3VpbnQ2NF90IGFjY3VtX3Q7CnR5cGVkZWYgX19pbnQ2
NF90IHByaWRfdDsKdHlwZWRlZiBfX2ludDY0X3QgYXNoX3Q7CnR5cGVkZWYgc2hvcnQgY2VsbF90
Owp0eXBlZGVmIGludCBjcmVkaWRfdDsKdHlwZWRlZiBfX2ludDY0X3QgamlkX3Q7CiMgMjQ3ICJp
bmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgbG9uZyB0aW1lX3Q7CiMgMjU3ICJpbmNsdWRl
L3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgbG9uZyBjbG9ja190OwojIDI4OCAiaW5jbHVkZS9zeXMv
dHlwZXMuaCIgMwp0eXBlZGVmIGludCBjbG9ja2lkX3Q7CgoKCnR5cGVkZWYgaW50IHRpbWVyX3Q7
CiMgMzAxICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHVzZWNv
bmRzX3Q7CgoKCgoKCnR5cGVkZWYgX19zY3Vuc2lnbmVkX3QgYml0bnVtX3Q7CnR5cGVkZWYgX19z
Y3Vuc2lnbmVkX3QgYml0bGVuX3Q7CgoKdHlwZWRlZiBpbnQgcHJvY2Vzc29yaWRfdDsKdHlwZWRl
ZiBpbnQgdG9pZF90Owp0eXBlZGVmIGxvbmcgKnFhZGRyX3Q7CnR5cGVkZWYgX191aW50MzJfdCBp
bnN0X3Q7CiMgMzI0ICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgX191aW50NjRfdCBt
YWNocmVnX3Q7CiMgMzM0ICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgX191aW50NjRf
dCBmcHJlZ190OwojIDM0NSAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIHNpZ25lZCBj
aGFyIGludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnQ4X3Q7CnR5cGVkZWYgc2lnbmVk
IHNob3J0IGludDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdWludDE2X3Q7CnR5cGVkZWYg
c2lnbmVkIGludCBpbnQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsKdHlwZWRl
ZiBfX2ludDY0X3QgaW50NjRfdDsKdHlwZWRlZiBfX3VpbnQ2NF90IHVpbnQ2NF90Owp0eXBlZGVm
IF9faW50NjRfdCBpbnRtYXhfdDsKdHlwZWRlZiBfX3VpbnQ2NF90IHVpbnRtYXhfdDsKdHlwZWRl
ZiBzaWduZWQgbG9uZyBpbnQgaW50cHRyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgdWlu
dHB0cl90OwoKCgoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9pbnQ4X3Q7CnR5cGVkZWYgdW5z
aWduZWQgc2hvcnQgdV9pbnQxNl90Owp0eXBlZGVmIF9fdWludDMyX3QgdV9pbnQzMl90OwojIDM4
OCAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIGxvbmcgaG9zdGlkX3Q7CiMgNDAzICJp
bmNsdWRlL3N5cy90eXBlcy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9ic2RfdHlwZXMuaCIg
MSAzCiMgMjEgIi91c3IvaW5jbHVkZS9zeXMvYnNkX3R5cGVzLmgiIDMKI2lkZW50ICIkUmV2aXNp
b246IDEuMiAkIgoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7IGludCByWzFdOyB9ICogcGh5c2FkcjsK
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVuY2hhcjsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVfY2hh
cjsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1c2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg
dV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQg
dV9pbnQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyB1bG9uZzsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IHVfbG9uZzsKdHlwZWRlZiBzdHJ1Y3QgX3F1YWQgeyBsb25nIHZhbFsyXTsgfSBxdWFkOwoKCgoK
CgojIDEgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDEgMwojIDI5ICIvdXNyL2luY2x1ZGUv
c3lzL3NlbGVjdC5oIiAzCiNpZGVudCAiJFJldmlzaW9uOiAxLjE3ICQiCiMgNTUgIi91c3IvaW5j
bHVkZS9zeXMvc2VsZWN0LmgiIDMKdHlwZWRlZiBsb25nIGZkX21hc2tfdDsKdHlwZWRlZiB1bnNp
Z25lZCBsb25nIHVmZF9tYXNrX3Q7CiMgNjcgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMK
dHlwZWRlZiBzdHJ1Y3QgZmRfc2V0IHsKCgoKICAgICAgICBmZF9tYXNrX3QgZmRzX2JpdHNbKCgo
MTAyNCkrKCgoaW50KShzaXplb2YoZmRfbWFza190KSAqIDgpKS0xKSkvKChpbnQpKHNpemVvZihm
ZF9tYXNrX3QpICogOCkpKV07Cn0gZmRfc2V0OwoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvc3Ry
aW5nLmgiIDEgMwoKCgoKCiNpZGVudCAiJFJldmlzaW9uOiAxLjQxICQiCiMgNjcgIi91c3IvaW5j
bHVkZS9zdHJpbmcuaCIgMwpleHRlcm4gdm9pZCAqbWVtY3B5KHZvaWQgKiwgY29uc3Qgdm9pZCAq
LCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtbW92ZSh2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6
ZV90KTsKZXh0ZXJuIGNoYXIgKnN0cmNweShjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBj
aGFyICpzdHJuY3B5KGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gY2hhciAq
c3RyY2F0KGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cm5jYXQoY2hhciAq
LCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiB2b2lkICptZW1jY3B5KHZvaWQgKiwgY29u
c3Qgdm9pZCAqLCBpbnQsIHNpemVfdCk7CmV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKiwg
Y29uc3Qgdm9pZCAqLCBzaXplX3QpOwpleHRlcm4gaW50IHN0cmNtcChjb25zdCBjaGFyICosIGNv
bnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3RyY29sbChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBpbnQgc3RybmNtcChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90
KTsKZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtKGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoK
ZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsKZXh0ZXJuIGNo
YXIgKnN0cmNocihjb25zdCBjaGFyICosIGludCk7CgpleHRlcm4gc2l6ZV90IHN0cmNzcG4oY29u
c3QgY2hhciAqLCBjb25zdCBjaGFyICopOwojcHJhZ21hIGludF90b191bnNpZ25lZCBzdHJjc3Bu
CgpleHRlcm4gY2hhciAqc3RycGJyayhjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVy
biBjaGFyICpzdHJyY2hyKGNvbnN0IGNoYXIgKiwgaW50KTsKCmV4dGVybiBzaXplX3Qgc3Ryc3Bu
KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKI3ByYWdtYSBpbnRfdG9fdW5zaWduZWQgc3Ry
c3BuCgpleHRlcm4gY2hhciAqc3Ryc3RyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCmV4
dGVybiBjaGFyICpzdHJ0b2soY2hhciAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gdm9pZCAqbWVt
c2V0KHZvaWQgKiwgaW50LCBzaXplX3QpOwpleHRlcm4gY2hhciAqc3RyZXJyb3IoaW50KTsKZXh0
ZXJuIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqKTsKI3ByYWdtYSBpbnRfdG9fdW5zaWduZWQg
c3RybGVuCgoKZXh0ZXJuIGludCBmZnMoaW50KTsKCmV4dGVybiBpbnQgc3RyY2FzZWNtcChjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3RybmNhc2VjbXAoY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CgoKCmV4dGVybiBjaGFyICpzdHJkdXAoY29uc3Qg
Y2hhciAqKTsKCgoKZXh0ZXJuIGNoYXIgKnN0cnRva19yKGNoYXIgKiwgY29uc3QgY2hhciAqLCBj
aGFyICoqKTsKIyA4MSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAzCiMgMTE3ICIvdXNy
L2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzCnR5cGVkZWYgbG9uZyBmZF9tYXNrOwojIDQ1ICIvdXNy
L2luY2x1ZGUvc3lzL2JzZF90eXBlcy5oIiAyIDMKIyA0MDQgImluY2x1ZGUvc3lzL3R5cGVzLmgi
IDIgMwoKCgp0eXBlZGVmIF9fdWludDY0X3Qga19zaWdzZXRfdDsKIyA2NyAiLi4vLi4vZ2NjLTIw
MDExMjAzL2djYy90c3lzdGVtLmgiIDIKCgojIDEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAxIDMK
CgoKCgojaWRlbnQgIiRSZXZpc2lvbjogMS4yOCAkIgojIDM2ICIvdXNyL2luY2x1ZGUvZXJybm8u
aCIgMwojIDEgIi91c3IvaW5jbHVkZS9zeXMvZXJybm8uaCIgMSAzCiMgMTMgIi91c3IvaW5jbHVk
ZS9zeXMvZXJybm8uaCIgMwojaWRlbnQgIiRSZXZpc2lvbjogMy40NCAkIgojIDM3ICIvdXNyL2lu
Y2x1ZGUvZXJybm8uaCIgMiAzCgoKCgpleHRlcm4gY2hhciAqIHN5c19lcnJsaXN0W107CmV4dGVy
biBpbnQgc3lzX25lcnI7CgpleHRlcm4gaW50IG9zZXJyb3Iodm9pZCk7CmV4dGVybiBpbnQgc2V0
b3NlcnJvcihpbnQpOwpleHRlcm4gaW50IGdvc2Vycm9yKHZvaWQpOwojIDYwICIvdXNyL2luY2x1
ZGUvZXJybm8uaCIgMwpleHRlcm4gaW50IGVycm5vOwojIDcwICIuLi8uLi9nY2MtMjAwMTEyMDMv
Z2NjL3RzeXN0ZW0uaCIgMgoKCmV4dGVybiBpbnQgZXJybm87CgoKCgoKCgojIDEgImluY2x1ZGUv
c3RkbGliLmgiIDEgMwojIDE1ICJpbmNsdWRlL3N0ZGxpYi5oIiAzCiNpZGVudCAiJFJldmlzaW9u
OiAxLjc4ICQiCiMgOTkgImluY2x1ZGUvc3RkbGliLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgICBpbnQgcXVvdDsKICAgICAgICAgaW50IHJlbTsKICAgICAgICB9IGRpdl90OwoKdHlwZWRl
ZiBzdHJ1Y3QgewogICAgICAgICBsb25nIHF1b3Q7CiAgICAgICAgIGxvbmcgcmVtOwogICAgICAg
IH0gbGRpdl90OwojIDE2MiAiaW5jbHVkZS9zdGRsaWIuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9s
b2NhbGVfYXR0ci5oIiAxIDMKIyAyMSAiL3Vzci9pbmNsdWRlL2xvY2FsZV9hdHRyLmgiIDMKI2lk
ZW50ICIkUmV2aXNpb246IDEuNCAkIgojIDQ0ICIvdXNyL2luY2x1ZGUvbG9jYWxlX2F0dHIuaCIg
Mwp0eXBlZGVmIHN0cnVjdCB7CgogICAgdW5zaWduZWQgaW50IF9jbGFzcyBbIDI1NyBdOwogICAg
c2lnbmVkIHNob3J0IF9sb3dlciBbIDI1NyBdOwogICAgc2lnbmVkIHNob3J0IF91cHBlciBbIDI1
NyBdOwoKICAgIGNoYXIgX2Nzd2lkdGggWyA3IF07CiAgICBjaGFyIF9maWxsIFsgMSBdOwoKCgp9
IF9fY3R5cGVfdDsKCgp0eXBlZGVmIGludCAoKl9faXNzZXRfZnVuY190KShpbnQpOwoKCgoKICAg
ICAgICB0eXBlZGVmIGxvbmcgd2ludF90OwoKCgoKCgp0eXBlZGVmIGludCAoKl9faXNjb2Rlc2V0
X2Z1bmNfdCkoaW50LCB3aW50X3QpOwoKCnR5cGVkZWYgc3RydWN0IF9fYXR0ciB7CgogICAgX19j
dHlwZV90ICogX2N0eXBlX3RibDsKCiAgICBzdHJ1Y3QgX2NzaW5mbyB7CiAgICAgICAgdW5zaWdu
ZWQgY2hhciBfZXVjd2lkdGhbM107CiAgICAgICAgdW5zaWduZWQgY2hhciBfc2Nyd2lkdGhbM107
CiAgICAgICAgdW5zaWduZWQgY2hhciBfbWJfY3VyX21heDsKICAgIH0gX2NzaW5mbzsKCiAgICBz
dHJ1Y3QgX2V1Y19mdW5jIHsKICAgICAgICBpbnQgX2lzX2V1YzsKICAgICAgICBfX2lzc2V0X2Z1
bmNfdCBfaXNzZXQyOwogICAgICAgIF9faXNzZXRfZnVuY190IF9pc3NldDM7CiAgICAgICAgX19p
c2NvZGVzZXRfZnVuY190IF9pc2NvZGVzZXQ7CiAgICB9IF9ldWNfZnVuYzsKCiAgICBzdHJ1Y3Qg
X2NvbGxhdGVfcmVzIHsKICAgICAgICB1bnNpZ25lZCBjaGFyIF9jb2xsX2FzX2NtcDsKICAgIH0g
X2NvbGxhdGVfcmVzOwoKICAgIHZvaWQgKiBfZmlsbFsxNV07Cn0gX19hdHRyX3Q7CgoKCgpleHRl
cm4gX19hdHRyX3QgX19saWJjX2F0dHI7CiMgMTYzICJpbmNsdWRlL3N0ZGxpYi5oIiAyIDMKIyAx
NzMgImluY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGRvdWJsZSBhdG9mKGNvbnN0IGNoYXIgKik7
CmV4dGVybiBpbnQgYXRvaShjb25zdCBjaGFyICopOwpleHRlcm4gbG9uZyBpbnQgYXRvbChjb25z
dCBjaGFyICopOwpleHRlcm4gZG91YmxlIHN0cnRvZChjb25zdCBjaGFyICosIGNoYXIgKiopOwpl
eHRlcm4gbG9uZyBpbnQgc3RydG9sKGNvbnN0IGNoYXIgKiwgY2hhciAqKiwgaW50KTsKZXh0ZXJu
IHVuc2lnbmVkIGxvbmcgaW50IHN0cnRvdWwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwpl
eHRlcm4gaW50IHJhbmQodm9pZCk7CmV4dGVybiB2b2lkIHNyYW5kKHVuc2lnbmVkIGludCk7CmV4
dGVybiB2b2lkICpjYWxsb2Moc2l6ZV90LCBzaXplX3QpOwpleHRlcm4gdm9pZCBmcmVlKHZvaWQg
Kik7CmV4dGVybiB2b2lkICptYWxsb2Moc2l6ZV90KTsKZXh0ZXJuIHZvaWQgKnJlYWxsb2Modm9p
ZCAqLCBzaXplX3QpOwoKCgoKCgoKZXh0ZXJuIHZvaWQgYWJvcnQodm9pZCk7CmV4dGVybiBpbnQg
YXRleGl0KHZvaWQgKCopKHZvaWQpKTsKZXh0ZXJuIHZvaWQgZXhpdChpbnQpOwoKCgoKZXh0ZXJu
IGNoYXIgKmdldGVudihjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHN5c3RlbShjb25zdCBjaGFy
ICopOwpleHRlcm4gdm9pZCAqYnNlYXJjaChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6
ZV90LCBzaXplX3QsCiAgICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKikp
OwpleHRlcm4gdm9pZCBxc29ydCh2b2lkICosIHNpemVfdCwgc2l6ZV90LAogICAgICAgIGludCAo
KikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsKCgoKCgoKCmV4dGVybiBpbnQgYWJzKGlu
dCk7CgoKCgoKCmV4dGVybiBkaXZfdCBkaXYoaW50LCBpbnQpOwpleHRlcm4gbG9uZyBpbnQgbGFi
cyhsb25nKTsKCgoKCmV4dGVybiBsZGl2X3QgbGRpdihsb25nLCBsb25nKTsKZXh0ZXJuIGludCBt
YnRvd2Mod2NoYXJfdCAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBpbnQgbWJsZW4o
Y29uc3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gaW50IHdjdG9tYihjaGFyICosIHdjaGFyX3Qp
OwpleHRlcm4gc2l6ZV90IG1ic3Rvd2NzKHdjaGFyX3QgKiwgY29uc3QgY2hhciAqLCBzaXplX3Qp
OwpleHRlcm4gc2l6ZV90IHdjc3RvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3Qp
OwoKCgpleHRlcm4gaW50IHB1dGVudihjb25zdCBjaGFyICopOwpleHRlcm4gZG91YmxlIGRyYW5k
NDgodm9pZCk7CmV4dGVybiBkb3VibGUgZXJhbmQ0OCh1bnNpZ25lZCBzaG9ydCBbM10pOwpleHRl
cm4gbG9uZyBscmFuZDQ4KHZvaWQpOwpleHRlcm4gbG9uZyBucmFuZDQ4KHVuc2lnbmVkIHNob3J0
IFszXSk7CmV4dGVybiBsb25nIG1yYW5kNDgodm9pZCk7CmV4dGVybiBsb25nIGpyYW5kNDgodW5z
aWduZWQgc2hvcnQgWzNdKTsKZXh0ZXJuIHZvaWQgc3JhbmQ0OChsb25nKTsKZXh0ZXJuIHZvaWQg
bGNvbmc0OCh1bnNpZ25lZCBzaG9ydCBpbnQgWzddKTsKZXh0ZXJuIHZvaWQgc2V0a2V5KGNvbnN0
IGNoYXIgKik7CmV4dGVybiB1bnNpZ25lZCBzaG9ydCAqIHNlZWQ0OCh1bnNpZ25lZCBzaG9ydCBp
bnQgWzNdKTsKCgoKCmV4dGVybiBsb25nIGE2NGwoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIg
KmVjdnQoZG91YmxlLCBpbnQsIGludCAqLCBpbnQgKik7CmV4dGVybiBjaGFyICpmY3Z0KGRvdWJs
ZSwgaW50LCBpbnQgKiwgaW50ICopOwpleHRlcm4gY2hhciAqZ2N2dChkb3VibGUsIGludCwgY2hh
ciAqKTsKZXh0ZXJuIGludCBnZXRzdWJvcHQoY2hhciAqKiwgY2hhciAqIGNvbnN0ICosIGNoYXIg
KiopOwpleHRlcm4gaW50IGdyYW50cHQoaW50KTsKZXh0ZXJuIGNoYXIgKmluaXRzdGF0ZSh1bnNp
Z25lZCBpbnQsIGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIGNoYXIgKmw2NGEobG9uZyk7CmV4dGVy
biBjaGFyICpta3RlbXAoY2hhciAqKTsKZXh0ZXJuIGludCBta3N0ZW1wKGNoYXIgKik7CmV4dGVy
biBjaGFyICpwdHNuYW1lKGludCk7CmV4dGVybiBsb25nIHJhbmRvbSh2b2lkKTsKZXh0ZXJuIGNo
YXIgKnJlYWxwYXRoKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnNldHN0YXRl
KGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkIHNyYW5kb20odW5zaWduZWQpOwpleHRlcm4gaW50
IHR0eXNsb3Qodm9pZCk7CmV4dGVybiBpbnQgdW5sb2NrcHQoaW50KTsKZXh0ZXJuIHZvaWQgKnZh
bGxvYyhzaXplX3QpOwoKCgoKCgoKZXh0ZXJuIGludCByYW5kX3IodW5zaWduZWQgaW50ICopOwoK
CgoKCmV4dGVybiBpbnQgYXRjaGVja3BvaW50KHZvaWQgKCopKHZvaWQpKTsKZXh0ZXJuIGludCBh
dHJlc3RhcnQodm9pZCAoKikodm9pZCkpOwpleHRlcm4gaW50IGR1cDIoaW50LCBpbnQpOwpleHRl
cm4gaW50IGdldHB3KGludCwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmdldGN3ZChjaGFyICosIHNp
emVfdCk7CmV4dGVybiBjaGFyICpnZXRsb2dpbih2b2lkKTsKZXh0ZXJuIGNoYXIgKmdldHBhc3Mo
Y29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBpc2F0dHkoaW50KTsKZXh0ZXJuIHZvaWQgbDN0b2wo
bG9uZyAqLCBjb25zdCBjaGFyICosIGludCk7CmV4dGVybiB2b2lkIGx0b2wzKGNoYXIgKiwgY29u
c3QgbG9uZyAqLCBpbnQpOwpleHRlcm4gdm9pZCAqbWVtYWxpZ24oc2l6ZV90LCBzaXplX3QpOwoj
IDMwMCAiaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gbG9uZyBkb3VibGUgYXRvbGQoY29uc3Qg
Y2hhciAqKTsKZXh0ZXJuIGxvbmcgZG91YmxlIHN0cnRvbGQoY29uc3QgY2hhciAqbnB0ciwgY2hh
ciAqKmVuZHB0cik7CmV4dGVybiBjaGFyICpxZWN2dChsb25nIGRvdWJsZSwgaW50LCBpbnQgKiwg
aW50ICopOwpleHRlcm4gY2hhciAqcWZjdnQobG9uZyBkb3VibGUsIGludCwgaW50ICosIGludCAq
KTsKZXh0ZXJuIGNoYXIgKnFnY3Z0KGxvbmcgZG91YmxlLCBpbnQsIGNoYXIgKik7CmV4dGVybiBj
aGFyICplY3Z0bChsb25nIGRvdWJsZSwgaW50LCBpbnQgKiwgaW50ICopOwpleHRlcm4gY2hhciAq
ZmN2dGwobG9uZyBkb3VibGUsIGludCwgaW50ICosIGludCAqKTsKZXh0ZXJuIGNoYXIgKmdjdnRs
KGxvbmcgZG91YmxlLCBpbnQsIGNoYXIgKik7CiMgMzIwICJpbmNsdWRlL3N0ZGxpYi5oIiAzCnR5
cGVkZWYgc3RydWN0IHsKICAgICAgICAgX19pbnQ2NF90IHF1b3Q7CiAgICAgICAgIF9faW50NjRf
dCByZW07CiAgICAgICAgfSBsbGRpdl90OwoKZXh0ZXJuIF9faW50NjRfdCBhdG9sbChjb25zdCBj
aGFyICopOwpleHRlcm4gX19pbnQ2NF90IHN0cnRvbGwoY29uc3QgY2hhciAqLCBjaGFyICoqLCBp
bnQpOwpleHRlcm4gX191aW50NjRfdCBzdHJ0b3VsbChjb25zdCBjaGFyICosIGNoYXIgKiosIGlu
dCk7CmV4dGVybiBfX2ludDY0X3QgbGxhYnMoX19pbnQ2NF90KTsKCgoKCmV4dGVybiBsbGRpdl90
IGxsZGl2KF9faW50NjRfdCwgX19pbnQ2NF90KTsKCgoKCgoKCmV4dGVybiBjaGFyICplY3Z0X3Io
ZG91YmxlLCBpbnQsIGludCAqLCBpbnQgKiwgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmZjdnRfcihk
b3VibGUsIGludCwgaW50ICosIGludCAqLCBjaGFyICopOwoKZXh0ZXJuIGNoYXIgKnFlY3Z0X3Io
bG9uZyBkb3VibGUsIGludCwgaW50ICosIGludCAqLCBjaGFyICopOwpleHRlcm4gY2hhciAqcWZj
dnRfcihsb25nIGRvdWJsZSwgaW50LCBpbnQgKiwgaW50ICosIGNoYXIgKik7CmV4dGVybiBjaGFy
ICplY3Z0bF9yKGxvbmcgZG91YmxlLCBpbnQsIGludCAqLCBpbnQgKiwgY2hhciAqKTsKZXh0ZXJu
IGNoYXIgKmZjdnRsX3IobG9uZyBkb3VibGUsIGludCwgaW50ICosIGludCAqLCBjaGFyICopOwoj
IDgxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL3RzeXN0ZW0uaCIgMgojIDEgImluY2x1ZGUvdW5p
c3RkLmgiIDEgMwojIDE1ICJpbmNsdWRlL3VuaXN0ZC5oIiAzCiNpZGVudCAiJFJldmlzaW9uOiAx
LjEzNyAkIgojIDI4NyAiaW5jbHVkZS91bmlzdGQuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9zeXMv
dW5pc3RkLmgiIDEgMwojIDI4OCAiaW5jbHVkZS91bmlzdGQuaCIgMiAzCgoKCgpleHRlcm4gaW50
IGFjY2Vzcyhjb25zdCBjaGFyICosIGludCk7CmV4dGVybiB1bnNpZ25lZCBhbGFybSh1bnNpZ25l
ZCk7CmV4dGVybiBpbnQgY2hkaXIoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBjaG93bihjb25z
dCBjaGFyICosIHVpZF90LCBnaWRfdCk7CmV4dGVybiBpbnQgY2xvc2UoaW50KTsKZXh0ZXJuIGNo
YXIgKmN0ZXJtaWQoY2hhciAqKTsKZXh0ZXJuIGNoYXIgKmN1c2VyaWQoY2hhciAqKTsKZXh0ZXJu
IGludCBkdXAoaW50KTsKZXh0ZXJuIGludCBkdXAyKGludCwgaW50KTsKZXh0ZXJuIGludCBleGVj
bChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKZXh0ZXJuIGludCBleGVjbGUoY29u
c3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiBpbnQgZXhlY2xwKGNvbnN0IGNo
YXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwpleHRlcm4gaW50IGV4ZWN2KGNvbnN0IGNoYXIgKiwg
Y2hhciAqY29uc3QgKik7CmV4dGVybiBpbnQgZXhlY3ZlKGNvbnN0IGNoYXIgKiwgY2hhciAqY29u
c3QgKiwgY2hhciAqY29uc3QgKik7CmV4dGVybiBpbnQgZXhlY3ZwKGNvbnN0IGNoYXIgKiwgY2hh
ciAqY29uc3QgKik7CmV4dGVybiB2b2lkIF9leGl0KGludCk7CmV4dGVybiBwaWRfdCBmb3JrKHZv
aWQpOwpleHRlcm4gbG9uZyBmcGF0aGNvbmYoaW50LCBpbnQpOwoKZXh0ZXJuIGNoYXIgKmdldGN3
ZChjaGFyICosIHNpemVfdCk7CmV4dGVybiBnaWRfdCBnZXRlZ2lkKHZvaWQpOwpleHRlcm4gdWlk
X3QgZ2V0ZXVpZCh2b2lkKTsKZXh0ZXJuIGdpZF90IGdldGdpZCh2b2lkKTsKCgoKZXh0ZXJuIGlu
dCBnZXRncm91cHMoaW50LCBnaWRfdCAqKTsKCmV4dGVybiBjaGFyICpnZXRsb2dpbih2b2lkKTsK
CgoKZXh0ZXJuIHBpZF90IGdldHBncnAodm9pZCk7CgpleHRlcm4gcGlkX3QgZ2V0cGlkKHZvaWQp
OwpleHRlcm4gcGlkX3QgZ2V0cHBpZCh2b2lkKTsKZXh0ZXJuIHVpZF90IGdldHVpZCh2b2lkKTsK
ZXh0ZXJuIGludCBpc2F0dHkoaW50KTsKCmV4dGVybiBpbnQgbGluayhjb25zdCBjaGFyICosIGNv
bnN0IGNoYXIgKik7CmV4dGVybiBpbnQgbGlua2ZvbGxvdyhjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKik7CiMgMzQ0ICJpbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBvZmZfdCBsc2VlayhpbnQs
IG9mZl90LCBpbnQpOwpleHRlcm4gbG9uZyBwYXRoY29uZihjb25zdCBjaGFyICosIGludCk7CmV4
dGVybiBpbnQgcGF1c2Uodm9pZCk7CmV4dGVybiBpbnQgcGlwZShpbnQgKik7CmV4dGVybiBzc2l6
ZV90IHJlYWQoaW50LCB2b2lkICosIHNpemVfdCk7CmV4dGVybiBpbnQgcm1kaXIoY29uc3QgY2hh
ciAqKTsKZXh0ZXJuIGludCBzZXRnaWQoZ2lkX3QpOwpleHRlcm4gaW50IHNldHBnaWQocGlkX3Qs
IHBpZF90KTsKZXh0ZXJuIHBpZF90IHNldHNpZCh2b2lkKTsKZXh0ZXJuIGludCBzZXR1aWQodWlk
X3QpOwpleHRlcm4gdW5zaWduZWQgc2xlZXAodW5zaWduZWQpOwpleHRlcm4gbG9uZyBzeXNjb25m
KGludCk7CmV4dGVybiBwaWRfdCB0Y2dldHBncnAoaW50KTsKZXh0ZXJuIGludCB0Y3NldHBncnAo
aW50LCBwaWRfdCk7CmV4dGVybiBjaGFyICp0dHluYW1lKGludCk7CmV4dGVybiBpbnQgdW5saW5r
KGNvbnN0IGNoYXIgKik7CmV4dGVybiBzc2l6ZV90IHdyaXRlKGludCwgY29uc3Qgdm9pZCAqLCBz
aXplX3QpOwoKCgoKCmV4dGVybiBpbnQgZmRhdGFzeW5jKGludCk7CgoKCgoKCmV4dGVybiBpbnQg
ZnN5bmMoaW50KTsKCgoKCgoKZXh0ZXJuIGludCBmdHJ1bmNhdGUoaW50LCBvZmZfdCk7CgoKCgoK
CmV4dGVybiBpbnQgZ2V0bG9naW5fcihjaGFyICosIHNpemVfdCk7CmV4dGVybiBpbnQgdHR5bmFt
ZV9yKGludCwgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gaW50IHB0aHJlYWRfYXRmb3JrKHZvaWQg
KCopKHZvaWQpLCB2b2lkICgqKSh2b2lkKSwgdm9pZCAoKikodm9pZCkpOwoKCgoKCgoKZXh0ZXJu
IHNpemVfdCBjb25mc3RyKGludCwgY2hhciAqLCBzaXplX3QpOwoKCgoKCgpleHRlcm4gaW50IGNo
cm9vdChjb25zdCBjaGFyICopOwpleHRlcm4gaW50IG5pY2UoaW50KTsKZXh0ZXJuIGNoYXIgKmNy
eXB0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHZvaWQgZW5jcnlwdChjaGFy
ICosIGludCk7CmV4dGVybiBjaGFyICpnZXRwYXNzKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lk
IHN3YWIoY29uc3Qgdm9pZCAqLCB2b2lkICosIHNzaXplX3QpOwoKCgoKCgpleHRlcm4gaW50IGJy
ayh2b2lkICopOwpleHRlcm4gaW50IGZjaG93bihpbnQsIHVpZF90LCBnaWRfdCk7CmV4dGVybiBp
bnQgZmNoZGlyKGludCk7CmV4dGVybiBpbnQgZ2V0ZHRhYmxlc2l6ZSh2b2lkKTsKZXh0ZXJuIGxv
bmcgZ2V0aG9zdGlkKHZvaWQpOwpleHRlcm4gaW50IGdldGhvc3RuYW1lKGNoYXIgKiwgc2l6ZV90
KTsKZXh0ZXJuIGludCBnZXRwYWdlc2l6ZSh2b2lkKTsKZXh0ZXJuIHBpZF90IGdldHBnaWQocGlk
X3QpOwpleHRlcm4gcGlkX3QgZ2V0c2lkKHBpZF90KTsKZXh0ZXJuIGNoYXIgKmdldHdkKGNoYXIg
Kik7CmV4dGVybiBpbnQgbGNob3duKGNvbnN0IGNoYXIgKiwgdWlkX3QsIGdpZF90KTsKZXh0ZXJu
IGludCBsb2NrZihpbnQsIGludCwgb2ZmX3QpOwpleHRlcm4gaW50IHJlYWRsaW5rKGNvbnN0IGNo
YXIgKiwgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCAqc2Jyayhzc2l6ZV90KTsKCgoKZXh0
ZXJuIHBpZF90IHNldHBncnAodm9pZCk7CgoKCmV4dGVybiBpbnQgc2V0cmVnaWQoZ2lkX3QsIGdp
ZF90KTsKIyA0NDkgImluY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIGludCBzZXRyZXVpZCh1aWRf
dCwgdWlkX3QpOwpleHRlcm4gaW50IHN5bWxpbmsoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICop
OwpleHRlcm4gdm9pZCBzeW5jKHZvaWQpOwpleHRlcm4gaW50IHRydW5jYXRlKGNvbnN0IGNoYXIg
Kiwgb2ZmX3QpOwpleHRlcm4gdXNlY29uZHNfdCB1YWxhcm0odXNlY29uZHNfdCwgdXNlY29uZHNf
dCk7CmV4dGVybiBpbnQgdXNsZWVwKHVzZWNvbmRzX3QpOwojIDQ2OSAiaW5jbHVkZS91bmlzdGQu
aCIgMwpleHRlcm4gc3NpemVfdCBwcmVhZChpbnQsIHZvaWQgKiwgc2l6ZV90LCBvZmZfdCk7CmV4
dGVybiBzc2l6ZV90IHB3cml0ZShpbnQsIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBvZmZfdCk7CiMg
NDgxICJpbmNsdWRlL3VuaXN0ZC5oIiAzCnN0cnVjdCB0aW1ldmFsOwpleHRlcm4gaW50IHNlbGVj
dChpbnQsIGZkX3NldCAqLCBmZF9zZXQgKiwgZmRfc2V0ICosIHN0cnVjdCB0aW1ldmFsICopOwoK
CgoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDEgMwojIDEyICIvdXNyL2luY2x1ZGUv
c3lzL3Vpby5oIiAzCiNpZGVudCAiQCgjKXV0cy0zYjI6aW8vdWlvLmgJMS4yIgojaWRlbnQgIiRS
ZXZpc2lvbjogMS4yMyAkIgojIDMwICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAzCnR5cGVkZWYg
c3RydWN0IGlvdmVjIHsKICAgICAgICB2b2lkICppb3ZfYmFzZTsKICAgICAgICBzaXplX3QgaW92
X2xlbjsKfSBpb3ZlY190OwoKCgpleHRlcm4gc3NpemVfdCByZWFkdihpbnQsIGNvbnN0IHN0cnVj
dCBpb3ZlYyAqLCBpbnQpOwpleHRlcm4gc3NpemVfdCB3cml0ZXYoaW50LCBjb25zdCBzdHJ1Y3Qg
aW92ZWMgKiwgaW50KTsKIyA0OTAgImluY2x1ZGUvdW5pc3RkLmgiIDIgMwojIDEgIi91c3IvaW5j
bHVkZS91dGltZS5oIiAxIDMKCgoKCgojaWRlbnQgIiRSZXZpc2lvbjogMS45ICQiCiMgMzQgIi91
c3IvaW5jbHVkZS91dGltZS5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy91dGltZS5oIiAxIDMK
IyAxNyAiL3Vzci9pbmNsdWRlL3N5cy91dGltZS5oIiAzCnN0cnVjdCB1dGltYnVmIHsKICAgICAg
ICB0aW1lX3QgYWN0aW1lOwogICAgICAgIHRpbWVfdCBtb2R0aW1lOwp9OwojIDM1ICIvdXNyL2lu
Y2x1ZGUvdXRpbWUuaCIgMiAzCgpleHRlcm4gaW50IHV0aW1lKGNvbnN0IGNoYXIgKiwgY29uc3Qg
c3RydWN0IHV0aW1idWYgKik7CiMgNDkxICJpbmNsdWRlL3VuaXN0ZC5oIiAyIDMKIyAxICIvdXNy
L2luY2x1ZGUvcmVfY29tcC5oIiAxIDMKCgoKCgojaWRlbnQgIiRSZXZpc2lvbjogMS4xICQiCiMg
MjUgIi91c3IvaW5jbHVkZS9yZV9jb21wLmgiIDMKZXh0ZXJuIGNoYXIgKnJlX2NvbXAoY29uc3Qg
Y2hhciAqKTsKZXh0ZXJuIGludCByZV9leGVjKGNvbnN0IGNoYXIgKik7CiMgNDkyICJpbmNsdWRl
L3VuaXN0ZC5oIiAyIDMKZXh0ZXJuIGludCBhY2N0KGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lk
IGV4aXQoaW50KTsKZXh0ZXJuIGNoYXIgKmdldHR4dChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kik7CmV4dGVybiBpbnQgcHJvZmlsKHVuc2lnbmVkIHNob3J0ICosIHNpemVfdCwgaW50LCB1bnNp
Z25lZCBpbnQpOwpleHRlcm4gaW50IHB0cmFjZShpbnQsIHBpZF90LCBpbnQsIGludCk7CmV4dGVy
biBpbnQgcmVuYW1lKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBzZXRl
dWlkKHVpZF90KTsKZXh0ZXJuIGludCBzZXRlZ2lkKGdpZF90KTsKZXh0ZXJuIGludCBzdGltZShj
b25zdCB0aW1lX3QgKik7CmV4dGVybiBvZmZfdCB0ZWxsKGludCk7CgoKCnN0cnVjdCBhY2N0X3Nw
aTsKZXh0ZXJuIGludCBhdGZvcmtfY2hpbGQodm9pZCAoKmZ1bmMpKHZvaWQpKTsKZXh0ZXJuIGlu
dCBhdGZvcmtfY2hpbGRfcHJlcGVuZCh2b2lkICgqZnVuYykodm9pZCkpOwpleHRlcm4gaW50IGF0
Zm9ya19wYXJlbnQodm9pZCAoKmZ1bmMpKGludCwgaW50KSk7CmV4dGVybiBpbnQgYXRmb3JrX3By
ZSh2b2lkICgqZnVuYykodm9pZCkpOwpleHRlcm4gaW50IGF0c3Byb2NfY2hpbGQodm9pZCAoKmZ1
bmMpKHZvaWQpKTsKZXh0ZXJuIGludCBhdHNwcm9jX3BhcmVudCh2b2lkICgqZnVuYykoaW50LCBp
bnQpKTsKZXh0ZXJuIGludCBhdHNwcm9jX3ByZSh2b2lkICgqZnVuYykodW5zaWduZWQgaW50KSk7
CmV4dGVybiB2b2lkIGJzZXQoY2hhciAqLCBiaXRudW1fdCk7CmV4dGVybiB2b2lkIGJjbHIoY2hh
ciAqLCBiaXRudW1fdCk7CmV4dGVybiBpbnQgYnRzdChjaGFyICosIGJpdG51bV90KTsKZXh0ZXJu
IHZvaWQgYmZzZXQoY2hhciAqLCBiaXRudW1fdCwgYml0bGVuX3QpOwpleHRlcm4gdm9pZCBiZmNs
cihjaGFyICosIGJpdG51bV90LCBiaXRsZW5fdCk7CmV4dGVybiBiaXRsZW5fdCBiZnRzdHNldChj
aGFyICosIGJpdG51bV90LCBiaXRsZW5fdCk7CmV4dGVybiBiaXRsZW5fdCBiZnRzdGNscihjaGFy
ICosIGJpdG51bV90LCBiaXRsZW5fdCk7CmV4dGVybiBpbnQgQlNEY2hvd24oY29uc3QgY2hhciAq
LCB1aWRfdCwgZ2lkX3QpOwpleHRlcm4gaW50IEJTRGR1cDIoaW50LCBpbnQpOwpleHRlcm4gaW50
IEJTRGZjaG93bihpbnQsIHVpZF90LCBnaWRfdCk7CmV4dGVybiBpbnQgQlNEZ2V0cGdycChpbnQp
OwpleHRlcm4gaW50IEJTRHNldHBncnAoaW50LCBpbnQpOwpleHRlcm4gaW50IEJTRHNldGdyb3Vw
cyhpbnQsIGludCAqKTsKZXh0ZXJuIGludCBCU0RnZXRncm91cHMoaW50LCBpbnQgKik7CmV4dGVy
biBpbnQgX2RhZW1vbml6ZShpbnQsIGludCwgaW50LCBpbnQpOwpleHRlcm4gYXNoX3QgZ2V0YXNo
KHZvaWQpOwpleHRlcm4gaW50IGdldGR0YWJsZWhpKHZvaWQpOwpleHRlcm4gaW50IGdldGRvbWFp
bm5hbWUoY2hhciAqLCBpbnQpOwpleHRlcm4gcHJpZF90IGdldHByaWQodm9pZCk7CmV4dGVybiBj
aGFyICpfZ2V0cHR5KGludCAqLCBpbnQsIG1vZGVfdCwgaW50KTsKZXh0ZXJuIGludCBnZXRzcGlu
Zm8oc3RydWN0IGFjY3Rfc3BpICopOwpleHRlcm4gaW50IG1pbmNvcmUoY2FkZHJfdCwgc2l6ZV90
LCBjaGFyICopOwpleHRlcm4gaW50IG1waW4odm9pZCAqLCBzaXplX3QpOwpleHRlcm4gaW50IG11
bnBpbih2b2lkICosIHNpemVfdCk7CmV4dGVybiBpbnQgbmV3YXJyYXlzZXNzKHZvaWQpOwpleHRl
cm4gcGlkX3QgcGNyZWF0ZWwoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVy
biBwaWRfdCBwY3JlYXRlbHAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVy
biBwaWRfdCBwY3JlYXRldihjb25zdCBjaGFyICosIGNoYXIgKmNvbnN0ICopOwpleHRlcm4gcGlk
X3QgcGNyZWF0ZXZlKGNvbnN0IGNoYXIgKiwgY2hhciAqY29uc3QgKiwgY2hhciAqY29uc3QgKik7
CmV4dGVybiBwaWRfdCBwY3JlYXRldnAoY29uc3QgY2hhciAqLCBjaGFyICpjb25zdCAqKTsKCmV4
dGVybiBzc2l6ZV90IHByZWFkNjQoaW50LCB2b2lkICosIHNpemVfdCwgb2ZmNjRfdCk7CmV4dGVy
biBzc2l6ZV90IHB3cml0ZTY0KGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIG9mZjY0X3QpOwoK
ZXh0ZXJuIGludCByZXhlY2woY2VsbF90LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4u
KTsKZXh0ZXJuIGludCByZXhlY2xlKGNlbGxfdCwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos
IC4uLik7CmV4dGVybiBpbnQgcmV4ZWNscChjZWxsX3QsIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh
ciAqLCAuLi4pOwpleHRlcm4gaW50IHJleGVjdihjZWxsX3QsIGNvbnN0IGNoYXIgKiwgY2hhciAq
Y29uc3QgKik7CmV4dGVybiBpbnQgcmV4ZWN2ZShjZWxsX3QsIGNvbnN0IGNoYXIgKiwgY2hhciAq
Y29uc3QgKiwgY2hhciAqY29uc3QgKik7CmV4dGVybiBpbnQgcmV4ZWN2cChjZWxsX3QsIGNvbnN0
IGNoYXIgKiwgY2hhciAqY29uc3QgKik7CmV4dGVybiBmbG9hdCBfc3FydF9zKGZsb2F0KTsKZXh0
ZXJuIGRvdWJsZSBfc3FydF9kKGRvdWJsZSk7CmV4dGVybiBpbnQgc2V0YXNoKGFzaF90KTsKZXh0
ZXJuIGludCBzZXRkb21haW5uYW1lKGNvbnN0IGNoYXIgKiwgaW50KTsKCgoKZXh0ZXJuIGludCBz
ZXRncm91cHMoaW50LCBjb25zdCBnaWRfdCAqKTsKCmV4dGVybiBpbnQgc2V0aG9zdGlkKGludCk7
CmV4dGVybiBpbnQgc2V0aG9zdG5hbWUoY29uc3QgY2hhciAqLCBpbnQpOwpleHRlcm4gaW50IHNl
dHByaWQocHJpZF90KTsKZXh0ZXJuIGludCBzZXRyZ2lkKGdpZF90KTsKZXh0ZXJuIGludCBzZXRy
dWlkKHVpZF90KTsKZXh0ZXJuIGludCBzZXRzcGluZm8oc3RydWN0IGFjY3Rfc3BpICopOwpleHRl
cm4gaW50IHNnaWtvcHQoY29uc3QgY2hhciAqLCBjaGFyICosIGludCk7CmV4dGVybiBsb25nIHNn
aW5hcChsb25nKTsKZXh0ZXJuIG9mZjY0X3QgdGVsbDY0KGludCk7CmV4dGVybiBpbnQgdmhhbmd1
cCh2b2lkKTsKCgoKCgpleHRlcm4gaW50IGZhdHRhY2goaW50LCBjb25zdCBjaGFyICopOwpleHRl
cm4gaW50IGZkZXRhY2goY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBpb2N0bChpbnQsIGludCwg
Li4uKTsKCgoKCgpleHRlcm4gaW50IGZ0cnVuY2F0ZTY0KGludCwgb2ZmNjRfdCk7CmV4dGVybiBp
bnQgbG9ja2Y2NChpbnQsIGludCwgb2ZmNjRfdCk7CmV4dGVybiBvZmY2NF90IGxzZWVrNjQoaW50
LCBvZmY2NF90LCBpbnQpOwpleHRlcm4gaW50IHRydW5jYXRlNjQoY29uc3QgY2hhciAqLCBvZmY2
NF90KTsKIyA4MiAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy90c3lzdGVtLmgiIDIKCgojIDEgImlu
Y2x1ZGUvbGltaXRzLmgiIDEgMwojIDExICJpbmNsdWRlL2xpbWl0cy5oIiAzCiMgMSAiaW5jbHVk
ZS9zeXNsaW1pdHMuaCIgMSAzCiMgMzYgImluY2x1ZGUvc3lzbGltaXRzLmgiIDMKI2lkZW50ICIk
UmV2aXNpb246IDcuNDEgJCIKIyAzMTkgImluY2x1ZGUvc3lzbGltaXRzLmgiIDMKdHlwZWRlZiB1
bmlvbiBfaF92YWwgewoKICAgICAgICB1bnNpZ25lZCBsb25nIGlbMl07CgoKCgogICAgICAgIGRv
dWJsZSBkOwp9IF9oX3ZhbDsKCmV4dGVybiBfX2NvbnN0IF9oX3ZhbCBfX2h1Z2VfdmFsOwojIDEy
ICJpbmNsdWRlL2xpbWl0cy5oIiAyIDMKIyA4NSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy90c3lz
dGVtLmgiIDIKCgojIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMwoKCgoKCiNpZGVudCAiJFJl
dmlzaW9uOiAxLjUxICQiCiMgNzQgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL3B0aW1lcnMuaCIgMSAzCiMgMjIgIi91c3IvaW5jbHVkZS9zeXMvcHRpbWVycy5o
IiAzCiNpZGVudCAiJElkOiBwdGltZXJzLmgsdiAxLjQgMTk5Ny8wMS8xNSAwNDo0NDo0MSBqd2Fn
IEV4cCAkIgoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lc3BlYy5oIiAxIDMKIyAxOSAi
L3Vzci9pbmNsdWRlL3N5cy90aW1lc3BlYy5oIiAzCiNpZGVudCAiJFJldmlzaW9uOiAxLjUgJCIK
IyA0NiAiL3Vzci9pbmNsdWRlL3N5cy90aW1lc3BlYy5oIiAzCnR5cGVkZWYgc3RydWN0IHRpbWVz
cGVjIHsKCgoKICAgICAgICB0aW1lX3QgdHZfc2VjOwoKCgoKICAgICAgICBsb25nIHR2X25zZWM7
Cgp9IHRpbWVzcGVjX3Q7CiMgMjkgIi91c3IvaW5jbHVkZS9zeXMvcHRpbWVycy5oIiAyIDMKCnR5
cGVkZWYgc3RydWN0IGl0aW1lcnNwZWMgewogICAgICAgIHRpbWVzcGVjX3QgaXRfaW50ZXJ2YWw7
CiAgICAgICAgdGltZXNwZWNfdCBpdF92YWx1ZTsKfSBpdGltZXJzcGVjX3Q7CiMgNzUgIi91c3Iv
aW5jbHVkZS90aW1lLmgiIDIgMwojIDEwNiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwpzdHJ1Y3Qg
dG0gewogICAgICAgIGludCB0bV9zZWM7CiAgICAgICAgaW50IHRtX21pbjsKICAgICAgICBpbnQg
dG1faG91cjsKICAgICAgICBpbnQgdG1fbWRheTsKICAgICAgICBpbnQgdG1fbW9uOwogICAgICAg
IGludCB0bV95ZWFyOwogICAgICAgIGludCB0bV93ZGF5OwogICAgICAgIGludCB0bV95ZGF5Owog
ICAgICAgIGludCB0bV9pc2RzdDsKfTsKCgoKCmV4dGVybiBjbG9ja190IGNsb2NrKHZvaWQpOwpl
eHRlcm4gZG91YmxlIGRpZmZ0aW1lKHRpbWVfdCwgdGltZV90KTsKZXh0ZXJuIHRpbWVfdCBta3Rp
bWUoc3RydWN0IHRtICopOwpleHRlcm4gdGltZV90IHRpbWUodGltZV90ICopOwpleHRlcm4gY2hh
ciAqYXNjdGltZShjb25zdCBzdHJ1Y3QgdG0gKik7CmV4dGVybiBjaGFyICpjdGltZSAoY29uc3Qg
dGltZV90ICopOwpleHRlcm4gc3RydWN0IHRtICpnbXRpbWUoY29uc3QgdGltZV90ICopOwpleHRl
cm4gc3RydWN0IHRtICpsb2NhbHRpbWUoY29uc3QgdGltZV90ICopOwpleHRlcm4gc2l6ZV90IHN0
cmZ0aW1lKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0bSAqKTsK
CgoKCgpleHRlcm4gdm9pZCB0enNldCh2b2lkKTsKZXh0ZXJuIGNoYXIgKnR6bmFtZVsyXTsKIyAx
NTAgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKc3RydWN0IHNpZ2V2ZW50OwpleHRlcm4gaW50IGNs
b2NrX3NldHRpbWUoY2xvY2tpZF90LCBjb25zdCB0aW1lc3BlY190ICopOwpleHRlcm4gaW50IGNs
b2NrX2dldHRpbWUoY2xvY2tpZF90LCB0aW1lc3BlY190ICopOwpleHRlcm4gaW50IGNsb2NrX2dl
dHJlcyhjbG9ja2lkX3QsIHRpbWVzcGVjX3QgKik7CmV4dGVybiBpbnQgbmFub3NsZWVwKGNvbnN0
IHRpbWVzcGVjX3QgKiwgdGltZXNwZWNfdCAqKTsKZXh0ZXJuIGludCB0aW1lcl9jcmVhdGUoY2xv
Y2tpZF90LCBzdHJ1Y3Qgc2lnZXZlbnQgKiwgdGltZXJfdCAqKTsKZXh0ZXJuIGludCB0aW1lcl9k
ZWxldGUodGltZXJfdCk7CmV4dGVybiBpbnQgdGltZXJfc2V0dGltZSh0aW1lcl90LCBpbnQsIGNv
bnN0IHN0cnVjdCBpdGltZXJzcGVjICosIHN0cnVjdCBpdGltZXJzcGVjICopOwpleHRlcm4gaW50
IHRpbWVyX2dldHRpbWUodGltZXJfdCwgc3RydWN0IGl0aW1lcnNwZWMgKik7CmV4dGVybiBpbnQg
dGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl90KTsKCgoKCgoKZXh0ZXJuIHRpbWVfdCB0aW1lem9uZTsK
ZXh0ZXJuIGludCBkYXlsaWdodDsKZXh0ZXJuIGNoYXIgKnN0cnB0aW1lKGNvbnN0IGNoYXIgKiwg
Y29uc3QgY2hhciAqLCBzdHJ1Y3QgdG0gKik7CgoKCgoKCmV4dGVybiBzdHJ1Y3QgdG0gKmdldGRh
dGUoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBnZXRkYXRlX2VycjsKCgoKZXh0ZXJuIGludCBj
ZnRpbWUoY2hhciAqLCBjaGFyICosIGNvbnN0IHRpbWVfdCAqKTsKZXh0ZXJuIGludCBhc2NmdGlt
ZShjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IHRtICopOwpleHRlcm4gdGltZV90
IGFsdHpvbmU7CgoKCgoKCmV4dGVybiBjaGFyICphc2N0aW1lX3IoY29uc3Qgc3RydWN0IHRtICos
IGNoYXIgKik7CmV4dGVybiBjaGFyICpjdGltZV9yKGNvbnN0IHRpbWVfdCAqLCBjaGFyICopOwpl
eHRlcm4gc3RydWN0IHRtICpnbXRpbWVfcihjb25zdCB0aW1lX3QgKiwgc3RydWN0IHRtICopOwpl
eHRlcm4gc3RydWN0IHRtICpsb2NhbHRpbWVfcihjb25zdCB0aW1lX3QgKiwgc3RydWN0IHRtICop
OwojIDg4ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL3RzeXN0ZW0uaCIgMgojIDM4ICIuLi8uLi9n
Y2MtMjAwMTEyMDMvZ2NjL2xpYmdjYzIuYyIgMgoKIyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2Nj
L21hY2htb2RlLmgiIDEKIyAyOSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9tYWNobW9kZS5oIgpl
bnVtIG1hY2hpbmVfbW9kZSB7CiMgMSAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9tYWNobW9kZS5k
ZWYiIDEKIyA3MCAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9tYWNobW9kZS5kZWYiClZPSURtb2Rl
LAoKQkltb2RlLApRSW1vZGUsCkhJbW9kZSwKU0ltb2RlLApESW1vZGUsClRJbW9kZSwKT0ltb2Rl
LAoKCgoKUFFJbW9kZSwKUEhJbW9kZSwKUFNJbW9kZSwKUERJbW9kZSwKClFGbW9kZSwKSEZtb2Rl
LApUUUZtb2RlLApTRm1vZGUsCkRGbW9kZSwKWEZtb2RlLApURm1vZGUsCgoKUUNtb2RlLApIQ21v
ZGUsClNDbW9kZSwKRENtb2RlLApYQ21vZGUsClRDbW9kZSwKCkNRSW1vZGUsCkNISW1vZGUsCkNT
SW1vZGUsCkNESW1vZGUsCkNUSW1vZGUsCkNPSW1vZGUsCgoKCgoKCgpWMlFJbW9kZSwKVjJISW1v
ZGUsClYyU0ltb2RlLApWMkRJbW9kZSwKClY0UUltb2RlLApWNEhJbW9kZSwKVjRTSW1vZGUsClY0
REltb2RlLAoKVjhRSW1vZGUsClY4SEltb2RlLApWOFNJbW9kZSwKVjhESW1vZGUsCgpWMTZRSW1v
ZGUsCgpWMlNGbW9kZSwKVjJERm1vZGUsCgpWNFNGbW9kZSwKVjRERm1vZGUsCgpWOFNGbW9kZSwK
VjhERm1vZGUsCgoKCkJMS21vZGUsCiMgMTU0ICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL21hY2ht
b2RlLmRlZiIKQ0Ntb2RlLAojIDMxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL21hY2htb2RlLmgi
IDIKTUFYX01BQ0hJTkVfTU9ERSB9OwojIDQxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL21hY2ht
b2RlLmgiCmV4dGVybiBjb25zdCBjaGFyICogY29uc3QgbW9kZV9uYW1lW107CgoKZW51bSBtb2Rl
X2NsYXNzIHsgTU9ERV9SQU5ET00sIE1PREVfSU5ULCBNT0RFX0ZMT0FULCBNT0RFX1BBUlRJQUxf
SU5ULCBNT0RFX0NDLAogICAgICAgICAgICAgICAgICBNT0RFX0NPTVBMRVhfSU5ULCBNT0RFX0NP
TVBMRVhfRkxPQVQsCiAgICAgICAgICAgICAgICAgIE1PREVfVkVDVE9SX0lOVCwgTU9ERV9WRUNU
T1JfRkxPQVQsCiAgICAgICAgICAgICAgICAgIE1BWF9NT0RFX0NMQVNTfTsKCgoKCmV4dGVybiBj
b25zdCBlbnVtIG1vZGVfY2xhc3MgbW9kZV9jbGFzc1tdOwojIDgwICIuLi8uLi9nY2MtMjAwMTEy
MDMvZ2NjL21hY2htb2RlLmgiCmV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgbW9kZV9zaXplW107
CgoKCgpleHRlcm4gY29uc3QgdW5zaWduZWQgaW50IG1vZGVfdW5pdF9zaXplW107CiMgOTYgIi4u
Ly4uL2djYy0yMDAxMTIwMy9nY2MvbWFjaG1vZGUuaCIKZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGlu
dCBtb2RlX2JpdHNpemVbXTsKIyAxMTcgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvbWFjaG1vZGUu
aCIKZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgbW9kZV93aWRlcl9tb2RlW107CgoKCgoKCmV4
dGVybiBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlX2Zvcl9zaXplICh1bnNpZ25lZCBpbnQsIGVudW0g
bW9kZV9jbGFzcywgaW50KTsKCgoKCmV4dGVybiBlbnVtIG1hY2hpbmVfbW9kZSBzbWFsbGVzdF9t
b2RlX2Zvcl9zaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGlu
dCwgZW51bSBtb2RlX2NsYXNzKTsKCgoKCgpleHRlcm4gZW51bSBtYWNoaW5lX21vZGUgaW50X21v
ZGVfZm9yX21vZGUgKGVudW0gbWFjaGluZV9tb2RlKTsKCgoKZXh0ZXJuIGVudW0gbWFjaGluZV9t
b2RlIGdldF9iZXN0X21vZGUgKGludCwgaW50LCB1bnNpZ25lZCBpbnQsIGVudW0gbWFjaGluZV9t
b2RlLCBpbnQpOwoKCgoKZXh0ZXJuIHVuc2lnbmVkIGdldF9tb2RlX2FsaWdubWVudCAoZW51bSBt
YWNoaW5lX21vZGUpOwoKCgoKCmV4dGVybiBjb25zdCBlbnVtIG1hY2hpbmVfbW9kZSBjbGFzc19u
YXJyb3dlc3RfbW9kZVtdOwoKCgoKCmV4dGVybiBlbnVtIG1hY2hpbmVfbW9kZSBieXRlX21vZGU7
CmV4dGVybiBlbnVtIG1hY2hpbmVfbW9kZSB3b3JkX21vZGU7CmV4dGVybiBlbnVtIG1hY2hpbmVf
bW9kZSBwdHJfbW9kZTsKIyA0MCAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9saWJnY2MyLmMiIDIK
CgoKCgoKIyAxICIuLi8uLi9nY2MtMjAwMTEyMDMvZ2NjL2xpYmdjYzIuaCIgMQojIDI1ICIuLi8u
Li9nY2MtMjAwMTEyMDMvZ2NjL2xpYmdjYzIuaCIKZXh0ZXJuIGludCBfX2djY19iY21wIChjb25z
dCB1bnNpZ25lZCBjaGFyICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJu
IHZvaWQgX19jbGVhcl9jYWNoZSAoY2hhciAqLCBjaGFyICopOwpleHRlcm4gdm9pZCBfX2Vwcmlu
dGYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQsIGNvbnN0IGNoYXIg
KikKICBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7CgpzdHJ1Y3QgYmI7CmV4dGVybiB2
b2lkIF9fYmJfZXhpdF9mdW5jICh2b2lkKTsKZXh0ZXJuIHZvaWQgX19iYl9pbml0X2Z1bmMgKHN0
cnVjdCBiYiAqKTsKZXh0ZXJuIHZvaWQgX19iYl9mb3JrX2Z1bmMgKHZvaWQpOwpleHRlcm4gdm9p
ZCBfX2JiX3RyYWNlX2Z1bmMgKHZvaWQpOwpleHRlcm4gdm9pZCBfX2JiX3RyYWNlX3JldCAodm9p
ZCk7CmV4dGVybiB2b2lkIF9fYmJfaW5pdF90cmFjZV9mdW5jIChzdHJ1Y3QgYmIgKiwgdW5zaWdu
ZWQgbG9uZyk7CgpzdHJ1Y3QgZXhjZXB0aW9uX2Rlc2NyaXB0b3I7CmV4dGVybiBzaG9ydCBpbnQg
X19nZXRfZWhfdGFibGVfbGFuZ3VhZ2UgKHN0cnVjdCBleGNlcHRpb25fZGVzY3JpcHRvciAqKTsK
ZXh0ZXJuIHNob3J0IGludCBfX2dldF9laF90YWJsZV92ZXJzaW9uIChzdHJ1Y3QgZXhjZXB0aW9u
X2Rlc2NyaXB0b3IgKik7CiMgNjcgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvbGliZ2NjMi5oIgp0
eXBlZGVmIGludCBRSXR5cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKFFJKSkpOwp0eXBlZGVmIHVu
c2lnbmVkIGludCBVUUl0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChRSSkpKTsKdHlwZWRlZiBp
bnQgSEl0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChISSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgVUhJdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoSEkpKSk7CgoKdHlwZWRlZiBpbnQgU0l0
eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChTSSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgVVNJ
dHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoU0kpKSk7CgoKdHlwZWRlZiBpbnQgREl0eXBlIF9f
YXR0cmlidXRlX18gKChtb2RlIChESSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgVURJdHlwZSBf
X2F0dHJpYnV0ZV9fICgobW9kZSAoREkpKSk7CiMgODkgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2Mv
bGliZ2NjMi5oIgp0eXBlZGVmIGZsb2F0IFNGdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoU0Yp
KSk7CnR5cGVkZWYgZmxvYXQgREZ0eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChERikpKTsKIyAx
MjIgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2MvbGliZ2NjMi5oIgp0eXBlZGVmIGludCB3b3JkX3R5
cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKF9fd29yZF9fKSkpOwojIDIxNCAiLi4vLi4vZ2NjLTIw
MDExMjAzL2djYy9saWJnY2MyLmgiCmV4dGVybiBESXR5cGUgX19tdWxkaTMgKERJdHlwZSwgREl0
eXBlKTsKZXh0ZXJuIERJdHlwZSBfX2RpdmRpMyAoREl0eXBlLCBESXR5cGUpOwpleHRlcm4gVURJ
dHlwZSBfX3VkaXZkaTMgKFVESXR5cGUsIFVESXR5cGUpOwpleHRlcm4gVURJdHlwZSBfX3Vtb2Rk
aTMgKFVESXR5cGUsIFVESXR5cGUpOwpleHRlcm4gREl0eXBlIF9fbW9kZGkzIChESXR5cGUsIERJ
dHlwZSk7CgoKCgpleHRlcm4gVURJdHlwZSBfX3VkaXZtb2RkaTQgKFVESXR5cGUsIFVESXR5cGUs
IFVESXR5cGUgKik7CgoKCgpleHRlcm4gREl0eXBlIF9fbmVnZGkyIChESXR5cGUpOwoKCmV4dGVy
biBESXR5cGUgX19sc2hyZGkzIChESXR5cGUsIHdvcmRfdHlwZSk7CmV4dGVybiBESXR5cGUgX19h
c2hsZGkzIChESXR5cGUsIHdvcmRfdHlwZSk7CmV4dGVybiBESXR5cGUgX19hc2hyZGkzIChESXR5
cGUsIHdvcmRfdHlwZSk7CmV4dGVybiBESXR5cGUgX19mZnNkaTIgKERJdHlwZSk7CgoKCgpleHRl
cm4gVVNJdHlwZSBfX3VkaXZfd19zZGl2IChVU0l0eXBlICosIFVTSXR5cGUsIFVTSXR5cGUsIFVT
SXR5cGUpOwoKCmV4dGVybiB3b3JkX3R5cGUgX19jbXBkaTIgKERJdHlwZSwgREl0eXBlKTsKZXh0
ZXJuIHdvcmRfdHlwZSBfX3VjbXBkaTIgKERJdHlwZSwgREl0eXBlKTsKCmV4dGVybiBTSXR5cGUg
X19hYnN2c2kyIChTSXR5cGUpOwpleHRlcm4gREl0eXBlIF9fYWJzdmRpMiAoREl0eXBlKTsKZXh0
ZXJuIFNJdHlwZSBfX2FkZHZzaTMgKFNJdHlwZSwgU0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX2Fk
ZHZkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJuIFNJdHlwZSBfX3N1YnZzaTMgKFNJdHlwZSwg
U0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX3N1YnZkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJu
IFNJdHlwZSBfX211bHZzaTMgKFNJdHlwZSwgU0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX211bHZk
aTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJuIFNJdHlwZSBfX25lZ3ZzaTIgKFNJdHlwZSk7CmV4
dGVybiBESXR5cGUgX19uZWd2ZGkyIChESXR5cGUpOwoKCmV4dGVybiBESXR5cGUgX19maXhkZmRp
IChERnR5cGUpOwpleHRlcm4gREl0eXBlIF9fZml4c2ZkaSAoU0Z0eXBlKTsKZXh0ZXJuIERGdHlw
ZSBfX2Zsb2F0ZGlkZiAoREl0eXBlKTsKZXh0ZXJuIFNGdHlwZSBfX2Zsb2F0ZGlzZiAoREl0eXBl
KTsKZXh0ZXJuIFVTSXR5cGUgX19maXh1bnNkZnNpIChERnR5cGUpOwpleHRlcm4gVVNJdHlwZSBf
X2ZpeHVuc3Nmc2kgKFNGdHlwZSk7CmV4dGVybiBESXR5cGUgX19maXh1bnNkZmRpIChERnR5cGUp
OwpleHRlcm4gREl0eXBlIF9fZml4dW5zc2ZkaSAoU0Z0eXBlKTsKIyAyODQgIi4uLy4uL2djYy0y
MDAxMTIwMy9nY2MvbGliZ2NjMi5oIgogIHN0cnVjdCBEV3N0cnVjdCB7U0l0eXBlIGhpZ2gsIGxv
dzt9OwojIDI5MyAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9saWJnY2MyLmgiCnR5cGVkZWYgdW5p
b24KewogIHN0cnVjdCBEV3N0cnVjdCBzOwogIERJdHlwZSBsbDsKfSBEV3VuaW9uOwoKIyAxICIu
Li8uLi9nY2MtMjAwMTEyMDMvZ2NjL2xvbmdsb25nLmgiIDEKIyAxNDUwICIuLi8uLi9nY2MtMjAw
MTEyMDMvZ2NjL2xvbmdsb25nLmgiCmV4dGVybiBjb25zdCBVUUl0eXBlIF9fY2x6X3RhYltdOwoj
IDMwMCAiLi4vLi4vZ2NjLTIwMDExMjAzL2djYy9saWJnY2MyLmgiIDIKIyA0NyAiLi4vLi4vZ2Nj
LTIwMDExMjAzL2djYy9saWJnY2MyLmMiIDIKIyAzNTMgIi4uLy4uL2djYy0yMDAxMTIwMy9nY2Mv
bGliZ2NjMi5jIgpESXR5cGUKX19tdWxkaTMgKERJdHlwZSB1LCBESXR5cGUgdikKewogIERXdW5p
b24gdzsKICBEV3VuaW9uIHV1LCB2djsKCiAgdXUubGwgPSB1LAogIHZ2LmxsID0gdjsKCiAgdy5s
bCA9ICh7RFd1bmlvbiBfX3c7IF9fYXNtX18gKCJtdWx0dSAlMiwlMyIgOiAiPWwiICgoVVNJdHlw
ZSkgKF9fdy5zLmxvdykpLCAiPWgiICgoVVNJdHlwZSkgKF9fdy5zLmhpZ2gpKSA6ICJkIiAoKFVT
SXR5cGUpICh1dS5zLmxvdykpLCAiZCIgKChVU0l0eXBlKSAodnYucy5sb3cpKSk7IF9fdy5sbDsg
fSk7CiAgdy5zLmhpZ2ggKz0gKChVU0l0eXBlKSB1dS5zLmxvdyAqIChVU0l0eXBlKSB2di5zLmhp
Z2gKICAgICAgICAgICAgICAgKyAoVVNJdHlwZSkgdXUucy5oaWdoICogKFVTSXR5cGUpIHZ2LnMu
bG93KTsKCiAgcmV0dXJuIHcubGw7Cn0K


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

end of thread, other threads:[~2002-04-10 18:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-10 11:45 bootstrap/5043: ICE compiling libgcc2.c on mips-sgi-irix6.5 ghazi
  -- strict thread matches above, loose matches on Subject: below --
2002-04-09  7:26 Reichelt
2001-12-07  9:06 reichelt

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