From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10691 invoked by alias); 24 Jul 2002 11:46:07 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 10670 invoked by uid 71); 24 Jul 2002 11:46:05 -0000 Resent-Date: 24 Jul 2002 11:46:05 -0000 Resent-Message-ID: <20020724114605.10669.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, michaelnottebrock@gmx.net Received: (qmail 6982 invoked by uid 61); 24 Jul 2002 11:36:21 -0000 Message-Id: <20020724113621.6981.qmail@sources.redhat.com> Date: Wed, 24 Jul 2002 04:46:00 -0000 From: michaelnottebrock@gmx.net Reply-To: michaelnottebrock@gmx.net To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: optimization/7390: ICE with gcc 3.1, happens only with -march athlon X-SW-Source: 2002-07/txt/msg00646.txt.bz2 List-Id: >Number: 7390 >Category: optimization >Synopsis: ICE with gcc 3.1, happens only with -march athlon >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Wed Jul 24 04:46:03 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Michael Nottebrock >Release: gcc version 3.1 [FreeBSD] 20020509 (prerelease) >Organization: >Environment: FreeBSD kiste.my.domain 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Tue Jul 16 15:12:07 CEST 2002 lofi@kiste.my.domain:/usr/obj/usr/src/sys/KISTE i386 >Description: [lofi@kiste]:0:/usr/ports/x11-servers/XFree86-4-Server/work/xc/programs/Xserver/PEX5/ddpex/mi/level1 # gcc -v -save-temps -O -pipe -march=athlon -march=athlon -ansi -pedantic -Dasm=__asm -Wall -Wpointer-arith -fno-merge-constants -I. -I../include -I../../../../../../exports/include/X11 -I../../../include -I../../../../../../programs/Xserver/include -I../../../../../.. -I../../../../../../exports/include -DCSRG_BASED -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPANORAMIX -DRENDER -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DBUILDDEBUG -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module -c miPck1Prim.c gcc: warning: -pipe ignored because -save-temps specified Using built-in specs. Configured with: FreeBSD/i386 system compiler Thread model: posix gcc version 3.1 [FreeBSD] 20020509 (prerelease) /usr/libexec/cpp0 -lang-c -std=c89 -v -I. -I../include -I../../../../../../exports/include/X11 -I../../../include -I../../../../../../programs/Xserver/include -I../../../../../.. -I../../../../../../exports/include -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__FreeBSD__=5 -D__FreeBSD_cc_version=500003 -D__unix__ -D__KPRINTF_ATTRIBUTE__ -D__unix -Asystem=unix -Asystem=bsd -Asystem=FreeBSD -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -D__i386 -D__i386__ -D__athlon -D__athlon__ -D__tune_athlon__ -D__MMX__ -D__3dNOW__ -D__3dNOW_A__ -D__ELF__ -Dasm=__asm -DCSRG_BASED -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPANORAMIX -DRENDER -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86LOADER -DXFree86Server -DXF86VIDMODE -DXvMCExtension -DSMART_SCHEDULE -DBUILDDEBUG -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DIN_MODULE -DXFree86Module miPck1Prim.c -Wall -Wpointer-arith -pedantic miPck1Prim.i GNU CPP version 3.1 [FreeBSD] 20020509 (prerelease) (cpplib) (i386 FreeBSD/ELF) ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: . ../include ../../../../../../exports/include/X11 ../../../include ../../../../../../programs/Xserver/include ../../../../../.. ../../../../../../exports/include /usr/include End of search list. /usr/libexec/cc1 -fpreprocessed miPck1Prim.i -quiet -dumpbase miPck1Prim.c -march=athlon -march=athlon -ansi -O -Wall -Wpointer-arith -pedantic -ansi -version -fno-merge-constants -o miPck1Prim.s GNU CPP version 3.1 [FreeBSD] 20020509 (prerelease) (cpplib) (i386 FreeBSD/ELF) GNU C version 3.1 [FreeBSD] 20020509 (prerelease) (i386-undermydesk-freebsd) compiled by GNU C version 3.1 [FreeBSD] 20020509 (prerelease). miPck1Prim.c: In function `CheckFAreaPick1': miPck1Prim.c:337: Internal compiler error in ix86_secondary_memory_needed, at config/i386/i386.c:12263 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="miPck1Prim.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="miPck1Prim.i" IyAxICJtaVBjazFQcmltLmMiCiMgMSAiPGJ1aWx0LWluPiIKIyAxICI8Y29tbWFuZCBsaW5lPiIK IyAxICJtaVBjazFQcmltLmMiCiMgNTEgIm1pUGNrMVByaW0uYyIKIyAxICIuLi9pbmNsdWRlL21p UmVuZGVyLmgiIDEKIyA1NCAiLi4vaW5jbHVkZS9taVJlbmRlci5oIgojIDEgIi4uLy4uLy4uL2lu Y2x1ZGUvZGRwZXguaCIgMQojIDUzICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiCiMgMSAiLi4v Li4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YLmgiIDEKIyA3MSAiLi4vLi4vLi4v Li4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YLmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBY SUQ7CgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBNYXNrOwoKCgp0eXBlZGVmIHVuc2lnbmVkIGxv bmcgQXRvbTsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBWaXN1YWxJRDsKdHlwZWRlZiB1bnNpZ25l ZCBsb25nIFRpbWU7CiMgMTAxICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDEx L1guaCIKdHlwZWRlZiBYSUQgV2luZG93Owp0eXBlZGVmIFhJRCBEcmF3YWJsZTsKCgp0eXBlZGVm IFhJRCBGb250OwoKdHlwZWRlZiBYSUQgUGl4bWFwOwp0eXBlZGVmIFhJRCBDdXJzb3I7CnR5cGVk ZWYgWElEIENvbG9ybWFwOwp0eXBlZGVmIFhJRCBHQ29udGV4dDsKdHlwZWRlZiBYSUQgS2V5U3lt OwoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIEtleUNvZGU7CiMgNTQgIi4uLy4uLy4uL2luY2x1ZGUv ZGRwZXguaCIgMgojIDEgIi4uLy4uLy4uL2luY2x1ZGUvUEVYLmgiIDEKIyA1NSAiLi4vLi4vLi4v aW5jbHVkZS9kZHBleC5oIiAyCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZl ci9pbmNsdWRlL3BpeG1hcHN0ci5oIiAxCiMgNTEgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1z L1hzZXJ2ZXIvaW5jbHVkZS9waXhtYXBzdHIuaCIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUvcGl4bWFwLmgiIDEKIyA1MSAiLi4vLi4vLi4vLi4vLi4vLi4v cHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3BpeG1hcC5oIgojIDEgIi4uLy4uLy4uLy4uLy4uLy4u L3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9taXNjLmgiIDEKIyA3NyAiLi4vLi4vLi4vLi4vLi4v Li4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL21pc2MuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcg Z2xvYmFsU2VyaWFsTnVtYmVyOwpleHRlcm4gdW5zaWduZWQgbG9uZyBzZXJ2ZXJHZW5lcmF0aW9u OwoKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDExL1hvc2RlZnMuaCIg MQojIDgxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvbWlzYy5o IiAyCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YZnVuY3Byb3Rv LmgiIDEKIyA4MiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL21p c2MuaCIgMgojIDEgIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWG1kLmgi IDEKIyAxMzMgIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWG1kLmgiCnR5 cGVkZWYgbG9uZyBJTlQzMjsKCnR5cGVkZWYgc2hvcnQgSU5UMTY7CgoKCnR5cGVkZWYgc2lnbmVk IGNoYXIgSU5UODsKIyAxNDggIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEv WG1kLmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBDQVJEMzI7Cgp0eXBlZGVmIHVuc2lnbmVkIHNo b3J0IENBUkQxNjsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIENBUkQ4OwoKdHlwZWRlZiBDQVJEMzIg QklUUzMyOwp0eXBlZGVmIENBUkQxNiBCSVRTMTY7CgoKdHlwZWRlZiBDQVJEOCBCWVRFOwp0eXBl ZGVmIENBUkQ4IEJPT0w7CiMgODMgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIv aW5jbHVkZS9taXNjLmgiIDIKCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRl L1gxMS9YZGVmcy5oIiAxCiMgNDkgIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9Y MTEvWGRlZnMuaCIKdHlwZWRlZiBpbnQgQm9vbDsKCgoKCgp0eXBlZGVmIHZvaWQgKnBvaW50ZXI7 CgoKCnR5cGVkZWYgc3RydWN0IF9DbGllbnQgKkNsaWVudFB0cjsKIyA4MyAiLi4vLi4vLi4vLi4v Li4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YZGVmcy5oIgp0eXBlZGVmIHN0cnVjdCBfRm9udCAq Rm9udFB0cjsKIyA5MyAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YZGVm cy5oIgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgRlNJRDsKCgoKCgp0eXBlZGVmIEZTSUQgQWNjQ29u dGV4dDsKCgoKdHlwZWRlZiBzdHJ1Y3QgdGltZXZhbCAqKk9TVGltZVB0cjsKCgp0eXBlZGVmIHZv aWQgKCogQmxvY2tIYW5kbGVyUHJvY1B0cikocG9pbnRlciAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPU1RpbWVQdHIgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcG9pbnRlciApOwojIDg1ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2Vy dmVyL2luY2x1ZGUvbWlzYy5oIiAyCiMgMTAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Y c2VydmVyL2luY2x1ZGUvbWlzYy5oIgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgUElYRUw7CnR5cGVk ZWYgdW5zaWduZWQgbG9uZyBBVE9NOwojIDExMSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMv WHNlcnZlci9pbmNsdWRlL21pc2MuaCIKdHlwZWRlZiBzdHJ1Y3QgX0NhbGxiYWNrTGlzdCAqQ2Fs bGJhY2tMaXN0UHRyOwoKCgp0eXBlZGVmIHN0cnVjdCBfeFJlcSAqeFJlcVB0cjsKCiMgMSAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL29zLmgiIDEKIyA1MyAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL29zLmgiCiMgMSAiLi4vLi4v Li4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL21pc2MuaCIgMQojIDU0ICIuLi8u Li8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvb3MuaCIgMgoKCiMgMSAiLi4v Li4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YYWxsb2NhLmgiIDEKIyA1NyAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL29zLmgiIDIKCgoKIyAxICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUveGY4Nl9hbnNpYy5oIiAx CiMgMzYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2Fu c2ljLmgiCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIyA0MSAiL3Vzci9pbmNsdWRl L3N0ZGFyZy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL21hY2hpbmUvYW5zaS5oIiAxIDMKIyA4MSAi L3Vzci9pbmNsdWRlL21hY2hpbmUvYW5zaS5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3Qg X19nbnVjX3ZhX2xpc3Q7CiMgMTI0ICIvdXNyL2luY2x1ZGUvbWFjaGluZS9hbnNpLmgiIDMKdHlw ZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygoX19tb2RlX18oX19ESV9fKSkpIF9faW50NjRfdDsKdHlw ZWRlZiB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19tb2RlX18oX19ESV9fKSkpIF9fdWlu dDY0X3Q7CiMgMTM2ICIvdXNyL2luY2x1ZGUvbWFjaGluZS9hbnNpLmgiIDMKdHlwZWRlZiBfX3Np Z25lZCBjaGFyIF9faW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90Owp0eXBl ZGVmIHNob3J0IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3VpbnQxNl90Owp0 eXBlZGVmIGludCBfX2ludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7Cgp0 eXBlZGVmIGludCBfX2ludHB0cl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VpbnRwdHJfdDsK CnR5cGVkZWYgX19zaWduZWQgY2hhciBfX2ludF9sZWFzdDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBj aGFyIF9fdWludF9sZWFzdDhfdDsKdHlwZWRlZiBzaG9ydCBfX2ludF9sZWFzdDE2X3Q7CnR5cGVk ZWYgdW5zaWduZWQgc2hvcnQgX191aW50X2xlYXN0MTZfdDsKdHlwZWRlZiBpbnQgX19pbnRfbGVh c3QzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VpbnRfbGVhc3QzMl90Owp0eXBlZGVmIF9f aW50NjRfdCBfX2ludF9sZWFzdDY0X3Q7CnR5cGVkZWYgX191aW50NjRfdCBfX3VpbnRfbGVhc3Q2 NF90OwoKdHlwZWRlZiBpbnQgX19pbnRfZmFzdDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191 aW50X2Zhc3Q4X3Q7CnR5cGVkZWYgaW50IF9faW50X2Zhc3QxNl90Owp0eXBlZGVmIHVuc2lnbmVk IGludCBfX3VpbnRfZmFzdDE2X3Q7CnR5cGVkZWYgaW50IF9faW50X2Zhc3QzMl90Owp0eXBlZGVm IHVuc2lnbmVkIGludCBfX3VpbnRfZmFzdDMyX3Q7CnR5cGVkZWYgX19pbnQ2NF90IF9faW50X2Zh c3Q2NF90Owp0eXBlZGVmIF9fdWludDY0X3QgX191aW50X2Zhc3Q2NF90OwoKdHlwZWRlZiBfX2lu dDY0X3QgX19pbnRtYXhfdDsKdHlwZWRlZiBfX3VpbnQ2NF90IF9fdWludG1heF90OwojIDE4NCAi L3Vzci9pbmNsdWRlL21hY2hpbmUvYW5zaS5oIiAzCnR5cGVkZWYgdW5pb24gewogICAgICAgIGNo YXIgX19tYnN0YXRlOFsxMjhdOwogICAgICAgIF9faW50NjRfdCBfbWJzdGF0ZUw7Cn0gX19tYnN0 YXRlX3Q7CiMgNDIgIi91c3IvaW5jbHVkZS9zdGRhcmcuaCIgMiAzCgp0eXBlZGVmIF9fYnVpbHRp bl92YV9saXN0IHZhX2xpc3Q7CiMgMzcgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2 ZXIvaW5jbHVkZS94Zjg2X2Fuc2ljLmgiIDIKIyA5MiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3Jh bXMvWHNlcnZlci9pbmNsdWRlL3hmODZfYW5zaWMuaCIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9w cm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUveGY4Nl9saWJjLmgiIDEKIyAyMyAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3hmODZfbGliYy5oIgojIDEgIi4uLy4uLy4u Ly4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWGZ1bmNzLmgiIDEKIyAyNCAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3hmODZfbGliYy5oIiAyCiMgNDAgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2xpYmMuaCIKdHlw ZWRlZiB2b2lkIFhGODZGSUxFOwpleHRlcm4gWEY4NkZJTEUqIHhmODZzdGRpbjsKZXh0ZXJuIFhG ODZGSUxFKiB4Zjg2c3Rkb3V0OwpleHRlcm4gWEY4NkZJTEUqIHhmODZzdGRlcnI7Cgp0eXBlZGVm IHZvaWQgWEY4NmZwb3NfdDsKCgoKdHlwZWRlZiB2b2lkIFhGODZESVI7CgoKCgpzdHJ1Y3QgX3hm ODZkaXJlbnQgewogICAgICAgIGNoYXIgZF9uYW1lWzI2MyArMV07Cn07CnR5cGVkZWYgc3RydWN0 IF94Zjg2ZGlyZW50IFhGODZESVJFTlQ7Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgeGY4NnNpemVf dDsKdHlwZWRlZiBzaWduZWQgbG9uZyB4Zjg2c3NpemVfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n IHhmODZkZXZfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgeGY4Nm1vZGVfdDsKdHlwZWRlZiB1bnNp Z25lZCBpbnQgeGY4NnVpZF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCB4Zjg2Z2lkX3Q7CgpzdHJ1 Y3QgeGY4NnN0YXQgewogICAgeGY4NmRldl90IHN0X3JkZXY7Cn07CgoKdHlwZWRlZiBpbnQgeGY4 NmtleV90OwoKCnR5cGVkZWYgaW50IHhmODZqbXBfYnVmWzIwXTsKIyA5MyAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3hmODZfYW5zaWMuaCIgMgojIDE0NSAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3hmODZfYW5zaWMuaCIKZXh0 ZXJuIHZvaWQgeGY4NmFib3J0KHZvaWQpOwpleHRlcm4gaW50IHhmODZhYnMoaW50KTsKZXh0ZXJu IGRvdWJsZSB4Zjg2YWNvcyhkb3VibGUpOwpleHRlcm4gZG91YmxlIHhmODZhc2luKGRvdWJsZSk7 CmV4dGVybiBkb3VibGUgeGY4NmF0YW4oZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2YXRhbjIo ZG91YmxlLGRvdWJsZSk7CmV4dGVybiBkb3VibGUgeGY4NmF0b2YoY29uc3QgY2hhciopOwpleHRl cm4gaW50IHhmODZhdG9pKGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGxvbmcgeGY4NmF0b2woY29uc3Qg Y2hhciopOwpleHRlcm4gdm9pZCAqeGY4NmJzZWFyY2goY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lk ICosIHhmODZzaXplX3QsIHhmODZzaXplX3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg KCopKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKSk7CmV4dGVybiBkb3VibGUgeGY4NmNlaWwo ZG91YmxlKTsKZXh0ZXJuIHZvaWQqIHhmODZjYWxsb2MoeGY4NnNpemVfdCx4Zjg2c2l6ZV90KTsK ZXh0ZXJuIHZvaWQgeGY4NmNsZWFyZXJyKFhGODZGSUxFKik7CmV4dGVybiBkb3VibGUgeGY4NmNv cyhkb3VibGUpOwpleHRlcm4gdm9pZCB4Zjg2ZXhpdChpbnQpOwpleHRlcm4gZG91YmxlIHhmODZl eHAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2ZmFicyhkb3VibGUpOwpleHRlcm4gaW50IHhm ODZmY2xvc2UoWEY4NkZJTEUqKTsKZXh0ZXJuIGludCB4Zjg2ZmVvZihYRjg2RklMRSopOwpleHRl cm4gaW50IHhmODZmZXJyb3IoWEY4NkZJTEUqKTsKZXh0ZXJuIGludCB4Zjg2ZmZsdXNoKFhGODZG SUxFKik7CmV4dGVybiBpbnQgeGY4NmZnZXRjKFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4Nmdl dGMoWEY4NkZJTEUqKTsKZXh0ZXJuIGludCB4Zjg2ZmdldHBvcyhYRjg2RklMRSosWEY4NmZwb3Nf dCopOwpleHRlcm4gY2hhciogeGY4NmZnZXRzKGNoYXIqLElOVDMyLFhGODZGSUxFKik7CmV4dGVy biBpbnQgeGY4NmZpbml0ZShkb3VibGUpOwpleHRlcm4gZG91YmxlIHhmODZmbG9vcihkb3VibGUp OwpleHRlcm4gZG91YmxlIHhmODZmbW9kKGRvdWJsZSxkb3VibGUpOwpleHRlcm4gWEY4NkZJTEUq IHhmODZmb3Blbihjb25zdCBjaGFyKixjb25zdCBjaGFyKik7CmV4dGVybiBkb3VibGUgeGY4NmZy ZXhwKGRvdWJsZSwgaW50Kik7CmV4dGVybiBpbnQgeGY4NnByaW50Zihjb25zdCBjaGFyKiwuLi4p OwpleHRlcm4gaW50IHhmODZmcHJpbnRmKFhGODZGSUxFKixjb25zdCBjaGFyKiwuLi4pOwpleHRl cm4gaW50IHhmODZmcHV0YyhpbnQsWEY4NkZJTEUqKTsKZXh0ZXJuIGludCB4Zjg2ZnB1dHMoY29u c3QgY2hhciosWEY4NkZJTEUqKTsKZXh0ZXJuIHhmODZzaXplX3QgeGY4NmZyZWFkKHZvaWQqLHhm ODZzaXplX3QseGY4NnNpemVfdCxYRjg2RklMRSopOwpleHRlcm4gdm9pZCB4Zjg2ZnJlZSh2b2lk Kik7CmV4dGVybiBYRjg2RklMRSogeGY4NmZyZW9wZW4oY29uc3QgY2hhciosY29uc3QgY2hhcios WEY4NkZJTEUqKTsKCmV4dGVybiBpbnQgeGY4NmZzY2FuZihYRjg2RklMRSosY29uc3QgY2hhcios Li4uKTsKCgoKCmV4dGVybiBpbnQgeGY4NmZzZWVrKFhGODZGSUxFKixsb25nLGludCk7CmV4dGVy biBpbnQgeGY4NmZzZXRwb3MoWEY4NkZJTEUqLGNvbnN0IFhGODZmcG9zX3QqKTsKZXh0ZXJuIGxv bmcgeGY4NmZ0ZWxsKFhGODZGSUxFKik7CmV4dGVybiB4Zjg2c2l6ZV90IHhmODZmd3JpdGUoY29u c3Qgdm9pZCoseGY4NnNpemVfdCx4Zjg2c2l6ZV90LFhGODZGSUxFKik7CmV4dGVybiBjaGFyKiB4 Zjg2Z2V0ZW52KGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGludCB4Zjg2aXNhbG51bShpbnQpOwpleHRl cm4gaW50IHhmODZpc2FscGhhKGludCk7CmV4dGVybiBpbnQgeGY4NmlzY250cmwoaW50KTsKZXh0 ZXJuIGludCB4Zjg2aXNkaWdpdChpbnQpOwpleHRlcm4gaW50IHhmODZpc2dyYXBoKGludCk7CmV4 dGVybiBpbnQgeGY4NmlzbG93ZXIoaW50KTsKZXh0ZXJuIGludCB4Zjg2aXNwcmludChpbnQpOwpl eHRlcm4gaW50IHhmODZpc3B1bmN0KGludCk7CmV4dGVybiBpbnQgeGY4Nmlzc3BhY2UoaW50KTsK ZXh0ZXJuIGludCB4Zjg2aXN1cHBlcihpbnQpOwpleHRlcm4gaW50IHhmODZpc3hkaWdpdChpbnQp OwpleHRlcm4gbG9uZyB4Zjg2bGFicyhsb25nKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2bGRleHAoZG91 YmxlLGludCk7CmV4dGVybiBkb3VibGUgeGY4NmxvZyhkb3VibGUpOwpleHRlcm4gZG91YmxlIHhm ODZsb2cxMChkb3VibGUpOwpleHRlcm4gdm9pZCogeGY4Nm1hbGxvYyh4Zjg2c2l6ZV90KTsKZXh0 ZXJuIHZvaWQqIHhmODZtZW1jaHIoY29uc3Qgdm9pZCosaW50LHhmODZzaXplX3QpOwpleHRlcm4g aW50IHhmODZtZW1jbXAoY29uc3Qgdm9pZCosY29uc3Qgdm9pZCoseGY4NnNpemVfdCk7CmV4dGVy biB2b2lkKiB4Zjg2bWVtY3B5KHZvaWQqLGNvbnN0IHZvaWQqLHhmODZzaXplX3QpOwpleHRlcm4g dm9pZCogeGY4Nm1lbW1vdmUodm9pZCosY29uc3Qgdm9pZCoseGY4NnNpemVfdCk7CmV4dGVybiB2 b2lkKiB4Zjg2bWVtc2V0KHZvaWQqLGludCx4Zjg2c2l6ZV90KTsKZXh0ZXJuIGRvdWJsZSB4Zjg2 bW9kZihkb3VibGUsZG91YmxlKik7CmV4dGVybiB2b2lkIHhmODZwZXJyb3IoY29uc3QgY2hhciop OwpleHRlcm4gZG91YmxlIHhmODZwb3coZG91YmxlLGRvdWJsZSk7CmV4dGVybiB2b2lkIHhmODZx c29ydCh2b2lkKiwgeGY4NnNpemVfdCwgeGY4NnNpemVfdCwKICAgICAgICAgICAgICAgICAgICAg IGludCgqKShjb25zdCB2b2lkKiwgY29uc3Qgdm9pZCopKTsKZXh0ZXJuIHZvaWQqIHhmODZyZWFs bG9jKHZvaWQqLHhmODZzaXplX3QpOwpleHRlcm4gaW50IHhmODZyZW1vdmUoY29uc3QgY2hhciop OwpleHRlcm4gaW50IHhmODZyZW5hbWUoY29uc3QgY2hhciosY29uc3QgY2hhciopOwpleHRlcm4g dm9pZCB4Zjg2cmV3aW5kKFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4NnNldGJ1ZihYRjg2RklM RSosY2hhciopOwpleHRlcm4gaW50IHhmODZzZXR2YnVmKFhGODZGSUxFKixjaGFyKixpbnQseGY4 NnNpemVfdCk7CmV4dGVybiBkb3VibGUgeGY4NnNpbihkb3VibGUpOwpleHRlcm4gaW50IHhmODZz cHJpbnRmKGNoYXIqLGNvbnN0IGNoYXIqLC4uLik7CmV4dGVybiBpbnQgeGY4NnNucHJpbnRmKGNo YXIqLHhmODZzaXplX3QsY29uc3QgY2hhciosLi4uKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2c3FydChk b3VibGUpOwoKZXh0ZXJuIGludCB4Zjg2c3NjYW5mKGNoYXIqLGNvbnN0IGNoYXIqLC4uLik7CgoK CgpleHRlcm4gY2hhciogeGY4NnN0cmNhdChjaGFyKixjb25zdCBjaGFyKik7CmV4dGVybiBjaGFy KiB4Zjg2c3RyY2hyKGNvbnN0IGNoYXIqLCBpbnQgYyk7CmV4dGVybiBpbnQgeGY4NnN0cmNtcChj b25zdCBjaGFyKixjb25zdCBjaGFyKik7CmV4dGVybiBpbnQgeGY4NnN0cmNhc2VjbXAoY29uc3Qg Y2hhciosY29uc3QgY2hhciopOwpleHRlcm4gY2hhciogeGY4NnN0cmNweShjaGFyKixjb25zdCBj aGFyKik7CmV4dGVybiB4Zjg2c2l6ZV90IHhmODZzdHJjc3BuKGNvbnN0IGNoYXIqLGNvbnN0IGNo YXIqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJlcnJvcihpbnQpOwpleHRlcm4geGY4NnNpemVfdCB4 Zjg2c3RybGVuKGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJuY2F0KGNoYXIgKiwg Y29uc3QgY2hhciAqLCB4Zjg2c2l6ZV90KTsKZXh0ZXJuIGludCB4Zjg2c3RybmNtcChjb25zdCBj aGFyKixjb25zdCBjaGFyKix4Zjg2c2l6ZV90KTsKZXh0ZXJuIGludCB4Zjg2c3RybmNhc2VjbXAo Y29uc3QgY2hhciosY29uc3QgY2hhcioseGY4NnNpemVfdCk7CmV4dGVybiBjaGFyKiB4Zjg2c3Ry bmNweShjaGFyKixjb25zdCBjaGFyKix4Zjg2c2l6ZV90KTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJw YnJrKGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJyY2hyKGNv bnN0IGNoYXIqLGludCk7CmV4dGVybiB4Zjg2c2l6ZV90IHhmODZzdHJzcG4oY29uc3QgY2hhcios Y29uc3QgY2hhciopOwpleHRlcm4gY2hhciogeGY4NnN0cnN0cihjb25zdCBjaGFyKixjb25zdCBj aGFyKik7CmV4dGVybiBkb3VibGUgeGY4NnN0cnRvZChjb25zdCBjaGFyKixjaGFyKiopOwpleHRl cm4gY2hhciogeGY4NnN0cnRvayhjaGFyKixjb25zdCBjaGFyKik7CmV4dGVybiBsb25nIHhmODZz dHJ0b2woY29uc3QgY2hhciosY2hhcioqLGludCk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHhmODZz dHJ0b3VsKGNvbnN0IGNoYXIqLGNoYXIqKixpbnQpOwpleHRlcm4gZG91YmxlIHhmODZ0YW4oZG91 YmxlKTsKZXh0ZXJuIFhGODZGSUxFKiB4Zjg2dG1wZmlsZSh2b2lkKTsKZXh0ZXJuIGNoYXIqIHhm ODZ0bXBuYW0oY2hhciopOwpleHRlcm4gaW50IHhmODZ0b2xvd2VyKGludCk7CmV4dGVybiBpbnQg eGY4NnRvdXBwZXIoaW50KTsKZXh0ZXJuIGludCB4Zjg2dW5nZXRjKGludCxYRjg2RklMRSopOwpl eHRlcm4gaW50IHhmODZ2ZnByaW50ZihYRjg2RklMRSosY29uc3QgY2hhciosdmFfbGlzdCk7CmV4 dGVybiBpbnQgeGY4NnZzcHJpbnRmKGNoYXIqLGNvbnN0IGNoYXIqLHZhX2xpc3QpOwpleHRlcm4g aW50IHhmODZ2c25wcmludGYoY2hhcioseGY4NnNpemVfdCxjb25zdCBjaGFyKix2YV9saXN0KTsK CmV4dGVybiBpbnQgeGY4Nm9wZW4oY29uc3QgY2hhciosIGludCwuLi4pOwpleHRlcm4gaW50IHhm ODZjbG9zZShpbnQpOwpleHRlcm4gbG9uZyB4Zjg2bHNlZWsoaW50LCBsb25nLCBpbnQpOwpleHRl cm4gaW50IHhmODZpb2N0bChpbnQsIHVuc2lnbmVkIGxvbmcsIHBvaW50ZXIpOwpleHRlcm4geGY4 NnNzaXplX3QgeGY4NnJlYWQoaW50LCB2b2lkICosIHhmODZzaXplX3QpOwpleHRlcm4geGY4NnNz aXplX3QgeGY4NndyaXRlKGludCwgY29uc3Qgdm9pZCAqLCB4Zjg2c2l6ZV90KTsKZXh0ZXJuIHZv aWQqIHhmODZtbWFwKHZvaWQqLCB4Zjg2c2l6ZV90LCBpbnQsIGludCwgaW50LCB4Zjg2c2l6ZV90 ICk7CmV4dGVybiBpbnQgeGY4Nm11bm1hcCh2b2lkKiwgeGY4NnNpemVfdCk7CmV4dGVybiBpbnQg eGY4NnN0YXQoY29uc3QgY2hhciAqLCBzdHJ1Y3QgeGY4NnN0YXQgKik7CmV4dGVybiBpbnQgeGY4 NmZzdGF0KGludCwgc3RydWN0IHhmODZzdGF0ICopOwpleHRlcm4gaW50IHhmODZhY2Nlc3MoY29u c3QgY2hhciAqLCBpbnQpOwpleHRlcm4gaW50IHhmODZlcnJubzsKZXh0ZXJuIGludCB4Zjg2R2V0 RXJybm8odm9pZCk7CgpleHRlcm4gZG91YmxlIHhmODZIVUdFX1ZBTDsKCmV4dGVybiBkb3VibGUg eGY4Nmh5cG90KGRvdWJsZSxkb3VibGUpOwoKCmV4dGVybiBYRjg2RElSKiB4Zjg2b3BlbmRpcihj b25zdCBjaGFyKik7CmV4dGVybiBpbnQgeGY4NmNsb3NlZGlyKFhGODZESVIqKTsKZXh0ZXJuIFhG ODZESVJFTlQqIHhmODZyZWFkZGlyKFhGODZESVIqKTsKZXh0ZXJuIHZvaWQgeGY4NnJld2luZGRp cihYRjg2RElSKik7CmV4dGVybiB2b2lkIHhmODZiY29weShjb25zdCB2b2lkKix2b2lkKix4Zjg2 c2l6ZV90KTsKZXh0ZXJuIGludCB4Zjg2ZmZzKGludCk7CmV4dGVybiBjaGFyKiB4Zjg2c3RyZHVw KGNvbnN0IGNoYXIqKTsKZXh0ZXJuIHZvaWQgeGY4NmJ6ZXJvKHZvaWQqLHVuc2lnbmVkIGludCk7 CmV4dGVybiBpbnQgeGY4NmV4ZWNsKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwpl eHRlcm4gbG9uZyB4Zjg2ZnBvc3NpemUodm9pZCk7CmV4dGVybiBpbnQgeGY4NmNobW9kKGNvbnN0 IGNoYXIgKiwgeGY4Nm1vZGVfdCk7CmV4dGVybiBpbnQgeGY4NmNob3duKGNvbnN0IGNoYXIgKiwg eGY4NnVpZF90LCB4Zjg2Z2lkX3QpOwpleHRlcm4geGY4NnVpZF90IHhmODZnZXRldWlkKHZvaWQp OwpleHRlcm4geGY4NmdpZF90IHhmODZnZXRlZ2lkKHZvaWQpOwpleHRlcm4gaW50IHhmODZnZXRw aWQodm9pZCk7CmV4dGVybiBpbnQgeGY4Nm1rbm9kKGNvbnN0IGNoYXIgKiwgeGY4Nm1vZGVfdCwg eGY4NmRldl90KTsKZXh0ZXJuIGludCB4Zjg2bWtkaXIoY29uc3QgY2hhciAqLCB4Zjg2bW9kZV90 KTsKdW5zaWduZWQgaW50IHhmODZzbGVlcCh1bnNpZ25lZCBpbnQgc2Vjb25kcyk7CgpleHRlcm4g aW50IHhmODZzaG1nZXQoeGY4NmtleV90IGtleSwgaW50IHNpemUsIGludCB4Zjg2c2htZmxnKTsK ZXh0ZXJuIGNoYXIgKiB4Zjg2c2htYXQoaW50IGlkLCBjaGFyICphZGRyLCBpbnQgeGY4NnNobWZs Zyk7CmV4dGVybiBpbnQgeGY4NnNobWR0KGNoYXIgKmFkZHIpOwpleHRlcm4gaW50IHhmODZzaG1j dGwoaW50IGlkLCBpbnQgeGY4NmNtZCwgcG9pbnRlciBidWYpOwpleHRlcm4gaW50IHhmODZzZXRq bXAoeGY4NmptcF9idWYgZW52KTsKZXh0ZXJuIHZvaWQgeGY4NmxvbmdqbXAoeGY4NmptcF9idWYg ZW52LCBpbnQgdmFsKTsKIyAzMzEgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIv aW5jbHVkZS94Zjg2X2Fuc2ljLmgiCmV4dGVybiBpbnQgeGY4NmdldHBhZ2VzaXplKHZvaWQpOwpl eHRlcm4gdm9pZCB4Zjg2dXNsZWVwKHVuc2lnbmVkIGxvbmcpOwpleHRlcm4gdm9pZCB4Zjg2Z2V0 c2Vjcyhsb25nICosIGxvbmcgKik7CiMgNjEgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hz ZXJ2ZXIvaW5jbHVkZS9vcy5oIiAyCiMgNzcgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hz ZXJ2ZXIvaW5jbHVkZS9vcy5oIgp0eXBlZGVmIHBvaW50ZXIgRklEOwp0eXBlZGVmIHN0cnVjdCBf Rm9udFBhdGhSZWMgKkZvbnRQYXRoUHRyOwp0eXBlZGVmIHN0cnVjdCBfTmV3Q2xpZW50UmVjICpO ZXdDbGllbnRQdHI7CiMgMTA4ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2lu Y2x1ZGUvb3MuaCIKZXh0ZXJuIEJvb2wgT3NEZWxheUluaXRDb2xvcnM7CmV4dGVybiB2b2lkICgq T3NWZW5kb3JWRXJyb3JGUHJvYykoY29uc3QgY2hhciAqLCB2YV9saXN0IGFyZ3MpOwoKZXh0ZXJu IGludCBXYWl0Rm9yU29tZXRoaW5nKAoKICAgIGludCoKCik7CgoKCmV4dGVybiBpbnQgU3RhbmRh cmRSZWFkUmVxdWVzdEZyb21DbGllbnQoCgogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIGludCBD bGllbnRDb25uZWN0aW9uTnVtYmVyKAoKICAgIENsaWVudFB0cgoKKTsKIyAxMzggIi4uLy4uLy4u Ly4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9vcy5oIgpleHRlcm4gQm9vbCBJbnNl cnRGYWtlUmVxdWVzdCgKCiAgICBDbGllbnRQdHIgLAogICAgY2hhciogLAogICAgaW50CgopOwoK ZXh0ZXJuIHZvaWQgUmVzZXRDdXJyZW50UmVxdWVzdCgKCiAgICBDbGllbnRQdHIKCik7CgpleHRl cm4gdm9pZCBGbHVzaEFsbE91dHB1dCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgRmx1c2hJ ZkNyaXRpY2FsT3V0cHV0UGVuZGluZygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgU2V0Q3Jp dGljYWxPdXRwdXRQZW5kaW5nKAoKICAgIHZvaWQKCik7CgpleHRlcm4gaW50IFdyaXRlVG9DbGll bnQoCgogICAgQ2xpZW50UHRyICwKICAgIGludCAsCiAgICBjaGFyKgoKKTsKCmV4dGVybiB2b2lk IFJlc2V0T3NCdWZmZXJzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBJbml0Q29ubmVjdGlv bkxpbWl0cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQ3JlYXRlV2VsbEtub3duU29ja2V0 cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgUmVzZXRXZWxsS25vd25Tb2NrZXRzKAoKICAg IHZvaWQKCik7CgpleHRlcm4gdm9pZCBDbG9zZVdlbGxLbm93bkNvbm5lY3Rpb25zKAoKICAgIHZv aWQKCik7CgpleHRlcm4gWElECkF1dGhvcml6YXRpb25JRE9mQ2xpZW50KAoKICAgIENsaWVudFB0 cgoKKTsKCmV4dGVybiBjaGFyICpDbGllbnRBdXRob3JpemVkKAoKICAgIENsaWVudFB0ciAsCiAg ICB1bnNpZ25lZCBpbnQgLAogICAgY2hhciogLAogICAgdW5zaWduZWQgaW50ICwKICAgIGNoYXIq CgopOwoKZXh0ZXJuIEJvb2wgRXN0YWJsaXNoTmV3Q29ubmVjdGlvbnMoCgogICAgQ2xpZW50UHRy ICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gdm9pZCBDaGVja0Nvbm5lY3Rpb25zKAoKICAgIHZv aWQKCik7CgpleHRlcm4gdm9pZCBDbG9zZURvd25Db25uZWN0aW9uKAoKICAgIENsaWVudFB0cgoK KTsKCmV4dGVybiB2b2lkIEFkZEVuYWJsZWREZXZpY2UoCgogICAgaW50CgopOwoKZXh0ZXJuIHZv aWQgUmVtb3ZlRW5hYmxlZERldmljZSgKCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBPbmx5TGlz dGVuVG9PbmVDbGllbnQoCgogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgTGlzdGVuVG9B bGxDbGllbnRzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBJZ25vcmVDbGllbnQoCgogICAg Q2xpZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgQXR0ZW5kQ2xpZW50KAoKICAgIENsaWVudFB0cgoK KTsKCmV4dGVybiB2b2lkIE1ha2VDbGllbnRHcmFiSW1wZXJ2aW91cygKCiAgICBDbGllbnRQdHIK Cik7CgpleHRlcm4gdm9pZCBNYWtlQ2xpZW50R3JhYlBlcnZpb3VzKAoKICAgIENsaWVudFB0cgoK KTsKCgpleHRlcm4gdm9pZCBDbG9zZURvd25GaWxlRGVzY3JpcHRvcigKCiAgICBDbGllbnRQdHIK Cik7CgoKZXh0ZXJuIHZvaWQgQXZhaWxhYmxlQ2xpZW50SW5wdXQoCgogICAgQ2xpZW50UHRyCgop OwoKZXh0ZXJuIHZvaWQgRXJyb3IoCgogICAgY2hhcioKCik7CgpleHRlcm4gQ0FSRDMyIEdldFRp bWVJbk1pbGxpcygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQWRqdXN0V2FpdEZvckRlbGF5 KAoKICAgIHBvaW50ZXIgLAogICAgdW5zaWduZWQgbG9uZwoKKTsKCnR5cGVkZWYgc3RydWN0IF9P c1RpbWVyUmVjICpPc1RpbWVyUHRyOwoKdHlwZWRlZiBDQVJEMzIgKCpPc1RpbWVyQ2FsbGJhY2sp KAoKICAgIE9zVGltZXJQdHIgLAogICAgQ0FSRDMyICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4g dm9pZCBUaW1lckluaXQoCgogICAgdm9pZAoKKTsKCmV4dGVybiBCb29sIFRpbWVyRm9yY2UoCgog ICAgT3NUaW1lclB0cgoKKTsKCgoKCmV4dGVybiBPc1RpbWVyUHRyIFRpbWVyU2V0KAoKICAgIE9z VGltZXJQdHIgLAogICAgaW50ICwKICAgIENBUkQzMiAsCiAgICBPc1RpbWVyQ2FsbGJhY2sgLAog ICAgcG9pbnRlcgoKKTsKCmV4dGVybiB2b2lkIFRpbWVyQ2hlY2soCgogICAgdm9pZAoKKTsKCmV4 dGVybiB2b2lkIFRpbWVyQ2FuY2VsKAoKICAgIE9zVGltZXJQdHIKCik7CgpleHRlcm4gdm9pZCBU aW1lckZyZWUoCgogICAgT3NUaW1lclB0cgoKKTsKCmV4dGVybiB2b2lkIEF1dG9SZXNldFNlcnZl cigKCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBHaXZlVXAoCgogICAgaW50CgopOwoKZXh0ZXJu IHZvaWQgVXNlTXNnKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBQcm9jZXNzQ29tbWFuZExp bmUoCgogICAgaW50ICwKICAgIGNoYXIqIFtdCgopOwoKZXh0ZXJuIHBvaW50ZXIgWGFsbG9jKAoK ICAgIHVuc2lnbmVkIGxvbmcKCik7CgpleHRlcm4gcG9pbnRlciBYTkZhbGxvYygKCiAgICB1bnNp Z25lZCBsb25nCgopOwoKZXh0ZXJuIHBvaW50ZXIgWGNhbGxvYygKCiAgICB1bnNpZ25lZCBsb25n CgopOwoKZXh0ZXJuIHBvaW50ZXIgWE5GY2FsbG9jKAoKICAgIHVuc2lnbmVkIGxvbmcKCik7Cgpl eHRlcm4gcG9pbnRlciBYcmVhbGxvYygKCiAgICBwb2ludGVyICwKICAgIHVuc2lnbmVkIGxvbmcK Cik7CgpleHRlcm4gcG9pbnRlciBYTkZyZWFsbG9jKAoKICAgIHBvaW50ZXIgLAogICAgdW5zaWdu ZWQgbG9uZwoKKTsKCmV4dGVybiB2b2lkIFhmcmVlKAoKICAgIHBvaW50ZXIKCik7CgpleHRlcm4g dm9pZCBPc0luaXRBbGxvY2F0b3IoCgogICAgdm9pZAoKKTsKCmV4dGVybiBjaGFyICpYc3RyZHVw KGNvbnN0IGNoYXIgKnMpOwpleHRlcm4gY2hhciAqWE5Gc3RyZHVwKGNvbnN0IGNoYXIgKnMpOwoK dHlwZWRlZiB2b2lkICgqT3NTaWdIYW5kbGVyUHRyKSgKCiAgICBpbnQKCik7CgpleHRlcm4gT3NT aWdIYW5kbGVyUHRyIE9zU2lnbmFsKAoKICAgIGludCAsCiAgICBPc1NpZ0hhbmRsZXJQdHIKCik7 CgpleHRlcm4gaW50IGF1ZGl0VHJhaWxMZXZlbDsKCmV4dGVybiB2b2lkIEF1ZGl0UHJlZml4KAoK ICAgIGNvbnN0IGNoYXIgKgoKKTsKCmV4dGVybiB2b2lkIEF1ZGl0RigKCiAgICBjb25zdCBjaGFy KiAsCiAgICAuLi4KCik7CgpleHRlcm4gdm9pZCBGYXRhbEVycm9yKAoKICAgIGNvbnN0IGNoYXIq ICwKICAgIC4uLgoKKQoKX19hdHRyaWJ1dGUoKG5vcmV0dXJuKSkKCjsKCmV4dGVybiB2b2lkIEVy cm9yRigKCiAgICBjb25zdCBjaGFyKiAsCiAgICAuLi4KCik7CgoKZXh0ZXJuIHZvaWQgVkVycm9y Rihjb25zdCBjaGFyICpmLCB2YV9saXN0IGFyZ3MpOwojIDUyMCAiLi4vLi4vLi4vLi4vLi4vLi4v cHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL29zLmgiCmV4dGVybiBpbnQgT3NMb29rdXBDb2xvcigK CiAgICBpbnQgLAogICAgY2hhciAqICwKICAgIHVuc2lnbmVkICwKICAgIHVuc2lnbmVkIHNob3J0 ICogLAogICAgdW5zaWduZWQgc2hvcnQgKiAsCiAgICB1bnNpZ25lZCBzaG9ydCAqCgopOwoKZXh0 ZXJuIHZvaWQgT3NJbml0KAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBPc0NsZWFudXAoCgog ICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIE9zVmVuZG9yRmF0YWxFcnJvcigKCiAgICB2b2lkCgop OwoKZXh0ZXJuIHZvaWQgT3NWZW5kb3JJbml0KAoKICAgIHZvaWQKCik7CgpleHRlcm4gaW50IE9z SW5pdENvbG9ycygKCiAgICB2b2lkCgopOwoKdm9pZCBPc0Jsb2NrU2lnbmFscyAoCgogICAgICAg ICAgICAgICAgICAgICB2b2lkCgogICAgICAgICAgICAgICAgICAgICApOwoKdm9pZCBPc1JlbGVh c2VTaWduYWxzICgKCiAgICAgICAgICAgICAgICAgICAgIHZvaWQKCiAgICAgICAgICAgICAgICAg ICAgICk7CgoKZXh0ZXJuIGludCBTeXN0ZW0oY2hhciAqKTsKZXh0ZXJuIHBvaW50ZXIgUG9wZW4o Y2hhciAqLCBjaGFyICopOwpleHRlcm4gaW50IFBjbG9zZShwb2ludGVyKTsKCgoKCgoKZXh0ZXJu IHZvaWQgQ2hlY2tVc2VyUGFyYW1ldGVycyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGNoYXIgKipl bnZwKTsKZXh0ZXJuIHZvaWQgQ2hlY2tVc2VyQXV0aG9yaXphdGlvbih2b2lkKTsKCmV4dGVybiBp bnQgQWRkSG9zdCgKCiAgICBDbGllbnRQdHIgLAogICAgaW50ICwKICAgIHVuc2lnbmVkICwKICAg IHBvaW50ZXIKCik7CgpleHRlcm4gQm9vbCBGb3JFYWNoSG9zdEluRmFtaWx5ICgKCiAgICBpbnQg LAogICAgQm9vbCAoKiApKAoKICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqICwKICAgICAgICAg ICAgc2hvcnQgLAogICAgICAgICAgICBwb2ludGVyCgogICAgICAgICAgICApLAogICAgcG9pbnRl cgoKKTsKCmV4dGVybiBpbnQgUmVtb3ZlSG9zdCgKCiAgICBDbGllbnRQdHIgLAogICAgaW50ICwK ICAgIHVuc2lnbmVkICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gaW50IEdldEhvc3RzKAoKICAg IHBvaW50ZXIgKiAsCiAgICBpbnQgKiAsCiAgICBpbnQgKiAsCiAgICBCT09MICoKCik7Cgp0eXBl ZGVmIHN0cnVjdCBzb2NrYWRkciAqIHNvY2thZGRyUHRyOwoKZXh0ZXJuIGludCBJbnZhbGlkSG9z dCgKCiAgICBzb2NrYWRkclB0ciAsCiAgICBpbnQKCik7CgpleHRlcm4gaW50IExvY2FsQ2xpZW50 KAoKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiBpbnQgQ2hhbmdlQWNjZXNzQ29udHJvbCgKCiAg ICBDbGllbnRQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIGludCBHZXRBY2Nlc3NDb250cm9sKAoK ICAgIHZvaWQKCik7CgoKZXh0ZXJuIHZvaWQgQWRkTG9jYWxIb3N0cygKCiAgICB2b2lkCgopOwoK ZXh0ZXJuIHZvaWQgUmVzZXRIb3N0cygKCiAgICBjaGFyICpkaXNwbGF5CgopOwoKZXh0ZXJuIHZv aWQgRW5hYmxlTG9jYWxIb3N0KAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBEaXNhYmxlTG9j YWxIb3N0KAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBBY2Nlc3NVc2luZ1hkbWNwKAoKICAg IHZvaWQKCik7CgpleHRlcm4gdm9pZCBEZWZpbmVTZWxmKAoKICAgIGludAoKKTsKCmV4dGVybiB2 b2lkIEF1Z21lbnRTZWxmKAoKICAgIHBvaW50ZXIgLAogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQg SW5pdEF1dGhvcml6YXRpb24oCgogICAgY2hhciAqCgopOwoKZXh0ZXJuIGludCBMb2FkQXV0aG9y aXphdGlvbigKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgUmVnaXN0ZXJBdXRob3JpemF0aW9u cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIFhJRCBBdXRob3JpemF0aW9uVG9JRCAoCiAgICAgICAg dW5zaWduZWQgc2hvcnQgbmFtZV9sZW5ndGgsCiAgICAgICAgY2hhciAqbmFtZSwKICAgICAgICB1 bnNpZ25lZCBzaG9ydCBkYXRhX2xlbmd0aCwKICAgICAgICBjaGFyICpkYXRhKTsKCmV4dGVybiBp bnQgQXV0aG9yaXphdGlvbkZyb21JRCAoCiAgICAgICAgWElEIGlkLAogICAgICAgIHVuc2lnbmVk IHNob3J0ICpuYW1lX2xlbnAsCiAgICAgICAgY2hhciAqKm5hbWVwLAogICAgICAgIHVuc2lnbmVk IHNob3J0ICpkYXRhX2xlbnAsCiAgICAgICAgY2hhciAqKmRhdGFwKTsKCmV4dGVybiBYSUQgQ2hl Y2tBdXRob3JpemF0aW9uKAoKICAgIHVuc2lnbmVkIGludCAsCiAgICBjaGFyICogLAogICAgdW5z aWduZWQgaW50ICwKICAgIGNoYXIgKiAsCiAgICBDbGllbnRQdHIgLAogICAgY2hhciAqKgoKKTsK CmV4dGVybiB2b2lkIFJlc2V0QXV0aG9yaXphdGlvbigKCiAgICB2b2lkCgopOwoKZXh0ZXJuIGlu dCBSZW1vdmVBdXRob3JpemF0aW9uICgKICAgIHVuc2lnbmVkIHNob3J0IG5hbWVfbGVuZ3RoLAog ICAgY2hhciAqbmFtZSwKICAgIHVuc2lnbmVkIHNob3J0IGRhdGFfbGVuZ3RoLAogICAgY2hhciAq ZGF0YSk7CgpleHRlcm4gaW50IEFkZEF1dGhvcml6YXRpb24oCgogICAgdW5zaWduZWQgaW50ICwK ICAgIGNoYXIgKiAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgY2hhciAqCgopOwoKZXh0ZXJuIFhJ RCBHZW5lcmF0ZUF1dGhvcml6YXRpb24oCgogICAgdW5zaWduZWQgaW50ICwKICAgIGNoYXIgKiAs CiAgICB1bnNpZ25lZCBpbnQgLAogICAgY2hhciAqICwKICAgIHVuc2lnbmVkIGludCAqICwKICAg IGNoYXIgKioKCik7CiMgNzgyICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2lu Y2x1ZGUvb3MuaCIKZXh0ZXJuIGludCBkZHhQcm9jZXNzQXJndW1lbnQoCgogICAgaW50ICwKICAg IGNoYXIgKiBbXSwKICAgIGludAoKKTsKCmV4dGVybiB2b2lkIGRkeFVzZU1zZyh2b2lkKTsKCgoK Cgp4UmVxUHRyIFBlZWtOZXh0UmVxdWVzdCgKCiAgICB4UmVxUHRyIHJlcSwgQ2xpZW50UHRyIGNs aWVudCwgQm9vbCByZWFkbW9yZQoKKTsKCnZvaWQgU2tpcFJlcXVlc3RzKAoKICAgIHhSZXFQdHIg cmVxLCBDbGllbnRQdHIgY2xpZW50LCBpbnQgbnVtc2tpcHBlZAoKKTsKIyA4MzIgIi4uLy4uLy4u Ly4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9vcy5oIgpleHRlcm4gQ2FsbGJhY2tM aXN0UHRyIFNraXBwZWRSZXF1ZXN0c0NhbGxiYWNrOwp0eXBlZGVmIHN0cnVjdCB7CiAgICB4UmVx UHRyIHJlcTsKICAgIENsaWVudFB0ciBjbGllbnQ7CiAgICBpbnQgbnVtc2tpcHBlZDsKfSBTa2lw cGVkUmVxdWVzdEluZm9SZWM7CgoKZXh0ZXJuIENhbGxiYWNrTGlzdFB0ciBSZXBseUNhbGxiYWNr Owp0eXBlZGVmIHN0cnVjdCB7CiAgICBDbGllbnRQdHIgY2xpZW50OwogICAgcG9pbnRlciByZXBs eURhdGE7CiAgICB1bnNpZ25lZCBsb25nIGRhdGFMZW5CeXRlczsKICAgIHVuc2lnbmVkIGxvbmcg Ynl0ZXNSZW1haW5pbmc7CiAgICBCb29sIHN0YXJ0T2ZSZXBseTsKfSBSZXBseUluZm9SZWM7CgoK ZXh0ZXJuIENhbGxiYWNrTGlzdFB0ciBGbHVzaENhbGxiYWNrOwoKZXh0ZXJuIHZvaWQgQWJvcnRE RFgodm9pZCk7CmV4dGVybiB2b2lkIGRkeEdpdmVVcCh2b2lkKTsKZXh0ZXJuIGludCBUaW1lU2lu Y2VMYXN0SW5wdXRFdmVudCh2b2lkKTsKIyAxMTggIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1z L1hzZXJ2ZXIvaW5jbHVkZS9taXNjLmgiIDIKIyAyNDAgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dy YW1zL1hzZXJ2ZXIvaW5jbHVkZS9taXNjLmgiCmV4dGVybiB2b2lkIFN3YXBMb25ncygKCiAgICBD QVJEMzIgKmxpc3QsCiAgICB1bnNpZ25lZCBsb25nIGNvdW50CgopOwoKZXh0ZXJuIHZvaWQgU3dh cFNob3J0cygKCiAgICBzaG9ydCAqbGlzdCwKICAgIHVuc2lnbmVkIGxvbmcgY291bnQKCik7Cgpl eHRlcm4gdm9pZCBNYWtlUHJlZGVjbGFyZWRBdG9tcygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIGlu dCBPbmVzKAoKICAgIHVuc2lnbmVkIGxvbmcKCik7Cgp0eXBlZGVmIHN0cnVjdCBfeFBvaW50ICpE RFhQb2ludFB0cjsKdHlwZWRlZiBzdHJ1Y3QgX0JveCAqQm94UHRyOwp0eXBlZGVmIHN0cnVjdCBf eEV2ZW50ICp4RXZlbnRQdHI7CnR5cGVkZWYgc3RydWN0IF94UmVjdGFuZ2xlICp4UmVjdGFuZ2xl UHRyOwp0eXBlZGVmIHN0cnVjdCBfR3JhYlJlYyAqR3JhYlB0cjsKCgoKCgoKCnR5cGVkZWYgc3Ry dWN0IF9DaGFySW5mbyAqQ2hhckluZm9QdHI7CiMgNTIgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dy YW1zL1hzZXJ2ZXIvaW5jbHVkZS9waXhtYXAuaCIgMgojIDEgIi4uLy4uLy4uLy4uLy4uLy4uL3By b2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9zY3JlZW5pbnQuaCIgMQojIDU0ICIuLi8uLi8uLi8uLi8u Li8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NyZWVuaW50LmgiCnR5cGVkZWYgc3RydWN0 IF9QaXhtYXBGb3JtYXQgKlBpeG1hcEZvcm1hdFB0cjsKdHlwZWRlZiBzdHJ1Y3QgX1Zpc3VhbCAq VmlzdWFsUHRyOwp0eXBlZGVmIHN0cnVjdCBfRGVwdGggKkRlcHRoUHRyOwp0eXBlZGVmIHN0cnVj dCBfU2NyZWVuICpTY3JlZW5QdHI7CgpleHRlcm4gdm9pZCBSZXNldFNjcmVlblByaXZhdGVzKAoK ICAgIHZvaWQKCik7CgpleHRlcm4gaW50IEFsbG9jYXRlU2NyZWVuUHJpdmF0ZUluZGV4KAoKICAg IHZvaWQKCik7CgpleHRlcm4gdm9pZCBSZXNldFdpbmRvd1ByaXZhdGVzKAoKICAgIHZvaWQKCik7 CgpleHRlcm4gaW50IEFsbG9jYXRlV2luZG93UHJpdmF0ZUluZGV4KAoKICAgIHZvaWQKCik7Cgpl eHRlcm4gQm9vbCBBbGxvY2F0ZVdpbmRvd1ByaXZhdGUoCgogICAgU2NyZWVuUHRyICwKICAgIGlu dCAsCiAgICB1bnNpZ25lZAoKKTsKCmV4dGVybiB2b2lkIFJlc2V0R0NQcml2YXRlcygKCiAgICB2 b2lkCgopOwoKZXh0ZXJuIGludCBBbGxvY2F0ZUdDUHJpdmF0ZUluZGV4KAoKICAgIHZvaWQKCik7 CgpleHRlcm4gQm9vbCBBbGxvY2F0ZUdDUHJpdmF0ZSgKCiAgICBTY3JlZW5QdHIgLAogICAgaW50 ICwKICAgIHVuc2lnbmVkCgopOwoKZXh0ZXJuIGludCBBZGRTY3JlZW4oCgogICAgQm9vbCAoKiAp KAoKICAgICAgICBpbnQgLAogICAgICAgIFNjcmVlblB0ciAsCiAgICAgICAgaW50ICwKICAgICAg ICBjaGFyICoqCgogICAgKSwKICAgIGludCAsCiAgICBjaGFyKioKCik7CgoKCmV4dGVybiB2b2lk IFJlc2V0UGl4bWFwUHJpdmF0ZXMoCgogICAgdm9pZAoKKTsKCmV4dGVybiBpbnQgQWxsb2NhdGVQ aXhtYXBQcml2YXRlSW5kZXgoCgogICAgdm9pZAoKKTsKCmV4dGVybiBCb29sIEFsbG9jYXRlUGl4 bWFwUHJpdmF0ZSgKCiAgICBTY3JlZW5QdHIgLAogICAgaW50ICwKICAgIHVuc2lnbmVkCgopOwoK CgpleHRlcm4gdm9pZCBSZXNldENvbG9ybWFwUHJpdmF0ZXMoCgogICAgdm9pZAoKKTsKCgp0eXBl ZGVmIHN0cnVjdCBfQ29sb3JtYXBSZWMgKkNvbG9ybWFwUHRyOwp0eXBlZGVmIGludCAoKkluaXRD bWFwUHJpdkZ1bmMpKAoKICAgICAgICBDb2xvcm1hcFB0cgoKKTsKCmV4dGVybiBpbnQgQWxsb2Nh dGVDb2xvcm1hcFByaXZhdGVJbmRleCgKCiAgICBJbml0Q21hcFByaXZGdW5jCgopOwojIDUzICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcGl4bWFwLmgiIDIKIyA2 NiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3BpeG1hcC5oIgp0 eXBlZGVmIHN0cnVjdCBfRHJhd2FibGUgKkRyYXdhYmxlUHRyOwp0eXBlZGVmIHN0cnVjdCBfUGl4 bWFwICpQaXhtYXBQdHI7Cgp0eXBlZGVmIHVuaW9uIF9QaXhVbmlvbiB7CiAgICBQaXhtYXBQdHIg cGl4bWFwOwogICAgdW5zaWduZWQgbG9uZyBwaXhlbDsKfSBQaXhVbmlvbjsKIyA4NiAiLi4vLi4v Li4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3BpeG1hcC5oIgpleHRlcm4gUGl4 bWFwUHRyIEdldFNjcmF0Y2hQaXhtYXBIZWFkZXIoCgogICAgU2NyZWVuUHRyICwKICAgIGludCAs CiAgICBpbnQgLAogICAgaW50ICwKICAgIGludCAsCiAgICBpbnQgLAogICAgcG9pbnRlcgoKKTsK CmV4dGVybiB2b2lkIEZyZWVTY3JhdGNoUGl4bWFwSGVhZGVyKAoKICAgIFBpeG1hcFB0cgoKKTsK CmV4dGVybiBCb29sIENyZWF0ZVNjcmF0Y2hQaXhtYXBzRm9yU2NyZWVuKAoKICAgIGludAoKKTsK CmV4dGVybiB2b2lkIEZyZWVTY3JhdGNoUGl4bWFwc0ZvclNjcmVlbigKCiAgICBpbnQKCik7Cgpl eHRlcm4gUGl4bWFwUHRyIEFsbG9jYXRlUGl4bWFwKAoKICAgIFNjcmVlblB0ciAsCiAgICBpbnQK Cik7CiMgNTIgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9waXht YXBzdHIuaCIgMgoKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1 ZGUvbWlzY3N0cnVjdC5oIiAxCiMgNTQgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2 ZXIvaW5jbHVkZS9taXNjc3RydWN0LmgiCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9p bmNsdWRlL1gxMS9YcHJvdG9zdHIuaCIgMQojIDU1ICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRz L2luY2x1ZGUvWDExL1hwcm90b3N0ci5oIgp0eXBlZGVmIHN0cnVjdCBfeFNlZ21lbnQgewogICAg SU5UMTYgeDEgLCB5MSAsIHgyICwgeTIgOwp9IHhTZWdtZW50OwoKCgp0eXBlZGVmIHN0cnVjdCBf eFBvaW50IHsKICAgICAgICBJTlQxNiB4ICwgeSA7Cn0geFBvaW50OwoKdHlwZWRlZiBzdHJ1Y3Qg X3hSZWN0YW5nbGUgewogICAgSU5UMTYgeCAsIHkgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0 IDsKfSB4UmVjdGFuZ2xlOwoKCgp0eXBlZGVmIHN0cnVjdCBfeEFyYyB7CiAgICBJTlQxNiB4ICwg eSA7CiAgICBDQVJEMTYgd2lkdGggLCBoZWlnaHQgOwogICAgSU5UMTYgYW5nbGUxICwgYW5nbGUy IDsKfSB4QXJjOwojIDU1ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1 ZGUvbWlzY3N0cnVjdC5oIiAyCgp0eXBlZGVmIHhQb2ludCBERFhQb2ludFJlYzsKCnR5cGVkZWYg c3RydWN0IF9Cb3ggewogICAgc2hvcnQgeDEsIHkxLCB4MiwgeTI7Cn0gQm94UmVjOwoKdHlwZWRl ZiB1bmlvbiBfRGV2VW5pb24gewogICAgcG9pbnRlciBwdHI7CiAgICBsb25nIHZhbDsKICAgIHVu c2lnbmVkIGxvbmcgdXZhbDsKICAgIHBvaW50ZXIgKCpmcHRyKSgKCiAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQKCiAgICAgICAgICAgICAgICAgICAgICAgICk7Cn0gRGV2VW5pb247CiMgNTQg Ii4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9waXhtYXBzdHIuaCIg MgoKdHlwZWRlZiBzdHJ1Y3QgX0RyYXdhYmxlIHsKICAgIHVuc2lnbmVkIGNoYXIgdHlwZTsKICAg IHVuc2lnbmVkIGNoYXIgY2xhc3M7CiAgICB1bnNpZ25lZCBjaGFyIGRlcHRoOwogICAgdW5zaWdu ZWQgY2hhciBiaXRzUGVyUGl4ZWw7CiAgICB1bnNpZ25lZCBsb25nIGlkOwogICAgc2hvcnQgeDsK ICAgIHNob3J0IHk7CiAgICB1bnNpZ25lZCBzaG9ydCB3aWR0aDsKICAgIHVuc2lnbmVkIHNob3J0 IGhlaWdodDsKICAgIFNjcmVlblB0ciBwU2NyZWVuOwogICAgdW5zaWduZWQgbG9uZyBzZXJpYWxO dW1iZXI7Cn0gRHJhd2FibGVSZWM7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX1BpeG1hcCB7CiAgICBE cmF3YWJsZVJlYyBkcmF3YWJsZTsKICAgIGludCByZWZjbnQ7CiAgICBpbnQgZGV2S2luZDsKICAg IERldlVuaW9uIGRldlByaXZhdGU7CgogICAgRGV2VW5pb24gKmRldlByaXZhdGVzOwoKfSBQaXht YXBSZWM7CiMgNTYgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXguaCIgMgojIDEgIi4uLy4uLy4uLy4u Ly4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9kaXguaCIgMQojIDUzICIuLi8uLi8uLi8u Li8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvZGl4LmgiCiMgMSAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2djLmgiIDEKIyA1NSAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2djLmgiCiMgMSAiLi4vLi4vLi4vLi4vLi4v Li4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG8uaCIgMQojIDI2MyAiLi4vLi4vLi4vLi4vLi4v Li4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG8uaCIKdHlwZWRlZiBDQVJEMTYgS2V5QnV0TWFz azsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggYnl0ZU9yZGVyOwogICAgQllURSBw YWQ7CiAgICBDQVJEMTYgbWFqb3JWZXJzaW9uICwgbWlub3JWZXJzaW9uIDsKICAgIENBUkQxNiBu Ynl0ZXNBdXRoUHJvdG8gOwogICAgQ0FSRDE2IG5ieXRlc0F1dGhTdHJpbmcgOwogICAgQ0FSRDE2 IHBhZDIgOwp9IHhDb25uQ2xpZW50UHJlZml4OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg c3VjY2VzczsKICAgIEJZVEUgbGVuZ3RoUmVhc29uOwogICAgQ0FSRDE2IG1ham9yVmVyc2lvbiAs CiAgICAgICAgICAgICAgICAgICBtaW5vclZlcnNpb24gOwogICAgQ0FSRDE2IGxlbmd0aCA7Cn0g eENvbm5TZXR1cFByZWZpeDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMzIgcmVsZWFzZSA7 CiAgICBDQVJEMzIgcmlkQmFzZSAsCiAgICAgICAgICAgICAgICAgICByaWRNYXNrIDsKICAgIENB UkQzMiBtb3Rpb25CdWZmZXJTaXplIDsKICAgIENBUkQxNiBuYnl0ZXNWZW5kb3IgOwogICAgQ0FS RDE2IG1heFJlcXVlc3RTaXplIDsKICAgIENBUkQ4IG51bVJvb3RzOwogICAgQ0FSRDggbnVtRm9y bWF0czsKICAgIENBUkQ4IGltYWdlQnl0ZU9yZGVyOwogICAgQ0FSRDggYml0bWFwQml0T3JkZXI7 CiAgICBDQVJEOCBiaXRtYXBTY2FubGluZVVuaXQsCiAgICAgICAgICAgICAgICAgICBiaXRtYXBT Y2FubGluZVBhZDsKICAgIENBUkQ4IG1pbktleUNvZGUsIG1heEtleUNvZGU7CiAgICBDQVJEMzIg cGFkMiA7Cn0geENvbm5TZXR1cDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IGRlcHRoOwog ICAgQ0FSRDggYml0c1BlclBpeGVsOwogICAgQ0FSRDggc2NhbkxpbmVQYWQ7CiAgICBDQVJEOCBw YWQxOwogICAgQ0FSRDMyIHBhZDIgOwp9IHhQaXhtYXBGb3JtYXQ7CgoKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQ4IGRlcHRoOwogICAgQ0FSRDggcGFkMTsKICAgIENBUkQxNiBuVmlzdWFscyA7 CiAgICBDQVJEMzIgcGFkMiA7CiAgICB9IHhEZXB0aDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQzMiB2aXN1YWxJRCA7CgoKCiAgICBDQVJEOCBjbGFzczsKCiAgICBDQVJEOCBiaXRzUGVyUkdC OwogICAgQ0FSRDE2IGNvbG9ybWFwRW50cmllcyA7CiAgICBDQVJEMzIgcmVkTWFzayAsIGdyZWVu TWFzayAsIGJsdWVNYXNrIDsKICAgIENBUkQzMiBwYWQgOwogICAgfSB4VmlzdWFsVHlwZTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQzMiB3aW5kb3dJZCA7CiAgICBDQVJEMzIgZGVmYXVsdENv bG9ybWFwIDsKICAgIENBUkQzMiB3aGl0ZVBpeGVsICwgYmxhY2tQaXhlbCA7CiAgICBDQVJEMzIg Y3VycmVudElucHV0TWFzayA7CiAgICBDQVJEMTYgcGl4V2lkdGggLCBwaXhIZWlnaHQgOwogICAg Q0FSRDE2IG1tV2lkdGggLCBtbUhlaWdodCA7CiAgICBDQVJEMTYgbWluSW5zdGFsbGVkTWFwcyAs IG1heEluc3RhbGxlZE1hcHMgOwogICAgQ0FSRDMyIHJvb3RWaXN1YWxJRCA7CiAgICBDQVJEOCBi YWNraW5nU3RvcmU7CiAgICBCT09MIHNhdmVVbmRlcnM7CiAgICBDQVJEOCByb290RGVwdGg7CiAg ICBDQVJEOCBuRGVwdGhzOwp9IHhXaW5kb3dSb290OwojIDM1OCAiLi4vLi4vLi4vLi4vLi4vLi4v ZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG8uaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDMy IHRpbWUgOwogICAgSU5UMTYgeCAsIHkgOwp9IHhUaW1lY29vcmQ7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBDQVJEOCBmYW1pbHk7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwp9IHhI b3N0RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBJTlQxNiBsZWZ0U2lkZUJlYXJpbmcgLAog ICAgICAgICAgcmlnaHRTaWRlQmVhcmluZyAsCiAgICAgICAgICBjaGFyYWN0ZXJXaWR0aCAsCiAg ICAgICAgICBhc2NlbnQgLAogICAgICAgICAgZGVzY2VudCA7CiAgICBDQVJEMTYgYXR0cmlidXRl cyA7Cn0geENoYXJJbmZvOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDMyIG5hbWUgOwogICAg Q0FSRDMyIHZhbHVlIDsKfSB4Rm9udFByb3A7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCBsZW47CgogICAgSU5UOCBkZWx0YTsKfSB4VGV4dEVsdDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEMzIgcGl4ZWwgOwogICAgQ0FSRDE2IHJlZCAsIGdyZWVuICwgYmx1ZSA7CiAgICBDQVJE OCBmbGFnczsKICAgIENBUkQ4IHBhZDsKfSB4Q29sb3JJdGVtOwoKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQxNiByZWQgLCBncmVlbiAsIGJsdWUgLCBwYWQgOwp9IHhyZ2I7Cgp0eXBlZGVmIENB UkQ4IEtFWUNPREU7CiMgNDE2ICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDEx L1hwcm90by5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIGRhdGEx OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FS RDMyIGRhdGEwMCA7CiAgICBDQVJEMzIgZGF0YTAxIDsKICAgIENBUkQzMiBkYXRhMDIgOwogICAg Q0FSRDMyIGRhdGEwMyA7CiAgICBDQVJEMzIgZGF0YTA0IDsKICAgIENBUkQzMiBkYXRhMDUgOwog ICAgfSB4R2VuZXJpY1JlcGx5OwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAg ICBDQVJEOCBiYWNraW5nU3RvcmU7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FS RDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgdmlzdWFsSUQgOwoKCgogICAgQ0FSRDE2IGNsYXNzIDsK CiAgICBDQVJEOCBiaXRHcmF2aXR5OwogICAgQ0FSRDggd2luR3Jhdml0eTsKICAgIENBUkQzMiBi YWNraW5nQml0UGxhbmVzIDsKICAgIENBUkQzMiBiYWNraW5nUGl4ZWwgOwogICAgQk9PTCBzYXZl VW5kZXI7CiAgICBCT09MIG1hcEluc3RhbGxlZDsKICAgIENBUkQ4IG1hcFN0YXRlOwogICAgQk9P TCBvdmVycmlkZTsKICAgIENBUkQzMiBjb2xvcm1hcCA7CiAgICBDQVJEMzIgYWxsRXZlbnRNYXNr cyA7CiAgICBDQVJEMzIgeW91ckV2ZW50TWFzayA7CiAgICBDQVJEMTYgZG9Ob3RQcm9wYWdhdGVN YXNrIDsKICAgIENBUkQxNiBwYWQgOwogICAgfSB4R2V0V2luZG93QXR0cmlidXRlc1JlcGx5OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggZGVwdGg7CiAgICBDQVJE MTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcm9vdCA7 CiAgICBJTlQxNiB4ICwgeSA7CiAgICBDQVJEMTYgd2lkdGggLCBoZWlnaHQgOwogICAgQ0FSRDE2 IGJvcmRlcldpZHRoIDsKICAgIENBUkQxNiBwYWQxIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENB UkQzMiBwYWQzIDsKICAgIH0geEdldEdlb21ldHJ5UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwog ICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcm9vdCAsIHBhcmVudCA7CiAgICBDQVJEMTYg bkNoaWxkcmVuIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQz MiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIH0geFF1ZXJ5VHJlZVJlcGx5OwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIGF0b20gOwogICAgQ0FS RDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMy IHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgfSB4SW50ZXJuQXRvbVJlcGx5OwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IG5hbWVMZW5ndGggOwog ICAgQ0FSRDE2IHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAg Q0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4 R2V0QXRvbU5hbWVSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENB UkQ4IGZvcm1hdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3Ro IDsKICAgIENBUkQzMiBwcm9wZXJ0eVR5cGUgOwogICAgQ0FSRDMyIGJ5dGVzQWZ0ZXIgOwogICAg Q0FSRDMyIG5JdGVtcyA7CiAgICBDQVJEMzIgcGFkMSA7CiAgICBDQVJEMzIgcGFkMiA7CiAgICBD QVJEMzIgcGFkMyA7CiAgICB9IHhHZXRQcm9wZXJ0eVJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsK ICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IG5Qcm9wZXJ0aWVzIDsKICAgIENBUkQxNiBw YWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1 IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geExpc3RQcm9wZXJ0 aWVzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7 CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJE MzIgb3duZXIgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMy IHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgfSB4R2V0U2Vs ZWN0aW9uT3duZXJSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZ VEUgc3RhdHVzOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGgg OwogICAgQ0FSRDMyIHBhZDEgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAg fSB4R3JhYlBvaW50ZXJSZXBseTsKCnR5cGVkZWYgeEdyYWJQb2ludGVyUmVwbHkgeEdyYWJLZXli b2FyZFJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQk9PTCBzYW1l U2NyZWVuOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwog ICAgQ0FSRDMyIHJvb3QgLCBjaGlsZCA7CiAgICBJTlQxNiByb290WCAsIHJvb3RZICwgd2luWCAs IHdpblkgOwogICAgQ0FSRDE2IG1hc2sgOwogICAgQ0FSRDE2IHBhZDEgOwogICAgQ0FSRDMyIHBh ZCA7CiAgICB9IHhRdWVyeVBvaW50ZXJSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUg dHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIENBUkQzMiBuRXZlbnRzIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENB UkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQz MiBwYWQ2IDsKICAgIH0geEdldE1vdGlvbkV2ZW50c1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQllURSB0eXBlOwogICAgQk9PTCBzYW1lU2NyZWVuOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVt YmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIGNoaWxkIDsKICAgIElOVDE2IGRz dFggLCBkc3RZIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQz MiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIH0geFRyYW5zbGF0ZUNvb3Jkc1JlcGx5OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggcmV2ZXJ0VG87CiAgICBD QVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgZm9j dXMgOwogICAgQ0FSRDMyIHBhZDEgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMg OwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgfSB4R2V0SW5wdXRGb2N1 c1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwog ICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQllURSBt YXBbMzJdOwogICAgfSB4UXVlcnlLZXltYXBSZXBseTsKCgp0eXBlZGVmIHN0cnVjdCBfeFF1ZXJ5 Rm9udFJlcGx5IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1 ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIHhDaGFySW5mbyBtaW5Cb3VuZHM7 CgogICAgQ0FSRDMyIHdhbGlnbjEgOwoKICAgIHhDaGFySW5mbyBtYXhCb3VuZHM7CgogICAgQ0FS RDMyIHdhbGlnbjIgOwoKICAgIENBUkQxNiBtaW5DaGFyT3JCeXRlMiAsIG1heENoYXJPckJ5dGUy IDsKICAgIENBUkQxNiBkZWZhdWx0Q2hhciA7CiAgICBDQVJEMTYgbkZvbnRQcm9wcyA7CiAgICBD QVJEOCBkcmF3RGlyZWN0aW9uOwogICAgQ0FSRDggbWluQnl0ZTEsIG1heEJ5dGUxOwogICAgQk9P TCBhbGxDaGFyc0V4aXN0OwogICAgSU5UMTYgZm9udEFzY2VudCAsIGZvbnREZXNjZW50IDsKICAg IENBUkQzMiBuQ2hhckluZm9zIDsKfSB4UXVlcnlGb250UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCBkcmF3RGlyZWN0aW9uOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgSU5UMTYgZm9udEFzY2VudCAsIGZv bnREZXNjZW50IDsKICAgIElOVDE2IG92ZXJhbGxBc2NlbnQgLCBvdmVyYWxsRGVzY2VudCA7CiAg ICBJTlQzMiBvdmVyYWxsV2lkdGggLCBvdmVyYWxsTGVmdCAsIG92ZXJhbGxSaWdodCA7CiAgICBD QVJEMzIgcGFkIDsKICAgIH0geFF1ZXJ5VGV4dEV4dGVudHNSZXBseTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJl ciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuRm9udHMgOwogICAgQ0FSRDE2IHBh ZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUg OwogICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4TGlzdEZvbnRzUmVw bHk7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggbmFtZUxlbmd0 aDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIHhD aGFySW5mbyBtaW5Cb3VuZHM7CgogICAgQ0FSRDMyIHdhbGlnbjEgOwoKICAgIHhDaGFySW5mbyBt YXhCb3VuZHM7CgogICAgQ0FSRDMyIHdhbGlnbjIgOwoKICAgIENBUkQxNiBtaW5DaGFyT3JCeXRl MiAsIG1heENoYXJPckJ5dGUyIDsKICAgIENBUkQxNiBkZWZhdWx0Q2hhciA7CiAgICBDQVJEMTYg bkZvbnRQcm9wcyA7CiAgICBDQVJEOCBkcmF3RGlyZWN0aW9uOwogICAgQ0FSRDggbWluQnl0ZTEs IG1heEJ5dGUxOwogICAgQk9PTCBhbGxDaGFyc0V4aXN0OwogICAgSU5UMTYgZm9udEFzY2VudCAs IGZvbnREZXNjZW50IDsKICAgIENBUkQzMiBuUmVwbGllcyA7Cn0geExpc3RGb250c1dpdGhJbmZv UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAg ICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYg blBhdGhzIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBw YWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3 IDsKICAgIH0geEdldEZvbnRQYXRoUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5 cGU7CiAgICBDQVJEOCBkZXB0aDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIENBUkQzMiB2aXN1YWwgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FS RDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMy IHBhZDcgOwogICAgfSB4R2V0SW1hZ2VSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUg dHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuQ29sb3JtYXBzIDsKICAgIENBUkQxNiBwYWQyIDsKICAg IENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENB UkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geExpc3RJbnN0YWxsZWRDb2xvcm1h cHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsK ICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQx NiByZWQgLCBncmVlbiAsIGJsdWUgOwogICAgQ0FSRDE2IHBhZDIgOwogICAgQ0FSRDMyIHBpeGVs IDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsK ICAgIH0geEFsbG9jQ29sb3JSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsK ICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVu Z3RoIDsKICAgIENBUkQzMiBwaXhlbCA7CiAgICBDQVJEMTYgZXhhY3RSZWQgLCBleGFjdEdyZWVu ICwgZXhhY3RCbHVlIDsKICAgIENBUkQxNiBzY3JlZW5SZWQgLCBzY3JlZW5HcmVlbiAsIHNjcmVl bkJsdWUgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgfSB4QWxsb2NO YW1lZENvbG9yUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRF IHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAg ICBDQVJEMTYgblBpeGVscyAsIG5NYXNrcyA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIg cGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBDQVJEMzIgcGFk NyA7CiAgICB9IHhBbGxvY0NvbG9yQ2VsbHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZ VEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBD QVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuUGl4ZWxzIDsKICAgIENBUkQxNiBwYWQyIDsKICAg IENBUkQzMiByZWRNYXNrICwgZ3JlZW5NYXNrICwgYmx1ZU1hc2sgOwogICAgQ0FSRDMyIHBhZDMg OwogICAgQ0FSRDMyIHBhZDQgOwogICAgfSB4QWxsb2NDb2xvclBsYW5lc1JlcGx5OwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IG5Db2xvcnMgOwogICAg Q0FSRDE2IHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FS RDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4UXVl cnlDb2xvcnNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUg cGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAg IENBUkQxNiBleGFjdFJlZCAsIGV4YWN0R3JlZW4gLCBleGFjdEJsdWUgOwogICAgQ0FSRDE2IHNj cmVlblJlZCAsIHNjcmVlbkdyZWVuICwgc2NyZWVuQmx1ZSA7CiAgICBDQVJEMzIgcGFkMyA7CiAg ICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICB9IHhMb29rdXBDb2xvclJlcGx5 OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FS RDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IHdpZHRo ICwgaGVpZ2h0IDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQz MiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geFF1ZXJ5 QmVzdFNpemVSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUg cGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAg IEJPT0wgcHJlc2VudDsKICAgIENBUkQ4IG1ham9yX29wY29kZTsKICAgIENBUkQ4IGZpcnN0X2V2 ZW50OwogICAgQ0FSRDggZmlyc3RfZXJyb3I7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIg cGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBDQVJEMzIgcGFk NyA7CiAgICB9IHhRdWVyeUV4dGVuc2lvblJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllU RSB0eXBlOwogICAgQ0FSRDggbkV4dGVuc2lvbnM7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7 CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAg ICBDQVJEMzIgcGFkNyA7CiAgICB9IHhMaXN0RXh0ZW5zaW9uc1JlcGx5OwoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHN1Y2Nlc3M7CiAgICBDQVJEMTYgc2VxdWVu Y2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcGFkMiA7CiAgICBDQVJE MzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIg cGFkNiA7CiAgICBDQVJEMzIgcGFkNyA7CiAgICB9IHhTZXRNYXBwaW5nUmVwbHk7CnR5cGVkZWYg eFNldE1hcHBpbmdSZXBseSB4U2V0UG9pbnRlck1hcHBpbmdSZXBseTsKdHlwZWRlZiB4U2V0TWFw cGluZ1JlcGx5IHhTZXRNb2RpZmllck1hcHBpbmdSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IEJZVEUgdHlwZTsKICAgIENBUkQ4IG5FbHRzOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsK ICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAg Q0FSRDMyIHBhZDcgOwogICAgfSB4R2V0UG9pbnRlck1hcHBpbmdSZXBseTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IGtleVN5bXNQZXJLZXlDb2RlOwogICAgQ0FS RDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHBhZDIg OwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwog ICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwp9IHhHZXRLZXlib2FyZE1hcHBpbmdS ZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IG51bUtleVBl ck1vZGlmaWVyOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGgg OwogICAgQ0FSRDMyIHBhZDEgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwp9IHhH ZXRNb2RpZmllck1hcHBpbmdSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsK ICAgIEJPT0wgZ2xvYmFsQXV0b1JlcGVhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAg ICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBsZWRNYXNrIDsKICAgIENBUkQ4IGtleUNsaWNr UGVyY2VudCwgYmVsbFBlcmNlbnQ7CiAgICBDQVJEMTYgYmVsbFBpdGNoICwgYmVsbER1cmF0aW9u IDsKICAgIENBUkQxNiBwYWQgOwogICAgQllURSBtYXBbMzJdOwogICAgfSB4R2V0S2V5Ym9hcmRD b250cm9sUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBh ZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBD QVJEMTYgYWNjZWxOdW1lcmF0b3IgLCBhY2NlbERlbm9taW5hdG9yIDsKICAgIENBUkQxNiB0aHJl c2hvbGQgOwogICAgQ0FSRDE2IHBhZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBh ZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAgfSB4R2V0UG9pbnRl ckNvbnRyb2xSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUg cGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAg IENBUkQxNiB0aW1lb3V0ICwgaW50ZXJ2YWwgOwogICAgQk9PTCBwcmVmZXJCbGFua2luZzsKICAg IEJPT0wgYWxsb3dFeHBvc3VyZXM7CiAgICBDQVJEMTYgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7 CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAg ICB9IHhHZXRTY3JlZW5TYXZlclJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBl OwogICAgQk9PTCBlbmFibGVkOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQz MiBsZW5ndGggOwogICAgQ0FSRDE2IG5Ib3N0cyA7CiAgICBDQVJEMTYgcGFkMSA7CiAgICBDQVJE MzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIg cGFkNiA7CiAgICBDQVJEMzIgcGFkNyA7CiAgICB9IHhMaXN0SG9zdHNSZXBseTsKIyA5NzUgIi4u Ly4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWHByb3RvLmgiCnR5cGVkZWYgc3Ry dWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgZXJyb3JDb2RlOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiByZXNvdXJjZUlEIDsKICAgIENBUkQxNiBtaW5vckNvZGUg OwogICAgQ0FSRDggbWFqb3JDb2RlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAg Q0FSRDMyIHBhZDcgOwp9IHhFcnJvcjsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3hFdmVudCB7CiAg ICB1bmlvbiB7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQllURSB0eXBlOwogICAgICAg ICAgICBCWVRFIGRldGFpbDsKICAgICAgICAgICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAg ICAgICAgICAgfSB1OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7 CiAgICAgICAgICAgIENBUkQzMiB0aW1lIDsKICAgICAgICAgICAgQ0FSRDMyIHJvb3QgLCBldmVu dCAsIGNoaWxkIDsKICAgICAgICAgICAgSU5UMTYgcm9vdFggLCByb290WSAsIGV2ZW50WCAsIGV2 ZW50WSA7CiAgICAgICAgICAgIEtleUJ1dE1hc2sgc3RhdGUgOwogICAgICAgICAgICBCT09MIHNh bWVTY3JlZW47CiAgICAgICAgICAgIEJZVEUgcGFkMTsKICAgICAgICB9IGtleUJ1dHRvblBvaW50 ZXI7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAg ICAgQ0FSRDMyIHRpbWUgOwogICAgICAgICAgICBDQVJEMzIgcm9vdCAsIGV2ZW50ICwgY2hpbGQg OwogICAgICAgICAgICBJTlQxNiByb290WCAsIHJvb3RZICwgZXZlbnRYICwgZXZlbnRZIDsKICAg ICAgICAgICAgS2V5QnV0TWFzayBzdGF0ZSA7CiAgICAgICAgICAgIEJZVEUgbW9kZTsKICAgICAg ICAgICAgQllURSBmbGFnczsKCgogICAgICAgIH0gZW50ZXJMZWF2ZTsKICAgICAgICBzdHJ1Y3Qg ewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIgd2luZG93IDsK ICAgICAgICAgICAgQllURSBtb2RlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7 CiAgICAgICAgfSBmb2N1czsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFk MDAgOwogICAgICAgICAgICBDQVJEMzIgd2luZG93IDsKICAgICAgICAgICAgQ0FSRDE2IHggLCB5 ICwgd2lkdGggLCBoZWlnaHQgOwogICAgICAgICAgICBDQVJEMTYgY291bnQgOwogICAgICAgICAg ICBDQVJEMTYgcGFkMiA7CiAgICAgICAgfSBleHBvc2U7CiAgICAgICAgc3RydWN0IHsKICAgICAg ICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGRyYXdhYmxlIDsKICAgICAg ICAgICAgQ0FSRDE2IHggLCB5ICwgd2lkdGggLCBoZWlnaHQgOwogICAgICAgICAgICBDQVJEMTYg bWlub3JFdmVudCA7CiAgICAgICAgICAgIENBUkQxNiBjb3VudCA7CiAgICAgICAgICAgIEJZVEUg bWFqb3JFdmVudDsKICAgICAgICAgICAgQllURSBwYWQxLCBwYWQyLCBwYWQzOwogICAgICAgIH0g Z3JhcGhpY3NFeHBvc3VyZTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFk MDAgOwogICAgICAgICAgICBDQVJEMzIgZHJhd2FibGUgOwogICAgICAgICAgICBDQVJEMTYgbWlu b3JFdmVudCA7CiAgICAgICAgICAgIEJZVEUgbWFqb3JFdmVudDsKICAgICAgICAgICAgQllURSBi cGFkOwogICAgICAgIH0gbm9FeHBvc3VyZTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBD QVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIgd2luZG93IDsKICAgICAgICAgICAgQ0FS RDggc3RhdGU7CiAgICAgICAgICAgIEJZVEUgcGFkMSwgcGFkMiwgcGFkMzsKICAgICAgICB9IHZp c2liaWxpdHk7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAg ICAgICAgICAgQ0FSRDMyIHBhcmVudCAsIHdpbmRvdyA7CiAgICAgICAgICAgIElOVDE2IHggLCB5 IDsKICAgICAgICAgICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0ICwgYm9yZGVyV2lkdGggOwogICAg ICAgICAgICBCT09MIG92ZXJyaWRlOwogICAgICAgICAgICBCWVRFIGJwYWQ7CiAgICAgICAgfSBj cmVhdGVOb3RpZnk7CiMgMTA3MyAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gx MS9YcHJvdG8uaCIKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwog ICAgICAgICAgICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgOwogICAgICAgIH0gZGVzdHJveU5vdGlm eTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAg ICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgOwogICAgICAgICAgICBCT09MIGZyb21Db25maWd1cmU7 CiAgICAgICAgICAgIEJZVEUgcGFkMSwgcGFkMiwgcGFkMzsKICAgICAgICB9IHVubWFwTm90aWZ5 OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAg IENBUkQzMiBldmVudCAsIHdpbmRvdyA7CiAgICAgICAgICAgIEJPT0wgb3ZlcnJpZGU7CiAgICAg ICAgICAgIEJZVEUgcGFkMSwgcGFkMiwgcGFkMzsKICAgICAgICB9IG1hcE5vdGlmeTsKICAgICAg ICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIg cGFyZW50ICwgd2luZG93IDsKICAgICAgICB9IG1hcFJlcXVlc3Q7CiAgICAgICAgc3RydWN0IHsK ICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGV2ZW50ICwgd2lu ZG93ICwgcGFyZW50IDsKICAgICAgICAgICAgSU5UMTYgeCAsIHkgOwogICAgICAgICAgICBCT09M IG92ZXJyaWRlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7CiAgICAgICAgfSBy ZXBhcmVudDsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAg ICAgICAgICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgLCBhYm92ZVNpYmxpbmcgOwogICAgICAgICAg ICBJTlQxNiB4ICwgeSA7CiAgICAgICAgICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCAsIGJvcmRl cldpZHRoIDsKICAgICAgICAgICAgQk9PTCBvdmVycmlkZTsKICAgICAgICAgICAgQllURSBicGFk OwogICAgICAgIH0gY29uZmlndXJlTm90aWZ5OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg IENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiBwYXJlbnQgLCB3aW5kb3cgLCBzaWJs aW5nIDsKICAgICAgICAgICAgSU5UMTYgeCAsIHkgOwogICAgICAgICAgICBDQVJEMTYgd2lkdGgg LCBoZWlnaHQgLCBib3JkZXJXaWR0aCA7CiAgICAgICAgICAgIENBUkQxNiB2YWx1ZU1hc2sgOwog ICAgICAgICAgICBDQVJEMzIgcGFkMSA7CiAgICAgICAgfSBjb25maWd1cmVSZXF1ZXN0OwogICAg ICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQz MiBldmVudCAsIHdpbmRvdyA7CiAgICAgICAgICAgIElOVDE2IHggLCB5IDsKICAgICAgICAgICAg Q0FSRDMyIHBhZDEgLCBwYWQyICwgcGFkMyAsIHBhZDQgOwogICAgICAgIH0gZ3Jhdml0eTsKICAg ICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJE MzIgd2luZG93IDsKICAgICAgICAgICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKICAgICAgICB9 IHJlc2l6ZVJlcXVlc3Q7CiAgICAgICAgc3RydWN0IHsKCgogICAgICAgICAgICBDQVJEMzIgcGFk MDAgOwogICAgICAgICAgICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgLCBwYXJlbnQgOwogICAgICAg ICAgICBCWVRFIHBsYWNlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7CiAgICAg ICAgfSBjaXJjdWxhdGU7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAw IDsKICAgICAgICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAgICAgICAgIENBUkQzMiBhdG9tIDsK ICAgICAgICAgICAgQ0FSRDMyIHRpbWUgOwogICAgICAgICAgICBCWVRFIHN0YXRlOwogICAgICAg ICAgICBCWVRFIHBhZDE7CiAgICAgICAgICAgIENBUkQxNiBwYWQyIDsKICAgICAgICB9IHByb3Bl cnR5OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAg ICAgIENBUkQzMiB0aW1lIDsKICAgICAgICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAgICAgICAg IENBUkQzMiBhdG9tIDsKICAgICAgICB9IHNlbGVjdGlvbkNsZWFyOwogICAgICAgIHN0cnVjdCB7 CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiB0aW1lIDsKICAg ICAgICAgICAgQ0FSRDMyIG93bmVyICwgcmVxdWVzdG9yIDsKICAgICAgICAgICAgQ0FSRDMyIHNl bGVjdGlvbiAsIHRhcmdldCAsIHByb3BlcnR5IDsKICAgICAgICB9IHNlbGVjdGlvblJlcXVlc3Q7 CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAg Q0FSRDMyIHRpbWUgOwogICAgICAgICAgICBDQVJEMzIgcmVxdWVzdG9yIDsKICAgICAgICAgICAg Q0FSRDMyIHNlbGVjdGlvbiAsIHRhcmdldCAsIHByb3BlcnR5IDsKICAgICAgICB9IHNlbGVjdGlv bk5vdGlmeTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAg ICAgICAgICBDQVJEMzIgd2luZG93IDsKICAgICAgICAgICAgQ0FSRDMyIGNvbG9ybWFwIDsKCgoK ICAgICAgICAgICAgQk9PTCBuZXc7CgogICAgICAgICAgICBCWVRFIHN0YXRlOwogICAgICAgICAg ICBCWVRFIHBhZDEsIHBhZDI7CiAgICAgICAgfSBjb2xvcm1hcDsKICAgICAgICBzdHJ1Y3Qgewog ICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEOCByZXF1ZXN0OwogICAg ICAgICAgICBDQVJEOCBmaXJzdEtleUNvZGU7CiAgICAgICAgICAgIENBUkQ4IGNvdW50OwogICAg ICAgICAgICBCWVRFIHBhZDE7CiAgICAgICAgfSBtYXBwaW5nTm90aWZ5OwogICAgICAgIHN0cnVj dCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiB3aW5kb3cg OwogICAgICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg ICAgICAgICAgIENBUkQzMiB0eXBlIDsKICAgICAgICAgICAgICAgICAgICBJTlQzMiBsb25nczAg OwogICAgICAgICAgICAgICAgICAgIElOVDMyIGxvbmdzMSA7CiAgICAgICAgICAgICAgICAgICAg SU5UMzIgbG9uZ3MyIDsKICAgICAgICAgICAgICAgICAgICBJTlQzMiBsb25nczMgOwogICAgICAg ICAgICAgICAgICAgIElOVDMyIGxvbmdzNCA7CiAgICAgICAgICAgICAgICB9IGw7CiAgICAgICAg ICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgIENBUkQzMiB0eXBlIDsKICAgICAg ICAgICAgICAgICAgICBJTlQxNiBzaG9ydHMwIDsKICAgICAgICAgICAgICAgICAgICBJTlQxNiBz aG9ydHMxIDsKICAgICAgICAgICAgICAgICAgICBJTlQxNiBzaG9ydHMyIDsKICAgICAgICAgICAg ICAgICAgICBJTlQxNiBzaG9ydHMzIDsKICAgICAgICAgICAgICAgICAgICBJTlQxNiBzaG9ydHM0 IDsKICAgICAgICAgICAgICAgICAgICBJTlQxNiBzaG9ydHM1IDsKICAgICAgICAgICAgICAgICAg ICBJTlQxNiBzaG9ydHM2IDsKICAgICAgICAgICAgICAgICAgICBJTlQxNiBzaG9ydHM3IDsKICAg ICAgICAgICAgICAgICAgICBJTlQxNiBzaG9ydHM4IDsKICAgICAgICAgICAgICAgICAgICBJTlQx NiBzaG9ydHM5IDsKICAgICAgICAgICAgICAgIH0gczsKICAgICAgICAgICAgICAgIHN0cnVjdCB7 CiAgICAgICAgICAgICAgICAgICAgQ0FSRDMyIHR5cGUgOwogICAgICAgICAgICAgICAgICAgIElO VDggYnl0ZXNbMjBdOwogICAgICAgICAgICAgICAgfSBiOwogICAgICAgICAgICB9IHU7CiAgICAg ICAgfSBjbGllbnRNZXNzYWdlOwogICAgfSB1Owp9IHhFdmVudDsKCgoKCgp0eXBlZGVmIHN0cnVj dCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIG1hcFszMV07CiAgICB9IHhLZXltYXBFdmVudDsK IyAxMjMxICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDExL1hwcm90by5oIgp0 eXBlZGVmIHVuaW9uIHsKICAgIHhHZW5lcmljUmVwbHkgZ2VuZXJpYzsKICAgIHhHZXRHZW9tZXRy eVJlcGx5IGdlb207CiAgICB4UXVlcnlUcmVlUmVwbHkgdHJlZTsKICAgIHhJbnRlcm5BdG9tUmVw bHkgYXRvbTsKICAgIHhHZXRBdG9tTmFtZVJlcGx5IGF0b21OYW1lOwogICAgeEdldFByb3BlcnR5 UmVwbHkgcHJvcGVydHk7CiAgICB4TGlzdFByb3BlcnRpZXNSZXBseSBsaXN0UHJvcGVydGllczsK ICAgIHhHZXRTZWxlY3Rpb25Pd25lclJlcGx5IHNlbGVjdGlvbjsKICAgIHhHcmFiUG9pbnRlclJl cGx5IGdyYWJQb2ludGVyOwogICAgeEdyYWJLZXlib2FyZFJlcGx5IGdyYWJLZXlib2FyZDsKICAg IHhRdWVyeVBvaW50ZXJSZXBseSBwb2ludGVyOwogICAgeEdldE1vdGlvbkV2ZW50c1JlcGx5IG1v dGlvbkV2ZW50czsKICAgIHhUcmFuc2xhdGVDb29yZHNSZXBseSBjb29yZHM7CiAgICB4R2V0SW5w dXRGb2N1c1JlcGx5IGlucHV0Rm9jdXM7CiAgICB4UXVlcnlUZXh0RXh0ZW50c1JlcGx5IHRleHRF eHRlbnRzOwogICAgeExpc3RGb250c1JlcGx5IGZvbnRzOwogICAgeEdldEZvbnRQYXRoUmVwbHkg Zm9udFBhdGg7CiAgICB4R2V0SW1hZ2VSZXBseSBpbWFnZTsKICAgIHhMaXN0SW5zdGFsbGVkQ29s b3JtYXBzUmVwbHkgY29sb3JtYXBzOwogICAgeEFsbG9jQ29sb3JSZXBseSBhbGxvY0NvbG9yOwog ICAgeEFsbG9jTmFtZWRDb2xvclJlcGx5IGFsbG9jTmFtZWRDb2xvcjsKICAgIHhBbGxvY0NvbG9y Q2VsbHNSZXBseSBjb2xvckNlbGxzOwogICAgeEFsbG9jQ29sb3JQbGFuZXNSZXBseSBjb2xvclBs YW5lczsKICAgIHhRdWVyeUNvbG9yc1JlcGx5IGNvbG9yczsKICAgIHhMb29rdXBDb2xvclJlcGx5 IGxvb2t1cENvbG9yOwogICAgeFF1ZXJ5QmVzdFNpemVSZXBseSBiZXN0U2l6ZTsKICAgIHhRdWVy eUV4dGVuc2lvblJlcGx5IGV4dGVuc2lvbjsKICAgIHhMaXN0RXh0ZW5zaW9uc1JlcGx5IGV4dGVu c2lvbnM7CiAgICB4U2V0TW9kaWZpZXJNYXBwaW5nUmVwbHkgc2V0TW9kaWZpZXJNYXBwaW5nOwog ICAgeEdldE1vZGlmaWVyTWFwcGluZ1JlcGx5IGdldE1vZGlmaWVyTWFwcGluZzsKICAgIHhTZXRQ b2ludGVyTWFwcGluZ1JlcGx5IHNldFBvaW50ZXJNYXBwaW5nOwogICAgeEdldEtleWJvYXJkTWFw cGluZ1JlcGx5IGdldEtleWJvYXJkTWFwcGluZzsKICAgIHhHZXRQb2ludGVyTWFwcGluZ1JlcGx5 IGdldFBvaW50ZXJNYXBwaW5nOwogICAgeEdldFBvaW50ZXJDb250cm9sUmVwbHkgcG9pbnRlckNv bnRyb2w7CiAgICB4R2V0U2NyZWVuU2F2ZXJSZXBseSBzY3JlZW5TYXZlcjsKICAgIHhMaXN0SG9z dHNSZXBseSBob3N0czsKICAgIHhFcnJvciBlcnJvcjsKICAgIHhFdmVudCBldmVudDsKfSB4UmVw bHk7CiMgMTI4MSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG8u aCIKdHlwZWRlZiBzdHJ1Y3QgX3hSZXEgewogICAgICAgIENBUkQ4IHJlcVR5cGU7CiAgICAgICAg Q0FSRDggZGF0YTsKICAgICAgICBDQVJEMTYgbGVuZ3RoIDsKCn0geFJlcTsKIyAxMjk1ICIuLi8u Li8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDExL1hwcm90by5oIgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIENBUkQzMiBpZCA7CiAgICB9IHhSZXNvdXJjZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBkZXB0aDsKICAgIENBUkQxNiBsZW5ndGggOwogICAg Q0FSRDMyIHdpZCAsIHBhcmVudCA7CiAgICBJTlQxNiB4ICwgeSA7CiAgICBDQVJEMTYgd2lkdGgg LCBoZWlnaHQgLCBib3JkZXJXaWR0aCA7CgoKCiAgICBDQVJEMTYgY2xhc3MgOwoKICAgIENBUkQz MiB2aXN1YWwgOwogICAgQ0FSRDMyIG1hc2sgOwp9IHhDcmVhdGVXaW5kb3dSZXE7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVu Z3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDMyIHZhbHVlTWFzayA7Cn0geENoYW5n ZVdpbmRvd0F0dHJpYnV0ZXNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQllURSBtb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsK fSB4Q2hhbmdlU2F2ZVNldFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHdpbmRvdyAsIHBh cmVudCA7CiAgICBJTlQxNiB4ICwgeSA7Cn0geFJlcGFyZW50V2luZG93UmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IHBhZDsKICAgIENBUkQxNiBsZW5n dGggOwogICAgQ0FSRDMyIHdpbmRvdyA7CiAgICBDQVJEMTYgbWFzayA7CiAgICBDQVJEMTYgcGFk MiA7Cn0geENvbmZpZ3VyZVdpbmRvd1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBDQVJEOCBkaXJlY3Rpb247CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQz MiB3aW5kb3cgOwp9IHhDaXJjdWxhdGVXaW5kb3dSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQk9PTCBvbmx5SWZFeGlzdHM7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIENBUkQxNiBuYnl0ZXMgOwogICAgQ0FSRDE2IHBhZCA7Cn0geEludGVybkF0b21SZXE7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggbW9kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHdpbmRvdyA7CiAgICBDQVJEMzIgcHJvcGVydHkgLCB0 eXBlIDsKICAgIENBUkQ4IGZvcm1hdDsKICAgIEJZVEUgcGFkWzNdOwogICAgQ0FSRDMyIG5Vbml0 cyA7Cn0geENoYW5nZVByb3BlcnR5UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93 IDsKICAgIENBUkQzMiBwcm9wZXJ0eSA7Cn0geERlbGV0ZVByb3BlcnR5UmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKCgoKICAgIEJPT0wgZGVsZXRlOwoKICAgIENBUkQx NiBsZW5ndGggOwogICAgQ0FSRDMyIHdpbmRvdyA7CiAgICBDQVJEMzIgcHJvcGVydHkgLCB0eXBl IDsKICAgIENBUkQzMiBsb25nT2Zmc2V0IDsKICAgIENBUkQzMiBsb25nTGVuZ3RoIDsKfSB4R2V0 UHJvcGVydHlSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllU RSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDMy IHNlbGVjdGlvbiA7CiAgICBDQVJEMzIgdGltZSA7Cn0geFNldFNlbGVjdGlvbk93bmVyUmVxOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgcmVxdWVzdG9yIDsKICAgIENBUkQzMiBzZWxlY3Rpb24g LCB0YXJnZXQgLCBwcm9wZXJ0eSA7CiAgICBDQVJEMzIgdGltZSA7CiAgICB9IHhDb252ZXJ0U2Vs ZWN0aW9uUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJPT0wg cHJvcGFnYXRlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZGVzdGluYXRpb24gOwog ICAgQ0FSRDMyIGV2ZW50TWFzayA7CgoKCgogICAgeEV2ZW50IGV2ZW50OwoKfSB4U2VuZEV2ZW50 UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJPT0wgb3duZXJF dmVudHM7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBncmFiV2luZG93IDsKICAgIENB UkQxNiBldmVudE1hc2sgOwogICAgQllURSBwb2ludGVyTW9kZSwga2V5Ym9hcmRNb2RlOwogICAg Q0FSRDMyIGNvbmZpbmVUbyA7CiAgICBDQVJEMzIgY3Vyc29yIDsKICAgIENBUkQzMiB0aW1lIDsK fSB4R3JhYlBvaW50ZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwog ICAgQk9PTCBvd25lckV2ZW50czsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGdyYWJX aW5kb3cgOwogICAgQ0FSRDE2IGV2ZW50TWFzayA7CiAgICBCWVRFIHBvaW50ZXJNb2RlLCBrZXli b2FyZE1vZGU7CiAgICBDQVJEMzIgY29uZmluZVRvIDsKICAgIENBUkQzMiBjdXJzb3IgOwogICAg Q0FSRDggYnV0dG9uOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbW9kaWZpZXJzIDsKfSB4R3Jh YkJ1dHRvblJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBidXR0b247CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBncmFiV2luZG93IDsKICAg IENBUkQxNiBtb2RpZmllcnMgOwogICAgQ0FSRDE2IHBhZCA7Cn0geFVuZ3JhYkJ1dHRvblJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENB UkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGN1cnNvciA7CiAgICBDQVJEMzIgdGltZSA7CiAgICBD QVJEMTYgZXZlbnRNYXNrIDsKICAgIENBUkQxNiBwYWQyIDsKfSB4Q2hhbmdlQWN0aXZlUG9pbnRl ckdyYWJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQk9PTCBv d25lckV2ZW50czsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGdyYWJXaW5kb3cgOwog ICAgQ0FSRDMyIHRpbWUgOwogICAgQllURSBwb2ludGVyTW9kZSwga2V5Ym9hcmRNb2RlOwogICAg Q0FSRDE2IHBhZCA7Cn0geEdyYWJLZXlib2FyZFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBCT09MIG93bmVyRXZlbnRzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBDQVJEMzIgZ3JhYldpbmRvdyA7CiAgICBDQVJEMTYgbW9kaWZpZXJzIDsKICAgIENBUkQ4IGtl eTsKICAgIEJZVEUgcG9pbnRlck1vZGUsIGtleWJvYXJkTW9kZTsKICAgIEJZVEUgcGFkMSwgcGFk MiwgcGFkMzsKfSB4R3JhYktleVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBDQVJEOCBrZXk7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBncmFiV2lu ZG93IDsKICAgIENBUkQxNiBtb2RpZmllcnMgOwogICAgQ0FSRDE2IHBhZCA7Cn0geFVuZ3JhYktl eVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBtb2Rl OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgdGltZSA7Cn0geEFsbG93RXZlbnRzUmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAg Q0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsKICAgIENBUkQzMiBzdGFydCAsIHN0 b3AgOwp9IHhHZXRNb3Rpb25FdmVudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBzcmNX aWQgLCBkc3RXaWQgOwogICAgSU5UMTYgc3JjWCAsIHNyY1kgOwp9IHhUcmFuc2xhdGVDb29yZHNS ZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBzcmNXaWQgLCBkc3RXaWQgOwogICAgSU5UMTYg c3JjWCAsIHNyY1kgOwogICAgQ0FSRDE2IHNyY1dpZHRoICwgc3JjSGVpZ2h0IDsKICAgIElOVDE2 IGRzdFggLCBkc3RZIDsKfSB4V2FycFBvaW50ZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQ0FSRDggcmV2ZXJ0VG87CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAg IENBUkQzMiBmb2N1cyA7CiAgICBDQVJEMzIgdGltZSA7Cn0geFNldElucHV0Rm9jdXNSZXE7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIENBUkQzMiBmaWQgOwogICAgQ0FSRDE2IG5ieXRlcyA7CiAgICBCWVRF IHBhZDEsIHBhZDI7Cn0geE9wZW5Gb250UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg cmVxVHlwZTsKICAgIEJPT0wgb2RkTGVuZ3RoOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJE MzIgZmlkIDsKICAgIH0geFF1ZXJ5VGV4dEV4dGVudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQxNiBtYXhOYW1lcyA7CiAgICBDQVJEMTYgbmJ5dGVzIDsKfSB4TGlzdEZvbnRzUmVxOwoKdHlw ZWRlZiB4TGlzdEZvbnRzUmVxIHhMaXN0Rm9udHNXaXRoSW5mb1JlcTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgQ0FSRDE2IG5Gb250cyA7CiAgICBCWVRFIHBhZDEsIHBhZDI7Cn0geFNldEZvbnRQYXRoUmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IGRlcHRoOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgcGlkIDsKICAgIENBUkQzMiBkcmF3YWJsZSA7 CiAgICBDQVJEMTYgd2lkdGggLCBoZWlnaHQgOwp9IHhDcmVhdGVQaXhtYXBSZXE7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVu Z3RoIDsKICAgIENBUkQzMiBnYyA7CiAgICBDQVJEMzIgZHJhd2FibGUgOwogICAgQ0FSRDMyIG1h c2sgOwp9IHhDcmVhdGVHQ1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGdjIDsKICAgIENB UkQzMiBtYXNrIDsKfSB4Q2hhbmdlR0NSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBzcmNH QyAsIGRzdEdDIDsKICAgIENBUkQzMiBtYXNrIDsKfSB4Q29weUdDUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBDQVJEMzIgZ2MgOwogICAgQ0FSRDE2IGRhc2hPZmZzZXQgOwogICAgQ0FSRDE2IG5EYXNo ZXMgOwp9IHhTZXREYXNoZXNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQllURSBvcmRlcmluZzsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGdjIDsK ICAgIElOVDE2IHhPcmlnaW4gLCB5T3JpZ2luIDsKfSB4U2V0Q2xpcFJlY3RhbmdsZXNSZXE7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQk9PTCBleHBvc3VyZXM7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgSU5UMTYgeCAsIHkgOwog ICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKfSB4Q2xlYXJBcmVhUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBDQVJEMzIgc3JjRHJhd2FibGUgLCBkc3REcmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwog ICAgSU5UMTYgc3JjWCAsIHNyY1kgLCBkc3RYICwgZHN0WSA7CiAgICBDQVJEMTYgd2lkdGggLCBo ZWlnaHQgOwp9IHhDb3B5QXJlYVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHNyY0RyYXdh YmxlICwgZHN0RHJhd2FibGUgOwogICAgQ0FSRDMyIGdjIDsKICAgIElOVDE2IHNyY1ggLCBzcmNZ ICwgZHN0WCAsIGRzdFkgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKICAgIENBUkQzMiBi aXRQbGFuZSA7Cn0geENvcHlQbGFuZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBCWVRFIGNvb3JkTW9kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMy IGRyYXdhYmxlIDsKICAgIENBUkQzMiBnYyA7Cn0geFBvbHlQb2ludFJlcTsKCnR5cGVkZWYgeFBv bHlQb2ludFJlcSB4UG9seUxpbmVSZXE7CgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGRyYXdh YmxlIDsKICAgIENBUkQzMiBnYyA7Cn0geFBvbHlTZWdtZW50UmVxOwoKdHlwZWRlZiB4UG9seVNl Z21lbnRSZXEgeFBvbHlBcmNSZXE7CnR5cGVkZWYgeFBvbHlTZWdtZW50UmVxIHhQb2x5UmVjdGFu Z2xlUmVxOwp0eXBlZGVmIHhQb2x5U2VnbWVudFJlcSB4UG9seUZpbGxSZWN0YW5nbGVSZXE7CnR5 cGVkZWYgeFBvbHlTZWdtZW50UmVxIHhQb2x5RmlsbEFyY1JlcTsKCnR5cGVkZWYgc3RydWN0IF9G aWxsUG9seVJlcSB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIENBUkQzMiBkcmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwogICAgQllURSBz aGFwZTsKICAgIEJZVEUgY29vcmRNb2RlOwogICAgQ0FSRDE2IHBhZDEgOwp9IHhGaWxsUG9seVJl cTsKCgp0eXBlZGVmIHN0cnVjdCBfUHV0SW1hZ2VSZXEgewogICAgQ0FSRDggcmVxVHlwZTsKICAg IENBUkQ4IGZvcm1hdDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGRyYXdhYmxlIDsK ICAgIENBUkQzMiBnYyA7CiAgICBDQVJEMTYgd2lkdGggLCBoZWlnaHQgOwogICAgSU5UMTYgZHN0 WCAsIGRzdFkgOwogICAgQ0FSRDggbGVmdFBhZDsKICAgIENBUkQ4IGRlcHRoOwogICAgQ0FSRDE2 IHBhZCA7Cn0geFB1dEltYWdlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIENBUkQ4IGZvcm1hdDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGRyYXdh YmxlIDsKICAgIElOVDE2IHggLCB5IDsKICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCA7CiAgICBD QVJEMzIgcGxhbmVNYXNrIDsKfSB4R2V0SW1hZ2VSZXE7CgoKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQzMiBkcmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwogICAgSU5UMTYgeCAsIHkgOwp9IHhQb2x5 VGV4dFJlcTsKCnR5cGVkZWYgeFBvbHlUZXh0UmVxIHhQb2x5VGV4dDhSZXE7CnR5cGVkZWYgeFBv bHlUZXh0UmVxIHhQb2x5VGV4dDE2UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIEJZVEUgbkNoYXJzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZHJh d2FibGUgOwogICAgQ0FSRDMyIGdjIDsKICAgIElOVDE2IHggLCB5IDsKfSB4SW1hZ2VUZXh0UmVx OwoKdHlwZWRlZiB4SW1hZ2VUZXh0UmVxIHhJbWFnZVRleHQ4UmVxOwp0eXBlZGVmIHhJbWFnZVRl eHRSZXEgeEltYWdlVGV4dDE2UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIEJZVEUgYWxsb2M7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBtaWQgOwog ICAgQ0FSRDMyIHdpbmRvdyA7CiAgICBDQVJEMzIgdmlzdWFsIDsKfSB4Q3JlYXRlQ29sb3JtYXBS ZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBtaWQgOwogICAgQ0FSRDMyIHNyY0NtYXAgOwp9 IHhDb3B5Q29sb3JtYXBBbmRGcmVlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgY21hcCA7 CiAgICBDQVJEMTYgcmVkICwgZ3JlZW4gLCBibHVlIDsKICAgIENBUkQxNiBwYWQyIDsKfSB4QWxs b2NDb2xvclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRF IHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGNtYXAgOwogICAgQ0FSRDE2IG5i eXRlcyA7CiAgICBCWVRFIHBhZDEsIHBhZDI7Cn0geEFsbG9jTmFtZWRDb2xvclJlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCT09MIGNvbnRpZ3VvdXM7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjbWFwIDsKICAgIENBUkQxNiBjb2xvcnMgLCBwbGFu ZXMgOwp9IHhBbGxvY0NvbG9yQ2VsbHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQk9PTCBjb250aWd1b3VzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJE MzIgY21hcCA7CiAgICBDQVJEMTYgY29sb3JzICwgcmVkICwgZ3JlZW4gLCBibHVlIDsKfSB4QWxs b2NDb2xvclBsYW5lc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAg ICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGNtYXAgOwogICAgQ0FS RDMyIHBsYW5lTWFzayA7Cn0geEZyZWVDb2xvcnNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQz MiBjbWFwIDsKfSB4U3RvcmVDb2xvcnNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggZmxhZ3M7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBj bWFwIDsKICAgIENBUkQzMiBwaXhlbCA7CiAgICBDQVJEMTYgbmJ5dGVzIDsKICAgIEJZVEUgcGFk MSwgcGFkMjsKICAgIH0geFN0b3JlTmFtZWRDb2xvclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FS RDMyIGNtYXAgOwp9IHhRdWVyeUNvbG9yc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGNt YXAgOwogICAgQ0FSRDE2IG5ieXRlcyA7CiAgICBCWVRFIHBhZDEsIHBhZDI7Cn0geExvb2t1cENv bG9yUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFk OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgY2lkIDsKICAgIENBUkQzMiBzb3VyY2Ug LCBtYXNrIDsKICAgIENBUkQxNiBmb3JlUmVkICwgZm9yZUdyZWVuICwgZm9yZUJsdWUgOwogICAg Q0FSRDE2IGJhY2tSZWQgLCBiYWNrR3JlZW4gLCBiYWNrQmx1ZSA7CiAgICBDQVJEMTYgeCAsIHkg Owp9IHhDcmVhdGVDdXJzb3JSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjaWQgOwogICAg Q0FSRDMyIHNvdXJjZSAsIG1hc2sgOwogICAgQ0FSRDE2IHNvdXJjZUNoYXIgLCBtYXNrQ2hhciA7 CiAgICBDQVJEMTYgZm9yZVJlZCAsIGZvcmVHcmVlbiAsIGZvcmVCbHVlIDsKICAgIENBUkQxNiBi YWNrUmVkICwgYmFja0dyZWVuICwgYmFja0JsdWUgOwp9IHhDcmVhdGVHbHlwaEN1cnNvclJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENB UkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGN1cnNvciA7CiAgICBDQVJEMTYgZm9yZVJlZCAsIGZv cmVHcmVlbiAsIGZvcmVCbHVlIDsKICAgIENBUkQxNiBiYWNrUmVkICwgYmFja0dyZWVuICwgYmFj a0JsdWUgOwp9IHhSZWNvbG9yQ3Vyc29yUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg cmVxVHlwZTsKCgoKICAgIENBUkQ4IGNsYXNzOwoKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FS RDMyIGRyYXdhYmxlIDsKICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCA7Cn0geFF1ZXJ5QmVzdFNp emVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQxNiBuYnl0ZXMgOwogICAgQllURSBwYWQxLCBw YWQyOwp9IHhRdWVyeUV4dGVuc2lvblJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBDQVJEOCBudW1LZXlQZXJNb2RpZmllcjsKICAgIENBUkQxNiBsZW5ndGggOwp9 IHhTZXRNb2RpZmllck1hcHBpbmdSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFU eXBlOwogICAgQ0FSRDggbkVsdHM7CiAgICBDQVJEMTYgbGVuZ3RoIDsKfSB4U2V0UG9pbnRlck1h cHBpbmdSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBw YWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQ4IGZpcnN0S2V5Q29kZTsKICAgIENBUkQ4 IGNvdW50OwogICAgQ0FSRDE2IHBhZDEgOwp9IHhHZXRLZXlib2FyZE1hcHBpbmdSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgga2V5Q29kZXM7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIENBUkQ4IGZpcnN0S2V5Q29kZTsKICAgIENBUkQ4IGtleVN5bXNQ ZXJLZXlDb2RlOwogICAgQ0FSRDE2IHBhZDEgOwp9IHhDaGFuZ2VLZXlib2FyZE1hcHBpbmdSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBtYXNrIDsKfSB4Q2hhbmdlS2V5Ym9hcmRDb250cm9s UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIElOVDggcGVyY2Vu dDsKICAgIENBUkQxNiBsZW5ndGggOwp9IHhCZWxsUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg Q0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBJTlQx NiBhY2NlbE51bSAsIGFjY2VsRGVudW0gOwogICAgSU5UMTYgdGhyZXNob2xkIDsKICAgIEJPT0wg ZG9BY2NlbCwgZG9UaHJlc2g7Cn0geENoYW5nZVBvaW50ZXJDb250cm9sUmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBJTlQxNiB0aW1lb3V0ICwgaW50ZXJ2YWwgOwogICAgQllURSBwcmVmZXJCbGFuaywg YWxsb3dFeHBvc2U7CiAgICBDQVJEMTYgcGFkMiA7Cn0geFNldFNjcmVlblNhdmVyUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgbW9kZTsKICAgIENBUkQx NiBsZW5ndGggOwogICAgQ0FSRDggaG9zdEZhbWlseTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2 IGhvc3RMZW5ndGggOwp9IHhDaGFuZ2VIb3N0c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgfSB4TGlz dEhvc3RzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUg bW9kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgfSB4Q2hhbmdlTW9kZVJlcTsKCnR5cGVkZWYg eENoYW5nZU1vZGVSZXEgeFNldEFjY2Vzc0NvbnRyb2xSZXE7CnR5cGVkZWYgeENoYW5nZU1vZGVS ZXEgeFNldENsb3NlRG93bk1vZGVSZXE7CnR5cGVkZWYgeENoYW5nZU1vZGVSZXEgeEZvcmNlU2Ny ZWVuU2F2ZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllU RSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDE2 IG5BdG9tcyA7CiAgICBJTlQxNiBuUG9zaXRpb25zIDsKICAgIH0geFJvdGF0ZVByb3BlcnRpZXNS ZXE7CiMgNTYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9nYy5o IiAyCiMgODUgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9nYy5o Igp0eXBlZGVmIHN0cnVjdCBfR0NJbnRlcmVzdCAqR0NJbnRlcmVzdFB0cjsKdHlwZWRlZiBzdHJ1 Y3QgX0dDICpHQ1B0cjsKdHlwZWRlZiBzdHJ1Y3QgX0dDT3BzICpHQ09wc1B0cjsKCmV4dGVybiB2 b2lkIFZhbGlkYXRlR0MoCgogICAgRHJhd2FibGVQdHIgLAogICAgR0NQdHIKCik7CgpleHRlcm4g aW50IENoYW5nZUdDKAoKICAgIEdDUHRyICwKICAgIEJJVFMzMiAsCiAgICBYSUQqCgopOwoKZXh0 ZXJuIGludCBEb0NoYW5nZUdDKAoKICAgIEdDUHRyICwKICAgIEJJVFMzMiAsCiAgICBYSUQqICwK ICAgIGludAoKKTsKCnR5cGVkZWYgdW5pb24gewogICAgQ0FSRDMyIHZhbDsKICAgIHBvaW50ZXIg cHRyOwp9IENoYW5nZUdDVmFsLCAqQ2hhbmdlR0NWYWxQdHI7CgpleHRlcm4gaW50IGRpeENoYW5n ZUdDKAoKICAgIENsaWVudFB0ciAsCiAgICBHQ1B0ciAsCiAgICBCSVRTMzIgLAogICAgQ0FSRDMy ICogLAogICAgQ2hhbmdlR0NWYWxQdHIKCik7CgpleHRlcm4gR0NQdHIgQ3JlYXRlR0MoCgogICAg RHJhd2FibGVQdHIgLAogICAgQklUUzMyICwKICAgIFhJRCogLAogICAgaW50KgoKKTsKCmV4dGVy biBpbnQgQ29weUdDKAoKICAgIEdDUHRyICwKICAgIEdDUHRyICwKICAgIEJJVFMzMgoKKTsKCmV4 dGVybiBpbnQgRnJlZUdDKAoKICAgIHBvaW50ZXIgLAogICAgWElECgopOwoKZXh0ZXJuIHZvaWQg U2V0R0NNYXNrKAoKICAgIEdDUHRyICwKICAgIE1hc2sgLAogICAgTWFzawoKKTsKCmV4dGVybiBH Q1B0ciBDcmVhdGVTY3JhdGNoR0MoCgogICAgU2NyZWVuUHRyICwKICAgIHVuc2lnbmVkCgopOwoK ZXh0ZXJuIHZvaWQgRnJlZUdDcGVyRGVwdGgoCgogICAgaW50CgopOwoKZXh0ZXJuIEJvb2wgQ3Jl YXRlR0NwZXJEZXB0aCgKCiAgICBpbnQKCik7CgpleHRlcm4gQm9vbCBDcmVhdGVEZWZhdWx0U3Rp cHBsZSgKCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBGcmVlRGVmYXVsdFN0aXBwbGUoCgogICAg aW50CgopOwoKZXh0ZXJuIGludCBTZXREYXNoZXMoCgogICAgR0NQdHIgLAogICAgdW5zaWduZWQg LAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgY2hhcioKCik7CgpleHRlcm4gaW50IFZlcmlm eVJlY3RPcmRlcigKCiAgICBpbnQgLAogICAgeFJlY3RhbmdsZSogLAogICAgaW50CgopOwoKZXh0 ZXJuIGludCBTZXRDbGlwUmVjdHMoCgogICAgR0NQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAg ICBpbnQgLAogICAgeFJlY3RhbmdsZSogLAogICAgaW50CgopOwoKZXh0ZXJuIEdDUHRyIEdldFNj cmF0Y2hHQygKCiAgICB1bnNpZ25lZCAsCiAgICBTY3JlZW5QdHIKCik7CgpleHRlcm4gdm9pZCBG cmVlU2NyYXRjaEdDKAoKICAgIEdDUHRyCgopOwojIDU0ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUvZGl4LmgiIDIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUvd2luZG93LmgiIDEKIyA1MyAiLi4vLi4vLi4vLi4vLi4vLi4v cHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3dpbmRvdy5oIgojIDEgIi4uLy4uLy4uLy4uLy4uLy4u L3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9yZWdpb24uaCIgMQojIDUxICIuLi8uLi8uLi8uLi8u Li8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcmVnaW9uLmgiCiMgMSAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3JlZ2lvbnN0ci5oIiAxCiMgNjcgIi4uLy4u Ly4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9yZWdpb25zdHIuaCIKdHlwZWRl ZiBzdHJ1Y3QgX1JlZ0RhdGEgewogICAgbG9uZyBzaXplOwogICAgbG9uZyBudW1SZWN0czsKCn0g UmVnRGF0YVJlYywgKlJlZ0RhdGFQdHI7Cgp0eXBlZGVmIHN0cnVjdCBfUmVnaW9uIHsKICAgIEJv eFJlYyBleHRlbnRzOwogICAgUmVnRGF0YVB0ciBkYXRhOwp9IFJlZ2lvblJlYywgKlJlZ2lvblB0 cjsKCmV4dGVybiBCb3hSZWMgbWlFbXB0eUJveDsKZXh0ZXJuIFJlZ0RhdGFSZWMgbWlFbXB0eURh dGE7CmV4dGVybiBSZWdEYXRhUmVjIG1pQnJva2VuRGF0YTsKIyAyOTQgIi4uLy4uLy4uLy4uLy4u Ly4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9yZWdpb25zdHIuaCIKZXh0ZXJuIFJlZ2lvblB0 ciBtaVJlZ2lvbkNyZWF0ZSgKCiAgICBCb3hQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQg bWlSZWdpb25Jbml0KAoKICAgIFJlZ2lvblB0ciAsCiAgICBCb3hQdHIgLAogICAgaW50CgopOwoK ZXh0ZXJuIHZvaWQgbWlSZWdpb25EZXN0cm95KAoKICAgIFJlZ2lvblB0cgoKKTsKCmV4dGVybiB2 b2lkIG1pUmVnaW9uVW5pbml0KAoKICAgIFJlZ2lvblB0cgoKKTsKCmV4dGVybiBCb29sIG1pUmVn aW9uQ29weSgKCiAgICBSZWdpb25QdHIgLAogICAgUmVnaW9uUHRyCgopOwoKZXh0ZXJuIEJvb2wg bWlJbnRlcnNlY3QoCgogICAgUmVnaW9uUHRyICwKICAgIFJlZ2lvblB0ciAsCiAgICBSZWdpb25Q dHIKCik7CgpleHRlcm4gQm9vbCBtaVVuaW9uKAoKICAgIFJlZ2lvblB0ciAsCiAgICBSZWdpb25Q dHIgLAogICAgUmVnaW9uUHRyCgopOwoKZXh0ZXJuIEJvb2wgbWlSZWdpb25BcHBlbmQoCgogICAg UmVnaW9uUHRyICwKICAgIFJlZ2lvblB0cgoKKTsKCmV4dGVybiBCb29sIG1pUmVnaW9uVmFsaWRh dGUoCgogICAgUmVnaW9uUHRyICwKICAgIEJvb2wgKgoKKTsKCmV4dGVybiBSZWdpb25QdHIgbWlS ZWN0c1RvUmVnaW9uKAoKICAgIGludCAsCiAgICB4UmVjdGFuZ2xlUHRyICwKICAgIGludAoKKTsK CmV4dGVybiBCb29sIG1pU3VidHJhY3QoCgogICAgUmVnaW9uUHRyICwKICAgIFJlZ2lvblB0ciAs CiAgICBSZWdpb25QdHIKCik7CgpleHRlcm4gQm9vbCBtaUludmVyc2UoCgogICAgUmVnaW9uUHRy ICwKICAgIFJlZ2lvblB0ciAsCiAgICBCb3hQdHIKCik7CgpleHRlcm4gaW50IG1pUmVjdEluKAoK ICAgIFJlZ2lvblB0ciAsCiAgICBCb3hQdHIKCik7CgpleHRlcm4gdm9pZCBtaVRyYW5zbGF0ZVJl Z2lvbigKCiAgICBSZWdpb25QdHIgLAogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiB2b2lk IG1pUmVnaW9uUmVzZXQoCgogICAgUmVnaW9uUHRyICwKICAgIEJveFB0cgoKKTsKCmV4dGVybiBC b29sIG1pUmVnaW9uQnJlYWsoCgogICAgUmVnaW9uUHRyCgopOwoKZXh0ZXJuIEJvb2wgbWlQb2lu dEluUmVnaW9uKAoKICAgIFJlZ2lvblB0ciAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIEJveFB0 cgoKKTsKCmV4dGVybiBCb29sIG1pUmVnaW9uTm90RW1wdHkoCgogICAgUmVnaW9uUHRyCgopOwoK ZXh0ZXJuIHZvaWQgbWlSZWdpb25FbXB0eSgKCiAgICBSZWdpb25QdHIKCik7CgpleHRlcm4gQm94 UHRyIG1pUmVnaW9uRXh0ZW50cygKCiAgICBSZWdpb25QdHIKCik7CiMgNTIgIi4uLy4uLy4uLy4u Ly4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9yZWdpb24uaCIgMgojIDU0ICIuLi8uLi8u Li8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvd2luZG93LmgiIDIKIyA3MCAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3dpbmRvdy5oIgp0eXBlZGVm IHN0cnVjdCBfQmFja2luZ1N0b3JlICpCYWNraW5nU3RvcmVQdHI7CnR5cGVkZWYgc3RydWN0IF9X aW5kb3cgKldpbmRvd1B0cjsKCnR5cGVkZWYgaW50ICgqVmlzaXRXaW5kb3dQcm9jUHRyKSgKCiAg ICBXaW5kb3dQdHIgLAogICAgcG9pbnRlcgoKKTsKCmV4dGVybiBpbnQgVHJhdmVyc2VUcmVlKAoK ICAgIFdpbmRvd1B0ciAsCiAgICBWaXNpdFdpbmRvd1Byb2NQdHIgLAogICAgcG9pbnRlcgoKKTsK CmV4dGVybiBpbnQgV2Fsa1RyZWUoCgogICAgU2NyZWVuUHRyICwKICAgIFZpc2l0V2luZG93UHJv Y1B0ciAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIFdpbmRvd1B0ciBBbGxvY2F0ZVdpbmRvdygK CiAgICBTY3JlZW5QdHIKCik7CgpleHRlcm4gQm9vbCBDcmVhdGVSb290V2luZG93KAoKICAgIFNj cmVlblB0cgoKKTsKCmV4dGVybiB2b2lkIEluaXRSb290V2luZG93KAoKICAgIFdpbmRvd1B0cgoK KTsKCmV4dGVybiB2b2lkIENsaXBwZWRSZWdpb25Gcm9tQm94KAoKICAgIFdpbmRvd1B0ciAsCiAg ICBSZWdpb25QdHIgLAogICAgaW50ICwKICAgIGludCAsCiAgICBpbnQgLAogICAgaW50CgopOwoK ZXh0ZXJuIFdpbmRvd1B0ciBSZWFsQ2hpbGRIZWFkKAoKICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVy biBXaW5kb3dQdHIgQ3JlYXRlV2luZG93KAoKICAgIFdpbmRvdyAsCiAgICBXaW5kb3dQdHIgLAog ICAgaW50ICwKICAgIGludCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgdW5zaWduZWQgaW50ICwK ICAgIHVuc2lnbmVkIGludCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgTWFzayAsCiAgICBYSUQq ICwKICAgIGludCAsCiAgICBDbGllbnRQdHIgLAogICAgVmlzdWFsSUQgLAogICAgaW50KgoKKTsK CmV4dGVybiBpbnQgRGVsZXRlV2luZG93KAoKICAgIHBvaW50ZXIgLAogICAgWElECgopOwoKZXh0 ZXJuIHZvaWQgRGVzdHJveVN1YndpbmRvd3MoCgogICAgV2luZG93UHRyICwKICAgIENsaWVudFB0 cgoKKTsKCgoKCgoKZXh0ZXJuIGludCBDaGFuZ2VXaW5kb3dBdHRyaWJ1dGVzKAoKICAgIFdpbmRv d1B0ciAsCiAgICBNYXNrICwKICAgIFhJRCogLAogICAgQ2xpZW50UHRyCgopOwoKCgoKCgoKZXh0 ZXJuIHZvaWQgR2V0V2luZG93QXR0cmlidXRlcygKCgogICAgV2luZG93UHRyICwKICAgIENsaWVu dFB0ciAsCiAgICB4R2V0V2luZG93QXR0cmlidXRlc1JlcGx5KgoKKTsKCmV4dGVybiBSZWdpb25Q dHIgQ3JlYXRlVW5jbGlwcGVkV2luU2l6ZSgKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9p ZCBHcmF2aXR5VHJhbnNsYXRlKAoKICAgIGludCAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIGlu dCAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIHVuc2lnbmVkICwKICAgIGludCogLAogICAgaW50 KgoKKTsKCmV4dGVybiBpbnQgQ29uZmlndXJlV2luZG93KAoKICAgIFdpbmRvd1B0ciAsCiAgICBN YXNrICwKICAgIFhJRCogLAogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIGludCBDaXJjdWxhdGVX aW5kb3coCgogICAgV2luZG93UHRyICwKICAgIGludCAsCiAgICBDbGllbnRQdHIKCik7CgpleHRl cm4gaW50IFJlcGFyZW50V2luZG93KAoKICAgIFdpbmRvd1B0ciAsCiAgICBXaW5kb3dQdHIgLAog ICAgaW50ICwKICAgIGludCAsCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gaW50IE1hcFdpbmRv dygKCiAgICBXaW5kb3dQdHIgLAogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgTWFwU3Vi d2luZG93cygKCiAgICBXaW5kb3dQdHIgLAogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIGludCBV bm1hcFdpbmRvdygKCiAgICBXaW5kb3dQdHIgLAogICAgQm9vbAoKKTsKCmV4dGVybiB2b2lkIFVu bWFwU3Vid2luZG93cygKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBIYW5kbGVTYXZl U2V0KAoKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiBCb29sIFZpc2libGVCb3VuZGluZ0JveEZy b21Qb2ludCgKCiAgICBXaW5kb3dQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAgICBCb3hQdHIK Cik7CgpleHRlcm4gQm9vbCBQb2ludEluV2luZG93SXNWaXNpYmxlKAoKICAgIFdpbmRvd1B0ciAs CiAgICBpbnQgLAogICAgaW50CgopOwoKZXh0ZXJuIFJlZ2lvblB0ciBOb3RDbGlwcGVkQnlDaGls ZHJlbigKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBTZW5kVmlzaWJpbGl0eU5vdGlm eSgKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBTYXZlU2NyZWVucygKCiAgICBpbnQg LAogICAgaW50CgopOwoKZXh0ZXJuIFdpbmRvd1B0ciBGaW5kV2luZG93V2l0aE9wdGlvbmFsKAoK ICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiB2b2lkIENoZWNrV2luZG93T3B0aW9uYWxOZWVkKAoK ICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiBCb29sIE1ha2VXaW5kb3dPcHRpb25hbCgKCiAgICBX aW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBEaXNwb3NlV2luZG93T3B0aW9uYWwoCgogICAgV2lu ZG93UHRyCgopOwoKZXh0ZXJuIFdpbmRvd1B0ciBNb3ZlV2luZG93SW5TdGFjaygKCiAgICBXaW5k b3dQdHIgLAogICAgV2luZG93UHRyCgopOwoKdm9pZCBTZXRXaW5TaXplKAoKICAgIFdpbmRvd1B0 cgoKKTsKCnZvaWQgU2V0Qm9yZGVyU2l6ZSgKCiAgICBXaW5kb3dQdHIKCik7Cgp2b2lkIFJlc2l6 ZUNoaWxkcmVuV2luU2l6ZSgKCiAgICBXaW5kb3dQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAg ICBpbnQgLAogICAgaW50CgopOwojIDU1ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2Vy dmVyL2luY2x1ZGUvZGl4LmgiIDIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2Vy dmVyL2luY2x1ZGUvaW5wdXQuaCIgMQojIDgxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Y c2VydmVyL2luY2x1ZGUvaW5wdXQuaCIKdHlwZWRlZiB1bnNpZ25lZCBsb25nIExlZHM7CnR5cGVk ZWYgc3RydWN0IF9PdGhlckNsaWVudHMgKk90aGVyQ2xpZW50c1B0cjsKdHlwZWRlZiBzdHJ1Y3Qg X0lucHV0Q2xpZW50cyAqSW5wdXRDbGllbnRzUHRyOwp0eXBlZGVmIHN0cnVjdCBfRGV2aWNlSW50 UmVjICpEZXZpY2VJbnRQdHI7Cgp0eXBlZGVmIGludCAoKkRldmljZVByb2MpKAoKICAgIERldmlj ZUludFB0ciAsCiAgICBpbnQKCik7Cgp0eXBlZGVmIHZvaWQgKCpQcm9jZXNzSW5wdXRQcm9jKSgK CiAgICB4RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwKICAgIGludAoKKTsKCnR5cGVkZWYg c3RydWN0IF9EZXZpY2VSZWMgewogICAgcG9pbnRlciBkZXZpY2VQcml2YXRlOwogICAgUHJvY2Vz c0lucHV0UHJvYyBwcm9jZXNzSW5wdXRQcm9jOwogICAgUHJvY2Vzc0lucHV0UHJvYyByZWFsSW5w dXRQcm9jOwogICAgUHJvY2Vzc0lucHV0UHJvYyBlbnF1ZXVlSW5wdXRQcm9jOwogICAgQm9vbCBv bjsKfSBEZXZpY2VSZWMsICpEZXZpY2VQdHI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgY2xp Y2ssIGJlbGwsIGJlbGxfcGl0Y2gsIGJlbGxfZHVyYXRpb247CiAgICBCb29sIGF1dG9SZXBlYXQ7 CiAgICB1bnNpZ25lZCBjaGFyIGF1dG9SZXBlYXRzWzMyXTsKICAgIExlZHMgbGVkczsKICAgIHVu c2lnbmVkIGNoYXIgaWQ7Cn0gS2V5YmRDdHJsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgS2V5U3lt ICptYXA7CiAgICBLZXlDb2RlIG1pbktleUNvZGUsCiAgICAgICAgICAgIG1heEtleUNvZGU7CiAg ICBpbnQgbWFwV2lkdGg7Cn0gS2V5U3ltc1JlYywgKktleVN5bXNQdHI7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBpbnQgbnVtLCBkZW4sIHRocmVzaG9sZDsKICAgIHVuc2lnbmVkIGNoYXIgaWQ7Cn0g UHRyQ3RybDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCByZXNvbHV0aW9uLCBtaW5fdmFsdWUs IG1heF92YWx1ZTsKICAgIGludCBpbnRlZ2VyX2Rpc3BsYXllZDsKICAgIHVuc2lnbmVkIGNoYXIg aWQ7Cn0gSW50ZWdlckN0cmw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgbWF4X3N5bWJvbHMs IG51bV9zeW1ib2xzX3N1cHBvcnRlZDsKICAgIGludCBudW1fc3ltYm9sc19kaXNwbGF5ZWQ7CiAg ICBLZXlTeW0gKnN5bWJvbHNfc3VwcG9ydGVkOwogICAgS2V5U3ltICpzeW1ib2xzX2Rpc3BsYXll ZDsKICAgIHVuc2lnbmVkIGNoYXIgaWQ7Cn0gU3RyaW5nQ3RybDsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIGludCBwZXJjZW50LCBwaXRjaCwgZHVyYXRpb247CiAgICB1bnNpZ25lZCBjaGFyIGlkOwp9 IEJlbGxDdHJsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgTGVkcyBsZWRfdmFsdWVzOwogICAgTWFz ayBsZWRfbWFzazsKICAgIHVuc2lnbmVkIGNoYXIgaWQ7Cn0gTGVkQ3RybDsKCmV4dGVybiBLZXli ZEN0cmwgZGVmYXVsdEtleWJvYXJkQ29udHJvbDsKZXh0ZXJuIFB0ckN0cmwgZGVmYXVsdFBvaW50 ZXJDb250cm9sOwoKCmV4dGVybiBEZXZpY2VQdHIgQWRkSW5wdXREZXZpY2UoCgogICAgRGV2aWNl UHJvYyAsCiAgICBCb29sCgopOwoKCgoKZXh0ZXJuIERldmljZUludFB0ciBfQWRkSW5wdXREZXZp Y2UoCgogICAgRGV2aWNlUHJvYyAsCiAgICBCb29sCgopOwoKZXh0ZXJuIEJvb2wgRW5hYmxlRGV2 aWNlKAoKICAgIERldmljZUludFB0cgoKKTsKCmV4dGVybiBCb29sIERpc2FibGVEZXZpY2UoCgog ICAgRGV2aWNlSW50UHRyCgopOwoKZXh0ZXJuIGludCBJbml0QW5kU3RhcnREZXZpY2VzKAoKICAg IHZvaWQKCik7CgpleHRlcm4gdm9pZCBDbG9zZURvd25EZXZpY2VzKAoKICAgIHZvaWQKCik7Cgpl eHRlcm4gdm9pZCBSZW1vdmVEZXZpY2UoCgogICAgRGV2aWNlSW50UHRyCgopOwoKZXh0ZXJuIGlu dCBOdW1Nb3Rpb25FdmVudHMoCgogICAgdm9pZAoKKTsKCgpleHRlcm4gdm9pZCBSZWdpc3RlclBv aW50ZXJEZXZpY2UoCgogICAgRGV2aWNlUHRyCgopOwoKCgoKZXh0ZXJuIHZvaWQgX1JlZ2lzdGVy UG9pbnRlckRldmljZSgKCiAgICBEZXZpY2VJbnRQdHIKCik7CgoKZXh0ZXJuIHZvaWQgUmVnaXN0 ZXJLZXlib2FyZERldmljZSgKCiAgICBEZXZpY2VQdHIKCik7CgoKCgpleHRlcm4gdm9pZCBfUmVn aXN0ZXJLZXlib2FyZERldmljZSgKCiAgICBEZXZpY2VJbnRQdHIKCik7CgpleHRlcm4gRGV2aWNl UHRyIExvb2t1cEtleWJvYXJkRGV2aWNlKAoKICAgIHZvaWQKCik7CgpleHRlcm4gRGV2aWNlUHRy IExvb2t1cFBvaW50ZXJEZXZpY2UoCgogICAgdm9pZAoKKTsKCmV4dGVybiBEZXZpY2VQdHIgTG9v a3VwRGV2aWNlKAoKICAgIGludAoKKTsKCmV4dGVybiB2b2lkIFF1ZXJ5TWluTWF4S2V5Q29kZXMo CgogICAgS2V5Q29kZSogLAogICAgS2V5Q29kZSoKCik7CgpleHRlcm4gQm9vbCBTZXRLZXlTeW1z TWFwKAoKICAgIEtleVN5bXNQdHIgLAogICAgS2V5U3ltc1B0cgoKKTsKCmV4dGVybiBCb29sIElu aXRLZXlDbGFzc0RldmljZVN0cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgS2V5U3ltc1B0 ciAsCiAgICBDQVJEOCBbXQoKKTsKCmV4dGVybiBCb29sIEluaXRCdXR0b25DbGFzc0RldmljZVN0 cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50ICwKICAgIENBUkQ4KgoKKTsKCnR5cGVk ZWYgaW50ICgqVmFsdWF0b3JNb3Rpb25Qcm9jUHRyKSgKCiAgICAgICAgICAgICAgICBEZXZpY2VJ bnRQdHIgLAogICAgICAgICAgICAgICAgeFRpbWVjb29yZCAqICwKICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgLAogICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAsCiAgICAgICAgICAg ICAgICBTY3JlZW5QdHIKCik7CgpleHRlcm4gQm9vbCBJbml0VmFsdWF0b3JDbGFzc0RldmljZVN0 cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50ICwKICAgIFZhbHVhdG9yTW90aW9uUHJv Y1B0ciAsCiAgICBpbnQgLAogICAgaW50CgopOwoKZXh0ZXJuIEJvb2wgSW5pdEZvY3VzQ2xhc3NE ZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyCgopOwoKdHlwZWRlZiB2b2lkICgqQmVsbFBy b2NQdHIpKAoKICAgIGludCAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAgcG9pbnRlciAsCiAgICBp bnQKCik7Cgp0eXBlZGVmIHZvaWQgKCpLYmRDdHJsUHJvY1B0cikoCgogICAgRGV2aWNlSW50UHRy ICwKICAgIEtleWJkQ3RybCAqCgopOwoKZXh0ZXJuIEJvb2wgSW5pdEtiZEZlZWRiYWNrQ2xhc3NE ZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyICwKICAgIEJlbGxQcm9jUHRyICwKICAgIEti ZEN0cmxQcm9jUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqUHRyQ3RybFByb2NQdHIpKAoKICAgIERl dmljZUludFB0ciAsCiAgICBQdHJDdHJsICoKCik7CgpleHRlcm4gQm9vbCBJbml0UHRyRmVlZGJh Y2tDbGFzc0RldmljZVN0cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgUHRyQ3RybFByb2NQ dHIKCik7Cgp0eXBlZGVmIHZvaWQgKCpTdHJpbmdDdHJsUHJvY1B0cikoCgogICAgRGV2aWNlSW50 UHRyICwKICAgIFN0cmluZ0N0cmwgKgoKKTsKCmV4dGVybiBCb29sIEluaXRTdHJpbmdGZWVkYmFj a0NsYXNzRGV2aWNlU3RydWN0KAoKICAgIERldmljZUludFB0ciAsCiAgICBTdHJpbmdDdHJsUHJv Y1B0ciAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIEtleVN5bSoKCik7Cgp0eXBlZGVmIHZvaWQg KCpCZWxsQ3RybFByb2NQdHIpKAoKICAgIERldmljZUludFB0ciAsCiAgICBCZWxsQ3RybCAqCgop OwoKZXh0ZXJuIEJvb2wgSW5pdEJlbGxGZWVkYmFja0NsYXNzRGV2aWNlU3RydWN0KAoKICAgIERl dmljZUludFB0ciAsCiAgICBCZWxsUHJvY1B0ciAsCiAgICBCZWxsQ3RybFByb2NQdHIKCik7Cgp0 eXBlZGVmIHZvaWQgKCpMZWRDdHJsUHJvY1B0cikoCgogICAgRGV2aWNlSW50UHRyICwKICAgIExl ZEN0cmwgKgoKKTsKCmV4dGVybiBCb29sIEluaXRMZWRGZWVkYmFja0NsYXNzRGV2aWNlU3RydWN0 KAoKICAgIERldmljZUludFB0ciAsCiAgICBMZWRDdHJsUHJvY1B0cgoKKTsKCnR5cGVkZWYgdm9p ZCAoKkludGVnZXJDdHJsUHJvY1B0cikoCgogICAgRGV2aWNlSW50UHRyICwKICAgIEludGVnZXJD dHJsICoKCik7CgoKZXh0ZXJuIEJvb2wgSW5pdEludGVnZXJGZWVkYmFja0NsYXNzRGV2aWNlU3Ry dWN0KAoKICAgIERldmljZUludFB0ciAsCiAgICBJbnRlZ2VyQ3RybFByb2NQdHIKCik7CgpleHRl cm4gQm9vbCBJbml0UG9pbnRlckRldmljZVN0cnVjdCgKCiAgICBEZXZpY2VQdHIgLAogICAgQ0FS RDgqICwKICAgIGludCAsCiAgICBWYWx1YXRvck1vdGlvblByb2NQdHIgLAogICAgUHRyQ3RybFBy b2NQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIEJvb2wgSW5pdEtleWJvYXJkRGV2aWNlU3RydWN0 KAoKICAgIERldmljZVB0ciAsCiAgICBLZXlTeW1zUHRyICwKICAgIENBUkQ4IFtdLAogICAgQmVs bFByb2NQdHIgLAogICAgS2JkQ3RybFByb2NQdHIKCik7CgpleHRlcm4gdm9pZCBTZW5kTWFwcGlu Z05vdGlmeSgKCiAgICB1bnNpZ25lZCBpbnQgLAogICAgdW5zaWduZWQgaW50ICwKICAgIHVuc2ln bmVkIGludCAsCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gQm9vbCBCYWREZXZpY2VNYXAoCgog ICAgQllURSogLAogICAgaW50ICwKICAgIHVuc2lnbmVkICwKICAgIHVuc2lnbmVkICwKICAgIFhJ RCoKCik7CgpleHRlcm4gQm9vbCBBbGxNb2RpZmllcktleXNBcmVVcCgKCiAgICBEZXZpY2VJbnRQ dHIgLAogICAgQ0FSRDgqICwKICAgIGludCAsCiAgICBDQVJEOCogLAogICAgaW50CgopOwoKZXh0 ZXJuIHZvaWQgTm90ZUxlZFN0YXRlKAoKICAgIERldmljZUludFB0ciAsCiAgICBpbnQgLAogICAg Qm9vbAoKKTsKCmV4dGVybiB2b2lkIE1heWJlU3RvcEhpbnQoCgogICAgRGV2aWNlSW50UHRyICwK ICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiB2b2lkIFByb2Nlc3NQb2ludGVyRXZlbnQoCgogICAg eEV2ZW50UHRyICwKICAgIERldmljZUludFB0ciAsCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBQ cm9jZXNzS2V5Ym9hcmRFdmVudCgKCiAgICB4RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwK ICAgIGludAoKKTsKCgpleHRlcm4gdm9pZCBDb3JlUHJvY2Vzc1BvaW50ZXJFdmVudCgKCiAgICB4 RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwKICAgIGludAoKKTsKCmV4dGVybiB2b2lkIENv cmVQcm9jZXNzS2V5Ym9hcmRFdmVudCgKCiAgICB4RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRy ICwKICAgIGludAoKKTsKCgpleHRlcm4gQm9vbCBMZWdhbE1vZGlmaWVyKAoKICAgIHVuc2lnbmVk IGludCAsCiAgICBEZXZpY2VQdHIKCik7CgpleHRlcm4gdm9pZCBQcm9jZXNzSW5wdXRFdmVudHMo CgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEluaXRJbnB1dCgKCiAgICBpbnQgLAogICAgY2hh ciAqKgoKKTsKIyA1NiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRl L2RpeC5oIiAyCiMgMjg0ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1 ZGUvZGl4LmgiCnR5cGVkZWYgc3RydWN0IF9UaW1lU3RhbXAgKlRpbWVTdGFtcFB0cjsKCgoKCgoK dHlwZWRlZiBzdHJ1Y3QgX1dvcmtRdWV1ZSAqV29ya1F1ZXVlUHRyOwoKZXh0ZXJuIENsaWVudFB0 ciByZXF1ZXN0aW5nQ2xpZW50OwpleHRlcm4gQ2xpZW50UHRyICpjbGllbnRzOwpleHRlcm4gQ2xp ZW50UHRyIHNlcnZlckNsaWVudDsKZXh0ZXJuIGludCBjdXJyZW50TWF4Q2xpZW50czsKCnR5cGVk ZWYgaW50IEhXRXZlbnRRdWV1ZVR5cGU7CnR5cGVkZWYgSFdFdmVudFF1ZXVlVHlwZSogSFdFdmVu dFF1ZXVlUHRyOwoKZXh0ZXJuIEhXRXZlbnRRdWV1ZVB0ciBjaGVja0ZvcklucHV0WzJdOwoKdHlw ZWRlZiBzdHJ1Y3QgX1RpbWVTdGFtcCB7CiAgICBDQVJEMzIgbW9udGhzOwogICAgQ0FSRDMyIG1p bGxpc2Vjb25kczsKfSBUaW1lU3RhbXA7CgoKCmV4dGVybiB2b2lkIFNldElucHV0Q2hlY2soCgog ICAgSFdFdmVudFF1ZXVlUHRyICwKICAgIEhXRXZlbnRRdWV1ZVB0cgoKKTsKCmV4dGVybiB2b2lk IENsb3NlRG93bkNsaWVudCgKCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gdm9pZCBVcGRhdGVD dXJyZW50VGltZSgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgVXBkYXRlQ3VycmVudFRpbWVJ ZigKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgSW5pdFNlbGVjdGlvbnMoCgogICAgdm9pZAoK KTsKCmV4dGVybiB2b2lkIEZsdXNoQ2xpZW50Q2FjaGVzKAoKICAgIFhJRAoKKTsKCmV4dGVybiBp bnQgZGl4RGVzdHJveVBpeG1hcCgKCiAgICBwb2ludGVyICwKICAgIFhJRAoKKTsKCmV4dGVybiB2 b2lkIENsb3NlRG93blJldGFpbmVkUmVzb3VyY2VzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9p ZCBJbml0Q2xpZW50KAoKICAgIENsaWVudFB0ciAsCiAgICBpbnQgLAogICAgcG9pbnRlcgoKKTsK CmV4dGVybiBDbGllbnRQdHIgTmV4dEF2YWlsYWJsZUNsaWVudCgKCiAgICBwb2ludGVyCgopOwoK ZXh0ZXJuIHZvaWQgU2VuZEVycm9yVG9DbGllbnQoCgogICAgQ2xpZW50UHRyICwKICAgIHVuc2ln bmVkIGludCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgWElEICwKICAgIGludAoKKTsKCmV4dGVy biB2b2lkIERlbGV0ZVdpbmRvd0Zyb21BbnlTZWxlY3Rpb25zKAoKICAgIFdpbmRvd1B0cgoKKTsK CmV4dGVybiB2b2lkIE1hcmtDbGllbnRFeGNlcHRpb24oCgogICAgQ2xpZW50UHRyCgopOwoKZXh0 ZXJuIGludCBHZXRHZW9tZXRyeSgKCiAgICBDbGllbnRQdHIgLAogICAgeEdldEdlb21ldHJ5UmVw bHkqCgopOwoKZXh0ZXJuIGludCBTZW5kQ29ublNldHVwKAoKICAgIENsaWVudFB0ciAsCiAgICBj aGFyKgoKKTsKCmV4dGVybiBpbnQKRG9HZXRJbWFnZSgKCiAgICBDbGllbnRQdHIgLAogICAgaW50 ICwKICAgIERyYXdhYmxlICwKICAgIGludCAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIGludCAs CiAgICBNYXNrICwKICAgIHhHZXRJbWFnZVJlcGx5ICoqCgopOwoKCmV4dGVybiB2b2lkIEluY3Jl bWVudENsaWVudENvdW50KAoKICAgIHZvaWQKCik7CgoKCgpleHRlcm4gdm9pZCBDb3B5SVNPTGF0 aW4xTG93ZXJlZCgKCiAgICB1bnNpZ25lZCBjaGFyICogLAogICAgdW5zaWduZWQgY2hhciAqICwK ICAgIGludAoKKTsKCgoKZXh0ZXJuIFdpbmRvd1B0ciBTZWN1cml0eUxvb2t1cFdpbmRvdygKCiAg ICBYSUQgLAogICAgQ2xpZW50UHRyICwKICAgIE1hc2sKCik7CgpleHRlcm4gcG9pbnRlciBTZWN1 cml0eUxvb2t1cERyYXdhYmxlKAoKICAgIFhJRCAsCiAgICBDbGllbnRQdHIgLAogICAgTWFzawoK KTsKCmV4dGVybiBXaW5kb3dQdHIgTG9va3VwV2luZG93KAoKICAgIFhJRCAsCiAgICBDbGllbnRQ dHIKCik7CgpleHRlcm4gcG9pbnRlciBMb29rdXBEcmF3YWJsZSgKCiAgICBYSUQgLAogICAgQ2xp ZW50UHRyCgopOwojIDQ5OSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNs dWRlL2RpeC5oIgpleHRlcm4gQ2xpZW50UHRyIExvb2t1cENsaWVudCgKCiAgICBYSUQgLAogICAg Q2xpZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgTm9vcEREQSgKCiAgICB2b2lkICosCiAgICAuLi4K Cik7CgpleHRlcm4gaW50IEFsdGVyU2F2ZVNldEZvckNsaWVudCgKCiAgICBDbGllbnRQdHIgLAog ICAgV2luZG93UHRyICwKICAgIHVuc2lnbmVkCgopOwoKZXh0ZXJuIHZvaWQgRGVsZXRlV2luZG93 RnJvbUFueVNhdmVTZXQoCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQgQmxvY2tIYW5k bGVyKAoKICAgIHBvaW50ZXIgLAogICAgcG9pbnRlcgoKKTsKCmV4dGVybiB2b2lkIFdha2V1cEhh bmRsZXIoCgogICAgaW50ICwKICAgIHBvaW50ZXIKCik7Cgp0eXBlZGVmIHZvaWQgKCogV2FrZXVw SGFuZGxlclByb2NQdHIpKAoKICAgIHBvaW50ZXIgLAogICAgaW50ICwKICAgIHBvaW50ZXIKCik7 CgpleHRlcm4gQm9vbCBSZWdpc3RlckJsb2NrQW5kV2FrZXVwSGFuZGxlcnMoCgogICAgQmxvY2tI YW5kbGVyUHJvY1B0ciAsCiAgICBXYWtldXBIYW5kbGVyUHJvY1B0ciAsCiAgICBwb2ludGVyCgop OwoKZXh0ZXJuIHZvaWQgUmVtb3ZlQmxvY2tBbmRXYWtldXBIYW5kbGVycygKCiAgICBCbG9ja0hh bmRsZXJQcm9jUHRyICwKICAgIFdha2V1cEhhbmRsZXJQcm9jUHRyICwKICAgIHBvaW50ZXIKCik7 CgpleHRlcm4gdm9pZCBJbml0QmxvY2tBbmRXYWtldXBIYW5kbGVycygKCiAgICB2b2lkCgopOwoK ZXh0ZXJuIHZvaWQgUHJvY2Vzc1dvcmtRdWV1ZSgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIEJvb2wg UXVldWVXb3JrUHJvYygKCiAgICBCb29sICgqICkoCgogICAgICAgIENsaWVudFB0ciAsCiAgICAg ICAgcG9pbnRlcgoKICAgICAgICApLAogICAgQ2xpZW50UHRyICwKICAgIHBvaW50ZXIKCik7Cgp0 eXBlZGVmIEJvb2wgKCogQ2xpZW50U2xlZXBQcm9jUHRyKSgKCiAgICBDbGllbnRQdHIgLAogICAg cG9pbnRlcgoKKTsKCmV4dGVybiBCb29sIENsaWVudFNsZWVwKAoKICAgIENsaWVudFB0ciAsCiAg ICBDbGllbnRTbGVlcFByb2NQdHIgLAogICAgcG9pbnRlcgoKKTsKCgoKZXh0ZXJuIEJvb2wgQ2xp ZW50U2lnbmFsKAoKICAgIENsaWVudFB0cgoKKTsKCgpleHRlcm4gdm9pZCBDbGllbnRXYWtldXAo CgogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIEJvb2wgQ2xpZW50SXNBc2xlZXAoCgogICAgQ2xp ZW50UHRyCgopOwoKCgpleHRlcm4gQXRvbSBNYWtlQXRvbSgKCiAgICBjaGFyICogLAogICAgdW5z aWduZWQgLAogICAgQm9vbAoKKTsKCmV4dGVybiBCb29sIFZhbGlkQXRvbSgKCiAgICBBdG9tCgop OwoKZXh0ZXJuIGNoYXIgKk5hbWVGb3JBdG9tKAoKICAgIEF0b20KCik7CgpleHRlcm4gdm9pZCBB dG9tRXJyb3IoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEZyZWVBbGxBdG9tcygKCiAgICB2 b2lkCgopOwoKZXh0ZXJuIHZvaWQgSW5pdEF0b21zKAoKICAgIHZvaWQKCik7CgoKCmV4dGVybiB2 b2lkIFNldE1hc2tGb3JFdmVudCgKCiAgICBNYXNrICwKICAgIGludAoKKTsKCgpleHRlcm4gQm9v bCBJc1BhcmVudCgKCiAgICBXaW5kb3dQdHIgLAogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIFdp bmRvd1B0ciBHZXRDdXJyZW50Um9vdFdpbmRvdygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIFdpbmRv d1B0ciBHZXRTcHJpdGVXaW5kb3coCgogICAgdm9pZAoKKTsKCgpleHRlcm4gdm9pZCBOb3RpY2VF dmVudFRpbWUoCgogICAgeEV2ZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgRW5xdWV1ZUV2ZW50KAoK ICAgIHhFdmVudFB0ciAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIHZv aWQgQ29tcHV0ZUZyZWV6ZXMoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIENoZWNrR3JhYkZv clN5bmNzKAoKICAgIERldmljZUludFB0ciAsCiAgICBCb29sICwKICAgIEJvb2wKCik7CgpleHRl cm4gdm9pZCBBY3RpdmF0ZVBvaW50ZXJHcmFiKAoKICAgIERldmljZUludFB0ciAsCiAgICBHcmFi UHRyICwKICAgIFRpbWVTdGFtcCAsCiAgICBCb29sCgopOwoKZXh0ZXJuIHZvaWQgRGVhY3RpdmF0 ZVBvaW50ZXJHcmFiKAoKICAgIERldmljZUludFB0cgoKKTsKCmV4dGVybiB2b2lkIEFjdGl2YXRl S2V5Ym9hcmRHcmFiKAoKICAgIERldmljZUludFB0ciAsCiAgICBHcmFiUHRyICwKICAgIFRpbWVT dGFtcCAsCiAgICBCb29sCgopOwoKZXh0ZXJuIHZvaWQgRGVhY3RpdmF0ZUtleWJvYXJkR3JhYigK CiAgICBEZXZpY2VJbnRQdHIKCik7CgpleHRlcm4gdm9pZCBBbGxvd1NvbWUoCgogICAgQ2xpZW50 UHRyICwKICAgIFRpbWVTdGFtcCAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50CgopOwoKZXh0 ZXJuIHZvaWQgUmVsZWFzZUFjdGl2ZUdyYWJzKAoKQ2xpZW50UHRyIGNsaWVudAoKKTsKCmV4dGVy biBpbnQgRGVsaXZlckV2ZW50c1RvV2luZG93KAoKICAgIFdpbmRvd1B0ciAsCiAgICB4RXZlbnRQ dHIgLAogICAgaW50ICwKICAgIE1hc2sgLAogICAgR3JhYlB0ciAsCiAgICBpbnQKCik7CgpleHRl cm4gaW50IERlbGl2ZXJEZXZpY2VFdmVudHMoCgogICAgV2luZG93UHRyICwKICAgIHhFdmVudFB0 ciAsCiAgICBHcmFiUHRyICwKICAgIFdpbmRvd1B0ciAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAg aW50CgopOwoKZXh0ZXJuIHZvaWQgRGVmaW5lSW5pdGlhbFJvb3RXaW5kb3coCgogICAgV2luZG93 UHRyCgopOwoKZXh0ZXJuIHZvaWQgV2luZG93SGFzTmV3Q3Vyc29yKAoKICAgIFdpbmRvd1B0cgoK KTsKCmV4dGVybiBCb29sIENoZWNrRGV2aWNlR3JhYnMoCgogICAgRGV2aWNlSW50UHRyICwKICAg IHhFdmVudFB0ciAsCiAgICBpbnQgLAogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQgRGVsaXZlckZv Y3VzZWRFdmVudCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgeEV2ZW50UHRyICwKICAgIFdpbmRv d1B0ciAsCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBEZWxpdmVyR3JhYmJlZEV2ZW50KAoKICAg IHhFdmVudFB0ciAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAgQm9vbCAsCiAgICBpbnQKCik7CgoK ZXh0ZXJuIHZvaWQgRml4S2V5U3RhdGUoCgogICAgeEV2ZW50ICogLAogICAgRGV2aWNlSW50UHRy CgopOwoKCmV4dGVybiB2b2lkIFJlY2FsY3VsYXRlRGVsaXZlcmFibGVFdmVudHMoCgogICAgV2lu ZG93UHRyCgopOwoKZXh0ZXJuIGludCBPdGhlckNsaWVudEdvbmUoCgogICAgcG9pbnRlciAsCiAg ICBYSUQKCik7CgpleHRlcm4gdm9pZCBEb0ZvY3VzRXZlbnRzKAoKICAgIERldmljZUludFB0ciAs CiAgICBXaW5kb3dQdHIgLAogICAgV2luZG93UHRyICwKICAgIGludAoKKTsKCmV4dGVybiBpbnQg U2V0SW5wdXRGb2N1cygKCiAgICBDbGllbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwKICAgIFdp bmRvdyAsCiAgICBDQVJEOCAsCiAgICBUaW1lICwKICAgIEJvb2wKCik7CgpleHRlcm4gaW50IEdy YWJEZXZpY2UoCgogICAgQ2xpZW50UHRyICwKICAgIERldmljZUludFB0ciAsCiAgICB1bnNpZ25l ZCAsCiAgICB1bnNpZ25lZCAsCiAgICBXaW5kb3cgLAogICAgdW5zaWduZWQgLAogICAgVGltZSAs CiAgICBNYXNrICwKICAgIENBUkQ4ICoKCik7CgpleHRlcm4gdm9pZCBJbml0RXZlbnRzKAoKICAg IHZvaWQKCik7CgpleHRlcm4gdm9pZCBDbG9zZURvd25FdmVudHModm9pZCk7CgpleHRlcm4gdm9p ZCBEZWxldGVXaW5kb3dGcm9tQW55RXZlbnRzKAoKICAgIFdpbmRvd1B0ciAsCiAgICBCb29sCgop OwoKCmV4dGVybiBNYXNrIEV2ZW50TWFza0ZvckNsaWVudCgKCiAgICBXaW5kb3dQdHIgLAogICAg Q2xpZW50UHRyCgopOwoKCgpleHRlcm4gaW50IERlbGl2ZXJFdmVudHMoCgogICAgV2luZG93UHRy ICwKICAgIHhFdmVudFB0ciAsCiAgICBpbnQgLAogICAgV2luZG93UHRyCgopOwoKCmV4dGVybiB2 b2lkIFdyaXRlRXZlbnRzVG9DbGllbnQoCgogICAgQ2xpZW50UHRyICwKICAgIGludCAsCiAgICB4 RXZlbnRQdHIKCik7CgpleHRlcm4gaW50IFRyeUNsaWVudEV2ZW50cygKCiAgICBDbGllbnRQdHIg LAogICAgeEV2ZW50UHRyICwKICAgIGludCAsCiAgICBNYXNrICwKICAgIE1hc2sgLAogICAgR3Jh YlB0cgoKKTsKCmV4dGVybiB2b2lkIFdpbmRvd3NSZXN0cnVjdHVyZWQoCgogICAgdm9pZAoKKTsK CgoKCgoKCmV4dGVybiB2b2lkIFJlc2V0Q2xpZW50UHJpdmF0ZXMoCgogICAgdm9pZAoKKTsKCmV4 dGVybiBpbnQgQWxsb2NhdGVDbGllbnRQcml2YXRlSW5kZXgoCgogICAgdm9pZAoKKTsKCmV4dGVy biBCb29sIEFsbG9jYXRlQ2xpZW50UHJpdmF0ZSgKCiAgICBpbnQgLAogICAgdW5zaWduZWQKCik7 CiMgOTgwICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvZGl4Lmgi CnR5cGVkZWYgdm9pZCAoKkNhbGxiYWNrUHJvY1B0cikgKAoKICAgIENhbGxiYWNrTGlzdFB0ciAq LCBwb2ludGVyLCBwb2ludGVyCgopOwoKdHlwZWRlZiBCb29sICgqQWRkQ2FsbGJhY2tQcm9jUHRy KSAoCgogICAgQ2FsbGJhY2tMaXN0UHRyICosIENhbGxiYWNrUHJvY1B0ciwgcG9pbnRlcgoKKTsK CnR5cGVkZWYgQm9vbCAoKkRlbGV0ZUNhbGxiYWNrUHJvY1B0cikgKAoKICAgIENhbGxiYWNrTGlz dFB0ciAqLCBDYWxsYmFja1Byb2NQdHIsIHBvaW50ZXIKCik7Cgp0eXBlZGVmIHZvaWQgKCpDYWxs Q2FsbGJhY2tzUHJvY1B0cikgKAoKICAgIENhbGxiYWNrTGlzdFB0ciAqLCBwb2ludGVyCgopOwoK dHlwZWRlZiB2b2lkICgqRGVsZXRlQ2FsbGJhY2tMaXN0UHJvY1B0cikgKAoKICAgIENhbGxiYWNr TGlzdFB0ciAqCgopOwoKdHlwZWRlZiBzdHJ1Y3QgX0NhbGxiYWNrUHJvY3MgewogICAgQWRkQ2Fs bGJhY2tQcm9jUHRyIEFkZENhbGxiYWNrOwogICAgRGVsZXRlQ2FsbGJhY2tQcm9jUHRyIERlbGV0 ZUNhbGxiYWNrOwogICAgQ2FsbENhbGxiYWNrc1Byb2NQdHIgQ2FsbENhbGxiYWNrczsKICAgIERl bGV0ZUNhbGxiYWNrTGlzdFByb2NQdHIgRGVsZXRlQ2FsbGJhY2tMaXN0Owp9IENhbGxiYWNrRnVu Y3NSZWMsICpDYWxsYmFja0Z1bmNzUHRyOwoKZXh0ZXJuIEJvb2wgQ3JlYXRlQ2FsbGJhY2tMaXN0 KAoKICAgIENhbGxiYWNrTGlzdFB0ciAqICwKICAgIENhbGxiYWNrRnVuY3NQdHIKCik7CgpleHRl cm4gQm9vbCBBZGRDYWxsYmFjaygKCiAgICBDYWxsYmFja0xpc3RQdHIgKiAsCiAgICBDYWxsYmFj a1Byb2NQdHIgLAogICAgcG9pbnRlcgoKKTsKCmV4dGVybiBCb29sIERlbGV0ZUNhbGxiYWNrKAoK ICAgIENhbGxiYWNrTGlzdFB0ciAqICwKICAgIENhbGxiYWNrUHJvY1B0ciAsCiAgICBwb2ludGVy CgopOwoKZXh0ZXJuIHZvaWQgQ2FsbENhbGxiYWNrcygKCiAgICBDYWxsYmFja0xpc3RQdHIgKiAs CiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIHZvaWQgRGVsZXRlQ2FsbGJhY2tMaXN0KAoKICAgIENh bGxiYWNrTGlzdFB0ciAqCgopOwoKZXh0ZXJuIHZvaWQgSW5pdENhbGxiYWNrTWFuYWdlcigKCiAg ICB2b2lkCgopOwoKCgoKCmV4dGVybiBDYWxsYmFja0xpc3RQdHIgU2VydmVyR3JhYkNhbGxiYWNr OwoKdHlwZWRlZiBlbnVtIHtTRVJWRVJfR1JBQkJFRCwgU0VSVkVSX1VOR1JBQkJFRCwKICAgICAg ICAgICAgICBDTElFTlRfUEVSVklPVVMsIENMSUVOVF9JTVBFUlZJT1VTIH0gU2VydmVyR3JhYlN0 YXRlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ2xpZW50UHRyIGNsaWVudDsKICAgIFNlcnZlckdy YWJTdGF0ZSBncmFic3RhdGU7Cn0gU2VydmVyR3JhYkluZm9SZWM7CgoKCgoKZXh0ZXJuIENhbGxi YWNrTGlzdFB0ciBFdmVudENhbGxiYWNrOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ2xpZW50UHRy IGNsaWVudDsKICAgIHhFdmVudFB0ciBldmVudHM7CiAgICBpbnQgY291bnQ7Cn0gRXZlbnRJbmZv UmVjOwoKCgoKCmV4dGVybiBDYWxsYmFja0xpc3RQdHIgRGV2aWNlRXZlbnRDYWxsYmFjazsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIHhFdmVudFB0ciBldmVudHM7CiAgICBpbnQgY291bnQ7Cn0gRGV2 aWNlRXZlbnRJbmZvUmVjOwojIDU3ICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiIDIKIyA3NSAi Li4vLi4vLi4vaW5jbHVkZS9kZHBleC5oIgp0eXBlZGVmIGNoYXIgZGRDSEFSOwp0eXBlZGVmIHNo b3J0IGRkU0hPUlQ7CnR5cGVkZWYgbG9uZyBkZExPTkc7CnR5cGVkZWYgZmxvYXQgZGRGTE9BVDsK CnR5cGVkZWYgdW5zaWduZWQgY2hhciBkZFVDSEFSOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGRk VVNIT1JUOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZGRVTE9ORzsKCnR5cGVkZWYgdW5zaWduZWQg Y2hhciAqZGRQb2ludGVyOwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZGRCWVRFOwp0eXBlZGVmIHVu c2lnbmVkIGNoYXIgZGRCT09MOwojIDk1ICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiCnR5cGVk ZWYgc3RydWN0IHsKICAgICAgICBYSUQgaWQ7CiAgICAgICAgZGRQb2ludGVyIGRldmljZURhdGE7 Cn0gZGRXS1NSZXNvdXJjZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBYSUQgaWQ7CiAgICAg ICAgZGRVU0hPUlQgbHV0VHlwZTsKICAgICAgICBkZFBvaW50ZXIgZGV2aWNlRGF0YTsKfSBkZExV VFJlc291cmNlOwoKdHlwZWRlZiBkZFdLU1Jlc291cmNlIGRkU3RydWN0UmVzb3VyY2U7CnR5cGVk ZWYgZGRXS1NSZXNvdXJjZSBkZE5TUmVzb3VyY2U7CnR5cGVkZWYgZGRXS1NSZXNvdXJjZSBkZEZv bnRSZXNvdXJjZTsKdHlwZWRlZiBkZFdLU1Jlc291cmNlIGRkUE1SZXNvdXJjZTsKCgoKCgp0eXBl ZGVmIGRkV0tTUmVzb3VyY2UgKmRpV0tTSGFuZGxlOwp0eXBlZGVmIGRkTFVUUmVzb3VyY2UgKmRp TFVUSGFuZGxlOwp0eXBlZGVmIGRkU3RydWN0UmVzb3VyY2UgKmRpU3RydWN0SGFuZGxlOwp0eXBl ZGVmIGRkTlNSZXNvdXJjZSAqZGlOU0hhbmRsZTsKdHlwZWRlZiBkZEZvbnRSZXNvdXJjZSAqZGlG b250SGFuZGxlOwp0eXBlZGVmIGRkUE1SZXNvdXJjZSAqZGlQTUhhbmRsZTsKdHlwZWRlZiBkZFBv aW50ZXIgZGlSZXNvdXJjZUhhbmRsZTsKCgoKdHlwZWRlZiBkZFVMT05HIGRkQml0bWFzazsKdHlw ZWRlZiBkZFVTSE9SVCBkZEJpdG1hc2tTaG9ydDsKdHlwZWRlZiBkZFNIT1JUIGRkRW51bVR5cGVJ bmRleDsKdHlwZWRlZiBYSUQgZGRSZXNvdXJjZUlkOwp0eXBlZGVmIGRkQllURSBkZFN3aXRjaDsK dHlwZWRlZiBkZFVTSE9SVCBkZFRhYmxlSW5kZXg7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEZM T0FUIHg7CiAgICBkZEZMT0FUIHk7Cn0gZGRWZWN0b3IyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAg IGRkRkxPQVQgeDsKICAgIGRkRkxPQVQgeTsKICAgIGRkRkxPQVQgejsKfSBkZFZlY3RvcjNEOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgZGRGTE9BVCB4OwogICAgZGRGTE9BVCB5Owp9IGRkQ29vcmQy RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkTE9ORyB4OwogICAgZGRMT05HIHk7Cn0gZGRDb29y ZDJETDsKCnR5cGVkZWYgeFBvaW50IGRkQ29vcmQyRFM7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ZGRGTE9BVCB4OwogICAgZGRGTE9BVCB5OwogICAgZGRGTE9BVCB6Owp9IGRkQ29vcmQzRDsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIGRkTE9ORyB4OwogICAgZGRMT05HIHk7CiAgICBkZExPTkcgejsK fSBkZENvb3JkM0RMOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRTSE9SVCB4OwogICAgZGRTSE9S VCB5OwogICAgZGRTSE9SVCB6Owp9IGRkQ29vcmQzRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBk ZEZMT0FUIHg7CiAgICBkZEZMT0FUIHk7CiAgICBkZEZMT0FUIHo7CiAgICBkZEZMT0FUIHc7Cn0g ZGRDb29yZDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkU0hPUlQgeDsKICAgICAgICBk ZFNIT1JUIHk7CiAgICAgICAgZGRGTE9BVCB6Owp9IGRkRGV2aWNlQ29vcmQ7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRTSE9SVCB4bWluOwogICAgICAgIGRkU0hPUlQgeW1pbjsKICAgICAg ICBkZFNIT1JUIHhtYXg7CiAgICAgICAgZGRTSE9SVCB5bWF4Owp9IGRkRGV2aWNlUmVjdDsKCnR5 cGVkZWYgc3RydWN0IHsKICAgICAgICBkZEZMT0FUIHhtaW47CiAgICAgICAgZGRGTE9BVCB5bWlu OwogICAgICAgIGRkRkxPQVQgem1pbjsKICAgICAgICBkZEZMT0FUIHdtaW47CiAgICAgICAgZGRG TE9BVCB4bWF4OwogICAgICAgIGRkRkxPQVQgeW1heDsKICAgICAgICBkZEZMT0FUIHptYXg7CiAg ICAgICAgZGRGTE9BVCB3bWF4Owp9IGRkTGlzdEJvdW5kczsKCnR5cGVkZWYgc3RydWN0IHsKICAg IGRkU0hPUlQgYXBwcm94TWV0aG9kOwogICAgZGRVU0hPUlQgdW51c2VkOwogICAgZGRGTE9BVCB0 b2xlcmFuY2U7Cn0gZGRDdXJ2ZUFwcHJveDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkU0hPUlQg YXBwcm94TWV0aG9kOwogICAgZGRVU0hPUlQgdW51c2VkOwogICAgZGRGTE9BVCB1VG9sZXJhbmNl OwogICAgZGRGTE9BVCB2VG9sZXJhbmNlOwp9IGRkU3VyZmFjZUFwcHJveDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIGRkVVNIT1JUIHZlcnRpY2FsOwogICAgZGRVU0hPUlQgaG9yaXpvbnRhbDsKfSBk ZFRleHRBbGlnbm1lbnREYXRhOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGREZXZpY2VDb29yZCBt aW52YWw7CiAgICBkZERldmljZUNvb3JkIG1heHZhbDsKICAgIGRkVUNIQVIgdXNlRHJhd2FibGU7 CiAgICBkZEJZVEUgcGFkWzNdOwp9IGRkVmlld3BvcnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBk ZENvb3JkMkRTIHBvc2l0aW9uOwogICAgZGRGTE9BVCBkaXN0YW5jZTsKfSBkZERDX0hpdEJveDsK CnR5cGVkZWYgc3RydWN0IHsKICAgIGRkQ29vcmQzRCBtaW52YWw7CiAgICBkZENvb3JkM0QgbWF4 dmFsOwp9IGRkTnBjU3Vidm9sdW1lOwoKdHlwZWRlZiBkZE5wY1N1YnZvbHVtZSBkZE5QQ19IaXRW b2x1bWU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQgY2xpcEZsYWdzOwogICAg ICAgIGRkVVNIT1JUIHVudXNlZDsKICAgICAgICBkZE5wY1N1YnZvbHVtZSBjbGlwTGltaXRzOwog ICAgICAgIGRkRkxPQVQgb3JpZW50YXRpb25bNF1bNF07CiAgICAgICAgZGRGTE9BVCBtYXBwaW5n WzRdWzRdOwp9IGRkVmlld0VudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JU IGRlZmluYWJsZUVudHJpZXM7CiAgICAgICAgZGRVU0hPUlQgbnVtUHJlZGVmaW5lZDsKICAgICAg ICBkZFVTSE9SVCBwcmVkZWZpbmVkTWluOwogICAgICAgIGRkVVNIT1JUIHByZWRlZmluZWRNYXg7 Cn0gZGRUYWJsZUluZm87CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRpU3RydWN0SGFuZGxl IHN0cnVjdHVyZTsKICAgICAgICBkZFVMT05HIG9mZnNldDsKfSBkZEVsZW1lbnRSZWY7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIG9yaWdfcG9pbnQ7CiAgICAgICAgZGRDb29y ZDREIHBvaW50OwogICAgICAgIGRkVmVjdG9yM0Qgb3JpZ192ZWN0b3I7CiAgICAgICAgZGRWZWN0 b3IzRCB2ZWN0b3I7CiAgICAgICAgZGRGTE9BVCBkaXN0Owp9IGRkSGFsZlNwYWNlOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgICAgIGRpU3RydWN0SGFuZGxlIHN0cnVjdHVyZTsKICAgICAgICBkZFVM T05HIG9mZnNldDsKICAgICAgICBkZFVMT05HIHBpY2tpZDsKfSBkZFBpY2tQYXRoOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgZGRVTE9ORyBzaWQ7CiAgICBkZFVMT05HIG9mZnNldDsKICAgIGRkVUxP TkcgcGlja2lkOwp9IGRkUGlja0VsZW1lbnRSZWY7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgIGRk VVNIT1JUIHBpY2tUeXBlOwogICAgICB1bmlvbiB7CiAgICAgICAgICBkZERDX0hpdEJveCBEQ19I aXRCb3g7CiAgICAgICAgICBkZE5QQ19IaXRWb2x1bWUgTlBDX0hpdFZvbHVtZTsKICAgICAgfSBo aXRfYm94Owp9IGRkUGlja1JlY29yZDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVTSE9S VCBlbGVtZW50VHlwZTsKICAgICAgICBkZFVTSE9SVCBsZW5ndGg7Cn0gZGRFbGVtZW50SW5mbzsK Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEZMT0FUIHJlZDsKICAgIGRkRkxPQVQgZ3JlZW47CiAg ICBkZEZMT0FUIGJsdWU7Cn0gZGRSZ2JGbG9hdENvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAg IGRkRkxPQVQgaHVlOwogICAgZGRGTE9BVCBzYXR1cmF0aW9uOwogICAgZGRGTE9BVCB2YWx1ZTsK fSBkZEhzdkNvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRkxPQVQgaHVlOwogICAgZGRG TE9BVCBsaWdodG5lc3M7CiAgICBkZEZMT0FUIHNhdHVyYXRpb247Cn0gZGRIbHNDb2xvdXI7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBkZEZMT0FUIHg7CiAgICBkZEZMT0FUIHk7CiAgICBkZEZMT0FU IHo7Cn0gZGRDaWVDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZFVDSEFSIHJlZDsKICAg IGRkVUNIQVIgZ3JlZW47CiAgICBkZFVDSEFSIGJsdWU7CiAgICBkZFVDSEFSIHBhZDsKfSBkZFJn YjhDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZFVTSE9SVCByZWQ7CiAgICBkZFVTSE9S VCBncmVlbjsKICAgIGRkVVNIT1JUIGJsdWU7CiAgICBkZFVTSE9SVCBwYWQ7Cn0gZGRSZ2IxNkNv bG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkVVNIT1JUIGluZGV4OwogICAgZGRVU0hPUlQg cGFkOwp9IGRkSW5kZXhlZENvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkU0hPUlQgY29s b3VyVHlwZTsKICAgIGRkU0hPUlQgdW51c2VkOwogICAgdW5pb24gewogICAgICAgIGRkSW5kZXhl ZENvbG91ciBpbmRleGVkOwogICAgICAgIGRkUmdiOENvbG91ciByZ2I4OwogICAgICAgIGRkUmdi MTZDb2xvdXIgcmdiMTY7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciByZ2JGbG9hdDsKICAgICAg ICBkZENpZUNvbG91ciBjaWVGbG9hdDsKICAgICAgICBkZEhsc0NvbG91ciBobHNGbG9hdDsKICAg ICAgICBkZEhzdkNvbG91ciBoc3ZGbG9hdDsKICAgIH0gY29sb3VyOwp9IGRkQ29sb3VyU3BlY2lm aWVyOwoKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgZGRSZ2I4Q29sb3VyIHJnYjg7CiAgICAgICAg ZGRSZ2IxNkNvbG91ciByZ2IxNjsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyIHJnYkZsb2F0Owog ICAgICAgIGRkQ2llQ29sb3VyIGNpZUZsb2F0OwogICAgICAgIGRkSGxzQ29sb3VyIGhsc0Zsb2F0 OwogICAgICAgIGRkSHN2Q29sb3VyIGhzdkZsb2F0Owp9IGRkRGlyZWN0Q29sb3VyOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgZGRGTE9BVCBhbWJpZW50OwogICAgZGRGTE9BVCBkaWZmdXNlOwogICAg ZGRGTE9BVCBzcGVjdWxhcjsKICAgIGRkRkxPQVQgc3BlY3VsYXJDb25jOwogICAgZGRGTE9BVCB0 cmFuc21pc3Npb247CiAgICBkZENvbG91clNwZWNpZmllciBzcGVjdWxhckNvbG91cjsKfSBkZFJl ZmxlY3Rpb25BdHRyOwoKCgoKdHlwZWRlZiBpbnQgZGRwZXg0cnRuOwp0eXBlZGVmIGludCBkZHBl eDQzcnRuOwp0eXBlZGVmIGludCBkZHBleDNydG47CnR5cGVkZWYgaW50IGRkcGV4MnJ0bjsKdHlw ZWRlZiBpbnQgZGRwZXgxcnRuOwojIDM5OCAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleC5oIgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBkZFVMT05HIGJ1ZlNpemU7CiAgICBkZFVMT05HIGRhdGFTaXplOwog ICAgZGRQb2ludGVyIHBCdWY7CiAgICBkZFBvaW50ZXIgcEhlYWQ7Cn0gZGRCdWZmZXIsICpkZEJ1 ZmZlclB0cjsKIyA0MTYgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXguaCIKdHlwZWRlZiBlbnVtIHsK ICAgICAgICBERF9FTEVNRU5UX1JFRj0wLAogICAgICAgIEREX0hBTEZfU1BBQ0U9MSwKICAgICAg ICBERF9QSUNLX1BBVEg9MiwKICAgICAgICBERF9SRU5ERVJFUj0zLAogICAgICAgIEREX1dLUz00 LAogICAgICAgIEREX05TPTUsCiAgICAgICAgRERfU1RSVUNUPTYsCiAgICAgICAgRERfREVWSUNF X1JFQ1Q9NywKICAgICAgICBERF9OQU1FPTgsCiAgICAgICAgRERfSU5ERVg9OSwKICAgICAgICBE RF9MSVNUX09GX0xJU1Q9MTAsCiAgICAgICAgRERfTlVNX1RZUEVTPTExCn0gZGRMaXN0VHlwZTsK CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZExpc3RUeXBlIHR5cGU7CiAgICAgICAgZGRMT05H IG51bU9iajsKICAgICAgICBkZExPTkcgbWlzYzsKICAgICAgICBkZExPTkcgbWF4T2JqOwogICAg ICAgIGRkUG9pbnRlciBwTGlzdDsKIyA0NDYgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXguaCIKfSBs aXN0b2ZPYmo7CgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVTSE9SVCBwbGFjZW1lbnRU eXBlOwogICAgICAgIGRkVVNIT1JUIG51bVVjdXJ2ZXM7CiAgICAgICAgZGRVU0hPUlQgbnVtVmN1 cnZlczsKfSBkZFBTQ19Jc29wYXJhbWV0cmljQ3VydmVzOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGRkQ29vcmQzRCBvcmlnaW47CiAgICAgICAgZGRWZWN0b3IzRCBkaXJlY3Rpb247CiAgICAg ICAgZGRVU0hPUlQgbnVtYmVySW50ZXJzZWN0aW9uczsKICAgICAgICBkZEZMT0FUICpwUG9pbnRz Owp9IGRkUFNDX0xldmVsQ3VydmVzOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRW51bVR5 cGVJbmRleCB0eXBlOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIGNoYXIgbm9uZTsK ICAgICAgICAgICAgICAgIGNoYXIgaW1wRGVwOwogICAgICAgICAgICAgICAgZGRQU0NfSXNvcGFy YW1ldHJpY0N1cnZlcyBpc29DdXJ2ZXM7CiAgICAgICAgICAgICAgICBkZFBTQ19MZXZlbEN1cnZl cyBtY0xldmVsQ3VydmVzOwogICAgICAgICAgICAgICAgZGRQU0NfTGV2ZWxDdXJ2ZXMgd2NMZXZl bEN1cnZlczsKICAgICAgICB9IGRhdGE7Cn0gZGRQU3VyZmFjZUNoYXJzOwoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZEVudW1UeXBlSW5kZXggbWFya2VyVHlwZTsKICAgICAgICBkZEZMT0FU IG1hcmtlclNjYWxlOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIG1hcmtlckNvbG91cjsKICAg ICAgICBkZFVTSE9SVCBtYXJrZXJJbmRleDsKICAgICAgICBkZFVTSE9SVCB0ZXh0Rm9udDsKICAg ICAgICBkZFVTSE9SVCB0ZXh0UHJlY2lzaW9uOwogICAgICAgIGRkRkxPQVQgY2hhckV4cGFuc2lv bjsKICAgICAgICBkZEZMT0FUIGNoYXJTcGFjaW5nOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVy IHRleHRDb2xvdXI7CiAgICAgICAgZGRGTE9BVCBjaGFySGVpZ2h0OwogICAgICAgIGRkVmVjdG9y MkQgY2hhclVwOwogICAgICAgIGRkVVNIT1JUIHRleHRQYXRoOwogICAgICAgIGRkVGV4dEFsaWdu bWVudERhdGEgdGV4dEFsaWdubWVudDsKICAgICAgICBkZEZMT0FUIGF0ZXh0SGVpZ2h0OwogICAg ICAgIGRkVmVjdG9yMkQgYXRleHRVcDsKICAgICAgICBkZFVTSE9SVCBhdGV4dFBhdGg7CiAgICAg ICAgZGRUZXh0QWxpZ25tZW50RGF0YSBhdGV4dEFsaWdubWVudDsKICAgICAgICBkZEVudW1UeXBl SW5kZXggYXRleHRTdHlsZTsKICAgICAgICBkZFVTSE9SVCB0ZXh0SW5kZXg7CiAgICAgICAgZGRF bnVtVHlwZUluZGV4IGxpbmVUeXBlOwogICAgICAgIGRkRkxPQVQgbGluZVdpZHRoOwogICAgICAg IGRkQ29sb3VyU3BlY2lmaWVyIGxpbmVDb2xvdXI7CiAgICAgICAgZGRDdXJ2ZUFwcHJveCBjdXJ2 ZUFwcHJveDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggbGluZUludGVycDsKICAgICAgICBkZFVT SE9SVCBsaW5lSW5kZXg7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGludFN0eWxlOwogICAgICAg IGRkU0hPUlQgaW50U3R5bGVJbmRleDsKICAgICAgICBkZENvbG91clNwZWNpZmllciBzdXJmYWNl Q29sb3VyOwogICAgICAgIGRkUmVmbGVjdGlvbkF0dHIgcmVmbEF0dHI7CiAgICAgICAgZGRFbnVt VHlwZUluZGV4IHJlZmxNb2RlbDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggc3VyZkludGVycDsK ICAgICAgICBkZEVudW1UeXBlSW5kZXggYmZJbnRTdHlsZTsKICAgICAgICBkZFNIT1JUIGJmSW50 U3R5bGVJbmRleDsKICAgICAgICBkZENvbG91clNwZWNpZmllciBiZlN1cmZDb2xvdXI7CiAgICAg ICAgZGRSZWZsZWN0aW9uQXR0ciBiZlJlZmxBdHRyOwogICAgICAgIGRkRW51bVR5cGVJbmRleCBi ZlJlZmxNb2RlbDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggYmZTdXJmSW50ZXJwOwogICAgICAg IGRkU3VyZmFjZUFwcHJveCBzdXJmQXBwcm94OwogICAgICAgIGRkVVNIT1JUIGN1bGxNb2RlOwog ICAgICAgIGRkQk9PTCBkaXN0RmxhZzsKICAgICAgICBkZENvb3JkMkQgcGF0dGVyblNpemU7CiAg ICAgICAgZGRDb29yZDNEIHBhdHRlcm5SZWZQdDsKICAgICAgICBkZFZlY3RvcjNEIHBhdHRlcm5S ZWZWMTsKICAgICAgICBkZFZlY3RvcjNEIHBhdHRlcm5SZWZWMjsKICAgICAgICBkZFVTSE9SVCBp bnRJbmRleDsKICAgICAgICBkZFVTSE9SVCBlZGdlczsKICAgICAgICBkZEVudW1UeXBlSW5kZXgg ZWRnZVR5cGU7CiAgICAgICAgZGRGTE9BVCBlZGdlV2lkdGg7CiAgICAgICAgZGRDb2xvdXJTcGVj aWZpZXIgZWRnZUNvbG91cjsKICAgICAgICBkZFVTSE9SVCBlZGdlSW5kZXg7CiAgICAgICAgZGRG TE9BVCBsb2NhbE1hdFs0XVs0XTsKICAgICAgICBkZEZMT0FUIGdsb2JhbE1hdFs0XVs0XTsKICAg ICAgICBkZFVTSE9SVCBtb2RlbENsaXA7CiAgICAgICAgbGlzdG9mT2JqICptb2RlbENsaXBWb2x1 bWU7CiAgICAgICAgZGRVU0hPUlQgdmlld0luZGV4OwogICAgICAgIGxpc3RvZk9iaiAqbGlnaHRT dGF0ZTsKICAgICAgICBkZFVTSE9SVCBkZXB0aEN1ZUluZGV4OwogICAgICAgIGRkVVNIT1JUIGNv bG91ckFwcHJveEluZGV4OwogICAgICAgIGRkU0hPUlQgcmRyQ29sb3VyTW9kZWw7CiAgICAgICAg ZGRQU3VyZmFjZUNoYXJzIHBzYzsKICAgICAgICBkZFVMT05HIGFzZnM7CiAgICAgICAgZGRVTE9O RyBwaWNrSWQ7CiAgICAgICAgZGRVTE9ORyBobGhzclR5cGU7CiAgICAgICAgZGlOU0hhbmRsZSBw Q3VycmVudE5TOwp9IGRkUENBdHRyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVUxPTkcg UENpZDsKICAgICAgICBsaXN0b2ZPYmogKnJlbmRSZWZzOwogICAgICAgIGRkUENBdHRyICpwUENB dHRyOwp9IGRkUENTdHIsICpkZFBDUHRyOwoKCgoKCgp0eXBlZGVmIGRkcGV4MnJ0biAoKm9jVGFi bGVUeXBlKSgpOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQllURSB0eXBlOwogICAgICAg IGRkQllURSBjbGFzczsKICAgICAgICBkZEJZVEUgZGVwdGg7CiAgICAgICAgZGRCWVRFIGJpdHNQ ZXJQaXhlbDsKICAgICAgICBkZEJZVEUgcm9vdERlcHRoOwogICAgICAgIGRkVUxPTkcgcm9vdFZp c3VhbDsKfSBkZERyYXdhYmxlSW5mbzsKCnR5cGVkZWYgZW51bSB7CiAgICAgICAgRERfSElHSF9J TkNMX05TPTAsCiAgICAgICAgRERfSElHSF9FWENMX05TPTEsCiAgICAgICAgRERfSU5WSVNfSU5D TF9OUz0yLAogICAgICAgIEREX0lOVklTX0VYQ0xfTlM9MywKICAgICAgICBERF9QSUNLX0lOQ0xf TlM9NCwKICAgICAgICBERF9QSUNLX0VYQ0xfTlM9NSwKICAgICAgICBERF9NQVhfRklMVEVSUz02 Cn0gZGROU0ZpbHRlcnM7CiMgNTgxICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiCnR5cGVkZWYg c3RydWN0IHsKICAgICAgICBkZFVTSE9SVCBzdGF0ZTsKICAgICAgICBkZFVTSE9SVCBzZXJ2ZXI7 CiAgICAgICAgZGRTSE9SVCBwaWNrX21ldGhvZDsKICAgICAgICBkZEJPT0wgc2VuZF9ldmVudDsK ICAgICAgICBkZFVMT05HIG1heF9oaXRzOwogICAgICAgIGRkVUxPTkcgbW9yZV9oaXRzOwogICAg ICAgIENsaWVudFB0ciBjbGllbnQ7CiAgICAgICAgZGlTdHJ1Y3RIYW5kbGUgc3RySGFuZGxlOwog ICAgICAgIGRpUE1IYW5kbGUgcHNldWRvUE07CiAgICAgICAgbGlzdG9mT2JqICpsaXN0OwogICAg ICAgIGxpc3RvZk9iaiAqZmFrZVN0cmxpc3Q7CgogICAgICAgIGxpc3RvZk9iaiAqc0lEbGlzdDsK Cgp9IGRkUmRyUGlja1N0ciwgKmRkUmRyUGlja1B0cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZFVMT05HIHJlbmRJZDsKICAgICAgICBkZFBDUHRyIHBQQzsKICAgICAgICBkZERyYXdhYmxl SW5mbyBkcmF3RXhhbXBsZTsKICAgICAgICBEcmF3YWJsZVB0ciBwRHJhd2FibGU7CiAgICAgICAg ZGRVTE9ORyBkcmF3YWJsZUlkOwogICAgICAgIGxpc3RvZk9iaiAqY3VyUGF0aDsKICAgICAgICBk ZFVTSE9SVCBzdGF0ZTsKICAgICAgICBkaUxVVEhhbmRsZSBsdXRbMTIgKzFdOwogICAgICAgIGRp TlNIYW5kbGUgbnNbRERfTUFYX0ZJTFRFUlNdOwogICAgICAgIGRkU0hPUlQgaGxoc3JNb2RlOwog ICAgICAgIGRkTnBjU3Vidm9sdW1lIG5wY1N1YnZvbHVtZTsKICAgICAgICBkZFZpZXdwb3J0IHZp ZXdwb3J0OwogICAgICAgIGxpc3RvZk9iaiAqY2xpcExpc3Q7CgoKCiAgICAgICAgbGlzdG9mT2Jq ICpwaWNrU3RhcnRQYXRoOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIGJhY2tncm91bmRDb2xv dXI7CiAgICAgICAgZGRCT09MIGNsZWFySTsKICAgICAgICBkZEJPT0wgY2xlYXJaOwogICAgICAg IGRkVVNIT1JUIGVjaG9Nb2RlOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIGVjaG9Db2xvdXI7 CgogICAgICAgIGRkQml0bWFzayB0YWJsZXNNYXNrOwogICAgICAgIGRkQml0bWFzayBuYW1lc2V0 c01hc2s7CiAgICAgICAgZGRCaXRtYXNrIGF0dHJzTWFzazsKICAgICAgICBkZEJpdG1hc2sgdGFi bGVzQ2hhbmdlczsKICAgICAgICBkZEJpdG1hc2sgbmFtZXNldHNDaGFuZ2VzOwogICAgICAgIGRk Qml0bWFzayBhdHRyc0NoYW5nZXM7CiAgICAgICAgb2NUYWJsZVR5cGUgZXhlY3V0ZU9Dc1soMTA0 ICsxKV07CiAgICAgICAgZGRCT09MIGltbWVkaWF0ZU1vZGU7CiAgICAgICAgZGRVU0hPUlQgcmVu ZGVyX21vZGU7CiAgICAgICAgZGRQb2ludGVyIHBERENvbnRleHQ7CiAgICAgICAgZGRSZHJQaWNr U3RyIHBpY2tzdHI7Cn0gZGRSZW5kZXJlclN0ciwgKmRkUmVuZGVyZXJQdHI7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRVTE9ORyBudW1FbFJlZnM7CiAgICAgICAgbGlzdG9mT2JqICpQYXRo Owp9IGRkQWNjU3RTdHIsICpkZEFjY1N0UHRyOwoKCgoKCgoKdHlwZWRlZiBlbnVtIHsKICAgICAg ICBXT1JLU1RBVElPTl9SRVNPVVJDRT0wLAogICAgICAgIFNUUlVDVFVSRV9SRVNPVVJDRT0xLAog ICAgICAgIFBBUkVOVF9TVFJVQ1RVUkVfUkVTT1VSQ0U9MiwKICAgICAgICBDSElMRF9TVFJVQ1RV UkVfUkVTT1VSQ0U9MywKICAgICAgICBTRUFSQ0hfQ09OVEVYVF9SRVNPVVJDRT00LAogICAgICAg IFBJQ0tfUkVTT1VSQ0U9NSwKICAgICAgICBMT09LVVBfVEFCTEVfUkVTT1VSQ0U9NiwKICAgICAg ICBOQU1FX1NFVF9SRVNPVVJDRT03LAogICAgICAgIEZPTlRfUkVTT1VSQ0U9OCwKICAgICAgICBS RU5ERVJFUl9SRVNPVVJDRT05LAogICAgICAgIFBJUEVMSU5FX0NPTlRFWFRfUkVTT1VSQ0U9MTAK fSBkZFJlc291cmNlVHlwZTsKCnR5cGVkZWYgZW51bSB7CiAgICAgICAgQUREPTAsCiAgICAgICAg UkVNT1ZFPTEKfSBkZEFjdGlvbjsKCnR5cGVkZWYgZW51bSB7CiAgICAgICAgWF9XSU5ET1dfUkVT T1VSQ0U9MCwKICAgICAgICBYX0RSQVdBQkxFX1JFU09VUkNFPTEsCiAgICAgICAgWF9GT05UX1JF U09VUkNFPTIsCiAgICAgICAgWF9QSVhNQVBfUkVTT1VSQ0U9MywKICAgICAgICBYX0NVUlNPUl9S RVNPVVJDRT00LAogICAgICAgIFhfQ09MT1JNQVBfUkVTT1VSQ0U9NSwKICAgICAgICBYX0dDT05U RVhUX1JFU09VUkNFPTYsCiAgICAgICAgWF9LRVlTWU09Nwp9IGRkWFJlc291cmNlVHlwZTsKIyA1 NSAiLi4vaW5jbHVkZS9taVJlbmRlci5oIiAyCiMgMSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleDMu aCIgMQojIDMwMSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleDMuaCIKdHlwZWRlZiBkZFVTSE9SVCBk ZFBvaW50VHlwZTsKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAg ICAgICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKfSBkZEluZGV4UG9pbnQ7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiOENvbG91ciBjb2xvdXI7 Cn0gZGRSZ2I4UG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0Owog ICAgICAgIGRkUmdiMTZDb2xvdXIgY29sb3VyOwp9IGRkUmdiMTZQb2ludDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRkUmdiRmxvYXRDb2xvdXIgY29s b3VyOwp9IGRkUmdiRmxvYXRQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENv b3JkM0QgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBjb2xvdXI7Cn0gZGRSZ2JGbG9hdFBv aW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRI c3ZDb2xvdXIgY29sb3VyOwp9IGRkSHN2UG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAg ICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKfSBkZEhzdlBvaW50 OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRIbHND b2xvdXIgY29sb3VyOwp9IGRkSGxzUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg ZGRDb29yZDNEIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNvbG91cjsKfSBkZEhsc1BvaW50OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRDaWVDb2xv dXIgY29sb3VyOwp9IGRkQ2llUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRD b29yZDNEIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKfSBkZENpZVBvaW50OwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRWZWN0b3IzRCBu b3JtYWw7Cn0gZGROb3JtYWxQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENv b3JkM0QgcHQ7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGROb3JtYWxQb2ludDsKCnR5 cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRkVUxPTkcgZWRn ZTsKfSBkZEVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0Qg cHQ7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkRWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZEluZGV4ZWRDb2xvdXIgY29sb3VyOwog ICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkSW5kZXhOb3JtYWxQb2ludDsKCnR5cGVkZWYg c3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91 cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZFJnYjhOb3JtYWxQb2ludDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2IxNkNvbG91ciBj b2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2IxNk5vcm1hbFBvaW50OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRSZ2JGbG9h dENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2JGbG9hdE5v cm1hbFBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAg ICAgICBkZFJnYkZsb2F0Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsK fSBkZFJnYkZsb2F0Tm9ybWFsUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29y ZDJEUyBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBu b3JtYWw7Cn0gZGRIc3ZOb3JtYWxQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBk ZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIc3ZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9y M0Qgbm9ybWFsOwp9IGRkSHN2Tm9ybWFsUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg ZGRDb29yZDJEUyBwdDsKICAgICAgICBkZEhsc0NvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0 b3IzRCBub3JtYWw7Cn0gZGRIbHNOb3JtYWxQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAgIGRk VmVjdG9yM0Qgbm9ybWFsOwp9IGRkSGxzTm9ybWFsUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAgICAgICAg ZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRDaWVOb3JtYWxQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0 IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRDaWVDb2xvdXIgY29sb3VyOwogICAg ICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkQ2llTm9ybWFsUG9pbnQ7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciBjb2xvdXI7 CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkSW5kZXhFZGdlUG9pbnQ7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiOENvbG91ciBjb2xvdXI7CiAg ICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiOEVkZ2VQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsK ICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2IxNkNvbG91ciBjb2xvdXI7CiAgICAg ICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiMTZFZGdlUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyIGNvbG91cjsKICAg ICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRSZ2JGbG9hdEVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBjb2xv dXI7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiRmxvYXRFZGdlUG9pbnQ7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xv dXI7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkSHN2RWRnZVBvaW50MkRTOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7 CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkSHN2RWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAg ICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhsc0VkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsK ICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAg IGRkVUxPTkcgZWRnZTsKfSBkZEhsc0VkZ2VQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFVM T05HIGVkZ2U7Cn0gZGRDaWVFZGdlUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg ZGRDb29yZDNEIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFVMT05H IGVkZ2U7Cn0gZGRDaWVFZGdlUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29y ZDJEUyBwdDsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7 Cn0gZGROb3JtRWRnZVBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQz RCBwdDsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0g ZGROb3JtRWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsK ICAgICAgICBkZEluZGV4ZWRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFs OwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEluZGV4Tm9ybUVkZ2VQb2ludDsKCnR5cGVkZWYg c3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91 cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRS Z2I4Tm9ybUVkZ2VQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7 CiAgICAgICAgZGRSZ2IxNkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7 CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiMTZOb3JtRWRnZVBvaW50OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBj b2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9 IGRkUmdiRmxvYXROb3JtRWRnZVBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRk Q29vcmQzRCBwdDsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZl Y3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRSZ2JGbG9hdE5vcm1FZGdl UG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBk ZEhzdkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRV TE9ORyBlZGdlOwp9IGRkSHN2Tm9ybUVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIc3ZDb2xvdXIgY29sb3VyOwogICAgICAgIGRk VmVjdG9yM0Qgbm9ybWFsOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhzdk5vcm1FZGdlUG9p bnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZEhs c0NvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9O RyBlZGdlOwp9IGRkSGxzTm9ybUVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVj dG9yM0Qgbm9ybWFsOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhsc05vcm1FZGdlUG9pbnQ7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZENpZUNv bG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBl ZGdlOwp9IGRkQ2llTm9ybUVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBk ZENvb3JkM0QgcHQ7CiAgICAgICAgZGRDaWVDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9y M0Qgbm9ybWFsOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZENpZU5vcm1FZGdlUG9pbnQ7CgoK CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZEluZGV4 ZWRDb2xvdXIgY29sb3VyOwp9IGRkSW5kZXhQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZFJnYjhDb2xvdXIgY29sb3VyOwp9IGRkUmdiOFBv aW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRk UmdiMTZDb2xvdXIgY29sb3VyOwp9IGRkUmdiMTZQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyIGNvbG91cjsKfSBk ZFJnYkZsb2F0UG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7 CiAgICAgICAgZGRIc3ZDb2xvdXIgY29sb3VyOwp9IGRkSHN2UG9pbnQ0RDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwp9 IGRkSGxzUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAg ICAgICAgZGRDaWVDb2xvdXIgY29sb3VyOwp9IGRkQ2llUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0 IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRO b3JtYWxQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsKICAg ICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRFZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKICAgICAg ICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEluZGV4Tm9ybWFsUG9pbnQ0RDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91cjsK ICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZFJnYjhOb3JtYWxQb2ludDREOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZFJnYjE2Q29sb3VyIGNv bG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZFJnYjE2Tm9ybWFsUG9pbnQ0RDsK CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2JGbG9h dENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2JGbG9hdE5v cm1hbFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAg ICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEhz dk5vcm1hbFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0Owog ICAgICAgIGRkSGxzQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBk ZEhsc05vcm1hbFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0 OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsK fSBkZENpZU5vcm1hbFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDRE IHB0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRVTE9ORyBlZGdl Owp9IGRkSW5kZXhFZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3Jk NEQgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFVMT05HIGVkZ2U7 Cn0gZGRSZ2I4RWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDRE IHB0OwogICAgICAgIGRkUmdiMTZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsK fSBkZFJnYjE2RWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDRE IHB0OwogICAgICAgIGRkUmdiRmxvYXRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRn ZTsKfSBkZFJnYkZsb2F0RWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRD b29yZDREIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFVMT05HIGVk Z2U7Cn0gZGRIc3ZFZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3Jk NEQgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsK fSBkZEhsc0VkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBw dDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRk Q2llRWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0Owog ICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZE5vcm1F ZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAg ICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAg ICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRJbmRleE5vcm1FZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91cjsK ICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRSZ2I4 Tm9ybUVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsK ICAgICAgICBkZFJnYjE2Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsK ICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRSZ2IxNk5vcm1FZGdlUG9pbnQ0RDsKCnR5cGVkZWYg c3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBj b2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9 IGRkUmdiRmxvYXROb3JtRWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRD b29yZDREIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNE IG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRIc3ZOb3JtRWRnZVBvaW50NEQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkSGxzQ29sb3Vy IGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7 Cn0gZGRIbHNOb3JtRWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29y ZDREIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5v cm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRDaWVOb3JtRWRnZVBvaW50NEQ7Cgp0eXBl ZGVmIHVuaW9uIHsKICAgICAgICBkZENvb3JkMkQgKnAyRHB0OwogICAgICAgIGRkQ29vcmQzRCAq cDNEcHQ7CiAgICAgICAgZGRDb29yZDJETCAqcDJETHB0OwogICAgICAgIGRkQ29vcmQzREwgKnAz RExwdDsKICAgICAgICBkZENvb3JkMkRTICpwMkRTcHQ7CiAgICAgICAgZGRDb29yZDNEUyAqcDNE U3B0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciAqcEluZGV4Q2xyOwogICAgICAgIGRkUmdiOENv bG91ciAqcFJnYjhDbHI7CiAgICAgICAgZGRSZ2IxNkNvbG91ciAqcFJnYjE2Q2xyOwogICAgICAg IGRkUmdiRmxvYXRDb2xvdXIgKnBSZ2JGbG9hdENscjsKICAgICAgICBkZEhzdkNvbG91ciAqcEhz dkNscjsKICAgICAgICBkZEhsc0NvbG91ciAqcEhsc0NscjsKICAgICAgICBkZENpZUNvbG91ciAq cENpZUNscjsKICAgICAgICBkZEluZGV4UG9pbnQgKnBJbmRleHB0OwogICAgICAgIGRkUmdiOFBv aW50ICpwUmdiOHB0OwogICAgICAgIGRkUmdiMTZQb2ludCAqcFJnYjE2cHQ7CiAgICAgICAgZGRS Z2JGbG9hdFBvaW50ICpwUmdiRmxvYXRwdDsKICAgICAgICBkZEhzdlBvaW50ICpwSHN2cHQ7CiAg ICAgICAgZGRIbHNQb2ludCAqcEhsc3B0OwogICAgICAgIGRkQ2llUG9pbnQgKnBDaWVwdDsKICAg ICAgICBkZFZlY3RvcjNEICpwTm9ybWFsOwogICAgICAgIGRkTm9ybWFsUG9pbnQgKnBOcHQ7CiAg ICAgICAgZGRVTE9ORyAqcEVkZ2U7CiAgICAgICAgZGRFZGdlUG9pbnQgKnBFcHQ7CiAgICAgICAg ZGRJbmRleE5vcm1hbFBvaW50ICpwSW5kZXhOcHQ7CiAgICAgICAgZGRSZ2I4Tm9ybWFsUG9pbnQg KnBSZ2I4TnB0OwogICAgICAgIGRkUmdiMTZOb3JtYWxQb2ludCAqcFJnYjE2TnB0OwogICAgICAg IGRkUmdiRmxvYXROb3JtYWxQb2ludCAqcFJnYkZsb2F0TnB0OwogICAgICAgIGRkSHN2Tm9ybWFs UG9pbnQgKnBIc3ZOcHQ7CiAgICAgICAgZGRIbHNOb3JtYWxQb2ludCAqcEhsc05wdDsKICAgICAg ICBkZENpZU5vcm1hbFBvaW50ICpwQ2llTnB0OwogICAgICAgIGRkSW5kZXhFZGdlUG9pbnQgKnBJ bmRleEVwdDsKICAgICAgICBkZFJnYjhFZGdlUG9pbnQgKnBSZ2I4RXB0OwogICAgICAgIGRkUmdi MTZFZGdlUG9pbnQgKnBSZ2IxNkVwdDsKICAgICAgICBkZFJnYkZsb2F0RWRnZVBvaW50ICpwUmdi RmxvYXRFcHQ7CiAgICAgICAgZGRIc3ZFZGdlUG9pbnQgKnBIc3ZFcHQ7CiAgICAgICAgZGRIbHNF ZGdlUG9pbnQgKnBIbHNFcHQ7CiAgICAgICAgZGRDaWVFZGdlUG9pbnQgKnBDaWVFcHQ7CiAgICAg ICAgZGROb3JtRWRnZVBvaW50ICpwTkVwdDsKICAgICAgICBkZEluZGV4Tm9ybUVkZ2VQb2ludCAq cEluZGV4TkVwdDsKICAgICAgICBkZFJnYjhOb3JtRWRnZVBvaW50ICpwUmdiOE5FcHQ7CiAgICAg ICAgZGRSZ2IxNk5vcm1FZGdlUG9pbnQgKnBSZ2IxNk5FcHQ7CiAgICAgICAgZGRSZ2JGbG9hdE5v cm1FZGdlUG9pbnQgKnBSZ2JGbG9hdE5FcHQ7CiAgICAgICAgZGRIc3ZOb3JtRWRnZVBvaW50ICpw SHN2TkVwdDsKICAgICAgICBkZEhsc05vcm1FZGdlUG9pbnQgKnBIbHNORXB0OwogICAgICAgIGRk Q2llTm9ybUVkZ2VQb2ludCAqcENpZU5FcHQ7CiAgICAgICAgZGRDb29yZDREICpwNERwdDsKICAg ICAgICBkZEluZGV4UG9pbnQ0RCAqcEluZGV4cHQ0RDsKICAgICAgICBkZFJnYjhQb2ludDREICpw UmdiOHB0NEQ7CiAgICAgICAgZGRSZ2IxNlBvaW50NEQgKnBSZ2IxNnB0NEQ7CiAgICAgICAgZGRS Z2JGbG9hdFBvaW50NEQgKnBSZ2JGbG9hdHB0NEQ7CiAgICAgICAgZGRIc3ZQb2ludDREICpwSHN2 cHQ0RDsKICAgICAgICBkZEhsc1BvaW50NEQgKnBIbHNwdDREOwogICAgICAgIGRkQ2llUG9pbnQ0 RCAqcENpZXB0NEQ7CiAgICAgICAgZGROb3JtYWxQb2ludDREICpwTnB0NEQ7CiAgICAgICAgZGRF ZGdlUG9pbnQ0RCAqcEVwdDREOwogICAgICAgIGRkSW5kZXhOb3JtYWxQb2ludDREICpwSW5kZXhO cHQ0RDsKICAgICAgICBkZFJnYjhOb3JtYWxQb2ludDREICpwUmdiOE5wdDREOwogICAgICAgIGRk UmdiMTZOb3JtYWxQb2ludDREICpwUmdiMTZOcHQ0RDsKICAgICAgICBkZFJnYkZsb2F0Tm9ybWFs UG9pbnQ0RCAqcFJnYkZsb2F0TnB0NEQ7CiAgICAgICAgZGRIc3ZOb3JtYWxQb2ludDREICpwSHN2 TnB0NEQ7CiAgICAgICAgZGRIbHNOb3JtYWxQb2ludDREICpwSGxzTnB0NEQ7CiAgICAgICAgZGRD aWVOb3JtYWxQb2ludDREICpwQ2llTnB0NEQ7CiAgICAgICAgZGRJbmRleEVkZ2VQb2ludDREICpw SW5kZXhFcHQ0RDsKICAgICAgICBkZFJnYjhFZGdlUG9pbnQ0RCAqcFJnYjhFcHQ0RDsKICAgICAg ICBkZFJnYjE2RWRnZVBvaW50NEQgKnBSZ2IxNkVwdDREOwogICAgICAgIGRkUmdiRmxvYXRFZGdl UG9pbnQ0RCAqcFJnYkZsb2F0RXB0NEQ7CiAgICAgICAgZGRIc3ZFZGdlUG9pbnQ0RCAqcEhzdkVw dDREOwogICAgICAgIGRkSGxzRWRnZVBvaW50NEQgKnBIbHNFcHQ0RDsKICAgICAgICBkZENpZUVk Z2VQb2ludDREICpwQ2llRXB0NEQ7CiAgICAgICAgZGROb3JtRWRnZVBvaW50NEQgKnBORXB0NEQ7 CiAgICAgICAgZGRJbmRleE5vcm1FZGdlUG9pbnQ0RCAqcEluZGV4TkVwdDREOwogICAgICAgIGRk UmdiOE5vcm1FZGdlUG9pbnQ0RCAqcFJnYjhORXB0NEQ7CiAgICAgICAgZGRSZ2IxNk5vcm1FZGdl UG9pbnQ0RCAqcFJnYjE2TkVwdDREOwogICAgICAgIGRkUmdiRmxvYXROb3JtRWRnZVBvaW50NEQg KnBSZ2JGbG9hdE5FcHQ0RDsKICAgICAgICBkZEhzdk5vcm1FZGdlUG9pbnQ0RCAqcEhzdk5FcHQ0 RDsKICAgICAgICBkZEhsc05vcm1FZGdlUG9pbnQ0RCAqcEhsc05FcHQ0RDsKICAgICAgICBkZENp ZU5vcm1FZGdlUG9pbnQ0RCAqcENpZU5FcHQ0RDsKICAgICAgICBjaGFyICpwdHI7Cn0gZGRQb2lu dFVuaW9uOwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVUxPTkcgbnVtUG9pbnRz OwogICAgICAgIGRkVUxPTkcgbWF4RGF0YTsKICAgICAgICBkZFBvaW50VW5pb24gcHRzOwp9IGxp c3RvZmRkUG9pbnQ7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVTE9ORyBudW1Q b2ludHM7CiAgICAgICAgZGRVTE9ORyBtYXhEYXRhOwogICAgICAgIGRkQ29vcmQyRCAqcHRzOwp9 IE1hcmtlcmxpc3RvZmRkUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQg b3JkZXI7CiAgICAgICAgZGRGTE9BVCB1TWluOwogICAgICAgIGRkRkxPQVQgdU1heDsKICAgICAg ICBkZFVMT05HIG51bUtub3RzOwogICAgICAgIGRkRkxPQVQgKnBLbm90czsKICAgICAgICBsaXN0 b2ZkZFBvaW50IHBvaW50czsKfSBkZE51cmJDdXJ2ZTsKCnR5cGVkZWYgZW51bSB7CiAgICAgICAg RERfRkFDRVRfTk9ORT0wLAogICAgICAgIEREX0ZBQ0VUX0lOREVYPTEsCiAgICAgICAgRERfRkFD RVRfUkdCOD0yLAogICAgICAgIEREX0ZBQ0VUX1JHQjE2PTMsCiAgICAgICAgRERfRkFDRVRfUkdC RkxPQVQ9NCwKICAgICAgICBERF9GQUNFVF9IU1Y9NSwKICAgICAgICBERF9GQUNFVF9ITFM9NiwK ICAgICAgICBERF9GQUNFVF9DSUU9NywKICAgICAgICBERF9GQUNFVF9OT1JNPTgsCiAgICAgICAg RERfRkFDRVRfSU5ERVhfTk9STT05LAogICAgICAgIEREX0ZBQ0VUX1JHQjhfTk9STT0xMCwKICAg ICAgICBERF9GQUNFVF9SR0IxNl9OT1JNPTExLAogICAgICAgIEREX0ZBQ0VUX1JHQkZMT0FUX05P Uk09MTIsCiAgICAgICAgRERfRkFDRVRfSFNWX05PUk09MTMsCiAgICAgICAgRERfRkFDRVRfSExT X05PUk09MTQsCiAgICAgICAgRERfRkFDRVRfQ0lFX05PUk09MTUKfSBkZEZhY2V0VHlwZTsKIyA5 NzMgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXgzLmgiCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBk ZEluZGV4ZWRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkSW5k ZXhOb3JtYWw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91cjsK ICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZFJnYjhOb3JtYWw7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRSZ2IxNkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3Jt YWw7Cn0gZGRSZ2IxNk5vcm1hbDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFJnYkZsb2F0 Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZFJnYkZsb2F0Tm9y bWFsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKICAgICAg ICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEhzdk5vcm1hbDsKCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICBkZEhsc0NvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRI bHNOb3JtYWw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDaWVDb2xvdXIgY29sb3VyOwog ICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkQ2llTm9ybWFsOwoKdHlwZWRlZiB1bmlvbiB7 CiAgICAgICAgZGRQb2ludGVyIHBOb0ZhY2V0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciAqcEZh Y2V0SW5kZXg7CiAgICAgICAgZGRSZ2I4Q29sb3VyICpwRmFjZXRSZ2I4OwogICAgICAgIGRkUmdi MTZDb2xvdXIgKnBGYWNldFJnYjE2OwogICAgICAgIGRkUmdiRmxvYXRDb2xvdXIgKnBGYWNldFJn YkZsb2F0OwogICAgICAgIGRkSHN2Q29sb3VyICpwRmFjZXRIc3Y7CiAgICAgICAgZGRIbHNDb2xv dXIgKnBGYWNldEhsczsKICAgICAgICBkZENpZUNvbG91ciAqcEZhY2V0Q2llOwogICAgICAgIGRk VmVjdG9yM0QgKnBGYWNldE47CiAgICAgICAgZGRJbmRleE5vcm1hbCAqcEZhY2V0SW5kZXhOOwog ICAgICAgIGRkUmdiOE5vcm1hbCAqcEZhY2V0UmdiOE47CiAgICAgICAgZGRSZ2IxNk5vcm1hbCAq cEZhY2V0UmdiMTZOOwogICAgICAgIGRkUmdiRmxvYXROb3JtYWwgKnBGYWNldFJnYkZsb2F0TjsK ICAgICAgICBkZEhzdk5vcm1hbCAqcEZhY2V0SHN2TjsKICAgICAgICBkZEhsc05vcm1hbCAqcEZh Y2V0SGxzTjsKICAgICAgICBkZENpZU5vcm1hbCAqcEZhY2V0Q2llTjsKfSBkZEZhY2V0VW5pb247 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRGYWNldFR5cGUgdHlwZTsKICAgICAgICBkZFVM T05HIG51bUZhY2V0czsKICAgICAgICBkZFVMT05HIG1heERhdGE7CiAgICAgICAgZGRGYWNldFVu aW9uIGZhY2V0czsKfSBsaXN0b2ZkZEZhY2V0OwoKdHlwZWRlZiBlbnVtIHsKICAgICAgICBERF9W RVJURVg9MCwKICAgICAgICBERF9WRVJURVhfRURHRT0xCn0gZGRWZXJ0SW5kZXhUeXBlOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JUIGluZGV4OwogICAgICAgIGRkVUxPTkcgZWRn ZTsKfSBkZFZlcnRJbmRleEVkZ2U7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRWZXJ0SW5k ZXhUeXBlIHR5cGU7CiAgICAgICAgZGRVTE9ORyBudW1JbmRleDsKICAgICAgICB1bmlvbiB7CiAg ICAgICAgICAgICAgICBkZFVTSE9SVCAqcFZlcnRJbmRleDsKICAgICAgICAgICAgICAgIGRkVmVy dEluZGV4RWRnZSAqcFZlcnRJbmRleEU7CiAgICAgICAgfSBpbmRleDsKfSBsaXN0b2ZkZEluZGV4 OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JUIHVPcmRlcjsKICAgICAgICBkZFVT SE9SVCB2T3JkZXI7CiAgICAgICAgZGRGTE9BVCB1TWluOwogICAgICAgIGRkRkxPQVQgdU1heDsK ICAgICAgICBkZEZMT0FUIHZNaW47CiAgICAgICAgZGRGTE9BVCB2TWF4OwogICAgICAgIGRkRkxP QVQgbXB0czsKICAgICAgICBkZEZMT0FUIG5wdHM7CiAgICAgICAgZGRVTE9ORyBudW1VS25vdHM7 CiAgICAgICAgZGRGTE9BVCAqcFVLbm90OwogICAgICAgIGRkVUxPTkcgbnVtVktub3RzOwogICAg ICAgIGRkRkxPQVQgKnBWS25vdDsKICAgICAgICBsaXN0b2ZkZFBvaW50IHBvaW50czsKfSBkZE51 cmJTdXJmYWNlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQllURSB2aXNpYmlsaXR5Owog ICAgICAgIGRkVVNIT1JUIG9yZGVyOwogICAgICAgIGRkQ3VydmVBcHByb3ggY3VydmVBcHByb3g7 CiAgICAgICAgZGRGTE9BVCB1TWluOwogICAgICAgIGRkRkxPQVQgdU1heDsKICAgICAgICBkZFVM T05HIG51bUtub3RzOwogICAgICAgIGRkRkxPQVQgKnBLbm90czsKICAgICAgICBkZFBvaW50VHlw ZSBwdHR5cGU7CiAgICAgICAgbGlzdG9mZGRQb2ludCBwb2ludHM7Cn0gZGRUcmltQ3VydmU7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVTE9ORyBjb3VudDsKICAgICAgICBkZFRyaW1DdXJ2 ZSAqcFRDOwp9IGxpc3RvZlRyaW1DdXJ2ZTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRT SE9SVCBjb2xvdXJUeXBlOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIGRkSW5kZXhl ZENvbG91ciAqcEluZGV4OwogICAgICAgICAgICAgICAgZGRSZ2I4Q29sb3VyICpwUmdiODsKICAg ICAgICAgICAgICAgIGRkUmdiMTZDb2xvdXIgKnBSZ2IxNjsKICAgICAgICAgICAgICAgIGRkUmdi RmxvYXRDb2xvdXIgKnBSZ2JGbG9hdDsKICAgICAgICAgICAgICAgIGRkSHN2Q29sb3VyICpwSHN2 OwogICAgICAgICAgICAgICAgZGRIbHNDb2xvdXIgKnBIbHM7CiAgICAgICAgICAgICAgICBkZENp ZUNvbG91ciAqcENpZTsKICAgICAgICB9IGNvbG91cjsKfSBsaXN0b2ZDb2xvdXI7CiMgNTYgIi4u L2luY2x1ZGUvbWlSZW5kZXIuaCIgMgojIDEgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXg0LmgiIDEK IyA1NyAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleDQuaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IERyYXdhYmxlUHRyIHBEcmF3YWJsZTsKICAgICAgICBEcmF3YWJsZSBkcmF3YWJsZUlkOwogICAg ICAgIGRpTFVUSGFuZGxlIHBNYXJrZXJMVVQ7CiAgICAgICAgZGlMVVRIYW5kbGUgcFRleHRMVVQ7 CiAgICAgICAgZGlMVVRIYW5kbGUgcExpbmVMVVQ7CiAgICAgICAgZGlMVVRIYW5kbGUgcEludExV VDsKICAgICAgICBkaUxVVEhhbmRsZSBwRWRnZUxVVDsKICAgICAgICBkaUxVVEhhbmRsZSBwQ29s b3VyTFVUOwogICAgICAgIGRpTFVUSGFuZGxlIHBEZXB0aEN1ZUxVVDsKICAgICAgICBkaUxVVEhh bmRsZSBwTGlnaHRMVVQ7CiAgICAgICAgZGlMVVRIYW5kbGUgcENvbG91ckFwcExVVDsKICAgICAg ICBkaUxVVEhhbmRsZSBwUGF0dGVybkxVVDsKICAgICAgICBkaUxVVEhhbmRsZSBwRm9udExVVDsK ICAgICAgICBkaU5TSGFuZGxlIHBIaWdoSW5jbFNldDsKICAgICAgICBkaU5TSGFuZGxlIHBIaWdo RXhjbFNldDsKICAgICAgICBkaU5TSGFuZGxlIHBJbnZpc0luY2xTZXQ7CiAgICAgICAgZGlOU0hh bmRsZSBwSW52aXNFeGNsU2V0OwogICAgICAgIGRkRW51bVR5cGVJbmRleCBidWZmZXJNb2RlOwp9 IGRkV2tzSW5pdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZEJZVEUgdmlld1JlcDsKICAg ICAgICBkZEJZVEUgbWFya2VyQnVuZGxlOwogICAgICAgIGRkQllURSB0ZXh0QnVuZGxlOwogICAg ICAgIGRkQllURSBsaW5lQnVuZGxlOwogICAgICAgIGRkQllURSBpbnRlcmlvckJ1bmRsZTsKICAg ICAgICBkZEJZVEUgZWRnZUJ1bmRsZTsKICAgICAgICBkZEJZVEUgY29sb3VyVGFibGU7CiAgICAg ICAgZGRCWVRFIHBhdHRlcm5UYWJsZTsKICAgICAgICBkZEJZVEUgd2tzVHJhbnNmb3JtOwogICAg ICAgIGRkQllURSBoaWdobGlnaHRGaWx0ZXI7CiAgICAgICAgZGRCWVRFIGludmlzRmlsdGVyOwog ICAgICAgIGRkQllURSBobGhzck1vZGU7CiAgICAgICAgZGRCWVRFIHN0ck1vZGlmeTsKICAgICAg ICBkZEJZVEUgcG9zdFN0cjsKICAgICAgICBkZEJZVEUgdW5wb3N0U3RyOwogICAgICAgIGRkQllU RSBkZWxldGVTdHI7CiAgICAgICAgZGRCWVRFIHJlZk1vZGlmeTsKICAgICAgICBkZEJZVEUgYnVm ZmVyTW9kaWZ5OwogICAgICAgIGRkQllURSBsaWdodFRhYmxlOwogICAgICAgIGRkQllURSBkZXB0 aEN1ZVRhYmxlOwogICAgICAgIGRkQllURSBjb2xvdXJBcHByb3hUYWJsZTsKfSBkZFdrc0R5bmFt aWNzOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRpTlNIYW5kbGUgaW5jbDsKICAgICAgICBk aU5TSGFuZGxlIGV4Y2w7Cn0gZGROU1BhaXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRV TE9ORyBudW1QYWlyczsKICAgICAgICBkZFVMT05HIG1heFBhaXJzOwogICAgICAgIGRkTlNQYWly ICpwUGFpcnM7Cn0gbGlzdG9mTlNQYWlyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVUxP TkcgaWQ7CiAgICAgICAgZGRVU0hPUlQgc3RhdHVzOwogICAgICAgIGRkQ29vcmQzRCBwb3NpdGlv bjsKICAgICAgICBkZEZMT0FUIGRpc3RhbmNlOwogICAgICAgIGRkVVNIT1JUIGNlaWxpbmc7CiAg ICAgICAgZGRCT09MIG1vZGVsQ2xpcEZsYWc7CiAgICAgICAgbGlzdG9mT2JqICpzdGFydFBhdGg7 CiAgICAgICAgbGlzdG9mTlNQYWlyIG5vcm1hbDsKICAgICAgICBsaXN0b2ZOU1BhaXIgaW52ZXJ0 ZWQ7Cn0gZGRTQ1N0cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFRhYmxlSW5kZXggaW5k ZXg7CiAgICAgICAgZGRVU0hPUlQgdW51c2VkOwogICAgICAgIGRkVmlld0VudHJ5IHZpZXc7Cn0g ZGRWaWV3UmVwOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JUIHdoZW5jZTsKICAg ICAgICBkZFVTSE9SVCB1bnVzZWQ7CiAgICAgICAgZGRMT05HIG9mZnNldDsKfSBkZEVsZW1lbnRQ b3M7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRFbGVtZW50UG9zIHBvc2l0aW9uMTsKICAg ICAgICBkZEVsZW1lbnRQb3MgcG9zaXRpb24yOwp9IGRkRWxlbWVudFJhbmdlOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgICAgIGRkU0hPUlQgeDsKICAgICAgICBkZFNIT1JUIHk7Cn0gZGREZXZpY2VD b29yZDJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRGV2aWNlQ29vcmQyRCBwb3NpdGlv bjsKICAgICAgICBkZEZMT0FUIGRpc3RhbmNlOwp9IGRkUENfRENfSGl0Qm94OwoKdHlwZWRlZiBk ZE5wY1N1YnZvbHVtZSBkZFBDX05QQ19IaXRWb2x1bWU7CiMgNTcgIi4uL2luY2x1ZGUvbWlSZW5k ZXIuaCIgMgoKIyAxICIuLi9pbmNsdWRlL21pTlMuaCIgMQojIDU0ICIuLi9pbmNsdWRlL21pTlMu aCIKdHlwZWRlZiBkZFVMT05HIGRkTmFtZVBpZWNlOwp0eXBlZGVmIGRkTmFtZVBpZWNlICpkZE5h bWVQdHI7CiMgMTMwICIuLi9pbmNsdWRlL21pTlMuaCIKdHlwZWRlZiBzdHJ1Y3QgX21pTlNIZWFk ZXIgewoKICAgICAgICBsaXN0b2ZPYmogKndrc1JlZkxpc3Q7CiAgICAgICAgbGlzdG9mT2JqICpy ZW5kUmVmTGlzdDsKICAgICAgICBkZFVMT05HIHJlZkNvdW50OwogICAgICAgIGRkVUxPTkcgbmFt ZUNvdW50OwogICAgICAgIGRkTmFtZVBpZWNlIG5hbWVzWyAoKDI1NSAtIDAgKzEpIC8gKHNpemVv ZihkZE5hbWVQaWVjZSkgKiA4KSkgXTsKICAgICAgICBkZEJPT0wgZnJlZUZsYWc7Cn0gbWlOU0hl YWRlcjsKIyA1OSAiLi4vaW5jbHVkZS9taVJlbmRlci5oIiAyCiMgMSAiLi4vLi4vLi4vaW5jbHVk ZS9QRVhwcm90b3N0LmgiIDEKIyA1OSAiLi4vLi4vLi4vaW5jbHVkZS9QRVhwcm90b3N0LmgiCnR5 cGVkZWYgZmxvYXQgUEVYRkxPQVQ7CgoKdHlwZWRlZiBDQVJEMzIgcGV4QXNmQXR0cmlidXRlOwp0 eXBlZGVmIENBUkQ4IHBleEFzZlZhbHVlOwp0eXBlZGVmIENBUkQzMiBwZXhCaXRtYXNrOwp0eXBl ZGVmIENBUkQxNiBwZXhCaXRtYXNrU2hvcnQ7CnR5cGVkZWYgQ0FSRDE2IHBleENvb3JkVHlwZTsK dHlwZWRlZiBDQVJEMTYgcGV4Q29tcG9zaXRpb247CnR5cGVkZWYgQ0FSRDE2IHBleEN1bGxNb2Rl Owp0eXBlZGVmIEJZVEUgcGV4RHluYW1pY1R5cGU7CnR5cGVkZWYgSU5UMTYgcGV4RW51bVR5cGVJ bmRleDsKdHlwZWRlZiBYSUQgcGV4TG9va3VwVGFibGU7CnR5cGVkZWYgQ0FSRDMyIHBleE5hbWU7 CnR5cGVkZWYgWElEIHBleE5hbWVTZXQ7CnR5cGVkZWYgWElEIHBleFBDOwp0eXBlZGVmIFhJRCBw ZXhGb250Owp0eXBlZGVmIFBFWEZMT0FUIHBleE1hdHJpeFs0XVs0XTsKdHlwZWRlZiBQRVhGTE9B VCBwZXhNYXRyaXgzWDNbM11bM107CnR5cGVkZWYgWElEIHBleFBoaWdzV2tzOwp0eXBlZGVmIFhJ RCBwZXhQaWNrTWVhc3VyZTsKdHlwZWRlZiBYSUQgcGV4UmVuZGVyZXI7CnR5cGVkZWYgWElEIHBl eFNDOwp0eXBlZGVmIFhJRCBwZXhTdHJ1Y3R1cmU7CnR5cGVkZWYgQ0FSRDggcGV4U3dpdGNoOwp0 eXBlZGVmIENBUkQxNiBwZXhUYWJsZUluZGV4Owp0eXBlZGVmIENBUkQxNiBwZXhUYWJsZVR5cGU7 CnR5cGVkZWYgQ0FSRDE2IHBleFRleHRIQWxpZ25tZW50Owp0eXBlZGVmIENBUkQxNiBwZXhUZXh0 VkFsaWdubWVudDsKdHlwZWRlZiBDQVJEMTYgcGV4VHlwZU9yVGFibGVJbmRleDsKdHlwZWRlZiBw ZXhFbnVtVHlwZUluZGV4IHBleENvbG91clR5cGU7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDE2IGxlbmd0aCA7Cgp9IHBleFN0cmluZzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleFN0cnVj dHVyZSBzaWQgOwogICAgUEVYRkxPQVQgcHJpb3JpdHk7Cn0gcGV4U3RydWN0dXJlSW5mbzsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIFBFWEZMT0FUIHg7CiAgICBQRVhGTE9BVCB5Owp9IHBleFZlY3Rv cjJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgUEVYRkxPQVQgeDsKICAgIFBFWEZMT0FUIHk7CiAg ICBQRVhGTE9BVCB6Owp9IHBleFZlY3RvcjNEOwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhG TE9BVCB4OwogICAgUEVYRkxPQVQgeTsKfSBwZXhDb29yZDJEOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgUEVYRkxPQVQgeDsKICAgIFBFWEZMT0FUIHk7CiAgICBQRVhGTE9BVCB6Owp9IHBleENvb3Jk M0Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCB4OwogICAgUEVYRkxPQVQgeTsKICAg IFBFWEZMT0FUIHo7CiAgICBQRVhGTE9BVCB3Owp9IHBleENvb3JkNEQ7CgoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIFBFWEZMT0FUIHJlZDsKICAgIFBFWEZMT0FUIGdyZWVuOwogICAgUEVYRkxPQVQg Ymx1ZTsKfSBwZXhSZ2JGbG9hdENvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIFBFWEZMT0FU IGh1ZTsKICAgIFBFWEZMT0FUIHNhdHVyYXRpb247CiAgICBQRVhGTE9BVCB2YWx1ZTsKfSBwZXhI c3ZDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCBodWU7CiAgICBQRVhGTE9B VCBsaWdodG5lc3M7CiAgICBQRVhGTE9BVCBzYXR1cmF0aW9uOwp9IHBleEhsc0NvbG91cjsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIFBFWEZMT0FUIHg7CiAgICBQRVhGTE9BVCB5OwogICAgUEVYRkxP QVQgejsKfSBwZXhDaWVDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZWQ7CiAg ICBDQVJEOCBncmVlbjsKICAgIENBUkQ4IGJsdWU7CiAgICBDQVJEOCBwYWQ7Cn0gcGV4UmdiOENv bG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQxNiByZWQgOwogICAgQ0FSRDE2IGdyZWVu IDsKICAgIENBUkQxNiBibHVlIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleFJnYjE2Q29sb3VyOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4VGFibGVJbmRleCBpbmRleCA7CiAgICBDQVJEMTYgcGFk IDsKfSBwZXhJbmRleGVkQ29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5pb24gewogICAg ICAgIHBleEluZGV4ZWRDb2xvdXIgaW5kZXhlZDsKICAgICAgICBwZXhSZ2I4Q29sb3VyIHJnYjg7 CiAgICAgICAgcGV4UmdiMTZDb2xvdXIgcmdiMTY7CiAgICAgICAgcGV4UmdiRmxvYXRDb2xvdXIg cmdiRmxvYXQ7CiAgICAgICAgcGV4SHN2Q29sb3VyIGhzdkZsb2F0OwogICAgICAgIHBleEhsc0Nv bG91ciBobHNGbG9hdDsKICAgICAgICBwZXhDaWVDb2xvdXIgY2llRmxvYXQ7CiAgICB9IGZvcm1h dDsKfSBwZXhDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCBmaXJzdDsKICAg IFBFWEZMT0FUIHNlY29uZDsKICAgIFBFWEZMT0FUIHRoaXJkOwp9IHBleEZsb2F0Q29sb3VyOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4Q29sb3VyVHlwZSBjb2xvdXJUeXBlIDsKICAgIENBUkQx NiB1bnVzZWQgOwoKfSBwZXhDb2xvdXJTcGVjaWZpZXI7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RW51bVR5cGVJbmRleCBhcHByb3hNZXRob2QgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBQ RVhGTE9BVCB0b2xlcmFuY2U7Cn0gcGV4Q3VydmVBcHByb3g7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBJTlQxNiB4IDsKICAgIElOVDE2IHkgOwogICAgUEVYRkxPQVQgejsKfSBwZXhEZXZpY2VDb29y ZDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIElOVDE2IHggOwogICAgSU5UMTYgeSA7Cn0gcGV4RGV2 aWNlQ29vcmQyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIElOVDE2IHhtaW4gOwogICAgSU5UMTYg eW1pbiA7CiAgICBJTlQxNiB4bWF4IDsKICAgIElOVDE2IHltYXggOwp9IHBleERldmljZVJlY3Q7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgZWxlbWVudFR5cGUgOwogICAgQ0FSRDE2IGxl bmd0aCA7Cn0gcGV4RWxlbWVudEluZm87Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgd2hl bmNlIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgSU5UMzIgb2Zmc2V0IDsKfSBwZXhFbGVtZW50 UG9zOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudFBvcyBwb3NpdGlvbjE7CiAgICBw ZXhFbGVtZW50UG9zIHBvc2l0aW9uMjsKfSBwZXhFbGVtZW50UmFuZ2U7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBwZXhTdHJ1Y3R1cmUgc3RydWN0dXJlIDsKICAgIENBUkQzMiBvZmZzZXQgOwp9IHBl eEVsZW1lbnRSZWY7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgcGV4Q29vcmQyRCBsb3dlckxl ZnQ7CiAgICAgICAgcGV4Q29vcmQyRCB1cHBlclJpZ2h0OwogICAgICAgIHBleENvb3JkMkQgY29u Y2F0cG9pbnQ7Cn0gcGV4RXh0ZW50SW5mbzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVudW1U eXBlSW5kZXggaW5kZXggOwogICAgcGV4U3RyaW5nIGRlc2NyaXB0b3I7Cn0gcGV4RW51bVR5cGVE ZXNjOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4Q29vcmQzRCBwb2ludDsKICAgIHBleFZlY3Rv cjNEIHZlY3RvcjsKfSBwZXhIYWxmU3BhY2U7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhOYW1l U2V0IGluY2w7CiAgICBwZXhOYW1lU2V0IGV4Y2w7Cn0gcGV4TmFtZVNldFBhaXI7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBwZXhDb29yZDJEIHBvaW50OwogICAgcGV4VmVjdG9yMkQgdmVjdG9yOwp9 IHBleEhhbGZTcGFjZTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDE2IGNvbXBvc2l0aW9u IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4TWF0cml4IG1hdHJpeDsKfSBwZXhMb2NhbFRy YW5zZm9ybTNERGF0YTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQxNiBjb21wb3NpdGlvbiA7 CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleE1hdHJpeDNYMyBtYXRyaXg7Cn0gcGV4TG9jYWxU cmFuc2Zvcm0yRERhdGE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhDb29yZDNEIG1pbnZhbDsK ICAgIHBleENvb3JkM0QgbWF4dmFsOwp9IHBleE5wY1N1YnZvbHVtZTsKIyAzMDAgIi4uLy4uLy4u L2luY2x1ZGUvUEVYcHJvdG9zdC5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhTdHJ1Y3R1cmUg c2lkIDsKICAgIENBUkQzMiBvZmZzZXQgOwogICAgQ0FSRDMyIHBpY2tpZCA7Cn0gcGV4UGlja0Vs ZW1lbnRSZWY7CgoKCgoKCgp0eXBlZGVmIHBleFBpY2tFbGVtZW50UmVmIHBleFBpY2tQYXRoOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4VGV4dFZBbGlnbm1lbnQgdmVydGljYWwgOwogICAgcGV4 VGV4dEhBbGlnbm1lbnQgaG9yaXpvbnRhbCA7Cn0gcGV4VGV4dEFsaWdubWVudERhdGE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBwZXhTd2l0Y2ggdmlzaWJpbGl0eTsKICAgIENBUkQ4IHVudXNlZDsK ICAgIENBUkQxNiBvcmRlciA7CiAgICBwZXhDb29yZFR5cGUgdHlwZSA7CiAgICBJTlQxNiBhcHBy b3hNZXRob2QgOwogICAgUEVYRkxPQVQgdG9sZXJhbmNlOwogICAgUEVYRkxPQVQgdE1pbjsKICAg IFBFWEZMT0FUIHRNYXg7CiAgICBDQVJEMzIgbnVtS25vdHMgOwogICAgQ0FSRDMyIG51bUNvb3Jk IDsKCgp9IHBleFRyaW1DdXJ2ZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IGRlcHRoOwog ICAgQ0FSRDggdW51c2VkOwogICAgQ0FSRDE2IHR5cGUgOwogICAgQ0FSRDMyIHZpc3VhbElEIDsK fSBwZXhSZW5kZXJlclRhcmdldDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVudW1UeXBlSW5k ZXggcGlja1R5cGUgOwogICAgQ0FSRDE2IHVudXNlZDsKCn0gcGV4UGlja1JlY29yZDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIFBFWEZMT0FUIGFtYmllbnQ7CiAgICBQRVhGTE9BVCBkaWZmdXNlOwog ICAgUEVYRkxPQVQgc3BlY3VsYXI7CiAgICBQRVhGTE9BVCBzcGVjdWxhckNvbmM7CiAgICBQRVhG TE9BVCB0cmFuc21pc3Npb247CiAgICBwZXhDb2xvdXJTcGVjaWZpZXIgc3BlY3VsYXJDb2xvdXI7 Cgp9IHBleFJlZmxlY3Rpb25BdHRyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RW51bVR5cGVJ bmRleCBhcHByb3hNZXRob2QgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBQRVhGTE9BVCB1VG9s ZXJhbmNlOwogICAgUEVYRkxPQVQgdlRvbGVyYW5jZTsKfSBwZXhTdXJmYWNlQXBwcm94OwoKCnR5 cGVkZWYgc3RydWN0IHsKICAgIHBleENvb3JkM0QgcG9pbnQ7Cgp9IHBleFZlcnRleDsKCgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBwZXhEZXZpY2VDb29yZCBtaW52YWw7CiAgICBwZXhEZXZpY2VDb29y ZCBtYXh2YWw7CiAgICBwZXhTd2l0Y2ggdXNlRHJhd2FibGU7CiAgICBCWVRFIHBhZFszXTsKfSBw ZXhWaWV3cG9ydDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQxNiBjbGlwRmxhZ3MgOwogICAg Q0FSRDE2IHVudXNlZCA7CiAgICBwZXhOcGNTdWJ2b2x1bWUgY2xpcExpbWl0czsKICAgIHBleE1h dHJpeCBvcmllbnRhdGlvbjsKICAgIHBleE1hdHJpeCBtYXBwaW5nOwp9IHBleFZpZXdFbnRyeTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIHBleFRhYmxlSW5kZXggaW5kZXggOwogICAgQ0FSRDE2IHVu dXNlZCA7CiAgICBwZXhWaWV3RW50cnkgdmlldzsKfSBwZXhWaWV3UmVwOwoKCgoKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQxNiBkZWZpbmFibGVFbnRyaWVzIDsKICAgIENBUkQxNiBudW1QcmVk ZWZpbmVkIDsKICAgIENBUkQxNiBwcmVkZWZpbmVkTWluIDsKICAgIENBUkQxNiBwcmVkZWZpbmVk TWF4IDsKfSBwZXhUYWJsZUluZm87Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbnVtVHlwZUlu ZGV4IGxpbmVUeXBlIDsKICAgIHBleEVudW1UeXBlSW5kZXggcG9seWxpbmVJbnRlcnAgOwogICAg cGV4Q3VydmVBcHByb3ggY3VydmVBcHByb3g7CiAgICBQRVhGTE9BVCBsaW5lV2lkdGg7CiAgICBw ZXhDb2xvdXJTcGVjaWZpZXIgbGluZUNvbG91cjsKCn0gcGV4TGluZUJ1bmRsZUVudHJ5OwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgcGV4RW51bVR5cGVJbmRleCBtYXJrZXJUeXBlIDsKICAgIElOVDE2 IHVudXNlZCA7CiAgICBQRVhGTE9BVCBtYXJrZXJTY2FsZTsKICAgIHBleENvbG91clNwZWNpZmll ciBtYXJrZXJDb2xvdXI7Cgp9IHBleE1hcmtlckJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDE2IHRleHRGb250SW5kZXggOwogICAgQ0FSRDE2IHRleHRQcmVjaXNpb24gOwog ICAgUEVYRkxPQVQgY2hhckV4cGFuc2lvbjsKICAgIFBFWEZMT0FUIGNoYXJTcGFjaW5nOwogICAg cGV4Q29sb3VyU3BlY2lmaWVyIHRleHRDb2xvdXI7Cgp9IHBleFRleHRCdW5kbGVFbnRyeTsKCgoK CgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVudW1UeXBlSW5kZXggaW50ZXJpb3JTdHlsZSA7 CiAgICBJTlQxNiBpbnRlcmlvclN0eWxlSW5kZXggOwogICAgcGV4RW51bVR5cGVJbmRleCByZWZs ZWN0aW9uTW9kZWwgOwogICAgcGV4RW51bVR5cGVJbmRleCBzdXJmYWNlSW50ZXJwIDsKICAgIHBl eEVudW1UeXBlSW5kZXggYmZJbnRlcmlvclN0eWxlIDsKICAgIElOVDE2IGJmSW50ZXJpb3JTdHls ZUluZGV4IDsKICAgIHBleEVudW1UeXBlSW5kZXggYmZSZWZsZWN0aW9uTW9kZWwgOwogICAgcGV4 RW51bVR5cGVJbmRleCBiZlN1cmZhY2VJbnRlcnAgOwogICAgcGV4U3VyZmFjZUFwcHJveCBzdXJm YWNlQXBwcm94OwoKCgoKfSBwZXhJbnRlcmlvckJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4U3dpdGNoIGVkZ2VzOwogICAgQ0FSRDggdW51c2VkOwogICAgcGV4RW51bVR5cGVJ bmRleCBlZGdlVHlwZSA7CiAgICBQRVhGTE9BVCBlZGdlV2lkdGg7CiAgICBwZXhDb2xvdXJTcGVj aWZpZXIgZWRnZUNvbG91cjsKCn0gcGV4RWRnZUJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4Q29sb3VyVHlwZSBjb2xvdXJUeXBlIDsKICAgIENBUkQxNiBudW14IDsKICAgIENB UkQxNiBudW15IDsKICAgIENBUkQxNiB1bnVzZWQgOwoKfSBwZXhQYXR0ZXJuRW50cnk7CgoKCgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMzIgbnVtRm9udHMgOwoKfSBwZXhUZXh0Rm9udEVudHJ5 OwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbnVtVHlwZUluZGV4IGxpZ2h0VHlwZSA7CiAg ICBJTlQxNiB1bnVzZWQgOwogICAgcGV4VmVjdG9yM0QgZGlyZWN0aW9uOwogICAgcGV4Q29vcmQz RCBwb2ludDsKICAgIFBFWEZMT0FUIGNvbmNlbnRyYXRpb247CiAgICBQRVhGTE9BVCBzcHJlYWRB bmdsZTsKICAgIFBFWEZMT0FUIGF0dGVudWF0aW9uMTsKICAgIFBFWEZMT0FUIGF0dGVudWF0aW9u MjsKICAgIHBleENvbG91clNwZWNpZmllciBsaWdodENvbG91cjsKCn0gcGV4TGlnaHRFbnRyeTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIHBleFN3aXRjaCBtb2RlOwogICAgQ0FSRDggdW51c2VkOwog ICAgQ0FSRDE2IHVudXNlZDIgOwogICAgUEVYRkxPQVQgZnJvbnRQbGFuZTsKICAgIFBFWEZMT0FU IGJhY2tQbGFuZTsKICAgIFBFWEZMT0FUIGZyb250U2NhbGluZzsKICAgIFBFWEZMT0FUIGJhY2tT Y2FsaW5nOwogICAgcGV4Q29sb3VyU3BlY2lmaWVyIGRlcHRoQ3VlQ29sb3VyOwoKfSBwZXhEZXB0 aEN1ZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgSU5UMTYgYXBwcm94VHlwZTsKICAgIElO VDE2IGFwcHJveE1vZGVsOwogICAgQ0FSRDE2IG1heDEgOwogICAgQ0FSRDE2IG1heDIgOwogICAg Q0FSRDE2IG1heDMgOwogICAgQ0FSRDggZGl0aGVyOwogICAgQ0FSRDggdW51c2VkOwogICAgQ0FS RDMyIG11bHQxIDsKICAgIENBUkQzMiBtdWx0MiA7CiAgICBDQVJEMzIgbXVsdDMgOwogICAgUEVY RkxPQVQgd2VpZ2h0MTsKICAgIFBFWEZMT0FUIHdlaWdodDI7CiAgICBQRVhGTE9BVCB3ZWlnaHQz OwogICAgQ0FSRDMyIGJhc2VQaXhlbCA7Cn0gcGV4Q29sb3VyQXBwcm94RW50cnk7CgoKCgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBBdG9tIG5hbWUgOwogICAgQ0FSRDMyIHZhbHVlIDsKfSBwZXhGb250 UHJvcDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQzMiBmaXJzdEdseXBoIDsKICAgIENBUkQz MiBsYXN0R2x5cGggOwogICAgQ0FSRDMyIGRlZmF1bHRHbHlwaCA7CiAgICBwZXhTd2l0Y2ggYWxs RXhpc3Q7CiAgICBwZXhTd2l0Y2ggc3Ryb2tlRm9udDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAg Q0FSRDMyIG51bVByb3BzIDsKCn0gcGV4Rm9udEluZm87CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBJTlQxNiBjaGFyYWN0ZXJTZXQgOwogICAgQ0FSRDggY2hhcmFjdGVyU2V0V2lkdGg7CiAgICBD QVJEOCBlbmNvZGluZ1N0YXRlOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBDQVJEMTYgbnVtQ2hh cnM7CgoKfSBwZXhNb25vRW5jb2Rpbmc7CiMgNTYxICIuLi8uLi8uLi9pbmNsdWRlL1BFWHByb3Rv c3QuaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDE2IHBsYWNlbWVudFR5cGUgOwogICAgQ0FS RDE2IHVudXNlZCA7CiAgICBDQVJEMTYgbnVtVWN1cnZlcyA7CiAgICBDQVJEMTYgbnVtVmN1cnZl cyA7Cn0gcGV4UFNDX0lzb3BhcmFtZXRyaWNDdXJ2ZXM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBw ZXhDb29yZDNEIG9yaWdpbjsKICAgIHBleFZlY3RvcjNEIGRpcmVjdGlvbjsKICAgIENBUkQxNiBu dW1iZXJJbnRlcnNlY3Rpb25zIDsKICAgIENBUkQxNiBwYWQgOwoKfSBwZXhQU0NfTGV2ZWxDdXJ2 ZXM7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhEZXZpY2VDb29yZDJEIHBvc2l0aW9uOwog ICAgUEVYRkxPQVQgZGlzdGFuY2U7Cn0gcGV4UERfRENfSGl0Qm94OwoKdHlwZWRlZiBwZXhOcGNT dWJ2b2x1bWUgcGV4UERfTlBDX0hpdFZvbHVtZTsKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHR5cGU7CiAgICBDQVJEOCBlcnJvckNvZGU7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIHJlc291cmNlSWQgOwogICAgQ0FSRDE2IG1pbm9yQ29kZSA7CiAgICBDQVJE OCBtYWpvckNvZGU7CiAgICBDQVJEOCB1bnVzZWQ7CiAgICBDQVJEMTYgb3Bjb2RlIDsKICAgIENB UkQxNiBudW1Db21tYW5kcyA7CiAgICBCWVRFIHBhZFsxNl07Cn0gcGV4T3V0cHV0Q29tbWFuZEVy cm9yOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgSU5UMTYgZnBGb3JtYXQgOwogICAgQ0FSRDgg dW51c2VkWzJdOwogICAgQ0FSRDMyIHJkciA7Cgp9IHBleEVzY2FwZVNldEVjaG9Db2xvdXJEYXRh OwojIDYwICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiIDIKIyAxICIuLi9pbmNsdWRlL21pTFVULmgi IDEKIyA1MyAiLi4vaW5jbHVkZS9taUxVVC5oIgojIDEgIi4uL2luY2x1ZGUvbWlwZXguaCIgMQoj IDU2ICIuLi9pbmNsdWRlL21pcGV4LmgiCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMv WHNlcnZlci9pbmNsdWRlL3Njcm5pbnRzdHIuaCIgMQojIDU1ICIuLi8uLi8uLi8uLi8uLi8uLi9w cm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIgojIDEgIi4uLy4uLy4uLy4uLy4u Ly4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9ic3RvcmUuaCIgMQojIDIxICIuLi8uLi8uLi8u Li8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvYnN0b3JlLmgiCiMgMSAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2JzdG9yZXN0ci5oIiAxCiMgMjYgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9ic3RvcmVzdHIuaCIKdHlw ZWRlZiB2b2lkICgqIEJhY2tpbmdTdG9yZVNhdmVBcmVhc1Byb2NQdHIpKAoKICAgICAgICBQaXht YXBQdHIgLAogICAgICAgIFJlZ2lvblB0ciAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAog ICAgICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBCYWNraW5nU3RvcmVSZXN0b3Jl QXJlYXNQcm9jUHRyKSgKCiAgICAgICAgUGl4bWFwUHRyICwKICAgICAgICBSZWdpb25QdHIgLAog ICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVm IHZvaWQgKCogQmFja2luZ1N0b3JlU2V0Q2xpcG1hc2tSZ25Qcm9jUHRyKSgKCiAgICAgICAgR0NQ dHIgLAogICAgICAgIFJlZ2lvblB0cgoKKTsKCnR5cGVkZWYgUGl4bWFwUHRyICgqIEJhY2tpbmdT dG9yZUdldEltYWdlUGl4bWFwUHJvY1B0cikoCgogICAgICAgIHZvaWQKCik7Cgp0eXBlZGVmIFBp eG1hcFB0ciAoKiBCYWNraW5nU3RvcmVHZXRTcGFuc1BpeG1hcFByb2NQdHIpKAoKICAgICAgICB2 b2lkCgopOwoKdHlwZWRlZiBzdHJ1Y3QgX0JTRnVuY3MgewoKICAgICAgICBCYWNraW5nU3RvcmVT YXZlQXJlYXNQcm9jUHRyIFNhdmVBcmVhczsKICAgICAgICBCYWNraW5nU3RvcmVSZXN0b3JlQXJl YXNQcm9jUHRyIFJlc3RvcmVBcmVhczsKICAgICAgICBCYWNraW5nU3RvcmVTZXRDbGlwbWFza1Jn blByb2NQdHIgU2V0Q2xpcG1hc2tSZ247CiAgICAgICAgQmFja2luZ1N0b3JlR2V0SW1hZ2VQaXht YXBQcm9jUHRyIEdldEltYWdlUGl4bWFwOwogICAgICAgIEJhY2tpbmdTdG9yZUdldFNwYW5zUGl4 bWFwUHJvY1B0ciBHZXRTcGFuc1BpeG1hcDsKCn0gQlNGdW5jUmVjLCAqQlNGdW5jUHRyOwojIDIy ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvYnN0b3JlLmgiIDIK IyA1NiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5pbnRz dHIuaCIgMgojIDEgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9j b2xvcm1hcC5oIiAxCiMgNzYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5j bHVkZS9jb2xvcm1hcC5oIgp0eXBlZGVmIENBUkQzMiBQaXhlbDsKdHlwZWRlZiBzdHJ1Y3QgX0NN RW50cnkgKkVudHJ5UHRyOwoKdHlwZWRlZiBzdHJ1Y3QgX2NvbG9yUmVzb3VyY2UgKmNvbG9yUmVz b3VyY2VQdHI7CgpleHRlcm4gaW50IENyZWF0ZUNvbG9ybWFwKAoKICAgIENvbG9ybWFwICwKICAg IFNjcmVlblB0ciAsCiAgICBWaXN1YWxQdHIgLAogICAgQ29sb3JtYXBQdHIqICwKICAgIGludCAs CiAgICBpbnQKCik7CgpleHRlcm4gaW50IEZyZWVDb2xvcm1hcCgKCiAgICBwb2ludGVyICwKICAg IFhJRAoKKTsKCmV4dGVybiBpbnQgVGVsbExvc3RNYXAoCgogICAgV2luZG93UHRyICwKICAgIHBv aW50ZXIKCik7CgpleHRlcm4gaW50IFRlbGxHYWluZWRNYXAoCgogICAgV2luZG93UHRyICwKICAg IHBvaW50ZXIKCik7CgpleHRlcm4gaW50IENvcHlDb2xvcm1hcEFuZEZyZWUoCgogICAgQ29sb3Jt YXAgLAogICAgQ29sb3JtYXBQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIGludCBBbGxvY0NvbG9y KAoKICAgIENvbG9ybWFwUHRyICwKICAgIHVuc2lnbmVkIHNob3J0KiAsCiAgICB1bnNpZ25lZCBz aG9ydCogLAogICAgdW5zaWduZWQgc2hvcnQqICwKICAgIFBpeGVsKiAsCiAgICBpbnQKCik7Cgpl eHRlcm4gdm9pZCBGYWtlQWxsb2NDb2xvcigKCiAgICBDb2xvcm1hcFB0ciAsCiAgICB4Q29sb3JJ dGVtICoKCik7CgpleHRlcm4gdm9pZCBGYWtlRnJlZUNvbG9yKAoKICAgIENvbG9ybWFwUHRyICwK ICAgIFBpeGVsCgopOwoKdHlwZWRlZiBpbnQgKCpDb2xvckNvbXBhcmVQcm9jUHRyKSgKCiAgICBF bnRyeVB0ciAsCiAgICB4cmdiICoKCik7CgpleHRlcm4gaW50IEZpbmRDb2xvcigKCiAgICBDb2xv cm1hcFB0ciAsCiAgICBFbnRyeVB0ciAsCiAgICBpbnQgLAogICAgeHJnYiogLAogICAgUGl4ZWwq ICwKICAgIGludCAsCiAgICBpbnQgLAogICAgQ29sb3JDb21wYXJlUHJvY1B0cgoKKTsKCmV4dGVy biBpbnQgUXVlcnlDb2xvcnMoCgogICAgQ29sb3JtYXBQdHIgLAogICAgaW50ICwKICAgIFBpeGVs KiAsCiAgICB4cmdiKgoKKTsKCmV4dGVybiBpbnQgRnJlZUNsaWVudFBpeGVscygKCiAgICBwb2lu dGVyICwKICAgIFhJRAoKKTsKCmV4dGVybiBpbnQgQWxsb2NDb2xvckNlbGxzKAoKICAgIGludCAs CiAgICBDb2xvcm1hcFB0ciAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIEJvb2wgLAogICAgUGl4 ZWwqICwKICAgIFBpeGVsKgoKKTsKCmV4dGVybiBpbnQgQWxsb2NDb2xvclBsYW5lcygKCiAgICBp bnQgLAogICAgQ29sb3JtYXBQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAgICBpbnQgLAogICAg aW50ICwKICAgIEJvb2wgLAogICAgUGl4ZWwqICwKICAgIFBpeGVsKiAsCiAgICBQaXhlbCogLAog ICAgUGl4ZWwqCgopOwoKZXh0ZXJuIGludCBGcmVlQ29sb3JzKAoKICAgIENvbG9ybWFwUHRyICwK ICAgIGludCAsCiAgICBpbnQgLAogICAgUGl4ZWwqICwKICAgIFBpeGVsCgopOwoKZXh0ZXJuIGlu dCBTdG9yZUNvbG9ycygKCiAgICBDb2xvcm1hcFB0ciAsCiAgICBpbnQgLAogICAgeENvbG9ySXRl bSoKCik7CgpleHRlcm4gaW50IElzTWFwSW5zdGFsbGVkKAoKICAgIENvbG9ybWFwICwKICAgIFdp bmRvd1B0cgoKKTsKIyA1NyAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNs dWRlL3Njcm5pbnRzdHIuaCIgMgojIDEgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2 ZXIvaW5jbHVkZS9jdXJzb3IuaCIgMQojIDU3ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Y c2VydmVyL2luY2x1ZGUvY3Vyc29yLmgiCnR5cGVkZWYgc3RydWN0IF9DdXJzb3IgKkN1cnNvclB0 cjsKdHlwZWRlZiBzdHJ1Y3QgX0N1cnNvck1ldHJpYyAqQ3Vyc29yTWV0cmljUHRyOwoKZXh0ZXJu IEN1cnNvclB0ciByb290Q3Vyc29yOwoKZXh0ZXJuIGludCBGcmVlQ3Vyc29yKAoKICAgIHBvaW50 ZXIgLAogICAgWElECgopOwoKCgoKCgpleHRlcm4gQ3Vyc29yUHRyIEFsbG9jQ3Vyc29yKAoKICAg IHVuc2lnbmVkIGNoYXIqICwKICAgIHVuc2lnbmVkIGNoYXIqICwKICAgIEN1cnNvck1ldHJpY1B0 ciAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNp Z25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZAoKKTsKCmV4dGVybiBpbnQgQWxsb2NH bHlwaEN1cnNvcigKCiAgICBGb250ICwKICAgIHVuc2lnbmVkIGludCAsCiAgICBGb250ICwKICAg IHVuc2lnbmVkIGludCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25l ZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25lZCAsCiAgICBDdXJz b3JQdHIqICwKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiBDdXJzb3JQdHIgQ3JlYXRlUm9vdEN1 cnNvcigKCiAgICBjaGFyKiAsCiAgICB1bnNpZ25lZCBpbnQKCik7CgpleHRlcm4gaW50IFNlcnZl ckJpdHNGcm9tR2x5cGgoCgogICAgRm9udFB0ciAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgcmVn aXN0ZXIgQ3Vyc29yTWV0cmljUHRyICwKICAgIHVuc2lnbmVkIGNoYXIgKioKCik7CgpleHRlcm4g Qm9vbCBDdXJzb3JNZXRyaWNzRnJvbUdseXBoKAoKICAgIEZvbnRQdHIgLAogICAgdW5zaWduZWQg LAogICAgQ3Vyc29yTWV0cmljUHRyCgopOwoKZXh0ZXJuIHZvaWQgQ2hlY2tDdXJzb3JDb25maW5l bWVudCgKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBOZXdDdXJyZW50U2NyZWVuKAoK ICAgIFNjcmVlblB0ciAsCiAgICBpbnQgLAogICAgaW50CgopOwoKZXh0ZXJuIEJvb2wgUG9pbnRl ckNvbmZpbmVkVG9TY3JlZW4oCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEdldFNwcml0ZVBv c2l0aW9uKAoKICAgIGludCAqICwKICAgIGludCAqCgopOwojIDU4ICIuLi8uLi8uLi8uLi8uLi8u Li9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIiAyCiMgMSAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3ZhbGlkYXRlLmgiIDEKIyAzNSAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3ZhbGlkYXRlLmgiCnR5cGVk ZWYgZW51bSB7IFZUT3RoZXIsIFZUU3RhY2ssIFZUTW92ZSwgVlRVbm1hcCwgVlRNYXAsIFZUQnJv a2VuIH0gVlRLaW5kOwoKCnR5cGVkZWYgdW5pb24gX1ZhbGlkYXRlICpWYWxpZGF0ZVB0cjsKIyA1 OSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5pbnRzdHIu aCIgMgoKCgp0eXBlZGVmIHN0cnVjdCBfUGl4bWFwRm9ybWF0IHsKICAgIHVuc2lnbmVkIGNoYXIg ZGVwdGg7CiAgICB1bnNpZ25lZCBjaGFyIGJpdHNQZXJQaXhlbDsKICAgIHVuc2lnbmVkIGNoYXIg c2NhbmxpbmVQYWQ7CiAgICB9IFBpeG1hcEZvcm1hdFJlYzsKCnR5cGVkZWYgc3RydWN0IF9WaXN1 YWwgewogICAgVmlzdWFsSUQgdmlkOwogICAgc2hvcnQgY2xhc3M7CiAgICBzaG9ydCBiaXRzUGVy UkdCVmFsdWU7CiAgICBzaG9ydCBDb2xvcm1hcEVudHJpZXM7CiAgICBzaG9ydCBucGxhbmVzOwoK CiAgICB1bnNpZ25lZCBsb25nIHJlZE1hc2ssIGdyZWVuTWFzaywgYmx1ZU1hc2s7CiAgICBpbnQg b2Zmc2V0UmVkLCBvZmZzZXRHcmVlbiwgb2Zmc2V0Qmx1ZTsKICB9IFZpc3VhbFJlYzsKCnR5cGVk ZWYgc3RydWN0IF9EZXB0aCB7CiAgICB1bnNpZ25lZCBjaGFyIGRlcHRoOwogICAgc2hvcnQgbnVt VmlkczsKICAgIFZpc3VhbElEICp2aWRzOwogIH0gRGVwdGhSZWM7CiMgOTMgIi4uLy4uLy4uLy4u Ly4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9zY3JuaW50c3RyLmgiCnR5cGVkZWYgQm9v bCAoKiBDbG9zZVNjcmVlblByb2NQdHIpKAoKICAgICAgICBpbnQgLAogICAgICAgIFNjcmVlblB0 cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBRdWVyeUJlc3RTaXplUHJvY1B0cikoCgogICAgICAgIGlu dCAsCiAgICAgICAgdW5zaWduZWQgc2hvcnQgKiAsCiAgICAgICAgdW5zaWduZWQgc2hvcnQgKiAs CiAgICAgICAgU2NyZWVuUHRyCgopOwoKdHlwZWRlZiBCb29sICgqIFNhdmVTY3JlZW5Qcm9jUHRy KSgKCiAgICAgICAgIFNjcmVlblB0ciAsCiAgICAgICAgIGludAoKKTsKCnR5cGVkZWYgdm9pZCAo KiBHZXRJbWFnZVByb2NQdHIpKAoKICAgICAgICBEcmF3YWJsZVB0ciAsCiAgICAgICAgaW50ICwK ICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICB1bnNpZ25l ZCBpbnQgLAogICAgICAgIHVuc2lnbmVkIGxvbmcgLAogICAgICAgIGNoYXIgKgoKKTsKCnR5cGVk ZWYgdm9pZCAoKiBHZXRTcGFuc1Byb2NQdHIpKAoKICAgICAgICBEcmF3YWJsZVB0ciAsCiAgICAg ICAgaW50ICwKICAgICAgICBERFhQb2ludFB0ciAsCiAgICAgICAgaW50KiAsCiAgICAgICAgaW50 ICwKICAgICAgICBjaGFyICoKCik7Cgp0eXBlZGVmIHZvaWQgKCogUG9pbnRlck5vbkludGVyZXN0 Qm94UHJvY1B0cikoCgogICAgICAgIFNjcmVlblB0ciAsCiAgICAgICAgQm94UHRyCgopOwoKdHlw ZWRlZiB2b2lkICgqIFNvdXJjZVZhbGlkYXRlUHJvY1B0cikoCgogICAgICAgIERyYXdhYmxlUHRy ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQK Cik7Cgp0eXBlZGVmIEJvb2wgKCogQ3JlYXRlV2luZG93UHJvY1B0cikoCgogICAgICAgIFdpbmRv d1B0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBEZXN0cm95V2luZG93UHJvY1B0cikoCgogICAgICAg IFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBQb3NpdGlvbldpbmRvd1Byb2NQdHIpKAoK ICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50CgopOwoKdHlwZWRl ZiBCb29sICgqIENoYW5nZVdpbmRvd0F0dHJpYnV0ZXNQcm9jUHRyKSgKCiAgICAgICAgV2luZG93 UHRyICwKICAgICAgICB1bnNpZ25lZCBsb25nCgopOwoKdHlwZWRlZiBCb29sICgqIFJlYWxpemVX aW5kb3dQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyCgopOwoKdHlwZWRlZiBCb29sICgqIFVu cmVhbGl6ZVdpbmRvd1Byb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIHZv aWQgKCogUmVzdGFja1dpbmRvd1Byb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAg IFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYgaW50ICgqIFZhbGlkYXRlVHJlZVByb2NQdHIpKAoKICAg ICAgICBXaW5kb3dQdHIgLAogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgVlRLaW5kCgopOwoK dHlwZWRlZiB2b2lkICgqIFBvc3RWYWxpZGF0ZVRyZWVQcm9jUHRyKSgKCiAgICAgICAgV2luZG93 UHRyICwKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFZUS2luZAoKKTsKCnR5cGVkZWYgdm9p ZCAoKiBXaW5kb3dFeHBvc3VyZXNQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAg ICBSZWdpb25QdHIgLAogICAgICAgIFJlZ2lvblB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBQYWlu dFdpbmRvd1Byb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFJlZ2lvblB0ciAs CiAgICAgICAgaW50CgopOwoKdHlwZWRlZiBQYWludFdpbmRvd1Byb2NQdHIgUGFpbnRXaW5kb3dC YWNrZ3JvdW5kUHJvY1B0cjsKdHlwZWRlZiBQYWludFdpbmRvd1Byb2NQdHIgUGFpbnRXaW5kb3dC b3JkZXJQcm9jUHRyOwoKdHlwZWRlZiB2b2lkICgqIENvcHlXaW5kb3dQcm9jUHRyKSgKCiAgICAg ICAgV2luZG93UHRyICwKICAgICAgICBERFhQb2ludFJlYyAsCiAgICAgICAgUmVnaW9uUHRyCgop OwoKdHlwZWRlZiB2b2lkICgqIENsZWFyVG9CYWNrZ3JvdW5kUHJvY1B0cikoCgogICAgICAgIFdp bmRvd1B0ciAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAg ICAgaW50ICwKICAgICAgICBCb29sCgopOwoKdHlwZWRlZiB2b2lkICgqIENsaXBOb3RpZnlQcm9j UHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludAoKKTsK CnR5cGVkZWYgUGl4bWFwUHRyICgqIENyZWF0ZVBpeG1hcFByb2NQdHIpKAoKICAgICAgICBTY3Jl ZW5QdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQKCik7Cgp0eXBl ZGVmIEJvb2wgKCogRGVzdHJveVBpeG1hcFByb2NQdHIpKAoKICAgICAgICBQaXhtYXBQdHIKCik7 Cgp0eXBlZGVmIHZvaWQgKCogU2F2ZURvb21lZEFyZWFzUHJvY1B0cikoCgogICAgICAgIFdpbmRv d1B0ciAsCiAgICAgICAgUmVnaW9uUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludAoKKTsK CnR5cGVkZWYgUmVnaW9uUHRyICgqIFJlc3RvcmVBcmVhc1Byb2NQdHIpKAoKICAgICAgICBXaW5k b3dQdHIgLAogICAgICAgIFJlZ2lvblB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBFeHBvc2VDb3B5 UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgRHJhd2FibGVQdHIgLAogICAg ICAgIEdDUHRyICwKICAgICAgICBSZWdpb25QdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50 ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgdW5zaWduZWQgbG9uZwoKKTsK CnR5cGVkZWYgUmVnaW9uUHRyICgqIFRyYW5zbGF0ZUJhY2tpbmdTdG9yZVByb2NQdHIpKAoKICAg ICAgICBXaW5kb3dQdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBSZWdp b25QdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50CgopOwoKdHlwZWRlZiBSZWdpb25QdHIg KCogQ2xlYXJCYWNraW5nU3RvcmVQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAg ICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAg IEJvb2wKCik7Cgp0eXBlZGVmIHZvaWQgKCogRHJhd0d1YXJhbnRlZVByb2NQdHIpKAoKICAgICAg ICBXaW5kb3dQdHIgLAogICAgICAgIEdDUHRyICwKICAgICAgICBpbnQKCik7Cgp0eXBlZGVmIEJv b2wgKCogUmVhbGl6ZUZvbnRQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyICwKICAgICAgICBG b250UHRyCgopOwoKdHlwZWRlZiBCb29sICgqIFVucmVhbGl6ZUZvbnRQcm9jUHRyKSgKCiAgICAg ICAgU2NyZWVuUHRyICwKICAgICAgICBGb250UHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIENvbnN0 cmFpbkN1cnNvclByb2NQdHIpKAoKICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIEJveFB0cgoK KTsKCnR5cGVkZWYgdm9pZCAoKiBDdXJzb3JMaW1pdHNQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVu UHRyICwKICAgICAgICBDdXJzb3JQdHIgLAogICAgICAgIEJveFB0ciAsCiAgICAgICAgQm94UHRy CgopOwoKdHlwZWRlZiBCb29sICgqIERpc3BsYXlDdXJzb3JQcm9jUHRyKSgKCiAgICAgICAgU2Ny ZWVuUHRyICwKICAgICAgICBDdXJzb3JQdHIKCik7Cgp0eXBlZGVmIEJvb2wgKCogUmVhbGl6ZUN1 cnNvclByb2NQdHIpKAoKICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIEN1cnNvclB0cgoKKTsK CnR5cGVkZWYgQm9vbCAoKiBVbnJlYWxpemVDdXJzb3JQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVu UHRyICwKICAgICAgICBDdXJzb3JQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogUmVjb2xvckN1cnNv clByb2NQdHIpKAoKICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIEN1cnNvclB0ciAsCiAgICAg ICAgQm9vbAoKKTsKCnR5cGVkZWYgQm9vbCAoKiBTZXRDdXJzb3JQb3NpdGlvblByb2NQdHIpKAoK ICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBC b29sCgopOwoKdHlwZWRlZiBCb29sICgqIENyZWF0ZUdDUHJvY1B0cikoCgogICAgICAgIEdDUHRy CgopOwoKdHlwZWRlZiBCb29sICgqIENyZWF0ZUNvbG9ybWFwUHJvY1B0cikoCgogICAgICAgIENv bG9ybWFwUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIERlc3Ryb3lDb2xvcm1hcFByb2NQdHIpKAoK ICAgICAgICBDb2xvcm1hcFB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBJbnN0YWxsQ29sb3JtYXBQ cm9jUHRyKSgKCiAgICAgICAgQ29sb3JtYXBQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogVW5pbnN0 YWxsQ29sb3JtYXBQcm9jUHRyKSgKCiAgICAgICAgQ29sb3JtYXBQdHIKCik7Cgp0eXBlZGVmIGlu dCAoKiBMaXN0SW5zdGFsbGVkQ29sb3JtYXBzUHJvY1B0cikgKAoKICAgICAgICBTY3JlZW5QdHIg LAogICAgICAgIFhJRCoKCik7Cgp0eXBlZGVmIHZvaWQgKCogU3RvcmVDb2xvcnNQcm9jUHRyKSgK CiAgICAgICAgQ29sb3JtYXBQdHIgLAogICAgICAgIGludCAsCiAgICAgICAgeENvbG9ySXRlbSAq CgopOwoKdHlwZWRlZiB2b2lkICgqIFJlc29sdmVDb2xvclByb2NQdHIpKAoKICAgICAgICB1bnNp Z25lZCBzaG9ydCogLAogICAgICAgIHVuc2lnbmVkIHNob3J0KiAsCiAgICAgICAgdW5zaWduZWQg c2hvcnQqICwKICAgICAgICBWaXN1YWxQdHIKCik7CiMgNjA3ICIuLi8uLi8uLi8uLi8uLi8uLi9w cm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIgp0eXBlZGVmIFJlZ2lvblB0ciAo KiBCaXRtYXBUb1JlZ2lvblByb2NQdHIpKAoKICAgICAgICBQaXhtYXBQdHIKCik7CiMgNjI1ICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIgp0 eXBlZGVmIHZvaWQgKCogU2VuZEdyYXBoaWNzRXhwb3NlUHJvY1B0cikoCgogICAgICAgIENsaWVu dFB0ciAsCiAgICAgICAgUmVnaW9uUHRyICwKICAgICAgICBYSUQgLAogICAgICAgIGludCAsCiAg ICAgICAgaW50CgopOwoKdHlwZWRlZiB2b2lkICgqIFNjcmVlbkJsb2NrSGFuZGxlclByb2NQdHIp KAoKICAgICAgICBpbnQgLAogICAgICAgIHBvaW50ZXIgLAogICAgICAgIHBvaW50ZXIgLAogICAg ICAgIHBvaW50ZXIKCik7Cgp0eXBlZGVmIHZvaWQgKCogU2NyZWVuV2FrZXVwSGFuZGxlclByb2NQ dHIpKAoKICAgICAgICAgaW50ICwKICAgICAgICAgcG9pbnRlciAsCiAgICAgICAgIHVuc2lnbmVk IGxvbmcgLAogICAgICAgICBwb2ludGVyCgopOwoKdHlwZWRlZiBCb29sICgqIENyZWF0ZVNjcmVl blJlc291cmNlc1Byb2NQdHIpKAoKICAgICAgICBTY3JlZW5QdHIKCik7Cgp0eXBlZGVmIEJvb2wg KCogTW9kaWZ5UGl4bWFwSGVhZGVyUHJvY1B0cikoCgogICAgICAgIFBpeG1hcFB0ciAsCiAgICAg ICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAg ICBpbnQgLAogICAgICAgIHBvaW50ZXIKCik7Cgp0eXBlZGVmIFBpeG1hcFB0ciAoKiBHZXRXaW5k b3dQaXhtYXBQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyCgopOwoKdHlwZWRlZiB2b2lkICgq IFNldFdpbmRvd1BpeG1hcFByb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFBp eG1hcFB0cgoKKTsKCnR5cGVkZWYgUGl4bWFwUHRyICgqIEdldFNjcmVlblBpeG1hcFByb2NQdHIp KAoKICAgICAgICBTY3JlZW5QdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogU2V0U2NyZWVuUGl4bWFw UHJvY1B0cikoCgogICAgICAgIFBpeG1hcFB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBNYXJrV2lu ZG93UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBNYXJr T3ZlcmxhcHBlZFdpbmRvd3NQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBX aW5kb3dQdHIgLAogICAgICAgIFdpbmRvd1B0ciAqCgopOwoKdHlwZWRlZiBCb29sICgqIENoYW5n ZVNhdmVVbmRlclByb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFdpbmRvd1B0 cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBQb3N0Q2hhbmdlU2F2ZVVuZGVyUHJvY1B0cikoCgogICAg ICAgIFdpbmRvd1B0ciAsCiAgICAgICAgV2luZG93UHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIE1v dmVXaW5kb3dQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBpbnQgLAogICAg ICAgIGludCAsCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBWVEtpbmQKCik7Cgp0eXBlZGVm IHZvaWQgKCogUmVzaXplV2luZG93UHJvY1B0cikoCgogICAgV2luZG93UHRyICwKICAgIGludCAs CiAgICBpbnQgLAogICAgdW5zaWduZWQgaW50ICwKICAgIHVuc2lnbmVkIGludCAsCiAgICBXaW5k b3dQdHIKCik7Cgp0eXBlZGVmIFdpbmRvd1B0ciAoKiBHZXRMYXllcldpbmRvd1Byb2NQdHIpKAoK ICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBIYW5kbGVFeHBvc3VyZXNQcm9jUHRy KSgKCiAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogUmVwYXJlbnRXaW5kb3dQcm9j UHRyKSgKCiAgICBXaW5kb3dQdHIgLAogICAgV2luZG93UHRyCgopOwoKCnR5cGVkZWYgdm9pZCAo KiBTZXRTaGFwZVByb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIKCik7CgoKdHlwZWRlZiB2b2lk ICgqIENoYW5nZUJvcmRlcldpZHRoUHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAg ICAgdW5zaWduZWQgaW50CgopOwoKdHlwZWRlZiB2b2lkICgqIE1hcmtVbnJlYWxpemVkV2luZG93 UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgV2luZG93UHRyICwKICAgICAg ICBCb29sCgopOwoKdHlwZWRlZiBzdHJ1Y3QgX1NjcmVlbiB7CiAgICBpbnQgbXlOdW07CiAgICBB VE9NIGlkOwogICAgc2hvcnQgd2lkdGgsIGhlaWdodDsKICAgIHNob3J0IG1tV2lkdGgsIG1tSGVp Z2h0OwogICAgc2hvcnQgbnVtRGVwdGhzOwogICAgdW5zaWduZWQgY2hhciByb290RGVwdGg7CiAg ICBEZXB0aFB0ciBhbGxvd2VkRGVwdGhzOwogICAgdW5zaWduZWQgbG9uZyByb290VmlzdWFsOwog ICAgdW5zaWduZWQgbG9uZyBkZWZDb2xvcm1hcDsKICAgIHNob3J0IG1pbkluc3RhbGxlZENtYXBz LCBtYXhJbnN0YWxsZWRDbWFwczsKICAgIGNoYXIgYmFja2luZ1N0b3JlU3VwcG9ydCwgc2F2ZVVu ZGVyU3VwcG9ydDsKICAgIHVuc2lnbmVkIGxvbmcgd2hpdGVQaXhlbCwgYmxhY2tQaXhlbDsKICAg IHVuc2lnbmVkIGxvbmcgcmdmOwogICAgR0NQdHIgR0NwZXJEZXB0aFs4ICsxXTsKCgoKCgoKCiAg ICBQaXhtYXBQdHIgUGl4bWFwUGVyRGVwdGhbMV07CiAgICBwb2ludGVyIGRldlByaXZhdGU7CiAg ICBzaG9ydCBudW1WaXN1YWxzOwogICAgVmlzdWFsUHRyIHZpc3VhbHM7CiAgICBpbnQgV2luZG93 UHJpdmF0ZUxlbjsKICAgIHVuc2lnbmVkICpXaW5kb3dQcml2YXRlU2l6ZXM7CiAgICB1bnNpZ25l ZCB0b3RhbFdpbmRvd1NpemU7CiAgICBpbnQgR0NQcml2YXRlTGVuOwogICAgdW5zaWduZWQgKkdD UHJpdmF0ZVNpemVzOwogICAgdW5zaWduZWQgdG90YWxHQ1NpemU7CgoKCiAgICBDbG9zZVNjcmVl blByb2NQdHIgQ2xvc2VTY3JlZW47CiAgICBRdWVyeUJlc3RTaXplUHJvY1B0ciBRdWVyeUJlc3RT aXplOwogICAgU2F2ZVNjcmVlblByb2NQdHIgU2F2ZVNjcmVlbjsKICAgIEdldEltYWdlUHJvY1B0 ciBHZXRJbWFnZTsKICAgIEdldFNwYW5zUHJvY1B0ciBHZXRTcGFuczsKICAgIFBvaW50ZXJOb25J bnRlcmVzdEJveFByb2NQdHIgUG9pbnRlck5vbkludGVyZXN0Qm94OwogICAgU291cmNlVmFsaWRh dGVQcm9jUHRyIFNvdXJjZVZhbGlkYXRlOwoKCgogICAgQ3JlYXRlV2luZG93UHJvY1B0ciBDcmVh dGVXaW5kb3c7CiAgICBEZXN0cm95V2luZG93UHJvY1B0ciBEZXN0cm95V2luZG93OwogICAgUG9z aXRpb25XaW5kb3dQcm9jUHRyIFBvc2l0aW9uV2luZG93OwogICAgQ2hhbmdlV2luZG93QXR0cmli dXRlc1Byb2NQdHIgQ2hhbmdlV2luZG93QXR0cmlidXRlczsKICAgIFJlYWxpemVXaW5kb3dQcm9j UHRyIFJlYWxpemVXaW5kb3c7CiAgICBVbnJlYWxpemVXaW5kb3dQcm9jUHRyIFVucmVhbGl6ZVdp bmRvdzsKICAgIFZhbGlkYXRlVHJlZVByb2NQdHIgVmFsaWRhdGVUcmVlOwogICAgUG9zdFZhbGlk YXRlVHJlZVByb2NQdHIgUG9zdFZhbGlkYXRlVHJlZTsKICAgIFdpbmRvd0V4cG9zdXJlc1Byb2NQ dHIgV2luZG93RXhwb3N1cmVzOwogICAgUGFpbnRXaW5kb3dCYWNrZ3JvdW5kUHJvY1B0ciBQYWlu dFdpbmRvd0JhY2tncm91bmQ7CiAgICBQYWludFdpbmRvd0JvcmRlclByb2NQdHIgUGFpbnRXaW5k b3dCb3JkZXI7CiAgICBDb3B5V2luZG93UHJvY1B0ciBDb3B5V2luZG93OwogICAgQ2xlYXJUb0Jh Y2tncm91bmRQcm9jUHRyIENsZWFyVG9CYWNrZ3JvdW5kOwogICAgQ2xpcE5vdGlmeVByb2NQdHIg Q2xpcE5vdGlmeTsKICAgIFJlc3RhY2tXaW5kb3dQcm9jUHRyIFJlc3RhY2tXaW5kb3c7CgoKCiAg ICBDcmVhdGVQaXhtYXBQcm9jUHRyIENyZWF0ZVBpeG1hcDsKICAgIERlc3Ryb3lQaXhtYXBQcm9j UHRyIERlc3Ryb3lQaXhtYXA7CgoKCiAgICBTYXZlRG9vbWVkQXJlYXNQcm9jUHRyIFNhdmVEb29t ZWRBcmVhczsKICAgIFJlc3RvcmVBcmVhc1Byb2NQdHIgUmVzdG9yZUFyZWFzOwogICAgRXhwb3Nl Q29weVByb2NQdHIgRXhwb3NlQ29weTsKICAgIFRyYW5zbGF0ZUJhY2tpbmdTdG9yZVByb2NQdHIg VHJhbnNsYXRlQmFja2luZ1N0b3JlOwogICAgQ2xlYXJCYWNraW5nU3RvcmVQcm9jUHRyIENsZWFy QmFja2luZ1N0b3JlOwogICAgRHJhd0d1YXJhbnRlZVByb2NQdHIgRHJhd0d1YXJhbnRlZTsKCgoK CiAgICBCU0Z1bmNSZWMgQmFja2luZ1N0b3JlRnVuY3M7CgoKCiAgICBSZWFsaXplRm9udFByb2NQ dHIgUmVhbGl6ZUZvbnQ7CiAgICBVbnJlYWxpemVGb250UHJvY1B0ciBVbnJlYWxpemVGb250OwoK CgogICAgQ29uc3RyYWluQ3Vyc29yUHJvY1B0ciBDb25zdHJhaW5DdXJzb3I7CiAgICBDdXJzb3JM aW1pdHNQcm9jUHRyIEN1cnNvckxpbWl0czsKICAgIERpc3BsYXlDdXJzb3JQcm9jUHRyIERpc3Bs YXlDdXJzb3I7CiAgICBSZWFsaXplQ3Vyc29yUHJvY1B0ciBSZWFsaXplQ3Vyc29yOwogICAgVW5y ZWFsaXplQ3Vyc29yUHJvY1B0ciBVbnJlYWxpemVDdXJzb3I7CiAgICBSZWNvbG9yQ3Vyc29yUHJv Y1B0ciBSZWNvbG9yQ3Vyc29yOwogICAgU2V0Q3Vyc29yUG9zaXRpb25Qcm9jUHRyIFNldEN1cnNv clBvc2l0aW9uOwoKCgogICAgQ3JlYXRlR0NQcm9jUHRyIENyZWF0ZUdDOwoKCgogICAgQ3JlYXRl Q29sb3JtYXBQcm9jUHRyIENyZWF0ZUNvbG9ybWFwOwogICAgRGVzdHJveUNvbG9ybWFwUHJvY1B0 ciBEZXN0cm95Q29sb3JtYXA7CiAgICBJbnN0YWxsQ29sb3JtYXBQcm9jUHRyIEluc3RhbGxDb2xv cm1hcDsKICAgIFVuaW5zdGFsbENvbG9ybWFwUHJvY1B0ciBVbmluc3RhbGxDb2xvcm1hcDsKICAg IExpc3RJbnN0YWxsZWRDb2xvcm1hcHNQcm9jUHRyIExpc3RJbnN0YWxsZWRDb2xvcm1hcHM7CiAg ICBTdG9yZUNvbG9yc1Byb2NQdHIgU3RvcmVDb2xvcnM7CiAgICBSZXNvbHZlQ29sb3JQcm9jUHRy IFJlc29sdmVDb2xvcjsKIyA5MjAgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIv aW5jbHVkZS9zY3JuaW50c3RyLmgiCiAgICBCaXRtYXBUb1JlZ2lvblByb2NQdHIgQml0bWFwVG9S ZWdpb247CgoKCiAgICBTZW5kR3JhcGhpY3NFeHBvc2VQcm9jUHRyIFNlbmRHcmFwaGljc0V4cG9z ZTsKCgoKICAgIFNjcmVlbkJsb2NrSGFuZGxlclByb2NQdHIgQmxvY2tIYW5kbGVyOwogICAgU2Ny ZWVuV2FrZXVwSGFuZGxlclByb2NQdHIgV2FrZXVwSGFuZGxlcjsKCiAgICBwb2ludGVyIGJsb2Nr RGF0YTsKICAgIHBvaW50ZXIgd2FrZXVwRGF0YTsKCgogICAgRGV2VW5pb24gKmRldlByaXZhdGVz OwoKICAgIENyZWF0ZVNjcmVlblJlc291cmNlc1Byb2NQdHIgQ3JlYXRlU2NyZWVuUmVzb3VyY2Vz OwogICAgTW9kaWZ5UGl4bWFwSGVhZGVyUHJvY1B0ciBNb2RpZnlQaXhtYXBIZWFkZXI7CgogICAg R2V0V2luZG93UGl4bWFwUHJvY1B0ciBHZXRXaW5kb3dQaXhtYXA7CiAgICBTZXRXaW5kb3dQaXht YXBQcm9jUHRyIFNldFdpbmRvd1BpeG1hcDsKICAgIEdldFNjcmVlblBpeG1hcFByb2NQdHIgR2V0 U2NyZWVuUGl4bWFwOwogICAgU2V0U2NyZWVuUGl4bWFwUHJvY1B0ciBTZXRTY3JlZW5QaXhtYXA7 CgogICAgUGl4bWFwUHRyIHBTY3JhdGNoUGl4bWFwOwoKCiAgICBpbnQgUGl4bWFwUHJpdmF0ZUxl bjsKICAgIHVuc2lnbmVkIGludCAqUGl4bWFwUHJpdmF0ZVNpemVzOwogICAgdW5zaWduZWQgaW50 IHRvdGFsUGl4bWFwU2l6ZTsKCgogICAgTWFya1dpbmRvd1Byb2NQdHIgTWFya1dpbmRvdzsKICAg IE1hcmtPdmVybGFwcGVkV2luZG93c1Byb2NQdHIgTWFya092ZXJsYXBwZWRXaW5kb3dzOwogICAg Q2hhbmdlU2F2ZVVuZGVyUHJvY1B0ciBDaGFuZ2VTYXZlVW5kZXI7CiAgICBQb3N0Q2hhbmdlU2F2 ZVVuZGVyUHJvY1B0ciBQb3N0Q2hhbmdlU2F2ZVVuZGVyOwogICAgTW92ZVdpbmRvd1Byb2NQdHIg TW92ZVdpbmRvdzsKICAgIFJlc2l6ZVdpbmRvd1Byb2NQdHIgUmVzaXplV2luZG93OwogICAgR2V0 TGF5ZXJXaW5kb3dQcm9jUHRyIEdldExheWVyV2luZG93OwogICAgSGFuZGxlRXhwb3N1cmVzUHJv Y1B0ciBIYW5kbGVFeHBvc3VyZXM7CiAgICBSZXBhcmVudFdpbmRvd1Byb2NQdHIgUmVwYXJlbnRX aW5kb3c7CgoKICAgIFNldFNoYXBlUHJvY1B0ciBTZXRTaGFwZTsKCgogICAgQ2hhbmdlQm9yZGVy V2lkdGhQcm9jUHRyIENoYW5nZUJvcmRlcldpZHRoOwogICAgTWFya1VucmVhbGl6ZWRXaW5kb3dQ cm9jUHRyIE1hcmtVbnJlYWxpemVkV2luZG93OwoKfSBTY3JlZW5SZWM7Cgp0eXBlZGVmIHN0cnVj dCBfU2NyZWVuSW5mbyB7CiAgICBpbnQgaW1hZ2VCeXRlT3JkZXI7CiAgICBpbnQgYml0bWFwU2Nh bmxpbmVVbml0OwogICAgaW50IGJpdG1hcFNjYW5saW5lUGFkOwogICAgaW50IGJpdG1hcEJpdE9y ZGVyOwogICAgaW50IG51bVBpeG1hcEZvcm1hdHM7CiAgICBQaXhtYXBGb3JtYXRSZWMKICAgICAg ICAgICAgICAgIGZvcm1hdHNbOF07CiAgICBpbnQgYXJyYXlTaXplOwogICAgaW50IG51bVNjcmVl bnM7CiAgICBTY3JlZW5QdHIgc2NyZWVuc1sxNl07CiAgICBpbnQgbnVtVmlkZW9TY3JlZW5zOwp9 IFNjcmVlbkluZm87CgpleHRlcm4gU2NyZWVuSW5mbyBzY3JlZW5JbmZvOwoKZXh0ZXJuIHZvaWQg SW5pdE91dHB1dCgKCiAgICBTY3JlZW5JbmZvICogLAogICAgaW50ICwKICAgIGNoYXIgKioKCik7 CiMgNTcgIi4uL2luY2x1ZGUvbWlwZXguaCIgMgojIDg3ICIuLi9pbmNsdWRlL21pcGV4LmgiCnR5 cGVkZWYgdm9pZCAoKmRlc3Ryb3lUYWJsZVR5cGUpKCk7CiMgMTQ0ICIuLi9pbmNsdWRlL21pcGV4 LmgiCmV4dGVybiBpbnQgUGV4RXJyb3JCYXNlOwojIDE2MyAiLi4vaW5jbHVkZS9taXBleC5oIgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGluZGV4OwogICAgICAgIGNo YXIgKm5hbWU7Cn0gbWlFbnVtVHlwZTsKCnR5cGVkZWYgZW51bSB7CiAgICAgICAgVklFV19SRVBf RFlOQU1JQz0wLAogICAgICAgIE1BUktFUl9CVU5ETEVfRFlOQU1JQz0xLAogICAgICAgIFRFWFRf QlVORExFX0RZTkFNSUM9MiwKICAgICAgICBMSU5FX0JVTkRMRV9EWU5BTUlDPTMsCiAgICAgICAg SU5URVJJT1JfQlVORExFX0RZTkFNSUM9NCwKICAgICAgICBFREdFX0JVTkRMRV9EWU5BTUlDPTUs CiAgICAgICAgQ09MT1VSX1RBQkxFX0RZTkFNSUM9NiwKICAgICAgICBQQVRURVJOX1RBQkxFX0RZ TkFNSUM9NywKICAgICAgICBXS1NfVFJBTlNGT1JNX0RZTkFNSUM9OCwKICAgICAgICBISUdIX0ZJ TFRFUl9EWU5BTUlDPTksCiAgICAgICAgSU5WSVNfRklMVEVSX0RZTkFNSUM9MTAsCiAgICAgICAg SExIU1JfTU9ERV9EWU5BTUlDPTExLAogICAgICAgIFNUUl9NT0RJRllfRFlOQU1JQz0xMiwKICAg ICAgICBQT1NUX1NUUl9EWU5BTUlDPTEzLAogICAgICAgIFVOUE9TVF9TVFJfRFlOQU1JQz0xNCwK ICAgICAgICBERUxFVEVfU1RSX0RZTkFNSUM9MTUsCiAgICAgICAgUkVGX01PRElGWV9EWU5BTUlD PTE2LAogICAgICAgIEJVRkZFUl9NT0RJRllfRFlOQU1JQz0xNywKICAgICAgICBMSUdIVF9UQUJM RV9EWU5BTUlDPTE4LAogICAgICAgIERFUFRIX0NVRV9EWU5BTUlDPTE5LAogICAgICAgIENPTE9V Ul9BUFBST1hfVEFCTEVfRFlOQU1JQz0yMCwKICAgICAgICBNQVhfRFlOQU1JQyA9IDIxCn0gZGRE eW5hbWljOwojIDU0ICIuLi9pbmNsdWRlL21pTFVULmgiIDIKCgoKCnR5cGVkZWYgc3RydWN0IHsK ICAgIGRkRW51bVR5cGVJbmRleCBsaW5lVHlwZTsKICAgIGRkRW51bVR5cGVJbmRleCBwb2x5bGlu ZUludGVycDsKICAgIGRkQ3VydmVBcHByb3ggY3VydmVBcHByb3g7CiAgICBkZEZMT0FUIGxpbmVX aWR0aDsKICAgIGRkQ29sb3VyU3BlY2lmaWVyIGxpbmVDb2xvdXI7Cn0gZGRMaW5lQnVuZGxlRW50 cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEVudW1UeXBlSW5kZXggbWFya2VyVHlwZTsKICAg IGRkU0hPUlQgdW51c2VkOwogICAgZGRGTE9BVCBtYXJrZXJTY2FsZTsKICAgIGRkQ29sb3VyU3Bl Y2lmaWVyIG1hcmtlckNvbG91cjsKfSBkZE1hcmtlckJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgZGRVU0hPUlQgdGV4dEZvbnRJbmRleDsKICAgIGRkVVNIT1JUIHRleHRQcmVjaXNp b247CiAgICBkZEZMT0FUIGNoYXJFeHBhbnNpb247CiAgICBkZEZMT0FUIGNoYXJTcGFjaW5nOwog ICAgZGRDb2xvdXJTcGVjaWZpZXIgdGV4dENvbG91cjsKfSBkZFRleHRCdW5kbGVFbnRyeTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIGRkRW51bVR5cGVJbmRleCBpbnRlcmlvclN0eWxlOwogICAgZGRT SE9SVCBpbnRlcmlvclN0eWxlSW5kZXg7CiAgICBkZEVudW1UeXBlSW5kZXggcmVmbGVjdGlvbk1v ZGVsOwogICAgZGRFbnVtVHlwZUluZGV4IHN1cmZhY2VJbnRlcnA7CiAgICBkZEVudW1UeXBlSW5k ZXggYmZJbnRlcmlvclN0eWxlOwogICAgZGRTSE9SVCBiZkludGVyaW9yU3R5bGVJbmRleDsKICAg IGRkRW51bVR5cGVJbmRleCBiZlJlZmxlY3Rpb25Nb2RlbDsKICAgIGRkRW51bVR5cGVJbmRleCBi ZlN1cmZhY2VJbnRlcnA7CiAgICBkZFN1cmZhY2VBcHByb3ggc3VyZmFjZUFwcHJveDsKICAgIGRk Q29sb3VyU3BlY2lmaWVyIHN1cmZhY2VDb2xvdXI7CiAgICBkZFJlZmxlY3Rpb25BdHRyIHJlZmxl Y3Rpb25BdHRyOwogICAgZGRDb2xvdXJTcGVjaWZpZXIgYmZTdXJmYWNlQ29sb3VyOwogICAgZGRS ZWZsZWN0aW9uQXR0ciBiZlJlZmxlY3Rpb25BdHRyOwp9IGRkSW50ZXJpb3JCdW5kbGVFbnRyeTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIGRkU3dpdGNoIGVkZ2VzOwogICAgZGRVQ0hBUiB1bnVzZWQ7 CiAgICBkZEVudW1UeXBlSW5kZXggZWRnZVR5cGU7CiAgICBkZEZMT0FUIGVkZ2VXaWR0aDsKICAg IGRkQ29sb3VyU3BlY2lmaWVyIGVkZ2VDb2xvdXI7Cn0gZGRFZGdlQnVuZGxlRW50cnk7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBkZFNIT1JUIGNvbG91clR5cGU7CiAgICBkZFVTSE9SVCBudW14Owog ICAgZGRVU0hPUlQgbnVteTsKICAgIGRkVVNIT1JUIHVudXNlZDsKCiAgICB1bmlvbiB7CiAgICAg ICAgZGRJbmRleGVkQ29sb3VyICppbmRleGVkOwogICAgICAgIGRkUmdiOENvbG91ciAqcmdiODsK ICAgICAgICBkZFJnYjE2Q29sb3VyICpyZ2IxNjsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyICpy Z2JGbG9hdDsKICAgICAgICBkZEhzdkNvbG91ciAqaHN2RmxvYXQ7CiAgICAgICAgZGRIbHNDb2xv dXIgKmhsc0Zsb2F0OwogICAgICAgIGRkQ2llQ29sb3VyICpjaWVGbG9hdDsKICAgfSBjb2xvdXJz Owp9IGRkUGF0dGVybkVudHJ5OwojIDEyOSAiLi4vaW5jbHVkZS9taUxVVC5oIgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBkZFVMT05HIG51bUZvbnRzOwogICAgZGlGb250SGFuZGxlIGZvbnRzWzE2XTsK fSBkZFRleHRGb250RW50cnk7CgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRW51bVR5cGVJbmRl eCBsaWdodFR5cGU7CiAgICBkZFNIT1JUIHVudXNlZDsKICAgIGRkVmVjdG9yM0QgZGlyZWN0aW9u OwogICAgZGRDb29yZDNEIHBvaW50OwogICAgZGRGTE9BVCBjb25jZW50cmF0aW9uOwogICAgZGRG TE9BVCBzcHJlYWRBbmdsZTsKICAgIGRkRkxPQVQgYXR0ZW51YXRpb24xOwogICAgZGRGTE9BVCBh dHRlbnVhdGlvbjI7CiAgICBkZENvbG91clNwZWNpZmllciBsaWdodENvbG91cjsKfSBkZExpZ2h0 RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZFVDSEFSIG1vZGU7CiAgICBkZFVDSEFSIHVu dXNlZDsKICAgIGRkVVNIT1JUIHVudXNlZDI7CiAgICBkZEZMT0FUIGZyb250UGxhbmU7CiAgICBk ZEZMT0FUIGJhY2tQbGFuZTsKICAgIGRkRkxPQVQgZnJvbnRTY2FsaW5nOwogICAgZGRGTE9BVCBi YWNrU2NhbGluZzsKICAgIGRkQ29sb3VyU3BlY2lmaWVyIGRlcHRoQ3VlQ29sb3VyOwp9IGRkRGVw dGhDdWVFbnRyeTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRW51bVR5cGVJbmRleCBhcHByb3hU eXBlOwogICAgZGRFbnVtVHlwZUluZGV4IGFwcHJveE1vZGVsOwogICAgZGRVU0hPUlQgbWF4MTsK ICAgIGRkVVNIT1JUIG1heDI7CiAgICBkZFVTSE9SVCBtYXgzOwogICAgZGRVQ0hBUiBkaXRoZXI7 CiAgICBkZFVDSEFSIHVudXNlZDsKICAgIGRkVUxPTkcgbXVsdDE7CiAgICBkZFVMT05HIG11bHQy OwogICAgZGRVTE9ORyBtdWx0MzsKICAgIGRkRkxPQVQgd2VpZ2h0MTsKICAgIGRkRkxPQVQgd2Vp Z2h0MjsKICAgIGRkRkxPQVQgd2VpZ2h0MzsKICAgIGRkVUxPTkcgYmFzZVBpeGVsOwp9IGRkQ29s b3VyQXBwcm94RW50cnk7CiMgMTg3ICIuLi9pbmNsdWRlL21pTFVULmgiCnR5cGVkZWYgc3RydWN0 IHsKICAgICAgICBkZFVTSE9SVCBzdGF0dXM7CiAgICAgICAgZGRUYWJsZUluZGV4IGluZGV4Owp9 IG1pVGFibGVFbnRyeTsKCnR5cGVkZWYgc3RydWN0IF9taUxpbmVCdW5kbGVFbnRyeSB7CiAgICAg ICAgbWlUYWJsZUVudHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkTGluZUJ1bmRsZUVudHJ5IGVu dHJ5OwogICAgICAgIGRkTGluZUJ1bmRsZUVudHJ5IHJlYWxfZW50cnk7Cn0gbWlMaW5lQnVuZGxl RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlNYXJrZXJCdW5kbGVFbnRyeSB7CiAgICAgICAgbWlU YWJsZUVudHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkTWFya2VyQnVuZGxlRW50cnkgZW50cnk7 CiAgICAgICAgZGRNYXJrZXJCdW5kbGVFbnRyeSByZWFsX2VudHJ5Owp9IG1pTWFya2VyQnVuZGxl RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlUZXh0QnVuZGxlRW50cnkgewogICAgICAgIG1pVGFi bGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZFRleHRCdW5kbGVFbnRyeSBlbnRyeTsKICAg ICAgICBkZFRleHRCdW5kbGVFbnRyeSByZWFsX2VudHJ5Owp9IG1pVGV4dEJ1bmRsZUVudHJ5OwoK dHlwZWRlZiBzdHJ1Y3QgX21pSW50ZXJpb3JCdW5kbGVFbnRyeSB7CiAgICAgICAgbWlUYWJsZUVu dHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkSW50ZXJpb3JCdW5kbGVFbnRyeSBlbnRyeTsKICAg ICAgICBkZEludGVyaW9yQnVuZGxlRW50cnkgcmVhbF9lbnRyeTsKfSBtaUludGVyaW9yQnVuZGxl RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlFZGdlQnVuZGxlRW50cnkgewogICAgICAgIG1pVGFi bGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZEVkZ2VCdW5kbGVFbnRyeSBlbnRyeTsKICAg ICAgICBkZEVkZ2VCdW5kbGVFbnRyeSByZWFsX2VudHJ5Owp9IG1pRWRnZUJ1bmRsZUVudHJ5OwoK dHlwZWRlZiBzdHJ1Y3QgX21pUGF0dGVybkVudHJ5IHsKICAgICAgICBtaVRhYmxlRW50cnkgZW50 cnlfaW5mbzsKCiAgICAgICAgZGRQYXR0ZXJuRW50cnkgZW50cnk7Cn0gbWlQYXR0ZXJuRW50cnk7 CgoKdHlwZWRlZiBzdHJ1Y3QgX21pVGV4dEZvbnRFbnRyeSB7CiAgICAgICAgbWlUYWJsZUVudHJ5 IGVudHJ5X2luZm87CgogICAgICAgIGRkVGV4dEZvbnRFbnRyeSBlbnRyeTsKfSBtaVRleHRGb250 RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlDb2xvdXJFbnRyeSB7CiAgICAgICAgbWlUYWJsZUVu dHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIGVudHJ5Owp9IG1pQ29s b3VyRW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlWaWV3RW50cnkgewogICAgICAgIG1pVGFibGVF bnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZFZpZXdFbnRyeSBlbnRyeTsKICAgICAgICBkZEZM T0FUIHZvbVs0XVs0XTsKICAgICAgICBkZEZMT0FUIHZvbV9pbnZbNF1bNF07CiAgICAgICAgZGRC T09MIGludl9mbGFnOwp9IG1pVmlld0VudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pTGlnaHRFbnRy eSB7CiAgICAgICAgbWlUYWJsZUVudHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkTGlnaHRFbnRy eSBlbnRyeTsKICAgICAgICBkb3VibGUgY29zU3ByZWFkQW5nbGU7Cn0gbWlMaWdodEVudHJ5OwoK dHlwZWRlZiBzdHJ1Y3QgX21pRGVwdGhDdWVFbnRyeSB7CiAgICAgICAgbWlUYWJsZUVudHJ5IGVu dHJ5X2luZm87CgogICAgICAgIGRkRGVwdGhDdWVFbnRyeSBlbnRyeTsKfSBtaURlcHRoQ3VlRW50 cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlDb2xvdXJBcHByb3hFbnRyeSB7CiAgICAgICAgbWlUYWJs ZUVudHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkQ29sb3VyQXBwcm94RW50cnkgZW50cnk7Cn0g bWlDb2xvdXJBcHByb3hFbnRyeTsKCnR5cGVkZWYgZGRwZXg0M3J0biAoKm1pT3BzVGFibGVUeXBl KSgpOwoKdHlwZWRlZiBzdHJ1Y3QgX21pTFVUSGVhZGVyIHsKCgogICAgICAgIGRkRHJhd2FibGVJ bmZvIGRyYXdFeGFtcGxlOwogICAgICAgIGRkU0hPUlQgZHJhd1R5cGU7CgogICAgICAgIGRkVVNI T1JUIHN0YXJ0SW5kZXg7CiAgICAgICAgZGRVU0hPUlQgZGVmYXVsdEluZGV4OwogICAgICAgIGRk VVNIT1JUIG51bURlZmluZWQ7CiAgICAgICAgZGRUYWJsZUluZm8gdGFibGVJbmZvOwoKICAgICAg ICBsaXN0b2ZPYmogKndrc1JlZkxpc3Q7CiAgICAgICAgbGlzdG9mT2JqICpyZW5kUmVmTGlzdDsK ICAgICAgICBkZEJPT0wgZnJlZUZsYWc7CgoKCgoKCiAgICAgICAgdW5pb24gewogICAgICAgICAg ICAgICAgbWlMaW5lQnVuZGxlRW50cnkgKmxpbmU7CiAgICAgICAgICAgICAgICBtaU1hcmtlckJ1 bmRsZUVudHJ5ICptYXJrZXI7CiAgICAgICAgICAgICAgICBtaVRleHRCdW5kbGVFbnRyeSAqdGV4 dDsKICAgICAgICAgICAgICAgIG1pSW50ZXJpb3JCdW5kbGVFbnRyeSAqaW50ZXJpb3I7CiAgICAg ICAgICAgICAgICBtaUVkZ2VCdW5kbGVFbnRyeSAqZWRnZTsKICAgICAgICAgICAgICAgIG1pUGF0 dGVybkVudHJ5ICpwYXR0ZXJuOwogICAgICAgICAgICAgICAgbWlUZXh0Rm9udEVudHJ5ICpmb250 OwogICAgICAgICAgICAgICAgbWlDb2xvdXJFbnRyeSAqY29sb3VyOwogICAgICAgICAgICAgICAg bWlWaWV3RW50cnkgKnZpZXc7CiAgICAgICAgICAgICAgICBtaUxpZ2h0RW50cnkgKmxpZ2h0Owog ICAgICAgICAgICAgICAgbWlEZXB0aEN1ZUVudHJ5ICpkZXB0aEN1ZTsKICAgICAgICAgICAgICAg IG1pQ29sb3VyQXBwcm94RW50cnkgKmNvbG91ckFwcHJveDsKICAgICAgICAgfSBwbHV0OwojIDMz NiAiLi4vaW5jbHVkZS9taUxVVC5oIgogICAgICAgIG1pT3BzVGFibGVUeXBlIG9wc1soMTMgLSA0 ICsgMSArIDYpXTsKfSBtaUxVVEhlYWRlcjsKIyA2MSAiLi4vaW5jbHVkZS9taVJlbmRlci5oIiAy CgoKCgoKCnR5cGVkZWYgc3RydWN0IF9taUxpc3RIZWFkZXIgewogICAgICAgIGRkUG9pbnRUeXBl IHR5cGU7CiAgICAgICAgZGRVU0hPUlQgZmxhZ3M7CiAgICAgICAgZGRVTE9ORyBudW1MaXN0czsK ICAgICAgICBkZFVMT05HIG1heExpc3RzOwogICAgICAgIGxpc3RvZmRkUG9pbnQgKmRkTGlzdDsK fSBtaUxpc3RIZWFkZXI7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCBfbWlEeW5hbWljRERDb250ZXh0 IHsKICAgICAgICBkZFBDQXR0ciAqcFBDQXR0cjsKICAgICAgICBkZE5hbWVQaWVjZSBjdXJyZW50 TmFtZXNbKCgyNTUgLSAwICsxKSAvIChzaXplb2YoZGROYW1lUGllY2UpICogOCkpXTsKICAgICAg ICBzdHJ1Y3QgX21pRHluYW1pY0REQ29udGV4dCAqbmV4dDsKICAgICAgICBkZEZMT0FUIG1jX3Rv X3djX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgd2NfdG9fbnBjX3hmb3JtWzRdWzRdOwog ICAgICAgIGRkRkxPQVQgbWNfdG9fbnBjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgd2Nf dG9fY2NfeGZvcm1bNF1bNF07CiAgICAgICAgZGRGTE9BVCBjY190b19kY194Zm9ybVs0XVs0XTsK ICAgICAgICBkZEZMT0FUIG1jX3RvX2NjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgbWNf dG9fZGNfeGZvcm1bNF1bNF07CiAgICAgICAgZGRGTE9BVCBucGNfdG9fY2NfeGZvcm1bNF1bNF07 CiAgICAgICAgZGRVU0hPUlQgY2xpcEZsYWdzOwogICAgICAgIGRkVVNIT1JUIGZpbHRlcl9mbGFn czsKICAgICAgICBkZFVTSE9SVCBkb19wcmltczsKfSBtaUR5bmFtaWNERENvbnRleHQ7CiMgMTYy ICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiCnR5cGVkZWYgZGRwZXgycnRuICgqUmVuZFRhYmxlVHlw ZSkoKTsKIyAxNzEgIi4uL2luY2x1ZGUvbWlSZW5kZXIuaCIKdHlwZWRlZiBzdHJ1Y3QgX21pRERD b250ZXh0UmVuZEF0dHJzIHsKICAgICAgICBkZEVudW1UeXBlSW5kZXggbWFya2VyVHlwZTsKICAg ICAgICBkZEZMT0FUIG1hcmtlclNjYWxlOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIG1hcmtl ckNvbG91cjsKICAgICAgICBkZFVTSE9SVCB0ZXh0Rm9udDsKICAgICAgICBkZFVTSE9SVCB0ZXh0 UHJlY2lzaW9uOwogICAgICAgIGRkRkxPQVQgY2hhckV4cGFuc2lvbjsKICAgICAgICBkZEZMT0FU IGNoYXJTcGFjaW5nOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIHRleHRDb2xvdXI7CiAgICAg ICAgZGRGTE9BVCBjaGFySGVpZ2h0OwogICAgICAgIGRkVmVjdG9yMkQgY2hhclVwOwogICAgICAg IGRkVVNIT1JUIHRleHRQYXRoOwogICAgICAgIGRkVGV4dEFsaWdubWVudERhdGEgdGV4dEFsaWdu bWVudDsKICAgICAgICBkZEZMT0FUIGF0ZXh0SGVpZ2h0OwogICAgICAgIGRkVmVjdG9yMkQgYXRl eHRVcDsKICAgICAgICBkZFVTSE9SVCBhdGV4dFBhdGg7CiAgICAgICAgZGRUZXh0QWxpZ25tZW50 RGF0YSBhdGV4dEFsaWdubWVudDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggYXRleHRTdHlsZTsK ICAgICAgICBkZEVudW1UeXBlSW5kZXggbGluZVR5cGU7CiAgICAgICAgZGRGTE9BVCBsaW5lV2lk dGg7CiAgICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgbGluZUNvbG91cjsKICAgICAgICBkZEN1cnZl QXBwcm94IGN1cnZlQXBwcm94OwogICAgICAgIGRkRW51bVR5cGVJbmRleCBsaW5lSW50ZXJwOwog ICAgICAgIGRkRW51bVR5cGVJbmRleCBpbnRTdHlsZTsKICAgICAgICBkZENvbG91clNwZWNpZmll ciBzdXJmYWNlQ29sb3VyOwogICAgICAgIGRkUmVmbGVjdGlvbkF0dHIgcmVmbEF0dHI7CiAgICAg ICAgZGRFbnVtVHlwZUluZGV4IHJlZmxNb2RlbDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggc3Vy ZkludGVycDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggYmZJbnRTdHlsZTsKICAgICAgICBkZENv bG91clNwZWNpZmllciBiZlN1cmZDb2xvdXI7CiAgICAgICAgZGRSZWZsZWN0aW9uQXR0ciBiZlJl ZmxBdHRyOwogICAgICAgIGRkRW51bVR5cGVJbmRleCBiZlJlZmxNb2RlbDsKICAgICAgICBkZEVu dW1UeXBlSW5kZXggYmZTdXJmSW50ZXJwOwogICAgICAgIGRkU3VyZmFjZUFwcHJveCBzdXJmQXBw cm94OwogICAgICAgIGRkQ29vcmQyRCBwYXR0ZXJuU2l6ZTsKICAgICAgICBkZENvb3JkM0QgcGF0 dGVyblJlZlB0OwogICAgICAgIGRkVmVjdG9yM0QgcGF0dGVyblJlZlYxOwogICAgICAgIGRkVmVj dG9yM0QgcGF0dGVyblJlZlYyOwogICAgICAgIGRkVVNIT1JUIGVkZ2VzOwogICAgICAgIGRkRW51 bVR5cGVJbmRleCBlZGdlVHlwZTsKICAgICAgICBkZEZMT0FUIGVkZ2VXaWR0aDsKICAgICAgICBk ZENvbG91clNwZWNpZmllciBlZGdlQ29sb3VyOwogICAgICAgIGRkVVNIT1JUIG1vZGVsQ2xpcDsK ICAgICAgICBkZFVMT05HIHBpY2tJZDsKICAgICAgICBkZFVMT05HIGhsaHNyVHlwZTsKICAgICAg ICBkZENvbG91clNwZWNpZmllciBiYWNrZ3JvdW5kQ29sb3VyOwogICAgICAgIGRkVVNIT1JUIGNs ZWFySTsKICAgICAgICBkZFVTSE9SVCBjbGVhclo7CiAgICAgICAgZGRVU0hPUlQgZWNob01vZGU7 CiAgICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgZWNob0NvbG91cjsKfSBtaUREQ29udGV4dFJlbmRB dHRyczsKIyAyNDkgIi4uL2luY2x1ZGUvbWlSZW5kZXIuaCIKdHlwZWRlZiBzdHJ1Y3QgX21pRERD b250ZXh0TWlzYyB7CiAgICAgICAgZGRVTE9ORyBsaXN0SW5kZXg7CiAgICAgICAgbWlMaXN0SGVh ZGVyIGxpc3Q0RFs0XTsKICAgICAgICBtaUxpc3RIZWFkZXIgbGlzdDJEOwogICAgICAgIGRkVUxP TkcgZmFjZXRJbmRleDsKICAgICAgICBsaXN0b2ZkZEZhY2V0IGZhY2V0c1s0XTsKICAgICAgICBk ZEZMT0FUIHZpZXdwb3J0X3hmb3JtWzRdWzRdOwogICAgICAgIGRkVUxPTkcgZmxhZ3M7CiAgICAg ICAgR0NQdHIgcFBvbHlsaW5lR0M7CiAgICAgICAgR0NQdHIgcEZpbGxBcmVhR0M7CiAgICAgICAg R0NQdHIgcEVkZ2VHQzsKICAgICAgICBHQ1B0ciBwUG9seU1hcmtlckdDOwogICAgICAgIEdDUHRy IHBUZXh0R0M7CiAgICAgICAgZGRGTE9BVCBpbnZfdHJfbWNfdG9fd2NfeGZvcm1bNF1bNF07CiAg ICAgICAgZGRGTE9BVCBpbnZfdHJfd2NfdG9fY2NfeGZvcm1bNF1bNF07CiAgICAgICAgZGRGTE9B VCBpbnZfdHJfbWNfdG9fY2NfeGZvcm1bNF1bNF07CiAgICAgICAgZGRGTE9BVCBpbnZfdHJfY2Nf dG9fZGNfeGZvcm1bNF1bNF07CiAgICAgICAgZGRGTE9BVCBpbnZfdnB0X3hmb3JtWzRdWzRdOwog ICAgICAgIGRkRkxPQVQgaW52X3ZpZXdfeGZvcm1bNF1bNF07CiAgICAgICAgbGlzdG9mT2JqICpt c19NQ1Y7CgogICAgICAgIGRkQ29vcmQ0RCBleWVfcHQ7CiAgICAgICAgZGRDb2xvdXJTcGVjaWZp ZXIgaGlnaGxpZ2h0X2NvbG91cjsKICAgICAgICBkZERlcHRoQ3VlRW50cnkgY2NfZGN1ZV9lbnRy eTsKCn0gbWlERENvbnRleHRNaXNjOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRW51bVR5 cGVJbmRleCB0eXBlOwogICAgICAgIGRkVVNIT1JUIHN0YXR1czsKICAgICAgICBkZE5hbWVQaWVj ZSBpbmNsdXNpb25bKCgyNTUgLSAwICsxKSAvIChzaXplb2YoZGROYW1lUGllY2UpICogOCkpXTsK ICAgICAgICBkZE5hbWVQaWVjZSBleGNsdXNpb25bKCgyNTUgLSAwICsxKSAvIChzaXplb2YoZGRO YW1lUGllY2UpICogOCkpXTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBjaGFyIGRj X2RhdGFfcmVjOwogICAgICAgICAgICAgICAgY2hhciBucGNfZGF0YV9yZWM7CiAgICAgICAgfSBk YXRhX3JlYzsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBkZFBDX0RDX0hpdEJveCBk Y19oaXRfYm94OwogICAgICAgICAgICAgICAgZGRQQ19OUENfSGl0Vm9sdW1lIG5wY19oaXRfdm9s dW1lOwogICAgICAgIH0gaW5wdXRfcmVjOwogICAgICAgIGRkUG9pbnRlciBkZXZQcml2Owp9IGRk UGlja0RldmljZVN0cjsKCnR5cGVkZWYgc3RydWN0IF9kZFNlYXJjaERldlByaXYgewogICAgICAg IGRkVVNIT1JUIHN0YXR1czsKICAgICAgICBkZENvb3JkM0QgcG9zaXRpb247CiAgICAgICAgZGRG TE9BVCBkaXN0YW5jZTsKICAgICAgICBkZEJPT0wgbW9kZWxDbGlwRmxhZzsKICAgICAgICBkZE5h bWVQaWVjZSBub3JtX2luY2x1c2lvblsoKDI1NSAtIDAgKzEpIC8gKHNpemVvZihkZE5hbWVQaWVj ZSkgKiA4KSldOwogICAgICAgIGRkTmFtZVBpZWNlIG5vcm1fZXhjbHVzaW9uWygoMjU1IC0gMCAr MSkgLyAoc2l6ZW9mKGRkTmFtZVBpZWNlKSAqIDgpKV07CiAgICAgICAgZGROYW1lUGllY2UgaW52 ZXJ0X2luY2x1c2lvblsoKDI1NSAtIDAgKzEpIC8gKHNpemVvZihkZE5hbWVQaWVjZSkgKiA4KSld OwogICAgICAgIGRkTmFtZVBpZWNlIGludmVydF9leGNsdXNpb25bKCgyNTUgLSAwICsxKSAvIChz aXplb2YoZGROYW1lUGllY2UpICogOCkpXTsKICAgICAgICBkZFBvaW50ZXIgZGV2UHJpdjsKfSBk ZFNlYXJjaERldmljZVN0cjsKCnR5cGVkZWYgc3RydWN0IF9taVN0YXRpY0REQ29udGV4dCB7CiAg IG1pRERDb250ZXh0UmVuZEF0dHJzICphdHRyczsKICAgbWlERENvbnRleHRNaXNjIG1pc2M7CiAg IFJlbmRUYWJsZVR5cGUgUmVuZGVyUHJvY3NbNV07CiAgIGRkUGlja0RldmljZVN0ciBwaWNrOwog ICBkZFNlYXJjaERldmljZVN0ciBzZWFyY2g7Cn0gbWlTdGF0aWNERENvbnRleHQ7CgoKCgp0eXBl ZGVmIHN0cnVjdCBfbWlERENvbnRleHQgewogICAgICAgIG1pU3RhdGljRERDb250ZXh0IFN0YXRp YzsKICAgICAgICBtaUR5bmFtaWNERENvbnRleHQgKkR5bmFtaWM7Cn0gbWlERENvbnRleHQ7CiMg MzM3ICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiCmV4dGVybiBkZEZMT0FUIGlkZW50NHg0WzRdWzRd OwojIDUyICJtaVBjazFQcmltLmMiIDIKCgojIDEgIi4uLy4uLy4uL2luY2x1ZGUvUEVYRXJyLmgi IDEKIyA1NCAiLi4vLi4vLi4vaW5jbHVkZS9QRVhFcnIuaCIKdHlwZWRlZiBpbnQgRXJyb3JDb2Rl OwojIDU1ICJtaVBjazFQcmltLmMiIDIKIyAxICIuLi9pbmNsdWRlL21pU3RydWN0LmgiIDEKIyA1 NSAiLi4vaW5jbHVkZS9taVN0cnVjdC5oIgojIDEgIi4uLy4uLy4uL2luY2x1ZGUvUEVYcHJvdG8u aCIgMQojIDEwNiAiLi4vLi4vLi4vaW5jbHVkZS9QRVhwcm90by5oIgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVy IDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IG1ham9yVmVyc2lvbiA7CiAgICBDQVJE MTYgbWlub3JWZXJzaW9uIDsKICAgIENBUkQzMiByZWxlYXNlIDsKICAgIENBUkQzMiBsZW5ndGhO YW1lIDsKICAgIENBUkQzMiBzdWJzZXRJbmZvIDsKICAgIEJZVEUgcGFkWzhdOwoKCiAgICB9IHBl eEdldEV4dGVuc2lvbkluZm9SZXBseTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBs ZW5ndGggOwogICAgQ0FSRDMyIG51bUxpc3RzIDsKICAgIEJZVEUgcGFkWzIwXTsKCgogICAgfSBw ZXhHZXRFbnVtZXJhdGVkVHlwZUluZm9SZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUg dHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FS RDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAgfSBwZXhHZXRJbXBEZXBDb25zdGFu dHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7 CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJE MzIgZXNjYXBlSUQgOwogICAgQ0FSRDggZXNjYXBlX3NwZWNpZmljWzIwXTsKCgogICAgfSBwZXhF c2NhcGVXaXRoUmVwbHlSZXBseTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAg ICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5n dGggOwogICAgQllURSBwYWRbMjRdOwoKICAgIH0gcGV4TWF0Y2hSZW5kZXJlclRhcmdldHNSZXBs eTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBD QVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgdW51 c2VkIDsKICAgIENBUkQxNiBkZWZpbmFibGVFbnRyaWVzIDsKICAgIENBUkQxNiBudW1QcmVkZWZp bmVkIDsKICAgIENBUkQxNiBwcmVkZWZpbmVkTWluIDsKICAgIENBUkQxNiBwcmVkZWZpbmVkTWF4 IDsKICAgIEJZVEUgcGFkWzE0XTsKICAgIH0gcGV4R2V0VGFibGVJbmZvUmVwbHk7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHVudXNlZCA7CiAgICBD QVJEMzIgbnVtRW50cmllcyA7CiAgICBCWVRFIHBhZFsxNl07CgogICAgfSBwZXhHZXRQcmVkZWZp bmVkRW50cmllc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FS RDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsK ICAgIENBUkQzMiBudW1JbmRpY2VzIDsKICAgIEJZVEUgcGFkWzIwXTsKCgogICAgfSBwZXhHZXRE ZWZpbmVkSW5kaWNlc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAg Q0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3Ro IDsKICAgIENBUkQxNiBzdGF0dXMgOwogICAgQ0FSRDE2IHRhYmxlVHlwZSA7CiAgICBCWVRFIHBh ZFsyMF07CgogICAgfSBwZXhHZXRUYWJsZUVudHJ5UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsK ICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDE2IHRhYmxlVHlwZSA7CiAgICBDQVJEMTYgdW51 c2VkIDsKICAgIENBUkQzMiBudW1FbnRyaWVzIDsKICAgIEJZVEUgcGFkWzE2XTsKCiAgICB9IHBl eEdldFRhYmxlRW50cmllc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwog ICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVu Z3RoIDsKICAgIENBUkQxNiBzdGF0dXMgOwogICAgQ0FSRDE2IHRhYmxlVHlwZSA7CiAgICBDQVJE MzIgbnVtVmFsdWVzIDsKICAgIEJZVEUgcGFkWzE2XTsKCiAgICB9IHBleEdldFRhYmxlVmFsdWVz UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0Owog ICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQllURSBw YWRbMjRdOwoKICAgIH0gcGV4R2V0UGlwZWxpbmVDb250ZXh0UmVwbHk7CgoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51 bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleEdl dFJlbmRlcmVyQXR0cmlidXRlc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBl OwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIg bGVuZ3RoIDsKICAgIENBUkQzMiBudW1WYWx1ZXMgOwogICAgcGV4U3dpdGNoIHVuZGVmaW5lZFZh bHVlczsKICAgIEJZVEUgcGFkWzE5XTsKCn0gcGV4R2V0WkJ1ZmZlclJlcGx5OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5j ZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIElOVDMyIGNvdW50IDsKICAgIEJZVEUg cGFkWzIwXTsKfSBwZXhOZXh0UGFzc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0 eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIHBleEJpdG1hc2sgdGFibGVzIDsKICAgIHBleEJpdG1hc2sgbmFtZXNl dHMgOwogICAgcGV4Qml0bWFzayBhdHRyaWJ1dGVzIDsKICAgIEJZVEUgcGFkWzEyXTsKfSBwZXhH ZXRSZW5kZXJlckR5bmFtaWNzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBs ZW5ndGggOwogICAgQ0FSRDE2IGVkaXRNb2RlIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FS RDMyIGVsZW1lbnRQdHIgOwogICAgQ0FSRDMyIG51bUVsZW1lbnRzIDsKICAgIENBUkQzMiBsZW5n dGhTdHJ1Y3R1cmUgOwogICAgQ0FSRDE2IGhhc1JlZnMgOwogICAgQllURSBwYWRbNl07CiAgICB9 IHBleEdldFN0cnVjdHVyZUluZm9SZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlw ZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMy IGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtSW5mbyA7CiAgICBCWVRFIHBhZFsyMF07CgogICAgfSBw ZXhHZXRFbGVtZW50SW5mb1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwog ICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVu Z3RoIDsKICAgIENBUkQ4IHVudXNlZFs4XTsKICAgIENBUkQzMiBudW1TdHJ1Y3R1cmVzIDsKICAg IEJZVEUgcGFkWzEyXTsKCiAgICB9IHBleEdldFN0cnVjdHVyZXNJbk5ldHdvcmtSZXBseTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYg c2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEOCB1bnVzZWRbMTJd OwogICAgQ0FSRDMyIG51bVBhdGhzIDsKICAgIEJZVEUgcGFkWzhdOwoKICAgIH0gcGV4R2V0QW5j ZXN0b3JzUmVwbHk7Cgp0eXBlZGVmIHBleEdldEFuY2VzdG9yc1JlcGx5IHBleEdldERlc2NlbmRh bnRzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0 OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FS RDMyIG51bUVsZW1lbnRzIDsKICAgIEJZVEUgcGFkWzIwXTsKCiAgICB9IHBleEZldGNoRWxlbWVu dHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7 CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJE MTYgc3RhdHVzIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDMyIGZvdW5kT2Zmc2V0IDsK ICAgIEJZVEUgcGFkWzE2XTsKICAgIH0gcGV4RWxlbWVudFNlYXJjaFJlcGx5OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5j ZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBudW1OYW1lcyA7CiAgICBC WVRFIHBhZFsyMF07CgogICAgfSBwZXhHZXROYW1lU2V0UmVwbHk7CgoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJl ciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleEdldFNl YXJjaENvbnRleHRSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENB UkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7 CiAgICBDQVJEMzIgdW51c2VkIDsKICAgIENBUkQzMiBudW1JdGVtcyA7CiAgICBCWVRFIHBhZFsx Nl07CgogICAgfSBwZXhTZWFyY2hOZXR3b3JrUmVwbHk7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAg QllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAg ICBDQVJEMzIgbGVuZ3RoIDsKICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleEdldFdrc0luZm9S ZXBseTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0Owog ICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgcGV4RHlu YW1pY1R5cGUgdmlld1JlcDsKICAgIHBleER5bmFtaWNUeXBlIG1hcmtlckJ1bmRsZTsKICAgIHBl eER5bmFtaWNUeXBlIHRleHRCdW5kbGU7CiAgICBwZXhEeW5hbWljVHlwZSBsaW5lQnVuZGxlOwog ICAgcGV4RHluYW1pY1R5cGUgaW50ZXJpb3JCdW5kbGU7CiAgICBwZXhEeW5hbWljVHlwZSBlZGdl QnVuZGxlOwogICAgcGV4RHluYW1pY1R5cGUgY29sb3VyVGFibGU7CiAgICBwZXhEeW5hbWljVHlw ZSBwYXR0ZXJuVGFibGU7CiAgICBwZXhEeW5hbWljVHlwZSB3a3NUcmFuc2Zvcm07CiAgICBwZXhE eW5hbWljVHlwZSBoaWdobGlnaHRGaWx0ZXI7CiAgICBwZXhEeW5hbWljVHlwZSBpbnZpc2liaWxp dHlGaWx0ZXI7CiAgICBwZXhEeW5hbWljVHlwZSBIbGhzck1vZGU7CiAgICBwZXhEeW5hbWljVHlw ZSBzdHJ1Y3R1cmVNb2RpZnk7CiAgICBwZXhEeW5hbWljVHlwZSBwb3N0U3RydWN0dXJlOwogICAg cGV4RHluYW1pY1R5cGUgdW5wb3N0U3RydWN0dXJlOwogICAgcGV4RHluYW1pY1R5cGUgZGVsZXRl U3RydWN0dXJlOwogICAgcGV4RHluYW1pY1R5cGUgcmVmZXJlbmNlTW9kaWZ5OwogICAgcGV4RHlu YW1pY1R5cGUgYnVmZmVyTW9kaWZ5OwogICAgcGV4RHluYW1pY1R5cGUgbGlnaHRUYWJsZTsKICAg IHBleER5bmFtaWNUeXBlIGRlcHRoQ3VlVGFibGU7CiAgICBwZXhEeW5hbWljVHlwZSBjb2xvdXJB cHByb3hUYWJsZTsKICAgIENBUkQ4IHBhZFszXTsKICAgIH0gcGV4R2V0RHluYW1pY3NSZXBseTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJE MTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgdmlld1Vw ZGF0ZSA7CiAgICBCWVRFIHBhZFsyMl07CgoKICAgIH0gcGV4R2V0Vmlld1JlcFJlcGx5OwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBz ZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiB2aWV3SW5kZXgg OwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBDQVJEMzIgbnVtQ29vcmRzIDsKICAgIEJZVEUgcGFk WzE2XTsKCiAgICB9IHBleE1hcERDdG9XQ1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllU RSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBD QVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiB1bnVzZWQgOwogICAgQ0FSRDMyIG51bUNvb3JkcyA7 CiAgICBCWVRFIHBhZFsxNl07CgogICAgfSBwZXhNYXBXQ3RvRENSZXBseTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VO dW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAgfSBwZXhH ZXRXa3NQb3N0aW5nc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAg Q0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3Ro IDsKICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleEdldFBpY2tEZXZpY2VSZXBseTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2Vx dWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAg fSBwZXhHZXRQaWNrTWVhc3VyZVJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBl OwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIg bGVuZ3RoIDsKICAgIENBUkQzMiBudW1QaWNrRWxSZWZzIDsKICAgIHBleEVudW1UeXBlSW5kZXgg cGlja1N0YXR1cyA7CiAgICBDQVJEOCBiZXR0ZXJQaWNrOwogICAgQllURSBwYWRbMTddOwoKICAg IH0gcGV4RW5kUGlja09uZVJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwog ICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVu Z3RoIDsKICAgIENBUkQzMiBudW1QaWNrRWxSZWZzIDsKICAgIHBleEVudW1UeXBlSW5kZXggcGlj a1N0YXR1cyA7CiAgICBDQVJEOCBiZXR0ZXJQaWNrOwogICAgQllURSBwYWRbMTddOwoKICAgIH0g cGV4UGlja09uZVJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FS RDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsK ICAgIENBUkQzMiBudW1QaWNrZWQgOwogICAgcGV4RW51bVR5cGVJbmRleCBwaWNrU3RhdHVzIDsK ICAgIHBleEVudW1UeXBlSW5kZXggbW9yZVBpY2tzIDsKICAgIEJZVEUgcGFkWzE2XTsKCiAgICB9 IHBleEVuZFBpY2tBbGxSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAg IENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0 aCA7CiAgICBDQVJEMzIgbnVtUGlja2VkIDsKICAgIHBleEVudW1UeXBlSW5kZXggcGlja1N0YXR1 cyA7CiAgICBwZXhFbnVtVHlwZUluZGV4IG1vcmVQaWNrcyA7CiAgICBCWVRFIHBhZFsxNl07Cgog ICAgfSBwZXhQaWNrQWxsUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAg ICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5n dGggOwogICAgQ0FSRDMyIGxlbmd0aEZvbnRJbmZvIDsKICAgIENBUkQ4IHBhZFsyMF07CgogICAg fSBwZXhRdWVyeUZvbnRSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAg IENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0 aCA7CiAgICBDQVJEMzIgbnVtU3RyaW5ncyA7CiAgICBCWVRFIHBhZFsyMF07CgogICAgfSBwZXhM aXN0Rm9udHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4 IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAg ICBDQVJEMzIgbnVtU3RyaW5ncyA7CiAgICBCWVRFIHBhZFsyMF07CgoKICAgIH0gcGV4TGlzdEZv bnRzV2l0aEluZm9SZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENB UkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7 CiAgICBCWVRFIHBhZFsyNF07CgogICAgfSBwZXhRdWVyeVRleHRFeHRlbnRzUmVwbHk7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNl cXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDggYXBwcm94U3VwcG9y dGVkOwogICAgQ0FSRDggZXhoYXVzdGl2ZUFwcHJveDsKICAgIENBUkQ4IHVudXNlZFsyXTsKICAg IENBUkQzMiBudW1Db2xvckFwcHJveDsKICAgIEJZVEUgcGFkWzE2XTsKCn0gcGV4UXVlcnlDb2xv ckFwcHJveFJlcGx5OwoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwog ICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CgoKfSBwZXhSZXE7CiMgNjA1ICIu Li8uLi8uLi9pbmNsdWRlL1BFWHByb3RvLmgiCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBp ZCA7CiAgICB9IHBleFJlc291cmNlUmVxOwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FS RDE2IGNsaWVudFByb3RvY29sTWFqb3IgOwogICAgQ0FSRDE2IGNsaWVudFByb3RvY29sTWlub3Ig Owp9IHBleEdldEV4dGVuc2lvbkluZm9SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3YWJs ZSBkcmF3YWJsZSA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKICAgIENBUkQzMiBudW1FbnVt cyA7CgoKfSBwZXhHZXRFbnVtZXJhdGVkVHlwZUluZm9SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgRHJh d2FibGUgZHJhd2FibGUgOwogICAgQ0FSRDMyIG51bU5hbWVzIDsKCgp9IHBleEdldEltcERlcENv bnN0YW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAg IENBUkQ4IGRlcHRoOwogICAgQ0FSRDggdW51c2VkOwogICAgQ0FSRDE2IHR5cGUgOwogICAgQ0FS RDMyIHZpc3VhbElEIDsKICAgIENBUkQzMiBtYXhUcmlwbGV0cyA7Cn0gcGV4TWF0Y2hSZW5kZXJl clRhcmdldHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZXNjYXBlSUQgOwoKfSBw ZXhFc2NhcGVSZXE7Cgp0eXBlZGVmIHBleEVzY2FwZVJlcSBwZXhFc2NhcGVXaXRoUmVwbHlSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZUV4YW1wbGUgOwogICAgcGV4 TG9va3VwVGFibGUgbHV0IDsKICAgIHBleFRhYmxlVHlwZSB0YWJsZVR5cGUgOwogICAgQ0FSRDE2 IHVudXNlZCA7Cn0gcGV4Q3JlYXRlTG9va3VwVGFibGVSZXE7CgoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgcGV4TG9va3VwVGFibGUgc3JjIDsKICAgIHBleExvb2t1cFRhYmxlIGRzdCA7Cn0gcGV4Q29w eUxvb2t1cFRhYmxlUmVxOwoKdHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhGcmVlTG9va3VwVGFi bGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bj b2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZUV4YW1wbGUgOwog ICAgcGV4VGFibGVUeXBlIHRhYmxlVHlwZSA7CiAgICBDQVJEMTYgdW51c2VkIDsKfSBwZXhHZXRU YWJsZUluZm9SZXE7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENB UkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZv cm1hdCA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlRXhhbXBsZSA7 CiAgICBwZXhUYWJsZVR5cGUgdGFibGVUeXBlIDsKICAgIHBleFRhYmxlSW5kZXggc3RhcnQgOwog ICAgQ0FSRDE2IGNvdW50IDsKICAgIENBUkQxNiBwYWQgOwp9IHBleEdldFByZWRlZmluZWRFbnRy aWVzUmVxOwoKdHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhHZXREZWZpbmVkSW5kaWNlc1JlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FS RDE2IHZhbHVlVHlwZSA7CiAgICBwZXhMb29rdXBUYWJsZSBsdXQgOwogICAgcGV4VGFibGVJbmRl eCBpbmRleCA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhHZXRUYWJsZUVudHJ5UmVxOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQx NiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdmFs dWVUeXBlIDsKICAgIHBleExvb2t1cFRhYmxlIGx1dCA7CiAgICBwZXhUYWJsZUluZGV4IHN0YXJ0 IDsKICAgIENBUkQxNiBjb3VudCA7Cn0gcGV4R2V0VGFibGVFbnRyaWVzUmVxOwoKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNl ZCA7CiAgICBwZXhMb29rdXBUYWJsZSBsdXQgOwogICAgcGV4VGFibGVJbmRleCBzdGFydCA7CiAg ICBDQVJEMTYgY291bnQgOwoKfSBwZXhTZXRUYWJsZUVudHJpZXNSZXE7CgoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5n dGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBwZXhUYWJsZUluZGV4IGlu ZGV4IDsKICAgIHBleExvb2t1cFRhYmxlIGx1dCA7CiAgICBwZXhCaXRtYXNrIFRhYmxlTWFzazsK Cn0gcGV4Q2hhbmdlVGFibGVWYWx1ZXNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVt VHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB2YWx1ZVR5cGUgOwogICAgcGV4TG9va3Vw VGFibGUgbHV0IDsKICAgIHBleFRhYmxlSW5kZXggaW5kZXggOwogICAgQ0FSRDE2IHVudXNlZDsK ICAgIHBleEJpdG1hc2sgVGFibGVNYXNrOwp9IHBleEdldFRhYmxlVmFsdWVzUmVxOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQx NiBsZW5ndGggOwogICAgcGV4TG9va3VwVGFibGUgbHV0IDsKICAgIHBleFRhYmxlSW5kZXggc3Rh cnQgOwogICAgQ0FSRDE2IGNvdW50IDsKfSBwZXhEZWxldGVUYWJsZUVudHJpZXNSZXE7CgoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYg dW51c2VkIDsKICAgIHBleFBDIHBjIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2tbM107Cgp9IHBl eENyZWF0ZVBpcGVsaW5lQ29udGV4dFJlcTsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhQQyBz cmMgOwogICAgcGV4UEMgZHN0IDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2tbM107Cn0gcGV4Q29w eVBpcGVsaW5lQ29udGV4dFJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RnJlZVBpcGVs aW5lQ29udGV4dFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBD QVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBG b3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQQyBwYyA7CiAgICBwZXhCaXRtYXNr IGl0ZW1NYXNrWzNdOwp9IHBleEdldFBpcGVsaW5lQ29udGV4dFJlcTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3Ro IDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAg ICBwZXhQQyBwYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrWzNdOwoKfSBwZXhDaGFuZ2VQaXBl bGluZUNvbnRleHRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAg Q0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZw Rm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERy YXdhYmxlIGRyYXdhYmxlIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sgOwoKfSBwZXhDcmVhdGVS ZW5kZXJlclJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RnJlZVJlbmRlcmVyUmVxOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAg IENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJE MTYgdW51c2VkIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNr IDsKCn0gcGV4Q2hhbmdlUmVuZGVyZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVt VHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UmVuZGVyZXIg cmRyIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sgOwp9IHBleEdldFJlbmRlcmVyQXR0cmlidXRl c1JlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4R2V0UmVuZGVyZXJEeW5hbWljc1JlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJsZSBkcmF3 YWJsZSA7Cn0gcGV4QmVnaW5SZW5kZXJpbmdSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhS ZW5kZXJlciByZHIgOwogICAgcGV4U3dpdGNoIGZsdXNoRmxhZzsKICAgIEJZVEUgcGFkWzNdOwp9 IHBleEVuZFJlbmRlcmluZ1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJk ciA7CiAgICBwZXhCaXRtYXNrIGNsZWFyQ29udHJvbCA7Cn0gcGV4Q2xlYXJSZW5kZXJlclJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBwZXhTd2l0Y2ggZmx1 c2hGbGFnOwogICAgQllURSBwYWRbM107Cn0gcGV4Rmx1c2hSZW5kZXJlclJlcTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7Cn0gcGV4SW5pdFJlbmRlcmVyUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIHBpeG1hcCA7 Cn0gcGV4Q29weUFscGhhVG9QaXhtYXBSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5k ZXJlciByZHIgOwogICAgRHJhd2FibGUgcGl4bWFwIDsKfSBwZXhDb3B5UGl4bWFwVG9BbHBoYVJl cTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJsZSBw aXhtYXAgOwp9IHBleENvcHlaQnVmZmVyVG9QaXhtYXBSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBwZXhSZW5kZXJlciByZHIgOwogICAgRHJhd2FibGUgcGl4bWFwIDsKfSBwZXhDb3B5UGl4bWFw VG9aQnVmZmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENB UkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAg IHBleFBDIHBjIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2tbM107Cn0gcGV4Q29weVBDVG9QaXBl bGluZVN0YXRlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENB UkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAg IHBleFBDIHBjIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2tbM107Cn0gcGV4Q29weVBpcGVsaW5l U3RhdGVUb1BDUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENB UkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZv cm1hdCA7CiAgICBwZXhTd2l0Y2ggbm9ybWFsaXplZFZhbHVlczsKICAgIENBUkQ4IHVudXNlZDsK ICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBJTlQxNiB4IDsKICAgIElOVDE2IHkgOwogICAgQ0FS RDE2IHdpZHRoIDsKICAgIENBUkQxNiBoZWlnaHQgOwp9IHBleEdldFpCdWZmZXJSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1 bnVzZWQ7CiAgICBDQVJEMzIgbnVtVmFsdWVzIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBJ TlQxNiB4IDsKICAgIElOVDE2IHkgOwogICAgQ0FSRDE2IHdpZHRoIDsKICAgIENBUkQxNiBoZWln aHQgOwogICAgcGV4U3dpdGNoIG5vcm1hbGl6ZWRWYWx1ZXM7CiAgICBDQVJEOCBtb3JlX3VudXNl ZFszXTsKCn0gcGV4UHV0WkJ1ZmZlclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRl cmVyIHJkciA7Cn0gcGV4SW5pdE11bHRpcGFzc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBl eFJlbmRlcmVyIHJkciA7CiAgICBDQVJEMTYgbXVsdGlwYXNzX2NvbnRyb2w7CiAgICBDQVJEMTYg dW51c2VkOwp9IHBleE5leHRQYXNzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UmVuZGVy ZXIgcmRyIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwp9IHBleEJlZ2luU3RydWN0dXJlUmVxOwoK dHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhFbmRTdHJ1Y3R1cmVSZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwog ICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIENBUkQzMiBudW1Db21tYW5kcyA7Cgp9IHBleFJlbmRl ck91dHB1dENvbW1hbmRzUmVxOwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciBy ZHIgOwogICAgcGV4U3RydWN0dXJlIHNpZCA7CiAgICBwZXhFbGVtZW50UmFuZ2UgcmFuZ2U7Cn0g cGV4UmVuZGVyRWxlbWVudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciBy ZHIgOwogICAgQ0FSRDMyIG51bUVsUmVmcyA7Cgp9IHBleEFjY3VtdWxhdGVTdGF0ZVJlcTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJsZSBkcmF3YWJs ZSA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKfSBwZXhSZW5kZXJOZXR3b3JrUmVxOwoKdHlwZWRl ZiBwZXhSZXNvdXJjZVJlcSBwZXhDcmVhdGVTdHJ1Y3R1cmVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBwZXhTdHJ1Y3R1cmUgc3JjIDsKICAgIHBleFN0cnVjdHVyZSBkc3QgOwp9IHBleENvcHlT dHJ1Y3R1cmVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtU3RydWN0dXJlcyA7 Cgp9IHBleERlc3Ryb3lTdHJ1Y3R1cmVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg cmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51 bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgaXRlbU1hc2sgOwogICAgcGV4U3RydWN0 dXJlIHNpZCA7Cn0gcGV4R2V0U3RydWN0dXJlSW5mb1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAg IHBleFN0cnVjdHVyZSBzaWQgOwogICAgQ0FSRDE2IHBlcm1pc3Npb24gOwogICAgQ0FSRDE2IHVu dXNlZCA7Cn0gcGV4U2V0U3RydWN0dXJlUGVybWlzc2lvblJlcTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBw ZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIHBleEVsZW1lbnRSYW5nZSByYW5nZTsKfSBwZXhHZXRFbGVt ZW50SW5mb1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAg Q0FSRDE2IHdoaWNoIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleEdldFN0cnVjdHVyZXNJbk5ldHdv cmtSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bj b2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIENBUkQx NiBwYXRoT3JkZXIgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBDQVJEMzIgcGF0aERlcHRoIDsK fSBwZXhHZXRBbmNlc3RvcnNSZXE7Cgp0eXBlZGVmIHBleEdldEFuY2VzdG9yc1JlcSBwZXhHZXRE ZXNjZW5kYW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBD QVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBG b3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIHBl eEVsZW1lbnRSYW5nZSByYW5nZTsKfSBwZXhGZXRjaEVsZW1lbnRzUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5n dGggOwogICAgcGV4U3RydWN0dXJlIHNpZCA7CiAgICBDQVJEMTYgbW9kZSA7CiAgICBDQVJEMTYg cGFkIDsKfSBwZXhTZXRFZGl0aW5nTW9kZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0 cnVjdHVyZSBzaWQgOwogICAgcGV4RWxlbWVudFBvcyBwb3NpdGlvbjsKfSBwZXhTZXRFbGVtZW50 UG9pbnRlclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAg SU5UMzIgbGFiZWwgOwogICAgSU5UMzIgb2Zmc2V0IDsKfSBwZXhTZXRFbGVtZW50UG9pbnRlckF0 TGFiZWxSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIElO VDMyIHBpY2tJZCA7CiAgICBJTlQzMiBvZmZzZXQgOwp9IHBleFNldEVsZW1lbnRQb2ludGVyQXRQ aWNrSURSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIHBl eEVsZW1lbnRQb3MgcG9zaXRpb247CiAgICBDQVJEMzIgZGlyZWN0aW9uIDsKICAgIENBUkQzMiBu dW1JbmNscyA7CiAgICBDQVJEMzIgbnVtRXhjbHMgOwoKCgoKfSBwZXhFbGVtZW50U2VhcmNoUmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsK ICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBD QVJEMTYgdW51c2VkIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAgQ0FSRDMyIG51bUNvbW1h bmRzIDsKCn0gcGV4U3RvcmVFbGVtZW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0 cnVjdHVyZSBzaWQgOwogICAgcGV4RWxlbWVudFJhbmdlIHJhbmdlOwp9IHBleERlbGV0ZUVsZW1l bnRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9w Y29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4U3RydWN0dXJlIHNpZCA7CiAgICBwZXhF bGVtZW50UG9zIHBvc2l0aW9uOwogICAgSU5UMzIgbGFiZWwgOwp9IHBleERlbGV0ZUVsZW1lbnRz VG9MYWJlbFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAg SU5UMzIgbGFiZWwxIDsKICAgIElOVDMyIGxhYmVsMiA7Cn0gcGV4RGVsZXRlQmV0d2VlbkxhYmVs c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNv ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzcmMgOwogICAgcGV4RWxl bWVudFJhbmdlIHNyY1JhbmdlOwogICAgcGV4U3RydWN0dXJlIGRzdCA7CiAgICBwZXhFbGVtZW50 UG9zIGRzdFBvc2l0aW9uOwp9IHBleENvcHlFbGVtZW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIHBleFN0cnVjdHVyZSBvbGRfaWQgOwogICAgcGV4U3RydWN0dXJlIG5ld19pZCA7Cn0gcGV4 Q2hhbmdlU3RydWN0dXJlUmVmc1JlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4Q3JlYXRl TmFtZVNldFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleE5hbWVTZXQgc3JjIDsKICAgIHBl eE5hbWVTZXQgZHN0IDsKfSBwZXhDb3B5TmFtZVNldFJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VS ZXEgcGV4RnJlZU5hbWVTZXRSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleEdldE5hbWVT ZXRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bj b2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhOYW1lU2V0IG5zIDsKICAgIENBUkQxNiBh Y3Rpb24gOwogICAgQ0FSRDE2IHVudXNlZCA7Cgp9IHBleENoYW5nZU5hbWVTZXRSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1 bnVzZWQgOwogICAgcGV4U0Mgc2MgOwogICAgcGV4Qml0bWFzayBpdGVtTWFzayA7Cgp9IHBleENy ZWF0ZVNlYXJjaENvbnRleHRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTQyBzcmMgOwog ICAgcGV4U0MgZHN0IDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sgOwp9IHBleENvcHlTZWFyY2hD b250ZXh0UmVxOwoKdHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhGcmVlU2VhcmNoQ29udGV4dFJl cTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAg Q0FSRDE2IHVudXNlZCA7CiAgICBwZXhTQyBzYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsK fSBwZXhHZXRTZWFyY2hDb250ZXh0UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5 cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleFNDIHNjIDsKICAg IHBleEJpdG1hc2sgaXRlbU1hc2sgOwoKfSBwZXhDaGFuZ2VTZWFyY2hDb250ZXh0UmVxOwoKdHlw ZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhTZWFyY2hOZXR3b3JrUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIHBleExv b2t1cFRhYmxlIG1hcmtlckJ1bmRsZSA7CiAgICBwZXhMb29rdXBUYWJsZSB0ZXh0QnVuZGxlIDsK ICAgIHBleExvb2t1cFRhYmxlIGxpbmVCdW5kbGUgOwogICAgcGV4TG9va3VwVGFibGUgaW50ZXJp b3JCdW5kbGUgOwogICAgcGV4TG9va3VwVGFibGUgZWRnZUJ1bmRsZSA7CiAgICBwZXhMb29rdXBU YWJsZSBjb2xvdXJUYWJsZSA7CiAgICBwZXhMb29rdXBUYWJsZSBkZXB0aEN1ZVRhYmxlIDsKICAg IHBleExvb2t1cFRhYmxlIGxpZ2h0VGFibGUgOwogICAgcGV4TG9va3VwVGFibGUgY29sb3VyQXBw cm94VGFibGUgOwogICAgcGV4TG9va3VwVGFibGUgcGF0dGVyblRhYmxlIDsKICAgIHBleExvb2t1 cFRhYmxlIHRleHRGb250VGFibGUgOwogICAgcGV4TmFtZVNldCBoaWdobGlnaHRJbmNsIDsKICAg IHBleE5hbWVTZXQgaGlnaGxpZ2h0RXhjbCA7CiAgICBwZXhOYW1lU2V0IGludmlzSW5jbCA7CiAg ICBwZXhOYW1lU2V0IGludmlzRXhjbCA7CiAgICBDQVJEMTYgYnVmZmVyTW9kZSA7CiAgICBDQVJE MTYgcGFkIDsKfSBwZXhDcmVhdGVQaGlnc1drc1JlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEg cGV4RnJlZVBoaWdzV2tzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRl eCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAg ICBwZXhCaXRtYXNrIGl0ZW1NYXNrWzJdIDsKfSBwZXhHZXRXa3NJbmZvUmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBs ZW5ndGggOwogICAgRHJhd2FibGUgZHJhd2FibGUgOwp9IHBleEdldER5bmFtaWNzUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBwZXhUYWJs ZUluZGV4IGluZGV4IDsKICAgIHBleFBoaWdzV2tzIHdrcyA7Cn0gcGV4R2V0Vmlld1JlcFJlcTsK CnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4UmVkcmF3QWxsU3RydWN0dXJlc1JlcTsKCnR5cGVk ZWYgcGV4UmVzb3VyY2VSZXEgcGV4VXBkYXRlV29ya3N0YXRpb25SZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAgQ0FSRDMyIG51bVJlY3RzIDsKCn0gcGV4UmVk cmF3Q2xpcFJlZ2lvblJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RXhlY3V0ZURlZmVy cmVkQWN0aW9uc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBD QVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAg ICBwZXhUYWJsZUluZGV4IGluZGV4MSA7CiAgICBwZXhUYWJsZUluZGV4IGluZGV4MiA7CiAgICBD QVJEMTYgcHJpb3JpdHkgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4U2V0Vmlld1ByaW9yaXR5UmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsK ICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIHBleEVudW1UeXBl SW5kZXggZGlzcGxheVVwZGF0ZSA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhTZXREaXNwbGF5VXBk YXRlTW9kZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3Jt YXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAgQ0FSRDMy IG51bUNvb3JkcyA7Cgp9IHBleE1hcERDdG9XQ1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBl eEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IGluZGV4IDsKICAgIHBleFBoaWdz V2tzIHdrcyA7CiAgICBDQVJEMzIgbnVtQ29vcmRzIDsKCn0gcGV4TWFwV0N0b0RDUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYg dW51c2VkIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAgICBwZXhWaWV3UmVwIHZpZXdSZXA7Cn0g cGV4U2V0Vmlld1JlcFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAg ICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXgg ZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAg cGV4TnBjU3Vidm9sdW1lIG5wY1N1YnZvbHVtZTsKfSBwZXhTZXRXa3NXaW5kb3dSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1 bnVzZWQgOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIHBleFZpZXdwb3J0IHZpZXdwb3J0Owp9 IHBleFNldFdrc1ZpZXdwb3J0UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NXa3Mg d2tzIDsKICAgIHBleEVudW1UeXBlSW5kZXggbW9kZSA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhT ZXRIbGhzck1vZGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAg Q0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwog ICAgQ0FSRDE2IGJ1ZmZlck1vZGUgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4U2V0V2tzQnVmZmVy TW9kZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBv cGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQg OwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAgcGV4U3RydWN0 dXJlIHNpZCA7CiAgICBQRVhGTE9BVCBwcmlvcml0eTsKfSBwZXhQb3N0U3RydWN0dXJlUmVxOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAg IENBUkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIHBleFN0cnVjdHVyZSBz aWQgOwp9IHBleFVucG9zdFN0cnVjdHVyZVJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4 VW5wb3N0QWxsU3RydWN0dXJlc1JlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4R2V0V2tz UG9zdGluZ3NSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9y bWF0IDsKICAgIHBleEVudW1UeXBlSW5kZXggZGV2VHlwZSA7CiAgICBwZXhQaGlnc1drcyB3a3Mg OwogICAgcGV4Qml0bWFzayBpdGVtTWFzayA7Cn0gcGV4R2V0UGlja0RldmljZVJlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVu dXNlZCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAgcGV4RW51bVR5cGVJbmRleCBkZXZUeXBl IDsKICAgIENBUkQxNiB1bnVzZWQyIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sgOwoKfSBwZXhD aGFuZ2VQaWNrRGV2aWNlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NXa3Mgd2tz IDsKICAgIHBleFBpY2tNZWFzdXJlIHBtOwogICAgcGV4RW51bVR5cGVJbmRleCBkZXZUeXBlIDsK ICAgIENBUkQxNiBwYWQgOwp9IHBleENyZWF0ZVBpY2tNZWFzdXJlUmVxOwoKdHlwZWRlZiBwZXhS ZXNvdXJjZVJlcSBwZXhGcmVlUGlja01lYXN1cmVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBw ZXhQaWNrTWVhc3VyZSBwbSA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKfSBwZXhHZXRQaWNr TWVhc3VyZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFBpY2tNZWFzdXJlIHBtIDsKICAg IENBUkQzMiBudW1CeXRlcyA7CgoKfSBwZXhVcGRhdGVQaWNrTWVhc3VyZVJlcTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4RW51bVR5cGVJ bmRleCBtZXRob2QgOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIGRyYXdhYmxl IDsKICAgIElOVDMyIHNpZCA7Cgp9IHBleEJlZ2luUGlja09uZVJlcTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3Ro IDsKICAgIHBleFJlbmRlcmVyIHJkciA7Cn0gcGV4RW5kUGlja09uZVJlcTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVu Z3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4RW51bVR5cGVJbmRl eCBtZXRob2QgOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsK ICAgIHBleFN0cnVjdHVyZSBzaWQgOwoKfSBwZXhQaWNrT25lUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IG1l dGhvZCA7CiAgICBDQVJEOCBzZW5kRXZlbnQ7CiAgICBDQVJEOCB1bnVzZWRbM107CiAgICBwZXhS ZW5kZXJlciByZHIgOwogICAgRHJhd2FibGUgZHJhd2FibGUgOwogICAgSU5UMzIgc2lkIDsKICAg IENBUkQzMiBwaWNrTWF4SGl0cyA7Cgp9IHBleEJlZ2luUGlja0FsbFJlcTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVu Z3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7Cn0gcGV4RW5kUGlja0FsbFJlcTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4RW51bVR5cGVJ bmRleCBtZXRob2QgOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIGRyYXdhYmxl IDsKICAgIENBUkQzMiBwaWNrTWF4SGl0cyA7Cgp9IHBleFBpY2tBbGxSZXE7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxl bmd0aCA7CiAgICBwZXhGb250IGZvbnQgOwogICAgQ0FSRDMyIG51bUJ5dGVzIDsKCgp9IHBleE9w ZW5Gb250UmVxOwoKdHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBwZXhDbG9zZUZvbnRSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhGb250IGZvbnQgOwp9IHBleFF1ZXJ5Rm9udFJlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIENBUkQxNiBtYXhOYW1lcyA7CiAgICBDQVJEMTYgbnVtQ2hhcnMgOwoK Cn0gcGV4TGlzdEZvbnRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDE2IHVudXNlZCA7 CiAgICBDQVJEMTYgbWF4TmFtZXMgOwogICAgQ0FSRDE2IG51bUNoYXJzIDsKICAgIENBUkQxNiBw YWQgOwoKCn0gcGV4TGlzdEZvbnRzV2l0aEluZm9SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBw ZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB0ZXh0UGF0aCA7CiAgICBwZXhU YWJsZUluZGV4IGZvbnRHcm91cEluZGV4IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgWElEIGlk IDsKICAgIFBFWEZMT0FUIGNoYXJFeHBhbnNpb247CiAgICBQRVhGTE9BVCBjaGFyU3BhY2luZzsK ICAgIFBFWEZMT0FUIGNoYXJIZWlnaHQ7CiAgICBwZXhUZXh0QWxpZ25tZW50RGF0YSB0ZXh0QWxp Z25tZW50OwogICAgQ0FSRDMyIG51bVN0cmluZ3MgOwoKCn0gcGV4UXVlcnlUZXh0RXh0ZW50c1Jl cTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAg Q0FSRDE2IHVudXNlZDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIHBleENvbG91ckFwcHJv eEVudHJ5IENvbG91ckFwcHJveDsKfSBwZXhRdWVyeUNvbG9yQXBwcm94UmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBs ZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBwZXhFbnVtVHlwZUlu ZGV4IFRNRGltZW5zaW9uIDsKICAgIENBUkQzMiBUTWlkIDsKICAgIENBUkQxNiBudW1MZXZlbHMg OwogICAgcGV4RW51bVR5cGVJbmRleCB0ZXhlbFR5cGUgOwoKfSBwZXhDcmVhdGVDb2xvck1pcE1h cFRNUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9w Y29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7 CiAgICBwZXhFbnVtVHlwZUluZGV4IFRNRGltZW5zaW9uIDsKICAgIENBUkQzMiBUTWlkIDsKICAg IENBUkQxNiBudW1MZXZlbHMgOwogICAgcGV4RW51bVR5cGVJbmRleCB0ZXhlbFR5cGUgOwogICAg RHJhd2FibGUgZHJhd2FibGUgOwogICAgQ0FSRDE2IGx1bW5hbmNlU2VsZWN0b3IgOwogICAgQ0FS RDE2IGFscGhhU2VsZWN0b3IgOwoKCgoKfSBwZXhDcmVhdGVDb2xvck1pcE1hcGZyb21SZXNSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIHBl eEVudW1UeXBlSW5kZXggdW51c2VkIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIFBFWEZM T0FUIHNyY193ZWlnaHQ7CiAgICBQRVhGTE9BVCBkc3Rfd2VpZ2h0Owp9IHBleEFjY3VtdWxhdGVC dWZmZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7Cn0gcGV4 QWxsb2NBY2N1bUJ1ZmZlclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIERyYXdhYmxlIGRyYXdh YmxlIDsKfSBwZXhGcmVlQWNjdW1CdWZmZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3 YWJsZSBkcmF3YWJsZSA7Cn0gcGV4TG9hZEFjY3VtQnVmZmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IHVu dXNlZCA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7CiAgICBQRVhGTE9BVCBzY2FsZTsKfSBwZXhS ZXR1cm5BY2N1bUJ1ZmZlclJlcTsKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50 SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRleCBtYXJrZXJUeXBlIDsKICAgIENBUkQxNiBw YWQgOwp9IHBleE1hcmtlclR5cGU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5m byBoZWFkOwogICAgUEVYRkxPQVQgc2NhbGU7Cn0gcGV4TWFya2VyU2NhbGU7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4VGFibGVJbmRleCBpbmRleCA7 CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhNYXJrZXJCdW5kbGVJbmRleDsKCnR5cGVkZWYgcGV4TWFy a2VyQnVuZGxlSW5kZXggcGV4TWFya2VyQ29sb3VySW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVu ZGxlSW5kZXggcGV4VGV4dENvbG91ckluZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4 IHBleExpbmVDb2xvdXJJbmRleDsKdHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBwZXhTdXJm YWNlQ29sb3VySW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4QmZTdXJmYWNl Q29sb3VySW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4U3VyZmFjZUVkZ2VD b2xvdXJJbmRleDsKCnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4VGV4dEZvbnRJbmRl eDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb2xv dXJTcGVjaWZpZXIgY29sb3VyU3BlYzsKCn0gcGV4TWFya2VyQ29sb3VyOwoKdHlwZWRlZiBwZXhN YXJrZXJDb2xvdXIgcGV4VGV4dENvbG91cjsKdHlwZWRlZiBwZXhNYXJrZXJDb2xvdXIgcGV4TGlu ZUNvbG91cjsKdHlwZWRlZiBwZXhNYXJrZXJDb2xvdXIgcGV4U3VyZmFjZUNvbG91cjsKdHlwZWRl ZiBwZXhNYXJrZXJDb2xvdXIgcGV4QmZTdXJmYWNlQ29sb3VyOwp0eXBlZGVmIHBleE1hcmtlckNv bG91ciBwZXhTdXJmYWNlRWRnZUNvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1l bnRJbmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlwZUluZGV4IHN0eWxlIDsKICAgIENBUkQxNiBwYWQg Owp9IHBleEF0ZXh0U3R5bGU7Cgp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleFRleHRC dW5kbGVJbmRleDsKdHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBwZXhMaW5lQnVuZGxlSW5k ZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4SW50ZXJpb3JCdW5kbGVJbmRleDsK dHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBwZXhJbnRlcmlvclN0eWxlSW5kZXg7CnR5cGVk ZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4QmZJbnRlcmlvclN0eWxlSW5kZXg7CnR5cGVkZWYg cGV4TWFya2VyQnVuZGxlSW5kZXggcGV4RWRnZUJ1bmRsZUluZGV4Owp0eXBlZGVmIHBleE1hcmtl ckJ1bmRsZUluZGV4IHBleFZpZXdJbmRleDsKdHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBw ZXhEZXB0aEN1ZUluZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleENvbG91ckFw cHJveEluZGV4OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAg IENBUkQxNiBwcmVjaXNpb24gOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4VGV4dFByZWNpc2lvbjsK CnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBQRVhGTE9BVCBl eHBhbnNpb247Cn0gcGV4Q2hhckV4cGFuc2lvbjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVs ZW1lbnRJbmZvIGhlYWQ7CiAgICBQRVhGTE9BVCBzcGFjaW5nOwp9IHBleENoYXJTcGFjaW5nOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIFBFWEZMT0FUIGhl aWdodDsKfSBwZXhDaGFySGVpZ2h0Owp0eXBlZGVmIHBleENoYXJIZWlnaHQgcGV4QXRleHRIZWln aHQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4VmVj dG9yMkQgdXA7Cn0gcGV4Q2hhclVwVmVjdG9yOwp0eXBlZGVmIHBleENoYXJVcFZlY3RvciBwZXhB dGV4dFVwVmVjdG9yOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsK ICAgIENBUkQxNiBwYXRoIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleFRleHRQYXRoOwp0eXBlZGVm IHBleFRleHRQYXRoIHBleEF0ZXh0UGF0aDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1l bnRJbmZvIGhlYWQ7CiAgICBwZXhUZXh0QWxpZ25tZW50RGF0YSBhbGlnbm1lbnQ7Cn0gcGV4VGV4 dEFsaWdubWVudDsKdHlwZWRlZiBwZXhUZXh0QWxpZ25tZW50IHBleEF0ZXh0QWxpZ25tZW50OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBl SW5kZXggbGluZVR5cGUgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4TGluZVR5cGU7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgUEVYRkxPQVQgd2lkdGg7Cn0g cGV4TGluZVdpZHRoOwp0eXBlZGVmIHBleExpbmVXaWR0aCBwZXhTdXJmYWNlRWRnZVdpZHRoOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEN1cnZlQXBw cm94IGFwcHJveDsKfSBwZXhDdXJ2ZUFwcHJveGltYXRpb247Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRleCBwb2x5bGluZUludGVy cCA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhQb2x5bGluZUludGVycDsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlwZUluZGV4IGludGVyaW9y U3R5bGUgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4SW50ZXJpb3JTdHlsZTsKdHlwZWRlZiBwZXhJ bnRlcmlvclN0eWxlIHBleEJmSW50ZXJpb3JTdHlsZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBl eEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhSZWZsZWN0aW9uQXR0ciByZWZsZWN0aW9uQXR0cjsK fSBwZXhTdXJmYWNlUmVmbEF0dHI7CnR5cGVkZWYgcGV4U3VyZmFjZVJlZmxBdHRyIHBleEJmU3Vy ZmFjZVJlZmxBdHRyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsK ICAgIHBleEVudW1UeXBlSW5kZXggcmVmbGVjdGlvbk1vZGVsIDsKICAgIENBUkQxNiBwYWQgOwp9 IHBleFN1cmZhY2VSZWZsTW9kZWw7CnR5cGVkZWYgcGV4U3VyZmFjZVJlZmxNb2RlbCBwZXhCZlN1 cmZhY2VSZWZsTW9kZWw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFk OwogICAgcGV4RW51bVR5cGVJbmRleCBzdXJmYWNlSW50ZXJwIDsKICAgIENBUkQxNiBwYWQgOwp9 IHBleFN1cmZhY2VJbnRlcnA7CnR5cGVkZWYgcGV4U3VyZmFjZUludGVycCBwZXhCZlN1cmZhY2VJ bnRlcnA7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4 U3VyZmFjZUFwcHJveCBhcHByb3g7Cn0gcGV4U3VyZmFjZUFwcHJveGltYXRpb247Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q3VsbE1vZGUgY3VsbE1v ZGUgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4Q3VsbGluZ01vZGU7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4U3dpdGNoIGRpc3Rpbmd1aXNoOwogICAg QllURSBwYWRbM107Cn0gcGV4RGlzdGluZ3Vpc2hGbGFnOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleFZlY3RvcjJEIHNpemU7Cn0gcGV4UGF0dGVyblNp emU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29v cmQyRCBwb2ludDsKfSBwZXhQYXR0ZXJuUmVmUHQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhF bGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29vcmQzRCByZWZQdDsKICAgIHBleFZlY3RvcjNEIHZl Y3RvcjE7CiAgICBwZXhWZWN0b3IzRCB2ZWN0b3IyOwp9IHBleFBhdHRlcm5BdHRyOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleFN3aXRjaCBvbm9mZjsK ICAgIEJZVEUgcGFkWzNdOwp9IHBleFN1cmZhY2VFZGdlRmxhZzsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlwZUluZGV4IGVkZ2VUeXBlIDsK ICAgIENBUkQxNiBwYWQgOwp9IHBleFN1cmZhY2VFZGdlVHlwZTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhBc2ZBdHRyaWJ1dGUgYXR0cmlidXRlIDsK ICAgIHBleEFzZlZhbHVlIHNvdXJjZTsKICAgIEJZVEUgcGFkWzNdOwp9IHBleFNldEFzZlZhbHVl czsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb21w b3NpdGlvbiBjb21wVHlwZTsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4TWF0cml4IG1hdHJp eDsKfSBwZXhMb2NhbFRyYW5zZm9ybTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJ bmZvIGhlYWQ7CiAgICBwZXhDb21wb3NpdGlvbiBjb21wVHlwZTsKICAgIENBUkQxNiB1bnVzZWQg OwogICAgcGV4TWF0cml4M1gzIG1hdHJpeDNYMzsKfSBwZXhMb2NhbFRyYW5zZm9ybTJEOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleE1hdHJpeCBtYXRy aXg7Cn0gcGV4R2xvYmFsVHJhbnNmb3JtOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVu dEluZm8gaGVhZDsKICAgIHBleE1hdHJpeDNYMyBtYXRyaXgzWDM7Cn0gcGV4R2xvYmFsVHJhbnNm b3JtMkQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4 U3dpdGNoIG9ub2ZmOwogICAgQllURSBwYWRbM107Cn0gcGV4TW9kZWxDbGlwOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggbW9k ZWxDbGlwT3BlcmF0b3IgOwogICAgQ0FSRDE2IG51bUhhbGZTcGFjZXMgOwoKfSBwZXhNb2RlbENs aXBWb2x1bWU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAg cGV4RW51bVR5cGVJbmRleCBtb2RlbENsaXBPcGVyYXRvciA7CiAgICBDQVJEMTYgbnVtSGFsZlNw YWNlcyA7Cgp9IHBleE1vZGVsQ2xpcFZvbHVtZTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 RWxlbWVudEluZm8gaGVhZDsKfSBwZXhSZXN0b3JlTW9kZWxDbGlwOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBudW1FbmFibGUgOwogICAgQ0FS RDE2IG51bURpc2FibGUgOwoKCgoKfSBwZXhMaWdodFN0YXRlOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQzMiBwaWNrSWQgOwp9IHBleFBpY2tJZDsK CnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMzIgaGxo c3JJRCA7Cn0gcGV4SGxoc3JJZGVudGlmaWVyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxl bWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggbW9kZWwgOwogICAgQ0FSRDE2IHBh ZCA7Cn0gcGV4UmVuZGVyaW5nQ29sb3VyTW9kZWw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhF bGVtZW50SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRleCBjaGFyYWN0ZXJpc3RpY3MgOwog ICAgQ0FSRDE2IGxlbmd0aCA7Cgp9IHBleFBhcmFTdXJmQ2hhcmFjdGVyaXN0aWNzOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKCn0gcGV4QWRkVG9OYW1lU2V0Owp0 eXBlZGVmIHBleEFkZFRvTmFtZVNldCBwZXhSZW1vdmVGcm9tTmFtZVNldDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhTdHJ1Y3R1cmUgaWQgOwp9IHBl eEV4ZWN1dGVTdHJ1Y3R1cmU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBo ZWFkOwogICAgSU5UMzIgbGFiZWwgOwp9IHBleExhYmVsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBudW1FbGVtZW50cyA7CiAgICBDQVJEMTYg dW51c2VkIDsKCgp9IHBleEFwcGxpY2F0aW9uRGF0YTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBl eEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMzIgaWQgOwogICAgQ0FSRDE2IG51bUVsZW1lbnRz IDsKICAgIENBUkQxNiB1bnVzZWQgOwoKCn0gcGV4R3NlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKCn0gcGV4TWFya2VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKCn0gcGV4TWFya2VyMkQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29vcmQzRCBvcmlnaW47CiAgICBwZXhWZWN0 b3IzRCB2ZWN0b3IxOwogICAgcGV4VmVjdG9yM0QgdmVjdG9yMjsKICAgIENBUkQxNiBudW1FbmNv ZGluZ3MgOwogICAgQ0FSRDE2IHVudXNlZCA7Cgp9IHBleFRleHQ7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29vcmQyRCBvcmlnaW47CiAgICBDQVJE MTYgbnVtRW5jb2RpbmdzIDsKICAgIENBUkQxNiB1bnVzZWQgOwoKfSBwZXhUZXh0MkQ7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29vcmQzRCBvcmln aW47CiAgICBwZXhDb29yZDNEIG9mZnNldDsKICAgIENBUkQxNiBudW1FbmNvZGluZ3MgOwogICAg Q0FSRDE2IHVudXNlZCA7Cgp9IHBleEFubm90YXRpb25UZXh0OwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkMkQgb3JpZ2luOwogICAgcGV4Q29v cmQyRCBvZmZzZXQ7CiAgICBDQVJEMTYgbnVtRW5jb2RpbmdzIDsKICAgIENBUkQxNiB1bnVzZWQg OwoKfSBwZXhBbm5vdGF0aW9uVGV4dDJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVu dEluZm8gaGVhZDsKCn0gcGV4UG9seWxpbmU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVt ZW50SW5mbyBoZWFkOwoKfSBwZXhQb2x5bGluZTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBwZXhC aXRtYXNrU2hvcnQgdmVydGV4QXR0cmlicyA7CiAgICBDQVJEMzIgbnVtTGlzdHMgOwoKfSBwZXhQ b2x5bGluZVNldDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAg ICBDQVJEMTYgY3VydmVPcmRlciA7CiAgICBwZXhDb29yZFR5cGUgY29vcmRUeXBlIDsKICAgIFBF WEZMT0FUIHRtaW47CiAgICBQRVhGTE9BVCB0bWF4OwogICAgQ0FSRDMyIG51bUtub3RzIDsKICAg IENBUkQzMiBudW1Qb2ludHMgOwoKCn0gcGV4TnVyYkN1cnZlOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBzaGFwZSA7CiAgICBwZXhTd2l0Y2gg aWdub3JlRWRnZXM7CiAgICBDQVJEOCBwYWQ7Cgp9IHBleEZpbGxBcmVhOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBzaGFwZSA7CiAgICBwZXhT d2l0Y2ggaWdub3JlRWRnZXM7CiAgICBDQVJEOCB1bnVzZWQ7Cgp9IHBleEZpbGxBcmVhMkQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgQ0FSRDE2IHNoYXBl IDsKICAgIHBleFN3aXRjaCBpZ25vcmVFZGdlczsKICAgIENBUkQ4IHVudXNlZDsKICAgIHBleENv bG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBwZXhCaXRtYXNrU2hvcnQgZmFjZXRBdHRyaWJzIDsK ICAgIHBleEJpdG1hc2tTaG9ydCB2ZXJ0ZXhBdHRyaWJzIDsKICAgIENBUkQxNiB1bnVzZWQyIDsK Cn0gcGV4RXh0RmlsbEFyZWE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBo ZWFkOwogICAgQ0FSRDE2IHNoYXBlIDsKICAgIHBleFN3aXRjaCBpZ25vcmVFZGdlczsKICAgIENB UkQ4IGNvbnRvdXJIaW50OwogICAgQ0FSRDMyIG51bUxpc3RzIDsKCn0gcGV4RmlsbEFyZWFTZXQ7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgQ0FSRDE2IHNo YXBlIDsKICAgIHBleFN3aXRjaCBpZ25vcmVFZGdlczsKICAgIENBUkQ4IGNvbnRvdXJIaW50Owog ICAgQ0FSRDMyIG51bUxpc3RzIDsKCn0gcGV4RmlsbEFyZWFTZXQyRDsKCgp0eXBlZGVmIHN0cnVj dCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgQ0FSRDE2IHNoYXBlIDsKICAgIHBleFN3 aXRjaCBpZ25vcmVFZGdlczsKICAgIENBUkQ4IGNvbnRvdXJIaW50OwogICAgcGV4Q29sb3VyVHlw ZSBjb2xvdXJUeXBlIDsKICAgIHBleEJpdG1hc2tTaG9ydCBmYWNldEF0dHJpYnMgOwogICAgcGV4 Qml0bWFza1Nob3J0IHZlcnRleEF0dHJpYnMgOwogICAgQ0FSRDE2IHVudXNlZDIgOwogICAgQ0FS RDMyIG51bUxpc3RzIDsKCgp9IHBleEV4dEZpbGxBcmVhU2V0OwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAg ICBwZXhCaXRtYXNrU2hvcnQgZmFjZXRBdHRyaWJzIDsKICAgIHBleEJpdG1hc2tTaG9ydCB2ZXJ0 ZXhBdHRyaWJzIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDMyIG51bVZlcnRpY2VzIDsK CgoKfSBwZXhUcmlhbmdsZVN0cmlwOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudElu Zm8gaGVhZDsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBDQVJEMTYgbVB0cyA7 CiAgICBDQVJEMTYgblB0cyA7CiAgICBwZXhCaXRtYXNrU2hvcnQgZmFjZXRBdHRyaWJzIDsKICAg IHBleEJpdG1hc2tTaG9ydCB2ZXJ0ZXhBdHRyaWJzIDsKICAgIENBUkQxNiBzaGFwZSA7CgoKCn0g cGV4UXVhZHJpbGF0ZXJhbE1lc2g7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5m byBoZWFkOwogICAgQ0FSRDE2IHNoYXBlIDsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7 CiAgICBDQVJEMTYgRkFTX0F0dHJpYnV0ZXMgOwogICAgQ0FSRDE2IHZlcnRleEF0dHJpYnV0ZXMg OwogICAgQ0FSRDE2IGVkZ2VBdHRyaWJ1dGVzIDsKICAgIENBUkQ4IGNvbnRvdXJIaW50OwogICAg cGV4U3dpdGNoIGNvbnRvdXJDb3VudHNGbGFnOwogICAgQ0FSRDE2IG51bUZBUyA7CiAgICBDQVJE MTYgbnVtVmVydGljZXMgOwogICAgQ0FSRDE2IG51bUVkZ2VzIDsKICAgIENBUkQxNiBudW1Db250 b3VycyA7CgoKCgoKCn0gcGV4U09GQVM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50 SW5mbyBoZWFkOwogICAgcGV4Q29vcmRUeXBlIHR5cGUgOwogICAgQ0FSRDE2IHVPcmRlciA7CiAg ICBDQVJEMTYgdk9yZGVyIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDMyIG51bVVrbm90 cyA7CiAgICBDQVJEMzIgbnVtVmtub3RzIDsKICAgIENBUkQxNiBtUHRzIDsKICAgIENBUkQxNiBu UHRzIDsKICAgIENBUkQzMiBudW1MaXN0cyA7CgoKCgp9IHBleE51cmJTdXJmYWNlOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkM0QgcG9pbnQx OwogICAgcGV4Q29vcmQzRCBwb2ludDI7CiAgICBwZXhDb29yZDNEIHBvaW50MzsKICAgIENBUkQz MiBkeCA7CiAgICBDQVJEMzIgZHkgOwoKCn0gcGV4Q2VsbEFycmF5OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkMkQgcG9pbnQxOwogICAgcGV4 Q29vcmQyRCBwb2ludDI7CiAgICBDQVJEMzIgZHggOwogICAgQ0FSRDMyIGR5IDsKCgp9IHBleENl bGxBcnJheTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAg IHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleENv b3JkM0QgcG9pbnQxOwogICAgcGV4Q29vcmQzRCBwb2ludDI7CiAgICBwZXhDb29yZDNEIHBvaW50 MzsKICAgIENBUkQzMiBkeCA7CiAgICBDQVJEMzIgZHkgOwoKfSBwZXhFeHRDZWxsQXJyYXk7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgSU5UMzIgZ2RwSWQg OwogICAgQ0FSRDMyIG51bVBvaW50cyA7CiAgICBDQVJEMzIgbnVtQnl0ZXMgOwoKCgp9IHBleEdk cDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBJTlQzMiBn ZHBJZCA7CiAgICBDQVJEMzIgbnVtUG9pbnRzIDsKICAgIENBUkQzMiBudW1CeXRlcyA7CgoKCn0g cGV4R2RwMkQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwp9IHBl eE5vb3A7CgoKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdo YXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIHJkciA7CiAgICBCWVRF IHBhZFsyNF07Cn0gcGV4TWF4SGl0c1JlYWNoZWRFdmVudDsKIyA1NiAiLi4vaW5jbHVkZS9taVN0 cnVjdC5oIiAyCgoKdHlwZWRlZiBkZHBleDRydG4gKCpjc3NUYWJsZVR5cGUpKCk7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQgZWxlbWVudFR5cGU7CiAgICAgICAgZGRVU0hPUlQg cGV4T0NsZW5ndGg7CiMgNzMgIi4uL2luY2x1ZGUvbWlTdHJ1Y3QuaCIKfSBtaUdlbmVyaWNTdHI7 Cgp0eXBlZGVmIHN0cnVjdCBfbWlDU1NFbGVtZW50IHsKICAgICAgICBzdHJ1Y3QgX21pQ1NTRWxl bWVudCAqcHJldiwgKm5leHQ7CiAgICAgICAgZGlTdHJ1Y3RIYW5kbGUgcFN0cnVjdDsKICAgICAg ICBtaUdlbmVyaWNTdHIgZWxlbWVudDsKCn0gbWlHZW5lcmljRWxlbWVudFN0ciwgKm1pR2VuZXJp Y0VsZW1lbnRQdHI7Cgp0eXBlZGVmIHN0cnVjdCBfbWlDU1NFbGVtZW50SGVhZCB7CiAgICAgICAg c3RydWN0IF9taUNTU0VsZW1lbnRIZWFkICpuZXh0LCAqcHJldjsKfSBtaUVsZW1lbnRIZWFkU3Ry OwoKCgp0eXBlZGVmIHN0cnVjdCBfbWlTdHJ1Y3RIZWFkZXIgewoKICAgICAgICBkZFVTSE9SVCBl ZGl0TW9kZTsKICAgICAgICBkZFVMT05HIG51bUVsZW1lbnRzOwogICAgICAgIGRkVUxPTkcgdG90 YWxTaXplOwogICAgICAgIG1pR2VuZXJpY0VsZW1lbnRQdHIgcFplcm9FbGVtZW50OwogICAgICAg IG1pR2VuZXJpY0VsZW1lbnRQdHIgcExhc3RFbGVtZW50OwogICAgICAgIG1pR2VuZXJpY0VsZW1l bnRQdHIgcEN1cnJFbGVtZW50OwogICAgICAgIGRkTE9ORyBjdXJyRWxlbWVudE9mZnNldDsKICAg ICAgICBsaXN0b2ZPYmogKnBhcmVudHM7CiAgICAgICAgbGlzdG9mT2JqICpjaGlsZHJlbjsKICAg ICAgICBsaXN0b2ZPYmogKndrc1Bvc3RlZFRvOwogICAgICAgIGxpc3RvZk9iaiAqd2tzQXBwZWFy T247CiAgICAgICAgZGRVTE9ORyByZWZDb3VudDsKICAgICAgICBkZEJPT0wgZnJlZUZsYWc7Cgp9 IG1pU3RydWN0U3RyLCAqbWlTdHJ1Y3RQdHI7CiMgMTI1ICIuLi9pbmNsdWRlL21pU3RydWN0Lmgi CnR5cGVkZWYgZW51bSB7CiAgICAgICAgRVNfWUVTID0gMCwKICAgICAgICBFU19QT1AgPSAxLAog ICAgICAgIEVTX0ZPTExPV19QSUNLID0gMiwKICAgICAgICBFU19GT0xMT1dfU0VBUkNIID0gMwp9 IG1pRXhlY1N0clN0YXRlOwoKCnR5cGVkZWYgc3RydWN0IF9taVBQTGV2ZWwgewogIGRkUGlja1Bh dGggcHA7CiAgc3RydWN0IF9taVBQTGV2ZWwgKnVwOwp9IG1pUFBMZXZlbDsKCgoKCgoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgICAgIG1pRXhlY1N0clN0YXRlIGV4ZWNfc3RyX2ZsYWc7CiAgICAgICAg ZGRVTE9ORyBwaWNrSWQ7CiAgICAgICAgZGRVTE9ORyBST0NvZmZzZXQ7CiAgICAgICAgZGRQaWNr UGF0aCAqcF9jdXJyX3BpY2tfZWw7CiAgICAgICAgZGRFbGVtZW50UmVmICpwX2N1cnJfc2NfZWw7 CiAgICAgICAgZGRTSE9SVCBtYXhfZGVwdGg7CiAgICAgICAgbWlQUExldmVsICpwX3BpY2tfcGF0 aDsKfSBtaVRyYXZlcnNlclN0YXRlOwojIDU2ICJtaVBjazFQcmltLmMiIDIKIyAxICIuLi9pbmNs dWRlL21pRm9udC5oIiAxCiMgNTYgIi4uL2luY2x1ZGUvbWlGb250LmgiCiMgMSAiLi4vLi4vLi4v aW5jbHVkZS9kZHBleDMuaCIgMQojIDU3ICIuLi9pbmNsdWRlL21pRm9udC5oIiAyCiMgNzUgIi4u L2luY2x1ZGUvbWlGb250LmgiCnR5cGVkZWYgZW51bSB7CiAgICBQQVRIXzJEPTAsCiAgICBQQVRI XzNEPTEsCiAgICBQQVRIXzREPTIKfSBGb250X3BhdGhfdHlwZTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIEZvbnRfcGF0aF90eXBlIHR5cGU7CiAgICBkZEZMT0FUIGNlbnRlcjsKICAgIGRkRkxPQVQg cmlnaHQ7CiAgICBkZFVMT05HIG5fdmVydGljZXM7CiAgICBtaUxpc3RIZWFkZXIgc3Ryb2tlczsK fSBDaF9zdHJva2VfZGF0YTsKCnR5cGVkZWYgZW51bSB7CiAgICBGT05UX1BPTFlMSU5FUz0wLAog ICAgRk9OVF9TUExJTkVTPTEsCiAgICBGT05UX1BPTFlHT05TPTIKfSBGb250X3R5cGU7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBGb250X3R5cGUgZm9udF90eXBlOwogICAgY2hhciBuYW1lWzgwXTsK ICAgIHVuc2lnbmVkIGxvbmcgbnVtX2NoOwogICAgZmxvYXQgdG9wLCBib3R0b20sIG1heF93aWR0 aDsKICAgIENoX3N0cm9rZV9kYXRhICoqY2hfZGF0YTsKICAgIHBleEZvbnRJbmZvIGZvbnRfaW5m bzsKICAgIHBleEZvbnRQcm9wICpwcm9wZXJ0aWVzOwogICAgaW50IGx1dFJlZkNvdW50OwogICAg aW50IGZyZWVGbGFnOwp9IG1pRm9udEhlYWRlcjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRkxP QVQgdG9wLCBib3R0b20sIHdpZHRoOwp9IE1ldGFfZm9udDsKCnR5cGVkZWYgc3RydWN0IHsKICBj aGFyIHByb3BuYW1lWzgwXTsKICBjaGFyIHByb3B2YWx1ZVs4MF07Cn1Qcm9wZXJ0eTsKCnR5cGVk ZWYgc3RydWN0CnsKICAgIGludCBtYWdpYzsKICAgIGNoYXIgbmFtZVs4MF07CiAgICBmbG9hdCB0 b3AsCiAgICAgICAgICAgIGJvdHRvbSwKICAgICAgICAgICAgbWF4X3dpZHRoOwogICAgaW50IG51 bV9jaDsKICAgIGludCBudW1fcHJvcHM7CiAgICBQcm9wZXJ0eSAqcHJvcGVydGllczsKfSBGb250 X2ZpbGVfaGVhZGVyOwoKdHlwZWRlZiBzdHJ1Y3QKewogICAgZmxvYXQgY2VudGVyLAogICAgICAg ICAgICByaWdodDsKICAgIGxvbmcgb2Zmc2V0OwoKfSBEaXNwYXRjaDsKIyA1NyAibWlQY2sxUHJp bS5jIiAyCiMgMSAiLi4vaW5jbHVkZS9taVdrcy5oIiAxCiMgNTAgIi4uL2luY2x1ZGUvbWlXa3Mu aCIKIyAxICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4NC5oIiAxCiMgNTEgIi4uL2luY2x1ZGUvbWlX a3MuaCIgMgojIDEgIi4uL2luY2x1ZGUvbWlOUy5oIiAxCiMgNTIgIi4uL2luY2x1ZGUvbWlXa3Mu aCIgMgoKIyAxICIuLi9pbmNsdWRlL21pSW5mby5oIiAxCiMgNjUgIi4uL2luY2x1ZGUvbWlJbmZv LmgiCiMgMSAiLi4vaW5jbHVkZS9taU5TLmgiIDEKIyA2NiAiLi4vaW5jbHVkZS9taUluZm8uaCIg MgojIDU0ICIuLi9pbmNsdWRlL21pV2tzLmgiIDIKIyAxICIuLi9pbmNsdWRlL21pUGljay5oIiAx CiMgNTAgIi4uL2luY2x1ZGUvbWlQaWNrLmgiCiMgMSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleDQu aCIgMQojIDUxICIuLi9pbmNsdWRlL21pUGljay5oIiAyCiMgNTkgIi4uL2luY2x1ZGUvbWlQaWNr LmgiCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRW51bVR5cGVJbmRleCB0eXBlOwogICAgZGRVU0hP UlQgc3RhdHVzOwogICAgbGlzdG9mT2JqICpwYXRoOwogICAgZGRVU0hPUlQgcGF0aE9yZGVyOwog ICAgZGlOU0hhbmRsZSBpbmNsdXNpb247CiAgICBkaU5TSGFuZGxlIGV4Y2x1c2lvbjsKICAgIHVu aW9uIHsKICAgICAgICBjaGFyIGRjX2RhdGFfcmVjOwogICAgICAgIGNoYXIgbnBjX2RhdGFfcmVj OwogICAgfSBkYXRhX3JlYzsKICAgIGRkRW51bVR5cGVJbmRleCBwZXQ7CiAgICBkZFZpZXdwb3J0 IGVjaG9Wb2x1bWU7CiAgICBkZFVTSE9SVCBlY2hvU3dpdGNoOwogICAgZGRQb2ludGVyIGRldlBy aXY7Cn0gbWlQaWNrRGV2aWNlOwoKdHlwZWRlZiBzdHJ1Y3QgewoKICAgICAgICBkaVdLU0hhbmRs ZSBwV2tzOwogICAgICAgIGRkRW51bVR5cGVJbmRleCB0eXBlOwogICAgICAgIGRkVVNIT1JUIHN0 YXR1czsKICAgICAgICBsaXN0b2ZPYmogKnBhdGg7CiAgICAgICAgZGRVU0hPUlQgcGF0aE9yZGVy OwogICAgZGlOU0hhbmRsZSBpbmNsX2hhbmRsZTsKICAgIGRpTlNIYW5kbGUgZXhjbF9oYW5kbGU7 CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgY2hhciBkY19kYXRhX3JlYzsKICAgICAg ICAgICAgICAgIGNoYXIgbnBjX2RhdGFfcmVjOwogICAgICAgIH0gZGF0YV9yZWM7CiAgICAgICAg dW5pb24gewogICAgICAgICAgICAgICAgZGRQQ19EQ19IaXRCb3ggZGNfaGl0X2JveDsKICAgICAg ICAgICAgICAgIGRkUENfTlBDX0hpdFZvbHVtZSBucGNfaGl0X3ZvbHVtZTsKICAgICAgICB9IGlu cHV0X3JlYzsKICAgIGRkUG9pbnRlciBkZXZQcml2Owp9IG1pUGlja01lYXN1cmVTdHI7CiMgNTUg Ii4uL2luY2x1ZGUvbWlXa3MuaCIgMgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX2RkT3JkU3RydWN0IHsK ICAgICAgICBkaVN0cnVjdEhhbmRsZSBwc3RydWN0OwogICAgICAgIGRkRkxPQVQgcHJpb3JpdHk7 CiAgICAgICAgc3RydWN0IF9kZE9yZFN0cnVjdCAqbmV4dDsKfSBkZE9yZFN0cnVjdDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgICAgICBkZFVMT05HIG51bVN0cnVjdHM7CiAgICAgICAgZGRPcmRTdHJ1 Y3QgKnBvc3RydWN0Owp9IGxpc3RvZk9yZFN0cnVjdDsKIyAxMDMgIi4uL2luY2x1ZGUvbWlXa3Mu aCIKdHlwZWRlZiBzdHJ1Y3QgX2RkT3JkVmlldyB7CiAgICAgICAgc2hvcnQgZGVmaW5lZDsKICAg ICAgICBkZFVTSE9SVCBmaXJzdF92aWV3OwogICAgICAgIGRkVVNIT1JUIGxhc3RfdmlldzsKICAg ICAgICBzdHJ1Y3QgX2RkT3JkVmlldyAqaGlnaGVyOwogICAgICAgIHN0cnVjdCBfZGRPcmRWaWV3 ICpsb3dlcjsKfSBkZE9yZFZpZXc7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVTE9ORyBk ZWZpbmVkX3ZpZXdzOwogICAgICAgIGRkT3JkVmlldyAqaGlnaGVzdDsKICAgICAgICBkZE9yZFZp ZXcgKmxvd2VzdDsKICAgICAgICBkZE9yZFZpZXcgKmZyZWU7CiAgICAgICAgZGRPcmRWaWV3IGVu dHJpZXNbKCA2ICogMiArIDMpXTsKfSBsaXN0b2ZPcmRWaWV3OwoKCgoKCgoKdHlwZWRlZiBzdHJ1 Y3QgX21pV2tzIHsKCiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGRpc3BsYXlVcGRhdGU7CiAgICAg ICAgZGRCWVRFIHZpc3VhbFN0YXRlOwogICAgICAgIGRkQllURSBkaXNwbGF5U3VyZmFjZTsKICAg ICAgICBkZEJZVEUgdmlld1VwZGF0ZTsKCgogICAgICAgIGxpc3RvZk9yZFZpZXcgdmlld3M7CiAg ICAgICAgZGlMVVRIYW5kbGUgcmVxVmlld1RhYmxlOwoKCiAgICAgICAgZGRVTE9ORyBkZWx0YXZp ZXdNYXNrOwoKICAgICAgICBkZEJZVEUgd2tzVXBkYXRlOwoKICAgICAgICBkZEJZVEUgd2tzTWFz azsKICAgICAgICBkZE5wY1N1YnZvbHVtZSByZXFOcGNTdWJ2b2x1bWU7CgogICAgICAgIGRkVmll d3BvcnQgcmVxdmlld3BvcnQ7CgogICAgICAgIGRkQllURSBobGhzclVwZGF0ZTsKICAgICAgICBk ZEVudW1UeXBlSW5kZXggcmVxaGxoc3JNb2RlOwoKICAgICAgICBkZFJlbmRlcmVyUHRyIHBSZW5k OwojIDE3NiAiLi4vaW5jbHVkZS9taVdrcy5oIgogICAgICAgIGRkQllURSBidWZmZXJVcGRhdGU7 CiAgICAgICAgZGRVU0hPUlQgY3VyQnVmZmVyTW9kZTsKICAgICAgICBkZFVTSE9SVCByZXFCdWZm ZXJNb2RlOwogICAgICAgIGxpc3RvZk9yZFN0cnVjdCBwb3N0ZWRTdHJ1Y3RzOwogICAgICAgIGRk QllURSBkeW5hbWljc1tNQVhfRFlOQU1JQ107CgogICAgICAgIGRkQk9PTCBmcmVlRmxhZzsKICAg ICAgICBkZExPTkcgcmVmQ291bnQ7CiAgICAgICAgbWlQaWNrRGV2aWNlIGRldmljZXNbMl07Cgog ICAgICAgIGxpc3RvZk9iaiAqcHdrc0xpc3Q7CiAgICAgICAgRHJhd2FibGVQdHIgZG91YmxlRHJh d2FibGVzWzJdOwogICAgICAgIGludCBjdXJEb3VibGVCdWZmZXI7CiAgICAgICAgaW50IGhhc0Rv dWJsZUJ1ZmZlcjsKICAgICAgICBpbnQgdXNpbmdEb3VibGVCdWZmZXI7CiAgICAgICAgRHJhd2Fi bGVQdHIgcEN1ckRyYXdhYmxlOwp9IG1pV2tzU3RyLCAqbWlXa3NQdHI7CiMgNTggIm1pUGNrMVBy aW0uYyIgMgojIDEgIi4uL2luY2x1ZGUvbWlUZXh0LmgiIDEKIyA1NyAiLi4vaW5jbHVkZS9taVRl eHQuaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRWZWN0b3IyRCB0cmFuczsKICAgIG1pTGlzdEhl YWRlciAqcGF0aDsKICB9bWlDaGFyUGF0aDsKCnR5cGVkZWYgc3RydWN0IHsKCiAgICBtaUNoYXJQ YXRoICpwYXRoczsKICAgIGRkRkxPQVQgeGZvcm1bNF1bNF07CgogIH1taVRleHRFbGVtZW50Owoj IDU5ICJtaVBjazFQcmltLmMiIDIKIyAxICIuLi9pbmNsdWRlL21pQ2xpcC5oIiAxCiMgNTMgIi4u L2luY2x1ZGUvbWlDbGlwLmgiCiMgMSAiLi4vaW5jbHVkZS9taUxpZ2h0LmgiIDEKIyA1NCAiLi4v aW5jbHVkZS9taUNsaXAuaCIgMgojIDYwICJtaVBjazFQcmltLmMiIDIKIyA3NCAibWlQY2sxUHJp bS5jIgpkZHBleDJydG4KbWlQaWNrMVBvbHlMaW5lKHBSZW5kLCBwZGRjLCBpbnB1dF9saXN0KQoK ICAgIGRkUmVuZGVyZXJQdHIgcFJlbmQ7CiAgICBtaUREQ29udGV4dCAqcGRkYzsKICAgIG1pTGlz dEhlYWRlciAqaW5wdXRfbGlzdDsKewoKCgoKCgogICAgICBpZiAoaW5wdXRfbGlzdC0+bnVtTGlz dHMgPiAwKSB7CiAgICAgICAgICBwZGRjLT5TdGF0aWMucGljay5zdGF0dXMgPSAxOwogICAgICB9 CiAgICAgIHJldHVybiAoMCk7Cn0KIyAxMDUgIm1pUGNrMVByaW0uYyIKZGRwZXgycnRuCm1pUGlj azFUZXh0KHBSZW5kLCBwZGRjLCBpbnB1dF9saXN0KQoKICAgIGRkUmVuZGVyZXJQdHIgcFJlbmQ7 CiAgICBtaUREQ29udGV4dCAqcGRkYzsKICAgIG1pTGlzdEhlYWRlciAqaW5wdXRfbGlzdDsKCnsK CgoKCgoKICAgICAgaWYgKGlucHV0X2xpc3QtPm51bUxpc3RzID4gMCkgewogICAgICAgICAgcGRk Yy0+U3RhdGljLnBpY2suc3RhdHVzID0gMTsKICAgICAgfQogICAgICByZXR1cm4gKDApOwp9CiMg MTM3ICJtaVBjazFQcmltLmMiCmRkcGV4MnJ0bgptaVBpY2sxTWFya2VyKHBSZW5kLCBwZGRjLCBp bnB1dF9saXN0KQoKICAgIGRkUmVuZGVyZXJQdHIgcFJlbmQ7CiAgICBtaUREQ29udGV4dCAqcGRk YzsKICAgIG1pTGlzdEhlYWRlciAqaW5wdXRfbGlzdDsKCnsKCgoKCgoKICAgICAgaWYgKGlucHV0 X2xpc3QtPm51bUxpc3RzID4gMCkgewogICAgICAgICAgcGRkYy0+U3RhdGljLnBpY2suc3RhdHVz ID0gMTsKICAgICAgfQogICAgICByZXR1cm4gKDApOwp9CiMgMTY4ICJtaVBjazFQcmltLmMiCnN0 YXRpYwpkZHBleDJydG4KQ2hlY2tGQXJlYVBpY2sxIChpbl9saXN0KQoKICAgIG1pTGlzdEhlYWRl ciAqaW5fbGlzdDsKCnsKCgoKCiAgICBsaXN0b2ZkZFBvaW50ICpwb2x5X2xpc3Q7CiAgICBkZFBv aW50VW5pb24gcHRfbGlzdDsKICAgIGludCBwdF9zaXplOwogICAgZGRDb29yZDJEIHYxLCB2MjsK ICAgIGRkU0hPUlQgeF9zYW1lLCB5X3NhbWU7CiAgICBpbnQgaSwgajsKICAgIGludCB2Y291bnQs IGhjb3VudDsKIyAyMjkgIm1pUGNrMVByaW0uYyIKICAgIHBvbHlfbGlzdCA9IGluX2xpc3QtPmRk TGlzdDsKCiAgICB7IGlmICgoISgoaW5fbGlzdC0+dHlwZSkgJiAoMTw8MCkpKSkgeyBpZiAoKCgo aW5fbGlzdC0+dHlwZSkgJiAoMzw8MSkpID09ICgxPDwxKSkpIHB0X3NpemUgPSBzaXplb2YoZGRD b29yZDJEKTsgZWxzZSBpZiAoKCgoaW5fbGlzdC0+dHlwZSkgJiAoMzw8MSkpID09ICgyPDwxKSkp IHB0X3NpemUgPSBzaXplb2YoZGRDb29yZDNEKTsgZWxzZSBwdF9zaXplID0gc2l6ZW9mKGRkQ29v cmQ0RCk7IH0gZWxzZSB7IGlmICgoKChpbl9saXN0LT50eXBlKSAmICgzPDwxKSkgPT0gKDE8PDEp KSkgcHRfc2l6ZSA9IHNpemVvZihkZENvb3JkMkRTKTsgZWxzZSBwdF9zaXplID0gc2l6ZW9mKGRk Q29vcmQzRFMpOyB9IGlmICgoKGluX2xpc3QtPnR5cGUpICYgKDE8PDMpKSkgcHRfc2l6ZSArPSBz aXplb2YoZGRWZWN0b3IzRCk7IGlmICgoKGluX2xpc3QtPnR5cGUpICYgKDc8PDUpKSkgeyBpZiAo KCgoaW5fbGlzdC0+dHlwZSkgJiAoNzw8NSkpID09ICgxPDw1KSkpIHB0X3NpemUgKz0gc2l6ZW9m KGRkSW5kZXhlZENvbG91cik7IGVsc2UgaWYgKCgoKGluX2xpc3QtPnR5cGUpICYgKDc8PDUpKSA9 PSAoMjw8NSkpKSBwdF9zaXplICs9IHNpemVvZihkZFJnYjhDb2xvdXIpOyBlbHNlIGlmICgoKChp bl9saXN0LT50eXBlKSAmICg3PDw1KSkgPT0gKDM8PDUpKSkgcHRfc2l6ZSArPSBzaXplb2YoZGRS Z2IxNkNvbG91cik7IGVsc2UgcHRfc2l6ZSArPSBzaXplb2YoZGRSZ2JGbG9hdENvbG91cik7IH0g aWYgKCgoaW5fbGlzdC0+dHlwZSkgJiAoMTw8NCkpKSBwdF9zaXplICs9IHNpemVvZihkZFVMT05H KTsgfTsKCiAgICBmb3IgKGk9MDsgaTxpbl9saXN0LT5udW1MaXN0czsgaSsrLCBwb2x5X2xpc3Qr KykgewoKCgogICAgICAgIHB0X2xpc3QucHRyID0gcG9seV9saXN0LT5wdHMucHRyOwoKICAgICAg ICBmb3IgKGo9MDsgajxpbl9saXN0LT5kZExpc3QtPm51bVBvaW50czsgaisrKSB7CgoKCiAgICAg ICAgICAgIHB0X2xpc3QucHRyICs9IHB0X3NpemU7CgoKCiAgICAgICAgICAgIGlmICgocHRfbGlz dC5wMkRTcHQtPnggPiAtMSkgJiYKICAgICAgICAgICAgICAgIChwdF9saXN0LnAyRFNwdC0+eCA8 IDEpICYmCiAgICAgICAgICAgICAgICAocHRfbGlzdC5wMkRTcHQtPnkgPiAtMSkgJiYKICAgICAg ICAgICAgICAgIChwdF9saXN0LnAyRFNwdC0+eSA8IDEpKQoKCgoKICAgICAgICAgICAgICAgIHJl dHVybiAoMCk7CiAgICAgICAgfQogICAgfQoKCgoKCgogICAgdmNvdW50ID0gaGNvdW50ID0gMDsK CgoKCiAgICBwb2x5X2xpc3QgPSBpbl9saXN0LT5kZExpc3Q7CgogICAgZm9yIChpPTA7IGk8aW5f bGlzdC0+bnVtTGlzdHM7IGkrKywgcG9seV9saXN0KyspIHsKCgoKICAgICAgICBwdF9saXN0LnB0 ciA9IHBvbHlfbGlzdC0+cHRzLnB0cjsKCiAgICAgICAgZm9yIChqPTA7IGo8aW5fbGlzdC0+ZGRM aXN0LT5udW1Qb2ludHMtMTsgaisrKSB7CgoKCiAgICAgICAgICAgIHYxLnggPSBwdF9saXN0LnAy RFNwdC0+eDsKICAgICAgICAgICAgdjEueSA9IHB0X2xpc3QucDJEU3B0LT55OwoKCgogICAgICAg ICAgICBwdF9saXN0LnB0ciArPSBwdF9zaXplOwoKCgogICAgICAgICAgICB2Mi54ID0gcHRfbGlz dC5wMkRTcHQtPng7CiAgICAgICAgICAgIHYyLnkgPSBwdF9saXN0LnAyRFNwdC0+eTsKCgoKICAg ICAgICAgICAgaWYgKCgoKHYxLngtdjIueCkgPCAwID8gLSh2MS54LXYyLngpIDogKHYxLngtdjIu eCkpIDwgMS4wZS0zMCkpCiAgICAgICAgICAgICAgICB4X3NhbWUgPSAxOwogICAgICAgICAgICBl bHNlCiAgICAgICAgICAgICAgICB4X3NhbWUgPSAwOwoKICAgICAgICAgICAgaWYgKCgoKHYxLnkt djIueSkgPCAwID8gLSh2MS55LXYyLnkpIDogKHYxLnktdjIueSkpIDwgMS4wZS0zMCkpCiAgICAg ICAgICAgICAgICB5X3NhbWUgPSAxOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB5 X3NhbWUgPSAwOwoKICAgICAgICAgICAgaWYgKCh4X3NhbWUpJiYodjEueCA+IDApKQoKCgogICAg ICAgICAgICAgICAgdmNvdW50Kys7CgogICAgICAgICAgICBpZiAoKHlfc2FtZSkmJih2MS55ID4g MCkpCgoKCiAgICAgICAgICAgICAgICBoY291bnQrKzsKCiAgICAgICAgfQoKCgogICAgICAgIGlm ICh2Y291bnQlMikgewogICAgICAgICAgICByZXR1cm4gKDApOwogICAgICAgIH0KICAgICAgICBl bHNlIHsKCgoKCiAgICAgICAgICAgIGlmICgodmNvdW50ID09IDApJiYoaGNvdW50JTIpKSByZXR1 cm4gKDApOwogICAgICAgIH0KCiAgICAgICAgY29udGludWU7CgogICAgfQoKICAgIHJldHVybiAo LTEpOwp9CiMgMzUxICJtaVBjazFQcmltLmMiCmRkcGV4MnJ0bgptaVBpY2sxRmlsbEFyZWEocFJl bmQsIHBkZGMsIGlucHV0X2xpc3QsIGlucHV0X2ZhY2V0LCBzaGFwZSwgbm9lZGdlcykKCiAgICBk ZFJlbmRlcmVyUHRyIHBSZW5kOwogICAgbWlERENvbnRleHQgKnBkZGM7CiAgICBtaUxpc3RIZWFk ZXIgKmlucHV0X2xpc3Q7CiAgICBsaXN0b2ZkZEZhY2V0ICppbnB1dF9mYWNldDsKICAgIGRkQml0 bWFza1Nob3J0IHNoYXBlOwogICAgZGRVQ0hBUiBub2VkZ2VzOwoKewoKCgoKICAgIGlmIChDaGVj a0ZBcmVhUGljazEgKGlucHV0X2xpc3QpID09IDApIHsKICAgICAgICBwZGRjLT5TdGF0aWMucGlj ay5zdGF0dXMgPSAxOwogICAgfQogICAgcmV0dXJuICgwKTsKfQojIDM4NCAibWlQY2sxUHJpbS5j IgpkZHBleDJydG4KbWlQaWNrMVRyaVN0cmlwKHBSZW5kLCBwZGRjLCBpbnB1dF9saXN0LCBpbnB1 dF9mYWNldCkKCiAgICBkZFJlbmRlcmVyUHRyIHBSZW5kOwogICAgbWlERENvbnRleHQgKnBkZGM7 CiAgICBtaUxpc3RIZWFkZXIgKmlucHV0X2xpc3Q7CiAgICBsaXN0b2ZkZEZhY2V0ICppbnB1dF9m YWNldDsKCnsKIyA0MDEgIm1pUGNrMVByaW0uYyIKICAgIGlmICgoaW5wdXRfbGlzdC0+bnVtTGlz dHMpID4gMCkgewogICAgICAgIHBkZGMtPlN0YXRpYy5waWNrLnN0YXR1cyA9IDE7CiAgICB9CiAg ICByZXR1cm4gKDApOwp9Cg==