This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

bootstrap/9784: gcc 3.2.2 bootstrap on AIX 5.2 fails with GCC 2.9 as compiler


>Number:         9784
>Category:       bootstrap
>Synopsis:       gcc 3.2.2 bootstrap on AIX 5.2 fails with GCC 2.9 as compiler
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 21 00:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Brian Karl Hiatt
>Release:        gcc-3.2.2
>Organization:
>Environment:
IBM AIX 5.2 on SMP PowerPC_POWER3 CPU.  64 bit kernel installed.
gcc 2.9 is a 32bit executable.
Using GNU Make version 3.79.1
>Description:
In directory /usr/local/gcc-obj/gcc
Command:
./xgcc -B./ -B/usr/local/powerpc-ibm-aix5.2.0.0/bin/ -isystem 
/usr/local/powerpc-ibm-aix5.2.0.0/include -isystem 
/usr/local/powerpc-ibm-aix5.2.0.0/sys-include -O2  
-DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT 
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../gcc-3.2.2/gcc 
-I../../gcc-3.2.2/gcc/. -I../../gcc-3.2.2/gcc/config 
-I../../gcc-3.2.2/gcc/../include  -DL_fixunsdfsi 
-c ../../gcc-3.2.2/gcc/libgcc2.c -o libgcc/./_fixunsdfsi.o

Output:
../../gcc-3.2.2/gcc/libgcc2.c: In function `__fixunsdfsi':
../../gcc-3.2.2/gcc/libgcc2.c:1174: unrecognizable insn:
(insn 13 12 14 (set (reg:CCEQ 119)
        (compare:CCEQ (ior:SI (gt:SI (reg:CCFP 118)
                    (const_int 0 [0x0]))
                (eq:SI (reg:CCFP 118)
                    (const_int 0 [0x0])))
            (const_int 1 [0x1]))) -1 (insn_list 12 (nil))
    (expr_list:REG_DEAD (reg:CCFP 118)
        (nil)))
../../gcc-3.2.2/gcc/libgcc2.c:1174: Internal compiler error in extract_insn, at recog.c:2148
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make[3]: *** [libgcc/./_fixunsdfsi.o] Error 1
make[3]: Leaving directory `/usr/local/gcc-obj/gcc'
make[2]: *** [stmp-multilib] Error 2
make[2]: Leaving directory `/usr/local/gcc-obj/gcc'
make[1]: *** [stage1_build] Error 2
make[1]: Leaving directory `/usr/local/gcc-obj/gcc'
make: *** [bootstrap] Error 2


# ./xgcc -v
Using built-in specs.
Configured with: ../gcc-3.2.2/configure 
Thread model: aix
gcc version 3.2.2

GCC Used to make xgcc
# gcc -v
Reading specs from /usr/bin/../lib/gcc-lib/powerpc-ibm-aix5.1.0.0/2.9-aix51-020209/specs
gcc version 2.9-aix51-020209
>How-To-Repeat:

>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"

IyAxICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2xpYmdjYzIuYyIKIyAxICI8YnVpbHQtaW4+IgojIDEg
Ijxjb21tYW5kIGxpbmU+IgojIDEgIi4uLy4uL2djYy0zLjIuMi9nY2MvbGliZ2NjMi5jIgojIDM2
ICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2xpYmdjYzIuYyIKIyAxICJ0Y29uZmlnLmgiIDEKCgoKCgpz
dHJ1Y3QgcnR4X2RlZjsKdHlwZWRlZiBzdHJ1Y3QgcnR4X2RlZiAqcnR4OwpzdHJ1Y3QgcnR2ZWNf
ZGVmOwp0eXBlZGVmIHN0cnVjdCBydHZlY19kZWYgKnJ0dmVjOwp1bmlvbiB0cmVlX25vZGU7CnR5
cGVkZWYgdW5pb24gdHJlZV9ub2RlICp0cmVlOwoKCiMgMSAiLi4vLi4vZ2NjLTMuMi4yL2luY2x1
ZGUvYW5zaWRlY2wuaCIgMQojIDE1ICJ0Y29uZmlnLmgiIDIKIyAxICIuLi8uLi9nY2MtMy4yLjIv
Z2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgiIDEKIyAxNTQgIi4uLy4uL2djYy0zLjIuMi9nY2Mv
Y29uZmlnL3JzNjAwMC9yczYwMDAuaCIKZXh0ZXJuIGludCB0YXJnZXRfZmxhZ3M7CiMgMzgyICIu
Li8uLi9nY2MtMy4yLjIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgiCmVudW0gcHJvY2Vzc29y
X3R5cGUKIHsKICAgUFJPQ0VTU09SX1JJT1MxLAogICBQUk9DRVNTT1JfUklPUzIsCiAgIFBST0NF
U1NPUl9SUzY0QSwKICAgUFJPQ0VTU09SX01QQ0NPUkUsCiAgIFBST0NFU1NPUl9QUEM0MDMsCiAg
IFBST0NFU1NPUl9QUEM0MDUsCiAgIFBST0NFU1NPUl9QUEM2MDEsCiAgIFBST0NFU1NPUl9QUEM2
MDMsCiAgIFBST0NFU1NPUl9QUEM2MDQsCiAgIFBST0NFU1NPUl9QUEM2MDRlLAogICBQUk9DRVNT
T1JfUFBDNjIwLAogICBQUk9DRVNTT1JfUFBDNjMwLAogICBQUk9DRVNTT1JfUFBDNzUwLAogICBQ
Uk9DRVNTT1JfUFBDNzQwMCwKICAgUFJPQ0VTU09SX1BQQzc0NTAKfTsKCmV4dGVybiBlbnVtIHBy
b2Nlc3Nvcl90eXBlIHJzNjAwMF9jcHU7CiMgNDM3ICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2NvbmZp
Zy9yczYwMDAvcnM2MDAwLmgiCnN0cnVjdCByczYwMDBfY3B1X3NlbGVjdAp7CiAgY29uc3QgY2hh
ciAqc3RyaW5nOwogIGNvbnN0IGNoYXIgKm5hbWU7CiAgaW50IHNldF90dW5lX3A7CiAgaW50IHNl
dF9hcmNoX3A7Cn07CgpleHRlcm4gc3RydWN0IHJzNjAwMF9jcHVfc2VsZWN0IHJzNjAwMF9zZWxl
Y3RbXTsKCgpleHRlcm4gY29uc3QgY2hhciAqcnM2MDAwX2RlYnVnX25hbWU7CmV4dGVybiBjb25z
dCBjaGFyICpyczYwMDBfYWJpX3N0cmluZzsKZXh0ZXJuIGludCByczYwMDBfZGVidWdfc3RhY2s7
CmV4dGVybiBpbnQgcnM2MDAwX2RlYnVnX2FyZzsKCgoKCgoKZXh0ZXJuIGNvbnN0IGNoYXIgKnJz
NjAwMF9sb25nX2RvdWJsZV9zaXplX3N0cmluZzsKZXh0ZXJuIGludCByczYwMDBfbG9uZ19kb3Vi
bGVfdHlwZV9zaXplOwpleHRlcm4gaW50IHJzNjAwMF9hbHRpdmVjX2FiaTsKIyAxMDUxICIuLi8u
Li9nY2MtMy4yLjIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgiCmVudW0gcmVnX2NsYXNzCnsK
ICBOT19SRUdTLAogIEJBU0VfUkVHUywKICBHRU5FUkFMX1JFR1MsCiAgRkxPQVRfUkVHUywKICBB
TFRJVkVDX1JFR1MsCiAgVlJTQVZFX1JFR1MsCiAgTk9OX1NQRUNJQUxfUkVHUywKICBNUV9SRUdT
LAogIExJTktfUkVHUywKICBDVFJfUkVHUywKICBMSU5LX09SX0NUUl9SRUdTLAogIFNQRUNJQUxf
UkVHUywKICBTUEVDX09SX0dFTl9SRUdTLAogIENSMF9SRUdTLAogIENSX1JFR1MsCiAgTk9OX0ZM
T0FUX1JFR1MsCiAgWEVSX1JFR1MsCiAgQUxMX1JFR1MsCiAgTElNX1JFR19DTEFTU0VTCn07CiMg
MTI4OSAiLi4vLi4vZ2NjLTMuMi4yL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5oIgplbnVtIHJz
NjAwMF9hYmkgewogIEFCSV9OT05FLAogIEFCSV9BSVgsCiAgQUJJX0FJWF9OT0RFU0MsCgogIEFC
SV9WNCwKICBBQklfREFSV0lOCn07CgpleHRlcm4gZW51bSByczYwMDBfYWJpIHJzNjAwMF9jdXJy
ZW50X2FiaTsKCgp0eXBlZGVmIHN0cnVjdCByczYwMDBfc3RhY2sgewogIGludCBmaXJzdF9ncF9y
ZWdfc2F2ZTsKICBpbnQgZmlyc3RfZnBfcmVnX3NhdmU7CiAgaW50IGZpcnN0X2FsdGl2ZWNfcmVn
X3NhdmU7CiAgaW50IGxyX3NhdmVfcDsKICBpbnQgY3Jfc2F2ZV9wOwogIHVuc2lnbmVkIGludCB2
cnNhdmVfbWFzazsKICBpbnQgdG9jX3NhdmVfcDsKICBpbnQgcHVzaF9wOwogIGludCBjYWxsc19w
OwogIGVudW0gcnM2MDAwX2FiaSBhYmk7CiAgaW50IGdwX3NhdmVfb2Zmc2V0OwogIGludCBmcF9z
YXZlX29mZnNldDsKICBpbnQgYWx0aXZlY19zYXZlX29mZnNldDsKICBpbnQgbHJfc2F2ZV9vZmZz
ZXQ7CiAgaW50IGNyX3NhdmVfb2Zmc2V0OwogIGludCB2cnNhdmVfc2F2ZV9vZmZzZXQ7CiAgaW50
IHRvY19zYXZlX29mZnNldDsKICBpbnQgdmFyYXJnc19zYXZlX29mZnNldDsKICBpbnQgZWhyZF9v
ZmZzZXQ7CiAgaW50IHJlZ19zaXplOwogIGludCB2YXJhcmdzX3NpemU7CiAgaW50IHZhcnNfc2l6
ZTsKICBpbnQgcGFybV9zaXplOwogIGludCBzYXZlX3NpemU7CiAgaW50IGZpeGVkX3NpemU7CiAg
aW50IGdwX3NpemU7CiAgaW50IGZwX3NpemU7CiAgaW50IGFsdGl2ZWNfc2l6ZTsKICBpbnQgY3Jf
c2l6ZTsKICBpbnQgbHJfc2l6ZTsKICBpbnQgdnJzYXZlX3NpemU7CiAgaW50IGFsdGl2ZWNfcGFk
ZGluZ19zaXplOwoKICBpbnQgdG9jX3NpemU7CiAgaW50IHRvdGFsX3NpemU7Cn0gcnM2MDAwX3N0
YWNrX3Q7CiMgMTU1OSAiLi4vLi4vZ2NjLTMuMi4yL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5o
Igp0eXBlZGVmIHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uCnsKCiAgaW50IHN5c3ZfdmFyYXJnc19w
OwoKICBpbnQgcmFfbmVlZHNfZnVsbF9mcmFtZTsKfSBtYWNoaW5lX2Z1bmN0aW9uOwojIDE1ODUg
Ii4uLy4uL2djYy0zLjIuMi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaCIKdHlwZWRlZiBzdHJ1
Y3QgcnM2MDAwX2FyZ3MKewogIGludCB3b3JkczsKICBpbnQgZnJlZ25vOwogIGludCB2cmVnbm87
CiAgaW50IG5hcmdzX3Byb3RvdHlwZTsKICBpbnQgb3JpZ19uYXJnczsKICBpbnQgcHJvdG90eXBl
OwogIGludCBjYWxsX2Nvb2tpZTsKICBpbnQgc3lzdl9ncmVnbm87Cn0gQ1VNVUxBVElWRV9BUkdT
OwojIDI0MDAgIi4uLy4uL2djYy0zLjIuMi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaCIKZXh0
ZXJuIHN0cnVjdCBydHhfZGVmICpyczYwMDBfY29tcGFyZV9vcDAsICpyczYwMDBfY29tcGFyZV9v
cDE7CmV4dGVybiBpbnQgcnM2MDAwX2NvbXBhcmVfZnBfcDsKIyAyNDE1ICIuLi8uLi9nY2MtMy4y
LjIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgiCmV4dGVybiBpbnQgdG9jX2luaXRpYWxpemVk
OwojIDI1MTcgIi4uLy4uL2djYy0zLjIuMi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaCIKZXh0
ZXJuIGNoYXIgcnM2MDAwX3JlZ19uYW1lc1tdWzhdOwojIDI4MjYgIi4uLy4uL2djYy0zLjIuMi9n
Y2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaCIKZXh0ZXJuIGludCBmbGFnX3BpYzsKZXh0ZXJuIGlu
dCBvcHRpbWl6ZTsKZXh0ZXJuIGludCBmbGFnX2V4cGVuc2l2ZV9vcHRpbWl6YXRpb25zOwpleHRl
cm4gaW50IGZyYW1lX3BvaW50ZXJfbmVlZGVkOwoKZW51bSByczYwMDBfYnVpbHRpbnMKewoKICBB
TFRJVkVDX0JVSUxUSU5fU1RfSU5URVJOQUxfNHNpLAogIEFMVElWRUNfQlVJTFRJTl9MRF9JTlRF
Uk5BTF80c2ksCiAgQUxUSVZFQ19CVUlMVElOX1NUX0lOVEVSTkFMXzhoaSwKICBBTFRJVkVDX0JV
SUxUSU5fTERfSU5URVJOQUxfOGhpLAogIEFMVElWRUNfQlVJTFRJTl9TVF9JTlRFUk5BTF8xNnFp
LAogIEFMVElWRUNfQlVJTFRJTl9MRF9JTlRFUk5BTF8xNnFpLAogIEFMVElWRUNfQlVJTFRJTl9T
VF9JTlRFUk5BTF80c2YsCiAgQUxUSVZFQ19CVUlMVElOX0xEX0lOVEVSTkFMXzRzZiwKICBBTFRJ
VkVDX0JVSUxUSU5fVkFERFVCTSwKICBBTFRJVkVDX0JVSUxUSU5fVkFERFVITSwKICBBTFRJVkVD
X0JVSUxUSU5fVkFERFVXTSwKICBBTFRJVkVDX0JVSUxUSU5fVkFEREZQLAogIEFMVElWRUNfQlVJ
TFRJTl9WQUREQ1VXLAogIEFMVElWRUNfQlVJTFRJTl9WQUREVUJTLAogIEFMVElWRUNfQlVJTFRJ
Tl9WQUREU0JTLAogIEFMVElWRUNfQlVJTFRJTl9WQUREVUhTLAogIEFMVElWRUNfQlVJTFRJTl9W
QUREU0hTLAogIEFMVElWRUNfQlVJTFRJTl9WQUREVVdTLAogIEFMVElWRUNfQlVJTFRJTl9WQURE
U1dTLAogIEFMVElWRUNfQlVJTFRJTl9WQU5ELAogIEFMVElWRUNfQlVJTFRJTl9WQU5EQywKICBB
TFRJVkVDX0JVSUxUSU5fVkFWR1VCLAogIEFMVElWRUNfQlVJTFRJTl9WQVZHU0IsCiAgQUxUSVZF
Q19CVUlMVElOX1ZBVkdVSCwKICBBTFRJVkVDX0JVSUxUSU5fVkFWR1NILAogIEFMVElWRUNfQlVJ
TFRJTl9WQVZHVVcsCiAgQUxUSVZFQ19CVUlMVElOX1ZBVkdTVywKICBBTFRJVkVDX0JVSUxUSU5f
VkNGVVgsCiAgQUxUSVZFQ19CVUlMVElOX1ZDRlNYLAogIEFMVElWRUNfQlVJTFRJTl9WQ1RTWFMs
CiAgQUxUSVZFQ19CVUlMVElOX1ZDVFVYUywKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEJGUCwKICBB
TFRJVkVDX0JVSUxUSU5fVkNNUEVRVUIsCiAgQUxUSVZFQ19CVUlMVElOX1ZDTVBFUVVILAogIEFM
VElWRUNfQlVJTFRJTl9WQ01QRVFVVywKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEVRRlAsCiAgQUxU
SVZFQ19CVUlMVElOX1ZDTVBHRUZQLAogIEFMVElWRUNfQlVJTFRJTl9WQ01QR1RVQiwKICBBTFRJ
VkVDX0JVSUxUSU5fVkNNUEdUU0IsCiAgQUxUSVZFQ19CVUlMVElOX1ZDTVBHVFVILAogIEFMVElW
RUNfQlVJTFRJTl9WQ01QR1RTSCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVVcsCiAgQUxUSVZF
Q19CVUlMVElOX1ZDTVBHVFNXLAogIEFMVElWRUNfQlVJTFRJTl9WQ01QR1RGUCwKICBBTFRJVkVD
X0JVSUxUSU5fVkVYUFRFRlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZMT0dFRlAsCiAgQUxUSVZFQ19C
VUlMVElOX1ZNQURERlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZNQVhVQiwKICBBTFRJVkVDX0JVSUxU
SU5fVk1BWFNCLAogIEFMVElWRUNfQlVJTFRJTl9WTUFYVUgsCiAgQUxUSVZFQ19CVUlMVElOX1ZN
QVhTSCwKICBBTFRJVkVDX0JVSUxUSU5fVk1BWFVXLAogIEFMVElWRUNfQlVJTFRJTl9WTUFYU1cs
CiAgQUxUSVZFQ19CVUlMVElOX1ZNQVhGUCwKICBBTFRJVkVDX0JVSUxUSU5fVk1IQUREU0hTLAog
IEFMVElWRUNfQlVJTFRJTl9WTUhSQUREU0hTLAogIEFMVElWRUNfQlVJTFRJTl9WTUxBRERVSE0s
CiAgQUxUSVZFQ19CVUlMVElOX1ZNUkdIQiwKICBBTFRJVkVDX0JVSUxUSU5fVk1SR0hILAogIEFM
VElWRUNfQlVJTFRJTl9WTVJHSFcsCiAgQUxUSVZFQ19CVUlMVElOX1ZNUkdMQiwKICBBTFRJVkVD
X0JVSUxUSU5fVk1SR0xILAogIEFMVElWRUNfQlVJTFRJTl9WTVJHTFcsCiAgQUxUSVZFQ19CVUlM
VElOX1ZNU1VNVUJNLAogIEFMVElWRUNfQlVJTFRJTl9WTVNVTU1CTSwKICBBTFRJVkVDX0JVSUxU
SU5fVk1TVU1VSE0sCiAgQUxUSVZFQ19CVUlMVElOX1ZNU1VNU0hNLAogIEFMVElWRUNfQlVJTFRJ
Tl9WTVNVTVVIUywKICBBTFRJVkVDX0JVSUxUSU5fVk1TVU1TSFMsCiAgQUxUSVZFQ19CVUlMVElO
X1ZNSU5VQiwKICBBTFRJVkVDX0JVSUxUSU5fVk1JTlNCLAogIEFMVElWRUNfQlVJTFRJTl9WTUlO
VUgsCiAgQUxUSVZFQ19CVUlMVElOX1ZNSU5TSCwKICBBTFRJVkVDX0JVSUxUSU5fVk1JTlVXLAog
IEFMVElWRUNfQlVJTFRJTl9WTUlOU1csCiAgQUxUSVZFQ19CVUlMVElOX1ZNSU5GUCwKICBBTFRJ
VkVDX0JVSUxUSU5fVk1VTEVVQiwKICBBTFRJVkVDX0JVSUxUSU5fVk1VTEVTQiwKICBBTFRJVkVD
X0JVSUxUSU5fVk1VTEVVSCwKICBBTFRJVkVDX0JVSUxUSU5fVk1VTEVTSCwKICBBTFRJVkVDX0JV
SUxUSU5fVk1VTE9VQiwKICBBTFRJVkVDX0JVSUxUSU5fVk1VTE9TQiwKICBBTFRJVkVDX0JVSUxU
SU5fVk1VTE9VSCwKICBBTFRJVkVDX0JVSUxUSU5fVk1VTE9TSCwKICBBTFRJVkVDX0JVSUxUSU5f
Vk5NU1VCRlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZOT1IsCiAgQUxUSVZFQ19CVUlMVElOX1ZPUiwK
ICBBTFRJVkVDX0JVSUxUSU5fVlNFTF80U0ksCiAgQUxUSVZFQ19CVUlMVElOX1ZTRUxfNFNGLAog
IEFMVElWRUNfQlVJTFRJTl9WU0VMXzhISSwKICBBTFRJVkVDX0JVSUxUSU5fVlNFTF8xNlFJLAog
IEFMVElWRUNfQlVJTFRJTl9WUEVSTV80U0ksCiAgQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzRTRiwK
ICBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fOEhJLAogIEFMVElWRUNfQlVJTFRJTl9WUEVSTV8xNlFJ
LAogIEFMVElWRUNfQlVJTFRJTl9WUEtVSFVNLAogIEFMVElWRUNfQlVJTFRJTl9WUEtVV1VNLAog
IEFMVElWRUNfQlVJTFRJTl9WUEtQWCwKICBBTFRJVkVDX0JVSUxUSU5fVlBLVUhTUywKICBBTFRJ
VkVDX0JVSUxUSU5fVlBLU0hTUywKICBBTFRJVkVDX0JVSUxUSU5fVlBLVVdTUywKICBBTFRJVkVD
X0JVSUxUSU5fVlBLU1dTUywKICBBTFRJVkVDX0JVSUxUSU5fVlBLVUhVUywKICBBTFRJVkVDX0JV
SUxUSU5fVlBLU0hVUywKICBBTFRJVkVDX0JVSUxUSU5fVlBLVVdVUywKICBBTFRJVkVDX0JVSUxU
SU5fVlBLU1dVUywKICBBTFRJVkVDX0JVSUxUSU5fVlJFRlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZS
RklNLAogIEFMVElWRUNfQlVJTFRJTl9WUkZJTiwKICBBTFRJVkVDX0JVSUxUSU5fVlJGSVAsCiAg
QUxUSVZFQ19CVUlMVElOX1ZSRklaLAogIEFMVElWRUNfQlVJTFRJTl9WUkxCLAogIEFMVElWRUNf
QlVJTFRJTl9WUkxILAogIEFMVElWRUNfQlVJTFRJTl9WUkxXLAogIEFMVElWRUNfQlVJTFRJTl9W
UlNRUlRFRlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZTTEIsCiAgQUxUSVZFQ19CVUlMVElOX1ZTTEgs
CiAgQUxUSVZFQ19CVUlMVElOX1ZTTFcsCiAgQUxUSVZFQ19CVUlMVElOX1ZTTCwKICBBTFRJVkVD
X0JVSUxUSU5fVlNMTywKICBBTFRJVkVDX0JVSUxUSU5fVlNQTFRCLAogIEFMVElWRUNfQlVJTFRJ
Tl9WU1BMVEgsCiAgQUxUSVZFQ19CVUlMVElOX1ZTUExUVywKICBBTFRJVkVDX0JVSUxUSU5fVlNQ
TFRJU0IsCiAgQUxUSVZFQ19CVUlMVElOX1ZTUExUSVNILAogIEFMVElWRUNfQlVJTFRJTl9WU1BM
VElTVywKICBBTFRJVkVDX0JVSUxUSU5fVlNSQiwKICBBTFRJVkVDX0JVSUxUSU5fVlNSSCwKICBB
TFRJVkVDX0JVSUxUSU5fVlNSVywKICBBTFRJVkVDX0JVSUxUSU5fVlNSQUIsCiAgQUxUSVZFQ19C
VUlMVElOX1ZTUkFILAogIEFMVElWRUNfQlVJTFRJTl9WU1JBVywKICBBTFRJVkVDX0JVSUxUSU5f
VlNSLAogIEFMVElWRUNfQlVJTFRJTl9WU1JPLAogIEFMVElWRUNfQlVJTFRJTl9WU1VCVUJNLAog
IEFMVElWRUNfQlVJTFRJTl9WU1VCVUhNLAogIEFMVElWRUNfQlVJTFRJTl9WU1VCVVdNLAogIEFM
VElWRUNfQlVJTFRJTl9WU1VCRlAsCiAgQUxUSVZFQ19CVUlMVElOX1ZTVUJDVVcsCiAgQUxUSVZF
Q19CVUlMVElOX1ZTVUJVQlMsCiAgQUxUSVZFQ19CVUlMVElOX1ZTVUJTQlMsCiAgQUxUSVZFQ19C
VUlMVElOX1ZTVUJVSFMsCiAgQUxUSVZFQ19CVUlMVElOX1ZTVUJTSFMsCiAgQUxUSVZFQ19CVUlM
VElOX1ZTVUJVV1MsCiAgQUxUSVZFQ19CVUlMVElOX1ZTVUJTV1MsCiAgQUxUSVZFQ19CVUlMVElO
X1ZTVU00VUJTLAogIEFMVElWRUNfQlVJTFRJTl9WU1VNNFNCUywKICBBTFRJVkVDX0JVSUxUSU5f
VlNVTTRTSFMsCiAgQUxUSVZFQ19CVUlMVElOX1ZTVU0yU1dTLAogIEFMVElWRUNfQlVJTFRJTl9W
U1VNU1dTLAogIEFMVElWRUNfQlVJTFRJTl9WWE9SLAogIEFMVElWRUNfQlVJTFRJTl9WU0xET0lf
MTZRSSwKICBBTFRJVkVDX0JVSUxUSU5fVlNMRE9JXzhISSwKICBBTFRJVkVDX0JVSUxUSU5fVlNM
RE9JXzRTSSwKICBBTFRJVkVDX0JVSUxUSU5fVlNMRE9JXzRTRiwKICBBTFRJVkVDX0JVSUxUSU5f
VlVQS0hTQiwKICBBTFRJVkVDX0JVSUxUSU5fVlVQS0hQWCwKICBBTFRJVkVDX0JVSUxUSU5fVlVQ
S0hTSCwKICBBTFRJVkVDX0JVSUxUSU5fVlVQS0xTQiwKICBBTFRJVkVDX0JVSUxUSU5fVlVQS0xQ
WCwKICBBTFRJVkVDX0JVSUxUSU5fVlVQS0xTSCwKICBBTFRJVkVDX0JVSUxUSU5fTVRWU0NSLAog
IEFMVElWRUNfQlVJTFRJTl9NRlZTQ1IsCiAgQUxUSVZFQ19CVUlMVElOX0RTU0FMTCwKICBBTFRJ
VkVDX0JVSUxUSU5fRFNTLAogIEFMVElWRUNfQlVJTFRJTl9MVlNMLAogIEFMVElWRUNfQlVJTFRJ
Tl9MVlNSLAogIEFMVElWRUNfQlVJTFRJTl9EU1RULAogIEFMVElWRUNfQlVJTFRJTl9EU1RTVCwK
ICBBTFRJVkVDX0JVSUxUSU5fRFNUU1RULAogIEFMVElWRUNfQlVJTFRJTl9EU1QsCiAgQUxUSVZF
Q19CVUlMVElOX0xWRUJYLAogIEFMVElWRUNfQlVJTFRJTl9MVkVIWCwKICBBTFRJVkVDX0JVSUxU
SU5fTFZFV1gsCiAgQUxUSVZFQ19CVUlMVElOX0xWWEwsCiAgQUxUSVZFQ19CVUlMVElOX0xWWCwK
ICBBTFRJVkVDX0JVSUxUSU5fU1RWWCwKICBBTFRJVkVDX0JVSUxUSU5fU1RWRUJYLAogIEFMVElW
RUNfQlVJTFRJTl9TVFZFSFgsCiAgQUxUSVZFQ19CVUlMVElOX1NUVkVXWCwKICBBTFRJVkVDX0JV
SUxUSU5fU1RWWEwsCiAgQUxUSVZFQ19CVUlMVElOX1ZDTVBCRlBfUCwKICBBTFRJVkVDX0JVSUxU
SU5fVkNNUEVRRlBfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEVRVUJfUCwKICBBTFRJVkVDX0JV
SUxUSU5fVkNNUEVRVUhfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEVRVVdfUCwKICBBTFRJVkVD
X0JVSUxUSU5fVkNNUEdFRlBfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdURlBfUCwKICBBTFRJ
VkVDX0JVSUxUSU5fVkNNUEdUU0JfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUU0hfUCwKICBB
TFRJVkVDX0JVSUxUSU5fVkNNUEdUU1dfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVUJfUCwK
ICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVUhfUCwKICBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVVdf
UCwKICBBTFRJVkVDX0JVSUxUSU5fQUJTU19WNFNJLAogIEFMVElWRUNfQlVJTFRJTl9BQlNTX1Y4
SEksCiAgQUxUSVZFQ19CVUlMVElOX0FCU1NfVjE2UUksCiAgQUxUSVZFQ19CVUlMVElOX0FCU19W
NFNJLAogIEFMVElWRUNfQlVJTFRJTl9BQlNfVjRTRiwKICBBTFRJVkVDX0JVSUxUSU5fQUJTX1Y4
SEksCiAgQUxUSVZFQ19CVUlMVElOX0FCU19WMTZRSQp9OwojIDE2ICJ0Y29uZmlnLmgiIDIKIyAx
ICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2NvbmZpZy9yczYwMDAvYWl4LmgiIDEKIyAxNyAidGNvbmZp
Zy5oIiAyCiMgMSAiLi4vLi4vZ2NjLTMuMi4yL2djYy9jb25maWcvcnM2MDAwL2FpeDUxLmgiIDEK
IyAxOCAidGNvbmZpZy5oIiAyCiMgMSAiLi4vLi4vZ2NjLTMuMi4yL2djYy9jb25maWcvcnM2MDAw
L3hjb2ZmLmgiIDEKIyAxOSAidGNvbmZpZy5oIiAyCiMgMSAiLi4vLi4vZ2NjLTMuMi4yL2djYy9k
ZWZhdWx0cy5oIiAxCiMgMjAgInRjb25maWcuaCIgMgojIDM3ICIuLi8uLi9nY2MtMy4yLjIvZ2Nj
L2xpYmdjYzIuYyIgMgojIDEgIi4uLy4uL2djYy0zLjIuMi9nY2MvdHN5c3RlbS5oIiAxCiMgMzcg
Ii4uLy4uL2djYy0zLjIuMi9nY2MvdHN5c3RlbS5oIgojIDEgImluY2x1ZGUvc3RkZGVmLmgiIDEg
MyA0CiMgMTUxICJpbmNsdWRlL3N0ZGRlZi5oIiAzIDQKdHlwZWRlZiBsb25nIGludCBwdHJkaWZm
X3Q7CiMgMjEzICJpbmNsdWRlL3N0ZGRlZi5oIiAzIDQKdHlwZWRlZiBsb25nIHVuc2lnbmVkIGlu
dCBzaXplX3Q7CiMgMzI1ICJpbmNsdWRlL3N0ZGRlZi5oIiAzIDQKdHlwZWRlZiBzaG9ydCB1bnNp
Z25lZCBpbnQgd2NoYXJfdDsKIyAzOCAiLi4vLi4vZ2NjLTMuMi4yL2djYy90c3lzdGVtLmgiIDIK
IyA2MCAiLi4vLi4vZ2NjLTMuMi4yL2djYy90c3lzdGVtLmgiCiMgMSAiaW5jbHVkZS9zdGRhcmcu
aCIgMSAzIDQKIyA0MyAiaW5jbHVkZS9zdGRhcmcuaCIgMyA0CnR5cGVkZWYgX19idWlsdGluX3Zh
X2xpc3QgX19nbnVjX3ZhX2xpc3Q7CiMgMTEwICJpbmNsdWRlL3N0ZGFyZy5oIiAzIDQKdHlwZWRl
ZiBfX2dudWNfdmFfbGlzdCB2YV9saXN0OwojIDYxICIuLi8uLi9nY2MtMy4yLjIvZ2NjL3RzeXN0
ZW0uaCIgMgoKCiMgMSAiaW5jbHVkZS9zdGRpby5oIiAxIDMgNAojIDU3ICJpbmNsdWRlL3N0ZGlv
LmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zdGFuZGFyZHMuaCIgMSAzIDQKIyA1OCAiaW5jbHVk
ZS9zdGRpby5oIiAyIDMgNAojIDk2ICJpbmNsdWRlL3N0ZGlvLmgiIDMgNAp0eXBlZGVmIGxvbmcg
ZnBvc190OwoKCgp0eXBlZGVmIGxvbmcgbG9uZyBmcG9zNjRfdDsKIyAxNjUgImluY2x1ZGUvc3Rk
aW8uaCIgMyA0CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBjaGFyICpfcHRyOwog
ICAgICAgIGludCBfY250OwogICAgICAgIHVuc2lnbmVkIGNoYXIgKl9iYXNlOwogICAgICAgIHVu
c2lnbmVkIGNoYXIgKl9idWZlbmRwOwogICAgICAgIHNob3J0IF9mbGFnOwogICAgICAgIHNob3J0
IF9maWxlOwogICAgICAgIGludCBfX3N0ZGlvaWQ7CiAgICAgICAgY2hhciAqX19uZXdiYXNlOwog
ICAgICAgIHZvaWQgKl9sb2NrOwp9IEZJTEU7CgoKCgoKZXh0ZXJuIEZJTEUgX2lvYlsxNl07CiMg
MTk0ICJpbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gc2l6ZV90IGZyZWFkKHZvaWQgKiwgc2l6
ZV90LCBzaXplX3QsIEZJTEUgKik7CmV4dGVybiBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKiwg
c2l6ZV90LCBzaXplX3QsRklMRSAqKTsKCgoKIyAxICIvdXNyL2luY2x1ZGUvdmFfbGlzdC5oIiAx
IDMgNAojIDIwMCAiaW5jbHVkZS9zdGRpby5oIiAyIDMgNAoKCgoKCmV4dGVybiBpbnQgdnNjYW5m
KGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwpleHRlcm4gaW50IHZmc2NhbmYoRklMRSAq
LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKZXh0ZXJuIGludCB2c3NjYW5mKGNvbnN0
IGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CiMgMjU2ICJpbmNsdWRlL3N0
ZGlvLmgiIDMgNApleHRlcm4gaW50IF9fZmxzYnVmKHVuc2lnbmVkIGNoYXIsIEZJTEUgKik7CmV4
dGVybiBpbnQgX19maWxidWYoRklMRSAqKTsKZXh0ZXJuIGludCBmZXJyb3IoRklMRSAqKTsKZXh0
ZXJuIGludCBmZW9mKEZJTEUgKik7CmV4dGVybiB2b2lkIGNsZWFyZXJyKEZJTEUgKik7CmV4dGVy
biBpbnQgcHV0Y2hhcihpbnQpOwpleHRlcm4gaW50IGdldGNoYXIodm9pZCk7CmV4dGVybiBpbnQg
cHV0YyhpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQgZ2V0YyhGSUxFICopOwpleHRlcm4gaW50IHJl
bW92ZShjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHJlbmFtZShjb25zdCBjaGFyICosIGNvbnN0
IGNoYXIgKik7CmV4dGVybiBGSUxFICp0bXBmaWxlKHZvaWQpOwpleHRlcm4gY2hhciAqdG1wbmFt
KGNoYXIgKik7CmV4dGVybiBpbnQgZmNsb3NlKEZJTEUgKik7CmV4dGVybiBpbnQgZmZsdXNoKEZJ
TEUgKik7CmV4dGVybiBGSUxFICogZm9wZW4oY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpl
eHRlcm4gRklMRSAqIGZyZW9wZW4oY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIEZJTEUgKik7
CmV4dGVybiB2b2lkIHNldGJ1ZihGSUxFICosIGNoYXIgKik7CmV4dGVybiBpbnQgc2V0dmJ1ZihG
SUxFICosIGNoYXIgKiwgaW50LCBzaXplX3QpOwpleHRlcm4gaW50IGZwcmludGYoRklMRSAqLCBj
b25zdCBjaGFyICosIC4uLik7CmV4dGVybiBpbnQgZnNjYW5mKEZJTEUgKiwgY29uc3QgY2hhciAq
LCAuLi4pOwpleHRlcm4gaW50IHByaW50Zihjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiBpbnQg
c2NhbmYoY29uc3QgY2hhciAqLCAuLi4pOwpleHRlcm4gaW50IHNwcmludGYoY2hhciAqLCBjb25z
dCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNucHJpbnRmKGNoYXIgKiwgc2l6ZV90LCBjb25z
dCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNzY2FuZihjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKiwgLi4uKTsKIyAyOTQgImluY2x1ZGUvc3RkaW8uaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRl
L3ZhX2xpc3QuaCIgMSAzIDQKIyAyOTUgImluY2x1ZGUvc3RkaW8uaCIgMiAzIDQKZXh0ZXJuIGlu
dCB2ZnByaW50ZihGSUxFICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwpleHRlcm4g
aW50IHZwcmludGYoY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CmV4dGVybiBpbnQgdnNw
cmludGYoY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsKCmV4dGVybiBpbnQg
dnNucHJpbnRmKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsK
CgoKZXh0ZXJuIGludCBmZ2V0YyhGSUxFICopOwpleHRlcm4gY2hhciAqIGZnZXRzKGNoYXIgKiwg
aW50LCBGSUxFICopOwpleHRlcm4gaW50IGZwdXRjKGludCwgRklMRSAqKTsKZXh0ZXJuIGludCBm
cHV0cyhjb25zdCBjaGFyICosIEZJTEUgKik7CmV4dGVybiBjaGFyICpnZXRzKGNoYXIgKik7CmV4
dGVybiBpbnQgcHV0cyhjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHVuZ2V0YyhpbnQsIEZJTEUg
Kik7CmV4dGVybiBpbnQgZmdldHBvcyhGSUxFICosIGZwb3NfdCAqKTsKZXh0ZXJuIGludCBmc2Vl
ayhGSUxFICosIGxvbmcgaW50LCBpbnQpOwpleHRlcm4gaW50IGZzZXRwb3MoRklMRSAqLCBjb25z
dCBmcG9zX3QgKik7CmV4dGVybiBsb25nIGZ0ZWxsKEZJTEUgKik7CmV4dGVybiB2b2lkIHJld2lu
ZChGSUxFICopOwpleHRlcm4gdm9pZCBwZXJyb3IoY29uc3QgY2hhciAqKTsKCgoKCgpleHRlcm4g
aW50IGdldGNfdW5sb2NrZWQoRklMRSAqKTsKZXh0ZXJuIGludCBnZXRjaGFyX3VubG9ja2VkKHZv
aWQpOwpleHRlcm4gaW50IHB1dGNfdW5sb2NrZWQoaW50LCBGSUxFICopOwpleHRlcm4gaW50IHB1
dGNoYXJfdW5sb2NrZWQoaW50KTsKIyA0MTMgImluY2x1ZGUvc3RkaW8uaCIgMyA0CiMgMSAiaW5j
bHVkZS9zeXMvdHlwZXMuaCIgMSAzIDQKIyA2NCAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CiMg
MSAiaW5jbHVkZS9zeXMvaW50dHlwZXMuaCIgMSAzIDQKIyA3MSAiaW5jbHVkZS9zeXMvaW50dHlw
ZXMuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGludC5oIiAxIDMgNAojIDQyICIvdXNyL2lu
Y2x1ZGUvc3RkaW50LmgiIDMgNAp0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsKdHlwZWRlZiBz
aWduZWQgc2hvcnQgaW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IGludDMyX3Q7CgoKCgp0eXBl
ZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50NjRfdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVp
bnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdWludDE2X3Q7CnR5cGVkZWYgdW5zaWduZWQg
aW50IHVpbnQzMl90OwoKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWludDY0X3Q7CiMg
NjkgIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0CnR5cGVkZWYgaW50NjRfdCBpbnRtYXhfdDsK
dHlwZWRlZiB1aW50NjRfdCB1aW50bWF4X3Q7CiMgODEgIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIg
MyA0CnR5cGVkZWYgc2lnbmVkIGxvbmcgaW50cHRyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyB1
aW50cHRyX3Q7CgoKCgoKdHlwZWRlZiBzaWduZWQgY2hhciBpbnRfbGVhc3Q4X3Q7CnR5cGVkZWYg
c2lnbmVkIHNob3J0IGludF9sZWFzdDE2X3Q7CnR5cGVkZWYgc2lnbmVkIGludCBpbnRfbGVhc3Qz
Ml90OwoKCgoKdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludF9sZWFzdDY0X3Q7CgoKCnR5cGVk
ZWYgdW5zaWduZWQgY2hhciB1aW50X2xlYXN0OF90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVp
bnRfbGVhc3QxNl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2xlYXN0MzJfdDsKCgoKCnR5
cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVpbnRfbGVhc3Q2NF90OwoKCgoKCgoKdHlwZWRlZiBz
aWduZWQgY2hhciBpbnRfZmFzdDhfdDsKdHlwZWRlZiBpbnQzMl90IGludF9mYXN0MTZfdDsKdHlw
ZWRlZiBpbnQzMl90IGludF9mYXN0MzJfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVpbnRfZmFz
dDhfdDsKdHlwZWRlZiB1aW50MzJfdCB1aW50X2Zhc3QxNl90Owp0eXBlZGVmIHVpbnQzMl90IHVp
bnRfZmFzdDMyX3Q7Cgp0eXBlZGVmIGludDY0X3QgaW50X2Zhc3Q2NF90Owp0eXBlZGVmIHVpbnQ2
NF90IHVpbnRfZmFzdDY0X3Q7CiMgNzIgImluY2x1ZGUvc3lzL2ludHR5cGVzLmgiIDIgMyA0CgoK
Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgaW50bWF4X3QgcXVvdDsKICAgICAgICBpbnRtYXhf
dCByZW07Cn0gaW1heGRpdl90OwojIDEwMCAiaW5jbHVkZS9zeXMvaW50dHlwZXMuaCIgMyA0CmV4
dGVybiBpbnRtYXhfdCBpbWF4YWJzKGludG1heF90KTsKZXh0ZXJuIGltYXhkaXZfdCBpbWF4ZGl2
IChpbnRtYXhfdCwgaW50bWF4X3QpOwpleHRlcm4gaW50bWF4X3QgX3N0cnRvbGxtYXgoY29uc3Qg
Y2hhciAqICwgY2hhciAqKiAsIGludCk7CmV4dGVybiB1aW50bWF4X3Qgc3RydG91bWF4KGNvbnN0
IGNoYXIgKiAsIGNoYXIgKiogLCBpbnQpOwojIDExNyAiaW5jbHVkZS9zeXMvaW50dHlwZXMuaCIg
MyA0CmV4dGVybiBpbnRtYXhfdCB3Y3N0b2ltYXgoY29uc3Qgd2NoYXJfdCAqICwgd2NoYXJfdCAq
KiAsIGludCApOwpleHRlcm4gdWludG1heF90IHdjc3RvdW1heChjb25zdCB3Y2hhcl90ICogLCB3
Y2hhcl90ICoqICwgaW50KTsKIyAxMzQgImluY2x1ZGUvc3lzL2ludHR5cGVzLmgiIDMgNAp0eXBl
ZGVmIGludDMyX3QgaW50ZmFzdF90Owp0eXBlZGVmIHVpbnQzMl90IHVpbnRmYXN0X3Q7CiMgNTg0
ICJpbmNsdWRlL3N5cy9pbnR0eXBlcy5oIiAzIDQKdHlwZWRlZiBzaWduZWQgbG9uZyBfX2xvbmcz
Ml90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX191bG9uZzMyX3Q7CiMgNTk2ICJpbmNsdWRlL3N5
cy9pbnR0eXBlcy5oIiAzIDQKdHlwZWRlZiBzaWduZWQgaW50IF9fbG9uZzY0X3Q7CnR5cGVkZWYg
dW5zaWduZWQgaW50IF9fdWxvbmc2NF90OwojIDYwOCAiaW5jbHVkZS9zeXMvaW50dHlwZXMuaCIg
MyA0CnR5cGVkZWYgc2lnbmVkIGludCBpbnQzMmxvbmc2NF90Owp0eXBlZGVmIHVuc2lnbmVkIGlu
dCB1aW50MzJsb25nNjRfdDsKIyA2MjEgImluY2x1ZGUvc3lzL2ludHR5cGVzLmgiIDMgNAp0eXBl
ZGVmIHNpZ25lZCBsb25nIGxvbmczMmludDY0X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyB1bG9u
ZzMyaW50NjRfdDsKIyA2MzEgImluY2x1ZGUvc3lzL2ludHR5cGVzLmgiIDMgNAp0eXBlZGVmIHNp
Z25lZCBjaGFyIGludDg7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGludDE2Owp0eXBlZGVmIHNpZ25l
ZCBpbnQgaW50MzI7CgoKCgp0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50NjQ7CgoKCnR5cGVk
ZWYgdW5zaWduZWQgY2hhciB1X2ludDg7CnR5cGVkZWYgdW5zaWduZWQgY2hhciB1X2ludDhfdDsK
dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1X2ludDE2Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVf
aW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQzMjsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdV9pbnQzMl90OwoKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVfaW50NjQ7CnR5
cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVfaW50NjRfdDsKIyA2NSAiaW5jbHVkZS9zeXMvdHlw
ZXMuaCIgMiAzIDQKIyAxMTkgImluY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIHVuc2ln
bmVkIGludCB3Y3R5cGVfdDsKIyAxNDUgImluY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVm
IGludCB0aW1lX3Q7CgoKCgoKCnR5cGVkZWYgaW50IGNsb2NrX3Q7CiMgMTcwICJpbmNsdWRlL3N5
cy90eXBlcy5oIiAzIDQKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyX3Q7CnR5cGVkZWYgdW5z
aWduZWQgc2hvcnQgdXNob3J0X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfdDsKdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIHVsb25nX3Q7CnR5cGVkZWYgc2lnbmVkIGxvbmcgc3NpemVfdDsKCgoK
CnR5cGVkZWYgaW50IGxldmVsX3Q7CnR5cGVkZWYgX19sb25nNjRfdCBkYWRkcl90Owp0eXBlZGVm
IGludCBkYWRkcjMyX3Q7Cgp0eXBlZGVmIGludDY0X3QgZGFkZHI2NF90OwoKdHlwZWRlZiBjaGFy
ICogY2FkZHJfdDsKdHlwZWRlZiBfX3Vsb25nNjRfdCBpbm9fdDsKdHlwZWRlZiB1aW50X3QgaW5v
MzJfdDsKCnR5cGVkZWYgdWludDY0X3QgaW5vNjRfdDsKCnR5cGVkZWYgc2hvcnQgY250X3Q7CgoK
Cgp0eXBlZGVmIF9fdWxvbmc2NF90IGRldl90OwoKdHlwZWRlZiB1aW50X3QgZGV2MzJfdDsKCnR5
cGVkZWYgdWludDY0X3QgZGV2NjRfdDsKCnR5cGVkZWYgaW50IGNoYW5fdDsKdHlwZWRlZiBpbnQg
dGltZTMyX3Q7CnR5cGVkZWYgaW50IHBpZDMyX3Q7CnR5cGVkZWYgaW50IHRpZDMyX3Q7Cgp0eXBl
ZGVmIHVpbnQ2NF90IHBpZDY0X3Q7CnR5cGVkZWYgdWludDY0X3QgdGlkNjRfdDsKdHlwZWRlZiB1
aW50NjRfdCB0aW1lNjRfdDsKCgoKCgoKCnR5cGVkZWYgdm9pZCAqIF9fcHRyMzI7CnR5cGVkZWYg
Y2hhciAqIF9fY3B0cjMyOwoKCnR5cGVkZWYgaW50IHNvZmZfdDsKCgoKCnR5cGVkZWYgbG9uZyBv
ZmZfdDsKCgoKdHlwZWRlZiBsb25nIGxvbmcgb2ZmNjRfdDsKCgp0eXBlZGVmIGxvbmcgcGFkZHJf
dDsKdHlwZWRlZiBpbnQzMmxvbmc2NF90IGtleV90Owp0eXBlZGVmIF9fbG9uZzY0X3QgdGltZXJf
dDsKdHlwZWRlZiBpbnQgdGltZXIzMl90OwoKdHlwZWRlZiBpbnQ2NF90IHRpbWVyNjRfdDsKCnR5
cGVkZWYgc2hvcnQgbmxpbmtfdDsKdHlwZWRlZiB1aW50X3QgbW9kZV90Owp0eXBlZGVmIHVpbnRf
dCB1aWRfdDsKdHlwZWRlZiB1aW50X3QgZ2lkX3Q7CnR5cGVkZWYgX19wdHIzMiBtaWRfdDsKdHlw
ZWRlZiBpbnQzMmxvbmc2NF90IHBpZF90Owp0eXBlZGVmIF9fbG9uZzY0X3QgdGlkX3Q7CnR5cGVk
ZWYgY2hhciBzbGFiX3RbMTJdOwp0eXBlZGVmIGxvbmcgbXR5cF90Owp0eXBlZGVmIGludCBib29s
ZWFuX3Q7CnR5cGVkZWYgaW50IGNyaWRfdDsKCgoKCgp0eXBlZGVmIF9fbG9uZzY0X3QgYmxrY250
X3Q7CgoKCgoKdHlwZWRlZiBfX2xvbmc2NF90IGJsa3NpemVfdDsKCgoKCnR5cGVkZWYgaW50IGJs
a2NudDMyX3Q7CnR5cGVkZWYgaW50IGJsa3NpemUzMl90OwoKdHlwZWRlZiB1aW50NjRfdCBibGtj
bnQ2NF90Owp0eXBlZGVmIHVpbnQ2NF90IGJsa3NpemU2NF90OwoKCgp0eXBlZGVmIHVsb25nX3Qg
ZnNibGtjbnRfdDsKdHlwZWRlZiB1bG9uZ190IGZzZmlsY250X3Q7CgoKCiAgICAgICAgdHlwZWRl
ZiBpbnQgd2ludF90OwoKCgp0eXBlZGVmIHVpbnQzMmxvbmc2NF90IGlkX3Q7CnR5cGVkZWYgdW5z
aWduZWQgaW50IHVzZWNvbmRzX3Q7CnR5cGVkZWYgc2lnbmVkIGludCBzdXNlY29uZHNfdDsKdHlw
ZWRlZiBpbnQgY2xvY2tpZF90OwoKCgoKdHlwZWRlZiBzdHJ1Y3Qgc2lnc2V0X3QgewojIDMwMSAi
aW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CiAgICAgICAgdW5zaWduZWQgaW50IGxvc2lnczsKICAg
ICAgICB1bnNpZ25lZCBpbnQgaGlzaWdzOwoKCgoKCn0gc2lnc2V0X3Q7Cgp0eXBlZGVmIHN0cnVj
dCB7CgogICAgICAgIHVuc2lnbmVkIGludCBsb3NpZ3MsIGhpc2lnczsKCgoKfSBzaWdzZXQzMl90
OwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB1aW50NjRfdCBzc19zZXRbNF07Cn0gc2lnc2V0
NjRfdDsKIyAzMzAgImluY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIGludCBzaWduYWxf
dDsKCgoKCnR5cGVkZWYgc3RydWN0IGZzaWRfdCB7CgoKCgogICAgICAgIHVuc2lnbmVkIGludCB2
YWxbMl07CgoKCgp9IGZzaWRfdDsKCgoKCgoKCnR5cGVkZWYgc3RydWN0IGZzaWQ2NF90IHsKCiAg
ICAgICAgdWludDY0X3QgdmFsWzJdOwoKCgp9IGZzaWQ2NF90OwoKdHlwZWRlZiB2b2lkICpwdGhy
ZWFkX2F0dHJfdDsKdHlwZWRlZiB2b2lkICpwdGhyZWFkX2NvbmRhdHRyX3Q7CnR5cGVkZWYgdm9p
ZCAqcHRocmVhZF9tdXRleGF0dHJfdDsKCgp0eXBlZGVmIHZvaWQgKnB0aHJlYWRfcndsb2NrYXR0
cl90OwoKCnR5cGVkZWYgdW5zaWduZWQgaW50IHB0aHJlYWRfdDsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgcHRocmVhZF9rZXlfdDsKCnR5cGVkZWYgc3RydWN0CnsKCgoKICAgICAgICBpbnQgX19tdF93
b3JkWzEzXTsKCn0KcHRocmVhZF9tdXRleF90OwoKdHlwZWRlZiBzdHJ1Y3QKewoKCgogICAgICAg
IGludCBfX2N2X3dvcmRbMTFdOwoKfQpwdGhyZWFkX2NvbmRfdDsKCnR5cGVkZWYgc3RydWN0CnsK
CgoKICAgICAgICBpbnQgX19vbl93b3JkWzI4XTsKCn0KcHRocmVhZF9vbmNlX3Q7CgoKdHlwZWRl
ZiBzdHJ1Y3QKewoKCgogICAgICAgIGludCBfX3J3X3dvcmRbNTJdOwoKfQpwdGhyZWFkX3J3bG9j
a190OwoKCgoKCgp0eXBlZGVmIHN0cnVjdCBfcXVhZCB7IGludCB2YWxbMl07IH0gcXVhZDsKCgoK
IyAxICIvdXNyL2luY2x1ZGUvc3lzL21fdHlwZXMuaCIgMSAzIDQKIyA0MCAiL3Vzci9pbmNsdWRl
L3N5cy9tX3R5cGVzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvdm1fdHlwZXMuaCIgMSAz
IDQKIyAzNSAiL3Vzci9pbmNsdWRlL3N5cy92bV90eXBlcy5oIiAzIDQKdHlwZWRlZiBsb25nIHZt
aWRfdDsKdHlwZWRlZiB1bG9uZ190IHZtaGFuZGxlX3Q7CgoKCgoKdHlwZWRlZiBpbnQgdm1pZDMy
X3Q7CnR5cGVkZWYgdWludF90IHZtaGFuZGxlMzJfdDsKCgoKCgoKCnR5cGVkZWYgbG9uZzMyaW50
NjRfdCBrdm1pZF90Owp0eXBlZGVmIHVsb25nMzJpbnQ2NF90IGt2bWhhbmRsZV90OwojIDYxICIv
dXNyL2luY2x1ZGUvc3lzL3ZtX3R5cGVzLmgiIDMgNAp0eXBlZGVmIGxvbmcgbG9uZyB2bWlkNjRf
dDsKdHlwZWRlZiBsb25nIGxvbmcgcnBuNjRfdDsKdHlwZWRlZiBsb25nIGxvbmcgY250NjRfdDsK
CgoKCgoKdHlwZWRlZiBpbnQzMmxvbmc2NF90IHZtaWR4X3Q7CnR5cGVkZWYgaW50MzJsb25nNjRf
dCB2bWtleV90Owp0eXBlZGVmIGludDMybG9uZzY0X3Qgdm1od2tleV90Owp0eXBlZGVmIGludDMy
bG9uZzY0X3QgdnBuX3Q7CnR5cGVkZWYgaW50MzJsb25nNjRfdCBycG5fdDsKCnR5cGVkZWYgdW5z
aWduZWQgbG9uZyBwdGV4X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBzd2hhdHhfdDsKCnR5cGVk
ZWYgdWludDMybG9uZzY0X3QgZXNpZF90OwoKCgoKdHlwZWRlZiB1c2hvcnRfdCBhcHR4X3Q7CgoK
dHlwZWRlZiBpbnQgcGR0eF90OwoKdHlwZWRlZiBpbnQgdW5pZHhfdDsKdHlwZWRlZiBpbnQgc25p
ZHhfdDsKdHlwZWRlZiBpbnQgdm1ub2RlaWR4X3Q7Cgp0eXBlZGVmIGludCBrdnBuX3Q7CgogICB0
eXBlZGVmIGludCBrcnBuX3Q7Cgp0eXBlZGVmIGludDMybG9uZzY0X3Qgdm1zaXplX3Q7Cgp0eXBl
ZGVmIGludDMybG9uZzY0X3Qgdm1tX2xvY2tfdDsKCgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9u
ZyB1cmVnX3Q7CiMgMTI2ICIvdXNyL2luY2x1ZGUvc3lzL3ZtX3R5cGVzLmgiIDMgNAp0eXBlZGVm
IHN0cnVjdAoKdm1hZGRyX3QKCnsKCiAgICAgICAgdm1oYW5kbGVfdCBzcnZhbDsKICAgICAgICBj
YWRkcl90IG9mZnNldDsKCgoKCn0gdm1hZGRyX3Q7CgoKCnR5cGVkZWYgc3RydWN0CgphZHNwYWNl
X3QKCnsKCiAgICAgICAgdWxvbmczMmludDY0X3QgYWxsb2M7CiAgICAgICAgdm1oYW5kbGVfdCBz
cnZhbFsxNl07CgoKCgp9IGFkc3BhY2VfdDsKIyAxNzQgIi91c3IvaW5jbHVkZS9zeXMvdm1fdHlw
ZXMuaCIgMyA0CnR5cGVkZWYgZW51bSBfTVJfQVRUUl9UWVBFIHsKICBCYWRBdHRyID0gMCwKICBW
aXJ0QWRkciA9IDEKfSBNUl9BVFRSX1RZUEU7Cgp0eXBlZGVmIGVudW0gX01SX0xBQkVMX1RZUEUg
ewogIEJhZE1lbSA9IDAsCiAgRnJlZU1lbSA9IDEsCiAgSVBMQ0IgPSAyLAogIFJNQUxMT0MgPSAz
LAogIFBNX0hFQVAgPSA0LAogIFJUQVNfSEVBUCA9IDUsCiAgVENFX1RBQkxFID0gNiwKICBJT19T
UEFDRSA9IDcKfSBNUl9MQUJFTF9UWVBFOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBtcl9hZGRyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtcl9zaXpl
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgbXJfYXR0OwogICAgICAgIHVuc2lnbmVkIGNoYXIgbXJf
bGFiZWw7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbXJfbm9kZWlkOwogICAgICAgIGNoYXIgcmVz
ZXJ2ZWRbNF07Cn0gaXBsY2JfbWFwX3JlZ190OwojIDIzMCAiL3Vzci9pbmNsdWRlL3N5cy92bV90
eXBlcy5oIiAzIDQKdHlwZWRlZiB2bWhhbmRsZV90IHZtbHBnaGFuZGxlX3Q7CiMgNDEgIi91c3Iv
aW5jbHVkZS9zeXMvbV90eXBlcy5oIiAyIDMgNAoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgbGFiZWxf
dAp7CgogICAgICAgIHN0cnVjdCBsYWJlbF90ICpwcmV2OwogICAgICAgIHVsb25nX3QgaWFyOwog
ICAgICAgIHVsb25nX3Qgc3RhY2s7CiAgICAgICAgdWxvbmdfdCB0b2M7CiAgICAgICAgdWxvbmdf
dCBjcjsKICAgICAgICB1bG9uZ190IGludHByaTsKICAgICAgICB1bG9uZ190IHJlZ1sxOV07CiMg
NjcgIi91c3IvaW5jbHVkZS9zeXMvbV90eXBlcy5oIiAzIDQKfSBsYWJlbF90OwoKdHlwZWRlZiBp
bnQzMmxvbmc2NF90IGV4dF90OwojIDQyMyAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQKIyA0
NzEgImluY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBf
X3B0cjY0Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2NwdHI2NDsKCgoKCgoKdHlwZWRl
ZiB1c2hvcnRfdCBVbmlDaGFyOwp0eXBlZGVmIHVpbnRfdCBVVEYzMkNoYXI7CgoKCgp0eXBlZGVm
IHVjaGFyX3QgdWNoYXI7CnR5cGVkZWYgdXNob3J0X3QgdXNob3J0Owp0eXBlZGVmIHVpbnRfdCB1
aW50Owp0eXBlZGVmIHVsb25nX3QgdWxvbmc7Cgp0eXBlZGVmIHN0cnVjdCB7IGludCByWzFdOyB9
ICogcGh5c2Fkcl90Owp0eXBlZGVmIHBoeXNhZHJfdCBwaHlzYWRyOwoKCnR5cGVkZWYgdW5zaWdu
ZWQgY2hhciB1X2NoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdV9zaG9ydDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgdV9pbnQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyB1X2xvbmc7Cgp0eXBlZGVm
IGludCBzd2Jsa190OwoKCgoKc3RydWN0IHNpZ3NldCB7CgoKCiAgICAgICAgdW5zaWduZWQgaW50
IGxvc2lnczsKICAgICAgICB1bnNpZ25lZCBpbnQgaGlzaWdzOwoKfTsKCgpzdHJ1Y3QgZnNpZCB7
CgogICAgICAgIHVuc2lnbmVkIGludCB2YWxbMl07CgoKCn07CiMgNTI5ICJpbmNsdWRlL3N5cy90
eXBlcy5oIiAzIDQKc3RydWN0IGZpbGVpZCB7CiAgICAgICAgdWludF90IGZpZF9sZW47CiAgICAg
ICAgaW5vMzJfdCBmaWRfaW5vOwogICAgICAgIHVpbnRfdCBmaWRfZ2VuOwogICAgICAgIGNoYXIg
ZmlkX3hbMjAgLSAoc2l6ZW9mKGlubzMyX3QpICsgMikgLSBzaXplb2YodWludF90KV07Cn07CiMg
NTUwICJpbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKc3RydWN0IGZpZCB7CiAgICAgICAgdWludF90
IGZpZF9sZW47CiAgICAgICAgY2hhciBmaWRfZGF0YVsyMF07Cn07CnR5cGVkZWYgc3RydWN0IGZp
ZCBmaWRfdDsKCgpzdHJ1Y3QgZmhhbmRsZSB7CiAgICAgICAgY2hhciB4WzMyXTsKfTsKdHlwZWRl
ZiBzdHJ1Y3QgZmhhbmRsZSBmaGFuZGxlX3Q7CgpzdHJ1Y3QgZmlsZWhhbmRsZSB7CiAgICAgICAg
ZnNpZF90IGZoX2ZzaWQ7CiAgICAgICAgc3RydWN0IGZpbGVpZCBmaF9maWQ7Cn07CiMgNTc0ICJp
bmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKc3RydWN0IHVuaXF1ZV9pZCB7CiAgICAgICBfX3Vsb25n
MzJfdCB3b3JkMTsKICAgICAgIF9fdWxvbmczMl90IHdvcmQyOwogICAgICAgX191bG9uZzMyX3Qg
d29yZDM7CiAgICAgICBfX3Vsb25nMzJfdCB3b3JkNDsKfTsKdHlwZWRlZiBzdHJ1Y3QgdW5pcXVl
X2lkIHVuaXF1ZV9pZF90OwojIDYwNiAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5cGVkZWYg
bG9uZyBsb25nIG9mZnNldF90OwojIDYxNiAiaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0CnR5cGVk
ZWYgbG9uZyBsb25nIHNzaXplNjRfdDsKCgoKCgp0eXBlZGVmIGxvbmcgbG9uZyBsb25nbG9uZ190
Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1X2xvbmdsb25nX3Q7CgoKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgY2xhc3NfaWRfdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTY0
X3Q7CiMgNDE0ICJpbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CiMgNDI0ICJpbmNsdWRlL3N0ZGlvLmgi
IDMgNApleHRlcm4gaW50IGZpbGVubyhGSUxFICopOwpleHRlcm4gRklMRSAqZmRvcGVuKGludCxj
b25zdCBjaGFyICopOwpleHRlcm4gY2hhciAqY3Rlcm1pZChjaGFyICopOwoKZXh0ZXJuIHZvaWQg
ZmxvY2tmaWxlKEZJTEUgKik7CmV4dGVybiB2b2lkIGZ1bmxvY2tmaWxlKEZJTEUgKik7CmV4dGVy
biBpbnQgZnNlZWtvKEZJTEUgKiwgb2ZmX3QsIGludCk7CmV4dGVybiBvZmZfdCBmdGVsbG8oRklM
RSAqKTsKZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUoRklMRSAqKTsKZXh0ZXJuIHZvaWQgZnVubG9j
a2ZpbGUoRklMRSAqKTsKIyA0NDYgImluY2x1ZGUvc3RkaW8uaCIgMyA0CiMgMSAiL3Vzci9pbmNs
dWRlL3ZhX2xpc3QuaCIgMSAzIDQKIyA0NDcgImluY2x1ZGUvc3RkaW8uaCIgMiAzIDQKCmV4dGVy
biBjaGFyICpvcHRhcmc7CmV4dGVybiBpbnQgb3B0ZXJyOwpleHRlcm4gaW50IG9wdGluZDsKZXh0
ZXJuIGludCBvcHRvcHQ7CiMgNDY0ICJpbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGdl
dHcoRklMRSAqKTsKZXh0ZXJuIGludCBwdXR3KGludCwgRklMRSAqKTsKZXh0ZXJuIGNoYXIgKnRl
bXBuYW0oY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKTsKZXh0ZXJuIEZJTEUgKnBvcGVuKGNvbnN0
IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBwY2xvc2UoRklMRSAqKTsKZXh0ZXJu
IGludCBnZXRvcHQoaW50LCBjaGFyICogY29uc3QgW10sIGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGNo
YXIgKmN1c2VyaWQoY2hhciAqKTsKIyA0ODAgImluY2x1ZGUvc3RkaW8uaCIgMyA0CiMgMSAiL3Vz
ci9pbmNsdWRlL3N5cy9saW1pdHMuaCIgMSAzIDQKIyAyNjMgIi91c3IvaW5jbHVkZS9zeXMvbGlt
aXRzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9mbG9hdC5oIiAxIDMgNAojIDIzNSAiL3Vzci9p
bmNsdWRlL2Zsb2F0LmgiIDMgNAogICAgICAgIGV4dGVybiB1bnNpZ25lZCBpbnQgU0lORklOSVRZ
OwogICAgICAgIGV4dGVybiB1bnNpZ25lZCBpbnQgX0RCTElORlsyXTsKICAgICAgICBleHRlcm4g
dW5zaWduZWQgaW50IFNRTkFOOwogICAgICAgIGV4dGVybiB1bnNpZ25lZCBpbnQgRFFOQU5bMl07
CiAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGludCBTU05BTjsKICAgICAgICBleHRlcm4gdW5zaWdu
ZWQgaW50IERTTkFOWzJdOwojIDI2NiAiL3Vzci9pbmNsdWRlL2Zsb2F0LmgiIDMgNAp0eXBlZGVm
IHVuc2lnbmVkIHNob3J0IGZwcm5kX3Q7CiMgMjc1ICIvdXNyL2luY2x1ZGUvZmxvYXQuaCIgMyA0
CmZwcm5kX3QgZnBfcmVhZF9ybmQodm9pZCk7CmZwcm5kX3QgZnBfc3dhcF9ybmQoZnBybmRfdCBy
bmQpOwojIDI2NCAiL3Vzci9pbmNsdWRlL3N5cy9saW1pdHMuaCIgMiAzIDQKIyA0ODEgImluY2x1
ZGUvc3RkaW8uaCIgMiAzIDQKCgoKZXh0ZXJuIGludCBmZ2V0cG9zNjQoRklMRSAqLCBmcG9zNjRf
dCAqKTsKZXh0ZXJuIEZJTEUgKmZvcGVuNjQoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpl
eHRlcm4gRklMRSAqZnJlb3BlbjY0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBGSUxFICop
OwpleHRlcm4gaW50IGZzZWVrbzY0KEZJTEUgKiwgb2ZmNjRfdCwgaW50KTsKZXh0ZXJuIGludCBm
c2V0cG9zNjQoRklMRSAqLCBjb25zdCBmcG9zNjRfdCAqKTsKZXh0ZXJuIG9mZjY0X3QgZnRlbGxv
NjQoRklMRSAqKTsKCgoKCgoKZXh0ZXJuIHZvaWQgc2V0YnVmZmVyKEZJTEUgKiwgY2hhciAqLCBz
aXplX3QpOwpleHRlcm4gdm9pZCBzZXRsaW5lYnVmKEZJTEUgKik7CiMgNjQgIi4uLy4uL2djYy0z
LjIuMi9nY2MvdHN5c3RlbS5oIiAyCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMSAz
IDQKIyA2MiAiL3Vzci9pbmNsdWRlL2Vycm5vLmgiIDMgNApleHRlcm4gaW50IGVycm5vOwoKCgoK
CgoKZXh0ZXJuIGNoYXIgKnN5c19lcnJsaXN0W107CmV4dGVybiBpbnQgc3lzX25lcnI7CiMgNzAg
Ii4uLy4uL2djYy0zLjIuMi9nY2MvdHN5c3RlbS5oIiAyCgoKZXh0ZXJuIGludCBlcnJubzsKCgoK
IyAxICJpbmNsdWRlL3N0cmluZy5oIiAxIDMgNAojIDEwNCAiaW5jbHVkZS9zdHJpbmcuaCIgMyA0
CiAgICAgICAgZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsK
CiAgICAgICAgZXh0ZXJuIHZvaWQgKm1lbWNweSh2b2lkICogLCBjb25zdCB2b2lkICogLCBzaXpl
X3QpOwogICAgICAgIGV4dGVybiB2b2lkICptZW1zZXQodm9pZCAqLCBpbnQsIHNpemVfdCk7CiAg
ICAgICAgZXh0ZXJuIHNpemVfdCBzdHJjc3BuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsK
ICAgICAgICBleHRlcm4gc2l6ZV90IHN0cmxlbihjb25zdCBjaGFyICopOwogICAgICAgIGV4dGVy
biBzaXplX3Qgc3Ryc3BuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKIyAxNDcgImluY2x1
ZGUvc3RyaW5nLmgiIDMgNAogICAgICAgIGV4dGVybiBjaGFyICpzdHJjaHIoY29uc3QgY2hhciAq
LCBpbnQpOwogICAgICAgIGV4dGVybiBjaGFyICpzdHJwYnJrKGNvbnN0IGNoYXIgKiwgY29uc3Qg
Y2hhciAqKTsKICAgICAgICBleHRlcm4gY2hhciAqc3RycmNocihjb25zdCBjaGFyICosIGludCk7
CiAgICAgICAgZXh0ZXJuIGNoYXIgKnN0cnN0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7
CgoKICAgICAgICBleHRlcm4gdm9pZCAqbWVtbW92ZSh2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6
ZV90KTsKICAgICAgICBleHRlcm4gY2hhciAqc3RyY3B5KGNoYXIgKiAsIGNvbnN0IGNoYXIgKiAp
OwogICAgICAgIGV4dGVybiBjaGFyICpzdHJuY3B5KGNoYXIgKiAsIGNvbnN0IGNoYXIgKiAsIHNp
emVfdCk7CiAgICAgICAgZXh0ZXJuIGNoYXIgKnN0cmNhdChjaGFyICogLCBjb25zdCBjaGFyICog
KTsKICAgICAgICBleHRlcm4gY2hhciAqc3RybmNhdChjaGFyICogLCBjb25zdCBjaGFyICogLCBz
aXplX3QpOwogICAgICAgIGV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9p
ZCAqLHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCBzdHJjbXAoY29uc3QgY2hhciAqLCBjb25z
dCBjaGFyICopOwogICAgICAgIGV4dGVybiBpbnQgc3RybmNtcChjb25zdCBjaGFyICosY29uc3Qg
Y2hhciAqLHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCBzdHJuY29sbGVuKGNvbnN0IGNoYXIg
KiwgY29uc3QgaW50ICk7CiAgICAgICAgZXh0ZXJuIGNoYXIgKnN0cnRvayhjaGFyICogLCBjb25z
dCBjaGFyICogKTsKICAgICAgICBleHRlcm4gY2hhciAqc3RyZXJyb3IoaW50KTsKICAgICAgICBl
eHRlcm4gaW50IHN0cmNvbGwoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogICAgICAgIGV4
dGVybiBzaXplX3Qgc3RyeGZybShjaGFyICogLCBjb25zdCBjaGFyICogLCBzaXplX3QpOwogICAg
ICAgIGV4dGVybiBjaGFyICpzdHJ0b2tfcihjaGFyICosIGNvbnN0IGNoYXIgKiwgY2hhciAqKik7
CiMgMTgwICJpbmNsdWRlL3N0cmluZy5oIiAzIDQKICAgICAgICBleHRlcm4gdm9pZCAqbWVtY2Nw
eSh2b2lkICogLCBjb25zdCB2b2lkICogLCBpbnQsIHNpemVfdCk7CiMgMTg5ICJpbmNsdWRlL3N0
cmluZy5oIiAzIDQKZXh0ZXJuIGNoYXIgKnN0cmR1cChjb25zdCBjaGFyICopOwojIDI0MyAiaW5j
bHVkZS9zdHJpbmcuaCIgMyA0CiAgICAgICAgZXh0ZXJuIHdjaGFyX3QgKndjc2Nocihjb25zdCB3
Y2hhcl90ICosIHdjaGFyX3QpOwogICAgICAgIGV4dGVybiB3Y2hhcl90ICp3Y3NwYnJrKGNvbnN0
IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqKTsKICAgICAgICBleHRlcm4gd2NoYXJfdCAqd2Nz
cmNocihjb25zdCB3Y2hhcl90ICosIHdjaGFyX3QpOwoKICAgICAgICBleHRlcm4gY2hhciAqaW5k
ZXgoY29uc3QgY2hhciAqLCBpbnQpOwogICAgICAgIGV4dGVybiBjaGFyICpyaW5kZXgoY29uc3Qg
Y2hhciAqLCBpbnQpOwogICAgICAgIGV4dGVybiB2b2lkIHN3YWIoY29uc3Qgdm9pZCAqLCB2b2lk
ICosIHNzaXplX3QpOwogICAgICAgIGV4dGVybiB3Y2hhcl90ICp3Y3NjYXQod2NoYXJfdCAqLCBj
b25zdCB3Y2hhcl90ICopOwogICAgICAgIGV4dGVybiBpbnQgd2NzY21wKGNvbnN0IHdjaGFyX3Qg
KiwgY29uc3Qgd2NoYXJfdCAqKTsKICAgICAgICBleHRlcm4gd2NoYXJfdCAqd2NzY3B5KHdjaGFy
X3QgKiwgY29uc3Qgd2NoYXJfdCAqKTsKICAgICAgICBleHRlcm4gc2l6ZV90IHdjc2NzcG4oY29u
c3Qgd2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICopOwogICAgICAgIGV4dGVybiBzaXplX3Qgd2Nz
bGVuKGNvbnN0IHdjaGFyX3QgKik7CiAgICAgICAgZXh0ZXJuIHdjaGFyX3QgKndjc25jYXQod2No
YXJfdCAqLCBjb25zdCB3Y2hhcl90ICosIHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCB3Y3Nu
Y21wKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwogICAgICAgIGV4
dGVybiB3Y2hhcl90ICp3Y3NuY3B5KHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3Qp
OwogICAgICAgIGV4dGVybiBzaXplX3Qgd2Nzc3BuKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2No
YXJfdCAqKTsKICAgICAgICBleHRlcm4gd2NoYXJfdCAqd2Nzd2NzKGNvbnN0IHdjaGFyX3QgKiwg
Y29uc3Qgd2NoYXJfdCAqKTsKICAgICAgICBleHRlcm4gaW50IHdjc3dpZHRoKGNvbnN0IHdjaGFy
X3QgKiwgc2l6ZV90KTsKICAgICAgICBleHRlcm4gaW50IHdjd2lkdGgod2NoYXJfdCk7CiAgICAg
ICAgZXh0ZXJuIGludCB3Y3Njb2xsKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqKTsK
ICAgICAgICBleHRlcm4gc2l6ZV90IHdjc3hmcm0od2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICos
IHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGNoYXIgKl9fbGludXhfc3RyZXJyb3JfcihpbnQsIGNo
YXIgKiwgc2l6ZV90KTsKICAgICAgICBleHRlcm4gY2hhciAqIHN0cm5kdXAoY29uc3QgY2hhciAq
LCBzaXplX3QpOwogICAgICAgIGV4dGVybiBzaXplX3Qgc3Rybmxlbihjb25zdCBjaGFyICosIHNp
emVfdCk7CiAgICAgICAgZXh0ZXJuIGNoYXIgKiBzdHJzZXAoY2hhciAqKiwgY29uc3QgY2hhciAq
KTsKICAgICAgICBleHRlcm4gdm9pZCAqIG1lbW1lbShjb25zdCB2b2lkICosIHNpemVfdCwgY29u
c3Qgdm9pZCAqLCBzaXplX3QpOwogICAgICAgIGV4dGVybiBjaGFyICogc3RwY3B5KGNoYXIgKiwg
Y29uc3QgY2hhciAqKTsKICAgICAgICBleHRlcm4gY2hhciAqIHN0cG5jcHkoY2hhciAqLCBjb25z
dCBjaGFyICosIHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGNoYXIgKiBzdHJzaWduYWwoaW50KTsK
CgoKCgogICAgICAgIGV4dGVybiBpbnQgc3RyY2FzZWNtcChjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKik7CiAgICAgICAgZXh0ZXJuIGludCBzdHJuY2FzZWNtcChjb25zdCBjaGFyICosIGNvbnN0
IGNoYXIgKiwgc2l6ZV90KTsKIyA3NyAiLi4vLi4vZ2NjLTMuMi4yL2djYy90c3lzdGVtLmgiIDIK
CgoKIyAxICJpbmNsdWRlL3N0ZGxpYi5oIiAxIDMgNAojIDEwNCAiaW5jbHVkZS9zdGRsaWIuaCIg
MyA0CnR5cGVkZWYgc3RydWN0IGRpdl90IHsKICAgICAgICBpbnQgcXVvdDsKICAgICAgICBpbnQg
cmVtOwp9IGRpdl90OwoKdHlwZWRlZiBzdHJ1Y3QgbGRpdl90IHsKICAgICAgICBsb25nIGludCBx
dW90OwogICAgICAgIGxvbmcgaW50IHJlbTsKfSBsZGl2X3Q7CgoKCgoKCmV4dGVybiBzaXplX3Qg
X19nZXRtYmN1cm1heCAodm9pZCk7CmV4dGVybiBpbnQgX19nZXRtYXhkaXNwd2lkdGggKHZvaWQp
OwojIDEzMCAiaW5jbHVkZS9zdGRsaWIuaCIgMyA0CiAgICAgICAgZXh0ZXJuIGRvdWJsZSBzdHJ0
b2QoY29uc3QgY2hhciAqICwgY2hhciAqKiApOyBleHRlcm4gbG9uZyBpbnQgc3RydG9sKGNvbnN0
IGNoYXIgKiAsIGNoYXIgKiogLAppbnQpOwogICAgICAgIGV4dGVybiB1bnNpZ25lZCBsb25nIGlu
dCBzdHJ0b3VsKGNvbnN0IGNoYXIgKiAsIGNoYXIgKiogLCBpbnQpOwojIDE0MyAiaW5jbHVkZS9z
dGRsaWIuaCIgMyA0CiAgICAgICAgZXh0ZXJuIHZvaWQgX0V4aXQoaW50KTsKICAgICAgICBleHRl
cm4gZmxvYXQgc3RydG9mKGNvbnN0IGNoYXIgKiAsIGNoYXIgKiogKTsKCgoKCgoKCnR5cGVkZWYg
c3RydWN0IGxsZGl2X3QgewogICAgIGxvbmcgbG9uZyBpbnQgcXVvdDsKICAgICBsb25nIGxvbmcg
aW50IHJlbSA7Cn0gbGxkaXZfdDsKIyAxNjUgImluY2x1ZGUvc3RkbGliLmgiIDMgNApleHRlcm4g
bG9uZyBsb25nIGludCBhdG9sbChjb25zdCBjaGFyICopOwpleHRlcm4gbG9uZyBsb25nIGludCBs
bGFicyggbG9uZyBsb25nIGludCApOwpleHRlcm4gbGxkaXZfdCBsbGRpdiggbG9uZyBsb25nIGlu
dCwgbG9uZyBsb25nIGludCApOwoKZXh0ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9sbCgKICAgICBj
b25zdCBjaGFyICogLAogICAgIGNoYXIgKiogLAogICAgIGludCApOwpleHRlcm4gdW5zaWduZWQg
bG9uZyBsb25nIGludCBzdHJ0b3VsbCgKICAgICBjb25zdCBjaGFyICogLAogICAgIGNoYXIgKiog
LAogICAgIGludCApOwojIDE4NiAiaW5jbHVkZS9zdGRsaWIuaCIgMyA0CnN0YXRpYyBsb25nIGRv
dWJsZQpzdHJ0b2xkKGNvbnN0IGNoYXIgKiBfX2EsIGNoYXIgKiogX19iKSB7CiAgICAgICAgcmV0
dXJuICgobG9uZyBkb3VibGUpc3RydG9kIChfX2EsIF9fYikpOwp9CiMgMjA1ICJpbmNsdWRlL3N0
ZGxpYi5oIiAzIDQKICAgICAgICBleHRlcm4gaW50IG1ibGVuKGNvbnN0IGNoYXIgKiwgc2l6ZV90
KTsKICAgICAgICBleHRlcm4gc2l6ZV90IG1ic3Rvd2NzKHdjaGFyX3QgKiAsIGNvbnN0IGNoYXIg
KiAsIHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCBtYnRvd2Mod2NoYXJfdCAqICwgY29uc3Qg
Y2hhciAqICwgc2l6ZV90KTsKICAgICAgICBleHRlcm4gc2l6ZV90IHdjc3RvbWJzKGNoYXIgKiAs
IGNvbnN0IHdjaGFyX3QgKiAsIHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCB3Y3RvbWIoY2hh
ciAqLCBjb25zdCB3Y2hhcl90KTsKIyAyNjEgImluY2x1ZGUvc3RkbGliLmgiIDMgNAogICAgICAg
IGV4dGVybiBkb3VibGUgYXRvZihjb25zdCBjaGFyICopOwogICAgICAgIGV4dGVybiBpbnQgYXRv
aShjb25zdCBjaGFyICopOwogICAgICAgIGV4dGVybiBsb25nIGludCBhdG9sKGNvbnN0IGNoYXIg
Kik7CiAgICAgICAgZXh0ZXJuIGludCByYW5kKHZvaWQpOwogICAgICAgIGV4dGVybiB2b2lkIHNy
YW5kKHVuc2lnbmVkIGludCk7CiAgICAgICAgZXh0ZXJuIHZvaWQgKmNhbGxvYyhzaXplX3QsIHNp
emVfdCk7CiAgICAgICAgZXh0ZXJuIHZvaWQgZnJlZSh2b2lkICopOwogICAgICAgIGV4dGVybiB2
b2lkICptYWxsb2Moc2l6ZV90KTsKICAgICAgICBleHRlcm4gdm9pZCAqcmVhbGxvYyh2b2lkICos
IHNpemVfdCk7CiAgICAgICAgZXh0ZXJuIHZvaWQgYWJvcnQodm9pZCk7CiAgICAgICAgZXh0ZXJu
IGludCBhdGV4aXQodm9pZCAoKikodm9pZCkpOwogICAgICAgIGV4dGVybiB2b2lkIGV4aXQoaW50
KTsKICAgICAgICBleHRlcm4gY2hhciAqZ2V0ZW52KGNvbnN0IGNoYXIgKik7CiAgICAgICAgZXh0
ZXJuIGludCBzeXN0ZW0oY29uc3QgY2hhciAqKTsKICAgICAgICBleHRlcm4gdm9pZCAqYnNlYXJj
aChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIGludCgqKShjb25z
dCB2b2lkICosY29uc3Qgdm9pZCAqKSk7CiAgICAgICAgZXh0ZXJuIHZvaWQgcXNvcnQodm9pZCAq
LCBzaXplX3QsIHNpemVfdCwgaW50KCopKGNvbnN0IHZvaWQgKixjb25zdCB2b2lkICopKTsKIyAy
ODcgImluY2x1ZGUvc3RkbGliLmgiIDMgNAogICAgICAgIGV4dGVybiBpbnQgYWJzKGludCk7CiAg
ICAgICAgZXh0ZXJuIHN0cnVjdCBkaXZfdCBkaXYoaW50LCBpbnQpOwogICAgICAgIGV4dGVybiBs
b25nIGludCBsYWJzKGxvbmcgaW50KTsKICAgICAgICBleHRlcm4gc3RydWN0IGxkaXZfdCBsZGl2
KGxvbmcgaW50LCBsb25nIGludCk7CiMgMzE0ICJpbmNsdWRlL3N0ZGxpYi5oIiAzIDQKIyAxICJp
bmNsdWRlL3N5cy93YWl0LmgiIDEgMyA0CiMgNTggImluY2x1ZGUvc3lzL3dhaXQuaCIgMyA0CiMg
MSAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAxIDMgNAojIDU3ICIvdXNyL2luY2x1ZGUv
c3lzL3Jlc291cmNlLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAxIDMgNAoj
IDkwICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CnN0cnVjdCB0aW1ldmFsIHsKICAgICAg
ICB0aW1lX3QgdHZfc2VjOwoKICAgICAgICBzdXNlY29uZHNfdCB0dl91c2VjOwoKCgp9OwoKCgoK
c3RydWN0IHRpbWV2YWwzMiB7CiAgICBpbnQzMl90IHR2X3NlYzsKICAgIGludDMyX3QgdHZfdXNl
YzsKfTsKCgoKCgoKc3RydWN0IHRpbWV2YWw2NCB7CiAgICBpbnQ2NF90IHR2X3NlYzsKICAgIGlu
dDMyX3QgdHZfdXNlYzsKCgoKfTsKCgoKCgoKc3RydWN0IGl0aW1lcnZhbCB7CiAgICAgICAgc3Ry
dWN0IHRpbWV2YWwgaXRfaW50ZXJ2YWw7CiAgICAgICAgc3RydWN0IHRpbWV2YWwgaXRfdmFsdWU7
Cn07CgoKCgoKCgpleHRlcm4gaW50IGdldGl0aW1lcihpbnQsIHN0cnVjdCBpdGltZXJ2YWwgKik7
CmV4dGVybiBpbnQgc2V0aXRpbWVyKGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnZhbCAqLCBzdHJ1
Y3QgaXRpbWVydmFsICopOwpleHRlcm4gaW50IGdldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAq
LCB2b2lkICopOwpleHRlcm4gaW50IHV0aW1lcyhjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0
aW1ldmFsICopOwojIDE1NyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAp0eXBlZGVmIHN0
cnVjdAoKZmRfc2V0Cgp7CiAgICAgICAgbG9uZyBmZHNfYml0c1soNjU1MzQvKHNpemVvZihsb25n
KSAqIDgpKzEpXTsKfSBmZF9zZXQ7CiMgMTcyICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0
CmV4dGVybiBpbnQgc2VsZWN0KGludCwgZmRfc2V0ICosIGZkX3NldCAqLCBmZF9zZXQgKiwgc3Ry
dWN0IHRpbWV2YWwgKik7CiMgMjg2ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIgMyA0CnN0cnVj
dCB0aW1lc3RydWNfdCB7CiAgICAgICAgdGltZV90IHR2X3NlYzsKICAgICAgICBzdXNlY29uZHNf
dCB0dl9uc2VjOwp9OwoKCgoKCnN0cnVjdCB0aW1lc3RydWMzMl90IHsKICAgIGludDMyX3QgdHZf
c2VjOwogICAgaW50MzJfdCB0dl9uc2VjOwp9OwoKCgoKc3RydWN0IHRpbWVzdHJ1YzY0X3Qgewog
ICAgaW50NjRfdCB0dl9zZWM7CiAgICBpbnQzMl90IHR2X25zZWM7Cn07CiMgMzE4ICIvdXNyL2lu
Y2x1ZGUvc3lzL3RpbWUuaCIgMyA0CnN0cnVjdCBpdGltZXJzdHJ1Y190IHsKICAgICAgICBzdHJ1
Y3QgdGltZXN0cnVjX3QgaXRfaW50ZXJ2YWw7CiAgICAgICAgc3RydWN0IHRpbWVzdHJ1Y190IGl0
X3ZhbHVlOwp9OwoKCgoKCnN0cnVjdCBpdGltZXJzdHJ1YzMyX3QgewogICAgc3RydWN0IHRpbWVz
dHJ1YzMyX3QgaXRfaW50ZXJ2YWw7CiAgICBzdHJ1Y3QgdGltZXN0cnVjMzJfdCBpdF92YWx1ZTsK
fTsKCgoKCnN0cnVjdCBpdGltZXJzdHJ1YzY0X3QgewogICAgc3RydWN0IHRpbWVzdHJ1YzY0X3Qg
aXRfaW50ZXJ2YWw7CiAgICBzdHJ1Y3QgdGltZXN0cnVjNjRfdCBpdF92YWx1ZTsKfTsKIyAzNTAg
Ii91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgdGltZWJhc2VzdHJ1
Y3QgewogICAgICAgIGludCBmbGFnOwogICAgICAgIHVuc2lnbmVkIGludCB0Yl9oaWdoOwogICAg
ICAgIHVuc2lnbmVkIGludCB0Yl9sb3c7CiAgICAgICAgfSB0aW1lYmFzZXN0cnVjdF90OwoKaW50
IHJlYWRfcmVhbF90aW1lKHRpbWViYXNlc3RydWN0X3QgKiwgc2l6ZV90KTsKaW50IHRpbWVfYmFz
ZV90b190aW1lKHRpbWViYXNlc3RydWN0X3QgKiwgc2l6ZV90KTsKIyA0ODIgIi91c3IvaW5jbHVk
ZS9zeXMvdGltZS5oIiAzIDQKc3RydWN0IHRpbWV6b25lIHsKICAgICAgICBpbnQgdHpfbWludXRl
c3dlc3Q7CiAgICAgICAgaW50IHR6X2RzdHRpbWU7Cn07CiMgNTggIi91c3IvaW5jbHVkZS9zeXMv
cmVzb3VyY2UuaCIgMiAzIDQKIyAxMDIgIi91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMyA0
CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBybGltX3Q7CnN0cnVjdCBybGltaXQgewogICAgICAgIHJs
aW1fdCBybGltX2N1cjsKICAgICAgICBybGltX3QgcmxpbV9tYXg7Cn07CgoKCgoKdHlwZWRlZiB1
bnNpZ25lZCBsb25nIGxvbmcgcmxpbTY0X3Q7CnN0cnVjdCBybGltaXQ2NCB7CiAgICAgICAgcmxp
bTY0X3QgcmxpbV9jdXI7CiAgICAgICAgcmxpbTY0X3QgcmxpbV9tYXg7Cn07CiMgMTU1ICIvdXNy
L2luY2x1ZGUvc3lzL3Jlc291cmNlLmgiIDMgNApzdHJ1Y3QgcnVzYWdlCnsKICAgICAgICBzdHJ1
Y3QgdGltZXZhbCBydV91dGltZTsKICAgICAgICBzdHJ1Y3QgdGltZXZhbCBydV9zdGltZTsKICAg
ICAgICBsb25nIHJ1X21heHJzczsKICAgICAgICBsb25nIHJ1X2l4cnNzOwogICAgICAgIGxvbmcg
cnVfaWRyc3M7CiAgICAgICAgbG9uZyBydV9pc3JzczsKICAgICAgICBsb25nIHJ1X21pbmZsdDsK
ICAgICAgICBsb25nIHJ1X21hamZsdDsKICAgICAgICBsb25nIHJ1X25zd2FwOwogICAgICAgIGxv
bmcgcnVfaW5ibG9jazsKICAgICAgICBsb25nIHJ1X291YmxvY2s7CiAgICAgICAgbG9uZyBydV9t
c2dzbmQ7CiAgICAgICAgbG9uZyBydV9tc2dyY3Y7CiAgICAgICAgbG9uZyBydV9uc2lnbmFsczsK
ICAgICAgICBsb25nIHJ1X252Y3N3OwogICAgICAgIGxvbmcgcnVfbml2Y3N3OwoKfTsKIyAxODMg
Ii91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2UuaCIgMyA0CnN0cnVjdCBydXNhZ2U2NAp7CgoKCgog
ICAgICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIHJ1
X3N0aW1lOwoKICAgICAgICBsb25nIGxvbmcgcnVfbWF4cnNzOwogICAgICAgIGxvbmcgbG9uZyBy
dV9peHJzczsKICAgICAgICBsb25nIGxvbmcgcnVfaWRyc3M7CiAgICAgICAgbG9uZyBsb25nIHJ1
X2lzcnNzOwogICAgICAgIGxvbmcgbG9uZyBydV9taW5mbHQ7CiAgICAgICAgbG9uZyBsb25nIHJ1
X21hamZsdDsKICAgICAgICBsb25nIGxvbmcgcnVfbnN3YXA7CiAgICAgICAgbG9uZyBsb25nIHJ1
X2luYmxvY2s7CiAgICAgICAgbG9uZyBsb25nIHJ1X291YmxvY2s7CiAgICAgICAgbG9uZyBsb25n
IHJ1X21zZ3NuZDsKICAgICAgICBsb25nIGxvbmcgcnVfbXNncmN2OwogICAgICAgIGxvbmcgbG9u
ZyBydV9uc2lnbmFsczsKICAgICAgICBsb25nIGxvbmcgcnVfbnZjc3c7CiAgICAgICAgbG9uZyBs
b25nIHJ1X25pdmNzdzsKfTsKCgoKCgpzdHJ1Y3QgdHJ1c2FnZTY0CnsKICAgICAgICBzdHJ1Y3Qg
dGltZXZhbDY0IHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1ldmFsNjQgcnVfc3RpbWU7CiAg
ICAgICAgbG9uZ2xvbmdfdCBydV9tYXhyc3M7CiAgICAgICAgbG9uZ2xvbmdfdCBydV9peHJzczsK
ICAgICAgICBsb25nbG9uZ190IHJ1X2lkcnNzOwogICAgICAgIGxvbmdsb25nX3QgcnVfaXNyc3M7
CiAgICAgICAgbG9uZ2xvbmdfdCBydV9taW5mbHQ7CiAgICAgICAgbG9uZ2xvbmdfdCBydV9tYWpm
bHQ7CiAgICAgICAgbG9uZ2xvbmdfdCBydV9uc3dhcDsKICAgICAgICBsb25nbG9uZ190IHJ1X2lu
YmxvY2s7CiAgICAgICAgbG9uZ2xvbmdfdCBydV9vdWJsb2NrOwogICAgICAgIGxvbmdsb25nX3Qg
cnVfbXNnc25kOwogICAgICAgIGxvbmdsb25nX3QgcnVfbXNncmN2OwogICAgICAgIGxvbmdsb25n
X3QgcnVfbnNpZ25hbHM7CiAgICAgICAgbG9uZ2xvbmdfdCBydV9udmNzdzsKICAgICAgICBsb25n
bG9uZ190IHJ1X25pdmNzdzsKfTsKCgoKCgpzdHJ1Y3QgdHJ1c2FnZTMyCnsKICAgICAgICBzdHJ1
Y3QgdGltZXZhbDMyIHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1ldmFsMzIgcnVfc3RpbWU7
CiAgICAgICAgc2lnbmVkIGludCBydV9tYXhyc3M7CiAgICAgICAgc2lnbmVkIGludCBydV9peHJz
czsKICAgICAgICBzaWduZWQgaW50IHJ1X2lkcnNzOwogICAgICAgIHNpZ25lZCBpbnQgcnVfaXNy
c3M7CiAgICAgICAgc2lnbmVkIGludCBydV9taW5mbHQ7CiAgICAgICAgc2lnbmVkIGludCBydV9t
YWpmbHQ7CiAgICAgICAgc2lnbmVkIGludCBydV9uc3dhcDsKICAgICAgICBzaWduZWQgaW50IHJ1
X2luYmxvY2s7CiAgICAgICAgc2lnbmVkIGludCBydV9vdWJsb2NrOwogICAgICAgIHNpZ25lZCBp
bnQgcnVfbXNnc25kOwogICAgICAgIHNpZ25lZCBpbnQgcnVfbXNncmN2OwogICAgICAgIHNpZ25l
ZCBpbnQgcnVfbnNpZ25hbHM7CiAgICAgICAgc2lnbmVkIGludCBydV9udmNzdzsKICAgICAgICBz
aWduZWQgaW50IHJ1X25pdmNzdzsKfTsKIyAzMjMgIi91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2Uu
aCIgMyA0CmV4dGVybiBpbnQgZ2V0cHJpb3JpdHkoaW50LCBpZF90KTsKZXh0ZXJuIGludCBzZXRw
cmlvcml0eShpbnQsIGlkX3QsIGludCk7CmV4dGVybiBpbnQgZ2V0cmxpbWl0KGludCwgc3RydWN0
IHJsaW1pdCAqKTsKZXh0ZXJuIGludCBzZXRybGltaXQoaW50LCBjb25zdCBzdHJ1Y3QgcmxpbWl0
ICopOwoKCmV4dGVybiBpbnQgZ2V0cmxpbWl0NjQoaW50LCBzdHJ1Y3QgcmxpbWl0NjQgKik7CmV4
dGVybiBpbnQgc2V0cmxpbWl0NjQoaW50LCBjb25zdCBzdHJ1Y3QgcmxpbWl0NjQgKik7CgoKCgoK
CgpleHRlcm4gaW50IGdldHJ1c2FnZShpbnQsIHN0cnVjdCBydXNhZ2UgKik7CgpleHRlcm4gaW50
IGdldHJ1c2FnZTY0KGludCwgc3RydWN0IHJ1c2FnZTY0ICopOwojIDU5ICJpbmNsdWRlL3N5cy93
YWl0LmgiIDIgMyA0CgoKCiMgMSAiaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDEgMyA0CiMgMTA5ICJp
bmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CmV4dGVybiB2b2lkICgqc2lnbmFsKGludCwgdm9pZCAo
KikoaW50KSkpKGludCk7CgoKCgoKCgpleHRlcm4gaW50IHJhaXNlKGludCk7CgoKdHlwZWRlZiBp
bnQgc2lnX2F0b21pY190OwojIDI0NiAiaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNAp1bmlvbiBz
aWd2YWwKewoKCgogICAgICAgIHZvaWQgKiBzaXZhbF9wdHI7CgogICAgICAgIGludCBzaXZhbF9p
bnQ7Cn07CiMgMjY3ICJpbmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CnR5cGVkZWYgc3RydWN0IHsK
ICAgICAgICBpbnQgc2lfc2lnbm87CiAgICAgICAgaW50IHNpX2Vycm5vOwogICAgICAgIGludCBz
aV9jb2RlOwojIDI4NCAiaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNAogICAgICAgIHBpZF90IHNp
X3BpZDsKCgogICAgICAgIHVpZF90IHNpX3VpZDsKIyAzMTAgImluY2x1ZGUvc3lzL3NpZ25hbC5o
IiAzIDQKICAgICAgICB2b2lkICpzaV9hZGRyOwogICAgICAgIGludCBzaV9zdGF0dXM7CgoKICAg
ICAgICBsb25nIHNpX2JhbmQ7CgoKICAgICAgICB1bmlvbiBzaWd2YWwgc2lfdmFsdWU7CgoKCgoK
CgogICAgICAgIGludCBfX3BhZFs3XTsKCgoKfSBzaWdpbmZvX3Q7CgoKCgoKCgpzdHJ1Y3Qgc2ln
YWN0aW9uIHsKICAgdW5pb24gewoKCgoKCgogICAgICAgIHZvaWQgKCpfX3N1X2hhbmRsZXIpKGlu
dCk7CgoKCiAgICAgICAgdm9pZCAoKl9fc3Vfc2lnYWN0aW9uKSAoaW50LCBzaWdpbmZvX3QgKiwg
dm9pZCAqKTsKCgoKICAgIH0gc2FfdW5pb247CiAgICAgICAgc2lnc2V0X3Qgc2FfbWFzazsKICAg
ICAgICBpbnQgc2FfZmxhZ3M7Cn07CiMgMzc4ICJpbmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CiMg
MSAiL3Vzci9pbmNsdWRlL3N5cy9jb250ZXh0LmgiIDEgMyA0CiMgMzkgIi91c3IvaW5jbHVkZS9z
eXMvY29udGV4dC5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvc3lzL21fcGFyYW0uaCIgMSAzIDQK
IyA0MCAiL3Vzci9pbmNsdWRlL3N5cy9jb250ZXh0LmgiIDIgMyA0CiMgMSAiL3Vzci9pbmNsdWRl
L3N5cy9tc3RzYXZlLmgiIDEgMyA0CiMgNDcgIi91c3IvaW5jbHVkZS9zeXMvbXN0c2F2ZS5oIiAz
IDQKc3RydWN0Cgptc3RzYXZlCgoKCnsKCiAgICAgICAgc3RydWN0IG1zdHNhdmUgKnByZXY7CiAg
ICAgICAgbGFiZWxfdCAqa2ptcGJ1ZjsKICAgICAgICBjaGFyICpzdGFja2ZpeDsKICAgICAgICBj
aGFyIGludHByaTsKICAgICAgICBjaGFyIGJhY2t0OwogICAgICAgIGNoYXIgcnN2ZFsyXTsKICAg
ICAgICBwaWRfdCBjdXJpZDsKCiAgICAgICAgaW50IGV4Y3BfdHlwZTsKICAgICAgICB1bG9uZ190
IGlhcjsKICAgICAgICB1bG9uZ190IG1zcjsKICAgICAgICB1bG9uZ190IGNyOwogICAgICAgIHVs
b25nX3QgbHI7CiAgICAgICAgdWxvbmdfdCBjdHI7CiAgICAgICAgdWxvbmdfdCB4ZXI7CiAgICAg
ICAgdWxvbmdfdCBtcTsKICAgICAgICB1bG9uZ190IHRpZDsKICAgICAgICB1bG9uZ190IGZwc2Ny
OwogICAgICAgIGNoYXIgZnBldTsKICAgICAgICBjaGFyIGZwaW5mbzsKICAgICAgICBjaGFyIHBh
ZFsyXTsKCiAgICAgICAgdWxvbmdfdCBleGNlcHRbNV07CiAgICAgICAgY2hhciBwYWQxWzRdOwog
ICAgICAgIHVsb25nX3Qgb19pYXI7CiAgICAgICAgdWxvbmdfdCBvX3RvYzsKICAgICAgICB1bG9u
Z190IG9fYXJnMTsKICAgICAgICB1bG9uZ190IGV4Y2JyYW5jaDsKCgoKICAgICAgICB1bG9uZ190
IGZwc2NyeDsKICAgICAgICB1bG9uZ190IG9fdmFkZHI7CiAgICAgICAgdWxvbmdfdCBjYWNoZWFs
aWduWzddOwogICAgICAgIGFkc3BhY2VfdCBhczsKICAgICAgICB1bG9uZ190IGdwclszMl07CiAg
ICAgICAgZG91YmxlIGZwclszMl07CiMgMTMxICIvdXNyL2luY2x1ZGUvc3lzL21zdHNhdmUuaCIg
MyA0Cn07CiMgMjM2ICIvdXNyL2luY2x1ZGUvc3lzL21zdHNhdmUuaCIgMyA0CmV4dGVybiBjaGFy
IF9fcG1hcF9zdGFja1tdOwojIDQxICIvdXNyL2luY2x1ZGUvc3lzL2NvbnRleHQuaCIgMiAzIDQK
IyA2NCAiL3Vzci9pbmNsdWRlL3N5cy9jb250ZXh0LmgiIDMgNAp0eXBlZGVmIHN0cnVjdCB7CgoK
CgogICAgICAgIHZvaWQgKnNzX3NwOwogICAgICAgIHNpemVfdCBzc19zaXplOwoKCiAgICAgICAg
aW50IHNzX2ZsYWdzOwoKICAgICAgICBpbnQgX19wYWRbNF07Cgp9IHN0YWNrX3Q7CiMgMTE5ICIv
dXNyL2luY2x1ZGUvc3lzL2NvbnRleHQuaCIgMyA0CnN0cnVjdCBfX2NvbnRleHQ2NCB7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGdwclszMl07CiAgICAgICAgdW5zaWduZWQgbG9uZyBsb25n
IG1zcjsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgaWFyOwogICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBscjsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgY3RyOwogICAgICAgIHVuc2ln
bmVkIGludCBjcjsKICAgICAgICB1bnNpZ25lZCBpbnQgeGVyOwogICAgICAgIHVuc2lnbmVkIGlu
dCBmcHNjcjsKICAgICAgICB1bnNpZ25lZCBpbnQgZnBzY3J4OwogICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBleGNlcHRbMV07CiAgICAgICAgZG91YmxlIGZwclszMl07CiAgICAgICAgY2hhciBm
cGV1OwogICAgICAgIGNoYXIgZnBpbmZvOwogICAgICAgIGNoYXIgcGFkWzJdOwogICAgICAgIGlu
dCBleGNwX3R5cGU7Cn07CiMgMTY3ICIvdXNyL2luY2x1ZGUvc3lzL2NvbnRleHQuaCIgMyA0CnN0
cnVjdCBzaWdjb250ZXh0NjQgewogICAgICAgIGludCBzY19vbnN0YWNrOwogICAgICAgIHNpZ3Nl
dDY0X3Qgc2NfbWFzazsKICAgICAgICBpbnQgc2NfdWVycm9yOwogICAgICAgIHN0cnVjdCBfX2Nv
bnRleHQ2NCBzY19jb250ZXh0Owp9OwojIDI0NSAiL3Vzci9pbmNsdWRlL3N5cy9jb250ZXh0Lmgi
IDMgNApzdHJ1Y3QgX19qbXBidWYgewoKICAgICAgICBzdHJ1Y3QgbXN0c2F2ZSBqbXBfY29udGV4
dDsKCgoKfTsKIyAyNzkgIi91c3IvaW5jbHVkZS9zeXMvY29udGV4dC5oIiAzIDQKc3RydWN0IF9f
c2lnY29udGV4dCB7CgogICAgICAgIGludCBzY19vbnN0YWNrOwoKCgogICAgICAgIHNpZ3NldF90
IHNjX21hc2s7CgogICAgICAgIGludCBzY191ZXJyb3I7CiAgICAgICAgc3RydWN0IF9fam1wYnVm
IHNjX2ptcGJ1ZjsKIyAyOTkgIi91c3IvaW5jbHVkZS9zeXMvY29udGV4dC5oIiAzIDQKfTsKIyAz
MDggIi91c3IvaW5jbHVkZS9zeXMvY29udGV4dC5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QgX19qbXBi
dWYgbWNvbnRleHRfdDsKCnR5cGVkZWYgc3RydWN0IHVjb250ZXh0X3QgewogICAgICAgIGludCBf
X3NjX29uc3RhY2s7CgoKCgogICAgICAgIHNpZ3NldF90IHVjX3NpZ21hc2s7CgoKICAgICAgICBp
bnQgX19zY191ZXJyb3I7CiAgICAgICAgbWNvbnRleHRfdCB1Y19tY29udGV4dDsKCgoKICAgICAg
ICBzdHJ1Y3QgdWNvbnRleHRfdCAqdWNfbGluazsKCgogICAgICAgIHN0YWNrX3QgdWNfc3RhY2s7
CiAgICAgICAgaW50IF9fcGFkWzRdOwp9IHVjb250ZXh0X3Q7CiMgMzc5ICJpbmNsdWRlL3N5cy9z
aWduYWwuaCIgMiAzIDQKCgoKCnN0cnVjdCBzaWdzdGFjayB7CiAgICAgICAgdm9pZCAqc3Nfc3A7
CiAgICAgICAgaW50IHNzX29uc3RhY2s7Cn07CiMgNDY3ICJpbmNsdWRlL3N5cy9zaWduYWwuaCIg
MyA0CmV4dGVybiBpbnQgc2lnbWFzayhpbnQpOwojIDYyNSAiaW5jbHVkZS9zeXMvc2lnbmFsLmgi
IDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvbV9zaWduYWwuaCIgMSAzIDQKIyA2MjYgImluY2x1
ZGUvc3lzL3NpZ25hbC5oIiAyIDMgNAojIDYzNSAiaW5jbHVkZS9zeXMvc2lnbmFsLmgiIDMgNApz
dHJ1Y3Qgc2lnZXZlbnQgewogICAgICAgIHVuaW9uIHNpZ3ZhbCBzaWdldl92YWx1ZTsKICAgICAg
ICBpbnQgc2lnZXZfc2lnbm87CiAgICAgICAgaW50IHNpZ2V2X25vdGlmeTsKCgoKCiAgICAgICAg
dm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKICAgICAgICBwdGhy
ZWFkX2F0dHJfdCAqIHNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzOwoKfTsKIyA2NjggImluY2x1ZGUv
c3lzL3NpZ25hbC5oIiAzIDQKc3RydWN0IG9zaWdldmVudCB7CgoKCiAgICAgICAgdm9pZCAqc2V2
dF92YWx1ZTsKCiAgICAgICAgc2lnbmFsX3Qgc2V2dF9zaWdubzsKfTsKIyA5OTMgImluY2x1ZGUv
c3lzL3NpZ25hbC5oIiAzIDQKc3RydWN0IHNpZ3ZlYyB7CiMgMTAwNSAiaW5jbHVkZS9zeXMvc2ln
bmFsLmgiIDMgNAogICB1bmlvbiB7CgoKCgoKCiAgICAgICAgdm9pZCAoKnN2X2hhbmRsZXIpKGlu
dCk7CgoKCiAgICAgICAgdm9pZCAoKnN2X3NpZ2FjdGlvbikgKGludCwgc2lnaW5mb190ICosIHZv
aWQgKik7CiAgIH0gc3ZfdW5pb247CiAgICAgICAgaW50IHN2X21hc2s7CiAgICAgICAgaW50IHN2
X2ZsYWdzOwoKfTsKIyAxMDg1ICJpbmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CmV4dGVybiBpbnQg
c2lnd2FpdChjb25zdCBzaWdzZXRfdCAqLCBpbnQgKik7CgpleHRlcm4gaW50IHNpZ2Jsb2NrKGlu
dCk7CmV4dGVybiBpbnQgc2lnbG9jYWxtYXNrKGludCwgY29uc3Qgc2lnc2V0X3QgKik7CmV4dGVy
biBpbnQgc2lndmVjKGludCwgc3RydWN0IHNpZ3ZlYyAqLCBzdHJ1Y3Qgc2lndmVjICopOwoKCgoK
CgoKZXh0ZXJuIGludCBzaWdnZXRtYXNrKHZvaWQpOwpleHRlcm4gaW50IHNpZ3NldG1hc2soaW50
KTsKIyAxMTM3ICJpbmNsdWRlL3N5cy9zaWduYWwuaCIgMyA0CmV4dGVybiBpbnQga2lsbChwaWRf
dCwgaW50KTsKZXh0ZXJuIGludCBzaWdwcm9jbWFzayhpbnQsIGNvbnN0IHNpZ3NldF90ICosIHNp
Z3NldF90ICopOwpleHRlcm4gaW50IHNpZ3N1c3BlbmQoY29uc3Qgc2lnc2V0X3QgKik7CgpleHRl
cm4gaW50IHNpZ2FjdGlvbihpbnQsIGNvbnN0IHN0cnVjdCBzaWdhY3Rpb24gKiwgc3RydWN0IHNp
Z2FjdGlvbiAqKTsKCmV4dGVybiBpbnQgc2lnZW1wdHlzZXQoc2lnc2V0X3QgKik7CmV4dGVybiBp
bnQgc2lnZmlsbHNldChzaWdzZXRfdCAqKTsKZXh0ZXJuIGludCBzaWdhZGRzZXQoc2lnc2V0X3Qg
KiwgaW50KTsKZXh0ZXJuIGludCBzaWdkZWxzZXQoc2lnc2V0X3QgKiwgaW50KTsKZXh0ZXJuIGlu
dCBzaWdpc21lbWJlcihjb25zdCBzaWdzZXRfdCAqLCBpbnQpOwpleHRlcm4gaW50IHNpZ3BlbmRp
bmcoc2lnc2V0X3QgKik7CgoKZXh0ZXJuIHZvaWQgKCpic2Rfc2lnbmFsIChpbnQsIHZvaWQgKCop
KGludCkpKShpbnQpOwpleHRlcm4gaW50IGtpbGxwZyhwaWRfdCwgaW50KTsKZXh0ZXJuIGludCBz
aWdob2xkKGludCk7CmV4dGVybiBpbnQgc2lnaWdub3JlKGludCk7CmV4dGVybiBpbnQgc2lnaW50
ZXJydXB0KGludCwgaW50KTsKZXh0ZXJuIGludCBzaWdwYXVzZShpbnQpOwpleHRlcm4gaW50IHNp
Z3JlbHNlKGludCk7CmV4dGVybiB2b2lkICgqc2lnc2V0KGludCwgdm9pZCgqKShpbnQpKSkoaW50
KTsKCmV4dGVybiBpbnQgc2lnYWx0c3RhY2soY29uc3Qgc3RhY2tfdCAqLCBzdGFja190ICopOwpl
eHRlcm4gaW50IHNpZ3N0YWNrKHN0cnVjdCBzaWdzdGFjayAqLCBzdHJ1Y3Qgc2lnc3RhY2sgKik7
CgoKCmV4dGVybiBpbnQgcHRocmVhZF9raWxsKHB0aHJlYWRfdCwgaW50KTsKZXh0ZXJuIGludCBw
dGhyZWFkX3NpZ21hc2soaW50LCBjb25zdCBzaWdzZXRfdCAqLCBzaWdzZXRfdCAqKTsKZXh0ZXJu
IGludCBzaWdxdWV1ZShwaWRfdCwgaW50LCBjb25zdCB1bmlvbiBzaWd2YWwpOwpzdHJ1Y3QgdGlt
ZXNwZWM7CmV4dGVybiBpbnQgc2lndGltZWR3YWl0KGNvbnN0IHNpZ3NldF90ICosIHNpZ2luZm9f
dCAqLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKik7CmV4dGVybiBpbnQgc2lnd2FpdGluZm8oY29u
c3Qgc2lnc2V0X3QgKiwgc2lnaW5mb190ICopOwojIDYzICJpbmNsdWRlL3N5cy93YWl0LmgiIDIg
MyA0CiMgMTQ4ICJpbmNsdWRlL3N5cy93YWl0LmgiIDMgNAp0eXBlZGVmIGVudW0ge1BfQUxMLCBQ
X1BJRCwgUF9QR0lEfSBpZHR5cGVfdDsKIyAxNjYgImluY2x1ZGUvc3lzL3dhaXQuaCIgMyA0CmV4
dGVybiBwaWRfdCB3YWl0KGludCAqKTsKCmV4dGVybiBwaWRfdCB3YWl0cGlkKHBpZF90LCBpbnQg
KiwgaW50KTsKIyAxODAgImluY2x1ZGUvc3lzL3dhaXQuaCIgMyA0CmV4dGVybiBpbnQgd2FpdGlk
KGlkdHlwZV90LCBpZF90LCBzaWdpbmZvX3QgKiwgaW50KTsKCgoKZXh0ZXJuIHBpZF90IHdhaXQz
KGludCAqLCBpbnQsIHN0cnVjdCBydXNhZ2UgKik7CgoKCmV4dGVybiBwaWRfdCBrd2FpdHBpZChp
bnQgKiwgcGlkX3QsIGludCwgc3RydWN0IHJ1c2FnZSAqLCBzaWdpbmZvX3QgKik7CgpleHRlcm4g
cGlkX3Qga3dhaXRwaWQ2NChpbnQgKiwgcGlkX3QsIGludCwgc3RydWN0IHJ1c2FnZTY0ICosIHNp
Z2luZm9fdCAqKTsKCgoKZXh0ZXJuIHBpZF90IHdhaXQzNjQoaW50ICosIGludCwgc3RydWN0IHJ1
c2FnZTY0ICopOwojIDIwOCAiaW5jbHVkZS9zeXMvd2FpdC5oIiAzIDQKZXh0ZXJuIHBpZF90IHdh
aXQ0KHBpZF90LCBpbnQgKiwgaW50LCBzdHJ1Y3QgcnVzYWdlICopOwojIDMxNSAiaW5jbHVkZS9z
dGRsaWIuaCIgMiAzIDQKIyAzOTEgImluY2x1ZGUvc3RkbGliLmgiIDMgNAogICAgICAgIGV4dGVy
biBkb3VibGUgZHJhbmQ0OCh2b2lkKTsKICAgICAgICBleHRlcm4gZG91YmxlIGVyYW5kNDgodW5z
aWduZWQgc2hvcnRbXSk7CiAgICAgICAgZXh0ZXJuIGxvbmcganJhbmQ0OCh1bnNpZ25lZCBzaG9y
dFtdKTsKICAgICAgICBleHRlcm4gdm9pZCBsY29uZzQ4KHVuc2lnbmVkIHNob3J0IGludCAqKTsK
ICAgICAgICBleHRlcm4gbG9uZyBscmFuZDQ4KHZvaWQpOwogICAgICAgIGV4dGVybiBsb25nIG1y
YW5kNDgodm9pZCk7CiAgICAgICAgZXh0ZXJuIGxvbmcgbnJhbmQ0OCh1bnNpZ25lZCBzaG9ydFtd
KTsKICAgICAgICBleHRlcm4gdW5zaWduZWQgc2hvcnQgKnNlZWQ0OCh1bnNpZ25lZCBzaG9ydFtd
KTsKICAgICAgICBleHRlcm4gdm9pZCBzZXRrZXkoY29uc3QgY2hhciAqKTsKICAgICAgICBleHRl
cm4gdm9pZCBzcmFuZDQ4KGxvbmcpOwoKICAgICAgICBleHRlcm4gaW50IHB1dGVudihjaGFyICop
OwojIDQyMCAiaW5jbHVkZS9zdGRsaWIuaCIgMyA0CiAgICAgICAgZXh0ZXJuIGludCByYW5kX3Io
dW5zaWduZWQgaW50ICopOwojIDQ0NCAiaW5jbHVkZS9zdGRsaWIuaCIgMyA0CiAgICAgICAgZXh0
ZXJuIGxvbmcgYTY0bChjb25zdCBjaGFyICopOwogICAgICAgIGV4dGVybiBjaGFyICplY3Z0KGRv
dWJsZSwgaW50LCBpbnQgKiwgaW50ICopOwogICAgICAgIGV4dGVybiBjaGFyICpmY3Z0KGRvdWJs
ZSwgaW50LCBpbnQgKiwgaW50ICopOwogICAgICAgIGV4dGVybiBjaGFyICpnY3Z0KGRvdWJsZSwg
aW50LCBjaGFyICopOwogICAgICAgIGV4dGVybiBpbnQgZ2V0c3Vib3B0KGNoYXIgKiosIGNoYXIg
KmNvbnN0ICosIGNoYXIgKiopOwogICAgICAgIGV4dGVybiBpbnQgZ3JhbnRwdChpbnQpOwogICAg
ICAgIGV4dGVybiBjaGFyICppbml0c3RhdGUodW5zaWduZWQsIGNoYXIgKiwgc2l6ZV90KTsKICAg
ICAgICBleHRlcm4gY2hhciAqbDY0YShsb25nKTsKICAgICAgICBleHRlcm4gY2hhciAqbWt0ZW1w
KGNoYXIgKik7CiAgICAgICAgZXh0ZXJuIGludCBta3N0ZW1wKGNoYXIgKik7CiAgICAgICAgZXh0
ZXJuIGNoYXIgKnB0c25hbWUoaW50KTsKICAgICAgICBleHRlcm4gbG9uZyByYW5kb20odm9pZCk7
CiAgICAgICAgZXh0ZXJuIGNoYXIgKnJlYWxwYXRoKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKICAg
ICAgICBleHRlcm4gY2hhciAqc2V0c3RhdGUoY29uc3QgY2hhciAqKTsKICAgICAgICBleHRlcm4g
dm9pZCBzcmFuZG9tKHVuc2lnbmVkKTsKICAgICAgICBleHRlcm4gaW50IHVubG9ja3B0KGludCk7
CiMgNTM4ICJpbmNsdWRlL3N0ZGxpYi5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2xvY2Fs
ZWRlZi5oIiAxIDMgNAojIDM5ICIvdXNyL2luY2x1ZGUvc3lzL2xvY2FsZWRlZi5oIiAzIDQKc3Ry
dWN0IF9fTENfbG9jYWxlOwpzdHJ1Y3QgX0xDX2xvY2FsZV9vYmpoZGw7CgoKIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL2xjX2NvcmUuaCIgMSAzIDQKIyA1MiAiL3Vzci9pbmNsdWRlL3N5cy9sY19jb3Jl
LmgiIDMgNAp0eXBlZGVmIHN0cnVjdCB7CgogICAgdW5zaWduZWQgc2hvcnQKICAgICAgICBfX3R5
cGVfaWQsCiAgICAgICAgX19tYWdpYzsKICAgIHVuc2lnbmVkIGxvbmcKICAgICAgICBfX3ZlcnNp
b247CgogICAgc2l6ZV90IF9fc2l6ZTsKCn0gX0xDX29iamVjdF90OwojIDEwMiAiL3Vzci9pbmNs
dWRlL3N5cy9sY19jb3JlLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCB7CgogICAgX0xDX29iamVjdF90
IF9faGRyOwoKCgogICAgaW50IF9fY2F0Z2V0czsKICAgIGludCBfX2NhdGNsb3NlOwoKCiAgICBp
bnQgX19jb21wcmVzczsKICAgIGludCBfX2RlY29tcHJlc3M7CiAgICBpbnQgX19zdGFydF9jb21w
cmVzczsKICAgIGludCBfX2VuZF9jb21wcmVzczsKCgogICAgaW50IF9faW5pdDsKICAgIHZvaWQg
Kl9fZGF0YTsKfSBfTENfY29yZV9jYXJfdDsKCnR5cGVkZWYgc3RydWN0IHsKCiAgICBfTENfb2Jq
ZWN0X3QgX19oZHI7CgoKICAgIGludCBfX25sX2xhbmdpbmZvOwoKCiAgICBpbnQgX19tYnRvd2M7
CiAgICBpbnQgX19tYnN0b3djczsKICAgIGludCBfX3djdG9tYjsKICAgIGludCBfX3djc3RvbWJz
OwoKCiAgICBpbnQgX19tYmxlbjsKCgogICAgaW50IF9fd2Nzd2lkdGg7CiAgICBpbnQgX193Y3dp
ZHRoOwoKCiAgICBpbnQgX19tYnRvcGM7CiAgICBpbnQgX19tYnN0b3BjczsKICAgIGludCBfX3Bj
dG9tYjsKICAgIGludCBfX3Bjc3RvbWJzOwoKCiAgICBpbnQgX19jc2lkOwogICAgaW50IF9fd2Nz
aWQ7CgoKICAgIGludCBfX2luaXQ7CiAgICB2b2lkICpfX2RhdGE7Cn0gX0xDX2NvcmVfY2hhcm1h
cF90OwoKCnR5cGVkZWYgc3RydWN0IHsKCiAgICBfTENfb2JqZWN0X3QgX19oZHI7CgoKICAgIGlu
dCBfX3Rvd3VwcGVyOwogICAgaW50IF9fdG93bG93ZXI7CgoKICAgIGludCBfX2dldF93Y3R5cGU7
CiAgICBpbnQgX19pc193Y3R5cGU7CgoKICAgIGludCBfX2luaXQ7CiAgICB2b2lkICpfX2RhdGE7
Cn0gX0xDX2NvcmVfY3R5cGVfdDsKCnR5cGVkZWYgc3RydWN0IHsKCiAgICBfTENfb2JqZWN0X3Qg
X19oZHI7CgoKICAgIGludCBfX3N0cmNvbGw7CiAgICBpbnQgX19zdHJ4ZnJtOwoKCiAgICBpbnQg
X193Y3Njb2xsOwogICAgaW50IF9fd2NzeGZybTsKCgogICAgaW50IF9fZm5tYXRjaDsKCgogICAg
aW50IF9fcmVnY29tcDsKICAgIGludCBfX3JlZ2Vycm9yOwogICAgaW50IF9fcmVnZXhlYzsKICAg
IGludCBfX3JlZ2ZyZWU7CgoKICAgIGludCBfX2luaXQ7CiAgICB2b2lkICpfX2RhdGE7Cn0gX0xD
X2NvcmVfY29sbGF0ZV90OwoKCnR5cGVkZWYgc3RydWN0IHsKCiAgICBfTENfb2JqZWN0X3QgX19o
ZHI7CgoKICAgIGludCBfX25sX2xhbmdpbmZvOwoKCiAgICBpbnQgX19zdHJmdGltZTsKICAgIGlu
dCBfX3N0cnB0aW1lOwoKCiAgICBpbnQgX193Y3NmdGltZTsKCgogICAgaW50IF9faW5pdDsKICAg
IHZvaWQgKl9fZGF0YTsKfSBfTENfY29yZV90aW1lX3Q7CgoKdHlwZWRlZiBzdHJ1Y3QgewoKICAg
IF9MQ19vYmplY3RfdCBfX2hkcjsKCgogICAgaW50IF9fbmxfbGFuZ2luZm87CgoKICAgIGludCBf
X3N0cmZtb247CgoKICAgIGludCBfX2luaXQ7CiAgICB2b2lkICpfX2RhdGE7Cn0gX0xDX2NvcmVf
bW9uZXRhcnlfdDsKCgp0eXBlZGVmIHN0cnVjdCB7CgogICAgX0xDX29iamVjdF90IF9faGRyOwoK
CiAgICBpbnQgX19ubF9sYW5naW5mbzsKCgogICAgaW50IF9faW5pdDsKICAgIHZvaWQgKl9fZGF0
YTsKfSBfTENfY29yZV9udW1lcmljX3Q7CgoKdHlwZWRlZiBzdHJ1Y3QgewoKICAgIF9MQ19vYmpl
Y3RfdCBfX2hkcjsKCgogICAgaW50IF9fbmxfbGFuZ2luZm87CgoKICAgIGludCBfX3JwbWF0Y2g7
CgoKICAgIGludCBfX2luaXQ7CiAgICB2b2lkICpfX2RhdGE7Cn0gX0xDX2NvcmVfcmVzcF90OwoK
dHlwZWRlZiBzdHJ1Y3QgewoKICAgIF9MQ19vYmplY3RfdCBfX2hkcjsKCgogICAgaW50IF9fbmxf
bGFuZ2luZm87CiAgICBpbnQgX19sb2NhbGVjb252OwoKCiAgICBpbnQgX19pbml0OwogICAgdm9p
ZCAqX19kYXRhOwp9IF9MQ19jb3JlX2xvY2FsZV90OwojIDQ0ICIvdXNyL2luY2x1ZGUvc3lzL2xv
Y2FsZWRlZi5oIiAyIDMgNAojIDEgImluY2x1ZGUvbG9jYWxlLmgiIDEgMyA0CiMgNjAgImluY2x1
ZGUvbG9jYWxlLmgiIDMgNApzdHJ1Y3QgbGNvbnYgewogICBjaGFyICpkZWNpbWFsX3BvaW50Owog
ICBjaGFyICp0aG91c2FuZHNfc2VwOwogICBjaGFyICpncm91cGluZzsKICAgY2hhciAqaW50X2N1
cnJfc3ltYm9sOwogICBjaGFyICpjdXJyZW5jeV9zeW1ib2w7CiAgIGNoYXIgKm1vbl9kZWNpbWFs
X3BvaW50OwogICBjaGFyICptb25fdGhvdXNhbmRzX3NlcDsKICAgY2hhciAqbW9uX2dyb3VwaW5n
OwogICBjaGFyICpwb3NpdGl2ZV9zaWduOwogICBjaGFyICpuZWdhdGl2ZV9zaWduOwogICBjaGFy
IGludF9mcmFjX2RpZ2l0czsKICAgY2hhciBmcmFjX2RpZ2l0czsKICAgY2hhciBwX2NzX3ByZWNl
ZGVzOwogICBjaGFyIHBfc2VwX2J5X3NwYWNlOwogICBjaGFyIG5fY3NfcHJlY2VkZXM7CiAgIGNo
YXIgbl9zZXBfYnlfc3BhY2U7CiAgIGNoYXIgcF9zaWduX3Bvc247CiAgIGNoYXIgbl9zaWduX3Bv
c247CgoKICAgY2hhciAqbGVmdF9wYXJlbnRoZXNpczsKICAgY2hhciAqcmlnaHRfcGFyZW50aGVz
aXM7CgoKCgoKCiAgIGNoYXIgaW50X3BfY3NfcHJlY2VkZXM7CiAgIGNoYXIgaW50X3Bfc2VwX2J5
X3NwYWNlOwogICBjaGFyIGludF9uX2NzX3ByZWNlZGVzOwogICBjaGFyIGludF9uX3NlcF9ieV9z
cGFjZTsKICAgY2hhciBpbnRfcF9zaWduX3Bvc247CiAgIGNoYXIgaW50X25fc2lnbl9wb3NuOwoj
IDEwMyAiaW5jbHVkZS9sb2NhbGUuaCIgMyA0Cn0gOwojIDExOSAiaW5jbHVkZS9sb2NhbGUuaCIg
MyA0CnN0cnVjdCBsY29udiAqbG9jYWxlY29udih2b2lkKTsKY2hhciAqc2V0bG9jYWxlKGludCwg
Y29uc3QgY2hhciAqKTsKCgoKCgp0eXBlZGVmIHN0cnVjdCBsY29udiBsY29udjsKIyA0NSAiL3Vz
ci9pbmNsdWRlL3N5cy9sb2NhbGVkZWYuaCIgMiAzIDQKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9s
b2NhbGVkZWYzMS5oIiAxIDMgNAojIDM5ICIvdXNyL2luY2x1ZGUvc3lzL2xvY2FsZWRlZjMxLmgi
IDMgNAp0eXBlZGVmIHN0cnVjdCBjb2xkZXNjIHsKICAgICAgICBzaG9ydCBjZF9zdHJvZmY7CiAg
ICAgICAgc2hvcnQgY2RfcmVwb2ZmOwogICAgICAgIHNob3J0IGNkX2N2YWw7CiAgICAgICAgc2hv
cnQgY2RfY3VuaXE7Cn0gY29sZGVzY190OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgY29sbGF0aW9uX3Rh
YmxlIHsKICAgICAgICBzaG9ydCBsY192ZXJzaW9uOwogICAgICAgIHNob3J0IGxjX2xlbmd0aDsK
ICAgICAgICBjaGFyICpsY19sb2NhbGVfbmFtZTsKICAgICAgICBpbnQgbGVuX2NvbGxhdGU7CiAg
ICAgICAgc2hvcnQgKmxjX2NvbGxhdGU7CiAgICAgICAgaW50IGxlbl9jb2x1bmlxOwogICAgICAg
IHNob3J0ICpsY19jb2x1bmlxOwogICAgICAgIGludCBsZW5fY29sZGVzYzsKICAgICAgICBjb2xk
ZXNjX3QgKmxjX2NvbGRlc2M7CiAgICAgICAgaW50IGxlbl9zdHJpbmdzOwogICAgICAgIHdjaGFy
X3QgKmxjX3N0cmluZ3M7CiAgICAgICAgaW50IGhpZ2hfY3ZhbHVlOwp9IGNvbF90OwoKCgoKCgoK
dHlwZWRlZiBzdHJ1Y3QgY2hhcl9jbGFzc2lmaWNhdGlvbl90YWJsZSB7CiAgICAgICAgc2hvcnQg
bGNfdmVyc2lvbjsKICAgICAgICBzaG9ydCBsY19sZW5ndGg7CiAgICAgICAgc2hvcnQgbGNfY29k
ZV90eXBlOwogICAgICAgIHNob3J0IG1iX2N1cl9tYXg7CiAgICAgICAgc2hvcnQgbWJfY3VyX21p
bjsKICAgICAgICBzaG9ydCBsY19kc3Bfd2lkdGg7CiAgICAgICAgY2hhciAqbGNfbG9jYWxlX25h
bWU7CiAgICAgICAgaW50IGxlbl9jYXNlY29udjsKICAgICAgICB3Y2hhcl90ICpsY19jYXNlY29u
djsKICAgICAgICBpbnQgbGVuX2N0eXBlOwogICAgICAgIHVuc2lnbmVkIHNob3J0ICpsY19jdHlw
ZTsKfSBjdHlwZV90OwoKCgoKCnR5cGVkZWYgc3RydWN0IGxjX21vbmV0YXJ5X3RhYmxlIHsKICAg
ICAgICBzaG9ydCBsY192ZXJzaW9uOwogICAgICAgIHNob3J0IGxjX2xlbmd0aDsKICAgICAgICBj
aGFyICpsY19sb2NhbGVfbmFtZTsKICAgICAgICBjaGFyICppbnRfY3Vycl9zeW1ib2w7CiAgICAg
ICAgY2hhciAqY3VycmVuY3lfc3ltYm9sOwogICAgICAgIGNoYXIgKm1vbl9kZWNpbWFsX3BvaW50
OwogICAgICAgIGNoYXIgKm1vbl90aG91c2FuZHNfc2VwOwogICAgICAgIGNoYXIgKm1vbl9ncm91
cGluZzsKICAgICAgICBjaGFyICpwb3NpdGl2ZV9zaWduOwogICAgICAgIGNoYXIgKm5lZ2F0aXZl
X3NpZ247CiAgICAgICAgY2hhciBpbnRfZnJhY19kaWdpdHM7CiAgICAgICAgY2hhciBmcmFjX2Rp
Z2l0czsKICAgICAgICBjaGFyIHBfY3NfcHJlY2VkZXM7CiAgICAgICAgY2hhciBwX3NlcF9ieV9z
cGFjZTsKICAgICAgICBjaGFyIG5fY3NfcHJlY2VkZXM7CiAgICAgICAgY2hhciBuX3NlcF9ieV9z
cGFjZTsKICAgICAgICBjaGFyIHBfc2lnbl9wb3NuOwogICAgICAgIGNoYXIgbl9zaWduX3Bvc247
Cn0gbW9uX3Q7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgbnVtZXJpY190YWJsZSB7CiAgICAgICAgc2hv
cnQgbGNfdmVyc2lvbjsKICAgICAgICBzaG9ydCBsY19sZW5ndGg7CiAgICAgICAgY2hhciAqbGNf
bG9jYWxlX25hbWU7CiAgICAgICAgY2hhciAqZGVjaW1hbF9wb2ludDsKICAgICAgICBjaGFyICp0
aG91c2FuZHNfc2VwOwogICAgICAgIGNoYXIgKmdyb3VwaW5nOwp9IG51bV90OwoKCgoKCnR5cGVk
ZWYgc3RydWN0IGxjX21lc3NhZ2VzX3RhYmxlIHsKICAgICAgICBzaG9ydCBsY192ZXJzaW9uOwog
ICAgICAgIHNob3J0IGxjX2xlbmd0aDsKICAgICAgICBjaGFyICpsY19sb2NhbGVfbmFtZTsKICAg
ICAgICBjaGFyICptZXNzYWdlczsKICAgICAgICBjaGFyICp5ZXNfc3RyaW5nOwogICAgICAgIGNo
YXIgKm5vX3N0cmluZzsKfSBtc2dfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdCBsY190aW1lX3RhYmxl
IHsKICAgICAgICBzaG9ydCBsY192ZXJzaW9uOwogICAgICAgIHNob3J0IGxjX2xlbmd0aDsKICAg
ICAgICBjaGFyICpsY19sb2NhbGVfbmFtZTsKICAgICAgICBjaGFyICp0X2ZtdDsKICAgICAgICBj
aGFyICpkX2ZtdDsKICAgICAgICBjaGFyICpubGxkYXRlOwogICAgICAgIGNoYXIgKmRfdF9mbXQ7
CiAgICAgICAgY2hhciAqYWJkYXk7CiAgICAgICAgY2hhciAqZGF5OwogICAgICAgIGNoYXIgKmFi
bW9uOwogICAgICAgIGNoYXIgKm1vbjsKCgoKCiAgICAgICAgY2hhciAqbWlzYzsKICAgICAgICBj
aGFyICp0c3RyczsKICAgICAgICBjaGFyICp0dW5pdHM7CgoKCiAgICAgICAgY2hhciAqeWVhcjsK
ICAgICAgICBjaGFyICphbV9wbTsKfSB0aW1fdDsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3Qgd2NoYXJf
bWFwcGluZ190YWJsZSB7CiAgICAgICAgc2hvcnQgbGNfdmVyc2lvbjsKICAgICAgICBzaG9ydCBs
Y19sZW5ndGg7CiAgICAgICAgY2hhciAqbGNfaWRlbnRpZmllcjsKfSBtYXBfdDsKIyAxODMgIi91
c3IvaW5jbHVkZS9zeXMvbG9jYWxlZGVmMzEuaCIgMyA0CnR5cGVkZWYgc3RydWN0IGxvY2FsZWlu
Zm9fdGFibGUgewogICAgICAgIGNoYXIgbGNfbWFnMCwgbGNfbWFnMTsKICAgICAgICBzaG9ydCBs
Y192ZXJzaW9uOwogICAgICAgIHNob3J0IGxjX2NvZGVfdHlwZTsKICAgICAgICBzaG9ydCBsY19s
ZW5ndGg7CiAgICAgICAgY29sX3QgKmxjX2NvbHRibDsKICAgICAgICBjdHlwZV90ICpsY19jaHJ0
Ymw7CiAgICAgICAgbW9uX3QgKmxjX21vbnRibDsKICAgICAgICBudW1fdCAqbGNfbnVtdGJsOwog
ICAgICAgIHRpbV90ICpsY190aW10Ymw7CiAgICAgICAgbXNnX3QgKmxjX21zZ3RibDsKICAgICAg
ICBtYXBfdCAqbGNfbWFwdGJsOwp9IGxvY190OwojIDQ3ICIvdXNyL2luY2x1ZGUvc3lzL2xvY2Fs
ZWRlZi5oIiAyIDMgNAojIDY2ICIvdXNyL2luY2x1ZGUvc3lzL2xvY2FsZWRlZi5oIiAzIDQKdHlw
ZWRlZiBzdHJ1Y3QgewoKICAgIF9MQ19jb3JlX2NoYXJtYXBfdCBjb3JlOwoKICAgIGNoYXIgKmNt
X2NzbmFtZTsKCiAgICBzaXplX3QgY21fbWJfY3VyX21heDsKICAgIHNpemVfdCBjbV9tYl9jdXJf
bWluOwoKICAgIHVuc2lnbmVkIGNoYXIKICAgICAgICAgICAgIGNtX21heF9kaXNwX3dpZHRoOwoK
CiAgICB1bnNpZ25lZAogICAgICAgIGNoYXIgKmNtX2NzdGFiOwoKICAgIHN0cnVjdCBfX0xDX2xv
Y2FsZQogICAgICAgICAgICAgKmxvY19yZWM7CgogICAgdm9pZCAqX19tZXRoX3B0cjsKICAgIHZv
aWQgKl9fZGF0YV9wdHI7Cgp9IF9MQ19jaGFybWFwX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfTENfY2hh
cm1hcF9vYmpoZGwgX0xDX2NoYXJtYXBfb2JqaGRsX3Q7CgpzdHJ1Y3QgX0xDX2NoYXJtYXBfb2Jq
aGRsIHsKICAgICAgICBfTENfY2hhcm1hcF90ICpvYmo7CgoKICAgICAgICB2b2lkICooKiptZXRo
KSgpOwoKCnN0cnVjdCBfTENfbG9jYWxlX29iamhkbCAqbG9jX2hkbDsKCgp9OwoKCgoKCgoKdHlw
ZWRlZiBzdHJ1Y3QgewoKICAgIF9MQ19jb3JlX21vbmV0YXJ5X3QgY29yZTsKCiAgICBjaGFyICpp
bnRfY3Vycl9zeW1ib2w7CiAgICBjaGFyICpjdXJyZW5jeV9zeW1ib2w7CiAgICBjaGFyICptb25f
ZGVjaW1hbF9wb2ludDsKICAgIGNoYXIgKm1vbl90aG91c2FuZHNfc2VwOwogICAgY2hhciAqbW9u
X2dyb3VwaW5nOwogICAgY2hhciAqcG9zaXRpdmVfc2lnbjsKICAgIGNoYXIgKm5lZ2F0aXZlX3Np
Z247CiAgICBzaWduZWQgY2hhciBpbnRfZnJhY19kaWdpdHM7CiAgICBzaWduZWQgY2hhciBmcmFj
X2RpZ2l0czsKICAgIHNpZ25lZCBjaGFyIHBfY3NfcHJlY2VkZXM7CiAgICBzaWduZWQgY2hhciBw
X3NlcF9ieV9zcGFjZTsKICAgIHNpZ25lZCBjaGFyIG5fY3NfcHJlY2VkZXM7CiAgICBzaWduZWQg
Y2hhciBuX3NlcF9ieV9zcGFjZTsKICAgIHNpZ25lZCBjaGFyIHBfc2lnbl9wb3NuOwogICAgc2ln
bmVkIGNoYXIgbl9zaWduX3Bvc247CiAgICBjaGFyICpkZWJpdF9zaWduOwogICAgY2hhciAqY3Jl
ZGl0X3NpZ247CiAgICBjaGFyICpsZWZ0X3BhcmVudGhlc2lzOwogICAgY2hhciAqcmlnaHRfcGFy
ZW50aGVzaXM7CgogICAgc3RydWN0IF9fTENfbG9jYWxlCiAgICAgICAgICAgICAqbG9jX3JlYzsK
CiAgICB2b2lkICpfX21ldGhfcHRyOwogICAgdm9pZCAqX19kYXRhX3B0cjsKCgogICAgc2lnbmVk
IGNoYXIgaW50X3BfY3NfcHJlY2VkZXM7CiAgICBzaWduZWQgY2hhciBpbnRfcF9zZXBfYnlfc3Bh
Y2U7CiAgICBzaWduZWQgY2hhciBpbnRfbl9jc19wcmVjZWRlczsKICAgIHNpZ25lZCBjaGFyIGlu
dF9uX3NlcF9ieV9zcGFjZTsKICAgIHNpZ25lZCBjaGFyIGludF9wX3NpZ25fcG9zbjsKICAgIHNp
Z25lZCBjaGFyIGludF9uX3NpZ25fcG9zbjsKIyAxNTYgIi91c3IvaW5jbHVkZS9zeXMvbG9jYWxl
ZGVmLmgiIDMgNAp9IF9MQ19tb25ldGFyeV90OwoKdHlwZWRlZiBzdHJ1Y3QgX0xDX21vbmV0YXJ5
X29iamhkbCBfTENfbW9uZXRhcnlfb2JqaGRsX3Q7CnN0cnVjdCBfTENfbW9uZXRhcnlfb2JqaGRs
IHsKICAgICAgICBfTENfbW9uZXRhcnlfdCAqb2JqOwoKCiAgICAgICAgdm9pZCAqKCoqbWV0aCko
KTsKCgpzdHJ1Y3QgX0xDX2xvY2FsZV9vYmpoZGwgKmxvY19oZGw7CgoKfTsKCgoKCgoKdHlwZWRl
ZiBzdHJ1Y3QgewoKICAgIF9MQ19jb3JlX251bWVyaWNfdCBjb3JlOwoKICAgIGNoYXIgKmRlY2lt
YWxfcG9pbnQ7CiAgICBjaGFyICp0aG91c2FuZHNfc2VwOwogICAgdW5zaWduZWQKICAgICAgICBj
aGFyICpncm91cGluZzsKCiAgICBzdHJ1Y3QgX19MQ19sb2NhbGUKICAgICAgICAgICAgICpsb2Nf
cmVjOwoKICAgIHZvaWQgKl9fbWV0aF9wdHI7CiAgICB2b2lkICpfX2RhdGFfcHRyOwoKfSBfTENf
bnVtZXJpY190OwoKdHlwZWRlZiBzdHJ1Y3QgX0xDX251bWVyaWNfb2JqaGRsIF9MQ19udW1lcmlj
X29iamhkbF90OwpzdHJ1Y3QgX0xDX251bWVyaWNfb2JqaGRsIHsKICAgICAgICBfTENfbnVtZXJp
Y190ICpvYmo7CgoKICAgICAgICB2b2lkICooKiptZXRoKSgpOwoKCnN0cnVjdCBfTENfbG9jYWxl
X29iamhkbCAqbG9jX2hkbDsKCgp9OwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewoKICAgIF9MQ19j
b3JlX3Jlc3BfdCBjb3JlOwoKICAgIGNoYXIgKnllc2V4cHI7CiAgICBjaGFyICpub2V4cHI7CiAg
ICBjaGFyICp5ZXNzdHI7CiAgICBjaGFyICpub3N0cjsKCiAgICBzdHJ1Y3QgX19MQ19sb2NhbGUK
ICAgICAgICAgICAgICpsb2NfcmVjOwoKICAgIHZvaWQgKl9fbWV0aF9wdHI7CiAgICB2b2lkICpf
X2RhdGFfcHRyOwoKfSBfTENfcmVzcF90OwoKdHlwZWRlZiBzdHJ1Y3QgX0xDX3Jlc3Bfb2JqaGRs
IF9MQ19yZXNwX29iamhkbF90OwpzdHJ1Y3QgX0xDX3Jlc3Bfb2JqaGRsIHsKICAgICAgICBfTENf
cmVzcF90ICpvYmo7CgoKICAgICAgICB2b2lkICooKiptZXRoKSgpOwoKCnN0cnVjdCBfTENfbG9j
YWxlX29iamhkbCAqbG9jX2hkbDsKCgp9OwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewoKICAgIF9M
Q19jb3JlX3RpbWVfdCBjb3JlOwoKICAgIGNoYXIgKmRfZm10OwogICAgY2hhciAqdF9mbXQ7CiAg
ICBjaGFyICpkX3RfZm10OwogICAgY2hhciAqdF9mbXRfYW1wbTsKICAgIGNoYXIgKmFiZGF5Wzdd
OwogICAgY2hhciAqZGF5WzddOwogICAgY2hhciAqYWJtb25bMTJdOwogICAgY2hhciAqbW9uWzEy
XTsKICAgIGNoYXIgKmFtX3BtWzJdOwogICAgY2hhciAqZXJhOwogICAgY2hhciAqZXJhX3llYXI7
CiAgICBjaGFyICplcmFfZF9mbXQ7CiAgICBjaGFyICphbHRfZGlnaXRzOwogICAgY2hhciAqZXJh
X2RfdF9mbXQ7CiAgICBjaGFyICplcmFfdF9mbXQ7CgogICAgc3RydWN0IF9fTENfbG9jYWxlCiAg
ICAgICAgICAgICAqbG9jX3JlYzsKCiAgICB2b2lkICpfX21ldGhfcHRyOwogICAgdm9pZCAqX19k
YXRhX3B0cjsKCn0gX0xDX3RpbWVfdDsKCnR5cGVkZWYgc3RydWN0IF9MQ190aW1lX29iamhkbCBf
TENfdGltZV9vYmpoZGxfdDsKc3RydWN0IF9MQ190aW1lX29iamhkbCB7CiAgICAgICAgX0xDX3Rp
bWVfdCAqb2JqOwoKCiAgICAgICAgdm9pZCAqKCoqbWV0aCkoKTsKCgpzdHJ1Y3QgX0xDX2xvY2Fs
ZV9vYmpoZGwgKmxvY19oZGw7CgoKfTsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5zaWdu
ZWQKICAgICAgICBzaG9ydCBuWzQgKzFdOwp9IF9MQ193ZWlnaHRfdDsKCgoKCgoKdHlwZWRlZiBz
dHJ1Y3QgewoKICAgIGNoYXIgKmNlX3N5bTsKICAgIF9MQ193ZWlnaHRfdCBjZV93Z3Q7Cgp9IF9M
Q19jb2xsZWxfdDsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgX0xDX3dlaWdodF90IGN0X3dn
dDsKCgogICAgX0xDX2NvbGxlbF90ICpjdF9jb2xsZWw7Cgp9IF9MQ19jb2x0YmxfdDsKIyAzMzUg
Ii91c3IvaW5jbHVkZS9zeXMvbG9jYWxlZGVmLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCB7CiAgICBj
aGFyICp0Z3Rfd2d0X3N0cls0ICsxXTsKCgp9IF9MQ19zdWJzX3Q7CgoKCgoKCgp0eXBlZGVmIHN0
cnVjdCB7CgogICAgX0xDX2NvcmVfY29sbGF0ZV90IGNvcmU7CgogICAgdW5zaWduZWQKICAgICAg
ICBjaGFyIGNvX25vcmQ7CgogICAgX0xDX3dlaWdodF90IGNvX3NvcnQ7CgoKICAgIHdjaGFyX3Qg
Y29fd2NfbWluOwogICAgd2NoYXJfdCBjb193Y19tYXg7CgogICAgd2NoYXJfdCBjb19jb2xfbWlu
OwogICAgd2NoYXJfdCBjb19jb2xfbWF4OwoKICAgIF9MQ19jb2x0YmxfdCAqY29fY29sdGJsOwoK
ICAgIHVuc2lnbmVkCiAgICAgICAgY2hhciBjb19uc3ViczsKICAgIF9MQ19zdWJzX3QgKmNvX3N1
YnM7CgogICAgdW5zaWduZWQKICAgICAgICBzaG9ydCBjb19zcGVjaWFsOwoKCgoKICAgIHN0cnVj
dCBfX0xDX2xvY2FsZQogICAgICAgICAgICAgICAgKmxvY19yZWM7CgogICAgdm9pZCAqX19tZXRo
X3B0cjsKICAgIHZvaWQgKl9fZGF0YV9wdHI7Cgp9IF9MQ19jb2xsYXRlX3Q7Cgp0eXBlZGVmIHN0
cnVjdCBfTENfY29sbGF0ZV9vYmpoZGwgX0xDX2NvbGxhdGVfb2JqaGRsX3Q7CnN0cnVjdCBfTENf
Y29sbGF0ZV9vYmpoZGwgewogICAgICAgIF9MQ19jb2xsYXRlX3QgKm9iajsKCgogICAgICAgIHZv
aWQgKigqKm1ldGgpKCk7CgoKc3RydWN0IF9MQ19sb2NhbGVfb2JqaGRsICpsb2NfaGRsOwoKCn07
CiMgNDA4ICIvdXNyL2luY2x1ZGUvc3lzL2xvY2FsZWRlZi5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3Qg
ewoKICAgIGNoYXIgKm5hbWU7CiAgICB1bnNpZ25lZAogICAgICAgIGludCBtYXNrOwoKfSBfTENf
Y2xhc3NubV90OwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewoKICBfTENfY29yZV9jdHlwZV90IGNv
cmU7CgoKICB3Y2hhcl90IG1pbl93YzsKICB3Y2hhcl90IG1heF93YzsKCgogIHdjaGFyX3QgKnVw
cGVyOwogIHdjaGFyX3QgKmxvd2VyOwoKCiAgdW5zaWduZWQKICAgICAgaW50ICptYXNrOwogIHVu
c2lnbmVkCiAgICAgIGludCAqcW1hc2s7CiAgdW5zaWduZWQKICAgICAgY2hhciAqcWlkeDsKCgog
IHVuc2lnbmVkCiAgICAgIGNoYXIgbmNsYXNzZXM7CiBfTENfY2xhc3NubV90ICpjbGFzc25tczsK
CiAgICBzdHJ1Y3QgX19MQ19sb2NhbGUKICAgICAgICAgICAgICAgKmxvY19yZWM7CgogICAgdm9p
ZCAqX19tZXRoX3B0cjsKICAgIHZvaWQgKl9fZGF0YV9wdHI7Cgp9IF9MQ19jdHlwZV90OwoKdHlw
ZWRlZiBzdHJ1Y3QgX0xDX2N0eXBlX29iamhkbCBfTENfY3R5cGVfb2JqaGRsX3Q7CnN0cnVjdCBf
TENfY3R5cGVfb2JqaGRsIHsKICAgICAgICBfTENfY3R5cGVfdCAqb2JqOwoKCiAgICAgICAgdm9p
ZCAqKCoqbWV0aCkoKTsKCgpzdHJ1Y3QgX0xDX2xvY2FsZV9vYmpoZGwgKmxvY19oZGw7CgoKfTsK
IyA0ODEgIi91c3IvaW5jbHVkZS9zeXMvbG9jYWxlZGVmLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCBf
X0xDX2xvY2FsZSB7CgogICAgX0xDX2NvcmVfbG9jYWxlX3QgY29yZTsKCiAgICBjaGFyICpubF9p
bmZvWzYzXTsKICAgIHN0cnVjdCBsY29udiAqbmxfbGNvbnY7CgogICAgX0xDX2NoYXJtYXBfb2Jq
aGRsX3QgbGNfY2hhcm1hcDsKICAgIF9MQ19jb2xsYXRlX29iamhkbF90IGxjX2NvbGxhdGU7CiAg
ICBfTENfY3R5cGVfb2JqaGRsX3QgbGNfY3R5cGU7CiAgICBfTENfbW9uZXRhcnlfb2JqaGRsX3Qg
bGNfbW9uZXRhcnk7CiAgICBfTENfbnVtZXJpY19vYmpoZGxfdCBsY19udW1lcmljOwogICAgX0xD
X3Jlc3Bfb2JqaGRsX3QgbGNfcmVzcDsKICAgIF9MQ190aW1lX29iamhkbF90IGxjX3RpbWU7Cgog
ICAgc3RydWN0IF9fTENfbG9jYWxlICpsb2NfcmVjOwoKCiAgICB2b2lkICpfX21ldGhfcHRyOwog
ICAgdm9pZCAqX19kYXRhX3B0cjsKCiAgICBjaGFyICpfX25sX3llc3N0cjsKICAgIGNoYXIgKl9f
bmxfbm9zdHI7CiAgICBjaGFyICpfX25sX2NybmN5c3RyOwoKfSBfTENfbG9jYWxlX3Q7Cgp0eXBl
ZGVmIHN0cnVjdCBfTENfbG9jYWxlX29iamhkbCBfTENfbG9jYWxlX29iamhkbF90OwpzdHJ1Y3Qg
X0xDX2xvY2FsZV9vYmpoZGwgewogICAgICAgIF9MQ19sb2NhbGVfdCAqb2JqOwoKCiAgICAgICAg
dm9pZCAqKCoqbWV0aCkoKTsKCgpzdHJ1Y3QgX0xDX2xvY2FsZV9vYmpoZGwgKmxvY19oZGw7CgoK
fTsKIyA1MjggIi91c3IvaW5jbHVkZS9zeXMvbG9jYWxlZGVmLmgiIDMgNAp0eXBlZGVmIHN0cnVj
dCBfTENfb2JqZWN0X2hhbmRsZSBfTENfb2JqZWN0X2hhbmRsZV90OwpzdHJ1Y3QgX0xDX29iamVj
dF9oYW5kbGUgewogICAgdW5pb24gewogICAgICAgIF9MQ19vYmplY3RfdCBsY19vYmplY3Q7CiAg
ICAgICAgX0xDX2xvY2FsZV9vYmpoZGxfdCBsY19sb2NhbGU7CiAgICAgICAgX0xDX2NoYXJtYXBf
b2JqaGRsX3QgbGNfY2hhcm1hcDsKICAgICAgICBfTENfY29sbGF0ZV9vYmpoZGxfdCBsY19jb2xs
YXRlOwogICAgICAgIF9MQ19jdHlwZV9vYmpoZGxfdCBsY19jdHlwZTsKICAgICAgICBfTENfbW9u
ZXRhcnlfb2JqaGRsX3QgbGNfbW9uZXRhcnk7CiAgICAgICAgX0xDX251bWVyaWNfb2JqaGRsX3Qg
bGNfbnVtZXJpYzsKICAgICAgICBfTENfcmVzcF9vYmpoZGxfdCBsY19yZXNwOwogICAgICAgIF9M
Q190aW1lX29iamhkbF90IGxjX3RpbWU7CiAgICB9IG9iajsKCgogICAgdm9pZCAqKCoqbWV0aCko
KTsKCgpzdHJ1Y3QgX0xDX2xvY2FsZV9vYmpoZGwgKmxvY19oZGw7CgoKfTsKCgp0eXBlZGVmIHN0
cnVjdCB7CiAgICBfTENfb2JqZWN0X3QgaGRyOwogICAgX0xDX2xvY2FsZV9vYmpoZGxfdCBoYW5k
bGU7Cn0gX0xDX2xvYWRfb2JqZWN0X3Q7CgoKCgoKCgpleHRlcm4gX0xDX2NoYXJtYXBfb2JqaGRs
X3QgX19sY19jaGFybWFwOwpleHRlcm4gX0xDX2NvbGxhdGVfb2JqaGRsX3QgX19sY19jb2xsYXRl
OwpleHRlcm4gX0xDX2N0eXBlX29iamhkbF90IF9fbGNfY3R5cGU7CmV4dGVybiBfTENfbW9uZXRh
cnlfb2JqaGRsX3QgX19sY19tb25ldGFyeTsKZXh0ZXJuIF9MQ19udW1lcmljX29iamhkbF90IF9f
bGNfbnVtZXJpYzsKZXh0ZXJuIF9MQ19yZXNwX29iamhkbF90IF9fbGNfcmVzcDsKZXh0ZXJuIF9M
Q190aW1lX29iamhkbF90IF9fbGNfdGltZTsKZXh0ZXJuIF9MQ19sb2NhbGVfb2JqaGRsX3QgX19s
Y19sb2NhbGU7CiMgNTM5ICJpbmNsdWRlL3N0ZGxpYi5oIiAyIDMgNAojIDU1MSAiaW5jbHVkZS9z
dGRsaWIuaCIgMyA0CmV4dGVybiBjaGFyICpvcHRhcmc7CmV4dGVybiBpbnQgb3B0aW5kOwpleHRl
cm4gaW50IG9wdGVycjsKIyA1NjkgImluY2x1ZGUvc3RkbGliLmgiIDMgNAogICAgICAgIGV4dGVy
biBmbG9hdCBhdG9mZihjaGFyICopOwogICAgICAgIGV4dGVybiBpbnQgc2V0ZW52KGNvbnN0IGNo
YXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwogICAgICAgIGV4dGVybiBpbnQgdW5zZXRlbnYoY29u
c3QgY2hhciAqKTsKICAgICAgICBleHRlcm4gdm9pZCBpbXVsX2RibChsb25nLCBsb25nLCBsb25n
ICopOwogICAgICAgIGV4dGVybiB2b2lkIHVtdWxfZGJsKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVk
IGxvbmcsIHVuc2lnbmVkIGxvbmcgKik7CiAgICAgICAgZXh0ZXJuIGludCBvbl9leGl0KHZvaWQg
KCopKGludCwgdm9pZCAqKSwgdm9pZCAqKTsKIyA1OTkgImluY2x1ZGUvc3RkbGliLmgiIDMgNAog
ICAgICAgIGV4dGVybiBkb3VibGUgd2NzdG9kKGNvbnN0IHdjaGFyX3QgKiwgd2NoYXJfdCAqKik7
CiAgICAgICAgZXh0ZXJuIGxvbmcgaW50IHdjc3RvbChjb25zdCB3Y2hhcl90ICosIHdjaGFyX3Qg
KiosIGludCk7CiAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50IHdjc3RvdWwoY29uc3Qg
d2NoYXJfdCAqLCB3Y2hhcl90ICoqLCBpbnQpOwoKICAgICAgICBleHRlcm4gaW50IHJwbWF0Y2go
Y29uc3QgY2hhciAqKTsKICAgICAgICBleHRlcm4gaW50IGNsZWFyZW52KHZvaWQpOwogICAgICAg
IGV4dGVybiBpbnQgZ2V0b3B0KGludCwgY2hhciogY29uc3QqLCBjb25zdCBjaGFyKik7CiAgICAg
ICAgZXh0ZXJuIGNoYXIgKmdldHBhc3MoY29uc3QgY2hhciAqKTsKCiAgICAgICAgZXh0ZXJuIGlu
dCB0dHlzbG90KHZvaWQpOwogICAgICAgIGV4dGVybiB2b2lkICp2YWxsb2Moc2l6ZV90KTsKIyA4
MSAiLi4vLi4vZ2NjLTMuMi4yL2djYy90c3lzdGVtLmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvdW5p
c3RkLmgiIDEgMyA0CiMgNTQgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0CiMgMSAiL3Vzci9p
bmNsdWRlL3N5cy9hY2Nlc3MuaCIgMSAzIDQKIyA4NiAiL3Vzci9pbmNsdWRlL3N5cy9hY2Nlc3Mu
aCIgMyA0CiAgICAgICAgZXh0ZXJuIGNoYXIgKmFjbF9nZXQoY2hhciAqKTsKICAgICAgICBleHRl
cm4gY2hhciAqYWNsX2ZnZXQoaW50KTsKICAgICAgICBleHRlcm4gaW50IGFjbF9jaGcoY2hhciAq
LCBpbnQsIGludCwgaW50KTsKICAgICAgICBleHRlcm4gaW50IGFjbF9mY2hnKGludCwgaW50LCBp
bnQsIGludCk7CiAgICAgICAgZXh0ZXJuIGludCBhY2xfcHV0KGNoYXIgKiwgY2hhciAqLCBpbnQp
OwogICAgICAgIGV4dGVybiBpbnQgYWNsX2ZwdXQoaW50LCBjaGFyICosIGludCk7CiAgICAgICAg
ZXh0ZXJuIGludCBhY2xfc2V0KGNoYXIgKiwgaW50LCBpbnQsIGludCk7CiAgICAgICAgZXh0ZXJu
IGludCBhY2xfZnNldChpbnQsIGludCwgaW50LCBpbnQpOwogICAgICAgIGV4dGVybiBpbnQgYWNj
ZXNzeChjaGFyICosIGludCwgaW50KTsKIyA1NSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAyIDMg
NAojIDEzNCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKZXh0ZXJuIGludCBhY2Nlc3MoY29u
c3QgY2hhciAqLCBpbnQpOwpleHRlcm4gdW5zaWduZWQgaW50IGFsYXJtKHVuc2lnbmVkIGludCk7
CmV4dGVybiBpbnQgY2hkaXIoY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBjaG93bihjb25zdCBj
aGFyICosIHVpZF90LCBnaWRfdCk7CmV4dGVybiBpbnQgY2xvc2UoaW50KTsKZXh0ZXJuIGNoYXIg
KmN0ZXJtaWQoY2hhciAqKTsKZXh0ZXJuIGludCBkdXAoaW50KTsKZXh0ZXJuIGludCBkdXAyKGlu
dCwgaW50KTsKZXh0ZXJuIGludCBleGVjbChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4u
KTsKZXh0ZXJuIGludCBleGVjdihjb25zdCBjaGFyICosIGNoYXIgKmNvbnN0IFtdKTsKZXh0ZXJu
IGludCBleGVjbGUoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiBpbnQg
ZXhlY3ZlKGNvbnN0IGNoYXIgKiwgY2hhciAqY29uc3QgW10sIGNoYXIgKmNvbnN0IFtdKTsKZXh0
ZXJuIGludCBleGVjbHAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiBp
bnQgZXhlY3ZwKGNvbnN0IGNoYXIgKiwgY2hhciAqY29uc3QgW10pOwpleHRlcm4gdm9pZCBfZXhp
dChpbnQpOwpleHRlcm4gcGlkX3QgZm9yayh2b2lkKTsKZXh0ZXJuIGxvbmcgZnBhdGhjb25mKGlu
dCwgaW50KTsKZXh0ZXJuIGNoYXIgKmdldGN3ZChjaGFyICosIHNpemVfdCk7CmV4dGVybiBnaWRf
dCBnZXRlZ2lkKHZvaWQpOwpleHRlcm4gdWlkX3QgZ2V0ZXVpZCh2b2lkKTsKZXh0ZXJuIGdpZF90
IGdldGdpZCh2b2lkKTsKZXh0ZXJuIGludCBnZXRncm91cHMoaW50LCBnaWRfdCBbXSk7CmV4dGVy
biBjaGFyICpnZXRsb2dpbih2b2lkKTsKCmV4dGVybiBwaWRfdCBnZXRwZ3JwKHZvaWQpOwoKZXh0
ZXJuIHBpZF90IGdldHBpZCh2b2lkKTsKZXh0ZXJuIHBpZF90IGdldHBwaWQodm9pZCk7CmV4dGVy
biB1aWRfdCBnZXR1aWQodm9pZCk7CmV4dGVybiBpbnQgaXNhdHR5KGludCk7CmV4dGVybiBpbnQg
bGluayhjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBvZmZfdCBsc2VlayhpbnQs
IG9mZl90LCBpbnQpOwoKZXh0ZXJuIG9mZjY0X3QgbHNlZWs2NChpbnQsIG9mZjY0X3QsIGludCk7
CgpleHRlcm4gbG9uZyBwYXRoY29uZihjb25zdCBjaGFyICosIGludCk7CmV4dGVybiBpbnQgcGF1
c2Uodm9pZCk7CmV4dGVybiBpbnQgcGlwZShpbnQgW10pOwoKZXh0ZXJuIGludCBwdGhyZWFkX2F0
Zm9yayh2b2lkICgqKSh2b2lkKSwgdm9pZCAoKikodm9pZCksIHZvaWQgKCopKHZvaWQpKTsKCmV4
dGVybiBzc2l6ZV90IHJlYWQoaW50LCB2b2lkICosIHNpemVfdCk7CmV4dGVybiBpbnQgcm1kaXIo
Y29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBzZXRnaWQoZ2lkX3QpOwpleHRlcm4gaW50IHNldHBn
aWQocGlkX3QsIHBpZF90KTsKZXh0ZXJuIHBpZF90IHNldHNpZCh2b2lkKTsKZXh0ZXJuIGludCBz
ZXR1aWQodWlkX3QpOwpleHRlcm4gdW5zaWduZWQgaW50IHNsZWVwKHVuc2lnbmVkIGludCk7CmV4
dGVybiBsb25nIHN5c2NvbmYoaW50KTsKZXh0ZXJuIHBpZF90IHRjZ2V0cGdycChpbnQpOwpleHRl
cm4gaW50IHRjc2V0cGdycChpbnQsIHBpZF90KTsKZXh0ZXJuIGNoYXIgKnR0eW5hbWUoaW50KTsK
ZXh0ZXJuIGludCB1bmxpbmsoY29uc3QgY2hhciAqKTsKZXh0ZXJuIHNzaXplX3Qgd3JpdGUoaW50
LCBjb25zdCB2b2lkICosIHNpemVfdCk7CiMgMjM0ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMg
NApleHRlcm4gY2hhciAqb3B0YXJnOwpleHRlcm4gaW50IG9wdGluZCwgb3B0ZXJyLCBvcHRvcHQ7
CiMgMjQ5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAogICAgICAgIGV4dGVybiBzaXplX3Qg
Y29uZnN0cihpbnQsIGNoYXIqLCBzaXplX3QpOwogICAgICAgIGV4dGVybiBjaGFyICpjcnlwdChj
b25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiAgICAgICAgZXh0ZXJuIHZvaWQgZW5jcnlwdChj
aGFyICosIGludCk7CiAgICAgICAgZXh0ZXJuIGludCBmc3luYyhpbnQpOwogICAgICAgIGV4dGVy
biBpbnQgZ2V0b3B0KGludCwgY2hhciogY29uc3QqLCBjb25zdCBjaGFyKik7CiAgICAgICAgZXh0
ZXJuIGludCBuaWNlKGludCk7CiAgICAgICAgZXh0ZXJuIHZvaWQgc3dhYihjb25zdCB2b2lkICos
IHZvaWQgKiwgc3NpemVfdCk7CiAgICAgICAgZXh0ZXJuIGludCBjaHJvb3QoY29uc3QgY2hhciAq
KTsKICAgICAgICBleHRlcm4gY2hhciAqY3VzZXJpZChjaGFyICopOwogICAgICAgIGV4dGVybiBj
aGFyICpnZXRwYXNzKGNvbnN0IGNoYXIgKik7CiMgNTc4ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgi
IDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvbG9ja2YuaCIgMSAzIDQKIyA0NSAiL3Vzci9pbmNs
dWRlL3N5cy9sb2NrZi5oIiAzIDQKIyAxICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMSAzIDQK
IyA0OCAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMv
bW9kZS5oIiAxIDMgNAojIDQ5ICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMiAzIDQKIyA2MiAi
L3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNApzdHJ1Y3Qgc3RhdAp7CiAgICAgICAgZGV2X3Qg
c3RfZGV2OwoKCgoKICAgICAgICBpbm9fdCBzdF9pbm87CgoKCgogICAgICAgIG1vZGVfdCBzdF9t
b2RlOwoKICAgICAgICBubGlua190IHN0X25saW5rOwogICAgICAgIHVzaG9ydF90IHN0X2ZsYWc7
CgoKCgoKCiAgICAgICAgdWlkX3Qgc3RfdWlkOwogICAgICAgIGdpZF90IHN0X2dpZDsKCgogICAg
ICAgIGRldl90IHN0X3JkZXY7CgoKCiAgICAgICAgb2ZmX3Qgc3Rfc2l6ZTsKCgoKICAgICAgICB0
aW1lX3Qgc3RfYXRpbWU7CiAgICAgICAgaW50IHN0X3NwYXJlMTsKICAgICAgICB0aW1lX3Qgc3Rf
bXRpbWU7CiAgICAgICAgaW50IHN0X3NwYXJlMjsKICAgICAgICB0aW1lX3Qgc3RfY3RpbWU7CiAg
ICAgICAgaW50IHN0X3NwYXJlMzsKICAgICAgICBibGtzaXplX3Qgc3RfYmxrc2l6ZTsKICAgICAg
ICBibGtjbnRfdCBzdF9ibG9ja3M7CgoKICAgICAgICBpbnQgc3RfdmZzdHlwZTsKICAgICAgICB1
aW50X3Qgc3RfdmZzOwogICAgICAgIHVpbnRfdCBzdF90eXBlOwogICAgICAgIHVpbnRfdCBzdF9n
ZW47CgoKICAgICAgICB1aW50X3Qgc3RfcmVzZXJ2ZWRbOV07CgoKCgp9OwojIDE3NCAiL3Vzci9p
bmNsdWRlL3N5cy9zdGF0LmgiIDMgNApzdHJ1Y3Qgc3RhdDY0CnsKICAgICAgICBkZXZfdCBzdF9k
ZXY7CgoKCgogICAgICAgIGlub190IHN0X2lubzsKICAgICAgICBtb2RlX3Qgc3RfbW9kZTsKICAg
ICAgICBubGlua190IHN0X25saW5rOwogICAgICAgIHVzaG9ydF90IHN0X2ZsYWc7CiAgICAgICAg
dWlkX3Qgc3RfdWlkOwogICAgICAgIGdpZF90IHN0X2dpZDsKICAgICAgICBkZXZfdCBzdF9yZGV2
OwoKCiAgICAgICAgc29mZl90IHN0X3NzaXplOwogICAgICAgIHRpbWVfdCBzdF9hdGltZTsKICAg
ICAgICBpbnQgc3Rfc3BhcmUxOwogICAgICAgIHRpbWVfdCBzdF9tdGltZTsKICAgICAgICBpbnQg
c3Rfc3BhcmUyOwogICAgICAgIHRpbWVfdCBzdF9jdGltZTsKICAgICAgICBpbnQgc3Rfc3BhcmUz
OwogICAgICAgIGJsa3NpemVfdCBzdF9ibGtzaXplOwogICAgICAgIGJsa2NudF90IHN0X2Jsb2Nr
czsKCgogICAgICAgIGludCBzdF92ZnN0eXBlOwogICAgICAgIHVpbnRfdCBzdF92ZnM7CiAgICAg
ICAgdWludF90IHN0X3R5cGU7CiAgICAgICAgdWludF90IHN0X2dlbjsKICAgICAgICB1aW50X3Qg
c3RfcmVzZXJ2ZWRbMTBdOwoKCgogICAgICAgIG9mZjY0X3Qgc3Rfc2l6ZTsKCn07CiMgMjI1ICIv
dXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0CiAgICAgICAgZXh0ZXJuIG1vZGVfdCB1bWFzayht
b2RlX3QpOwojIDI1MyAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAogICAgICAgIGV4dGVy
biBpbnQgbWtkaXIoY29uc3QgY2hhciAqLCBtb2RlX3QpOwogICAgICAgIGV4dGVybiBpbnQgc3Rh
dChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0ICopOwogICAgICAgIGV4dGVybiBpbnQgZnN0YXQo
aW50LCBzdHJ1Y3Qgc3RhdCAqKTsKCiAgICAgICAgZXh0ZXJuIGludCBzdGF0NjQoY29uc3QgY2hh
ciAqLCBzdHJ1Y3Qgc3RhdDY0ICopOwogICAgICAgIGV4dGVybiBpbnQgZnN0YXQ2NChpbnQsIHN0
cnVjdCBzdGF0NjQgKik7CgoKICAgICAgICBleHRlcm4gaW50IGNobW9kKGNvbnN0IGNoYXIgKiwg
bW9kZV90KTsKCgogICAgICAgIGV4dGVybiBpbnQgZmNobW9kKGludCwgbW9kZV90KTsKICAgICAg
ICBleHRlcm4gaW50IGxzdGF0KGNvbnN0IGNoYXIgKiwgc3RydWN0IHN0YXQgKik7CgogICAgICAg
IGV4dGVybiBpbnQgbHN0YXQ2NChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0NjQgKik7CgoKICAg
ICAgICBleHRlcm4gaW50IG1rbm9kKGNvbnN0IGNoYXIgKiwgbW9kZV90LCBkZXZfdCk7CgoKCgoK
ICAgICAgICBleHRlcm4gaW50IG1rZmlmbyhjb25zdCBjaGFyICosIG1vZGVfdCk7CiMgNDYgIi91
c3IvaW5jbHVkZS9zeXMvbG9ja2YuaCIgMiAzIDQKIyA2MiAiL3Vzci9pbmNsdWRlL3N5cy9sb2Nr
Zi5oIiAzIDQKICAgICAgICBleHRlcm4gaW50IGxvY2tmIChpbnQsIGludCwgb2ZmX3QpOwoKICAg
ICAgICBleHRlcm4gaW50IGxvY2tmNjQgKGludCwgaW50LCBvZmY2NF90KTsKIyA1NzkgIi91c3Iv
aW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKIyA2MDYgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0
CiAgICAgICAgZXh0ZXJuIGludCBicmsodm9pZCAqKTsKICAgICAgICBleHRlcm4gaW50IGZjaGRp
cihpbnQpOwogICAgICAgIGV4dGVybiBpbnQgZmNob3duKGludCwgdWlkX3QsIGdpZF90KTsKICAg
ICAgICBleHRlcm4gaW50IGZ0cnVuY2F0ZShpbnQsIG9mZl90KTsKCiAgICAgICAgZXh0ZXJuIGlu
dCBmdHJ1bmNhdGU2NChpbnQsIG9mZjY0X3QpOwoKICAgICAgICBleHRlcm4gaW50IGdldGR0YWJs
ZXNpemUodm9pZCk7CiAgICAgICAgZXh0ZXJuIGludCBnZXRob3N0bmFtZShjaGFyICosIHNpemVf
dCk7CiAgICAgICAgZXh0ZXJuIGxvbmcgZ2V0aG9zdGlkKHZvaWQpOwogICAgICAgIGV4dGVybiBp
bnQgZ2V0cGFnZXNpemUodm9pZCk7CiAgICAgICAgZXh0ZXJuIHBpZF90IGdldHBnaWQocGlkX3Qp
OwogICAgICAgIGV4dGVybiBwaWRfdCBnZXRzaWQocGlkX3QpOwogICAgICAgIGV4dGVybiBjaGFy
ICpnZXR3ZChjaGFyICopOwogICAgICAgIGV4dGVybiBpbnQgbGNob3duKGNvbnN0IGNoYXIgKiwg
dWlkX3QsIGdpZF90KTsKICAgICAgICBleHRlcm4gaW50IHJlYWRsaW5rKGNvbnN0IGNoYXIgKiwg
Y2hhciAqLCBzaXplX3QpOwoKCgogICAgICAgIGV4dGVybiB2b2lkICpzYnJrKGludHB0cl90KTsK
CgoKCiAgICAgICAgZXh0ZXJuIHBpZF90IHNldHBncnAodm9pZCk7CgogICAgICAgIGV4dGVybiBp
bnQgc2V0cmVnaWQoZ2lkX3QsIGdpZF90KTsKICAgICAgICBleHRlcm4gaW50IHNldHJldWlkKHVp
ZF90LCB1aWRfdCk7CiAgICAgICAgZXh0ZXJuIGludCBzeW1saW5rKGNvbnN0IGNoYXIgKiwgY29u
c3QgY2hhciAqKTsKICAgICAgICBleHRlcm4gdm9pZCBzeW5jKHZvaWQpOwogICAgICAgIGV4dGVy
biBpbnQgdHJ1bmNhdGUoY29uc3QgY2hhciAqLCBvZmZfdCk7CgogICAgICAgIGV4dGVybiBpbnQg
dHJ1bmNhdGU2NChjb25zdCBjaGFyICosIG9mZjY0X3QpOwoKICAgICAgICBleHRlcm4gdXNlY29u
ZHNfdCB1YWxhcm0odXNlY29uZHNfdCwgdXNlY29uZHNfdCk7CiAgICAgICAgZXh0ZXJuIGludCB1
c2xlZXAodXNlY29uZHNfdCk7CiAgICAgICAgZXh0ZXJuIHBpZF90IHZmb3JrKHZvaWQpOwoKICAg
ICAgICBleHRlcm4gaW50IGdldGxvZ2luX3IoY2hhciAqLCBzaXplX3QpOwogICAgICAgIGV4dGVy
biBpbnQgdHR5bmFtZV9yKGludCwgY2hhciAqLCBzaXplX3QpOwoKCgoKCgogICAgICAgIGV4dGVy
biBzc2l6ZV90IHByZWFkKGludCwgdm9pZCAqLCBzaXplX3QsIG9mZl90KTsKICAgICAgICBleHRl
cm4gc3NpemVfdCBwd3JpdGUoaW50LCBjb25zdCB2b2lkICosIHNpemVfdCwgb2ZmX3QpOwoKICAg
ICAgICBleHRlcm4gc3NpemVfdCBwcmVhZDY0KGludCwgdm9pZCAqLCBzaXplX3QsIG9mZjY0X3Qp
OwogICAgICAgIGV4dGVybiBzc2l6ZV90IHB3cml0ZTY0KGludCwgY29uc3Qgdm9pZCAqLCBzaXpl
X3QsIG9mZjY0X3QpOwojIDY2NiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKZXh0ZXJuIGNo
YXIgKiplbnZpcm9uOwoKCgoKCiAgICAgICAgZXh0ZXJuIHBpZF90IGZfZm9yayh2b2lkKTsKIyA2
OTcgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0CiAgICAgICAgZXh0ZXJuIGludCBzZXRlZ2lk
KGdpZF90KTsKICAgICAgICBleHRlcm4gaW50IHNldGV1aWQodWlkX3QpOwogICAgICAgIGV4dGVy
biBpbnQgc2V0cmdpZChnaWRfdCk7CiAgICAgICAgZXh0ZXJuIGludCBzZXRydWlkKHVpZF90KTsK
CiAgICAgICAgZXh0ZXJuIGludCBpb2N0bChpbnQsIGludCwgLi4uKTsKCgoKCgoKICAgICAgICBl
eHRlcm4gaW50IHNldGdyb3VwcyhpbnQsIGdpZF90IFtdKTsKCiAgICAgICAgZXh0ZXJuIGludCBy
ZWFkeChpbnQsIGNoYXIqLCB1bnNpZ25lZCwgbG9uZyk7CiAgICAgICAgZXh0ZXJuIGludCB3cml0
ZXgoaW50LCBjaGFyKiwgdW5zaWduZWQsIGxvbmcpOwoKCgoKCiAgICAgICAgZXh0ZXJuIG9mZl90
IGZjbGVhcihpbnQsIG9mZl90KTsKICAgICAgICBleHRlcm4gaW50IGZzeW5jX3JhbmdlKGludCwg
aW50LCBvZmZfdCwgb2ZmX3QpOwoKICAgICAgICBleHRlcm4gb2ZmNjRfdCBmY2xlYXI2NChpbnQs
IG9mZjY0X3QpOwogICAgICAgIGV4dGVybiBpbnQgZnN5bmNfcmFuZ2U2NChpbnQsIGludCwgb2Zm
NjRfdCwgb2ZmNjRfdCk7CgogICAgICAgIGV4dGVybiBvZmZzZXRfdCBsbHNlZWsoaW50LCBvZmZz
ZXRfdCwgaW50KTsKICAgICAgICBleHRlcm4gY2hhciAqIGdldHVzZXJzaGVsbCh2b2lkKTsKICAg
ICAgICBleHRlcm4gdm9pZCBzZXR1c2Vyc2hlbGwodm9pZCk7CiAgICAgICAgZXh0ZXJuIHZvaWQg
ZW5kdXNlcnNoZWxsKHZvaWQpOwogICAgICAgIGV4dGVybiBjaGFyICogZ2V0X2N1cnJlbnRfZGly
X25hbWUodm9pZCk7CiAgICAgICAgZXh0ZXJuIGludCBzeXNmcyhpbnQsIC4uLik7CiAgICAgICAg
ZXh0ZXJuIGludCBmZGF0YXN5bmMoaW50KTsKICAgICAgICBleHRlcm4gaW50IGZpbmZvKGNvbnN0
IGNoYXIgKiwgaW50LCB2b2lkICosIGludDMybG9uZzY0X3QpOwogICAgICAgIGV4dGVybiBpbnQg
ZmZpbmZvKGludCwgaW50LCB2b2lkICosIGludDMybG9uZzY0X3QpOwojIDgyICIuLi8uLi9nY2Mt
My4yLjIvZ2NjL3RzeXN0ZW0uaCIgMgoKCiMgMSAiaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKIyAx
MSAiaW5jbHVkZS9saW1pdHMuaCIgMyA0CiMgMSAiaW5jbHVkZS9zeXNsaW1pdHMuaCIgMSAzIDQK
CgoKCgoKIyAxICJpbmNsdWRlL2xpbWl0cy5oIiAxIDMgNAojIDEzMiAiaW5jbHVkZS9saW1pdHMu
aCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNAojIDEzMyAiaW5jbHVkZS9s
aW1pdHMuaCIgMiAzIDQKIyA4ICJpbmNsdWRlL3N5c2xpbWl0cy5oIiAyIDMgNAojIDEyICJpbmNs
dWRlL2xpbWl0cy5oIiAyIDMgNAojIDg1ICIuLi8uLi9nY2MtMy4yLjIvZ2NjL3RzeXN0ZW0uaCIg
MgoKCiMgMSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMSAzIDQKIyA5MiAiL3Vzci9pbmNsdWRlL3Rp
bWUuaCIgMyA0CnN0cnVjdCB0bSB7CiAgICAgICAgaW50IHRtX3NlYzsKICAgICAgICBpbnQgdG1f
bWluOwogICAgICAgIGludCB0bV9ob3VyOwogICAgICAgIGludCB0bV9tZGF5OwogICAgICAgIGlu
dCB0bV9tb247CiAgICAgICAgaW50IHRtX3llYXI7CiAgICAgICAgaW50IHRtX3dkYXk7CiAgICAg
ICAgaW50IHRtX3lkYXk7CiAgICAgICAgaW50IHRtX2lzZHN0Owp9OwojIDEzNCAiL3Vzci9pbmNs
dWRlL3RpbWUuaCIgMyA0CiAgICBleHRlcm4gc2l6ZV90IHN0cmZ0aW1lKGNoYXIgKiwgc2l6ZV90
LCBjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0bSAqKTsKICAgIGV4dGVybiBjbG9ja190IGNs
b2NrKHZvaWQpOwogICAgZXh0ZXJuIGRvdWJsZSBkaWZmdGltZSh0aW1lX3QsIHRpbWVfdCk7CiAg
ICBleHRlcm4gdGltZV90IG1rdGltZShzdHJ1Y3QgdG0gKik7CgogICAgZXh0ZXJuIHRpbWVfdCB0
aW1lKHRpbWVfdCAqKTsKCiAgICBleHRlcm4gY2hhciAqYXNjdGltZShjb25zdCBzdHJ1Y3QgdG0g
Kik7CiAgICBleHRlcm4gY2hhciAqY3RpbWUoY29uc3QgdGltZV90ICopOwogICAgZXh0ZXJuIHN0
cnVjdCB0bSAqZ210aW1lKGNvbnN0IHRpbWVfdCAqKTsKICAgIGV4dGVybiBzdHJ1Y3QgdG0gKmxv
Y2FsdGltZShjb25zdCB0aW1lX3QgKik7CiMgMTU0ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzIDQK
ICAgIGV4dGVybiBjaGFyICphc2N0aW1lX3IoY29uc3Qgc3RydWN0IHRtICosIGNoYXIgKik7CiAg
ICBleHRlcm4gY2hhciAqY3RpbWVfcihjb25zdCB0aW1lX3QgKiwgY2hhciAqKTsKICAgIGV4dGVy
biBzdHJ1Y3QgdG0gKmdtdGltZV9yKGNvbnN0IHRpbWVfdCAqLCBzdHJ1Y3QgdG0gKik7CiAgICBl
eHRlcm4gc3RydWN0IHRtICpsb2NhbHRpbWVfcihjb25zdCB0aW1lX3QgKiwgc3RydWN0IHRtICop
OwojIDE4MiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0CmV4dGVybiBjaGFyICp0em5hbWVbXTsK
CgoKCiAgICBleHRlcm4gdm9pZCB0enNldCh2b2lkKTsKCgoKCgogICAgZXh0ZXJuIGxvbmcgdGlt
ZXpvbmU7CiAgICBleHRlcm4gaW50IGRheWxpZ2h0OwoKCgogICAgZXh0ZXJuIGNoYXIgKnN0cnB0
aW1lKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdG0gKik7CgoKCgogICAgICAg
IGV4dGVybiBpbnQgZ2V0ZGF0ZV9lcnI7CgoKCiAgICAgICAgZXh0ZXJuIHN0cnVjdCB0bSAqZ2V0
ZGF0ZShjb25zdCBjaGFyICopOwoKCgoKc3RydWN0IHRpbWVzcGVjIHsKICAgICAgICB0aW1lX3Qg
dHZfc2VjOwogICAgICAgIGxvbmcgdHZfbnNlYzsKfTsKCnN0cnVjdCBpdGltZXJzcGVjIHsKICAg
ICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfaW50ZXJ2YWw7CiAgICAgICAgc3RydWN0IHRpbWVzcGVj
IGl0X3ZhbHVlOwp9OwoKCgoKZXh0ZXJuIGludCBjbG9ja19nZXRyZXMoY2xvY2tpZF90LCBzdHJ1
Y3QgdGltZXNwZWMgKik7CmV4dGVybiBpbnQgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QsIHN0cnVj
dCB0aW1lc3BlYyAqKTsKZXh0ZXJuIGludCBjbG9ja19zZXR0aW1lKGNsb2NraWRfdCwgY29uc3Qg
c3RydWN0IHRpbWVzcGVjICopOwpleHRlcm4gaW50IG5hbm9zbGVlcChjb25zdCBzdHJ1Y3QgdGlt
ZXNwZWMgKiwgc3RydWN0IHRpbWVzcGVjICopOwoKZXh0ZXJuIGludCB0aW1lcl9jcmVhdGUoY2xv
Y2tpZF90LCBzdHJ1Y3Qgc2lnZXZlbnQgKiwgdGltZXJfdCAqKTsKCgoKZXh0ZXJuIGludCB0aW1l
cl9kZWxldGUodGltZXJfdCk7CmV4dGVybiBpbnQgdGltZXJfZ2V0dGltZSh0aW1lcl90LCBzdHJ1
Y3QgaXRpbWVyc3BlYyAqKTsKZXh0ZXJuIGludCB0aW1lcl9nZXRvdmVycnVuKHRpbWVyX3QpOwpl
eHRlcm4gaW50IHRpbWVyX3NldHRpbWUodGltZXJfdCwgaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVy
c3BlYyAqLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqKTsKCgoKCgojIDEgImluY2x1ZGUvc3RkZGVmLmgi
IDEgMyA0CiMgMjQ0ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMgNAojIDI1MyAiL3Vzci9pbmNs
dWRlL3RpbWUuaCIgMyA0CiAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKk5MY3RpbWUobG9u
ZyAqKTsKICAgICAgICBleHRlcm4gdW5zaWduZWQgY2hhciAqTkxhc2N0aW1lKHN0cnVjdCB0bSAq
KTsKICAgICAgICBleHRlcm4gY2hhciAqTkxzdHJ0aW1lKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBj
aGFyICosIGNvbnN0IHN0cnVjdCB0bSAqKTsKIyA4OCAiLi4vLi4vZ2NjLTMuMi4yL2djYy90c3lz
dGVtLmgiIDIKIyAzOCAiLi4vLi4vZ2NjLTMuMi4yL2djYy9saWJnY2MyLmMiIDIKCgoKCgoKIyAx
ICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2xpYmdjYzIuaCIgMQojIDI1ICIuLi8uLi9nY2MtMy4yLjIv
Z2NjL2xpYmdjYzIuaCIKZXh0ZXJuIGludCBfX2djY19iY21wIChjb25zdCB1bnNpZ25lZCBjaGFy
ICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIHZvaWQgX19jbGVhcl9j
YWNoZSAoY2hhciAqLCBjaGFyICopOwpleHRlcm4gdm9pZCBfX2VwcmludGYgKGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQsIGNvbnN0IGNoYXIgKikKICBfX2F0dHJpYnV0
ZV9fICgoX19ub3JldHVybl9fKSk7CgpzdHJ1Y3QgYmI7CmV4dGVybiB2b2lkIF9fYmJfZXhpdF9m
dW5jICh2b2lkKTsKZXh0ZXJuIHZvaWQgX19iYl9pbml0X2Z1bmMgKHN0cnVjdCBiYiAqKTsKZXh0
ZXJuIHZvaWQgX19iYl9mb3JrX2Z1bmMgKHZvaWQpOwpleHRlcm4gdm9pZCBfX2JiX3RyYWNlX2Z1
bmMgKHZvaWQpOwpleHRlcm4gdm9pZCBfX2JiX3RyYWNlX3JldCAodm9pZCk7CmV4dGVybiB2b2lk
IF9fYmJfaW5pdF90cmFjZV9mdW5jIChzdHJ1Y3QgYmIgKiwgdW5zaWduZWQgbG9uZyk7CgpzdHJ1
Y3QgZXhjZXB0aW9uX2Rlc2NyaXB0b3I7CmV4dGVybiBzaG9ydCBpbnQgX19nZXRfZWhfdGFibGVf
bGFuZ3VhZ2UgKHN0cnVjdCBleGNlcHRpb25fZGVzY3JpcHRvciAqKTsKZXh0ZXJuIHNob3J0IGlu
dCBfX2dldF9laF90YWJsZV92ZXJzaW9uIChzdHJ1Y3QgZXhjZXB0aW9uX2Rlc2NyaXB0b3IgKik7
CiMgNjcgIi4uLy4uL2djYy0zLjIuMi9nY2MvbGliZ2NjMi5oIgp0eXBlZGVmIGludCBRSXR5cGUg
X19hdHRyaWJ1dGVfXyAoKG1vZGUgKFFJKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBVUUl0eXBl
IF9fYXR0cmlidXRlX18gKChtb2RlIChRSSkpKTsKdHlwZWRlZiBpbnQgSEl0eXBlIF9fYXR0cmli
dXRlX18gKChtb2RlIChISSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgVUhJdHlwZSBfX2F0dHJp
YnV0ZV9fICgobW9kZSAoSEkpKSk7CgoKdHlwZWRlZiBpbnQgU0l0eXBlIF9fYXR0cmlidXRlX18g
KChtb2RlIChTSSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgVVNJdHlwZSBfX2F0dHJpYnV0ZV9f
ICgobW9kZSAoU0kpKSk7CgoKdHlwZWRlZiBpbnQgREl0eXBlIF9fYXR0cmlidXRlX18gKChtb2Rl
IChESSkpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgVURJdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9k
ZSAoREkpKSk7CiMgODkgIi4uLy4uL2djYy0zLjIuMi9nY2MvbGliZ2NjMi5oIgp0eXBlZGVmIGZs
b2F0IFNGdHlwZSBfX2F0dHJpYnV0ZV9fICgobW9kZSAoU0YpKSk7CnR5cGVkZWYgZmxvYXQgREZ0
eXBlIF9fYXR0cmlidXRlX18gKChtb2RlIChERikpKTsKIyAxMjIgIi4uLy4uL2djYy0zLjIuMi9n
Y2MvbGliZ2NjMi5oIgp0eXBlZGVmIGludCB3b3JkX3R5cGUgX19hdHRyaWJ1dGVfXyAoKG1vZGUg
KF9fd29yZF9fKSkpOwojIDIxNCAiLi4vLi4vZ2NjLTMuMi4yL2djYy9saWJnY2MyLmgiCmV4dGVy
biBESXR5cGUgX19tdWxkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX2RpdmRp
MyAoREl0eXBlLCBESXR5cGUpOwpleHRlcm4gVURJdHlwZSBfX3VkaXZkaTMgKFVESXR5cGUsIFVE
SXR5cGUpOwpleHRlcm4gVURJdHlwZSBfX3Vtb2RkaTMgKFVESXR5cGUsIFVESXR5cGUpOwpleHRl
cm4gREl0eXBlIF9fbW9kZGkzIChESXR5cGUsIERJdHlwZSk7CgoKCgpleHRlcm4gVURJdHlwZSBf
X3VkaXZtb2RkaTQgKFVESXR5cGUsIFVESXR5cGUsIFVESXR5cGUgKik7CgoKCgpleHRlcm4gREl0
eXBlIF9fbmVnZGkyIChESXR5cGUpOwoKCmV4dGVybiBESXR5cGUgX19sc2hyZGkzIChESXR5cGUs
IHdvcmRfdHlwZSk7CmV4dGVybiBESXR5cGUgX19hc2hsZGkzIChESXR5cGUsIHdvcmRfdHlwZSk7
CmV4dGVybiBESXR5cGUgX19hc2hyZGkzIChESXR5cGUsIHdvcmRfdHlwZSk7CmV4dGVybiBESXR5
cGUgX19mZnNkaTIgKERJdHlwZSk7CgoKCgpleHRlcm4gVVNJdHlwZSBfX3VkaXZfd19zZGl2IChV
U0l0eXBlICosIFVTSXR5cGUsIFVTSXR5cGUsIFVTSXR5cGUpOwoKCmV4dGVybiB3b3JkX3R5cGUg
X19jbXBkaTIgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJuIHdvcmRfdHlwZSBfX3VjbXBkaTIgKERJ
dHlwZSwgREl0eXBlKTsKCmV4dGVybiBTSXR5cGUgX19hYnN2c2kyIChTSXR5cGUpOwpleHRlcm4g
REl0eXBlIF9fYWJzdmRpMiAoREl0eXBlKTsKZXh0ZXJuIFNJdHlwZSBfX2FkZHZzaTMgKFNJdHlw
ZSwgU0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX2FkZHZkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0
ZXJuIFNJdHlwZSBfX3N1YnZzaTMgKFNJdHlwZSwgU0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX3N1
YnZkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJuIFNJdHlwZSBfX211bHZzaTMgKFNJdHlwZSwg
U0l0eXBlKTsKZXh0ZXJuIERJdHlwZSBfX211bHZkaTMgKERJdHlwZSwgREl0eXBlKTsKZXh0ZXJu
IFNJdHlwZSBfX25lZ3ZzaTIgKFNJdHlwZSk7CmV4dGVybiBESXR5cGUgX19uZWd2ZGkyIChESXR5
cGUpOwoKCmV4dGVybiBESXR5cGUgX19maXhkZmRpIChERnR5cGUpOwpleHRlcm4gREl0eXBlIF9f
Zml4c2ZkaSAoU0Z0eXBlKTsKZXh0ZXJuIERGdHlwZSBfX2Zsb2F0ZGlkZiAoREl0eXBlKTsKZXh0
ZXJuIFNGdHlwZSBfX2Zsb2F0ZGlzZiAoREl0eXBlKTsKZXh0ZXJuIFVTSXR5cGUgX19maXh1bnNk
ZnNpIChERnR5cGUpOwpleHRlcm4gVVNJdHlwZSBfX2ZpeHVuc3Nmc2kgKFNGdHlwZSk7CmV4dGVy
biBESXR5cGUgX19maXh1bnNkZmRpIChERnR5cGUpOwpleHRlcm4gREl0eXBlIF9fZml4dW5zc2Zk
aSAoU0Z0eXBlKTsKIyAyODQgIi4uLy4uL2djYy0zLjIuMi9nY2MvbGliZ2NjMi5oIgogIHN0cnVj
dCBEV3N0cnVjdCB7U0l0eXBlIGhpZ2gsIGxvdzt9OwojIDI5MyAiLi4vLi4vZ2NjLTMuMi4yL2dj
Yy9saWJnY2MyLmgiCnR5cGVkZWYgdW5pb24KewogIHN0cnVjdCBEV3N0cnVjdCBzOwogIERJdHlw
ZSBsbDsKfSBEV3VuaW9uOwoKIyAxICIuLi8uLi9nY2MtMy4yLjIvZ2NjL2xvbmdsb25nLmgiIDEK
IyAzMDAgIi4uLy4uL2djYy0zLjIuMi9nY2MvbGliZ2NjMi5oIiAyCiMgNDUgIi4uLy4uL2djYy0z
LjIuMi9nY2MvbGliZ2NjMi5jIiAyCiMgMTE2NiAiLi4vLi4vZ2NjLTMuMi4yL2djYy9saWJnY2My
LmMiCiMgMSAiaW5jbHVkZS9saW1pdHMuaCIgMSAzIDQKIyAxMTY3ICIuLi8uLi9nY2MtMy4yLjIv
Z2NjL2xpYmdjYzIuYyIgMgoKVVNJdHlwZQpfX2ZpeHVuc2Rmc2kgKERGdHlwZSBhKQp7CiAgaWYg
KGEgPj0gLSAoREZ0eXBlKSAoLSAoKFNJdHlwZSkoKChVU0l0eXBlKTEgPDwgKCg0ICogOCkgLSAx
KSkgLSAxKSkgLSAxKSkKICAgIHJldHVybiAoU0l0eXBlKSAoYSArICgtICgoU0l0eXBlKSgoKFVT
SXR5cGUpMSA8PCAoKDQgKiA4KSAtIDEpKSAtIDEpKSAtIDEpKSAtICgtICgoU0l0eXBlKSgoKFVT
SXR5cGUpMSA8PCAoKDQgKiA4KSAtIDEpKSAtIDEpKSAtIDEpOwogIHJldHVybiAoU0l0eXBlKSBh
Owp9Cg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]