public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: dan@devonit.com To: gcc-gnats@gcc.gnu.org Subject: c/7375: GCC 3.2 crash while compiling XFree86 4.02 Date: Mon, 22 Jul 2002 09:26:00 -0000 [thread overview] Message-ID: <20020722162221.10831.qmail@sources.redhat.com> (raw) >Number: 7375 >Category: c >Synopsis: GCC 3.2 crash while compiling XFree86 4.02 >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Jul 22 09:26:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: dan@devonit.com >Release: 3.2 20020518 >Organization: >Environment: This is FreeBSD 4.6-RELEASE. >Description: gcc crashes while compiling XFree86 4.02 on FreeBSD 4.6-RELEASE with -march=athlon -O2 -malign-double. -O3 is also failing. rm -f miPck1Prim.o LD_LIBRARY_PATH=../../../../../../exports/lib cc -pipe -fomit-frame-pointer -O2 -malign-double -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 miPck1Prim.c: In function `CheckFAreaPick1': miPck1Prim.c:337: Internal compiler error in ix86_secondary_memory_needed, at config/i386/i386.c:12827 Please submit a full bug report, >How-To-Repeat: Compile xc/programs/Xserver/PEX5/ddpex/mi/level1/miPck1Prim.c with -O2 -fomit-frame-pointer -malign-double -march=athlon >Fix: Compiles without -O2 -march=athlon -malign-double -fomit-frame-pointer. >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 c2ljLmgiCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pMzg2LXBvcnRibGQtZnJlZWJzZDQu Ni8zLjIvaW5jbHVkZS9zdGRhcmcuaCIgMSAzCiMgNDMgIi91c3IvbG9jYWwvbGliL2djYy1saWIv aTM4Ni1wb3J0YmxkLWZyZWVic2Q0LjYvMy4yL2luY2x1ZGUvc3RkYXJnLmgiIDMKdHlwZWRlZiBf X2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyAxMTAgIi91c3IvbG9jYWwvbGliL2dj Yy1saWIvaTM4Ni1wb3J0YmxkLWZyZWVic2Q0LjYvMy4yL2luY2x1ZGUvc3RkYXJnLmgiIDMKdHlw ZWRlZiBfX2dudWNfdmFfbGlzdCB2YV9saXN0OwojIDM3ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUveGY4Nl9hbnNpYy5oIiAyCiMgOTIgIi4uLy4uLy4uLy4uLy4u Ly4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2Fuc2ljLmgiCiMgMSAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3hmODZfbGliYy5oIiAxCiMgMjMgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2xpYmMuaCIKIyAx ICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDExL1hmdW5jcy5oIiAxCiMgMjQg Ii4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2xpYmMuaCIg MgojIDQwICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUveGY4Nl9s aWJjLmgiCnR5cGVkZWYgdm9pZCBYRjg2RklMRTsKZXh0ZXJuIFhGODZGSUxFKiB4Zjg2c3RkaW47 CmV4dGVybiBYRjg2RklMRSogeGY4NnN0ZG91dDsKZXh0ZXJuIFhGODZGSUxFKiB4Zjg2c3RkZXJy OwoKdHlwZWRlZiB2b2lkIFhGODZmcG9zX3Q7CgoKCnR5cGVkZWYgdm9pZCBYRjg2RElSOwoKCgoK c3RydWN0IF94Zjg2ZGlyZW50IHsKICAgICAgICBjaGFyIGRfbmFtZVsyNjMgKzFdOwp9Owp0eXBl ZGVmIHN0cnVjdCBfeGY4NmRpcmVudCBYRjg2RElSRU5UOwoKdHlwZWRlZiB1bnNpZ25lZCBsb25n IHhmODZzaXplX3Q7CnR5cGVkZWYgc2lnbmVkIGxvbmcgeGY4NnNzaXplX3Q7CnR5cGVkZWYgdW5z aWduZWQgbG9uZyB4Zjg2ZGV2X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHhmODZtb2RlX3Q7CnR5 cGVkZWYgdW5zaWduZWQgaW50IHhmODZ1aWRfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgeGY4Nmdp ZF90OwoKc3RydWN0IHhmODZzdGF0IHsKICAgIHhmODZkZXZfdCBzdF9yZGV2Owp9OwoKCnR5cGVk ZWYgaW50IHhmODZrZXlfdDsKCgp0eXBlZGVmIGludCB4Zjg2am1wX2J1ZlsyMF07CiMgOTMgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2Fuc2ljLmgiIDIK IyAxNDUgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS94Zjg2X2Fu c2ljLmgiCmV4dGVybiB2b2lkIHhmODZhYm9ydCh2b2lkKTsKZXh0ZXJuIGludCB4Zjg2YWJzKGlu dCk7CmV4dGVybiBkb3VibGUgeGY4NmFjb3MoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2YXNp bihkb3VibGUpOwpleHRlcm4gZG91YmxlIHhmODZhdGFuKGRvdWJsZSk7CmV4dGVybiBkb3VibGUg eGY4NmF0YW4yKGRvdWJsZSxkb3VibGUpOwpleHRlcm4gZG91YmxlIHhmODZhdG9mKGNvbnN0IGNo YXIqKTsKZXh0ZXJuIGludCB4Zjg2YXRvaShjb25zdCBjaGFyKik7CmV4dGVybiBsb25nIHhmODZh dG9sKGNvbnN0IGNoYXIqKTsKZXh0ZXJuIHZvaWQgKnhmODZic2VhcmNoKGNvbnN0IHZvaWQgKiwg Y29uc3Qgdm9pZCAqLCB4Zjg2c2l6ZV90LCB4Zjg2c2l6ZV90LAogICAgICAgICAgICAgICAgICAg ICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKikpOwpleHRlcm4gZG91Ymxl IHhmODZjZWlsKGRvdWJsZSk7CmV4dGVybiB2b2lkKiB4Zjg2Y2FsbG9jKHhmODZzaXplX3QseGY4 NnNpemVfdCk7CmV4dGVybiB2b2lkIHhmODZjbGVhcmVycihYRjg2RklMRSopOwpleHRlcm4gZG91 YmxlIHhmODZjb3MoZG91YmxlKTsKZXh0ZXJuIHZvaWQgeGY4NmV4aXQoaW50KTsKZXh0ZXJuIGRv dWJsZSB4Zjg2ZXhwKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgeGY4NmZhYnMoZG91YmxlKTsKZXh0 ZXJuIGludCB4Zjg2ZmNsb3NlKFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4NmZlb2YoWEY4NkZJ TEUqKTsKZXh0ZXJuIGludCB4Zjg2ZmVycm9yKFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4NmZm bHVzaChYRjg2RklMRSopOwpleHRlcm4gaW50IHhmODZmZ2V0YyhYRjg2RklMRSopOwpleHRlcm4g aW50IHhmODZnZXRjKFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4NmZnZXRwb3MoWEY4NkZJTEUq LFhGODZmcG9zX3QqKTsKZXh0ZXJuIGNoYXIqIHhmODZmZ2V0cyhjaGFyKixJTlQzMixYRjg2RklM RSopOwpleHRlcm4gaW50IHhmODZmaW5pdGUoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2Zmxv b3IoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2Zm1vZChkb3VibGUsZG91YmxlKTsKZXh0ZXJu IFhGODZGSUxFKiB4Zjg2Zm9wZW4oY29uc3QgY2hhciosY29uc3QgY2hhciopOwpleHRlcm4gZG91 YmxlIHhmODZmcmV4cChkb3VibGUsIGludCopOwpleHRlcm4gaW50IHhmODZwcmludGYoY29uc3Qg Y2hhciosLi4uKTsKZXh0ZXJuIGludCB4Zjg2ZnByaW50ZihYRjg2RklMRSosY29uc3QgY2hhcios Li4uKTsKZXh0ZXJuIGludCB4Zjg2ZnB1dGMoaW50LFhGODZGSUxFKik7CmV4dGVybiBpbnQgeGY4 NmZwdXRzKGNvbnN0IGNoYXIqLFhGODZGSUxFKik7CmV4dGVybiB4Zjg2c2l6ZV90IHhmODZmcmVh ZCh2b2lkKix4Zjg2c2l6ZV90LHhmODZzaXplX3QsWEY4NkZJTEUqKTsKZXh0ZXJuIHZvaWQgeGY4 NmZyZWUodm9pZCopOwpleHRlcm4gWEY4NkZJTEUqIHhmODZmcmVvcGVuKGNvbnN0IGNoYXIqLGNv bnN0IGNoYXIqLFhGODZGSUxFKik7CgpleHRlcm4gaW50IHhmODZmc2NhbmYoWEY4NkZJTEUqLGNv bnN0IGNoYXIqLC4uLik7CgoKCgpleHRlcm4gaW50IHhmODZmc2VlayhYRjg2RklMRSosbG9uZyxp bnQpOwpleHRlcm4gaW50IHhmODZmc2V0cG9zKFhGODZGSUxFKixjb25zdCBYRjg2ZnBvc190Kik7 CmV4dGVybiBsb25nIHhmODZmdGVsbChYRjg2RklMRSopOwpleHRlcm4geGY4NnNpemVfdCB4Zjg2 ZndyaXRlKGNvbnN0IHZvaWQqLHhmODZzaXplX3QseGY4NnNpemVfdCxYRjg2RklMRSopOwpleHRl cm4gY2hhciogeGY4NmdldGVudihjb25zdCBjaGFyKik7CmV4dGVybiBpbnQgeGY4NmlzYWxudW0o aW50KTsKZXh0ZXJuIGludCB4Zjg2aXNhbHBoYShpbnQpOwpleHRlcm4gaW50IHhmODZpc2NudHJs KGludCk7CmV4dGVybiBpbnQgeGY4NmlzZGlnaXQoaW50KTsKZXh0ZXJuIGludCB4Zjg2aXNncmFw aChpbnQpOwpleHRlcm4gaW50IHhmODZpc2xvd2VyKGludCk7CmV4dGVybiBpbnQgeGY4NmlzcHJp bnQoaW50KTsKZXh0ZXJuIGludCB4Zjg2aXNwdW5jdChpbnQpOwpleHRlcm4gaW50IHhmODZpc3Nw YWNlKGludCk7CmV4dGVybiBpbnQgeGY4NmlzdXBwZXIoaW50KTsKZXh0ZXJuIGludCB4Zjg2aXN4 ZGlnaXQoaW50KTsKZXh0ZXJuIGxvbmcgeGY4NmxhYnMobG9uZyk7CmV4dGVybiBkb3VibGUgeGY4 NmxkZXhwKGRvdWJsZSxpbnQpOwpleHRlcm4gZG91YmxlIHhmODZsb2coZG91YmxlKTsKZXh0ZXJu IGRvdWJsZSB4Zjg2bG9nMTAoZG91YmxlKTsKZXh0ZXJuIHZvaWQqIHhmODZtYWxsb2MoeGY4NnNp emVfdCk7CmV4dGVybiB2b2lkKiB4Zjg2bWVtY2hyKGNvbnN0IHZvaWQqLGludCx4Zjg2c2l6ZV90 KTsKZXh0ZXJuIGludCB4Zjg2bWVtY21wKGNvbnN0IHZvaWQqLGNvbnN0IHZvaWQqLHhmODZzaXpl X3QpOwpleHRlcm4gdm9pZCogeGY4Nm1lbWNweSh2b2lkKixjb25zdCB2b2lkKix4Zjg2c2l6ZV90 KTsKZXh0ZXJuIHZvaWQqIHhmODZtZW1tb3ZlKHZvaWQqLGNvbnN0IHZvaWQqLHhmODZzaXplX3Qp OwpleHRlcm4gdm9pZCogeGY4Nm1lbXNldCh2b2lkKixpbnQseGY4NnNpemVfdCk7CmV4dGVybiBk b3VibGUgeGY4Nm1vZGYoZG91YmxlLGRvdWJsZSopOwpleHRlcm4gdm9pZCB4Zjg2cGVycm9yKGNv bnN0IGNoYXIqKTsKZXh0ZXJuIGRvdWJsZSB4Zjg2cG93KGRvdWJsZSxkb3VibGUpOwpleHRlcm4g dm9pZCB4Zjg2cXNvcnQodm9pZCosIHhmODZzaXplX3QsIHhmODZzaXplX3QsCiAgICAgICAgICAg ICAgICAgICAgICBpbnQoKikoY29uc3Qgdm9pZCosIGNvbnN0IHZvaWQqKSk7CmV4dGVybiB2b2lk KiB4Zjg2cmVhbGxvYyh2b2lkKix4Zjg2c2l6ZV90KTsKZXh0ZXJuIGludCB4Zjg2cmVtb3ZlKGNv bnN0IGNoYXIqKTsKZXh0ZXJuIGludCB4Zjg2cmVuYW1lKGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIq KTsKZXh0ZXJuIHZvaWQgeGY4NnJld2luZChYRjg2RklMRSopOwpleHRlcm4gaW50IHhmODZzZXRi dWYoWEY4NkZJTEUqLGNoYXIqKTsKZXh0ZXJuIGludCB4Zjg2c2V0dmJ1ZihYRjg2RklMRSosY2hh ciosaW50LHhmODZzaXplX3QpOwpleHRlcm4gZG91YmxlIHhmODZzaW4oZG91YmxlKTsKZXh0ZXJu IGludCB4Zjg2c3ByaW50ZihjaGFyKixjb25zdCBjaGFyKiwuLi4pOwpleHRlcm4gaW50IHhmODZz bnByaW50ZihjaGFyKix4Zjg2c2l6ZV90LGNvbnN0IGNoYXIqLC4uLik7CmV4dGVybiBkb3VibGUg eGY4NnNxcnQoZG91YmxlKTsKCmV4dGVybiBpbnQgeGY4NnNzY2FuZihjaGFyKixjb25zdCBjaGFy KiwuLi4pOwoKCgoKZXh0ZXJuIGNoYXIqIHhmODZzdHJjYXQoY2hhciosY29uc3QgY2hhciopOwpl eHRlcm4gY2hhciogeGY4NnN0cmNocihjb25zdCBjaGFyKiwgaW50IGMpOwpleHRlcm4gaW50IHhm ODZzdHJjbXAoY29uc3QgY2hhciosY29uc3QgY2hhciopOwpleHRlcm4gaW50IHhmODZzdHJjYXNl Y21wKGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJjcHkoY2hh ciosY29uc3QgY2hhciopOwpleHRlcm4geGY4NnNpemVfdCB4Zjg2c3RyY3Nwbihjb25zdCBjaGFy Kixjb25zdCBjaGFyKik7CmV4dGVybiBjaGFyKiB4Zjg2c3RyZXJyb3IoaW50KTsKZXh0ZXJuIHhm ODZzaXplX3QgeGY4NnN0cmxlbihjb25zdCBjaGFyKik7CmV4dGVybiBjaGFyKiB4Zjg2c3RybmNh dChjaGFyICosIGNvbnN0IGNoYXIgKiwgeGY4NnNpemVfdCk7CmV4dGVybiBpbnQgeGY4NnN0cm5j bXAoY29uc3QgY2hhciosY29uc3QgY2hhcioseGY4NnNpemVfdCk7CmV4dGVybiBpbnQgeGY4NnN0 cm5jYXNlY21wKGNvbnN0IGNoYXIqLGNvbnN0IGNoYXIqLHhmODZzaXplX3QpOwpleHRlcm4gY2hh ciogeGY4NnN0cm5jcHkoY2hhciosY29uc3QgY2hhcioseGY4NnNpemVfdCk7CmV4dGVybiBjaGFy KiB4Zjg2c3RycGJyayhjb25zdCBjaGFyKixjb25zdCBjaGFyKik7CmV4dGVybiBjaGFyKiB4Zjg2 c3RycmNocihjb25zdCBjaGFyKixpbnQpOwpleHRlcm4geGY4NnNpemVfdCB4Zjg2c3Ryc3BuKGNv bnN0IGNoYXIqLGNvbnN0IGNoYXIqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJzdHIoY29uc3QgY2hh ciosY29uc3QgY2hhciopOwpleHRlcm4gZG91YmxlIHhmODZzdHJ0b2QoY29uc3QgY2hhciosY2hh cioqKTsKZXh0ZXJuIGNoYXIqIHhmODZzdHJ0b2soY2hhciosY29uc3QgY2hhciopOwpleHRlcm4g bG9uZyB4Zjg2c3RydG9sKGNvbnN0IGNoYXIqLGNoYXIqKixpbnQpOwpleHRlcm4gdW5zaWduZWQg bG9uZyB4Zjg2c3RydG91bChjb25zdCBjaGFyKixjaGFyKiosaW50KTsKZXh0ZXJuIGRvdWJsZSB4 Zjg2dGFuKGRvdWJsZSk7CmV4dGVybiBYRjg2RklMRSogeGY4NnRtcGZpbGUodm9pZCk7CmV4dGVy biBjaGFyKiB4Zjg2dG1wbmFtKGNoYXIqKTsKZXh0ZXJuIGludCB4Zjg2dG9sb3dlcihpbnQpOwpl eHRlcm4gaW50IHhmODZ0b3VwcGVyKGludCk7CmV4dGVybiBpbnQgeGY4NnVuZ2V0YyhpbnQsWEY4 NkZJTEUqKTsKZXh0ZXJuIGludCB4Zjg2dmZwcmludGYoWEY4NkZJTEUqLGNvbnN0IGNoYXIqLHZh X2xpc3QpOwpleHRlcm4gaW50IHhmODZ2c3ByaW50ZihjaGFyKixjb25zdCBjaGFyKix2YV9saXN0 KTsKZXh0ZXJuIGludCB4Zjg2dnNucHJpbnRmKGNoYXIqLHhmODZzaXplX3QsY29uc3QgY2hhcios dmFfbGlzdCk7CgpleHRlcm4gaW50IHhmODZvcGVuKGNvbnN0IGNoYXIqLCBpbnQsLi4uKTsKZXh0 ZXJuIGludCB4Zjg2Y2xvc2UoaW50KTsKZXh0ZXJuIGxvbmcgeGY4NmxzZWVrKGludCwgbG9uZywg aW50KTsKZXh0ZXJuIGludCB4Zjg2aW9jdGwoaW50LCB1bnNpZ25lZCBsb25nLCBwb2ludGVyKTsK ZXh0ZXJuIHhmODZzc2l6ZV90IHhmODZyZWFkKGludCwgdm9pZCAqLCB4Zjg2c2l6ZV90KTsKZXh0 ZXJuIHhmODZzc2l6ZV90IHhmODZ3cml0ZShpbnQsIGNvbnN0IHZvaWQgKiwgeGY4NnNpemVfdCk7 CmV4dGVybiB2b2lkKiB4Zjg2bW1hcCh2b2lkKiwgeGY4NnNpemVfdCwgaW50LCBpbnQsIGludCwg eGY4NnNpemVfdCApOwpleHRlcm4gaW50IHhmODZtdW5tYXAodm9pZCosIHhmODZzaXplX3QpOwpl eHRlcm4gaW50IHhmODZzdGF0KGNvbnN0IGNoYXIgKiwgc3RydWN0IHhmODZzdGF0ICopOwpleHRl cm4gaW50IHhmODZmc3RhdChpbnQsIHN0cnVjdCB4Zjg2c3RhdCAqKTsKZXh0ZXJuIGludCB4Zjg2 YWNjZXNzKGNvbnN0IGNoYXIgKiwgaW50KTsKZXh0ZXJuIGludCB4Zjg2ZXJybm87CmV4dGVybiBp bnQgeGY4NkdldEVycm5vKHZvaWQpOwoKZXh0ZXJuIGRvdWJsZSB4Zjg2SFVHRV9WQUw7CgpleHRl cm4gZG91YmxlIHhmODZoeXBvdChkb3VibGUsZG91YmxlKTsKCgpleHRlcm4gWEY4NkRJUiogeGY4 Nm9wZW5kaXIoY29uc3QgY2hhciopOwpleHRlcm4gaW50IHhmODZjbG9zZWRpcihYRjg2RElSKik7 CmV4dGVybiBYRjg2RElSRU5UKiB4Zjg2cmVhZGRpcihYRjg2RElSKik7CmV4dGVybiB2b2lkIHhm ODZyZXdpbmRkaXIoWEY4NkRJUiopOwpleHRlcm4gdm9pZCB4Zjg2YmNvcHkoY29uc3Qgdm9pZCos dm9pZCoseGY4NnNpemVfdCk7CmV4dGVybiBpbnQgeGY4NmZmcyhpbnQpOwpleHRlcm4gY2hhciog eGY4NnN0cmR1cChjb25zdCBjaGFyKik7CmV4dGVybiB2b2lkIHhmODZiemVybyh2b2lkKix1bnNp Z25lZCBpbnQpOwpleHRlcm4gaW50IHhmODZleGVjbChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg KiwgLi4uKTsKZXh0ZXJuIGxvbmcgeGY4NmZwb3NzaXplKHZvaWQpOwpleHRlcm4gaW50IHhmODZj aG1vZChjb25zdCBjaGFyICosIHhmODZtb2RlX3QpOwpleHRlcm4gaW50IHhmODZjaG93bihjb25z dCBjaGFyICosIHhmODZ1aWRfdCwgeGY4NmdpZF90KTsKZXh0ZXJuIHhmODZ1aWRfdCB4Zjg2Z2V0 ZXVpZCh2b2lkKTsKZXh0ZXJuIHhmODZnaWRfdCB4Zjg2Z2V0ZWdpZCh2b2lkKTsKZXh0ZXJuIGlu dCB4Zjg2Z2V0cGlkKHZvaWQpOwpleHRlcm4gaW50IHhmODZta25vZChjb25zdCBjaGFyICosIHhm ODZtb2RlX3QsIHhmODZkZXZfdCk7CmV4dGVybiBpbnQgeGY4Nm1rZGlyKGNvbnN0IGNoYXIgKiwg eGY4Nm1vZGVfdCk7CnVuc2lnbmVkIGludCB4Zjg2c2xlZXAodW5zaWduZWQgaW50IHNlY29uZHMp OwoKZXh0ZXJuIGludCB4Zjg2c2htZ2V0KHhmODZrZXlfdCBrZXksIGludCBzaXplLCBpbnQgeGY4 NnNobWZsZyk7CmV4dGVybiBjaGFyICogeGY4NnNobWF0KGludCBpZCwgY2hhciAqYWRkciwgaW50 IHhmODZzaG1mbGcpOwpleHRlcm4gaW50IHhmODZzaG1kdChjaGFyICphZGRyKTsKZXh0ZXJuIGlu dCB4Zjg2c2htY3RsKGludCBpZCwgaW50IHhmODZjbWQsIHBvaW50ZXIgYnVmKTsKZXh0ZXJuIGlu dCB4Zjg2c2V0am1wKHhmODZqbXBfYnVmIGVudik7CmV4dGVybiB2b2lkIHhmODZsb25nam1wKHhm ODZqbXBfYnVmIGVudiwgaW50IHZhbCk7CiMgMzMxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFt cy9Yc2VydmVyL2luY2x1ZGUveGY4Nl9hbnNpYy5oIgpleHRlcm4gaW50IHhmODZnZXRwYWdlc2l6 ZSh2b2lkKTsKZXh0ZXJuIHZvaWQgeGY4NnVzbGVlcCh1bnNpZ25lZCBsb25nKTsKZXh0ZXJuIHZv aWQgeGY4NmdldHNlY3MobG9uZyAqLCBsb25nICopOwojIDYxICIuLi8uLi8uLi8uLi8uLi8uLi9w cm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvb3MuaCIgMgojIDc3ICIuLi8uLi8uLi8uLi8uLi8uLi9w cm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvb3MuaCIKdHlwZWRlZiBwb2ludGVyIEZJRDsKdHlwZWRl ZiBzdHJ1Y3QgX0ZvbnRQYXRoUmVjICpGb250UGF0aFB0cjsKdHlwZWRlZiBzdHJ1Y3QgX05ld0Ns aWVudFJlYyAqTmV3Q2xpZW50UHRyOwojIDEwOCAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMv WHNlcnZlci9pbmNsdWRlL29zLmgiCmV4dGVybiBCb29sIE9zRGVsYXlJbml0Q29sb3JzOwpleHRl cm4gdm9pZCAoKk9zVmVuZG9yVkVycm9yRlByb2MpKGNvbnN0IGNoYXIgKiwgdmFfbGlzdCBhcmdz KTsKCmV4dGVybiBpbnQgV2FpdEZvclNvbWV0aGluZygKCiAgICBpbnQqCgopOwoKCgpleHRlcm4g aW50IFN0YW5kYXJkUmVhZFJlcXVlc3RGcm9tQ2xpZW50KAoKICAgIENsaWVudFB0cgoKKTsKCmV4 dGVybiBpbnQgQ2xpZW50Q29ubmVjdGlvbk51bWJlcigKCiAgICBDbGllbnRQdHIKCik7CiMgMTM4 ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvb3MuaCIKZXh0ZXJu IEJvb2wgSW5zZXJ0RmFrZVJlcXVlc3QoCgogICAgQ2xpZW50UHRyICwKICAgIGNoYXIqICwKICAg IGludAoKKTsKCmV4dGVybiB2b2lkIFJlc2V0Q3VycmVudFJlcXVlc3QoCgogICAgQ2xpZW50UHRy CgopOwoKZXh0ZXJuIHZvaWQgRmx1c2hBbGxPdXRwdXQoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2 b2lkIEZsdXNoSWZDcml0aWNhbE91dHB1dFBlbmRpbmcoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2 b2lkIFNldENyaXRpY2FsT3V0cHV0UGVuZGluZygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIGludCBX cml0ZVRvQ2xpZW50KAoKICAgIENsaWVudFB0ciAsCiAgICBpbnQgLAogICAgY2hhcioKCik7Cgpl eHRlcm4gdm9pZCBSZXNldE9zQnVmZmVycygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgSW5p dENvbm5lY3Rpb25MaW1pdHMoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIENyZWF0ZVdlbGxL bm93blNvY2tldHMoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIFJlc2V0V2VsbEtub3duU29j a2V0cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQ2xvc2VXZWxsS25vd25Db25uZWN0aW9u cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIFhJRApBdXRob3JpemF0aW9uSURPZkNsaWVudCgKCiAg ICBDbGllbnRQdHIKCik7CgpleHRlcm4gY2hhciAqQ2xpZW50QXV0aG9yaXplZCgKCiAgICBDbGll bnRQdHIgLAogICAgdW5zaWduZWQgaW50ICwKICAgIGNoYXIqICwKICAgIHVuc2lnbmVkIGludCAs CiAgICBjaGFyKgoKKTsKCmV4dGVybiBCb29sIEVzdGFibGlzaE5ld0Nvbm5lY3Rpb25zKAoKICAg IENsaWVudFB0ciAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIHZvaWQgQ2hlY2tDb25uZWN0aW9u cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQ2xvc2VEb3duQ29ubmVjdGlvbigKCiAgICBD bGllbnRQdHIKCik7CgpleHRlcm4gdm9pZCBBZGRFbmFibGVkRGV2aWNlKAoKICAgIGludAoKKTsK CmV4dGVybiB2b2lkIFJlbW92ZUVuYWJsZWREZXZpY2UoCgogICAgaW50CgopOwoKZXh0ZXJuIHZv aWQgT25seUxpc3RlblRvT25lQ2xpZW50KAoKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiB2b2lk IExpc3RlblRvQWxsQ2xpZW50cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgSWdub3JlQ2xp ZW50KAoKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiB2b2lkIEF0dGVuZENsaWVudCgKCiAgICBD bGllbnRQdHIKCik7CgpleHRlcm4gdm9pZCBNYWtlQ2xpZW50R3JhYkltcGVydmlvdXMoCgogICAg Q2xpZW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgTWFrZUNsaWVudEdyYWJQZXJ2aW91cygKCiAgICBD bGllbnRQdHIKCik7CgoKZXh0ZXJuIHZvaWQgQ2xvc2VEb3duRmlsZURlc2NyaXB0b3IoCgogICAg Q2xpZW50UHRyCgopOwoKCmV4dGVybiB2b2lkIEF2YWlsYWJsZUNsaWVudElucHV0KAoKICAgIENs aWVudFB0cgoKKTsKCmV4dGVybiB2b2lkIEVycm9yKAoKICAgIGNoYXIqCgopOwoKZXh0ZXJuIENB UkQzMiBHZXRUaW1lSW5NaWxsaXMoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEFkanVzdFdh aXRGb3JEZWxheSgKCiAgICBwb2ludGVyICwKICAgIHVuc2lnbmVkIGxvbmcKCik7Cgp0eXBlZGVm IHN0cnVjdCBfT3NUaW1lclJlYyAqT3NUaW1lclB0cjsKCnR5cGVkZWYgQ0FSRDMyICgqT3NUaW1l ckNhbGxiYWNrKSgKCiAgICBPc1RpbWVyUHRyICwKICAgIENBUkQzMiAsCiAgICBwb2ludGVyCgop OwoKZXh0ZXJuIHZvaWQgVGltZXJJbml0KAoKICAgIHZvaWQKCik7CgpleHRlcm4gQm9vbCBUaW1l ckZvcmNlKAoKICAgIE9zVGltZXJQdHIKCik7CgoKCgpleHRlcm4gT3NUaW1lclB0ciBUaW1lclNl dCgKCiAgICBPc1RpbWVyUHRyICwKICAgIGludCAsCiAgICBDQVJEMzIgLAogICAgT3NUaW1lckNh bGxiYWNrICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gdm9pZCBUaW1lckNoZWNrKAoKICAgIHZv aWQKCik7CgpleHRlcm4gdm9pZCBUaW1lckNhbmNlbCgKCiAgICBPc1RpbWVyUHRyCgopOwoKZXh0 ZXJuIHZvaWQgVGltZXJGcmVlKAoKICAgIE9zVGltZXJQdHIKCik7CgpleHRlcm4gdm9pZCBBdXRv UmVzZXRTZXJ2ZXIoCgogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQgR2l2ZVVwKAoKICAgIGludAoK KTsKCmV4dGVybiB2b2lkIFVzZU1zZygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgUHJvY2Vz c0NvbW1hbmRMaW5lKAoKICAgIGludCAsCiAgICBjaGFyKiBbXQoKKTsKCmV4dGVybiBwb2ludGVy IFhhbGxvYygKCiAgICB1bnNpZ25lZCBsb25nCgopOwoKZXh0ZXJuIHBvaW50ZXIgWE5GYWxsb2Mo CgogICAgdW5zaWduZWQgbG9uZwoKKTsKCmV4dGVybiBwb2ludGVyIFhjYWxsb2MoCgogICAgdW5z aWduZWQgbG9uZwoKKTsKCmV4dGVybiBwb2ludGVyIFhORmNhbGxvYygKCiAgICB1bnNpZ25lZCBs b25nCgopOwoKZXh0ZXJuIHBvaW50ZXIgWHJlYWxsb2MoCgogICAgcG9pbnRlciAsCiAgICB1bnNp Z25lZCBsb25nCgopOwoKZXh0ZXJuIHBvaW50ZXIgWE5GcmVhbGxvYygKCiAgICBwb2ludGVyICwK ICAgIHVuc2lnbmVkIGxvbmcKCik7CgpleHRlcm4gdm9pZCBYZnJlZSgKCiAgICBwb2ludGVyCgop OwoKZXh0ZXJuIHZvaWQgT3NJbml0QWxsb2NhdG9yKAoKICAgIHZvaWQKCik7CgpleHRlcm4gY2hh ciAqWHN0cmR1cChjb25zdCBjaGFyICpzKTsKZXh0ZXJuIGNoYXIgKlhORnN0cmR1cChjb25zdCBj aGFyICpzKTsKCnR5cGVkZWYgdm9pZCAoKk9zU2lnSGFuZGxlclB0cikoCgogICAgaW50CgopOwoK ZXh0ZXJuIE9zU2lnSGFuZGxlclB0ciBPc1NpZ25hbCgKCiAgICBpbnQgLAogICAgT3NTaWdIYW5k bGVyUHRyCgopOwoKZXh0ZXJuIGludCBhdWRpdFRyYWlsTGV2ZWw7CgpleHRlcm4gdm9pZCBBdWRp dFByZWZpeCgKCiAgICBjb25zdCBjaGFyICoKCik7CgpleHRlcm4gdm9pZCBBdWRpdEYoCgogICAg Y29uc3QgY2hhciogLAogICAgLi4uCgopOwoKZXh0ZXJuIHZvaWQgRmF0YWxFcnJvcigKCiAgICBj b25zdCBjaGFyKiAsCiAgICAuLi4KCikKCl9fYXR0cmlidXRlKChub3JldHVybikpCgo7CgpleHRl cm4gdm9pZCBFcnJvckYoCgogICAgY29uc3QgY2hhciogLAogICAgLi4uCgopOwoKCmV4dGVybiB2 b2lkIFZFcnJvckYoY29uc3QgY2hhciAqZiwgdmFfbGlzdCBhcmdzKTsKIyA1MjAgIi4uLy4uLy4u Ly4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9vcy5oIgpleHRlcm4gaW50IE9zTG9v a3VwQ29sb3IoCgogICAgaW50ICwKICAgIGNoYXIgKiAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNp Z25lZCBzaG9ydCAqICwKICAgIHVuc2lnbmVkIHNob3J0ICogLAogICAgdW5zaWduZWQgc2hvcnQg KgoKKTsKCmV4dGVybiB2b2lkIE9zSW5pdCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgT3ND bGVhbnVwKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBPc1ZlbmRvckZhdGFsRXJyb3IoCgog ICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIE9zVmVuZG9ySW5pdCgKCiAgICB2b2lkCgopOwoKZXh0 ZXJuIGludCBPc0luaXRDb2xvcnMoCgogICAgdm9pZAoKKTsKCnZvaWQgT3NCbG9ja1NpZ25hbHMg KAoKICAgICAgICAgICAgICAgICAgICAgdm9pZAoKICAgICAgICAgICAgICAgICAgICAgKTsKCnZv aWQgT3NSZWxlYXNlU2lnbmFscyAoCgogICAgICAgICAgICAgICAgICAgICB2b2lkCgogICAgICAg ICAgICAgICAgICAgICApOwoKCmV4dGVybiBpbnQgU3lzdGVtKGNoYXIgKik7CmV4dGVybiBwb2lu dGVyIFBvcGVuKGNoYXIgKiwgY2hhciAqKTsKZXh0ZXJuIGludCBQY2xvc2UocG9pbnRlcik7CgoK CgoKCmV4dGVybiB2b2lkIENoZWNrVXNlclBhcmFtZXRlcnMoaW50IGFyZ2MsIGNoYXIgKiphcmd2 LCBjaGFyICoqZW52cCk7CmV4dGVybiB2b2lkIENoZWNrVXNlckF1dGhvcml6YXRpb24odm9pZCk7 CgpleHRlcm4gaW50IEFkZEhvc3QoCgogICAgQ2xpZW50UHRyICwKICAgIGludCAsCiAgICB1bnNp Z25lZCAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIEJvb2wgRm9yRWFjaEhvc3RJbkZhbWlseSAo CgogICAgaW50ICwKICAgIEJvb2wgKCogKSgKCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiAs CiAgICAgICAgICAgIHNob3J0ICwKICAgICAgICAgICAgcG9pbnRlcgoKICAgICAgICAgICAgKSwK ICAgIHBvaW50ZXIKCik7CgpleHRlcm4gaW50IFJlbW92ZUhvc3QoCgogICAgQ2xpZW50UHRyICwK ICAgIGludCAsCiAgICB1bnNpZ25lZCAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIGludCBHZXRI b3N0cygKCiAgICBwb2ludGVyICogLAogICAgaW50ICogLAogICAgaW50ICogLAogICAgQk9PTCAq CgopOwoKdHlwZWRlZiBzdHJ1Y3Qgc29ja2FkZHIgKiBzb2NrYWRkclB0cjsKCmV4dGVybiBpbnQg SW52YWxpZEhvc3QoCgogICAgc29ja2FkZHJQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIGludCBM b2NhbENsaWVudCgKCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gaW50IENoYW5nZUFjY2Vzc0Nv bnRyb2woCgogICAgQ2xpZW50UHRyICwKICAgIGludAoKKTsKCmV4dGVybiBpbnQgR2V0QWNjZXNz Q29udHJvbCgKCiAgICB2b2lkCgopOwoKCmV4dGVybiB2b2lkIEFkZExvY2FsSG9zdHMoCgogICAg dm9pZAoKKTsKCmV4dGVybiB2b2lkIFJlc2V0SG9zdHMoCgogICAgY2hhciAqZGlzcGxheQoKKTsK CmV4dGVybiB2b2lkIEVuYWJsZUxvY2FsSG9zdCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQg RGlzYWJsZUxvY2FsSG9zdCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQWNjZXNzVXNpbmdY ZG1jcCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgRGVmaW5lU2VsZigKCiAgICBpbnQKCik7 CgpleHRlcm4gdm9pZCBBdWdtZW50U2VsZigKCiAgICBwb2ludGVyICwKICAgIGludAoKKTsKCmV4 dGVybiB2b2lkIEluaXRBdXRob3JpemF0aW9uKAoKICAgIGNoYXIgKgoKKTsKCmV4dGVybiBpbnQg TG9hZEF1dGhvcml6YXRpb24oCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIFJlZ2lzdGVyQXV0 aG9yaXphdGlvbnMoCgogICAgdm9pZAoKKTsKCmV4dGVybiBYSUQgQXV0aG9yaXphdGlvblRvSUQg KAogICAgICAgIHVuc2lnbmVkIHNob3J0IG5hbWVfbGVuZ3RoLAogICAgICAgIGNoYXIgKm5hbWUs CiAgICAgICAgdW5zaWduZWQgc2hvcnQgZGF0YV9sZW5ndGgsCiAgICAgICAgY2hhciAqZGF0YSk7 CgpleHRlcm4gaW50IEF1dGhvcml6YXRpb25Gcm9tSUQgKAogICAgICAgIFhJRCBpZCwKICAgICAg ICB1bnNpZ25lZCBzaG9ydCAqbmFtZV9sZW5wLAogICAgICAgIGNoYXIgKipuYW1lcCwKICAgICAg ICB1bnNpZ25lZCBzaG9ydCAqZGF0YV9sZW5wLAogICAgICAgIGNoYXIgKipkYXRhcCk7CgpleHRl cm4gWElEIENoZWNrQXV0aG9yaXphdGlvbigKCiAgICB1bnNpZ25lZCBpbnQgLAogICAgY2hhciAq ICwKICAgIHVuc2lnbmVkIGludCAsCiAgICBjaGFyICogLAogICAgQ2xpZW50UHRyICwKICAgIGNo YXIgKioKCik7CgpleHRlcm4gdm9pZCBSZXNldEF1dGhvcml6YXRpb24oCgogICAgdm9pZAoKKTsK CmV4dGVybiBpbnQgUmVtb3ZlQXV0aG9yaXphdGlvbiAoCiAgICB1bnNpZ25lZCBzaG9ydCBuYW1l X2xlbmd0aCwKICAgIGNoYXIgKm5hbWUsCiAgICB1bnNpZ25lZCBzaG9ydCBkYXRhX2xlbmd0aCwK ICAgIGNoYXIgKmRhdGEpOwoKZXh0ZXJuIGludCBBZGRBdXRob3JpemF0aW9uKAoKICAgIHVuc2ln bmVkIGludCAsCiAgICBjaGFyICogLAogICAgdW5zaWduZWQgaW50ICwKICAgIGNoYXIgKgoKKTsK CmV4dGVybiBYSUQgR2VuZXJhdGVBdXRob3JpemF0aW9uKAoKICAgIHVuc2lnbmVkIGludCAsCiAg ICBjaGFyICogLAogICAgdW5zaWduZWQgaW50ICwKICAgIGNoYXIgKiAsCiAgICB1bnNpZ25lZCBp bnQgKiAsCiAgICBjaGFyICoqCgopOwojIDc4MiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMv WHNlcnZlci9pbmNsdWRlL29zLmgiCmV4dGVybiBpbnQgZGR4UHJvY2Vzc0FyZ3VtZW50KAoKICAg IGludCAsCiAgICBjaGFyICogW10sCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBkZHhVc2VNc2co dm9pZCk7CgoKCgoKeFJlcVB0ciBQZWVrTmV4dFJlcXVlc3QoCgogICAgeFJlcVB0ciByZXEsIENs aWVudFB0ciBjbGllbnQsIEJvb2wgcmVhZG1vcmUKCik7Cgp2b2lkIFNraXBSZXF1ZXN0cygKCiAg ICB4UmVxUHRyIHJlcSwgQ2xpZW50UHRyIGNsaWVudCwgaW50IG51bXNraXBwZWQKCik7CiMgODMy ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvb3MuaCIKZXh0ZXJu IENhbGxiYWNrTGlzdFB0ciBTa2lwcGVkUmVxdWVzdHNDYWxsYmFjazsKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgeFJlcVB0ciByZXE7CiAgICBDbGllbnRQdHIgY2xpZW50OwogICAgaW50IG51bXNraXBw ZWQ7Cn0gU2tpcHBlZFJlcXVlc3RJbmZvUmVjOwoKCmV4dGVybiBDYWxsYmFja0xpc3RQdHIgUmVw bHlDYWxsYmFjazsKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ2xpZW50UHRyIGNsaWVudDsKICAgIHBv aW50ZXIgcmVwbHlEYXRhOwogICAgdW5zaWduZWQgbG9uZyBkYXRhTGVuQnl0ZXM7CiAgICB1bnNp Z25lZCBsb25nIGJ5dGVzUmVtYWluaW5nOwogICAgQm9vbCBzdGFydE9mUmVwbHk7Cn0gUmVwbHlJ bmZvUmVjOwoKCmV4dGVybiBDYWxsYmFja0xpc3RQdHIgRmx1c2hDYWxsYmFjazsKCmV4dGVybiB2 b2lkIEFib3J0RERYKHZvaWQpOwpleHRlcm4gdm9pZCBkZHhHaXZlVXAodm9pZCk7CmV4dGVybiBp bnQgVGltZVNpbmNlTGFzdElucHV0RXZlbnQodm9pZCk7CiMgMTE4ICIuLi8uLi8uLi8uLi8uLi8u Li9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvbWlzYy5oIiAyCiMgMjQwICIuLi8uLi8uLi8uLi8u Li8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvbWlzYy5oIgpleHRlcm4gdm9pZCBTd2FwTG9u Z3MoCgogICAgQ0FSRDMyICpsaXN0LAogICAgdW5zaWduZWQgbG9uZyBjb3VudAoKKTsKCmV4dGVy biB2b2lkIFN3YXBTaG9ydHMoCgogICAgc2hvcnQgKmxpc3QsCiAgICB1bnNpZ25lZCBsb25nIGNv dW50CgopOwoKZXh0ZXJuIHZvaWQgTWFrZVByZWRlY2xhcmVkQXRvbXMoCgogICAgdm9pZAoKKTsK CmV4dGVybiBpbnQgT25lcygKCiAgICB1bnNpZ25lZCBsb25nCgopOwoKdHlwZWRlZiBzdHJ1Y3Qg X3hQb2ludCAqRERYUG9pbnRQdHI7CnR5cGVkZWYgc3RydWN0IF9Cb3ggKkJveFB0cjsKdHlwZWRl ZiBzdHJ1Y3QgX3hFdmVudCAqeEV2ZW50UHRyOwp0eXBlZGVmIHN0cnVjdCBfeFJlY3RhbmdsZSAq eFJlY3RhbmdsZVB0cjsKdHlwZWRlZiBzdHJ1Y3QgX0dyYWJSZWMgKkdyYWJQdHI7CgoKCgoKCgp0 eXBlZGVmIHN0cnVjdCBfQ2hhckluZm8gKkNoYXJJbmZvUHRyOwojIDUyICIuLi8uLi8uLi8uLi8u Li8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcGl4bWFwLmgiIDIKIyAxICIuLi8uLi8uLi8u Li8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NyZWVuaW50LmgiIDEKIyA1NCAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3NjcmVlbmludC5oIgp0eXBl ZGVmIHN0cnVjdCBfUGl4bWFwRm9ybWF0ICpQaXhtYXBGb3JtYXRQdHI7CnR5cGVkZWYgc3RydWN0 IF9WaXN1YWwgKlZpc3VhbFB0cjsKdHlwZWRlZiBzdHJ1Y3QgX0RlcHRoICpEZXB0aFB0cjsKdHlw ZWRlZiBzdHJ1Y3QgX1NjcmVlbiAqU2NyZWVuUHRyOwoKZXh0ZXJuIHZvaWQgUmVzZXRTY3JlZW5Q cml2YXRlcygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIGludCBBbGxvY2F0ZVNjcmVlblByaXZhdGVJ bmRleCgKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgUmVzZXRXaW5kb3dQcml2YXRlcygKCiAg ICB2b2lkCgopOwoKZXh0ZXJuIGludCBBbGxvY2F0ZVdpbmRvd1ByaXZhdGVJbmRleCgKCiAgICB2 b2lkCgopOwoKZXh0ZXJuIEJvb2wgQWxsb2NhdGVXaW5kb3dQcml2YXRlKAoKICAgIFNjcmVlblB0 ciAsCiAgICBpbnQgLAogICAgdW5zaWduZWQKCik7CgpleHRlcm4gdm9pZCBSZXNldEdDUHJpdmF0 ZXMoCgogICAgdm9pZAoKKTsKCmV4dGVybiBpbnQgQWxsb2NhdGVHQ1ByaXZhdGVJbmRleCgKCiAg ICB2b2lkCgopOwoKZXh0ZXJuIEJvb2wgQWxsb2NhdGVHQ1ByaXZhdGUoCgogICAgU2NyZWVuUHRy ICwKICAgIGludCAsCiAgICB1bnNpZ25lZAoKKTsKCmV4dGVybiBpbnQgQWRkU2NyZWVuKAoKICAg IEJvb2wgKCogKSgKCiAgICAgICAgaW50ICwKICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIGlu dCAsCiAgICAgICAgY2hhciAqKgoKICAgICksCiAgICBpbnQgLAogICAgY2hhcioqCgopOwoKCgpl eHRlcm4gdm9pZCBSZXNldFBpeG1hcFByaXZhdGVzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gaW50 IEFsbG9jYXRlUGl4bWFwUHJpdmF0ZUluZGV4KAoKICAgIHZvaWQKCik7CgpleHRlcm4gQm9vbCBB bGxvY2F0ZVBpeG1hcFByaXZhdGUoCgogICAgU2NyZWVuUHRyICwKICAgIGludCAsCiAgICB1bnNp Z25lZAoKKTsKCgoKZXh0ZXJuIHZvaWQgUmVzZXRDb2xvcm1hcFByaXZhdGVzKAoKICAgIHZvaWQK Cik7CgoKdHlwZWRlZiBzdHJ1Y3QgX0NvbG9ybWFwUmVjICpDb2xvcm1hcFB0cjsKdHlwZWRlZiBp bnQgKCpJbml0Q21hcFByaXZGdW5jKSgKCiAgICAgICAgQ29sb3JtYXBQdHIKCik7CgpleHRlcm4g aW50IEFsbG9jYXRlQ29sb3JtYXBQcml2YXRlSW5kZXgoCgogICAgSW5pdENtYXBQcml2RnVuYwoK KTsKIyA1MyAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3BpeG1h cC5oIiAyCiMgNjYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9w aXhtYXAuaCIKdHlwZWRlZiBzdHJ1Y3QgX0RyYXdhYmxlICpEcmF3YWJsZVB0cjsKdHlwZWRlZiBz dHJ1Y3QgX1BpeG1hcCAqUGl4bWFwUHRyOwoKdHlwZWRlZiB1bmlvbiBfUGl4VW5pb24gewogICAg UGl4bWFwUHRyIHBpeG1hcDsKICAgIHVuc2lnbmVkIGxvbmcgcGl4ZWw7Cn0gUGl4VW5pb247CiMg ODYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9waXhtYXAuaCIK ZXh0ZXJuIFBpeG1hcFB0ciBHZXRTY3JhdGNoUGl4bWFwSGVhZGVyKAoKICAgIFNjcmVlblB0ciAs CiAgICBpbnQgLAogICAgaW50ICwKICAgIGludCAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIHBv aW50ZXIKCik7CgpleHRlcm4gdm9pZCBGcmVlU2NyYXRjaFBpeG1hcEhlYWRlcigKCiAgICBQaXht YXBQdHIKCik7CgpleHRlcm4gQm9vbCBDcmVhdGVTY3JhdGNoUGl4bWFwc0ZvclNjcmVlbigKCiAg ICBpbnQKCik7CgpleHRlcm4gdm9pZCBGcmVlU2NyYXRjaFBpeG1hcHNGb3JTY3JlZW4oCgogICAg aW50CgopOwoKZXh0ZXJuIFBpeG1hcFB0ciBBbGxvY2F0ZVBpeG1hcCgKCiAgICBTY3JlZW5QdHIg LAogICAgaW50CgopOwojIDUyICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2lu Y2x1ZGUvcGl4bWFwc3RyLmgiIDIKCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNl cnZlci9pbmNsdWRlL21pc2NzdHJ1Y3QuaCIgMQojIDU0ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUvbWlzY3N0cnVjdC5oIgojIDEgIi4uLy4uLy4uLy4uLy4uLy4u L2V4cG9ydHMvaW5jbHVkZS9YMTEvWHByb3Rvc3RyLmgiIDEKIyA1NSAiLi4vLi4vLi4vLi4vLi4v Li4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG9zdHIuaCIKdHlwZWRlZiBzdHJ1Y3QgX3hTZWdt ZW50IHsKICAgIElOVDE2IHgxICwgeTEgLCB4MiAsIHkyIDsKfSB4U2VnbWVudDsKCgoKdHlwZWRl ZiBzdHJ1Y3QgX3hQb2ludCB7CiAgICAgICAgSU5UMTYgeCAsIHkgOwp9IHhQb2ludDsKCnR5cGVk ZWYgc3RydWN0IF94UmVjdGFuZ2xlIHsKICAgIElOVDE2IHggLCB5IDsKICAgIENBUkQxNiB3aWR0 aCAsIGhlaWdodCA7Cn0geFJlY3RhbmdsZTsKCgoKdHlwZWRlZiBzdHJ1Y3QgX3hBcmMgewogICAg SU5UMTYgeCAsIHkgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKICAgIElOVDE2IGFuZ2xl MSAsIGFuZ2xlMiA7Cn0geEFyYzsKIyA1NSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNl cnZlci9pbmNsdWRlL21pc2NzdHJ1Y3QuaCIgMgoKdHlwZWRlZiB4UG9pbnQgRERYUG9pbnRSZWM7 Cgp0eXBlZGVmIHN0cnVjdCBfQm94IHsKICAgIHNob3J0IHgxLCB5MSwgeDIsIHkyOwp9IEJveFJl YzsKCnR5cGVkZWYgdW5pb24gX0RldlVuaW9uIHsKICAgIHBvaW50ZXIgcHRyOwogICAgbG9uZyB2 YWw7CiAgICB1bnNpZ25lZCBsb25nIHV2YWw7CiAgICBwb2ludGVyICgqZnB0cikoCgogICAgICAg ICAgICAgICAgICAgICAgICB2b2lkCgogICAgICAgICAgICAgICAgICAgICAgICApOwp9IERldlVu aW9uOwojIDU0ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcGl4 bWFwc3RyLmgiIDIKCnR5cGVkZWYgc3RydWN0IF9EcmF3YWJsZSB7CiAgICB1bnNpZ25lZCBjaGFy IHR5cGU7CiAgICB1bnNpZ25lZCBjaGFyIGNsYXNzOwogICAgdW5zaWduZWQgY2hhciBkZXB0aDsK ICAgIHVuc2lnbmVkIGNoYXIgYml0c1BlclBpeGVsOwogICAgdW5zaWduZWQgbG9uZyBpZDsKICAg IHNob3J0IHg7CiAgICBzaG9ydCB5OwogICAgdW5zaWduZWQgc2hvcnQgd2lkdGg7CiAgICB1bnNp Z25lZCBzaG9ydCBoZWlnaHQ7CiAgICBTY3JlZW5QdHIgcFNjcmVlbjsKICAgIHVuc2lnbmVkIGxv bmcgc2VyaWFsTnVtYmVyOwp9IERyYXdhYmxlUmVjOwoKCgoKCnR5cGVkZWYgc3RydWN0IF9QaXht YXAgewogICAgRHJhd2FibGVSZWMgZHJhd2FibGU7CiAgICBpbnQgcmVmY250OwogICAgaW50IGRl dktpbmQ7CiAgICBEZXZVbmlvbiBkZXZQcml2YXRlOwoKICAgIERldlVuaW9uICpkZXZQcml2YXRl czsKCn0gUGl4bWFwUmVjOwojIDU2ICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiIDIKIyAxICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvZGl4LmgiIDEKIyA1MyAi Li4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2RpeC5oIgojIDEgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9nYy5oIiAxCiMgNTUgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9nYy5oIgojIDEgIi4uLy4u Ly4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWHByb3RvLmgiIDEKIyAyNjMgIi4uLy4u Ly4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWHByb3RvLmgiCnR5cGVkZWYgQ0FSRDE2 IEtleUJ1dE1hc2s7CgoKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IGJ5dGVPcmRlcjsK ICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IG1ham9yVmVyc2lvbiAsIG1pbm9yVmVyc2lvbiA7CiAg ICBDQVJEMTYgbmJ5dGVzQXV0aFByb3RvIDsKICAgIENBUkQxNiBuYnl0ZXNBdXRoU3RyaW5nIDsK ICAgIENBUkQxNiBwYWQyIDsKfSB4Q29ubkNsaWVudFByZWZpeDsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHN1Y2Nlc3M7CiAgICBCWVRFIGxlbmd0aFJlYXNvbjsKICAgIENBUkQxNiBtYWpv clZlcnNpb24gLAogICAgICAgICAgICAgICAgICAgbWlub3JWZXJzaW9uIDsKICAgIENBUkQxNiBs ZW5ndGggOwp9IHhDb25uU2V0dXBQcmVmaXg7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDMy IHJlbGVhc2UgOwogICAgQ0FSRDMyIHJpZEJhc2UgLAogICAgICAgICAgICAgICAgICAgcmlkTWFz ayA7CiAgICBDQVJEMzIgbW90aW9uQnVmZmVyU2l6ZSA7CiAgICBDQVJEMTYgbmJ5dGVzVmVuZG9y IDsKICAgIENBUkQxNiBtYXhSZXF1ZXN0U2l6ZSA7CiAgICBDQVJEOCBudW1Sb290czsKICAgIENB UkQ4IG51bUZvcm1hdHM7CiAgICBDQVJEOCBpbWFnZUJ5dGVPcmRlcjsKICAgIENBUkQ4IGJpdG1h cEJpdE9yZGVyOwogICAgQ0FSRDggYml0bWFwU2NhbmxpbmVVbml0LAogICAgICAgICAgICAgICAg ICAgYml0bWFwU2NhbmxpbmVQYWQ7CiAgICBDQVJEOCBtaW5LZXlDb2RlLCBtYXhLZXlDb2RlOwog ICAgQ0FSRDMyIHBhZDIgOwp9IHhDb25uU2V0dXA7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCBkZXB0aDsKICAgIENBUkQ4IGJpdHNQZXJQaXhlbDsKICAgIENBUkQ4IHNjYW5MaW5lUGFkOwog ICAgQ0FSRDggcGFkMTsKICAgIENBUkQzMiBwYWQyIDsKfSB4UGl4bWFwRm9ybWF0OwoKCgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBkZXB0aDsKICAgIENBUkQ4IHBhZDE7CiAgICBDQVJEMTYg blZpc3VhbHMgOwogICAgQ0FSRDMyIHBhZDIgOwogICAgfSB4RGVwdGg7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEMzIgdmlzdWFsSUQgOwoKCgogICAgQ0FSRDggY2xhc3M7CgogICAgQ0FSRDgg Yml0c1BlclJHQjsKICAgIENBUkQxNiBjb2xvcm1hcEVudHJpZXMgOwogICAgQ0FSRDMyIHJlZE1h c2sgLCBncmVlbk1hc2sgLCBibHVlTWFzayA7CiAgICBDQVJEMzIgcGFkIDsKICAgIH0geFZpc3Vh bFR5cGU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMzIgd2luZG93SWQgOwogICAgQ0FSRDMy IGRlZmF1bHRDb2xvcm1hcCA7CiAgICBDQVJEMzIgd2hpdGVQaXhlbCAsIGJsYWNrUGl4ZWwgOwog ICAgQ0FSRDMyIGN1cnJlbnRJbnB1dE1hc2sgOwogICAgQ0FSRDE2IHBpeFdpZHRoICwgcGl4SGVp Z2h0IDsKICAgIENBUkQxNiBtbVdpZHRoICwgbW1IZWlnaHQgOwogICAgQ0FSRDE2IG1pbkluc3Rh bGxlZE1hcHMgLCBtYXhJbnN0YWxsZWRNYXBzIDsKICAgIENBUkQzMiByb290VmlzdWFsSUQgOwog ICAgQ0FSRDggYmFja2luZ1N0b3JlOwogICAgQk9PTCBzYXZlVW5kZXJzOwogICAgQ0FSRDggcm9v dERlcHRoOwogICAgQ0FSRDggbkRlcHRoczsKfSB4V2luZG93Um9vdDsKIyAzNTggIi4uLy4uLy4u Ly4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9YMTEvWHByb3RvLmgiCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQzMiB0aW1lIDsKICAgIElOVDE2IHggLCB5IDsKfSB4VGltZWNvb3JkOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQ0FSRDggZmFtaWx5OwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVu Z3RoIDsKfSB4SG9zdEVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgSU5UMTYgbGVmdFNpZGVC ZWFyaW5nICwKICAgICAgICAgIHJpZ2h0U2lkZUJlYXJpbmcgLAogICAgICAgICAgY2hhcmFjdGVy V2lkdGggLAogICAgICAgICAgYXNjZW50ICwKICAgICAgICAgIGRlc2NlbnQgOwogICAgQ0FSRDE2 IGF0dHJpYnV0ZXMgOwp9IHhDaGFySW5mbzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQzMiBu YW1lIDsKICAgIENBUkQzMiB2YWx1ZSA7Cn0geEZvbnRQcm9wOwoKCgoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggbGVuOwoKICAgIElOVDggZGVsdGE7Cn0geFRleHRFbHQ7CgoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDMyIHBpeGVsIDsKICAgIENBUkQxNiByZWQgLCBncmVlbiAsIGJsdWUg OwogICAgQ0FSRDggZmxhZ3M7CiAgICBDQVJEOCBwYWQ7Cn0geENvbG9ySXRlbTsKCgp0eXBlZGVm IHN0cnVjdCB7CiAgICBDQVJEMTYgcmVkICwgZ3JlZW4gLCBibHVlICwgcGFkIDsKfSB4cmdiOwoK dHlwZWRlZiBDQVJEOCBLRVlDT0RFOwojIDQxNiAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9p bmNsdWRlL1gxMS9YcHJvdG8uaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAg QllURSBkYXRhMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3Ro IDsKICAgIENBUkQzMiBkYXRhMDAgOwogICAgQ0FSRDMyIGRhdGEwMSA7CiAgICBDQVJEMzIgZGF0 YTAyIDsKICAgIENBUkQzMiBkYXRhMDMgOwogICAgQ0FSRDMyIGRhdGEwNCA7CiAgICBDQVJEMzIg ZGF0YTA1IDsKICAgIH0geEdlbmVyaWNSZXBseTsKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllU RSB0eXBlOwogICAgQ0FSRDggYmFja2luZ1N0b3JlOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVy IDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHZpc3VhbElEIDsKCgoKICAgIENBUkQx NiBjbGFzcyA7CgogICAgQ0FSRDggYml0R3Jhdml0eTsKICAgIENBUkQ4IHdpbkdyYXZpdHk7CiAg ICBDQVJEMzIgYmFja2luZ0JpdFBsYW5lcyA7CiAgICBDQVJEMzIgYmFja2luZ1BpeGVsIDsKICAg IEJPT0wgc2F2ZVVuZGVyOwogICAgQk9PTCBtYXBJbnN0YWxsZWQ7CiAgICBDQVJEOCBtYXBTdGF0 ZTsKICAgIEJPT0wgb3ZlcnJpZGU7CiAgICBDQVJEMzIgY29sb3JtYXAgOwogICAgQ0FSRDMyIGFs bEV2ZW50TWFza3MgOwogICAgQ0FSRDMyIHlvdXJFdmVudE1hc2sgOwogICAgQ0FSRDE2IGRvTm90 UHJvcGFnYXRlTWFzayA7CiAgICBDQVJEMTYgcGFkIDsKICAgIH0geEdldFdpbmRvd0F0dHJpYnV0 ZXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IGRlcHRo OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FS RDMyIHJvb3QgOwogICAgSU5UMTYgeCAsIHkgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsK ICAgIENBUkQxNiBib3JkZXJXaWR0aCA7CiAgICBDQVJEMTYgcGFkMSA7CiAgICBDQVJEMzIgcGFk MiA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICB9IHhHZXRHZW9tZXRyeVJlcGx5OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNl TnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHJvb3QgLCBwYXJlbnQgOwog ICAgQ0FSRDE2IG5DaGlsZHJlbiA7CiAgICBDQVJEMTYgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7 CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICB9IHhRdWVyeVRyZWVSZXBs eTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBhdG9t IDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsK ICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIH0geEludGVybkF0b21SZXBs eTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuYW1l TGVuZ3RoIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBw YWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3 IDsKICAgIH0geEdldEF0b21OYW1lUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5 cGU7CiAgICBDQVJEOCBmb3JtYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FS RDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcHJvcGVydHlUeXBlIDsKICAgIENBUkQzMiBieXRlc0Fm dGVyIDsKICAgIENBUkQzMiBuSXRlbXMgOwogICAgQ0FSRDMyIHBhZDEgOwogICAgQ0FSRDMyIHBh ZDIgOwogICAgQ0FSRDMyIHBhZDMgOwogICAgfSB4R2V0UHJvcGVydHlSZXBseTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5j ZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuUHJvcGVydGllcyA7CiAg ICBDQVJEMTYgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBD QVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBDQVJEMzIgcGFkNyA7CiAgICB9IHhM aXN0UHJvcGVydGllc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAg QllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGgg OwogICAgQ0FSRDMyIG93bmVyIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsK ICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAg IH0geEdldFNlbGVjdGlvbk93bmVyUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5 cGU7CiAgICBCWVRFIHN0YXR1czsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIENBUkQzMiBwYWQxIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQz MiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBw YWQ2IDsKICAgIH0geEdyYWJQb2ludGVyUmVwbHk7Cgp0eXBlZGVmIHhHcmFiUG9pbnRlclJlcGx5 IHhHcmFiS2V5Ym9hcmRSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAg IEJPT0wgc2FtZVNjcmVlbjsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIg bGVuZ3RoIDsKICAgIENBUkQzMiByb290ICwgY2hpbGQgOwogICAgSU5UMTYgcm9vdFggLCByb290 WSAsIHdpblggLCB3aW5ZIDsKICAgIENBUkQxNiBtYXNrIDsKICAgIENBUkQxNiBwYWQxIDsKICAg IENBUkQzMiBwYWQgOwogICAgfSB4UXVlcnlQb2ludGVyUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbkV2ZW50cyA7CiAgICBDQVJEMzIgcGFk MiA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7 CiAgICBDQVJEMzIgcGFkNiA7CiAgICB9IHhHZXRNb3Rpb25FdmVudHNSZXBseTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJPT0wgc2FtZVNjcmVlbjsKICAgIENBUkQxNiBz ZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBjaGlsZCA7CiAg ICBJTlQxNiBkc3RYICwgZHN0WSA7CiAgICBDQVJEMzIgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7 CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICB9IHhUcmFuc2xhdGVDb29y ZHNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHJldmVy dFRvOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAg Q0FSRDMyIGZvY3VzIDsKICAgIENBUkQzMiBwYWQxIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENB UkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIH0geEdl dElucHV0Rm9jdXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZ VEUgcGFkMTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsK ICAgIEJZVEUgbWFwWzMyXTsKICAgIH0geFF1ZXJ5S2V5bWFwUmVwbHk7CgoKdHlwZWRlZiBzdHJ1 Y3QgX3hRdWVyeUZvbnRSZXBseSB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBD QVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICB4Q2hhckluZm8g bWluQm91bmRzOwoKICAgIENBUkQzMiB3YWxpZ24xIDsKCiAgICB4Q2hhckluZm8gbWF4Qm91bmRz OwoKICAgIENBUkQzMiB3YWxpZ24yIDsKCiAgICBDQVJEMTYgbWluQ2hhck9yQnl0ZTIgLCBtYXhD aGFyT3JCeXRlMiA7CiAgICBDQVJEMTYgZGVmYXVsdENoYXIgOwogICAgQ0FSRDE2IG5Gb250UHJv cHMgOwogICAgQ0FSRDggZHJhd0RpcmVjdGlvbjsKICAgIENBUkQ4IG1pbkJ5dGUxLCBtYXhCeXRl MTsKICAgIEJPT0wgYWxsQ2hhcnNFeGlzdDsKICAgIElOVDE2IGZvbnRBc2NlbnQgLCBmb250RGVz Y2VudCA7CiAgICBDQVJEMzIgbkNoYXJJbmZvcyA7Cn0geFF1ZXJ5Rm9udFJlcGx5OwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggZHJhd0RpcmVjdGlvbjsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIElOVDE2IGZvbnRB c2NlbnQgLCBmb250RGVzY2VudCA7CiAgICBJTlQxNiBvdmVyYWxsQXNjZW50ICwgb3ZlcmFsbERl c2NlbnQgOwogICAgSU5UMzIgb3ZlcmFsbFdpZHRoICwgb3ZlcmFsbExlZnQgLCBvdmVyYWxsUmln aHQgOwogICAgQ0FSRDMyIHBhZCA7CiAgICB9IHhRdWVyeVRleHRFeHRlbnRzUmVwbHk7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2Vx dWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgbkZvbnRzIDsKICAg IENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENB UkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geExp c3RGb250c1JlcGx5OwoKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4 IG5hbWVMZW5ndGg7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0 aCA7CiAgICB4Q2hhckluZm8gbWluQm91bmRzOwoKICAgIENBUkQzMiB3YWxpZ24xIDsKCiAgICB4 Q2hhckluZm8gbWF4Qm91bmRzOwoKICAgIENBUkQzMiB3YWxpZ24yIDsKCiAgICBDQVJEMTYgbWlu Q2hhck9yQnl0ZTIgLCBtYXhDaGFyT3JCeXRlMiA7CiAgICBDQVJEMTYgZGVmYXVsdENoYXIgOwog ICAgQ0FSRDE2IG5Gb250UHJvcHMgOwogICAgQ0FSRDggZHJhd0RpcmVjdGlvbjsKICAgIENBUkQ4 IG1pbkJ5dGUxLCBtYXhCeXRlMTsKICAgIEJPT0wgYWxsQ2hhcnNFeGlzdDsKICAgIElOVDE2IGZv bnRBc2NlbnQgLCBmb250RGVzY2VudCA7CiAgICBDQVJEMzIgblJlcGxpZXMgOwp9IHhMaXN0Rm9u dHNXaXRoSW5mb1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllU RSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwog ICAgQ0FSRDE2IG5QYXRocyA7CiAgICBDQVJEMTYgcGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7CiAg ICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBD QVJEMzIgcGFkNyA7CiAgICB9IHhHZXRGb250UGF0aFJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQllURSB0eXBlOwogICAgQ0FSRDggZGVwdGg7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgdmlzdWFsIDsKICAgIENBUkQzMiBwYWQz IDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsK ICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geEdldEltYWdlUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgbkNvbG9ybWFwcyA7CiAgICBDQVJEMTYg cGFkMiA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJEMzIgcGFk NSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBDQVJEMzIgcGFkNyA7CiAgICB9IHhMaXN0SW5zdGFs bGVkQ29sb3JtYXBzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBC WVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7 CiAgICBDQVJEMTYgcmVkICwgZ3JlZW4gLCBibHVlIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENB UkQzMiBwaXhlbCA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7CiAgICBDQVJE MzIgcGFkNSA7CiAgICB9IHhBbGxvY0NvbG9yUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBC WVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAg Q0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgcGl4ZWwgOwogICAgQ0FSRDE2IGV4YWN0UmVkICwg ZXhhY3RHcmVlbiAsIGV4YWN0Qmx1ZSA7CiAgICBDQVJEMTYgc2NyZWVuUmVkICwgc2NyZWVuR3Jl ZW4gLCBzY3JlZW5CbHVlIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAg IH0geEFsbG9jTmFtZWRDb2xvclJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBl OwogICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBs ZW5ndGggOwogICAgQ0FSRDE2IG5QaXhlbHMgLCBuTWFza3MgOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAg Q0FSRDMyIHBhZDcgOwogICAgfSB4QWxsb2NDb2xvckNlbGxzUmVwbHk7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1i ZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgblBpeGVscyA7CiAgICBDQVJEMTYg cGFkMiA7CiAgICBDQVJEMzIgcmVkTWFzayAsIGdyZWVuTWFzayAsIGJsdWVNYXNrIDsKICAgIENB UkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIH0geEFsbG9jQ29sb3JQbGFuZXNSZXBs eTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFkMTsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuQ29s b3JzIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0 IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsK ICAgIH0geFF1ZXJ5Q29sb3JzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxl bmd0aCA7CiAgICBDQVJEMTYgZXhhY3RSZWQgLCBleGFjdEdyZWVuICwgZXhhY3RCbHVlIDsKICAg IENBUkQxNiBzY3JlZW5SZWQgLCBzY3JlZW5HcmVlbiAsIHNjcmVlbkJsdWUgOwogICAgQ0FSRDMy IHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgfSB4TG9va3Vw Q29sb3JSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIEJZVEUgcGFk MTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENB UkQxNiB3aWR0aCAsIGhlaWdodCA7CiAgICBDQVJEMzIgcGFkMyA7CiAgICBDQVJEMzIgcGFkNCA7 CiAgICBDQVJEMzIgcGFkNSA7CiAgICBDQVJEMzIgcGFkNiA7CiAgICBDQVJEMzIgcGFkNyA7CiAg ICB9IHhRdWVyeUJlc3RTaXplUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxl bmd0aCA7CiAgICBCT09MIHByZXNlbnQ7CiAgICBDQVJEOCBtYWpvcl9vcGNvZGU7CiAgICBDQVJE OCBmaXJzdF9ldmVudDsKICAgIENBUkQ4IGZpcnN0X2Vycm9yOwogICAgQ0FSRDMyIHBhZDMgOwog ICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMyIHBhZDYgOwogICAg Q0FSRDMyIHBhZDcgOwogICAgfSB4UXVlcnlFeHRlbnNpb25SZXBseTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IG5FeHRlbnNpb25zOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHBhZDIgOwogICAgQ0FS RDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMy IHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4TGlzdEV4dGVuc2lvbnNSZXBseTsKCgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCBzdWNjZXNzOwogICAgQ0FS RDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIHBhZDIg OwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwog ICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4U2V0TWFwcGluZ1JlcGx5 Owp0eXBlZGVmIHhTZXRNYXBwaW5nUmVwbHkgeFNldFBvaW50ZXJNYXBwaW5nUmVwbHk7CnR5cGVk ZWYgeFNldE1hcHBpbmdSZXBseSB4U2V0TW9kaWZpZXJNYXBwaW5nUmVwbHk7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCBuRWx0czsKICAgIENBUkQxNiBzZXF1ZW5j ZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQz MiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBw YWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKICAgIH0geEdldFBvaW50ZXJNYXBwaW5nUmVwbHk7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCBrZXlTeW1zUGVyS2V5Q29k ZTsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENB UkQzMiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQz MiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKfSB4R2V0S2V5Ym9h cmRNYXBwaW5nUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJE OCBudW1LZXlQZXJNb2RpZmllcjsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJE MzIgbGVuZ3RoIDsKICAgIENBUkQzMiBwYWQxIDsKICAgIENBUkQzMiBwYWQyIDsKICAgIENBUkQz MiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBw YWQ2IDsKfSB4R2V0TW9kaWZpZXJNYXBwaW5nUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBC WVRFIHR5cGU7CiAgICBCT09MIGdsb2JhbEF1dG9SZXBlYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VO dW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbGVkTWFzayA7CiAgICBDQVJE OCBrZXlDbGlja1BlcmNlbnQsIGJlbGxQZXJjZW50OwogICAgQ0FSRDE2IGJlbGxQaXRjaCAsIGJl bGxEdXJhdGlvbiA7CiAgICBDQVJEMTYgcGFkIDsKICAgIEJZVEUgbWFwWzMyXTsKICAgIH0geEdl dEtleWJvYXJkQ29udHJvbFJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwog ICAgQllURSBwYWQxOwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5n dGggOwogICAgQ0FSRDE2IGFjY2VsTnVtZXJhdG9yICwgYWNjZWxEZW5vbWluYXRvciA7CiAgICBD QVJEMTYgdGhyZXNob2xkIDsKICAgIENBUkQxNiBwYWQyIDsKICAgIENBUkQzMiBwYWQzIDsKICAg IENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBwYWQ2IDsKICAgIH0g eEdldFBvaW50ZXJDb250cm9sUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBCWVRFIHBhZDE7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxl bmd0aCA7CiAgICBDQVJEMTYgdGltZW91dCAsIGludGVydmFsIDsKICAgIEJPT0wgcHJlZmVyQmxh bmtpbmc7CiAgICBCT09MIGFsbG93RXhwb3N1cmVzOwogICAgQ0FSRDE2IHBhZDIgOwogICAgQ0FS RDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwogICAgQ0FSRDMy IHBhZDYgOwogICAgfSB4R2V0U2NyZWVuU2F2ZXJSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IEJZVEUgdHlwZTsKICAgIEJPT0wgZW5hYmxlZDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7 CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBuSG9zdHMgOwogICAgQ0FSRDE2IHBhZDEg OwogICAgQ0FSRDMyIHBhZDMgOwogICAgQ0FSRDMyIHBhZDQgOwogICAgQ0FSRDMyIHBhZDUgOwog ICAgQ0FSRDMyIHBhZDYgOwogICAgQ0FSRDMyIHBhZDcgOwogICAgfSB4TGlzdEhvc3RzUmVwbHk7 CiMgOTc1ICIuLi8uLi8uLi8uLi8uLi8uLi9leHBvcnRzL2luY2x1ZGUvWDExL1hwcm90by5oIgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBCWVRFIGVycm9yQ29kZTsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgcmVzb3VyY2VJRCA7CiAgICBDQVJEMTYg bWlub3JDb2RlIDsKICAgIENBUkQ4IG1ham9yQ29kZTsKICAgIEJZVEUgcGFkMTsKICAgIENBUkQz MiBwYWQzIDsKICAgIENBUkQzMiBwYWQ0IDsKICAgIENBUkQzMiBwYWQ1IDsKICAgIENBUkQzMiBw YWQ2IDsKICAgIENBUkQzMiBwYWQ3IDsKfSB4RXJyb3I7CgoKCgoKCnR5cGVkZWYgc3RydWN0IF94 RXZlbnQgewogICAgdW5pb24gewogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIEJZVEUgdHlw ZTsKICAgICAgICAgICAgQllURSBkZXRhaWw7CiAgICAgICAgICAgIENBUkQxNiBzZXF1ZW5jZU51 bWJlciA7CiAgICAgICAgICAgIH0gdTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJE MzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIgdGltZSA7CiAgICAgICAgICAgIENBUkQzMiBy b290ICwgZXZlbnQgLCBjaGlsZCA7CiAgICAgICAgICAgIElOVDE2IHJvb3RYICwgcm9vdFkgLCBl dmVudFggLCBldmVudFkgOwogICAgICAgICAgICBLZXlCdXRNYXNrIHN0YXRlIDsKICAgICAgICAg ICAgQk9PTCBzYW1lU2NyZWVuOwogICAgICAgICAgICBCWVRFIHBhZDE7CiAgICAgICAgfSBrZXlC dXR0b25Qb2ludGVyOwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7 CiAgICAgICAgICAgIENBUkQzMiB0aW1lIDsKICAgICAgICAgICAgQ0FSRDMyIHJvb3QgLCBldmVu dCAsIGNoaWxkIDsKICAgICAgICAgICAgSU5UMTYgcm9vdFggLCByb290WSAsIGV2ZW50WCAsIGV2 ZW50WSA7CiAgICAgICAgICAgIEtleUJ1dE1hc2sgc3RhdGUgOwogICAgICAgICAgICBCWVRFIG1v ZGU7CiAgICAgICAgICAgIEJZVEUgZmxhZ3M7CgoKICAgICAgICB9IGVudGVyTGVhdmU7CiAgICAg ICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMy IHdpbmRvdyA7CiAgICAgICAgICAgIEJZVEUgbW9kZTsKICAgICAgICAgICAgQllURSBwYWQxLCBw YWQyLCBwYWQzOwogICAgICAgIH0gZm9jdXM7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAg Q0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAgICAgICAgIENB UkQxNiB4ICwgeSAsIHdpZHRoICwgaGVpZ2h0IDsKICAgICAgICAgICAgQ0FSRDE2IGNvdW50IDsK ICAgICAgICAgICAgQ0FSRDE2IHBhZDIgOwogICAgICAgIH0gZXhwb3NlOwogICAgICAgIHN0cnVj dCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiBkcmF3YWJs ZSA7CiAgICAgICAgICAgIENBUkQxNiB4ICwgeSAsIHdpZHRoICwgaGVpZ2h0IDsKICAgICAgICAg ICAgQ0FSRDE2IG1pbm9yRXZlbnQgOwogICAgICAgICAgICBDQVJEMTYgY291bnQgOwogICAgICAg ICAgICBCWVRFIG1ham9yRXZlbnQ7CiAgICAgICAgICAgIEJZVEUgcGFkMSwgcGFkMiwgcGFkMzsK ICAgICAgICB9IGdyYXBoaWNzRXhwb3N1cmU7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAg Q0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGRyYXdhYmxlIDsKICAgICAgICAgICAg Q0FSRDE2IG1pbm9yRXZlbnQgOwogICAgICAgICAgICBCWVRFIG1ham9yRXZlbnQ7CiAgICAgICAg ICAgIEJZVEUgYnBhZDsKICAgICAgICB9IG5vRXhwb3N1cmU7CiAgICAgICAgc3RydWN0IHsKICAg ICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAg ICAgICAgIENBUkQ4IHN0YXRlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7CiAg ICAgICAgfSB2aXNpYmlsaXR5OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBw YWQwMCA7CiAgICAgICAgICAgIENBUkQzMiBwYXJlbnQgLCB3aW5kb3cgOwogICAgICAgICAgICBJ TlQxNiB4ICwgeSA7CiAgICAgICAgICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCAsIGJvcmRlcldp ZHRoIDsKICAgICAgICAgICAgQk9PTCBvdmVycmlkZTsKICAgICAgICAgICAgQllURSBicGFkOwog ICAgICAgIH0gY3JlYXRlTm90aWZ5OwojIDEwNzMgIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMv aW5jbHVkZS9YMTEvWHByb3RvLmgiCiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMy IHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGV2ZW50ICwgd2luZG93IDsKICAgICAgICB9IGRl c3Ryb3lOb3RpZnk7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsK ICAgICAgICAgICAgQ0FSRDMyIGV2ZW50ICwgd2luZG93IDsKICAgICAgICAgICAgQk9PTCBmcm9t Q29uZmlndXJlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7CiAgICAgICAgfSB1 bm1hcE5vdGlmeTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwog ICAgICAgICAgICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgOwogICAgICAgICAgICBCT09MIG92ZXJy aWRlOwogICAgICAgICAgICBCWVRFIHBhZDEsIHBhZDIsIHBhZDM7CiAgICAgICAgfSBtYXBOb3Rp Znk7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAg ICAgQ0FSRDMyIHBhcmVudCAsIHdpbmRvdyA7CiAgICAgICAgfSBtYXBSZXF1ZXN0OwogICAgICAg IHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiBl dmVudCAsIHdpbmRvdyAsIHBhcmVudCA7CiAgICAgICAgICAgIElOVDE2IHggLCB5IDsKICAgICAg ICAgICAgQk9PTCBvdmVycmlkZTsKICAgICAgICAgICAgQllURSBwYWQxLCBwYWQyLCBwYWQzOwog ICAgICAgIH0gcmVwYXJlbnQ7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBh ZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGV2ZW50ICwgd2luZG93ICwgYWJvdmVTaWJsaW5nIDsK ICAgICAgICAgICAgSU5UMTYgeCAsIHkgOwogICAgICAgICAgICBDQVJEMTYgd2lkdGggLCBoZWln aHQgLCBib3JkZXJXaWR0aCA7CiAgICAgICAgICAgIEJPT0wgb3ZlcnJpZGU7CiAgICAgICAgICAg IEJZVEUgYnBhZDsKICAgICAgICB9IGNvbmZpZ3VyZU5vdGlmeTsKICAgICAgICBzdHJ1Y3Qgewog ICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIgcGFyZW50ICwgd2lu ZG93ICwgc2libGluZyA7CiAgICAgICAgICAgIElOVDE2IHggLCB5IDsKICAgICAgICAgICAgQ0FS RDE2IHdpZHRoICwgaGVpZ2h0ICwgYm9yZGVyV2lkdGggOwogICAgICAgICAgICBDQVJEMTYgdmFs dWVNYXNrIDsKICAgICAgICAgICAgQ0FSRDMyIHBhZDEgOwogICAgICAgIH0gY29uZmlndXJlUmVx dWVzdDsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAg ICAgICBDQVJEMzIgZXZlbnQgLCB3aW5kb3cgOwogICAgICAgICAgICBJTlQxNiB4ICwgeSA7CiAg ICAgICAgICAgIENBUkQzMiBwYWQxICwgcGFkMiAsIHBhZDMgLCBwYWQ0IDsKICAgICAgICB9IGdy YXZpdHk7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAg ICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAgICAgICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCA7 CiAgICAgICAgfSByZXNpemVSZXF1ZXN0OwogICAgICAgIHN0cnVjdCB7CgoKICAgICAgICAgICAg Q0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIGV2ZW50ICwgd2luZG93ICwgcGFyZW50 IDsKICAgICAgICAgICAgQllURSBwbGFjZTsKICAgICAgICAgICAgQllURSBwYWQxLCBwYWQyLCBw YWQzOwogICAgICAgIH0gY2lyY3VsYXRlOwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENB UkQzMiBwYWQwMCA7CiAgICAgICAgICAgIENBUkQzMiB3aW5kb3cgOwogICAgICAgICAgICBDQVJE MzIgYXRvbSA7CiAgICAgICAgICAgIENBUkQzMiB0aW1lIDsKICAgICAgICAgICAgQllURSBzdGF0 ZTsKICAgICAgICAgICAgQllURSBwYWQxOwogICAgICAgICAgICBDQVJEMTYgcGFkMiA7CiAgICAg ICAgfSBwcm9wZXJ0eTsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAg OwogICAgICAgICAgICBDQVJEMzIgdGltZSA7CiAgICAgICAgICAgIENBUkQzMiB3aW5kb3cgOwog ICAgICAgICAgICBDQVJEMzIgYXRvbSA7CiAgICAgICAgfSBzZWxlY3Rpb25DbGVhcjsKICAgICAg ICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJEMzIg dGltZSA7CiAgICAgICAgICAgIENBUkQzMiBvd25lciAsIHJlcXVlc3RvciA7CiAgICAgICAgICAg IENBUkQzMiBzZWxlY3Rpb24gLCB0YXJnZXQgLCBwcm9wZXJ0eSA7CiAgICAgICAgfSBzZWxlY3Rp b25SZXF1ZXN0OwogICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgIENBUkQzMiBwYWQwMCA7CiAg ICAgICAgICAgIENBUkQzMiB0aW1lIDsKICAgICAgICAgICAgQ0FSRDMyIHJlcXVlc3RvciA7CiAg ICAgICAgICAgIENBUkQzMiBzZWxlY3Rpb24gLCB0YXJnZXQgLCBwcm9wZXJ0eSA7CiAgICAgICAg fSBzZWxlY3Rpb25Ob3RpZnk7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBh ZDAwIDsKICAgICAgICAgICAgQ0FSRDMyIHdpbmRvdyA7CiAgICAgICAgICAgIENBUkQzMiBjb2xv cm1hcCA7CgoKCiAgICAgICAgICAgIEJPT0wgbmV3OwoKICAgICAgICAgICAgQllURSBzdGF0ZTsK ICAgICAgICAgICAgQllURSBwYWQxLCBwYWQyOwogICAgICAgIH0gY29sb3JtYXA7CiAgICAgICAg c3RydWN0IHsKICAgICAgICAgICAgQ0FSRDMyIHBhZDAwIDsKICAgICAgICAgICAgQ0FSRDggcmVx dWVzdDsKICAgICAgICAgICAgQ0FSRDggZmlyc3RLZXlDb2RlOwogICAgICAgICAgICBDQVJEOCBj b3VudDsKICAgICAgICAgICAgQllURSBwYWQxOwogICAgICAgIH0gbWFwcGluZ05vdGlmeTsKICAg ICAgICBzdHJ1Y3QgewogICAgICAgICAgICBDQVJEMzIgcGFkMDAgOwogICAgICAgICAgICBDQVJE MzIgd2luZG93IDsKICAgICAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsK ICAgICAgICAgICAgICAgICAgICBDQVJEMzIgdHlwZSA7CiAgICAgICAgICAgICAgICAgICAgSU5U MzIgbG9uZ3MwIDsKICAgICAgICAgICAgICAgICAgICBJTlQzMiBsb25nczEgOwogICAgICAgICAg ICAgICAgICAgIElOVDMyIGxvbmdzMiA7CiAgICAgICAgICAgICAgICAgICAgSU5UMzIgbG9uZ3Mz IDsKICAgICAgICAgICAgICAgICAgICBJTlQzMiBsb25nczQgOwogICAgICAgICAgICAgICAgfSBs OwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICBDQVJEMzIgdHlw ZSA7CiAgICAgICAgICAgICAgICAgICAgSU5UMTYgc2hvcnRzMCA7CiAgICAgICAgICAgICAgICAg ICAgSU5UMTYgc2hvcnRzMSA7CiAgICAgICAgICAgICAgICAgICAgSU5UMTYgc2hvcnRzMiA7CiAg ICAgICAgICAgICAgICAgICAgSU5UMTYgc2hvcnRzMyA7CiAgICAgICAgICAgICAgICAgICAgSU5U MTYgc2hvcnRzNCA7CiAgICAgICAgICAgICAgICAgICAgSU5UMTYgc2hvcnRzNSA7CiAgICAgICAg ICAgICAgICAgICAgSU5UMTYgc2hvcnRzNiA7CiAgICAgICAgICAgICAgICAgICAgSU5UMTYgc2hv cnRzNyA7CiAgICAgICAgICAgICAgICAgICAgSU5UMTYgc2hvcnRzOCA7CiAgICAgICAgICAgICAg ICAgICAgSU5UMTYgc2hvcnRzOSA7CiAgICAgICAgICAgICAgICB9IHM7CiAgICAgICAgICAgICAg ICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgIENBUkQzMiB0eXBlIDsKICAgICAgICAgICAg ICAgICAgICBJTlQ4IGJ5dGVzWzIwXTsKICAgICAgICAgICAgICAgIH0gYjsKICAgICAgICAgICAg fSB1OwogICAgICAgIH0gY2xpZW50TWVzc2FnZTsKICAgIH0gdTsKfSB4RXZlbnQ7CgoKCgoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQllURSBtYXBbMzFdOwogICAgfSB4S2V5 bWFwRXZlbnQ7CiMgMTIzMSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9Y cHJvdG8uaCIKdHlwZWRlZiB1bmlvbiB7CiAgICB4R2VuZXJpY1JlcGx5IGdlbmVyaWM7CiAgICB4 R2V0R2VvbWV0cnlSZXBseSBnZW9tOwogICAgeFF1ZXJ5VHJlZVJlcGx5IHRyZWU7CiAgICB4SW50 ZXJuQXRvbVJlcGx5IGF0b207CiAgICB4R2V0QXRvbU5hbWVSZXBseSBhdG9tTmFtZTsKICAgIHhH ZXRQcm9wZXJ0eVJlcGx5IHByb3BlcnR5OwogICAgeExpc3RQcm9wZXJ0aWVzUmVwbHkgbGlzdFBy b3BlcnRpZXM7CiAgICB4R2V0U2VsZWN0aW9uT3duZXJSZXBseSBzZWxlY3Rpb247CiAgICB4R3Jh YlBvaW50ZXJSZXBseSBncmFiUG9pbnRlcjsKICAgIHhHcmFiS2V5Ym9hcmRSZXBseSBncmFiS2V5 Ym9hcmQ7CiAgICB4UXVlcnlQb2ludGVyUmVwbHkgcG9pbnRlcjsKICAgIHhHZXRNb3Rpb25FdmVu dHNSZXBseSBtb3Rpb25FdmVudHM7CiAgICB4VHJhbnNsYXRlQ29vcmRzUmVwbHkgY29vcmRzOwog ICAgeEdldElucHV0Rm9jdXNSZXBseSBpbnB1dEZvY3VzOwogICAgeFF1ZXJ5VGV4dEV4dGVudHNS ZXBseSB0ZXh0RXh0ZW50czsKICAgIHhMaXN0Rm9udHNSZXBseSBmb250czsKICAgIHhHZXRGb250 UGF0aFJlcGx5IGZvbnRQYXRoOwogICAgeEdldEltYWdlUmVwbHkgaW1hZ2U7CiAgICB4TGlzdElu c3RhbGxlZENvbG9ybWFwc1JlcGx5IGNvbG9ybWFwczsKICAgIHhBbGxvY0NvbG9yUmVwbHkgYWxs b2NDb2xvcjsKICAgIHhBbGxvY05hbWVkQ29sb3JSZXBseSBhbGxvY05hbWVkQ29sb3I7CiAgICB4 QWxsb2NDb2xvckNlbGxzUmVwbHkgY29sb3JDZWxsczsKICAgIHhBbGxvY0NvbG9yUGxhbmVzUmVw bHkgY29sb3JQbGFuZXM7CiAgICB4UXVlcnlDb2xvcnNSZXBseSBjb2xvcnM7CiAgICB4TG9va3Vw Q29sb3JSZXBseSBsb29rdXBDb2xvcjsKICAgIHhRdWVyeUJlc3RTaXplUmVwbHkgYmVzdFNpemU7 CiAgICB4UXVlcnlFeHRlbnNpb25SZXBseSBleHRlbnNpb247CiAgICB4TGlzdEV4dGVuc2lvbnNS ZXBseSBleHRlbnNpb25zOwogICAgeFNldE1vZGlmaWVyTWFwcGluZ1JlcGx5IHNldE1vZGlmaWVy TWFwcGluZzsKICAgIHhHZXRNb2RpZmllck1hcHBpbmdSZXBseSBnZXRNb2RpZmllck1hcHBpbmc7 CiAgICB4U2V0UG9pbnRlck1hcHBpbmdSZXBseSBzZXRQb2ludGVyTWFwcGluZzsKICAgIHhHZXRL ZXlib2FyZE1hcHBpbmdSZXBseSBnZXRLZXlib2FyZE1hcHBpbmc7CiAgICB4R2V0UG9pbnRlck1h cHBpbmdSZXBseSBnZXRQb2ludGVyTWFwcGluZzsKICAgIHhHZXRQb2ludGVyQ29udHJvbFJlcGx5 IHBvaW50ZXJDb250cm9sOwogICAgeEdldFNjcmVlblNhdmVyUmVwbHkgc2NyZWVuU2F2ZXI7CiAg ICB4TGlzdEhvc3RzUmVwbHkgaG9zdHM7CiAgICB4RXJyb3IgZXJyb3I7CiAgICB4RXZlbnQgZXZl bnQ7Cn0geFJlcGx5OwojIDEyODEgIi4uLy4uLy4uLy4uLy4uLy4uL2V4cG9ydHMvaW5jbHVkZS9Y MTEvWHByb3RvLmgiCnR5cGVkZWYgc3RydWN0IF94UmVxIHsKICAgICAgICBDQVJEOCByZXFUeXBl OwogICAgICAgIENBUkQ4IGRhdGE7CiAgICAgICAgQ0FSRDE2IGxlbmd0aCA7Cgp9IHhSZXE7CiMg MTI5NSAiLi4vLi4vLi4vLi4vLi4vLi4vZXhwb3J0cy9pbmNsdWRlL1gxMS9YcHJvdG8uaCIKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2 IGxlbmd0aCA7CiAgICBDQVJEMzIgaWQgOwogICAgfSB4UmVzb3VyY2VSZXE7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggZGVwdGg7CiAgICBDQVJEMTYgbGVu Z3RoIDsKICAgIENBUkQzMiB3aWQgLCBwYXJlbnQgOwogICAgSU5UMTYgeCAsIHkgOwogICAgQ0FS RDE2IHdpZHRoICwgaGVpZ2h0ICwgYm9yZGVyV2lkdGggOwoKCgogICAgQ0FSRDE2IGNsYXNzIDsK CiAgICBDQVJEMzIgdmlzdWFsIDsKICAgIENBUkQzMiBtYXNrIDsKfSB4Q3JlYXRlV2luZG93UmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAg Q0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsKICAgIENBUkQzMiB2YWx1ZU1hc2sg Owp9IHhDaGFuZ2VXaW5kb3dBdHRyaWJ1dGVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIEJZVEUgbW9kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMy IHdpbmRvdyA7Cn0geENoYW5nZVNhdmVTZXRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3 aW5kb3cgLCBwYXJlbnQgOwogICAgSU5UMTYgeCAsIHkgOwp9IHhSZXBhcmVudFdpbmRvd1JlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBwYWQ7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDE2IG1hc2sgOwogICAg Q0FSRDE2IHBhZDIgOwp9IHhDb25maWd1cmVXaW5kb3dSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggZGlyZWN0aW9uOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBDQVJEMzIgd2luZG93IDsKfSB4Q2lyY3VsYXRlV2luZG93UmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJPT0wgb25seUlmRXhpc3RzOwogICAgQ0FSRDE2 IGxlbmd0aCA7CiAgICBDQVJEMTYgbmJ5dGVzIDsKICAgIENBUkQxNiBwYWQgOwp9IHhJbnRlcm5B dG9tUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG1v ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDMyIHBy b3BlcnR5ICwgdHlwZSA7CiAgICBDQVJEOCBmb3JtYXQ7CiAgICBCWVRFIHBhZFszXTsKICAgIENB UkQzMiBuVW5pdHMgOwp9IHhDaGFuZ2VQcm9wZXJ0eVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FS RDMyIHdpbmRvdyA7CiAgICBDQVJEMzIgcHJvcGVydHkgOwp9IHhEZWxldGVQcm9wZXJ0eVJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CgoKCiAgICBCT09MIGRlbGV0ZTsK CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDMyIHByb3Bl cnR5ICwgdHlwZSA7CiAgICBDQVJEMzIgbG9uZ09mZnNldCA7CiAgICBDQVJEMzIgbG9uZ0xlbmd0 aCA7Cn0geEdldFByb3BlcnR5UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsK ICAgIENBUkQzMiBzZWxlY3Rpb24gOwogICAgQ0FSRDMyIHRpbWUgOwp9IHhTZXRTZWxlY3Rpb25P d25lclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBh ZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHJlcXVlc3RvciA7CiAgICBDQVJEMzIg c2VsZWN0aW9uICwgdGFyZ2V0ICwgcHJvcGVydHkgOwogICAgQ0FSRDMyIHRpbWUgOwogICAgfSB4 Q29udmVydFNlbGVjdGlvblJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBCT09MIHByb3BhZ2F0ZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGRlc3Rp bmF0aW9uIDsKICAgIENBUkQzMiBldmVudE1hc2sgOwoKCgoKICAgIHhFdmVudCBldmVudDsKCn0g eFNlbmRFdmVudFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBC T09MIG93bmVyRXZlbnRzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZ3JhYldpbmRv dyA7CiAgICBDQVJEMTYgZXZlbnRNYXNrIDsKICAgIEJZVEUgcG9pbnRlck1vZGUsIGtleWJvYXJk TW9kZTsKICAgIENBUkQzMiBjb25maW5lVG8gOwogICAgQ0FSRDMyIGN1cnNvciA7CiAgICBDQVJE MzIgdGltZSA7Cn0geEdyYWJQb2ludGVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg cmVxVHlwZTsKICAgIEJPT0wgb3duZXJFdmVudHM7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQzMiBncmFiV2luZG93IDsKICAgIENBUkQxNiBldmVudE1hc2sgOwogICAgQllURSBwb2ludGVy TW9kZSwga2V5Ym9hcmRNb2RlOwogICAgQ0FSRDMyIGNvbmZpbmVUbyA7CiAgICBDQVJEMzIgY3Vy c29yIDsKICAgIENBUkQ4IGJ1dHRvbjsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IG1vZGlmaWVy cyA7Cn0geEdyYWJCdXR0b25SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggYnV0dG9uOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZ3JhYldp bmRvdyA7CiAgICBDQVJEMTYgbW9kaWZpZXJzIDsKICAgIENBUkQxNiBwYWQgOwp9IHhVbmdyYWJC dXR0b25SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBw YWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjdXJzb3IgOwogICAgQ0FSRDMyIHRp bWUgOwogICAgQ0FSRDE2IGV2ZW50TWFzayA7CiAgICBDQVJEMTYgcGFkMiA7Cn0geENoYW5nZUFj dGl2ZVBvaW50ZXJHcmFiUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIEJPT0wgb3duZXJFdmVudHM7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBncmFi V2luZG93IDsKICAgIENBUkQzMiB0aW1lIDsKICAgIEJZVEUgcG9pbnRlck1vZGUsIGtleWJvYXJk TW9kZTsKICAgIENBUkQxNiBwYWQgOwp9IHhHcmFiS2V5Ym9hcmRSZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQk9PTCBvd25lckV2ZW50czsKICAgIENBUkQxNiBs ZW5ndGggOwogICAgQ0FSRDMyIGdyYWJXaW5kb3cgOwogICAgQ0FSRDE2IG1vZGlmaWVycyA7CiAg ICBDQVJEOCBrZXk7CiAgICBCWVRFIHBvaW50ZXJNb2RlLCBrZXlib2FyZE1vZGU7CiAgICBCWVRF IHBhZDEsIHBhZDIsIHBhZDM7Cn0geEdyYWJLZXlSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQ0FSRDgga2V5OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJE MzIgZ3JhYldpbmRvdyA7CiAgICBDQVJEMTYgbW9kaWZpZXJzIDsKICAgIENBUkQxNiBwYWQgOwp9 IHhVbmdyYWJLZXlSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAg Q0FSRDggbW9kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHRpbWUgOwp9IHhBbGxv d0V2ZW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRF IHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHdpbmRvdyA7CiAgICBDQVJEMzIg c3RhcnQgLCBzdG9wIDsKfSB4R2V0TW90aW9uRXZlbnRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBD QVJEMzIgc3JjV2lkICwgZHN0V2lkIDsKICAgIElOVDE2IHNyY1ggLCBzcmNZIDsKfSB4VHJhbnNs YXRlQ29vcmRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZ VEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgc3JjV2lkICwgZHN0V2lkIDsK ICAgIElOVDE2IHNyY1ggLCBzcmNZIDsKICAgIENBUkQxNiBzcmNXaWR0aCAsIHNyY0hlaWdodCA7 CiAgICBJTlQxNiBkc3RYICwgZHN0WSA7Cn0geFdhcnBQb2ludGVyUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IHJldmVydFRvOwogICAgQ0FSRDE2IGxl bmd0aCA7CiAgICBDQVJEMzIgZm9jdXMgOwogICAgQ0FSRDMyIHRpbWUgOwp9IHhTZXRJbnB1dEZv Y3VzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFk OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZmlkIDsKICAgIENBUkQxNiBuYnl0ZXMg OwogICAgQllURSBwYWQxLCBwYWQyOwp9IHhPcGVuRm9udFJlcTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCT09MIG9kZExlbmd0aDsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgQ0FSRDMyIGZpZCA7CiAgICB9IHhRdWVyeVRleHRFeHRlbnRzUmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBDQVJEMTYgbWF4TmFtZXMgOwogICAgQ0FSRDE2IG5ieXRlcyA7Cn0geExpc3RGb250 c1JlcTsKCnR5cGVkZWYgeExpc3RGb250c1JlcSB4TGlzdEZvbnRzV2l0aEluZm9SZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIENBUkQxNiBuRm9udHMgOwogICAgQllURSBwYWQxLCBwYWQyOwp9IHhTZXRG b250UGF0aFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBkZXB0aDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIHBpZCA7CiAgICBDQVJEMzIg ZHJhd2FibGUgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKfSB4Q3JlYXRlUGl4bWFwUmVx OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAg Q0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZ2MgOwogICAgQ0FSRDMyIGRyYXdhYmxlIDsKICAg IENBUkQzMiBtYXNrIDsKfSB4Q3JlYXRlR0NSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBn YyA7CiAgICBDQVJEMzIgbWFzayA7Cn0geENoYW5nZUdDUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBD QVJEMzIgc3JjR0MgLCBkc3RHQyA7CiAgICBDQVJEMzIgbWFzayA7Cn0geENvcHlHQ1JlcTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQx NiBsZW5ndGggOwogICAgQ0FSRDMyIGdjIDsKICAgIENBUkQxNiBkYXNoT2Zmc2V0IDsKICAgIENB UkQxNiBuRGFzaGVzIDsKfSB4U2V0RGFzaGVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIEJZVEUgb3JkZXJpbmc7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQzMiBnYyA7CiAgICBJTlQxNiB4T3JpZ2luICwgeU9yaWdpbiA7Cn0geFNldENsaXBSZWN0YW5n bGVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJPT0wgZXhw b3N1cmVzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsKICAgIElOVDE2 IHggLCB5IDsKICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCA7Cn0geENsZWFyQXJlYVJlcTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQx NiBsZW5ndGggOwogICAgQ0FSRDMyIHNyY0RyYXdhYmxlICwgZHN0RHJhd2FibGUgOwogICAgQ0FS RDMyIGdjIDsKICAgIElOVDE2IHNyY1ggLCBzcmNZICwgZHN0WCAsIGRzdFkgOwogICAgQ0FSRDE2 IHdpZHRoICwgaGVpZ2h0IDsKfSB4Q29weUFyZWFSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBD QVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQz MiBzcmNEcmF3YWJsZSAsIGRzdERyYXdhYmxlIDsKICAgIENBUkQzMiBnYyA7CiAgICBJTlQxNiBz cmNYICwgc3JjWSAsIGRzdFggLCBkc3RZIDsKICAgIENBUkQxNiB3aWR0aCAsIGhlaWdodCA7CiAg ICBDQVJEMzIgYml0UGxhbmUgOwp9IHhDb3B5UGxhbmVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQllURSBjb29yZE1vZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIENBUkQzMiBkcmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwp9IHhQb2x5UG9pbnRSZXE7Cgp0 eXBlZGVmIHhQb2x5UG9pbnRSZXEgeFBvbHlMaW5lUmVxOwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQzMiBkcmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwp9IHhQb2x5U2VnbWVudFJlcTsKCnR5cGVk ZWYgeFBvbHlTZWdtZW50UmVxIHhQb2x5QXJjUmVxOwp0eXBlZGVmIHhQb2x5U2VnbWVudFJlcSB4 UG9seVJlY3RhbmdsZVJlcTsKdHlwZWRlZiB4UG9seVNlZ21lbnRSZXEgeFBvbHlGaWxsUmVjdGFu Z2xlUmVxOwp0eXBlZGVmIHhQb2x5U2VnbWVudFJlcSB4UG9seUZpbGxBcmNSZXE7Cgp0eXBlZGVm IHN0cnVjdCBfRmlsbFBvbHlSZXEgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgZHJhd2FibGUgOwogICAgQ0FSRDMyIGdjIDsK ICAgIEJZVEUgc2hhcGU7CiAgICBCWVRFIGNvb3JkTW9kZTsKICAgIENBUkQxNiBwYWQxIDsKfSB4 RmlsbFBvbHlSZXE7CgoKdHlwZWRlZiBzdHJ1Y3QgX1B1dEltYWdlUmVxIHsKICAgIENBUkQ4IHJl cVR5cGU7CiAgICBDQVJEOCBmb3JtYXQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBk cmF3YWJsZSA7CiAgICBDQVJEMzIgZ2MgOwogICAgQ0FSRDE2IHdpZHRoICwgaGVpZ2h0IDsKICAg IElOVDE2IGRzdFggLCBkc3RZIDsKICAgIENBUkQ4IGxlZnRQYWQ7CiAgICBDQVJEOCBkZXB0aDsK ICAgIENBUkQxNiBwYWQgOwp9IHhQdXRJbWFnZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBmb3JtYXQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENB UkQzMiBkcmF3YWJsZSA7CiAgICBJTlQxNiB4ICwgeSA7CiAgICBDQVJEMTYgd2lkdGggLCBoZWln aHQgOwogICAgQ0FSRDMyIHBsYW5lTWFzayA7Cn0geEdldEltYWdlUmVxOwoKCgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggcGFkOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBDQVJEMzIgZHJhd2FibGUgOwogICAgQ0FSRDMyIGdjIDsKICAgIElOVDE2IHggLCB5 IDsKfSB4UG9seVRleHRSZXE7Cgp0eXBlZGVmIHhQb2x5VGV4dFJlcSB4UG9seVRleHQ4UmVxOwp0 eXBlZGVmIHhQb2x5VGV4dFJlcSB4UG9seVRleHQxNlJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIG5DaGFyczsKICAgIENBUkQxNiBsZW5ndGggOwogICAg Q0FSRDMyIGRyYXdhYmxlIDsKICAgIENBUkQzMiBnYyA7CiAgICBJTlQxNiB4ICwgeSA7Cn0geElt YWdlVGV4dFJlcTsKCnR5cGVkZWYgeEltYWdlVGV4dFJlcSB4SW1hZ2VUZXh0OFJlcTsKdHlwZWRl ZiB4SW1hZ2VUZXh0UmVxIHhJbWFnZVRleHQxNlJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBCWVRFIGFsbG9jOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJE MzIgbWlkIDsKICAgIENBUkQzMiB3aW5kb3cgOwogICAgQ0FSRDMyIHZpc3VhbCA7Cn0geENyZWF0 ZUNvbG9ybWFwUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZ VEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgbWlkIDsKICAgIENBUkQzMiBz cmNDbWFwIDsKfSB4Q29weUNvbG9ybWFwQW5kRnJlZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FS RDMyIGNtYXAgOwogICAgQ0FSRDE2IHJlZCAsIGdyZWVuICwgYmx1ZSA7CiAgICBDQVJEMTYgcGFk MiA7Cn0geEFsbG9jQ29sb3JSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjbWFwIDsKICAg IENBUkQxNiBuYnl0ZXMgOwogICAgQllURSBwYWQxLCBwYWQyOwp9IHhBbGxvY05hbWVkQ29sb3JS ZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQk9PTCBjb250aWd1 b3VzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgY21hcCA7CiAgICBDQVJEMTYgY29s b3JzICwgcGxhbmVzIDsKfSB4QWxsb2NDb2xvckNlbGxzUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIEJPT0wgY29udGlndW91czsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgQ0FSRDMyIGNtYXAgOwogICAgQ0FSRDE2IGNvbG9ycyAsIHJlZCAsIGdyZWVuICwgYmx1 ZSA7Cn0geEFsbG9jQ29sb3JQbGFuZXNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjbWFw IDsKICAgIENBUkQzMiBwbGFuZU1hc2sgOwp9IHhGcmVlQ29sb3JzUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBDQVJEMzIgY21hcCA7Cn0geFN0b3JlQ29sb3JzUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IGZsYWdzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBDQVJEMzIgY21hcCA7CiAgICBDQVJEMzIgcGl4ZWwgOwogICAgQ0FSRDE2IG5ieXRlcyA7CiAg ICBCWVRFIHBhZDEsIHBhZDI7CiAgICB9IHhTdG9yZU5hbWVkQ29sb3JSZXE7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3Ro IDsKICAgIENBUkQzMiBjbWFwIDsKfSB4UXVlcnlDb2xvcnNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAg IENBUkQzMiBjbWFwIDsKICAgIENBUkQxNiBuYnl0ZXMgOwogICAgQllURSBwYWQxLCBwYWQyOwp9 IHhMb29rdXBDb2xvclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAg ICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGNpZCA7CiAgICBDQVJE MzIgc291cmNlICwgbWFzayA7CiAgICBDQVJEMTYgZm9yZVJlZCAsIGZvcmVHcmVlbiAsIGZvcmVC bHVlIDsKICAgIENBUkQxNiBiYWNrUmVkICwgYmFja0dyZWVuICwgYmFja0JsdWUgOwogICAgQ0FS RDE2IHggLCB5IDsKfSB4Q3JlYXRlQ3Vyc29yUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIg Y2lkIDsKICAgIENBUkQzMiBzb3VyY2UgLCBtYXNrIDsKICAgIENBUkQxNiBzb3VyY2VDaGFyICwg bWFza0NoYXIgOwogICAgQ0FSRDE2IGZvcmVSZWQgLCBmb3JlR3JlZW4gLCBmb3JlQmx1ZSA7CiAg ICBDQVJEMTYgYmFja1JlZCAsIGJhY2tHcmVlbiAsIGJhY2tCbHVlIDsKfSB4Q3JlYXRlR2x5cGhD dXJzb3JSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBw YWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQzMiBjdXJzb3IgOwogICAgQ0FSRDE2IGZv cmVSZWQgLCBmb3JlR3JlZW4gLCBmb3JlQmx1ZSA7CiAgICBDQVJEMTYgYmFja1JlZCAsIGJhY2tH cmVlbiAsIGJhY2tCbHVlIDsKfSB4UmVjb2xvckN1cnNvclJlcTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHJlcVR5cGU7CgoKCiAgICBDQVJEOCBjbGFzczsKCiAgICBDQVJEMTYgbGVuZ3Ro IDsKICAgIENBUkQzMiBkcmF3YWJsZSA7CiAgICBDQVJEMTYgd2lkdGggLCBoZWlnaHQgOwp9IHhR dWVyeUJlc3RTaXplUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAg IEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMTYgbmJ5dGVzIDsKICAgIEJZ VEUgcGFkMSwgcGFkMjsKfSB4UXVlcnlFeHRlbnNpb25SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggbnVtS2V5UGVyTW9kaWZpZXI7CiAgICBDQVJEMTYg bGVuZ3RoIDsKfSB4U2V0TW9kaWZpZXJNYXBwaW5nUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg Q0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG5FbHRzOwogICAgQ0FSRDE2IGxlbmd0aCA7Cn0geFNl dFBvaW50ZXJNYXBwaW5nUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEOCBmaXJzdEtleUNvZGU7 CiAgICBDQVJEOCBjb3VudDsKICAgIENBUkQxNiBwYWQxIDsKfSB4R2V0S2V5Ym9hcmRNYXBwaW5n UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IGtleUNv ZGVzOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEOCBmaXJzdEtleUNvZGU7CiAgICBDQVJE OCBrZXlTeW1zUGVyS2V5Q29kZTsKICAgIENBUkQxNiBwYWQxIDsKfSB4Q2hhbmdlS2V5Ym9hcmRN YXBwaW5nUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIEJZVEUg cGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgbWFzayA7Cn0geENoYW5nZUtleWJv YXJkQ29udHJvbFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBJ TlQ4IHBlcmNlbnQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsKfSB4QmVsbFJlcTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgSU5UMTYgYWNjZWxOdW0gLCBhY2NlbERlbnVtIDsKICAgIElOVDE2IHRocmVzaG9sZCA7 CiAgICBCT09MIGRvQWNjZWwsIGRvVGhyZXNoOwp9IHhDaGFuZ2VQb2ludGVyQ29udHJvbFJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIHBhZDsKICAgIENB UkQxNiBsZW5ndGggOwogICAgSU5UMTYgdGltZW91dCAsIGludGVydmFsIDsKICAgIEJZVEUgcHJl ZmVyQmxhbmssIGFsbG93RXhwb3NlOwogICAgQ0FSRDE2IHBhZDIgOwp9IHhTZXRTY3JlZW5TYXZl clJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBCWVRFIG1vZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQ4IGhvc3RGYW1pbHk7CiAgICBCWVRFIHBhZDsK ICAgIENBUkQxNiBob3N0TGVuZ3RoIDsKfSB4Q2hhbmdlSG9zdHNSZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQllURSBwYWQ7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIH0geExpc3RIb3N0c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7 CiAgICBCWVRFIG1vZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIH0geENoYW5nZU1vZGVSZXE7 Cgp0eXBlZGVmIHhDaGFuZ2VNb2RlUmVxIHhTZXRBY2Nlc3NDb250cm9sUmVxOwp0eXBlZGVmIHhD aGFuZ2VNb2RlUmVxIHhTZXRDbG9zZURvd25Nb2RlUmVxOwp0eXBlZGVmIHhDaGFuZ2VNb2RlUmVx IHhGb3JjZVNjcmVlblNhdmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIEJZVEUgcGFkOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMzIgd2luZG93IDsK ICAgIENBUkQxNiBuQXRvbXMgOwogICAgSU5UMTYgblBvc2l0aW9ucyA7CiAgICB9IHhSb3RhdGVQ cm9wZXJ0aWVzUmVxOwojIDU2ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2lu Y2x1ZGUvZ2MuaCIgMgojIDg1ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2lu Y2x1ZGUvZ2MuaCIKdHlwZWRlZiBzdHJ1Y3QgX0dDSW50ZXJlc3QgKkdDSW50ZXJlc3RQdHI7CnR5 cGVkZWYgc3RydWN0IF9HQyAqR0NQdHI7CnR5cGVkZWYgc3RydWN0IF9HQ09wcyAqR0NPcHNQdHI7 CgpleHRlcm4gdm9pZCBWYWxpZGF0ZUdDKAoKICAgIERyYXdhYmxlUHRyICwKICAgIEdDUHRyCgop OwoKZXh0ZXJuIGludCBDaGFuZ2VHQygKCiAgICBHQ1B0ciAsCiAgICBCSVRTMzIgLAogICAgWElE KgoKKTsKCmV4dGVybiBpbnQgRG9DaGFuZ2VHQygKCiAgICBHQ1B0ciAsCiAgICBCSVRTMzIgLAog ICAgWElEKiAsCiAgICBpbnQKCik7Cgp0eXBlZGVmIHVuaW9uIHsKICAgIENBUkQzMiB2YWw7CiAg ICBwb2ludGVyIHB0cjsKfSBDaGFuZ2VHQ1ZhbCwgKkNoYW5nZUdDVmFsUHRyOwoKZXh0ZXJuIGlu dCBkaXhDaGFuZ2VHQygKCiAgICBDbGllbnRQdHIgLAogICAgR0NQdHIgLAogICAgQklUUzMyICwK ICAgIENBUkQzMiAqICwKICAgIENoYW5nZUdDVmFsUHRyCgopOwoKZXh0ZXJuIEdDUHRyIENyZWF0 ZUdDKAoKICAgIERyYXdhYmxlUHRyICwKICAgIEJJVFMzMiAsCiAgICBYSUQqICwKICAgIGludCoK Cik7CgpleHRlcm4gaW50IENvcHlHQygKCiAgICBHQ1B0ciAsCiAgICBHQ1B0ciAsCiAgICBCSVRT MzIKCik7CgpleHRlcm4gaW50IEZyZWVHQygKCiAgICBwb2ludGVyICwKICAgIFhJRAoKKTsKCmV4 dGVybiB2b2lkIFNldEdDTWFzaygKCiAgICBHQ1B0ciAsCiAgICBNYXNrICwKICAgIE1hc2sKCik7 CgpleHRlcm4gR0NQdHIgQ3JlYXRlU2NyYXRjaEdDKAoKICAgIFNjcmVlblB0ciAsCiAgICB1bnNp Z25lZAoKKTsKCmV4dGVybiB2b2lkIEZyZWVHQ3BlckRlcHRoKAoKICAgIGludAoKKTsKCmV4dGVy biBCb29sIENyZWF0ZUdDcGVyRGVwdGgoCgogICAgaW50CgopOwoKZXh0ZXJuIEJvb2wgQ3JlYXRl RGVmYXVsdFN0aXBwbGUoCgogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQgRnJlZURlZmF1bHRTdGlw cGxlKAoKICAgIGludAoKKTsKCmV4dGVybiBpbnQgU2V0RGFzaGVzKAoKICAgIEdDUHRyICwKICAg IHVuc2lnbmVkICwKICAgIHVuc2lnbmVkICwKICAgIHVuc2lnbmVkIGNoYXIqCgopOwoKZXh0ZXJu IGludCBWZXJpZnlSZWN0T3JkZXIoCgogICAgaW50ICwKICAgIHhSZWN0YW5nbGUqICwKICAgIGlu dAoKKTsKCmV4dGVybiBpbnQgU2V0Q2xpcFJlY3RzKAoKICAgIEdDUHRyICwKICAgIGludCAsCiAg ICBpbnQgLAogICAgaW50ICwKICAgIHhSZWN0YW5nbGUqICwKICAgIGludAoKKTsKCmV4dGVybiBH Q1B0ciBHZXRTY3JhdGNoR0MoCgogICAgdW5zaWduZWQgLAogICAgU2NyZWVuUHRyCgopOwoKZXh0 ZXJuIHZvaWQgRnJlZVNjcmF0Y2hHQygKCiAgICBHQ1B0cgoKKTsKIyA1NCAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2RpeC5oIiAyCiMgMSAiLi4vLi4vLi4vLi4v Li4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3dpbmRvdy5oIiAxCiMgNTMgIi4uLy4uLy4u Ly4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS93aW5kb3cuaCIKIyAxICIuLi8uLi8u Li8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcmVnaW9uLmgiIDEKIyA1MSAiLi4v Li4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3JlZ2lvbi5oIgojIDEgIi4u Ly4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9yZWdpb25zdHIuaCIgMQoj IDY3ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcmVnaW9uc3Ry LmgiCnR5cGVkZWYgc3RydWN0IF9SZWdEYXRhIHsKICAgIGxvbmcgc2l6ZTsKICAgIGxvbmcgbnVt UmVjdHM7Cgp9IFJlZ0RhdGFSZWMsICpSZWdEYXRhUHRyOwoKdHlwZWRlZiBzdHJ1Y3QgX1JlZ2lv biB7CiAgICBCb3hSZWMgZXh0ZW50czsKICAgIFJlZ0RhdGFQdHIgZGF0YTsKfSBSZWdpb25SZWMs ICpSZWdpb25QdHI7CgpleHRlcm4gQm94UmVjIG1pRW1wdHlCb3g7CmV4dGVybiBSZWdEYXRhUmVj IG1pRW1wdHlEYXRhOwpleHRlcm4gUmVnRGF0YVJlYyBtaUJyb2tlbkRhdGE7CiMgMjk0ICIuLi8u Li8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcmVnaW9uc3RyLmgiCmV4dGVy biBSZWdpb25QdHIgbWlSZWdpb25DcmVhdGUoCgogICAgQm94UHRyICwKICAgIGludAoKKTsKCmV4 dGVybiB2b2lkIG1pUmVnaW9uSW5pdCgKCiAgICBSZWdpb25QdHIgLAogICAgQm94UHRyICwKICAg IGludAoKKTsKCmV4dGVybiB2b2lkIG1pUmVnaW9uRGVzdHJveSgKCiAgICBSZWdpb25QdHIKCik7 CgpleHRlcm4gdm9pZCBtaVJlZ2lvblVuaW5pdCgKCiAgICBSZWdpb25QdHIKCik7CgpleHRlcm4g Qm9vbCBtaVJlZ2lvbkNvcHkoCgogICAgUmVnaW9uUHRyICwKICAgIFJlZ2lvblB0cgoKKTsKCmV4 dGVybiBCb29sIG1pSW50ZXJzZWN0KAoKICAgIFJlZ2lvblB0ciAsCiAgICBSZWdpb25QdHIgLAog ICAgUmVnaW9uUHRyCgopOwoKZXh0ZXJuIEJvb2wgbWlVbmlvbigKCiAgICBSZWdpb25QdHIgLAog ICAgUmVnaW9uUHRyICwKICAgIFJlZ2lvblB0cgoKKTsKCmV4dGVybiBCb29sIG1pUmVnaW9uQXBw ZW5kKAoKICAgIFJlZ2lvblB0ciAsCiAgICBSZWdpb25QdHIKCik7CgpleHRlcm4gQm9vbCBtaVJl Z2lvblZhbGlkYXRlKAoKICAgIFJlZ2lvblB0ciAsCiAgICBCb29sICoKCik7CgpleHRlcm4gUmVn aW9uUHRyIG1pUmVjdHNUb1JlZ2lvbigKCiAgICBpbnQgLAogICAgeFJlY3RhbmdsZVB0ciAsCiAg ICBpbnQKCik7CgpleHRlcm4gQm9vbCBtaVN1YnRyYWN0KAoKICAgIFJlZ2lvblB0ciAsCiAgICBS ZWdpb25QdHIgLAogICAgUmVnaW9uUHRyCgopOwoKZXh0ZXJuIEJvb2wgbWlJbnZlcnNlKAoKICAg IFJlZ2lvblB0ciAsCiAgICBSZWdpb25QdHIgLAogICAgQm94UHRyCgopOwoKZXh0ZXJuIGludCBt aVJlY3RJbigKCiAgICBSZWdpb25QdHIgLAogICAgQm94UHRyCgopOwoKZXh0ZXJuIHZvaWQgbWlU cmFuc2xhdGVSZWdpb24oCgogICAgUmVnaW9uUHRyICwKICAgIGludCAsCiAgICBpbnQKCik7Cgpl eHRlcm4gdm9pZCBtaVJlZ2lvblJlc2V0KAoKICAgIFJlZ2lvblB0ciAsCiAgICBCb3hQdHIKCik7 CgpleHRlcm4gQm9vbCBtaVJlZ2lvbkJyZWFrKAoKICAgIFJlZ2lvblB0cgoKKTsKCmV4dGVybiBC b29sIG1pUG9pbnRJblJlZ2lvbigKCiAgICBSZWdpb25QdHIgLAogICAgaW50ICwKICAgIGludCAs CiAgICBCb3hQdHIKCik7CgpleHRlcm4gQm9vbCBtaVJlZ2lvbk5vdEVtcHR5KAoKICAgIFJlZ2lv blB0cgoKKTsKCmV4dGVybiB2b2lkIG1pUmVnaW9uRW1wdHkoCgogICAgUmVnaW9uUHRyCgopOwoK ZXh0ZXJuIEJveFB0ciBtaVJlZ2lvbkV4dGVudHMoCgogICAgUmVnaW9uUHRyCgopOwojIDUyICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvcmVnaW9uLmgiIDIKIyA1 NCAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3dpbmRvdy5oIiAy CiMgNzAgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS93aW5kb3cu aCIKdHlwZWRlZiBzdHJ1Y3QgX0JhY2tpbmdTdG9yZSAqQmFja2luZ1N0b3JlUHRyOwp0eXBlZGVm IHN0cnVjdCBfV2luZG93ICpXaW5kb3dQdHI7Cgp0eXBlZGVmIGludCAoKlZpc2l0V2luZG93UHJv Y1B0cikoCgogICAgV2luZG93UHRyICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gaW50IFRyYXZl cnNlVHJlZSgKCiAgICBXaW5kb3dQdHIgLAogICAgVmlzaXRXaW5kb3dQcm9jUHRyICwKICAgIHBv aW50ZXIKCik7CgpleHRlcm4gaW50IFdhbGtUcmVlKAoKICAgIFNjcmVlblB0ciAsCiAgICBWaXNp dFdpbmRvd1Byb2NQdHIgLAogICAgcG9pbnRlcgoKKTsKCmV4dGVybiBXaW5kb3dQdHIgQWxsb2Nh dGVXaW5kb3coCgogICAgU2NyZWVuUHRyCgopOwoKZXh0ZXJuIEJvb2wgQ3JlYXRlUm9vdFdpbmRv dygKCiAgICBTY3JlZW5QdHIKCik7CgpleHRlcm4gdm9pZCBJbml0Um9vdFdpbmRvdygKCiAgICBX aW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBDbGlwcGVkUmVnaW9uRnJvbUJveCgKCiAgICBXaW5k b3dQdHIgLAogICAgUmVnaW9uUHRyICwKICAgIGludCAsCiAgICBpbnQgLAogICAgaW50ICwKICAg IGludAoKKTsKCmV4dGVybiBXaW5kb3dQdHIgUmVhbENoaWxkSGVhZCgKCiAgICBXaW5kb3dQdHIK Cik7CgpleHRlcm4gV2luZG93UHRyIENyZWF0ZVdpbmRvdygKCiAgICBXaW5kb3cgLAogICAgV2lu ZG93UHRyICwKICAgIGludCAsCiAgICBpbnQgLAogICAgdW5zaWduZWQgaW50ICwKICAgIHVuc2ln bmVkIGludCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgdW5zaWduZWQgaW50ICwKICAgIE1hc2sg LAogICAgWElEKiAsCiAgICBpbnQgLAogICAgQ2xpZW50UHRyICwKICAgIFZpc3VhbElEICwKICAg IGludCoKCik7CgpleHRlcm4gaW50IERlbGV0ZVdpbmRvdygKCiAgICBwb2ludGVyICwKICAgIFhJ RAoKKTsKCmV4dGVybiB2b2lkIERlc3Ryb3lTdWJ3aW5kb3dzKAoKICAgIFdpbmRvd1B0ciAsCiAg ICBDbGllbnRQdHIKCik7CgoKCgoKCmV4dGVybiBpbnQgQ2hhbmdlV2luZG93QXR0cmlidXRlcygK CiAgICBXaW5kb3dQdHIgLAogICAgTWFzayAsCiAgICBYSUQqICwKICAgIENsaWVudFB0cgoKKTsK CgoKCgoKCmV4dGVybiB2b2lkIEdldFdpbmRvd0F0dHJpYnV0ZXMoCgoKICAgIFdpbmRvd1B0ciAs CiAgICBDbGllbnRQdHIgLAogICAgeEdldFdpbmRvd0F0dHJpYnV0ZXNSZXBseSoKCik7CgpleHRl cm4gUmVnaW9uUHRyIENyZWF0ZVVuY2xpcHBlZFdpblNpemUoCgogICAgV2luZG93UHRyCgopOwoK ZXh0ZXJuIHZvaWQgR3Jhdml0eVRyYW5zbGF0ZSgKCiAgICBpbnQgLAogICAgaW50ICwKICAgIGlu dCAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIGludCAsCiAgICB1bnNpZ25lZCAsCiAgICBpbnQq ICwKICAgIGludCoKCik7CgpleHRlcm4gaW50IENvbmZpZ3VyZVdpbmRvdygKCiAgICBXaW5kb3dQ dHIgLAogICAgTWFzayAsCiAgICBYSUQqICwKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiBpbnQg Q2lyY3VsYXRlV2luZG93KAoKICAgIFdpbmRvd1B0ciAsCiAgICBpbnQgLAogICAgQ2xpZW50UHRy CgopOwoKZXh0ZXJuIGludCBSZXBhcmVudFdpbmRvdygKCiAgICBXaW5kb3dQdHIgLAogICAgV2lu ZG93UHRyICwKICAgIGludCAsCiAgICBpbnQgLAogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIGlu dCBNYXBXaW5kb3coCgogICAgV2luZG93UHRyICwKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiB2 b2lkIE1hcFN1YndpbmRvd3MoCgogICAgV2luZG93UHRyICwKICAgIENsaWVudFB0cgoKKTsKCmV4 dGVybiBpbnQgVW5tYXBXaW5kb3coCgogICAgV2luZG93UHRyICwKICAgIEJvb2wKCik7CgpleHRl cm4gdm9pZCBVbm1hcFN1YndpbmRvd3MoCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQg SGFuZGxlU2F2ZVNldCgKCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gQm9vbCBWaXNpYmxlQm91 bmRpbmdCb3hGcm9tUG9pbnQoCgogICAgV2luZG93UHRyICwKICAgIGludCAsCiAgICBpbnQgLAog ICAgQm94UHRyCgopOwoKZXh0ZXJuIEJvb2wgUG9pbnRJbldpbmRvd0lzVmlzaWJsZSgKCiAgICBX aW5kb3dQdHIgLAogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiBSZWdpb25QdHIgTm90Q2xp cHBlZEJ5Q2hpbGRyZW4oCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQgU2VuZFZpc2li aWxpdHlOb3RpZnkoCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQgU2F2ZVNjcmVlbnMo CgogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiBXaW5kb3dQdHIgRmluZFdpbmRvd1dpdGhP cHRpb25hbCgKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gdm9pZCBDaGVja1dpbmRvd09wdGlv bmFsTmVlZCgKCiAgICBXaW5kb3dQdHIKCik7CgpleHRlcm4gQm9vbCBNYWtlV2luZG93T3B0aW9u YWwoCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQgRGlzcG9zZVdpbmRvd09wdGlvbmFs KAoKICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiBXaW5kb3dQdHIgTW92ZVdpbmRvd0luU3RhY2so CgogICAgV2luZG93UHRyICwKICAgIFdpbmRvd1B0cgoKKTsKCnZvaWQgU2V0V2luU2l6ZSgKCiAg ICBXaW5kb3dQdHIKCik7Cgp2b2lkIFNldEJvcmRlclNpemUoCgogICAgV2luZG93UHRyCgopOwoK dm9pZCBSZXNpemVDaGlsZHJlbldpblNpemUoCgogICAgV2luZG93UHRyICwKICAgIGludCAsCiAg ICBpbnQgLAogICAgaW50ICwKICAgIGludAoKKTsKIyA1NSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJv Z3JhbXMvWHNlcnZlci9pbmNsdWRlL2RpeC5oIiAyCiMgMSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJv Z3JhbXMvWHNlcnZlci9pbmNsdWRlL2lucHV0LmgiIDEKIyA4MSAiLi4vLi4vLi4vLi4vLi4vLi4v cHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2lucHV0LmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBM ZWRzOwp0eXBlZGVmIHN0cnVjdCBfT3RoZXJDbGllbnRzICpPdGhlckNsaWVudHNQdHI7CnR5cGVk ZWYgc3RydWN0IF9JbnB1dENsaWVudHMgKklucHV0Q2xpZW50c1B0cjsKdHlwZWRlZiBzdHJ1Y3Qg X0RldmljZUludFJlYyAqRGV2aWNlSW50UHRyOwoKdHlwZWRlZiBpbnQgKCpEZXZpY2VQcm9jKSgK CiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50CgopOwoKdHlwZWRlZiB2b2lkICgqUHJvY2Vzc0lu cHV0UHJvYykoCgogICAgeEV2ZW50UHRyICwKICAgIERldmljZUludFB0ciAsCiAgICBpbnQKCik7 Cgp0eXBlZGVmIHN0cnVjdCBfRGV2aWNlUmVjIHsKICAgIHBvaW50ZXIgZGV2aWNlUHJpdmF0ZTsK ICAgIFByb2Nlc3NJbnB1dFByb2MgcHJvY2Vzc0lucHV0UHJvYzsKICAgIFByb2Nlc3NJbnB1dFBy b2MgcmVhbElucHV0UHJvYzsKICAgIFByb2Nlc3NJbnB1dFByb2MgZW5xdWV1ZUlucHV0UHJvYzsK ICAgIEJvb2wgb247Cn0gRGV2aWNlUmVjLCAqRGV2aWNlUHRyOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgaW50IGNsaWNrLCBiZWxsLCBiZWxsX3BpdGNoLCBiZWxsX2R1cmF0aW9uOwogICAgQm9vbCBh dXRvUmVwZWF0OwogICAgdW5zaWduZWQgY2hhciBhdXRvUmVwZWF0c1szMl07CiAgICBMZWRzIGxl ZHM7CiAgICB1bnNpZ25lZCBjaGFyIGlkOwp9IEtleWJkQ3RybDsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIEtleVN5bSAqbWFwOwogICAgS2V5Q29kZSBtaW5LZXlDb2RlLAogICAgICAgICAgICBtYXhL ZXlDb2RlOwogICAgaW50IG1hcFdpZHRoOwp9IEtleVN5bXNSZWMsICpLZXlTeW1zUHRyOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgaW50IG51bSwgZGVuLCB0aHJlc2hvbGQ7CiAgICB1bnNpZ25lZCBj aGFyIGlkOwp9IFB0ckN0cmw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgcmVzb2x1dGlvbiwg bWluX3ZhbHVlLCBtYXhfdmFsdWU7CiAgICBpbnQgaW50ZWdlcl9kaXNwbGF5ZWQ7CiAgICB1bnNp Z25lZCBjaGFyIGlkOwp9IEludGVnZXJDdHJsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IG1h eF9zeW1ib2xzLCBudW1fc3ltYm9sc19zdXBwb3J0ZWQ7CiAgICBpbnQgbnVtX3N5bWJvbHNfZGlz cGxheWVkOwogICAgS2V5U3ltICpzeW1ib2xzX3N1cHBvcnRlZDsKICAgIEtleVN5bSAqc3ltYm9s c19kaXNwbGF5ZWQ7CiAgICB1bnNpZ25lZCBjaGFyIGlkOwp9IFN0cmluZ0N0cmw7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBpbnQgcGVyY2VudCwgcGl0Y2gsIGR1cmF0aW9uOwogICAgdW5zaWduZWQg Y2hhciBpZDsKfSBCZWxsQ3RybDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIExlZHMgbGVkX3ZhbHVl czsKICAgIE1hc2sgbGVkX21hc2s7CiAgICB1bnNpZ25lZCBjaGFyIGlkOwp9IExlZEN0cmw7Cgpl eHRlcm4gS2V5YmRDdHJsIGRlZmF1bHRLZXlib2FyZENvbnRyb2w7CmV4dGVybiBQdHJDdHJsIGRl ZmF1bHRQb2ludGVyQ29udHJvbDsKCgpleHRlcm4gRGV2aWNlUHRyIEFkZElucHV0RGV2aWNlKAoK ICAgIERldmljZVByb2MgLAogICAgQm9vbAoKKTsKCgoKCmV4dGVybiBEZXZpY2VJbnRQdHIgX0Fk ZElucHV0RGV2aWNlKAoKICAgIERldmljZVByb2MgLAogICAgQm9vbAoKKTsKCmV4dGVybiBCb29s IEVuYWJsZURldmljZSgKCiAgICBEZXZpY2VJbnRQdHIKCik7CgpleHRlcm4gQm9vbCBEaXNhYmxl RGV2aWNlKAoKICAgIERldmljZUludFB0cgoKKTsKCmV4dGVybiBpbnQgSW5pdEFuZFN0YXJ0RGV2 aWNlcygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQ2xvc2VEb3duRGV2aWNlcygKCiAgICB2 b2lkCgopOwoKZXh0ZXJuIHZvaWQgUmVtb3ZlRGV2aWNlKAoKICAgIERldmljZUludFB0cgoKKTsK CmV4dGVybiBpbnQgTnVtTW90aW9uRXZlbnRzKAoKICAgIHZvaWQKCik7CgoKZXh0ZXJuIHZvaWQg UmVnaXN0ZXJQb2ludGVyRGV2aWNlKAoKICAgIERldmljZVB0cgoKKTsKCgoKCmV4dGVybiB2b2lk IF9SZWdpc3RlclBvaW50ZXJEZXZpY2UoCgogICAgRGV2aWNlSW50UHRyCgopOwoKCmV4dGVybiB2 b2lkIFJlZ2lzdGVyS2V5Ym9hcmREZXZpY2UoCgogICAgRGV2aWNlUHRyCgopOwoKCgoKZXh0ZXJu IHZvaWQgX1JlZ2lzdGVyS2V5Ym9hcmREZXZpY2UoCgogICAgRGV2aWNlSW50UHRyCgopOwoKZXh0 ZXJuIERldmljZVB0ciBMb29rdXBLZXlib2FyZERldmljZSgKCiAgICB2b2lkCgopOwoKZXh0ZXJu IERldmljZVB0ciBMb29rdXBQb2ludGVyRGV2aWNlKAoKICAgIHZvaWQKCik7CgpleHRlcm4gRGV2 aWNlUHRyIExvb2t1cERldmljZSgKCiAgICBpbnQKCik7CgpleHRlcm4gdm9pZCBRdWVyeU1pbk1h eEtleUNvZGVzKAoKICAgIEtleUNvZGUqICwKICAgIEtleUNvZGUqCgopOwoKZXh0ZXJuIEJvb2wg U2V0S2V5U3ltc01hcCgKCiAgICBLZXlTeW1zUHRyICwKICAgIEtleVN5bXNQdHIKCik7CgpleHRl cm4gQm9vbCBJbml0S2V5Q2xhc3NEZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyICwKICAg IEtleVN5bXNQdHIgLAogICAgQ0FSRDggW10KCik7CgpleHRlcm4gQm9vbCBJbml0QnV0dG9uQ2xh c3NEZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyICwKICAgIGludCAsCiAgICBDQVJEOCoK Cik7Cgp0eXBlZGVmIGludCAoKlZhbHVhdG9yTW90aW9uUHJvY1B0cikoCgogICAgICAgICAgICAg ICAgRGV2aWNlSW50UHRyICwKICAgICAgICAgICAgICAgIHhUaW1lY29vcmQgKiAsCiAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nICwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgLAog ICAgICAgICAgICAgICAgU2NyZWVuUHRyCgopOwoKZXh0ZXJuIEJvb2wgSW5pdFZhbHVhdG9yQ2xh c3NEZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyICwKICAgIGludCAsCiAgICBWYWx1YXRv ck1vdGlvblByb2NQdHIgLAogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiBCb29sIEluaXRG b2N1c0NsYXNzRGV2aWNlU3RydWN0KAoKICAgIERldmljZUludFB0cgoKKTsKCnR5cGVkZWYgdm9p ZCAoKkJlbGxQcm9jUHRyKSgKCiAgICBpbnQgLAogICAgRGV2aWNlSW50UHRyICwKICAgIHBvaW50 ZXIgLAogICAgaW50CgopOwoKdHlwZWRlZiB2b2lkICgqS2JkQ3RybFByb2NQdHIpKAoKICAgIERl dmljZUludFB0ciAsCiAgICBLZXliZEN0cmwgKgoKKTsKCmV4dGVybiBCb29sIEluaXRLYmRGZWVk YmFja0NsYXNzRGV2aWNlU3RydWN0KAoKICAgIERldmljZUludFB0ciAsCiAgICBCZWxsUHJvY1B0 ciAsCiAgICBLYmRDdHJsUHJvY1B0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKlB0ckN0cmxQcm9jUHRy KSgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgUHRyQ3RybCAqCgopOwoKZXh0ZXJuIEJvb2wgSW5p dFB0ckZlZWRiYWNrQ2xhc3NEZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlSW50UHRyICwKICAgIFB0 ckN0cmxQcm9jUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqU3RyaW5nQ3RybFByb2NQdHIpKAoKICAg IERldmljZUludFB0ciAsCiAgICBTdHJpbmdDdHJsICoKCik7CgpleHRlcm4gQm9vbCBJbml0U3Ry aW5nRmVlZGJhY2tDbGFzc0RldmljZVN0cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgU3Ry aW5nQ3RybFByb2NQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAgICBLZXlTeW0qCgopOwoKdHlw ZWRlZiB2b2lkICgqQmVsbEN0cmxQcm9jUHRyKSgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgQmVs bEN0cmwgKgoKKTsKCmV4dGVybiBCb29sIEluaXRCZWxsRmVlZGJhY2tDbGFzc0RldmljZVN0cnVj dCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgQmVsbFByb2NQdHIgLAogICAgQmVsbEN0cmxQcm9j UHRyCgopOwoKdHlwZWRlZiB2b2lkICgqTGVkQ3RybFByb2NQdHIpKAoKICAgIERldmljZUludFB0 ciAsCiAgICBMZWRDdHJsICoKCik7CgpleHRlcm4gQm9vbCBJbml0TGVkRmVlZGJhY2tDbGFzc0Rl dmljZVN0cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgTGVkQ3RybFByb2NQdHIKCik7Cgp0 eXBlZGVmIHZvaWQgKCpJbnRlZ2VyQ3RybFByb2NQdHIpKAoKICAgIERldmljZUludFB0ciAsCiAg ICBJbnRlZ2VyQ3RybCAqCgopOwoKCmV4dGVybiBCb29sIEluaXRJbnRlZ2VyRmVlZGJhY2tDbGFz c0RldmljZVN0cnVjdCgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgSW50ZWdlckN0cmxQcm9jUHRy CgopOwoKZXh0ZXJuIEJvb2wgSW5pdFBvaW50ZXJEZXZpY2VTdHJ1Y3QoCgogICAgRGV2aWNlUHRy ICwKICAgIENBUkQ4KiAsCiAgICBpbnQgLAogICAgVmFsdWF0b3JNb3Rpb25Qcm9jUHRyICwKICAg IFB0ckN0cmxQcm9jUHRyICwKICAgIGludAoKKTsKCmV4dGVybiBCb29sIEluaXRLZXlib2FyZERl dmljZVN0cnVjdCgKCiAgICBEZXZpY2VQdHIgLAogICAgS2V5U3ltc1B0ciAsCiAgICBDQVJEOCBb XSwKICAgIEJlbGxQcm9jUHRyICwKICAgIEtiZEN0cmxQcm9jUHRyCgopOwoKZXh0ZXJuIHZvaWQg U2VuZE1hcHBpbmdOb3RpZnkoCgogICAgdW5zaWduZWQgaW50ICwKICAgIHVuc2lnbmVkIGludCAs CiAgICB1bnNpZ25lZCBpbnQgLAogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIEJvb2wgQmFkRGV2 aWNlTWFwKAoKICAgIEJZVEUqICwKICAgIGludCAsCiAgICB1bnNpZ25lZCAsCiAgICB1bnNpZ25l ZCAsCiAgICBYSUQqCgopOwoKZXh0ZXJuIEJvb2wgQWxsTW9kaWZpZXJLZXlzQXJlVXAoCgogICAg RGV2aWNlSW50UHRyICwKICAgIENBUkQ4KiAsCiAgICBpbnQgLAogICAgQ0FSRDgqICwKICAgIGlu dAoKKTsKCmV4dGVybiB2b2lkIE5vdGVMZWRTdGF0ZSgKCiAgICBEZXZpY2VJbnRQdHIgLAogICAg aW50ICwKICAgIEJvb2wKCik7CgpleHRlcm4gdm9pZCBNYXliZVN0b3BIaW50KAoKICAgIERldmlj ZUludFB0ciAsCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gdm9pZCBQcm9jZXNzUG9pbnRlckV2 ZW50KAoKICAgIHhFdmVudFB0ciAsCiAgICBEZXZpY2VJbnRQdHIgLAogICAgaW50CgopOwoKZXh0 ZXJuIHZvaWQgUHJvY2Vzc0tleWJvYXJkRXZlbnQoCgogICAgeEV2ZW50UHRyICwKICAgIERldmlj ZUludFB0ciAsCiAgICBpbnQKCik7CgoKZXh0ZXJuIHZvaWQgQ29yZVByb2Nlc3NQb2ludGVyRXZl bnQoCgogICAgeEV2ZW50UHRyICwKICAgIERldmljZUludFB0ciAsCiAgICBpbnQKCik7CgpleHRl cm4gdm9pZCBDb3JlUHJvY2Vzc0tleWJvYXJkRXZlbnQoCgogICAgeEV2ZW50UHRyICwKICAgIERl dmljZUludFB0ciAsCiAgICBpbnQKCik7CgoKZXh0ZXJuIEJvb2wgTGVnYWxNb2RpZmllcigKCiAg ICB1bnNpZ25lZCBpbnQgLAogICAgRGV2aWNlUHRyCgopOwoKZXh0ZXJuIHZvaWQgUHJvY2Vzc0lu cHV0RXZlbnRzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBJbml0SW5wdXQoCgogICAgaW50 ICwKICAgIGNoYXIgKioKCik7CiMgNTYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2 ZXIvaW5jbHVkZS9kaXguaCIgMgojIDI4NCAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNl cnZlci9pbmNsdWRlL2RpeC5oIgp0eXBlZGVmIHN0cnVjdCBfVGltZVN0YW1wICpUaW1lU3RhbXBQ dHI7CgoKCgoKCnR5cGVkZWYgc3RydWN0IF9Xb3JrUXVldWUgKldvcmtRdWV1ZVB0cjsKCmV4dGVy biBDbGllbnRQdHIgcmVxdWVzdGluZ0NsaWVudDsKZXh0ZXJuIENsaWVudFB0ciAqY2xpZW50czsK ZXh0ZXJuIENsaWVudFB0ciBzZXJ2ZXJDbGllbnQ7CmV4dGVybiBpbnQgY3VycmVudE1heENsaWVu dHM7Cgp0eXBlZGVmIGludCBIV0V2ZW50UXVldWVUeXBlOwp0eXBlZGVmIEhXRXZlbnRRdWV1ZVR5 cGUqIEhXRXZlbnRRdWV1ZVB0cjsKCmV4dGVybiBIV0V2ZW50UXVldWVQdHIgY2hlY2tGb3JJbnB1 dFsyXTsKCnR5cGVkZWYgc3RydWN0IF9UaW1lU3RhbXAgewogICAgQ0FSRDMyIG1vbnRoczsKICAg IENBUkQzMiBtaWxsaXNlY29uZHM7Cn0gVGltZVN0YW1wOwoKCgpleHRlcm4gdm9pZCBTZXRJbnB1 dENoZWNrKAoKICAgIEhXRXZlbnRRdWV1ZVB0ciAsCiAgICBIV0V2ZW50UXVldWVQdHIKCik7Cgpl eHRlcm4gdm9pZCBDbG9zZURvd25DbGllbnQoCgogICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIHZv aWQgVXBkYXRlQ3VycmVudFRpbWUoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIFVwZGF0ZUN1 cnJlbnRUaW1lSWYoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEluaXRTZWxlY3Rpb25zKAoK ICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBGbHVzaENsaWVudENhY2hlcygKCiAgICBYSUQKCik7 CgpleHRlcm4gaW50IGRpeERlc3Ryb3lQaXhtYXAoCgogICAgcG9pbnRlciAsCiAgICBYSUQKCik7 CgpleHRlcm4gdm9pZCBDbG9zZURvd25SZXRhaW5lZFJlc291cmNlcygKCiAgICB2b2lkCgopOwoK ZXh0ZXJuIHZvaWQgSW5pdENsaWVudCgKCiAgICBDbGllbnRQdHIgLAogICAgaW50ICwKICAgIHBv aW50ZXIKCik7CgpleHRlcm4gQ2xpZW50UHRyIE5leHRBdmFpbGFibGVDbGllbnQoCgogICAgcG9p bnRlcgoKKTsKCmV4dGVybiB2b2lkIFNlbmRFcnJvclRvQ2xpZW50KAoKICAgIENsaWVudFB0ciAs CiAgICB1bnNpZ25lZCBpbnQgLAogICAgdW5zaWduZWQgaW50ICwKICAgIFhJRCAsCiAgICBpbnQK Cik7CgpleHRlcm4gdm9pZCBEZWxldGVXaW5kb3dGcm9tQW55U2VsZWN0aW9ucygKCiAgICBXaW5k b3dQdHIKCik7CgpleHRlcm4gdm9pZCBNYXJrQ2xpZW50RXhjZXB0aW9uKAoKICAgIENsaWVudFB0 cgoKKTsKCmV4dGVybiBpbnQgR2V0R2VvbWV0cnkoCgogICAgQ2xpZW50UHRyICwKICAgIHhHZXRH ZW9tZXRyeVJlcGx5KgoKKTsKCmV4dGVybiBpbnQgU2VuZENvbm5TZXR1cCgKCiAgICBDbGllbnRQ dHIgLAogICAgY2hhcioKCik7CgpleHRlcm4gaW50CkRvR2V0SW1hZ2UoCgogICAgQ2xpZW50UHRy ICwKICAgIGludCAsCiAgICBEcmF3YWJsZSAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIGludCAs CiAgICBpbnQgLAogICAgTWFzayAsCiAgICB4R2V0SW1hZ2VSZXBseSAqKgoKKTsKCgpleHRlcm4g dm9pZCBJbmNyZW1lbnRDbGllbnRDb3VudCgKCiAgICB2b2lkCgopOwoKCgoKZXh0ZXJuIHZvaWQg Q29weUlTT0xhdGluMUxvd2VyZWQoCgogICAgdW5zaWduZWQgY2hhciAqICwKICAgIHVuc2lnbmVk IGNoYXIgKiAsCiAgICBpbnQKCik7CgoKCmV4dGVybiBXaW5kb3dQdHIgU2VjdXJpdHlMb29rdXBX aW5kb3coCgogICAgWElEICwKICAgIENsaWVudFB0ciAsCiAgICBNYXNrCgopOwoKZXh0ZXJuIHBv aW50ZXIgU2VjdXJpdHlMb29rdXBEcmF3YWJsZSgKCiAgICBYSUQgLAogICAgQ2xpZW50UHRyICwK ICAgIE1hc2sKCik7CgpleHRlcm4gV2luZG93UHRyIExvb2t1cFdpbmRvdygKCiAgICBYSUQgLAog ICAgQ2xpZW50UHRyCgopOwoKZXh0ZXJuIHBvaW50ZXIgTG9va3VwRHJhd2FibGUoCgogICAgWElE ICwKICAgIENsaWVudFB0cgoKKTsKIyA0OTkgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hz ZXJ2ZXIvaW5jbHVkZS9kaXguaCIKZXh0ZXJuIENsaWVudFB0ciBMb29rdXBDbGllbnQoCgogICAg WElEICwKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiB2b2lkIE5vb3BEREEoCgogICAgdm9pZCAq LAogICAgLi4uCgopOwoKZXh0ZXJuIGludCBBbHRlclNhdmVTZXRGb3JDbGllbnQoCgogICAgQ2xp ZW50UHRyICwKICAgIFdpbmRvd1B0ciAsCiAgICB1bnNpZ25lZAoKKTsKCmV4dGVybiB2b2lkIERl bGV0ZVdpbmRvd0Zyb21BbnlTYXZlU2V0KAoKICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiB2b2lk IEJsb2NrSGFuZGxlcigKCiAgICBwb2ludGVyICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gdm9p ZCBXYWtldXBIYW5kbGVyKAoKICAgIGludCAsCiAgICBwb2ludGVyCgopOwoKdHlwZWRlZiB2b2lk ICgqIFdha2V1cEhhbmRsZXJQcm9jUHRyKSgKCiAgICBwb2ludGVyICwKICAgIGludCAsCiAgICBw b2ludGVyCgopOwoKZXh0ZXJuIEJvb2wgUmVnaXN0ZXJCbG9ja0FuZFdha2V1cEhhbmRsZXJzKAoK ICAgIEJsb2NrSGFuZGxlclByb2NQdHIgLAogICAgV2FrZXVwSGFuZGxlclByb2NQdHIgLAogICAg cG9pbnRlcgoKKTsKCmV4dGVybiB2b2lkIFJlbW92ZUJsb2NrQW5kV2FrZXVwSGFuZGxlcnMoCgog ICAgQmxvY2tIYW5kbGVyUHJvY1B0ciAsCiAgICBXYWtldXBIYW5kbGVyUHJvY1B0ciAsCiAgICBw b2ludGVyCgopOwoKZXh0ZXJuIHZvaWQgSW5pdEJsb2NrQW5kV2FrZXVwSGFuZGxlcnMoCgogICAg dm9pZAoKKTsKCmV4dGVybiB2b2lkIFByb2Nlc3NXb3JrUXVldWUoCgogICAgdm9pZAoKKTsKCmV4 dGVybiBCb29sIFF1ZXVlV29ya1Byb2MoCgogICAgQm9vbCAoKiApKAoKICAgICAgICBDbGllbnRQ dHIgLAogICAgICAgIHBvaW50ZXIKCiAgICAgICAgKSwKICAgIENsaWVudFB0ciAsCiAgICBwb2lu dGVyCgopOwoKdHlwZWRlZiBCb29sICgqIENsaWVudFNsZWVwUHJvY1B0cikoCgogICAgQ2xpZW50 UHRyICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gQm9vbCBDbGllbnRTbGVlcCgKCiAgICBDbGll bnRQdHIgLAogICAgQ2xpZW50U2xlZXBQcm9jUHRyICwKICAgIHBvaW50ZXIKCik7CgoKCmV4dGVy biBCb29sIENsaWVudFNpZ25hbCgKCiAgICBDbGllbnRQdHIKCik7CgoKZXh0ZXJuIHZvaWQgQ2xp ZW50V2FrZXVwKAoKICAgIENsaWVudFB0cgoKKTsKCmV4dGVybiBCb29sIENsaWVudElzQXNsZWVw KAoKICAgIENsaWVudFB0cgoKKTsKCgoKZXh0ZXJuIEF0b20gTWFrZUF0b20oCgogICAgY2hhciAq ICwKICAgIHVuc2lnbmVkICwKICAgIEJvb2wKCik7CgpleHRlcm4gQm9vbCBWYWxpZEF0b20oCgog ICAgQXRvbQoKKTsKCmV4dGVybiBjaGFyICpOYW1lRm9yQXRvbSgKCiAgICBBdG9tCgopOwoKZXh0 ZXJuIHZvaWQgQXRvbUVycm9yKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBGcmVlQWxsQXRv bXMoCgogICAgdm9pZAoKKTsKCmV4dGVybiB2b2lkIEluaXRBdG9tcygKCiAgICB2b2lkCgopOwoK CgpleHRlcm4gdm9pZCBTZXRNYXNrRm9yRXZlbnQoCgogICAgTWFzayAsCiAgICBpbnQKCik7CgoK ZXh0ZXJuIEJvb2wgSXNQYXJlbnQoCgogICAgV2luZG93UHRyICwKICAgIFdpbmRvd1B0cgoKKTsK CmV4dGVybiBXaW5kb3dQdHIgR2V0Q3VycmVudFJvb3RXaW5kb3coCgogICAgdm9pZAoKKTsKCmV4 dGVybiBXaW5kb3dQdHIgR2V0U3ByaXRlV2luZG93KAoKICAgIHZvaWQKCik7CgoKZXh0ZXJuIHZv aWQgTm90aWNlRXZlbnRUaW1lKAoKICAgIHhFdmVudFB0cgoKKTsKCmV4dGVybiB2b2lkIEVucXVl dWVFdmVudCgKCiAgICB4RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwKICAgIGludAoKKTsK CmV4dGVybiB2b2lkIENvbXB1dGVGcmVlemVzKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBD aGVja0dyYWJGb3JTeW5jcygKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgQm9vbCAsCiAgICBCb29s CgopOwoKZXh0ZXJuIHZvaWQgQWN0aXZhdGVQb2ludGVyR3JhYigKCiAgICBEZXZpY2VJbnRQdHIg LAogICAgR3JhYlB0ciAsCiAgICBUaW1lU3RhbXAgLAogICAgQm9vbAoKKTsKCmV4dGVybiB2b2lk IERlYWN0aXZhdGVQb2ludGVyR3JhYigKCiAgICBEZXZpY2VJbnRQdHIKCik7CgpleHRlcm4gdm9p ZCBBY3RpdmF0ZUtleWJvYXJkR3JhYigKCiAgICBEZXZpY2VJbnRQdHIgLAogICAgR3JhYlB0ciAs CiAgICBUaW1lU3RhbXAgLAogICAgQm9vbAoKKTsKCmV4dGVybiB2b2lkIERlYWN0aXZhdGVLZXli b2FyZEdyYWIoCgogICAgRGV2aWNlSW50UHRyCgopOwoKZXh0ZXJuIHZvaWQgQWxsb3dTb21lKAoK ICAgIENsaWVudFB0ciAsCiAgICBUaW1lU3RhbXAgLAogICAgRGV2aWNlSW50UHRyICwKICAgIGlu dAoKKTsKCmV4dGVybiB2b2lkIFJlbGVhc2VBY3RpdmVHcmFicygKCkNsaWVudFB0ciBjbGllbnQK Cik7CgpleHRlcm4gaW50IERlbGl2ZXJFdmVudHNUb1dpbmRvdygKCiAgICBXaW5kb3dQdHIgLAog ICAgeEV2ZW50UHRyICwKICAgIGludCAsCiAgICBNYXNrICwKICAgIEdyYWJQdHIgLAogICAgaW50 CgopOwoKZXh0ZXJuIGludCBEZWxpdmVyRGV2aWNlRXZlbnRzKAoKICAgIFdpbmRvd1B0ciAsCiAg ICB4RXZlbnRQdHIgLAogICAgR3JhYlB0ciAsCiAgICBXaW5kb3dQdHIgLAogICAgRGV2aWNlSW50 UHRyICwKICAgIGludAoKKTsKCmV4dGVybiB2b2lkIERlZmluZUluaXRpYWxSb290V2luZG93KAoK ICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiB2b2lkIFdpbmRvd0hhc05ld0N1cnNvcigKCiAgICBX aW5kb3dQdHIKCik7CgpleHRlcm4gQm9vbCBDaGVja0RldmljZUdyYWJzKAoKICAgIERldmljZUlu dFB0ciAsCiAgICB4RXZlbnRQdHIgLAogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiB2b2lk IERlbGl2ZXJGb2N1c2VkRXZlbnQoCgogICAgRGV2aWNlSW50UHRyICwKICAgIHhFdmVudFB0ciAs CiAgICBXaW5kb3dQdHIgLAogICAgaW50CgopOwoKZXh0ZXJuIHZvaWQgRGVsaXZlckdyYWJiZWRF dmVudCgKCiAgICB4RXZlbnRQdHIgLAogICAgRGV2aWNlSW50UHRyICwKICAgIEJvb2wgLAogICAg aW50CgopOwoKCmV4dGVybiB2b2lkIEZpeEtleVN0YXRlKAoKICAgIHhFdmVudCAqICwKICAgIERl dmljZUludFB0cgoKKTsKCgpleHRlcm4gdm9pZCBSZWNhbGN1bGF0ZURlbGl2ZXJhYmxlRXZlbnRz KAoKICAgIFdpbmRvd1B0cgoKKTsKCmV4dGVybiBpbnQgT3RoZXJDbGllbnRHb25lKAoKICAgIHBv aW50ZXIgLAogICAgWElECgopOwoKZXh0ZXJuIHZvaWQgRG9Gb2N1c0V2ZW50cygKCiAgICBEZXZp Y2VJbnRQdHIgLAogICAgV2luZG93UHRyICwKICAgIFdpbmRvd1B0ciAsCiAgICBpbnQKCik7Cgpl eHRlcm4gaW50IFNldElucHV0Rm9jdXMoCgogICAgQ2xpZW50UHRyICwKICAgIERldmljZUludFB0 ciAsCiAgICBXaW5kb3cgLAogICAgQ0FSRDggLAogICAgVGltZSAsCiAgICBCb29sCgopOwoKZXh0 ZXJuIGludCBHcmFiRGV2aWNlKAoKICAgIENsaWVudFB0ciAsCiAgICBEZXZpY2VJbnRQdHIgLAog ICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAogICAgV2luZG93ICwKICAgIHVuc2lnbmVkICwK ICAgIFRpbWUgLAogICAgTWFzayAsCiAgICBDQVJEOCAqCgopOwoKZXh0ZXJuIHZvaWQgSW5pdEV2 ZW50cygKCiAgICB2b2lkCgopOwoKZXh0ZXJuIHZvaWQgQ2xvc2VEb3duRXZlbnRzKHZvaWQpOwoK ZXh0ZXJuIHZvaWQgRGVsZXRlV2luZG93RnJvbUFueUV2ZW50cygKCiAgICBXaW5kb3dQdHIgLAog ICAgQm9vbAoKKTsKCgpleHRlcm4gTWFzayBFdmVudE1hc2tGb3JDbGllbnQoCgogICAgV2luZG93 UHRyICwKICAgIENsaWVudFB0cgoKKTsKCgoKZXh0ZXJuIGludCBEZWxpdmVyRXZlbnRzKAoKICAg IFdpbmRvd1B0ciAsCiAgICB4RXZlbnRQdHIgLAogICAgaW50ICwKICAgIFdpbmRvd1B0cgoKKTsK CgpleHRlcm4gdm9pZCBXcml0ZUV2ZW50c1RvQ2xpZW50KAoKICAgIENsaWVudFB0ciAsCiAgICBp bnQgLAogICAgeEV2ZW50UHRyCgopOwoKZXh0ZXJuIGludCBUcnlDbGllbnRFdmVudHMoCgogICAg Q2xpZW50UHRyICwKICAgIHhFdmVudFB0ciAsCiAgICBpbnQgLAogICAgTWFzayAsCiAgICBNYXNr ICwKICAgIEdyYWJQdHIKCik7CgpleHRlcm4gdm9pZCBXaW5kb3dzUmVzdHJ1Y3R1cmVkKAoKICAg IHZvaWQKCik7CgoKCgoKCgpleHRlcm4gdm9pZCBSZXNldENsaWVudFByaXZhdGVzKAoKICAgIHZv aWQKCik7CgpleHRlcm4gaW50IEFsbG9jYXRlQ2xpZW50UHJpdmF0ZUluZGV4KAoKICAgIHZvaWQK Cik7CgpleHRlcm4gQm9vbCBBbGxvY2F0ZUNsaWVudFByaXZhdGUoCgogICAgaW50ICwKICAgIHVu c2lnbmVkCgopOwojIDk4MCAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNs dWRlL2RpeC5oIgp0eXBlZGVmIHZvaWQgKCpDYWxsYmFja1Byb2NQdHIpICgKCiAgICBDYWxsYmFj a0xpc3RQdHIgKiwgcG9pbnRlciwgcG9pbnRlcgoKKTsKCnR5cGVkZWYgQm9vbCAoKkFkZENhbGxi YWNrUHJvY1B0cikgKAoKICAgIENhbGxiYWNrTGlzdFB0ciAqLCBDYWxsYmFja1Byb2NQdHIsIHBv aW50ZXIKCik7Cgp0eXBlZGVmIEJvb2wgKCpEZWxldGVDYWxsYmFja1Byb2NQdHIpICgKCiAgICBD YWxsYmFja0xpc3RQdHIgKiwgQ2FsbGJhY2tQcm9jUHRyLCBwb2ludGVyCgopOwoKdHlwZWRlZiB2 b2lkICgqQ2FsbENhbGxiYWNrc1Byb2NQdHIpICgKCiAgICBDYWxsYmFja0xpc3RQdHIgKiwgcG9p bnRlcgoKKTsKCnR5cGVkZWYgdm9pZCAoKkRlbGV0ZUNhbGxiYWNrTGlzdFByb2NQdHIpICgKCiAg ICBDYWxsYmFja0xpc3RQdHIgKgoKKTsKCnR5cGVkZWYgc3RydWN0IF9DYWxsYmFja1Byb2NzIHsK ICAgIEFkZENhbGxiYWNrUHJvY1B0ciBBZGRDYWxsYmFjazsKICAgIERlbGV0ZUNhbGxiYWNrUHJv Y1B0ciBEZWxldGVDYWxsYmFjazsKICAgIENhbGxDYWxsYmFja3NQcm9jUHRyIENhbGxDYWxsYmFj a3M7CiAgICBEZWxldGVDYWxsYmFja0xpc3RQcm9jUHRyIERlbGV0ZUNhbGxiYWNrTGlzdDsKfSBD YWxsYmFja0Z1bmNzUmVjLCAqQ2FsbGJhY2tGdW5jc1B0cjsKCmV4dGVybiBCb29sIENyZWF0ZUNh bGxiYWNrTGlzdCgKCiAgICBDYWxsYmFja0xpc3RQdHIgKiAsCiAgICBDYWxsYmFja0Z1bmNzUHRy CgopOwoKZXh0ZXJuIEJvb2wgQWRkQ2FsbGJhY2soCgogICAgQ2FsbGJhY2tMaXN0UHRyICogLAog ICAgQ2FsbGJhY2tQcm9jUHRyICwKICAgIHBvaW50ZXIKCik7CgpleHRlcm4gQm9vbCBEZWxldGVD YWxsYmFjaygKCiAgICBDYWxsYmFja0xpc3RQdHIgKiAsCiAgICBDYWxsYmFja1Byb2NQdHIgLAog ICAgcG9pbnRlcgoKKTsKCmV4dGVybiB2b2lkIENhbGxDYWxsYmFja3MoCgogICAgQ2FsbGJhY2tM aXN0UHRyICogLAogICAgcG9pbnRlcgoKKTsKCmV4dGVybiB2b2lkIERlbGV0ZUNhbGxiYWNrTGlz dCgKCiAgICBDYWxsYmFja0xpc3RQdHIgKgoKKTsKCmV4dGVybiB2b2lkIEluaXRDYWxsYmFja01h bmFnZXIoCgogICAgdm9pZAoKKTsKCgoKCgpleHRlcm4gQ2FsbGJhY2tMaXN0UHRyIFNlcnZlckdy YWJDYWxsYmFjazsKCnR5cGVkZWYgZW51bSB7U0VSVkVSX0dSQUJCRUQsIFNFUlZFUl9VTkdSQUJC RUQsCiAgICAgICAgICAgICAgQ0xJRU5UX1BFUlZJT1VTLCBDTElFTlRfSU1QRVJWSU9VUyB9IFNl cnZlckdyYWJTdGF0ZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENsaWVudFB0ciBjbGllbnQ7CiAg ICBTZXJ2ZXJHcmFiU3RhdGUgZ3JhYnN0YXRlOwp9IFNlcnZlckdyYWJJbmZvUmVjOwoKCgoKCmV4 dGVybiBDYWxsYmFja0xpc3RQdHIgRXZlbnRDYWxsYmFjazsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENsaWVudFB0ciBjbGllbnQ7CiAgICB4RXZlbnRQdHIgZXZlbnRzOwogICAgaW50IGNvdW50Owp9 IEV2ZW50SW5mb1JlYzsKCgoKCgpleHRlcm4gQ2FsbGJhY2tMaXN0UHRyIERldmljZUV2ZW50Q2Fs bGJhY2s7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICB4RXZlbnRQdHIgZXZlbnRzOwogICAgaW50IGNv dW50Owp9IERldmljZUV2ZW50SW5mb1JlYzsKIyA1NyAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleC5o IiAyCiMgNzUgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXguaCIKdHlwZWRlZiBjaGFyIGRkQ0hBUjsK dHlwZWRlZiBzaG9ydCBkZFNIT1JUOwp0eXBlZGVmIGxvbmcgZGRMT05HOwp0eXBlZGVmIGZsb2F0 IGRkRkxPQVQ7Cgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZGRVQ0hBUjsKdHlwZWRlZiB1bnNpZ25l ZCBzaG9ydCBkZFVTSE9SVDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGRkVUxPTkc7Cgp0eXBlZGVm IHVuc2lnbmVkIGNoYXIgKmRkUG9pbnRlcjsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGRkQllURTsK dHlwZWRlZiB1bnNpZ25lZCBjaGFyIGRkQk9PTDsKIyA5NSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBl eC5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgWElEIGlkOwogICAgICAgIGRkUG9pbnRlciBk ZXZpY2VEYXRhOwp9IGRkV0tTUmVzb3VyY2U7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgWElE IGlkOwogICAgICAgIGRkVVNIT1JUIGx1dFR5cGU7CiAgICAgICAgZGRQb2ludGVyIGRldmljZURh dGE7Cn0gZGRMVVRSZXNvdXJjZTsKCnR5cGVkZWYgZGRXS1NSZXNvdXJjZSBkZFN0cnVjdFJlc291 cmNlOwp0eXBlZGVmIGRkV0tTUmVzb3VyY2UgZGROU1Jlc291cmNlOwp0eXBlZGVmIGRkV0tTUmVz b3VyY2UgZGRGb250UmVzb3VyY2U7CnR5cGVkZWYgZGRXS1NSZXNvdXJjZSBkZFBNUmVzb3VyY2U7 CgoKCgoKdHlwZWRlZiBkZFdLU1Jlc291cmNlICpkaVdLU0hhbmRsZTsKdHlwZWRlZiBkZExVVFJl c291cmNlICpkaUxVVEhhbmRsZTsKdHlwZWRlZiBkZFN0cnVjdFJlc291cmNlICpkaVN0cnVjdEhh bmRsZTsKdHlwZWRlZiBkZE5TUmVzb3VyY2UgKmRpTlNIYW5kbGU7CnR5cGVkZWYgZGRGb250UmVz b3VyY2UgKmRpRm9udEhhbmRsZTsKdHlwZWRlZiBkZFBNUmVzb3VyY2UgKmRpUE1IYW5kbGU7CnR5 cGVkZWYgZGRQb2ludGVyIGRpUmVzb3VyY2VIYW5kbGU7CgoKCnR5cGVkZWYgZGRVTE9ORyBkZEJp dG1hc2s7CnR5cGVkZWYgZGRVU0hPUlQgZGRCaXRtYXNrU2hvcnQ7CnR5cGVkZWYgZGRTSE9SVCBk ZEVudW1UeXBlSW5kZXg7CnR5cGVkZWYgWElEIGRkUmVzb3VyY2VJZDsKdHlwZWRlZiBkZEJZVEUg ZGRTd2l0Y2g7CnR5cGVkZWYgZGRVU0hPUlQgZGRUYWJsZUluZGV4OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgZGRGTE9BVCB4OwogICAgZGRGTE9BVCB5Owp9IGRkVmVjdG9yMkQ7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBkZEZMT0FUIHg7CiAgICBkZEZMT0FUIHk7CiAgICBkZEZMT0FUIHo7Cn0gZGRW ZWN0b3IzRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRkxPQVQgeDsKICAgIGRkRkxPQVQgeTsK fSBkZENvb3JkMkQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZExPTkcgeDsKICAgIGRkTE9ORyB5 Owp9IGRkQ29vcmQyREw7Cgp0eXBlZGVmIHhQb2ludCBkZENvb3JkMkRTOwoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIGRkRkxPQVQgeDsKICAgIGRkRkxPQVQgeTsKICAgIGRkRkxPQVQgejsKfSBkZENv b3JkM0Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZExPTkcgeDsKICAgIGRkTE9ORyB5OwogICAg ZGRMT05HIHo7Cn0gZGRDb29yZDNETDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkU0hPUlQgeDsK ICAgIGRkU0hPUlQgeTsKICAgIGRkU0hPUlQgejsKfSBkZENvb3JkM0RTOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgZGRGTE9BVCB4OwogICAgZGRGTE9BVCB5OwogICAgZGRGTE9BVCB6OwogICAgZGRG TE9BVCB3Owp9IGRkQ29vcmQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFNIT1JUIHg7 CiAgICAgICAgZGRTSE9SVCB5OwogICAgICAgIGRkRkxPQVQgejsKfSBkZERldmljZUNvb3JkOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkU0hPUlQgeG1pbjsKICAgICAgICBkZFNIT1JUIHlt aW47CiAgICAgICAgZGRTSE9SVCB4bWF4OwogICAgICAgIGRkU0hPUlQgeW1heDsKfSBkZERldmlj ZVJlY3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRGTE9BVCB4bWluOwogICAgICAgIGRk RkxPQVQgeW1pbjsKICAgICAgICBkZEZMT0FUIHptaW47CiAgICAgICAgZGRGTE9BVCB3bWluOwog ICAgICAgIGRkRkxPQVQgeG1heDsKICAgICAgICBkZEZMT0FUIHltYXg7CiAgICAgICAgZGRGTE9B VCB6bWF4OwogICAgICAgIGRkRkxPQVQgd21heDsKfSBkZExpc3RCb3VuZHM7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBkZFNIT1JUIGFwcHJveE1ldGhvZDsKICAgIGRkVVNIT1JUIHVudXNlZDsKICAg IGRkRkxPQVQgdG9sZXJhbmNlOwp9IGRkQ3VydmVBcHByb3g7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBkZFNIT1JUIGFwcHJveE1ldGhvZDsKICAgIGRkVVNIT1JUIHVudXNlZDsKICAgIGRkRkxPQVQg dVRvbGVyYW5jZTsKICAgIGRkRkxPQVQgdlRvbGVyYW5jZTsKfSBkZFN1cmZhY2VBcHByb3g7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBkZFVTSE9SVCB2ZXJ0aWNhbDsKICAgIGRkVVNIT1JUIGhvcml6 b250YWw7Cn0gZGRUZXh0QWxpZ25tZW50RGF0YTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRGV2 aWNlQ29vcmQgbWludmFsOwogICAgZGREZXZpY2VDb29yZCBtYXh2YWw7CiAgICBkZFVDSEFSIHVz ZURyYXdhYmxlOwogICAgZGRCWVRFIHBhZFszXTsKfSBkZFZpZXdwb3J0OwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgZGRDb29yZDJEUyBwb3NpdGlvbjsKICAgIGRkRkxPQVQgZGlzdGFuY2U7Cn0gZGRE Q19IaXRCb3g7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZENvb3JkM0QgbWludmFsOwogICAgZGRD b29yZDNEIG1heHZhbDsKfSBkZE5wY1N1YnZvbHVtZTsKCnR5cGVkZWYgZGROcGNTdWJ2b2x1bWUg ZGROUENfSGl0Vm9sdW1lOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JUIGNsaXBG bGFnczsKICAgICAgICBkZFVTSE9SVCB1bnVzZWQ7CiAgICAgICAgZGROcGNTdWJ2b2x1bWUgY2xp cExpbWl0czsKICAgICAgICBkZEZMT0FUIG9yaWVudGF0aW9uWzRdWzRdOwogICAgICAgIGRkRkxP QVQgbWFwcGluZ1s0XVs0XTsKfSBkZFZpZXdFbnRyeTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZFVTSE9SVCBkZWZpbmFibGVFbnRyaWVzOwogICAgICAgIGRkVVNIT1JUIG51bVByZWRlZmlu ZWQ7CiAgICAgICAgZGRVU0hPUlQgcHJlZGVmaW5lZE1pbjsKICAgICAgICBkZFVTSE9SVCBwcmVk ZWZpbmVkTWF4Owp9IGRkVGFibGVJbmZvOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkaVN0 cnVjdEhhbmRsZSBzdHJ1Y3R1cmU7CiAgICAgICAgZGRVTE9ORyBvZmZzZXQ7Cn0gZGRFbGVtZW50 UmVmOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBvcmlnX3BvaW50OwogICAg ICAgIGRkQ29vcmQ0RCBwb2ludDsKICAgICAgICBkZFZlY3RvcjNEIG9yaWdfdmVjdG9yOwogICAg ICAgIGRkVmVjdG9yM0QgdmVjdG9yOwogICAgICAgIGRkRkxPQVQgZGlzdDsKfSBkZEhhbGZTcGFj ZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkaVN0cnVjdEhhbmRsZSBzdHJ1Y3R1cmU7CiAg ICAgICAgZGRVTE9ORyBvZmZzZXQ7CiAgICAgICAgZGRVTE9ORyBwaWNraWQ7Cn0gZGRQaWNrUGF0 aDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkVUxPTkcgc2lkOwogICAgZGRVTE9ORyBvZmZzZXQ7 CiAgICBkZFVMT05HIHBpY2tpZDsKfSBkZFBpY2tFbGVtZW50UmVmOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICBkZFVTSE9SVCBwaWNrVHlwZTsKICAgICAgdW5pb24gewogICAgICAgICAgZGREQ19I aXRCb3ggRENfSGl0Qm94OwogICAgICAgICAgZGROUENfSGl0Vm9sdW1lIE5QQ19IaXRWb2x1bWU7 CiAgICAgIH0gaGl0X2JveDsKfSBkZFBpY2tSZWNvcmQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAg ICAgZGRVU0hPUlQgZWxlbWVudFR5cGU7CiAgICAgICAgZGRVU0hPUlQgbGVuZ3RoOwp9IGRkRWxl bWVudEluZm87CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRGTE9BVCByZWQ7CiAgICBkZEZMT0FU IGdyZWVuOwogICAgZGRGTE9BVCBibHVlOwp9IGRkUmdiRmxvYXRDb2xvdXI7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBkZEZMT0FUIGh1ZTsKICAgIGRkRkxPQVQgc2F0dXJhdGlvbjsKICAgIGRkRkxP QVQgdmFsdWU7Cn0gZGRIc3ZDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEZMT0FUIGh1 ZTsKICAgIGRkRkxPQVQgbGlnaHRuZXNzOwogICAgZGRGTE9BVCBzYXR1cmF0aW9uOwp9IGRkSGxz Q29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRGTE9BVCB4OwogICAgZGRGTE9BVCB5Owog ICAgZGRGTE9BVCB6Owp9IGRkQ2llQ29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRVQ0hB UiByZWQ7CiAgICBkZFVDSEFSIGdyZWVuOwogICAgZGRVQ0hBUiBibHVlOwogICAgZGRVQ0hBUiBw YWQ7Cn0gZGRSZ2I4Q29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRVU0hPUlQgcmVkOwog ICAgZGRVU0hPUlQgZ3JlZW47CiAgICBkZFVTSE9SVCBibHVlOwogICAgZGRVU0hPUlQgcGFkOwp9 IGRkUmdiMTZDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZFVTSE9SVCBpbmRleDsKICAg IGRkVVNIT1JUIHBhZDsKfSBkZEluZGV4ZWRDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBk ZFNIT1JUIGNvbG91clR5cGU7CiAgICBkZFNIT1JUIHVudXNlZDsKICAgIHVuaW9uIHsKICAgICAg ICBkZEluZGV4ZWRDb2xvdXIgaW5kZXhlZDsKICAgICAgICBkZFJnYjhDb2xvdXIgcmdiODsKICAg ICAgICBkZFJnYjE2Q29sb3VyIHJnYjE2OwogICAgICAgIGRkUmdiRmxvYXRDb2xvdXIgcmdiRmxv YXQ7CiAgICAgICAgZGRDaWVDb2xvdXIgY2llRmxvYXQ7CiAgICAgICAgZGRIbHNDb2xvdXIgaGxz RmxvYXQ7CiAgICAgICAgZGRIc3ZDb2xvdXIgaHN2RmxvYXQ7CiAgICB9IGNvbG91cjsKfSBkZENv bG91clNwZWNpZmllcjsKCnR5cGVkZWYgdW5pb24gewogICAgICAgIGRkUmdiOENvbG91ciByZ2I4 OwogICAgICAgIGRkUmdiMTZDb2xvdXIgcmdiMTY7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBy Z2JGbG9hdDsKICAgICAgICBkZENpZUNvbG91ciBjaWVGbG9hdDsKICAgICAgICBkZEhsc0NvbG91 ciBobHNGbG9hdDsKICAgICAgICBkZEhzdkNvbG91ciBoc3ZGbG9hdDsKfSBkZERpcmVjdENvbG91 cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkRkxPQVQgYW1iaWVudDsKICAgIGRkRkxPQVQgZGlm ZnVzZTsKICAgIGRkRkxPQVQgc3BlY3VsYXI7CiAgICBkZEZMT0FUIHNwZWN1bGFyQ29uYzsKICAg IGRkRkxPQVQgdHJhbnNtaXNzaW9uOwogICAgZGRDb2xvdXJTcGVjaWZpZXIgc3BlY3VsYXJDb2xv dXI7Cn0gZGRSZWZsZWN0aW9uQXR0cjsKCgoKCnR5cGVkZWYgaW50IGRkcGV4NHJ0bjsKdHlwZWRl ZiBpbnQgZGRwZXg0M3J0bjsKdHlwZWRlZiBpbnQgZGRwZXgzcnRuOwp0eXBlZGVmIGludCBkZHBl eDJydG47CnR5cGVkZWYgaW50IGRkcGV4MXJ0bjsKIyAzOTggIi4uLy4uLy4uL2luY2x1ZGUvZGRw ZXguaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRVTE9ORyBidWZTaXplOwogICAgZGRVTE9ORyBk YXRhU2l6ZTsKICAgIGRkUG9pbnRlciBwQnVmOwogICAgZGRQb2ludGVyIHBIZWFkOwp9IGRkQnVm ZmVyLCAqZGRCdWZmZXJQdHI7CiMgNDE2ICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4LmgiCnR5cGVk ZWYgZW51bSB7CiAgICAgICAgRERfRUxFTUVOVF9SRUY9MCwKICAgICAgICBERF9IQUxGX1NQQUNF PTEsCiAgICAgICAgRERfUElDS19QQVRIPTIsCiAgICAgICAgRERfUkVOREVSRVI9MywKICAgICAg ICBERF9XS1M9NCwKICAgICAgICBERF9OUz01LAogICAgICAgIEREX1NUUlVDVD02LAogICAgICAg IEREX0RFVklDRV9SRUNUPTcsCiAgICAgICAgRERfTkFNRT04LAogICAgICAgIEREX0lOREVYPTks CiAgICAgICAgRERfTElTVF9PRl9MSVNUPTEwLAogICAgICAgIEREX05VTV9UWVBFUz0xMQp9IGRk TGlzdFR5cGU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRMaXN0VHlwZSB0eXBlOwogICAg ICAgIGRkTE9ORyBudW1PYmo7CiAgICAgICAgZGRMT05HIG1pc2M7CiAgICAgICAgZGRMT05HIG1h eE9iajsKICAgICAgICBkZFBvaW50ZXIgcExpc3Q7CiMgNDQ2ICIuLi8uLi8uLi9pbmNsdWRlL2Rk cGV4LmgiCn0gbGlzdG9mT2JqOwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQg cGxhY2VtZW50VHlwZTsKICAgICAgICBkZFVTSE9SVCBudW1VY3VydmVzOwogICAgICAgIGRkVVNI T1JUIG51bVZjdXJ2ZXM7Cn0gZGRQU0NfSXNvcGFyYW1ldHJpY0N1cnZlczsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkM0Qgb3JpZ2luOwogICAgICAgIGRkVmVjdG9yM0QgZGlyZWN0 aW9uOwogICAgICAgIGRkVVNIT1JUIG51bWJlckludGVyc2VjdGlvbnM7CiAgICAgICAgZGRGTE9B VCAqcFBvaW50czsKfSBkZFBTQ19MZXZlbEN1cnZlczsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZEVudW1UeXBlSW5kZXggdHlwZTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBj aGFyIG5vbmU7CiAgICAgICAgICAgICAgICBjaGFyIGltcERlcDsKICAgICAgICAgICAgICAgIGRk UFNDX0lzb3BhcmFtZXRyaWNDdXJ2ZXMgaXNvQ3VydmVzOwogICAgICAgICAgICAgICAgZGRQU0Nf TGV2ZWxDdXJ2ZXMgbWNMZXZlbEN1cnZlczsKICAgICAgICAgICAgICAgIGRkUFNDX0xldmVsQ3Vy dmVzIHdjTGV2ZWxDdXJ2ZXM7CiAgICAgICAgfSBkYXRhOwp9IGRkUFN1cmZhY2VDaGFyczsKCgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IG1hcmtlclR5cGU7CiAgICAg ICAgZGRGTE9BVCBtYXJrZXJTY2FsZTsKICAgICAgICBkZENvbG91clNwZWNpZmllciBtYXJrZXJD b2xvdXI7CiAgICAgICAgZGRVU0hPUlQgbWFya2VySW5kZXg7CiAgICAgICAgZGRVU0hPUlQgdGV4 dEZvbnQ7CiAgICAgICAgZGRVU0hPUlQgdGV4dFByZWNpc2lvbjsKICAgICAgICBkZEZMT0FUIGNo YXJFeHBhbnNpb247CiAgICAgICAgZGRGTE9BVCBjaGFyU3BhY2luZzsKICAgICAgICBkZENvbG91 clNwZWNpZmllciB0ZXh0Q29sb3VyOwogICAgICAgIGRkRkxPQVQgY2hhckhlaWdodDsKICAgICAg ICBkZFZlY3RvcjJEIGNoYXJVcDsKICAgICAgICBkZFVTSE9SVCB0ZXh0UGF0aDsKICAgICAgICBk ZFRleHRBbGlnbm1lbnREYXRhIHRleHRBbGlnbm1lbnQ7CiAgICAgICAgZGRGTE9BVCBhdGV4dEhl aWdodDsKICAgICAgICBkZFZlY3RvcjJEIGF0ZXh0VXA7CiAgICAgICAgZGRVU0hPUlQgYXRleHRQ YXRoOwogICAgICAgIGRkVGV4dEFsaWdubWVudERhdGEgYXRleHRBbGlnbm1lbnQ7CiAgICAgICAg ZGRFbnVtVHlwZUluZGV4IGF0ZXh0U3R5bGU7CiAgICAgICAgZGRVU0hPUlQgdGV4dEluZGV4Owog ICAgICAgIGRkRW51bVR5cGVJbmRleCBsaW5lVHlwZTsKICAgICAgICBkZEZMT0FUIGxpbmVXaWR0 aDsKICAgICAgICBkZENvbG91clNwZWNpZmllciBsaW5lQ29sb3VyOwogICAgICAgIGRkQ3VydmVB cHByb3ggY3VydmVBcHByb3g7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGxpbmVJbnRlcnA7CiAg ICAgICAgZGRVU0hPUlQgbGluZUluZGV4OwogICAgICAgIGRkRW51bVR5cGVJbmRleCBpbnRTdHls ZTsKICAgICAgICBkZFNIT1JUIGludFN0eWxlSW5kZXg7CiAgICAgICAgZGRDb2xvdXJTcGVjaWZp ZXIgc3VyZmFjZUNvbG91cjsKICAgICAgICBkZFJlZmxlY3Rpb25BdHRyIHJlZmxBdHRyOwogICAg ICAgIGRkRW51bVR5cGVJbmRleCByZWZsTW9kZWw7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IHN1 cmZJbnRlcnA7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGJmSW50U3R5bGU7CiAgICAgICAgZGRT SE9SVCBiZkludFN0eWxlSW5kZXg7CiAgICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgYmZTdXJmQ29s b3VyOwogICAgICAgIGRkUmVmbGVjdGlvbkF0dHIgYmZSZWZsQXR0cjsKICAgICAgICBkZEVudW1U eXBlSW5kZXggYmZSZWZsTW9kZWw7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGJmU3VyZkludGVy cDsKICAgICAgICBkZFN1cmZhY2VBcHByb3ggc3VyZkFwcHJveDsKICAgICAgICBkZFVTSE9SVCBj dWxsTW9kZTsKICAgICAgICBkZEJPT0wgZGlzdEZsYWc7CiAgICAgICAgZGRDb29yZDJEIHBhdHRl cm5TaXplOwogICAgICAgIGRkQ29vcmQzRCBwYXR0ZXJuUmVmUHQ7CiAgICAgICAgZGRWZWN0b3Iz RCBwYXR0ZXJuUmVmVjE7CiAgICAgICAgZGRWZWN0b3IzRCBwYXR0ZXJuUmVmVjI7CiAgICAgICAg ZGRVU0hPUlQgaW50SW5kZXg7CiAgICAgICAgZGRVU0hPUlQgZWRnZXM7CiAgICAgICAgZGRFbnVt VHlwZUluZGV4IGVkZ2VUeXBlOwogICAgICAgIGRkRkxPQVQgZWRnZVdpZHRoOwogICAgICAgIGRk Q29sb3VyU3BlY2lmaWVyIGVkZ2VDb2xvdXI7CiAgICAgICAgZGRVU0hPUlQgZWRnZUluZGV4Owog ICAgICAgIGRkRkxPQVQgbG9jYWxNYXRbNF1bNF07CiAgICAgICAgZGRGTE9BVCBnbG9iYWxNYXRb NF1bNF07CiAgICAgICAgZGRVU0hPUlQgbW9kZWxDbGlwOwogICAgICAgIGxpc3RvZk9iaiAqbW9k ZWxDbGlwVm9sdW1lOwogICAgICAgIGRkVVNIT1JUIHZpZXdJbmRleDsKICAgICAgICBsaXN0b2ZP YmogKmxpZ2h0U3RhdGU7CiAgICAgICAgZGRVU0hPUlQgZGVwdGhDdWVJbmRleDsKICAgICAgICBk ZFVTSE9SVCBjb2xvdXJBcHByb3hJbmRleDsKICAgICAgICBkZFNIT1JUIHJkckNvbG91ck1vZGVs OwogICAgICAgIGRkUFN1cmZhY2VDaGFycyBwc2M7CiAgICAgICAgZGRVTE9ORyBhc2ZzOwogICAg ICAgIGRkVUxPTkcgcGlja0lkOwogICAgICAgIGRkVUxPTkcgaGxoc3JUeXBlOwogICAgICAgIGRp TlNIYW5kbGUgcEN1cnJlbnROUzsKfSBkZFBDQXR0cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZFVMT05HIFBDaWQ7CiAgICAgICAgbGlzdG9mT2JqICpyZW5kUmVmczsKICAgICAgICBkZFBD QXR0ciAqcFBDQXR0cjsKfSBkZFBDU3RyLCAqZGRQQ1B0cjsKCgoKCgoKdHlwZWRlZiBkZHBleDJy dG4gKCpvY1RhYmxlVHlwZSkoKTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZEJZVEUgdHlw ZTsKICAgICAgICBkZEJZVEUgY2xhc3M7CiAgICAgICAgZGRCWVRFIGRlcHRoOwogICAgICAgIGRk QllURSBiaXRzUGVyUGl4ZWw7CiAgICAgICAgZGRCWVRFIHJvb3REZXB0aDsKICAgICAgICBkZFVM T05HIHJvb3RWaXN1YWw7Cn0gZGREcmF3YWJsZUluZm87Cgp0eXBlZGVmIGVudW0gewogICAgICAg IEREX0hJR0hfSU5DTF9OUz0wLAogICAgICAgIEREX0hJR0hfRVhDTF9OUz0xLAogICAgICAgIERE X0lOVklTX0lOQ0xfTlM9MiwKICAgICAgICBERF9JTlZJU19FWENMX05TPTMsCiAgICAgICAgRERf UElDS19JTkNMX05TPTQsCiAgICAgICAgRERfUElDS19FWENMX05TPTUsCiAgICAgICAgRERfTUFY X0ZJTFRFUlM9Ngp9IGRkTlNGaWx0ZXJzOwojIDU4MSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleC5o Igp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQgc3RhdGU7CiAgICAgICAgZGRVU0hP UlQgc2VydmVyOwogICAgICAgIGRkU0hPUlQgcGlja19tZXRob2Q7CiAgICAgICAgZGRCT09MIHNl bmRfZXZlbnQ7CiAgICAgICAgZGRVTE9ORyBtYXhfaGl0czsKICAgICAgICBkZFVMT05HIG1vcmVf aGl0czsKICAgICAgICBDbGllbnRQdHIgY2xpZW50OwogICAgICAgIGRpU3RydWN0SGFuZGxlIHN0 ckhhbmRsZTsKICAgICAgICBkaVBNSGFuZGxlIHBzZXVkb1BNOwogICAgICAgIGxpc3RvZk9iaiAq bGlzdDsKICAgICAgICBsaXN0b2ZPYmogKmZha2VTdHJsaXN0OwoKICAgICAgICBsaXN0b2ZPYmog KnNJRGxpc3Q7CgoKfSBkZFJkclBpY2tTdHIsICpkZFJkclBpY2tQdHI7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRVTE9ORyByZW5kSWQ7CiAgICAgICAgZGRQQ1B0ciBwUEM7CiAgICAgICAg ZGREcmF3YWJsZUluZm8gZHJhd0V4YW1wbGU7CiAgICAgICAgRHJhd2FibGVQdHIgcERyYXdhYmxl OwogICAgICAgIGRkVUxPTkcgZHJhd2FibGVJZDsKICAgICAgICBsaXN0b2ZPYmogKmN1clBhdGg7 CiAgICAgICAgZGRVU0hPUlQgc3RhdGU7CiAgICAgICAgZGlMVVRIYW5kbGUgbHV0WzEyICsxXTsK ICAgICAgICBkaU5TSGFuZGxlIG5zW0REX01BWF9GSUxURVJTXTsKICAgICAgICBkZFNIT1JUIGhs aHNyTW9kZTsKICAgICAgICBkZE5wY1N1YnZvbHVtZSBucGNTdWJ2b2x1bWU7CiAgICAgICAgZGRW aWV3cG9ydCB2aWV3cG9ydDsKICAgICAgICBsaXN0b2ZPYmogKmNsaXBMaXN0OwoKCgogICAgICAg IGxpc3RvZk9iaiAqcGlja1N0YXJ0UGF0aDsKICAgICAgICBkZENvbG91clNwZWNpZmllciBiYWNr Z3JvdW5kQ29sb3VyOwogICAgICAgIGRkQk9PTCBjbGVhckk7CiAgICAgICAgZGRCT09MIGNsZWFy WjsKICAgICAgICBkZFVTSE9SVCBlY2hvTW9kZTsKICAgICAgICBkZENvbG91clNwZWNpZmllciBl Y2hvQ29sb3VyOwoKICAgICAgICBkZEJpdG1hc2sgdGFibGVzTWFzazsKICAgICAgICBkZEJpdG1h c2sgbmFtZXNldHNNYXNrOwogICAgICAgIGRkQml0bWFzayBhdHRyc01hc2s7CiAgICAgICAgZGRC aXRtYXNrIHRhYmxlc0NoYW5nZXM7CiAgICAgICAgZGRCaXRtYXNrIG5hbWVzZXRzQ2hhbmdlczsK ICAgICAgICBkZEJpdG1hc2sgYXR0cnNDaGFuZ2VzOwogICAgICAgIG9jVGFibGVUeXBlIGV4ZWN1 dGVPQ3NbKDEwNCArMSldOwogICAgICAgIGRkQk9PTCBpbW1lZGlhdGVNb2RlOwogICAgICAgIGRk VVNIT1JUIHJlbmRlcl9tb2RlOwogICAgICAgIGRkUG9pbnRlciBwRERDb250ZXh0OwogICAgICAg IGRkUmRyUGlja1N0ciBwaWNrc3RyOwp9IGRkUmVuZGVyZXJTdHIsICpkZFJlbmRlcmVyUHRyOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVUxPTkcgbnVtRWxSZWZzOwogICAgICAgIGxpc3Rv Zk9iaiAqUGF0aDsKfSBkZEFjY1N0U3RyLCAqZGRBY2NTdFB0cjsKCgoKCgoKCnR5cGVkZWYgZW51 bSB7CiAgICAgICAgV09SS1NUQVRJT05fUkVTT1VSQ0U9MCwKICAgICAgICBTVFJVQ1RVUkVfUkVT T1VSQ0U9MSwKICAgICAgICBQQVJFTlRfU1RSVUNUVVJFX1JFU09VUkNFPTIsCiAgICAgICAgQ0hJ TERfU1RSVUNUVVJFX1JFU09VUkNFPTMsCiAgICAgICAgU0VBUkNIX0NPTlRFWFRfUkVTT1VSQ0U9 NCwKICAgICAgICBQSUNLX1JFU09VUkNFPTUsCiAgICAgICAgTE9PS1VQX1RBQkxFX1JFU09VUkNF PTYsCiAgICAgICAgTkFNRV9TRVRfUkVTT1VSQ0U9NywKICAgICAgICBGT05UX1JFU09VUkNFPTgs CiAgICAgICAgUkVOREVSRVJfUkVTT1VSQ0U9OSwKICAgICAgICBQSVBFTElORV9DT05URVhUX1JF U09VUkNFPTEwCn0gZGRSZXNvdXJjZVR5cGU7Cgp0eXBlZGVmIGVudW0gewogICAgICAgIEFERD0w LAogICAgICAgIFJFTU9WRT0xCn0gZGRBY3Rpb247Cgp0eXBlZGVmIGVudW0gewogICAgICAgIFhf V0lORE9XX1JFU09VUkNFPTAsCiAgICAgICAgWF9EUkFXQUJMRV9SRVNPVVJDRT0xLAogICAgICAg IFhfRk9OVF9SRVNPVVJDRT0yLAogICAgICAgIFhfUElYTUFQX1JFU09VUkNFPTMsCiAgICAgICAg WF9DVVJTT1JfUkVTT1VSQ0U9NCwKICAgICAgICBYX0NPTE9STUFQX1JFU09VUkNFPTUsCiAgICAg ICAgWF9HQ09OVEVYVF9SRVNPVVJDRT02LAogICAgICAgIFhfS0VZU1lNPTcKfSBkZFhSZXNvdXJj ZVR5cGU7CiMgNTUgIi4uL2luY2x1ZGUvbWlSZW5kZXIuaCIgMgojIDEgIi4uLy4uLy4uL2luY2x1 ZGUvZGRwZXgzLmgiIDEKIyAzMDEgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXgzLmgiCnR5cGVkZWYg ZGRVU0hPUlQgZGRQb2ludFR5cGU7CgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29y ZDNEIHB0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciBjb2xvdXI7Cn0gZGRJbmRleFBvaW50OwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZFJnYjhDb2xv dXIgY29sb3VyOwp9IGRkUmdiOFBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29v cmQzRCBwdDsKICAgICAgICBkZFJnYjE2Q29sb3VyIGNvbG91cjsKfSBkZFJnYjE2UG9pbnQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZFJnYkZsb2F0 Q29sb3VyIGNvbG91cjsKfSBkZFJnYkZsb2F0UG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiRmxvYXRDb2xvdXIgY29sb3VyOwp9IGRk UmdiRmxvYXRQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0Owog ICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKfSBkZEhzdlBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7Cn0g ZGRIc3ZQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAg ICAgIGRkSGxzQ29sb3VyIGNvbG91cjsKfSBkZEhsc1BvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZEhsc0NvbG91ciBjb2xvdXI7Cn0gZGRI bHNQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAg IGRkQ2llQ29sb3VyIGNvbG91cjsKfSBkZENpZVBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7Cn0gZGRDaWVQ b2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRk VmVjdG9yM0Qgbm9ybWFsOwp9IGRkTm9ybWFsUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkTm9ybWFs UG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBk ZFVMT05HIGVkZ2U7Cn0gZGRFZGdlUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg ZGRDb29yZDNEIHB0OwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEVkZ2VQb2ludDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRJbmRleGVkQ29sb3Vy IGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEluZGV4Tm9ybWFsUG9pbnQ7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiOENv bG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2I4Tm9ybWFsUG9p bnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdi MTZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkUmdiMTZOb3Jt YWxQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAg IGRkUmdiRmxvYXRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRk UmdiRmxvYXROb3JtYWxQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3Jk M0QgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3Iz RCBub3JtYWw7Cn0gZGRSZ2JGbG9hdE5vcm1hbFBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRIc3ZDb2xvdXIgY29sb3VyOwogICAgICAgIGRk VmVjdG9yM0Qgbm9ybWFsOwp9IGRkSHN2Tm9ybWFsUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKICAgICAg ICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEhzdk5vcm1hbFBvaW50OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAg ICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkSGxzTm9ybWFsUG9pbnQyRFM7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNvbG91cjsK ICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZEhsc05vcm1hbFBvaW50OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRDaWVDb2xvdXIgY29sb3Vy OwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRkQ2llTm9ybWFsUG9pbnQyRFM7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNv bG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZENpZU5vcm1hbFBvaW50OwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZEluZGV4ZWRDb2xv dXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEluZGV4RWRnZVBvaW50OwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZFJnYjhDb2xvdXIg Y29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZFJnYjhFZGdlUG9pbnQ7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiMTZDb2xvdXIgY29s b3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZFJnYjE2RWRnZVBvaW50OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBj b2xvdXI7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiRmxvYXRFZGdlUG9pbnQyRFM7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiRmxvYXRD b2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZFJnYkZsb2F0RWRnZVBvaW50 OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRIc3ZD b2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhzdkVkZ2VQb2ludDJEUzsK CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRIc3ZDb2xv dXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhzdkVkZ2VQb2ludDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNv bG91cjsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRIbHNFZGdlUG9pbnQyRFM7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNvbG91 cjsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRIbHNFZGdlUG9pbnQ7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRDb29yZDJEUyBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAg ICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkQ2llRWRnZVBvaW50MkRTOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgICAgIGRkQ29vcmQzRCBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAgICAg ICAgZGRVTE9ORyBlZGdlOwp9IGRkQ2llRWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRV TE9ORyBlZGdlOwp9IGRkTm9ybUVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9O RyBlZGdlOwp9IGRkTm9ybUVkZ2VQb2ludDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENv b3JkM0QgcHQ7CiAgICAgICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3Rv cjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRJbmRleE5vcm1FZGdlUG9pbnQ7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkUmdiOENv bG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBl ZGdlOwp9IGRkUmdiOE5vcm1FZGdlUG9pbnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRD b29yZDNEIHB0OwogICAgICAgIGRkUmdiMTZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9y M0Qgbm9ybWFsOwogICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZFJnYjE2Tm9ybUVkZ2VQb2ludDsK CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkMkRTIHB0OwogICAgICAgIGRkUmdiRmxv YXRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwogICAgICAgIGRkVUxP TkcgZWRnZTsKfSBkZFJnYkZsb2F0Tm9ybUVkZ2VQb2ludDJEUzsKCnR5cGVkZWYgc3RydWN0IHsK ICAgICAgICBkZENvb3JkM0QgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBjb2xvdXI7CiAg ICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiRmxv YXROb3JtRWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7 CiAgICAgICAgZGRIc3ZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwog ICAgICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhzdk5vcm1FZGdlUG9pbnQyRFM7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsK ICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRIc3ZO b3JtRWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAg ICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwogICAg ICAgIGRkVUxPTkcgZWRnZTsKfSBkZEhsc05vcm1FZGdlUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNvbG91cjsKICAg ICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRIbHNOb3Jt RWRnZVBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQyRFMgcHQ7CiAgICAg ICAgZGRDaWVDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwogICAgICAg IGRkVUxPTkcgZWRnZTsKfSBkZENpZU5vcm1FZGdlUG9pbnQyRFM7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICAgICAgZGRDb29yZDNEIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKICAgICAg ICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7Cn0gZGRDaWVOb3JtRWRn ZVBvaW50OwoKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAg ICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKfSBkZEluZGV4UG9pbnQ0RDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2I4Q29sb3VyIGNvbG91cjsK fSBkZFJnYjhQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsK ICAgICAgICBkZFJnYjE2Q29sb3VyIGNvbG91cjsKfSBkZFJnYjE2UG9pbnQ0RDsKCnR5cGVkZWYg c3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2JGbG9hdENvbG91ciBj b2xvdXI7Cn0gZGRSZ2JGbG9hdFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRD b29yZDREIHB0OwogICAgICAgIGRkSHN2Q29sb3VyIGNvbG91cjsKfSBkZEhzdlBvaW50NEQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkSGxzQ29sb3Vy IGNvbG91cjsKfSBkZEhsc1BvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29y ZDREIHB0OwogICAgICAgIGRkQ2llQ29sb3VyIGNvbG91cjsKfSBkZENpZVBvaW50NEQ7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkVmVjdG9yM0Qgbm9y bWFsOwp9IGRkTm9ybWFsUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3Jk NEQgcHQ7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkRWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciBjb2xv dXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRJbmRleE5vcm1hbFBvaW50NEQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkUmdiOENvbG91 ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2I4Tm9ybWFsUG9pbnQ0 RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENvb3JkNEQgcHQ7CiAgICAgICAgZGRSZ2Ix NkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2IxNk5vcm1h bFBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAg IGRkUmdiRmxvYXRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwp9IGRk UmdiRmxvYXROb3JtYWxQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0 RCBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3Jt YWw7Cn0gZGRIc3ZOb3JtYWxQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29v cmQ0RCBwdDsKICAgICAgICBkZEhsc0NvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBu b3JtYWw7Cn0gZGRIbHNOb3JtYWxQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRk Q29vcmQ0RCBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3Iz RCBub3JtYWw7Cn0gZGRDaWVOb3JtYWxQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZEluZGV4ZWRDb2xvdXIgY29sb3VyOwogICAgICAgIGRk VUxPTkcgZWRnZTsKfSBkZEluZGV4RWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAg ICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkUmdiOENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRV TE9ORyBlZGdlOwp9IGRkUmdiOEVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZFJnYjE2Q29sb3VyIGNvbG91cjsKICAgICAgICBkZFVM T05HIGVkZ2U7Cn0gZGRSZ2IxNkVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyIGNvbG91cjsKICAgICAgICBk ZFVMT05HIGVkZ2U7Cn0gZGRSZ2JGbG9hdEVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7CiAgICAgICAg ZGRVTE9ORyBlZGdlOwp9IGRkSHN2RWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAg ICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkSGxzQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFVM T05HIGVkZ2U7Cn0gZGRIbHNFZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBk ZENvb3JkNEQgcHQ7CiAgICAgICAgZGRDaWVDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVUxPTkcg ZWRnZTsKfSBkZENpZUVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29v cmQ0RCBwdDsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKICAgICAgICBkZFVMT05HIGVkZ2U7 Cn0gZGROb3JtRWRnZVBvaW50NEQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDRE IHB0OwogICAgICAgIGRkSW5kZXhlZENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBu b3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkSW5kZXhOb3JtRWRnZVBvaW50NEQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkUmdiOENvbG91 ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdl Owp9IGRkUmdiOE5vcm1FZGdlUG9pbnQ0RDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZENv b3JkNEQgcHQ7CiAgICAgICAgZGRSZ2IxNkNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3Iz RCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkUmdiMTZOb3JtRWRnZVBvaW50NEQ7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRDb29yZDREIHB0OwogICAgICAgIGRkUmdiRmxv YXRDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9ybWFsOwogICAgICAgIGRkVUxP TkcgZWRnZTsKfSBkZFJnYkZsb2F0Tm9ybUVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZEhzdkNvbG91ciBjb2xvdXI7CiAgICAgICAg ZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkSHN2Tm9ybUVkZ2VQ b2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBk ZEhsc0NvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRV TE9ORyBlZGdlOwp9IGRkSGxzTm9ybUVkZ2VQb2ludDREOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg ICAgIGRkQ29vcmQ0RCBwdDsKICAgICAgICBkZENpZUNvbG91ciBjb2xvdXI7CiAgICAgICAgZGRW ZWN0b3IzRCBub3JtYWw7CiAgICAgICAgZGRVTE9ORyBlZGdlOwp9IGRkQ2llTm9ybUVkZ2VQb2lu dDREOwoKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgZGRDb29yZDJEICpwMkRwdDsKICAgICAgICBk ZENvb3JkM0QgKnAzRHB0OwogICAgICAgIGRkQ29vcmQyREwgKnAyRExwdDsKICAgICAgICBkZENv b3JkM0RMICpwM0RMcHQ7CiAgICAgICAgZGRDb29yZDJEUyAqcDJEU3B0OwogICAgICAgIGRkQ29v cmQzRFMgKnAzRFNwdDsKICAgICAgICBkZEluZGV4ZWRDb2xvdXIgKnBJbmRleENscjsKICAgICAg ICBkZFJnYjhDb2xvdXIgKnBSZ2I4Q2xyOwogICAgICAgIGRkUmdiMTZDb2xvdXIgKnBSZ2IxNkNs cjsKICAgICAgICBkZFJnYkZsb2F0Q29sb3VyICpwUmdiRmxvYXRDbHI7CiAgICAgICAgZGRIc3ZD b2xvdXIgKnBIc3ZDbHI7CiAgICAgICAgZGRIbHNDb2xvdXIgKnBIbHNDbHI7CiAgICAgICAgZGRD aWVDb2xvdXIgKnBDaWVDbHI7CiAgICAgICAgZGRJbmRleFBvaW50ICpwSW5kZXhwdDsKICAgICAg ICBkZFJnYjhQb2ludCAqcFJnYjhwdDsKICAgICAgICBkZFJnYjE2UG9pbnQgKnBSZ2IxNnB0Owog ICAgICAgIGRkUmdiRmxvYXRQb2ludCAqcFJnYkZsb2F0cHQ7CiAgICAgICAgZGRIc3ZQb2ludCAq cEhzdnB0OwogICAgICAgIGRkSGxzUG9pbnQgKnBIbHNwdDsKICAgICAgICBkZENpZVBvaW50ICpw Q2llcHQ7CiAgICAgICAgZGRWZWN0b3IzRCAqcE5vcm1hbDsKICAgICAgICBkZE5vcm1hbFBvaW50 ICpwTnB0OwogICAgICAgIGRkVUxPTkcgKnBFZGdlOwogICAgICAgIGRkRWRnZVBvaW50ICpwRXB0 OwogICAgICAgIGRkSW5kZXhOb3JtYWxQb2ludCAqcEluZGV4TnB0OwogICAgICAgIGRkUmdiOE5v cm1hbFBvaW50ICpwUmdiOE5wdDsKICAgICAgICBkZFJnYjE2Tm9ybWFsUG9pbnQgKnBSZ2IxNk5w dDsKICAgICAgICBkZFJnYkZsb2F0Tm9ybWFsUG9pbnQgKnBSZ2JGbG9hdE5wdDsKICAgICAgICBk ZEhzdk5vcm1hbFBvaW50ICpwSHN2TnB0OwogICAgICAgIGRkSGxzTm9ybWFsUG9pbnQgKnBIbHNO cHQ7CiAgICAgICAgZGRDaWVOb3JtYWxQb2ludCAqcENpZU5wdDsKICAgICAgICBkZEluZGV4RWRn ZVBvaW50ICpwSW5kZXhFcHQ7CiAgICAgICAgZGRSZ2I4RWRnZVBvaW50ICpwUmdiOEVwdDsKICAg ICAgICBkZFJnYjE2RWRnZVBvaW50ICpwUmdiMTZFcHQ7CiAgICAgICAgZGRSZ2JGbG9hdEVkZ2VQ b2ludCAqcFJnYkZsb2F0RXB0OwogICAgICAgIGRkSHN2RWRnZVBvaW50ICpwSHN2RXB0OwogICAg ICAgIGRkSGxzRWRnZVBvaW50ICpwSGxzRXB0OwogICAgICAgIGRkQ2llRWRnZVBvaW50ICpwQ2ll RXB0OwogICAgICAgIGRkTm9ybUVkZ2VQb2ludCAqcE5FcHQ7CiAgICAgICAgZGRJbmRleE5vcm1F ZGdlUG9pbnQgKnBJbmRleE5FcHQ7CiAgICAgICAgZGRSZ2I4Tm9ybUVkZ2VQb2ludCAqcFJnYjhO RXB0OwogICAgICAgIGRkUmdiMTZOb3JtRWRnZVBvaW50ICpwUmdiMTZORXB0OwogICAgICAgIGRk UmdiRmxvYXROb3JtRWRnZVBvaW50ICpwUmdiRmxvYXRORXB0OwogICAgICAgIGRkSHN2Tm9ybUVk Z2VQb2ludCAqcEhzdk5FcHQ7CiAgICAgICAgZGRIbHNOb3JtRWRnZVBvaW50ICpwSGxzTkVwdDsK ICAgICAgICBkZENpZU5vcm1FZGdlUG9pbnQgKnBDaWVORXB0OwogICAgICAgIGRkQ29vcmQ0RCAq cDREcHQ7CiAgICAgICAgZGRJbmRleFBvaW50NEQgKnBJbmRleHB0NEQ7CiAgICAgICAgZGRSZ2I4 UG9pbnQ0RCAqcFJnYjhwdDREOwogICAgICAgIGRkUmdiMTZQb2ludDREICpwUmdiMTZwdDREOwog ICAgICAgIGRkUmdiRmxvYXRQb2ludDREICpwUmdiRmxvYXRwdDREOwogICAgICAgIGRkSHN2UG9p bnQ0RCAqcEhzdnB0NEQ7CiAgICAgICAgZGRIbHNQb2ludDREICpwSGxzcHQ0RDsKICAgICAgICBk ZENpZVBvaW50NEQgKnBDaWVwdDREOwogICAgICAgIGRkTm9ybWFsUG9pbnQ0RCAqcE5wdDREOwog ICAgICAgIGRkRWRnZVBvaW50NEQgKnBFcHQ0RDsKICAgICAgICBkZEluZGV4Tm9ybWFsUG9pbnQ0 RCAqcEluZGV4TnB0NEQ7CiAgICAgICAgZGRSZ2I4Tm9ybWFsUG9pbnQ0RCAqcFJnYjhOcHQ0RDsK ICAgICAgICBkZFJnYjE2Tm9ybWFsUG9pbnQ0RCAqcFJnYjE2TnB0NEQ7CiAgICAgICAgZGRSZ2JG bG9hdE5vcm1hbFBvaW50NEQgKnBSZ2JGbG9hdE5wdDREOwogICAgICAgIGRkSHN2Tm9ybWFsUG9p bnQ0RCAqcEhzdk5wdDREOwogICAgICAgIGRkSGxzTm9ybWFsUG9pbnQ0RCAqcEhsc05wdDREOwog ICAgICAgIGRkQ2llTm9ybWFsUG9pbnQ0RCAqcENpZU5wdDREOwogICAgICAgIGRkSW5kZXhFZGdl UG9pbnQ0RCAqcEluZGV4RXB0NEQ7CiAgICAgICAgZGRSZ2I4RWRnZVBvaW50NEQgKnBSZ2I4RXB0 NEQ7CiAgICAgICAgZGRSZ2IxNkVkZ2VQb2ludDREICpwUmdiMTZFcHQ0RDsKICAgICAgICBkZFJn YkZsb2F0RWRnZVBvaW50NEQgKnBSZ2JGbG9hdEVwdDREOwogICAgICAgIGRkSHN2RWRnZVBvaW50 NEQgKnBIc3ZFcHQ0RDsKICAgICAgICBkZEhsc0VkZ2VQb2ludDREICpwSGxzRXB0NEQ7CiAgICAg ICAgZGRDaWVFZGdlUG9pbnQ0RCAqcENpZUVwdDREOwogICAgICAgIGRkTm9ybUVkZ2VQb2ludDRE ICpwTkVwdDREOwogICAgICAgIGRkSW5kZXhOb3JtRWRnZVBvaW50NEQgKnBJbmRleE5FcHQ0RDsK ICAgICAgICBkZFJnYjhOb3JtRWRnZVBvaW50NEQgKnBSZ2I4TkVwdDREOwogICAgICAgIGRkUmdi MTZOb3JtRWRnZVBvaW50NEQgKnBSZ2IxNk5FcHQ0RDsKICAgICAgICBkZFJnYkZsb2F0Tm9ybUVk Z2VQb2ludDREICpwUmdiRmxvYXRORXB0NEQ7CiAgICAgICAgZGRIc3ZOb3JtRWRnZVBvaW50NEQg KnBIc3ZORXB0NEQ7CiAgICAgICAgZGRIbHNOb3JtRWRnZVBvaW50NEQgKnBIbHNORXB0NEQ7CiAg ICAgICAgZGRDaWVOb3JtRWRnZVBvaW50NEQgKnBDaWVORXB0NEQ7CiAgICAgICAgY2hhciAqcHRy Owp9IGRkUG9pbnRVbmlvbjsKCgoKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVMT05H IG51bVBvaW50czsKICAgICAgICBkZFVMT05HIG1heERhdGE7CiAgICAgICAgZGRQb2ludFVuaW9u IHB0czsKfSBsaXN0b2ZkZFBvaW50OwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRk VUxPTkcgbnVtUG9pbnRzOwogICAgICAgIGRkVUxPTkcgbWF4RGF0YTsKICAgICAgICBkZENvb3Jk MkQgKnB0czsKfSBNYXJrZXJsaXN0b2ZkZFBvaW50OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkVVNIT1JUIG9yZGVyOwogICAgICAgIGRkRkxPQVQgdU1pbjsKICAgICAgICBkZEZMT0FUIHVN YXg7CiAgICAgICAgZGRVTE9ORyBudW1Lbm90czsKICAgICAgICBkZEZMT0FUICpwS25vdHM7CiAg ICAgICAgbGlzdG9mZGRQb2ludCBwb2ludHM7Cn0gZGROdXJiQ3VydmU7Cgp0eXBlZGVmIGVudW0g ewogICAgICAgIEREX0ZBQ0VUX05PTkU9MCwKICAgICAgICBERF9GQUNFVF9JTkRFWD0xLAogICAg ICAgIEREX0ZBQ0VUX1JHQjg9MiwKICAgICAgICBERF9GQUNFVF9SR0IxNj0zLAogICAgICAgIERE X0ZBQ0VUX1JHQkZMT0FUPTQsCiAgICAgICAgRERfRkFDRVRfSFNWPTUsCiAgICAgICAgRERfRkFD RVRfSExTPTYsCiAgICAgICAgRERfRkFDRVRfQ0lFPTcsCiAgICAgICAgRERfRkFDRVRfTk9STT04 LAogICAgICAgIEREX0ZBQ0VUX0lOREVYX05PUk09OSwKICAgICAgICBERF9GQUNFVF9SR0I4X05P Uk09MTAsCiAgICAgICAgRERfRkFDRVRfUkdCMTZfTk9STT0xMSwKICAgICAgICBERF9GQUNFVF9S R0JGTE9BVF9OT1JNPTEyLAogICAgICAgIEREX0ZBQ0VUX0hTVl9OT1JNPTEzLAogICAgICAgIERE X0ZBQ0VUX0hMU19OT1JNPTE0LAogICAgICAgIEREX0ZBQ0VUX0NJRV9OT1JNPTE1Cn0gZGRGYWNl dFR5cGU7CiMgOTczICIuLi8uLi8uLi9pbmNsdWRlL2RkcGV4My5oIgp0eXBlZGVmIHN0cnVjdCB7 CiAgICAgICAgZGRJbmRleGVkQ29sb3VyIGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1h bDsKfSBkZEluZGV4Tm9ybWFsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkUmdiOENvbG91 ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRSZ2I4Tm9ybWFsOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkUmdiMTZDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVj dG9yM0Qgbm9ybWFsOwp9IGRkUmdiMTZOb3JtYWw7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg ZGRSZ2JGbG9hdENvbG91ciBjb2xvdXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRS Z2JGbG9hdE5vcm1hbDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZEhzdkNvbG91ciBjb2xv dXI7CiAgICAgICAgZGRWZWN0b3IzRCBub3JtYWw7Cn0gZGRIc3ZOb3JtYWw7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICAgICAgZGRIbHNDb2xvdXIgY29sb3VyOwogICAgICAgIGRkVmVjdG9yM0Qgbm9y bWFsOwp9IGRkSGxzTm9ybWFsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkQ2llQ29sb3Vy IGNvbG91cjsKICAgICAgICBkZFZlY3RvcjNEIG5vcm1hbDsKfSBkZENpZU5vcm1hbDsKCnR5cGVk ZWYgdW5pb24gewogICAgICAgIGRkUG9pbnRlciBwTm9GYWNldDsKICAgICAgICBkZEluZGV4ZWRD b2xvdXIgKnBGYWNldEluZGV4OwogICAgICAgIGRkUmdiOENvbG91ciAqcEZhY2V0UmdiODsKICAg ICAgICBkZFJnYjE2Q29sb3VyICpwRmFjZXRSZ2IxNjsKICAgICAgICBkZFJnYkZsb2F0Q29sb3Vy ICpwRmFjZXRSZ2JGbG9hdDsKICAgICAgICBkZEhzdkNvbG91ciAqcEZhY2V0SHN2OwogICAgICAg IGRkSGxzQ29sb3VyICpwRmFjZXRIbHM7CiAgICAgICAgZGRDaWVDb2xvdXIgKnBGYWNldENpZTsK ICAgICAgICBkZFZlY3RvcjNEICpwRmFjZXROOwogICAgICAgIGRkSW5kZXhOb3JtYWwgKnBGYWNl dEluZGV4TjsKICAgICAgICBkZFJnYjhOb3JtYWwgKnBGYWNldFJnYjhOOwogICAgICAgIGRkUmdi MTZOb3JtYWwgKnBGYWNldFJnYjE2TjsKICAgICAgICBkZFJnYkZsb2F0Tm9ybWFsICpwRmFjZXRS Z2JGbG9hdE47CiAgICAgICAgZGRIc3ZOb3JtYWwgKnBGYWNldEhzdk47CiAgICAgICAgZGRIbHNO b3JtYWwgKnBGYWNldEhsc047CiAgICAgICAgZGRDaWVOb3JtYWwgKnBGYWNldENpZU47Cn0gZGRG YWNldFVuaW9uOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRmFjZXRUeXBlIHR5cGU7CiAg ICAgICAgZGRVTE9ORyBudW1GYWNldHM7CiAgICAgICAgZGRVTE9ORyBtYXhEYXRhOwogICAgICAg IGRkRmFjZXRVbmlvbiBmYWNldHM7Cn0gbGlzdG9mZGRGYWNldDsKCnR5cGVkZWYgZW51bSB7CiAg ICAgICAgRERfVkVSVEVYPTAsCiAgICAgICAgRERfVkVSVEVYX0VER0U9MQp9IGRkVmVydEluZGV4 VHlwZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVTSE9SVCBpbmRleDsKICAgICAgICBk ZFVMT05HIGVkZ2U7Cn0gZGRWZXJ0SW5kZXhFZGdlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkVmVydEluZGV4VHlwZSB0eXBlOwogICAgICAgIGRkVUxPTkcgbnVtSW5kZXg7CiAgICAgICAg dW5pb24gewogICAgICAgICAgICAgICAgZGRVU0hPUlQgKnBWZXJ0SW5kZXg7CiAgICAgICAgICAg ICAgICBkZFZlcnRJbmRleEVkZ2UgKnBWZXJ0SW5kZXhFOwogICAgICAgIH0gaW5kZXg7Cn0gbGlz dG9mZGRJbmRleDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVTSE9SVCB1T3JkZXI7CiAg ICAgICAgZGRVU0hPUlQgdk9yZGVyOwogICAgICAgIGRkRkxPQVQgdU1pbjsKICAgICAgICBkZEZM T0FUIHVNYXg7CiAgICAgICAgZGRGTE9BVCB2TWluOwogICAgICAgIGRkRkxPQVQgdk1heDsKICAg ICAgICBkZEZMT0FUIG1wdHM7CiAgICAgICAgZGRGTE9BVCBucHRzOwogICAgICAgIGRkVUxPTkcg bnVtVUtub3RzOwogICAgICAgIGRkRkxPQVQgKnBVS25vdDsKICAgICAgICBkZFVMT05HIG51bVZL bm90czsKICAgICAgICBkZEZMT0FUICpwVktub3Q7CiAgICAgICAgbGlzdG9mZGRQb2ludCBwb2lu dHM7Cn0gZGROdXJiU3VyZmFjZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZEJZVEUgdmlz aWJpbGl0eTsKICAgICAgICBkZFVTSE9SVCBvcmRlcjsKICAgICAgICBkZEN1cnZlQXBwcm94IGN1 cnZlQXBwcm94OwogICAgICAgIGRkRkxPQVQgdU1pbjsKICAgICAgICBkZEZMT0FUIHVNYXg7CiAg ICAgICAgZGRVTE9ORyBudW1Lbm90czsKICAgICAgICBkZEZMT0FUICpwS25vdHM7CiAgICAgICAg ZGRQb2ludFR5cGUgcHR0eXBlOwogICAgICAgIGxpc3RvZmRkUG9pbnQgcG9pbnRzOwp9IGRkVHJp bUN1cnZlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVUxPTkcgY291bnQ7CiAgICAgICAg ZGRUcmltQ3VydmUgKnBUQzsKfSBsaXN0b2ZUcmltQ3VydmU7CgoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkU0hPUlQgY29sb3VyVHlwZTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAg ICBkZEluZGV4ZWRDb2xvdXIgKnBJbmRleDsKICAgICAgICAgICAgICAgIGRkUmdiOENvbG91ciAq cFJnYjg7CiAgICAgICAgICAgICAgICBkZFJnYjE2Q29sb3VyICpwUmdiMTY7CiAgICAgICAgICAg ICAgICBkZFJnYkZsb2F0Q29sb3VyICpwUmdiRmxvYXQ7CiAgICAgICAgICAgICAgICBkZEhzdkNv bG91ciAqcEhzdjsKICAgICAgICAgICAgICAgIGRkSGxzQ29sb3VyICpwSGxzOwogICAgICAgICAg ICAgICAgZGRDaWVDb2xvdXIgKnBDaWU7CiAgICAgICAgfSBjb2xvdXI7Cn0gbGlzdG9mQ29sb3Vy OwojIDU2ICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiIDIKIyAxICIuLi8uLi8uLi9pbmNsdWRlL2Rk cGV4NC5oIiAxCiMgNTcgIi4uLy4uLy4uL2luY2x1ZGUvZGRwZXg0LmgiCnR5cGVkZWYgc3RydWN0 IHsKICAgICAgICBEcmF3YWJsZVB0ciBwRHJhd2FibGU7CiAgICAgICAgRHJhd2FibGUgZHJhd2Fi bGVJZDsKICAgICAgICBkaUxVVEhhbmRsZSBwTWFya2VyTFVUOwogICAgICAgIGRpTFVUSGFuZGxl IHBUZXh0TFVUOwogICAgICAgIGRpTFVUSGFuZGxlIHBMaW5lTFVUOwogICAgICAgIGRpTFVUSGFu ZGxlIHBJbnRMVVQ7CiAgICAgICAgZGlMVVRIYW5kbGUgcEVkZ2VMVVQ7CiAgICAgICAgZGlMVVRI YW5kbGUgcENvbG91ckxVVDsKICAgICAgICBkaUxVVEhhbmRsZSBwRGVwdGhDdWVMVVQ7CiAgICAg ICAgZGlMVVRIYW5kbGUgcExpZ2h0TFVUOwogICAgICAgIGRpTFVUSGFuZGxlIHBDb2xvdXJBcHBM VVQ7CiAgICAgICAgZGlMVVRIYW5kbGUgcFBhdHRlcm5MVVQ7CiAgICAgICAgZGlMVVRIYW5kbGUg cEZvbnRMVVQ7CiAgICAgICAgZGlOU0hhbmRsZSBwSGlnaEluY2xTZXQ7CiAgICAgICAgZGlOU0hh bmRsZSBwSGlnaEV4Y2xTZXQ7CiAgICAgICAgZGlOU0hhbmRsZSBwSW52aXNJbmNsU2V0OwogICAg ICAgIGRpTlNIYW5kbGUgcEludmlzRXhjbFNldDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggYnVm ZmVyTW9kZTsKfSBkZFdrc0luaXQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRCWVRFIHZp ZXdSZXA7CiAgICAgICAgZGRCWVRFIG1hcmtlckJ1bmRsZTsKICAgICAgICBkZEJZVEUgdGV4dEJ1 bmRsZTsKICAgICAgICBkZEJZVEUgbGluZUJ1bmRsZTsKICAgICAgICBkZEJZVEUgaW50ZXJpb3JC dW5kbGU7CiAgICAgICAgZGRCWVRFIGVkZ2VCdW5kbGU7CiAgICAgICAgZGRCWVRFIGNvbG91clRh YmxlOwogICAgICAgIGRkQllURSBwYXR0ZXJuVGFibGU7CiAgICAgICAgZGRCWVRFIHdrc1RyYW5z Zm9ybTsKICAgICAgICBkZEJZVEUgaGlnaGxpZ2h0RmlsdGVyOwogICAgICAgIGRkQllURSBpbnZp c0ZpbHRlcjsKICAgICAgICBkZEJZVEUgaGxoc3JNb2RlOwogICAgICAgIGRkQllURSBzdHJNb2Rp Znk7CiAgICAgICAgZGRCWVRFIHBvc3RTdHI7CiAgICAgICAgZGRCWVRFIHVucG9zdFN0cjsKICAg ICAgICBkZEJZVEUgZGVsZXRlU3RyOwogICAgICAgIGRkQllURSByZWZNb2RpZnk7CiAgICAgICAg ZGRCWVRFIGJ1ZmZlck1vZGlmeTsKICAgICAgICBkZEJZVEUgbGlnaHRUYWJsZTsKICAgICAgICBk ZEJZVEUgZGVwdGhDdWVUYWJsZTsKICAgICAgICBkZEJZVEUgY29sb3VyQXBwcm94VGFibGU7Cn0g ZGRXa3NEeW5hbWljczsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkaU5TSGFuZGxlIGluY2w7 CiAgICAgICAgZGlOU0hhbmRsZSBleGNsOwp9IGRkTlNQYWlyOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgICAgIGRkVUxPTkcgbnVtUGFpcnM7CiAgICAgICAgZGRVTE9ORyBtYXhQYWlyczsKICAgICAg ICBkZE5TUGFpciAqcFBhaXJzOwp9IGxpc3RvZk5TUGFpcjsKCnR5cGVkZWYgc3RydWN0IHsKICAg ICAgICBkZFVMT05HIGlkOwogICAgICAgIGRkVVNIT1JUIHN0YXR1czsKICAgICAgICBkZENvb3Jk M0QgcG9zaXRpb247CiAgICAgICAgZGRGTE9BVCBkaXN0YW5jZTsKICAgICAgICBkZFVTSE9SVCBj ZWlsaW5nOwogICAgICAgIGRkQk9PTCBtb2RlbENsaXBGbGFnOwogICAgICAgIGxpc3RvZk9iaiAq c3RhcnRQYXRoOwogICAgICAgIGxpc3RvZk5TUGFpciBub3JtYWw7CiAgICAgICAgbGlzdG9mTlNQ YWlyIGludmVydGVkOwp9IGRkU0NTdHI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRUYWJs ZUluZGV4IGluZGV4OwogICAgICAgIGRkVVNIT1JUIHVudXNlZDsKICAgICAgICBkZFZpZXdFbnRy eSB2aWV3Owp9IGRkVmlld1JlcDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFVTSE9SVCB3 aGVuY2U7CiAgICAgICAgZGRVU0hPUlQgdW51c2VkOwogICAgICAgIGRkTE9ORyBvZmZzZXQ7Cn0g ZGRFbGVtZW50UG9zOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRWxlbWVudFBvcyBwb3Np dGlvbjE7CiAgICAgICAgZGRFbGVtZW50UG9zIHBvc2l0aW9uMjsKfSBkZEVsZW1lbnRSYW5nZTsK CnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZFNIT1JUIHg7CiAgICAgICAgZGRTSE9SVCB5Owp9 IGRkRGV2aWNlQ29vcmQyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBkZERldmljZUNvb3Jk MkQgcG9zaXRpb247CiAgICAgICAgZGRGTE9BVCBkaXN0YW5jZTsKfSBkZFBDX0RDX0hpdEJveDsK CnR5cGVkZWYgZGROcGNTdWJ2b2x1bWUgZGRQQ19OUENfSGl0Vm9sdW1lOwojIDU3ICIuLi9pbmNs dWRlL21pUmVuZGVyLmgiIDIKCiMgMSAiLi4vaW5jbHVkZS9taU5TLmgiIDEKIyA1NCAiLi4vaW5j bHVkZS9taU5TLmgiCnR5cGVkZWYgZGRVTE9ORyBkZE5hbWVQaWVjZTsKdHlwZWRlZiBkZE5hbWVQ aWVjZSAqZGROYW1lUHRyOwojIDEzMCAiLi4vaW5jbHVkZS9taU5TLmgiCnR5cGVkZWYgc3RydWN0 IF9taU5TSGVhZGVyIHsKCiAgICAgICAgbGlzdG9mT2JqICp3a3NSZWZMaXN0OwogICAgICAgIGxp c3RvZk9iaiAqcmVuZFJlZkxpc3Q7CiAgICAgICAgZGRVTE9ORyByZWZDb3VudDsKICAgICAgICBk ZFVMT05HIG5hbWVDb3VudDsKICAgICAgICBkZE5hbWVQaWVjZSBuYW1lc1sgKCgyNTUgLSAwICsx KSAvIChzaXplb2YoZGROYW1lUGllY2UpICogOCkpIF07CiAgICAgICAgZGRCT09MIGZyZWVGbGFn Owp9IG1pTlNIZWFkZXI7CiMgNTkgIi4uL2luY2x1ZGUvbWlSZW5kZXIuaCIgMgojIDEgIi4uLy4u Ly4uL2luY2x1ZGUvUEVYcHJvdG9zdC5oIiAxCiMgNTkgIi4uLy4uLy4uL2luY2x1ZGUvUEVYcHJv dG9zdC5oIgp0eXBlZGVmIGZsb2F0IFBFWEZMT0FUOwoKCnR5cGVkZWYgQ0FSRDMyIHBleEFzZkF0 dHJpYnV0ZTsKdHlwZWRlZiBDQVJEOCBwZXhBc2ZWYWx1ZTsKdHlwZWRlZiBDQVJEMzIgcGV4Qml0 bWFzazsKdHlwZWRlZiBDQVJEMTYgcGV4Qml0bWFza1Nob3J0Owp0eXBlZGVmIENBUkQxNiBwZXhD b29yZFR5cGU7CnR5cGVkZWYgQ0FSRDE2IHBleENvbXBvc2l0aW9uOwp0eXBlZGVmIENBUkQxNiBw ZXhDdWxsTW9kZTsKdHlwZWRlZiBCWVRFIHBleER5bmFtaWNUeXBlOwp0eXBlZGVmIElOVDE2IHBl eEVudW1UeXBlSW5kZXg7CnR5cGVkZWYgWElEIHBleExvb2t1cFRhYmxlOwp0eXBlZGVmIENBUkQz MiBwZXhOYW1lOwp0eXBlZGVmIFhJRCBwZXhOYW1lU2V0Owp0eXBlZGVmIFhJRCBwZXhQQzsKdHlw ZWRlZiBYSUQgcGV4Rm9udDsKdHlwZWRlZiBQRVhGTE9BVCBwZXhNYXRyaXhbNF1bNF07CnR5cGVk ZWYgUEVYRkxPQVQgcGV4TWF0cml4M1gzWzNdWzNdOwp0eXBlZGVmIFhJRCBwZXhQaGlnc1drczsK dHlwZWRlZiBYSUQgcGV4UGlja01lYXN1cmU7CnR5cGVkZWYgWElEIHBleFJlbmRlcmVyOwp0eXBl ZGVmIFhJRCBwZXhTQzsKdHlwZWRlZiBYSUQgcGV4U3RydWN0dXJlOwp0eXBlZGVmIENBUkQ4IHBl eFN3aXRjaDsKdHlwZWRlZiBDQVJEMTYgcGV4VGFibGVJbmRleDsKdHlwZWRlZiBDQVJEMTYgcGV4 VGFibGVUeXBlOwp0eXBlZGVmIENBUkQxNiBwZXhUZXh0SEFsaWdubWVudDsKdHlwZWRlZiBDQVJE MTYgcGV4VGV4dFZBbGlnbm1lbnQ7CnR5cGVkZWYgQ0FSRDE2IHBleFR5cGVPclRhYmxlSW5kZXg7 CnR5cGVkZWYgcGV4RW51bVR5cGVJbmRleCBwZXhDb2xvdXJUeXBlOwoKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQxNiBsZW5ndGggOwoKfSBwZXhTdHJpbmc7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIFBFWEZMT0FUIHByaW9yaXR5Owp9IHBleFN0cnVjdHVy ZUluZm87Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCB4OwogICAgUEVYRkxPQVQgeTsK fSBwZXhWZWN0b3IyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIFBFWEZMT0FUIHg7CiAgICBQRVhG TE9BVCB5OwogICAgUEVYRkxPQVQgejsKfSBwZXhWZWN0b3IzRDsKCgoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgUEVYRkxPQVQgeDsKICAgIFBFWEZMT0FUIHk7Cn0gcGV4Q29vcmQyRDsKCnR5cGVkZWYg c3RydWN0IHsKICAgIFBFWEZMT0FUIHg7CiAgICBQRVhGTE9BVCB5OwogICAgUEVYRkxPQVQgejsK fSBwZXhDb29yZDNEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgUEVYRkxPQVQgeDsKICAgIFBFWEZM T0FUIHk7CiAgICBQRVhGTE9BVCB6OwogICAgUEVYRkxPQVQgdzsKfSBwZXhDb29yZDREOwoKCgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCByZWQ7CiAgICBQRVhGTE9BVCBncmVlbjsKICAg IFBFWEZMT0FUIGJsdWU7Cn0gcGV4UmdiRmxvYXRDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBQRVhGTE9BVCBodWU7CiAgICBQRVhGTE9BVCBzYXR1cmF0aW9uOwogICAgUEVYRkxPQVQgdmFs dWU7Cn0gcGV4SHN2Q29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgUEVYRkxPQVQgaHVlOwog ICAgUEVYRkxPQVQgbGlnaHRuZXNzOwogICAgUEVYRkxPQVQgc2F0dXJhdGlvbjsKfSBwZXhIbHND b2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCB4OwogICAgUEVYRkxPQVQgeTsK ICAgIFBFWEZMT0FUIHo7Cn0gcGV4Q2llQ29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVkOwogICAgQ0FSRDggZ3JlZW47CiAgICBDQVJEOCBibHVlOwogICAgQ0FSRDggcGFkOwp9 IHBleFJnYjhDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgcmVkIDsKICAgIENB UkQxNiBncmVlbiA7CiAgICBDQVJEMTYgYmx1ZSA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhSZ2Ix NkNvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleFRhYmxlSW5kZXggaW5kZXggOwogICAg Q0FSRDE2IHBhZCA7Cn0gcGV4SW5kZXhlZENvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHVu aW9uIHsKICAgICAgICBwZXhJbmRleGVkQ29sb3VyIGluZGV4ZWQ7CiAgICAgICAgcGV4UmdiOENv bG91ciByZ2I4OwogICAgICAgIHBleFJnYjE2Q29sb3VyIHJnYjE2OwogICAgICAgIHBleFJnYkZs b2F0Q29sb3VyIHJnYkZsb2F0OwogICAgICAgIHBleEhzdkNvbG91ciBoc3ZGbG9hdDsKICAgICAg ICBwZXhIbHNDb2xvdXIgaGxzRmxvYXQ7CiAgICAgICAgcGV4Q2llQ29sb3VyIGNpZUZsb2F0Owog ICAgfSBmb3JtYXQ7Cn0gcGV4Q29sb3VyOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgUEVYRkxPQVQg Zmlyc3Q7CiAgICBQRVhGTE9BVCBzZWNvbmQ7CiAgICBQRVhGTE9BVCB0aGlyZDsKfSBwZXhGbG9h dENvbG91cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7 CiAgICBDQVJEMTYgdW51c2VkIDsKCn0gcGV4Q29sb3VyU3BlY2lmaWVyOwoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVudW1UeXBlSW5kZXggYXBwcm94TWV0aG9kIDsKICAgIENBUkQxNiB1bnVz ZWQgOwogICAgUEVYRkxPQVQgdG9sZXJhbmNlOwp9IHBleEN1cnZlQXBwcm94OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgSU5UMTYgeCA7CiAgICBJTlQxNiB5IDsKICAgIFBFWEZMT0FUIHo7Cn0gcGV4 RGV2aWNlQ29vcmQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBJTlQxNiB4IDsKICAgIElOVDE2IHkg Owp9IHBleERldmljZUNvb3JkMkQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBJTlQxNiB4bWluIDsK ICAgIElOVDE2IHltaW4gOwogICAgSU5UMTYgeG1heCA7CiAgICBJTlQxNiB5bWF4IDsKfSBwZXhE ZXZpY2VSZWN0OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDE2IGVsZW1lbnRUeXBlIDsKICAg IENBUkQxNiBsZW5ndGggOwp9IHBleEVsZW1lbnRJbmZvOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg Q0FSRDE2IHdoZW5jZSA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIElOVDMyIG9mZnNldCA7Cn0g cGV4RWxlbWVudFBvczsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRQb3MgcG9zaXRp b24xOwogICAgcGV4RWxlbWVudFBvcyBwb3NpdGlvbjI7Cn0gcGV4RWxlbWVudFJhbmdlOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgcGV4U3RydWN0dXJlIHN0cnVjdHVyZSA7CiAgICBDQVJEMzIgb2Zm c2V0IDsKfSBwZXhFbGVtZW50UmVmOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHBleENvb3Jk MkQgbG93ZXJMZWZ0OwogICAgICAgIHBleENvb3JkMkQgdXBwZXJSaWdodDsKICAgICAgICBwZXhD b29yZDJEIGNvbmNhdHBvaW50Owp9IHBleEV4dGVudEluZm87Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhFbnVtVHlwZUluZGV4IGluZGV4IDsKICAgIHBleFN0cmluZyBkZXNjcmlwdG9yOwp9IHBl eEVudW1UeXBlRGVzYzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleENvb3JkM0QgcG9pbnQ7CiAg ICBwZXhWZWN0b3IzRCB2ZWN0b3I7Cn0gcGV4SGFsZlNwYWNlOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4TmFtZVNldCBpbmNsOwogICAgcGV4TmFtZVNldCBleGNsOwp9IHBleE5hbWVTZXRQYWly OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4Q29vcmQyRCBwb2ludDsKICAgIHBleFZlY3RvcjJE IHZlY3RvcjsKfSBwZXhIYWxmU3BhY2UyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQxNiBj b21wb3NpdGlvbiA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleE1hdHJpeCBtYXRyaXg7Cn0g cGV4TG9jYWxUcmFuc2Zvcm0zRERhdGE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgY29t cG9zaXRpb24gOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhNYXRyaXgzWDMgbWF0cml4Owp9 IHBleExvY2FsVHJhbnNmb3JtMkREYXRhOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4Q29vcmQz RCBtaW52YWw7CiAgICBwZXhDb29yZDNEIG1heHZhbDsKfSBwZXhOcGNTdWJ2b2x1bWU7CiMgMzAw ICIuLi8uLi8uLi9pbmNsdWRlL1BFWHByb3Rvc3QuaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 U3RydWN0dXJlIHNpZCA7CiAgICBDQVJEMzIgb2Zmc2V0IDsKICAgIENBUkQzMiBwaWNraWQgOwp9 IHBleFBpY2tFbGVtZW50UmVmOwoKCgoKCgoKdHlwZWRlZiBwZXhQaWNrRWxlbWVudFJlZiBwZXhQ aWNrUGF0aDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleFRleHRWQWxpZ25tZW50IHZlcnRpY2Fs IDsKICAgIHBleFRleHRIQWxpZ25tZW50IGhvcml6b250YWwgOwp9IHBleFRleHRBbGlnbm1lbnRE YXRhOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4U3dpdGNoIHZpc2liaWxpdHk7CiAgICBDQVJE OCB1bnVzZWQ7CiAgICBDQVJEMTYgb3JkZXIgOwogICAgcGV4Q29vcmRUeXBlIHR5cGUgOwogICAg SU5UMTYgYXBwcm94TWV0aG9kIDsKICAgIFBFWEZMT0FUIHRvbGVyYW5jZTsKICAgIFBFWEZMT0FU IHRNaW47CiAgICBQRVhGTE9BVCB0TWF4OwogICAgQ0FSRDMyIG51bUtub3RzIDsKICAgIENBUkQz MiBudW1Db29yZCA7CgoKfSBwZXhUcmltQ3VydmU7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCBkZXB0aDsKICAgIENBUkQ4IHVudXNlZDsKICAgIENBUkQxNiB0eXBlIDsKICAgIENBUkQzMiB2 aXN1YWxJRCA7Cn0gcGV4UmVuZGVyZXJUYXJnZXQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhF bnVtVHlwZUluZGV4IHBpY2tUeXBlIDsKICAgIENBUkQxNiB1bnVzZWQ7Cgp9IHBleFBpY2tSZWNv cmQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBQRVhGTE9BVCBhbWJpZW50OwogICAgUEVYRkxPQVQg ZGlmZnVzZTsKICAgIFBFWEZMT0FUIHNwZWN1bGFyOwogICAgUEVYRkxPQVQgc3BlY3VsYXJDb25j OwogICAgUEVYRkxPQVQgdHJhbnNtaXNzaW9uOwogICAgcGV4Q29sb3VyU3BlY2lmaWVyIHNwZWN1 bGFyQ29sb3VyOwoKfSBwZXhSZWZsZWN0aW9uQXR0cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBl eEVudW1UeXBlSW5kZXggYXBwcm94TWV0aG9kIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgUEVY RkxPQVQgdVRvbGVyYW5jZTsKICAgIFBFWEZMT0FUIHZUb2xlcmFuY2U7Cn0gcGV4U3VyZmFjZUFw cHJveDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhDb29yZDNEIHBvaW50OwoKfSBwZXhWZXJ0 ZXg7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RGV2aWNlQ29vcmQgbWludmFsOwogICAgcGV4 RGV2aWNlQ29vcmQgbWF4dmFsOwogICAgcGV4U3dpdGNoIHVzZURyYXdhYmxlOwogICAgQllURSBw YWRbM107Cn0gcGV4Vmlld3BvcnQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgY2xpcEZs YWdzIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4TnBjU3Vidm9sdW1lIGNsaXBMaW1pdHM7 CiAgICBwZXhNYXRyaXggb3JpZW50YXRpb247CiAgICBwZXhNYXRyaXggbWFwcGluZzsKfSBwZXhW aWV3RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhUYWJsZUluZGV4IGluZGV4IDsKICAg IENBUkQxNiB1bnVzZWQgOwogICAgcGV4Vmlld0VudHJ5IHZpZXc7Cn0gcGV4Vmlld1JlcDsKCgoK Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMTYgZGVmaW5hYmxlRW50cmllcyA7CiAgICBDQVJE MTYgbnVtUHJlZGVmaW5lZCA7CiAgICBDQVJEMTYgcHJlZGVmaW5lZE1pbiA7CiAgICBDQVJEMTYg cHJlZGVmaW5lZE1heCA7Cn0gcGV4VGFibGVJbmZvOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 RW51bVR5cGVJbmRleCBsaW5lVHlwZSA7CiAgICBwZXhFbnVtVHlwZUluZGV4IHBvbHlsaW5lSW50 ZXJwIDsKICAgIHBleEN1cnZlQXBwcm94IGN1cnZlQXBwcm94OwogICAgUEVYRkxPQVQgbGluZVdp ZHRoOwogICAgcGV4Q29sb3VyU3BlY2lmaWVyIGxpbmVDb2xvdXI7Cgp9IHBleExpbmVCdW5kbGVF bnRyeTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVudW1UeXBlSW5kZXggbWFya2VyVHlwZSA7 CiAgICBJTlQxNiB1bnVzZWQgOwogICAgUEVYRkxPQVQgbWFya2VyU2NhbGU7CiAgICBwZXhDb2xv dXJTcGVjaWZpZXIgbWFya2VyQ29sb3VyOwoKfSBwZXhNYXJrZXJCdW5kbGVFbnRyeTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQxNiB0ZXh0Rm9udEluZGV4IDsKICAgIENBUkQxNiB0ZXh0UHJl Y2lzaW9uIDsKICAgIFBFWEZMT0FUIGNoYXJFeHBhbnNpb247CiAgICBQRVhGTE9BVCBjaGFyU3Bh Y2luZzsKICAgIHBleENvbG91clNwZWNpZmllciB0ZXh0Q29sb3VyOwoKfSBwZXhUZXh0QnVuZGxl RW50cnk7CgoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbnVtVHlwZUluZGV4IGludGVy aW9yU3R5bGUgOwogICAgSU5UMTYgaW50ZXJpb3JTdHlsZUluZGV4IDsKICAgIHBleEVudW1UeXBl SW5kZXggcmVmbGVjdGlvbk1vZGVsIDsKICAgIHBleEVudW1UeXBlSW5kZXggc3VyZmFjZUludGVy cCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGJmSW50ZXJpb3JTdHlsZSA7CiAgICBJTlQxNiBiZklu dGVyaW9yU3R5bGVJbmRleCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGJmUmVmbGVjdGlvbk1vZGVs IDsKICAgIHBleEVudW1UeXBlSW5kZXggYmZTdXJmYWNlSW50ZXJwIDsKICAgIHBleFN1cmZhY2VB cHByb3ggc3VyZmFjZUFwcHJveDsKCgoKCn0gcGV4SW50ZXJpb3JCdW5kbGVFbnRyeTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIHBleFN3aXRjaCBlZGdlczsKICAgIENBUkQ4IHVudXNlZDsKICAgIHBl eEVudW1UeXBlSW5kZXggZWRnZVR5cGUgOwogICAgUEVYRkxPQVQgZWRnZVdpZHRoOwogICAgcGV4 Q29sb3VyU3BlY2lmaWVyIGVkZ2VDb2xvdXI7Cgp9IHBleEVkZ2VCdW5kbGVFbnRyeTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIHBleENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBDQVJEMTYgbnVt eCA7CiAgICBDQVJEMTYgbnVteSA7CiAgICBDQVJEMTYgdW51c2VkIDsKCn0gcGV4UGF0dGVybkVu dHJ5OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDMyIG51bUZvbnRzIDsKCn0gcGV4VGV4 dEZvbnRFbnRyeTsKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RW51bVR5cGVJbmRleCBsaWdo dFR5cGUgOwogICAgSU5UMTYgdW51c2VkIDsKICAgIHBleFZlY3RvcjNEIGRpcmVjdGlvbjsKICAg IHBleENvb3JkM0QgcG9pbnQ7CiAgICBQRVhGTE9BVCBjb25jZW50cmF0aW9uOwogICAgUEVYRkxP QVQgc3ByZWFkQW5nbGU7CiAgICBQRVhGTE9BVCBhdHRlbnVhdGlvbjE7CiAgICBQRVhGTE9BVCBh dHRlbnVhdGlvbjI7CiAgICBwZXhDb2xvdXJTcGVjaWZpZXIgbGlnaHRDb2xvdXI7Cgp9IHBleExp Z2h0RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhTd2l0Y2ggbW9kZTsKICAgIENBUkQ4 IHVudXNlZDsKICAgIENBUkQxNiB1bnVzZWQyIDsKICAgIFBFWEZMT0FUIGZyb250UGxhbmU7CiAg ICBQRVhGTE9BVCBiYWNrUGxhbmU7CiAgICBQRVhGTE9BVCBmcm9udFNjYWxpbmc7CiAgICBQRVhG TE9BVCBiYWNrU2NhbGluZzsKICAgIHBleENvbG91clNwZWNpZmllciBkZXB0aEN1ZUNvbG91cjsK Cn0gcGV4RGVwdGhDdWVFbnRyeTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIElOVDE2IGFwcHJveFR5 cGU7CiAgICBJTlQxNiBhcHByb3hNb2RlbDsKICAgIENBUkQxNiBtYXgxIDsKICAgIENBUkQxNiBt YXgyIDsKICAgIENBUkQxNiBtYXgzIDsKICAgIENBUkQ4IGRpdGhlcjsKICAgIENBUkQ4IHVudXNl ZDsKICAgIENBUkQzMiBtdWx0MSA7CiAgICBDQVJEMzIgbXVsdDIgOwogICAgQ0FSRDMyIG11bHQz IDsKICAgIFBFWEZMT0FUIHdlaWdodDE7CiAgICBQRVhGTE9BVCB3ZWlnaHQyOwogICAgUEVYRkxP QVQgd2VpZ2h0MzsKICAgIENBUkQzMiBiYXNlUGl4ZWwgOwp9IHBleENvbG91ckFwcHJveEVudHJ5 OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQXRvbSBuYW1lIDsKICAgIENBUkQzMiB2YWx1ZSA7 Cn0gcGV4Rm9udFByb3A7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEMzIgZmlyc3RHbHlwaCA7 CiAgICBDQVJEMzIgbGFzdEdseXBoIDsKICAgIENBUkQzMiBkZWZhdWx0R2x5cGggOwogICAgcGV4 U3dpdGNoIGFsbEV4aXN0OwogICAgcGV4U3dpdGNoIHN0cm9rZUZvbnQ7CiAgICBDQVJEMTYgdW51 c2VkIDsKICAgIENBUkQzMiBudW1Qcm9wcyA7Cgp9IHBleEZvbnRJbmZvOwoKCgoKdHlwZWRlZiBz dHJ1Y3QgewogICAgSU5UMTYgY2hhcmFjdGVyU2V0IDsKICAgIENBUkQ4IGNoYXJhY3RlclNldFdp ZHRoOwogICAgQ0FSRDggZW5jb2RpbmdTdGF0ZTsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FS RDE2IG51bUNoYXJzOwoKCn0gcGV4TW9ub0VuY29kaW5nOwojIDU2MSAiLi4vLi4vLi4vaW5jbHVk ZS9QRVhwcm90b3N0LmgiCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQxNiBwbGFjZW1lbnRUeXBl IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDE2IG51bVVjdXJ2ZXMgOwogICAgQ0FSRDE2 IG51bVZjdXJ2ZXMgOwp9IHBleFBTQ19Jc29wYXJhbWV0cmljQ3VydmVzOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgcGV4Q29vcmQzRCBvcmlnaW47CiAgICBwZXhWZWN0b3IzRCBkaXJlY3Rpb247CiAg ICBDQVJEMTYgbnVtYmVySW50ZXJzZWN0aW9ucyA7CiAgICBDQVJEMTYgcGFkIDsKCn0gcGV4UFND X0xldmVsQ3VydmVzOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RGV2aWNlQ29vcmQyRCBw b3NpdGlvbjsKICAgIFBFWEZMT0FUIGRpc3RhbmNlOwp9IHBleFBEX0RDX0hpdEJveDsKCnR5cGVk ZWYgcGV4TnBjU3Vidm9sdW1lIHBleFBEX05QQ19IaXRWb2x1bWU7CgoKCgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCB0eXBlOwogICAgQ0FSRDggZXJyb3JDb2RlOwogICAgQ0FSRDE2IHNlcXVl bmNlTnVtYmVyIDsKICAgIENBUkQzMiByZXNvdXJjZUlkIDsKICAgIENBUkQxNiBtaW5vckNvZGUg OwogICAgQ0FSRDggbWFqb3JDb2RlOwogICAgQ0FSRDggdW51c2VkOwogICAgQ0FSRDE2IG9wY29k ZSA7CiAgICBDQVJEMTYgbnVtQ29tbWFuZHMgOwogICAgQllURSBwYWRbMTZdOwp9IHBleE91dHB1 dENvbW1hbmRFcnJvcjsKCgoKCnR5cGVkZWYgc3RydWN0IHsKICAgIElOVDE2IGZwRm9ybWF0IDsK ICAgIENBUkQ4IHVudXNlZFsyXTsKICAgIENBUkQzMiByZHIgOwoKfSBwZXhFc2NhcGVTZXRFY2hv Q29sb3VyRGF0YTsKIyA2MCAiLi4vaW5jbHVkZS9taVJlbmRlci5oIiAyCiMgMSAiLi4vaW5jbHVk ZS9taUxVVC5oIiAxCiMgNTMgIi4uL2luY2x1ZGUvbWlMVVQuaCIKIyAxICIuLi9pbmNsdWRlL21p cGV4LmgiIDEKIyA1NiAiLi4vaW5jbHVkZS9taXBleC5oIgojIDEgIi4uLy4uLy4uLy4uLy4uLy4u L3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9zY3JuaW50c3RyLmgiIDEKIyA1NSAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5pbnRzdHIuaCIKIyAxICIuLi8u Li8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvYnN0b3JlLmgiIDEKIyAyMSAi Li4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2JzdG9yZS5oIgojIDEg Ii4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9ic3RvcmVzdHIuaCIg MQojIDI2ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvYnN0b3Jl c3RyLmgiCnR5cGVkZWYgdm9pZCAoKiBCYWNraW5nU3RvcmVTYXZlQXJlYXNQcm9jUHRyKSgKCiAg ICAgICAgUGl4bWFwUHRyICwKICAgICAgICBSZWdpb25QdHIgLAogICAgICAgIGludCAsCiAgICAg ICAgaW50ICwKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogQmFja2luZ1N0 b3JlUmVzdG9yZUFyZWFzUHJvY1B0cikoCgogICAgICAgIFBpeG1hcFB0ciAsCiAgICAgICAgUmVn aW9uUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgV2luZG93UHRyCgop OwoKdHlwZWRlZiB2b2lkICgqIEJhY2tpbmdTdG9yZVNldENsaXBtYXNrUmduUHJvY1B0cikoCgog ICAgICAgIEdDUHRyICwKICAgICAgICBSZWdpb25QdHIKCik7Cgp0eXBlZGVmIFBpeG1hcFB0ciAo KiBCYWNraW5nU3RvcmVHZXRJbWFnZVBpeG1hcFByb2NQdHIpKAoKICAgICAgICB2b2lkCgopOwoK dHlwZWRlZiBQaXhtYXBQdHIgKCogQmFja2luZ1N0b3JlR2V0U3BhbnNQaXhtYXBQcm9jUHRyKSgK CiAgICAgICAgdm9pZAoKKTsKCnR5cGVkZWYgc3RydWN0IF9CU0Z1bmNzIHsKCiAgICAgICAgQmFj a2luZ1N0b3JlU2F2ZUFyZWFzUHJvY1B0ciBTYXZlQXJlYXM7CiAgICAgICAgQmFja2luZ1N0b3Jl UmVzdG9yZUFyZWFzUHJvY1B0ciBSZXN0b3JlQXJlYXM7CiAgICAgICAgQmFja2luZ1N0b3JlU2V0 Q2xpcG1hc2tSZ25Qcm9jUHRyIFNldENsaXBtYXNrUmduOwogICAgICAgIEJhY2tpbmdTdG9yZUdl dEltYWdlUGl4bWFwUHJvY1B0ciBHZXRJbWFnZVBpeG1hcDsKICAgICAgICBCYWNraW5nU3RvcmVH ZXRTcGFuc1BpeG1hcFByb2NQdHIgR2V0U3BhbnNQaXhtYXA7Cgp9IEJTRnVuY1JlYywgKkJTRnVu Y1B0cjsKIyAyMiAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2Jz dG9yZS5oIiAyCiMgNTYgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVk ZS9zY3JuaW50c3RyLmgiIDIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVy L2luY2x1ZGUvY29sb3JtYXAuaCIgMQojIDc2ICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Y c2VydmVyL2luY2x1ZGUvY29sb3JtYXAuaCIKdHlwZWRlZiBDQVJEMzIgUGl4ZWw7CnR5cGVkZWYg c3RydWN0IF9DTUVudHJ5ICpFbnRyeVB0cjsKCnR5cGVkZWYgc3RydWN0IF9jb2xvclJlc291cmNl ICpjb2xvclJlc291cmNlUHRyOwoKZXh0ZXJuIGludCBDcmVhdGVDb2xvcm1hcCgKCiAgICBDb2xv cm1hcCAsCiAgICBTY3JlZW5QdHIgLAogICAgVmlzdWFsUHRyICwKICAgIENvbG9ybWFwUHRyKiAs CiAgICBpbnQgLAogICAgaW50CgopOwoKZXh0ZXJuIGludCBGcmVlQ29sb3JtYXAoCgogICAgcG9p bnRlciAsCiAgICBYSUQKCik7CgpleHRlcm4gaW50IFRlbGxMb3N0TWFwKAoKICAgIFdpbmRvd1B0 ciAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIGludCBUZWxsR2FpbmVkTWFwKAoKICAgIFdpbmRv d1B0ciAsCiAgICBwb2ludGVyCgopOwoKZXh0ZXJuIGludCBDb3B5Q29sb3JtYXBBbmRGcmVlKAoK ICAgIENvbG9ybWFwICwKICAgIENvbG9ybWFwUHRyICwKICAgIGludAoKKTsKCmV4dGVybiBpbnQg QWxsb2NDb2xvcigKCiAgICBDb2xvcm1hcFB0ciAsCiAgICB1bnNpZ25lZCBzaG9ydCogLAogICAg dW5zaWduZWQgc2hvcnQqICwKICAgIHVuc2lnbmVkIHNob3J0KiAsCiAgICBQaXhlbCogLAogICAg aW50CgopOwoKZXh0ZXJuIHZvaWQgRmFrZUFsbG9jQ29sb3IoCgogICAgQ29sb3JtYXBQdHIgLAog ICAgeENvbG9ySXRlbSAqCgopOwoKZXh0ZXJuIHZvaWQgRmFrZUZyZWVDb2xvcigKCiAgICBDb2xv cm1hcFB0ciAsCiAgICBQaXhlbAoKKTsKCnR5cGVkZWYgaW50ICgqQ29sb3JDb21wYXJlUHJvY1B0 cikoCgogICAgRW50cnlQdHIgLAogICAgeHJnYiAqCgopOwoKZXh0ZXJuIGludCBGaW5kQ29sb3Io CgogICAgQ29sb3JtYXBQdHIgLAogICAgRW50cnlQdHIgLAogICAgaW50ICwKICAgIHhyZ2IqICwK ICAgIFBpeGVsKiAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIENvbG9yQ29tcGFyZVByb2NQdHIK Cik7CgpleHRlcm4gaW50IFF1ZXJ5Q29sb3JzKAoKICAgIENvbG9ybWFwUHRyICwKICAgIGludCAs CiAgICBQaXhlbCogLAogICAgeHJnYioKCik7CgpleHRlcm4gaW50IEZyZWVDbGllbnRQaXhlbHMo CgogICAgcG9pbnRlciAsCiAgICBYSUQKCik7CgpleHRlcm4gaW50IEFsbG9jQ29sb3JDZWxscygK CiAgICBpbnQgLAogICAgQ29sb3JtYXBQdHIgLAogICAgaW50ICwKICAgIGludCAsCiAgICBCb29s ICwKICAgIFBpeGVsKiAsCiAgICBQaXhlbCoKCik7CgpleHRlcm4gaW50IEFsbG9jQ29sb3JQbGFu ZXMoCgogICAgaW50ICwKICAgIENvbG9ybWFwUHRyICwKICAgIGludCAsCiAgICBpbnQgLAogICAg aW50ICwKICAgIGludCAsCiAgICBCb29sICwKICAgIFBpeGVsKiAsCiAgICBQaXhlbCogLAogICAg UGl4ZWwqICwKICAgIFBpeGVsKgoKKTsKCmV4dGVybiBpbnQgRnJlZUNvbG9ycygKCiAgICBDb2xv cm1hcFB0ciAsCiAgICBpbnQgLAogICAgaW50ICwKICAgIFBpeGVsKiAsCiAgICBQaXhlbAoKKTsK CmV4dGVybiBpbnQgU3RvcmVDb2xvcnMoCgogICAgQ29sb3JtYXBQdHIgLAogICAgaW50ICwKICAg IHhDb2xvckl0ZW0qCgopOwoKZXh0ZXJuIGludCBJc01hcEluc3RhbGxlZCgKCiAgICBDb2xvcm1h cCAsCiAgICBXaW5kb3dQdHIKCik7CiMgNTcgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hz ZXJ2ZXIvaW5jbHVkZS9zY3JuaW50c3RyLmgiIDIKIyAxICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9n cmFtcy9Yc2VydmVyL2luY2x1ZGUvY3Vyc29yLmgiIDEKIyA1NyAiLi4vLi4vLi4vLi4vLi4vLi4v cHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL2N1cnNvci5oIgp0eXBlZGVmIHN0cnVjdCBfQ3Vyc29y ICpDdXJzb3JQdHI7CnR5cGVkZWYgc3RydWN0IF9DdXJzb3JNZXRyaWMgKkN1cnNvck1ldHJpY1B0 cjsKCmV4dGVybiBDdXJzb3JQdHIgcm9vdEN1cnNvcjsKCmV4dGVybiBpbnQgRnJlZUN1cnNvcigK CiAgICBwb2ludGVyICwKICAgIFhJRAoKKTsKCgoKCgoKZXh0ZXJuIEN1cnNvclB0ciBBbGxvY0N1 cnNvcigKCiAgICB1bnNpZ25lZCBjaGFyKiAsCiAgICB1bnNpZ25lZCBjaGFyKiAsCiAgICBDdXJz b3JNZXRyaWNQdHIgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQg LAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQKCik7CgpleHRlcm4g aW50IEFsbG9jR2x5cGhDdXJzb3IoCgogICAgRm9udCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAg Rm9udCAsCiAgICB1bnNpZ25lZCBpbnQgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAog ICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQgLAogICAgdW5zaWduZWQg LAogICAgQ3Vyc29yUHRyKiAsCiAgICBDbGllbnRQdHIKCik7CgpleHRlcm4gQ3Vyc29yUHRyIENy ZWF0ZVJvb3RDdXJzb3IoCgogICAgY2hhciogLAogICAgdW5zaWduZWQgaW50CgopOwoKZXh0ZXJu IGludCBTZXJ2ZXJCaXRzRnJvbUdseXBoKAoKICAgIEZvbnRQdHIgLAogICAgdW5zaWduZWQgaW50 ICwKICAgIHJlZ2lzdGVyIEN1cnNvck1ldHJpY1B0ciAsCiAgICB1bnNpZ25lZCBjaGFyICoqCgop OwoKZXh0ZXJuIEJvb2wgQ3Vyc29yTWV0cmljc0Zyb21HbHlwaCgKCiAgICBGb250UHRyICwKICAg IHVuc2lnbmVkICwKICAgIEN1cnNvck1ldHJpY1B0cgoKKTsKCmV4dGVybiB2b2lkIENoZWNrQ3Vy c29yQ29uZmluZW1lbnQoCgogICAgV2luZG93UHRyCgopOwoKZXh0ZXJuIHZvaWQgTmV3Q3VycmVu dFNjcmVlbigKCiAgICBTY3JlZW5QdHIgLAogICAgaW50ICwKICAgIGludAoKKTsKCmV4dGVybiBC b29sIFBvaW50ZXJDb25maW5lZFRvU2NyZWVuKAoKICAgIHZvaWQKCik7CgpleHRlcm4gdm9pZCBH ZXRTcHJpdGVQb3NpdGlvbigKCiAgICBpbnQgKiAsCiAgICBpbnQgKgoKKTsKIyA1OCAiLi4vLi4v Li4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5pbnRzdHIuaCIgMgojIDEg Ii4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS92YWxpZGF0ZS5oIiAx CiMgMzUgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS92YWxpZGF0 ZS5oIgp0eXBlZGVmIGVudW0geyBWVE90aGVyLCBWVFN0YWNrLCBWVE1vdmUsIFZUVW5tYXAsIFZU TWFwLCBWVEJyb2tlbiB9IFZUS2luZDsKCgp0eXBlZGVmIHVuaW9uIF9WYWxpZGF0ZSAqVmFsaWRh dGVQdHI7CiMgNTkgIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2dyYW1zL1hzZXJ2ZXIvaW5jbHVkZS9z Y3JuaW50c3RyLmgiIDIKCgoKdHlwZWRlZiBzdHJ1Y3QgX1BpeG1hcEZvcm1hdCB7CiAgICB1bnNp Z25lZCBjaGFyIGRlcHRoOwogICAgdW5zaWduZWQgY2hhciBiaXRzUGVyUGl4ZWw7CiAgICB1bnNp Z25lZCBjaGFyIHNjYW5saW5lUGFkOwogICAgfSBQaXhtYXBGb3JtYXRSZWM7Cgp0eXBlZGVmIHN0 cnVjdCBfVmlzdWFsIHsKICAgIFZpc3VhbElEIHZpZDsKICAgIHNob3J0IGNsYXNzOwogICAgc2hv cnQgYml0c1BlclJHQlZhbHVlOwogICAgc2hvcnQgQ29sb3JtYXBFbnRyaWVzOwogICAgc2hvcnQg bnBsYW5lczsKCgogICAgdW5zaWduZWQgbG9uZyByZWRNYXNrLCBncmVlbk1hc2ssIGJsdWVNYXNr OwogICAgaW50IG9mZnNldFJlZCwgb2Zmc2V0R3JlZW4sIG9mZnNldEJsdWU7CiAgfSBWaXN1YWxS ZWM7Cgp0eXBlZGVmIHN0cnVjdCBfRGVwdGggewogICAgdW5zaWduZWQgY2hhciBkZXB0aDsKICAg IHNob3J0IG51bVZpZHM7CiAgICBWaXN1YWxJRCAqdmlkczsKICB9IERlcHRoUmVjOwojIDkzICIu Li8uLi8uLi8uLi8uLi8uLi9wcm9ncmFtcy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIgp0 eXBlZGVmIEJvb2wgKCogQ2xvc2VTY3JlZW5Qcm9jUHRyKSgKCiAgICAgICAgaW50ICwKICAgICAg ICBTY3JlZW5QdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogUXVlcnlCZXN0U2l6ZVByb2NQdHIpKAoK ICAgICAgICBpbnQgLAogICAgICAgIHVuc2lnbmVkIHNob3J0ICogLAogICAgICAgIHVuc2lnbmVk IHNob3J0ICogLAogICAgICAgIFNjcmVlblB0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBTYXZlU2Ny ZWVuUHJvY1B0cikoCgogICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgICBpbnQKCik7Cgp0eXBl ZGVmIHZvaWQgKCogR2V0SW1hZ2VQcm9jUHRyKSgKCiAgICAgICAgRHJhd2FibGVQdHIgLAogICAg ICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAg ICAgdW5zaWduZWQgaW50ICwKICAgICAgICB1bnNpZ25lZCBsb25nICwKICAgICAgICBjaGFyICoK Cik7Cgp0eXBlZGVmIHZvaWQgKCogR2V0U3BhbnNQcm9jUHRyKSgKCiAgICAgICAgRHJhd2FibGVQ dHIgLAogICAgICAgIGludCAsCiAgICAgICAgRERYUG9pbnRQdHIgLAogICAgICAgIGludCogLAog ICAgICAgIGludCAsCiAgICAgICAgY2hhciAqCgopOwoKdHlwZWRlZiB2b2lkICgqIFBvaW50ZXJO b25JbnRlcmVzdEJveFByb2NQdHIpKAoKICAgICAgICBTY3JlZW5QdHIgLAogICAgICAgIEJveFB0 cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBTb3VyY2VWYWxpZGF0ZVByb2NQdHIpKAoKICAgICAgICBE cmF3YWJsZVB0ciAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAg ICAgICAgaW50CgopOwoKdHlwZWRlZiBCb29sICgqIENyZWF0ZVdpbmRvd1Byb2NQdHIpKAoKICAg ICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIEJvb2wgKCogRGVzdHJveVdpbmRvd1Byb2NQdHIp KAoKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIEJvb2wgKCogUG9zaXRpb25XaW5kb3dQ cm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludAoK KTsKCnR5cGVkZWYgQm9vbCAoKiBDaGFuZ2VXaW5kb3dBdHRyaWJ1dGVzUHJvY1B0cikoCgogICAg ICAgIFdpbmRvd1B0ciAsCiAgICAgICAgdW5zaWduZWQgbG9uZwoKKTsKCnR5cGVkZWYgQm9vbCAo KiBSZWFsaXplV2luZG93UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYg Qm9vbCAoKiBVbnJlYWxpemVXaW5kb3dQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyCgopOwoK dHlwZWRlZiB2b2lkICgqIFJlc3RhY2tXaW5kb3dQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRy ICwKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIGludCAoKiBWYWxpZGF0ZVRyZWVQcm9j UHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFZU S2luZAoKKTsKCnR5cGVkZWYgdm9pZCAoKiBQb3N0VmFsaWRhdGVUcmVlUHJvY1B0cikoCgogICAg ICAgIFdpbmRvd1B0ciAsCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBWVEtpbmQKCik7Cgp0 eXBlZGVmIHZvaWQgKCogV2luZG93RXhwb3N1cmVzUHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0 ciAsCiAgICAgICAgUmVnaW9uUHRyICwKICAgICAgICBSZWdpb25QdHIKCik7Cgp0eXBlZGVmIHZv aWQgKCogUGFpbnRXaW5kb3dQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBS ZWdpb25QdHIgLAogICAgICAgIGludAoKKTsKCnR5cGVkZWYgUGFpbnRXaW5kb3dQcm9jUHRyIFBh aW50V2luZG93QmFja2dyb3VuZFByb2NQdHI7CnR5cGVkZWYgUGFpbnRXaW5kb3dQcm9jUHRyIFBh aW50V2luZG93Qm9yZGVyUHJvY1B0cjsKCnR5cGVkZWYgdm9pZCAoKiBDb3B5V2luZG93UHJvY1B0 cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgRERYUG9pbnRSZWMgLAogICAgICAgIFJl Z2lvblB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBDbGVhclRvQmFja2dyb3VuZFByb2NQdHIpKAoK ICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBp bnQgLAogICAgICAgIGludCAsCiAgICAgICAgQm9vbAoKKTsKCnR5cGVkZWYgdm9pZCAoKiBDbGlw Tm90aWZ5UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgaW50ICwKICAgICAg ICBpbnQKCik7Cgp0eXBlZGVmIFBpeG1hcFB0ciAoKiBDcmVhdGVQaXhtYXBQcm9jUHRyKSgKCiAg ICAgICAgU2NyZWVuUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50 CgopOwoKdHlwZWRlZiBCb29sICgqIERlc3Ryb3lQaXhtYXBQcm9jUHRyKSgKCiAgICAgICAgUGl4 bWFwUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIFNhdmVEb29tZWRBcmVhc1Byb2NQdHIpKAoKICAg ICAgICBXaW5kb3dQdHIgLAogICAgICAgIFJlZ2lvblB0ciAsCiAgICAgICAgaW50ICwKICAgICAg ICBpbnQKCik7Cgp0eXBlZGVmIFJlZ2lvblB0ciAoKiBSZXN0b3JlQXJlYXNQcm9jUHRyKSgKCiAg ICAgICAgV2luZG93UHRyICwKICAgICAgICBSZWdpb25QdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCog RXhwb3NlQ29weVByb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIERyYXdhYmxl UHRyICwKICAgICAgICBHQ1B0ciAsCiAgICAgICAgUmVnaW9uUHRyICwKICAgICAgICBpbnQgLAog ICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIHVuc2lnbmVk IGxvbmcKCik7Cgp0eXBlZGVmIFJlZ2lvblB0ciAoKiBUcmFuc2xhdGVCYWNraW5nU3RvcmVQcm9j UHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAg ICAgICAgUmVnaW9uUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludAoKKTsKCnR5cGVkZWYg UmVnaW9uUHRyICgqIENsZWFyQmFja2luZ1N0b3JlUHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0 ciAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAsCiAgICAgICAgaW50 ICwKICAgICAgICBCb29sCgopOwoKdHlwZWRlZiB2b2lkICgqIERyYXdHdWFyYW50ZWVQcm9jUHRy KSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBHQ1B0ciAsCiAgICAgICAgaW50CgopOwoK dHlwZWRlZiBCb29sICgqIFJlYWxpemVGb250UHJvY1B0cikoCgogICAgICAgIFNjcmVlblB0ciAs CiAgICAgICAgRm9udFB0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBVbnJlYWxpemVGb250UHJvY1B0 cikoCgogICAgICAgIFNjcmVlblB0ciAsCiAgICAgICAgRm9udFB0cgoKKTsKCnR5cGVkZWYgdm9p ZCAoKiBDb25zdHJhaW5DdXJzb3JQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyICwKICAgICAg ICBCb3hQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogQ3Vyc29yTGltaXRzUHJvY1B0cikoCgogICAg ICAgIFNjcmVlblB0ciAsCiAgICAgICAgQ3Vyc29yUHRyICwKICAgICAgICBCb3hQdHIgLAogICAg ICAgIEJveFB0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBEaXNwbGF5Q3Vyc29yUHJvY1B0cikoCgog ICAgICAgIFNjcmVlblB0ciAsCiAgICAgICAgQ3Vyc29yUHRyCgopOwoKdHlwZWRlZiBCb29sICgq IFJlYWxpemVDdXJzb3JQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyICwKICAgICAgICBDdXJz b3JQdHIKCik7Cgp0eXBlZGVmIEJvb2wgKCogVW5yZWFsaXplQ3Vyc29yUHJvY1B0cikoCgogICAg ICAgIFNjcmVlblB0ciAsCiAgICAgICAgQ3Vyc29yUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIFJl Y29sb3JDdXJzb3JQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyICwKICAgICAgICBDdXJzb3JQ dHIgLAogICAgICAgIEJvb2wKCik7Cgp0eXBlZGVmIEJvb2wgKCogU2V0Q3Vyc29yUG9zaXRpb25Q cm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIGludCAs CiAgICAgICAgQm9vbAoKKTsKCnR5cGVkZWYgQm9vbCAoKiBDcmVhdGVHQ1Byb2NQdHIpKAoKICAg ICAgICBHQ1B0cgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBDcmVhdGVDb2xvcm1hcFByb2NQdHIpKAoK ICAgICAgICBDb2xvcm1hcFB0cgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBEZXN0cm95Q29sb3JtYXBQ cm9jUHRyKSgKCiAgICAgICAgQ29sb3JtYXBQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogSW5zdGFs bENvbG9ybWFwUHJvY1B0cikoCgogICAgICAgIENvbG9ybWFwUHRyCgopOwoKdHlwZWRlZiB2b2lk ICgqIFVuaW5zdGFsbENvbG9ybWFwUHJvY1B0cikoCgogICAgICAgIENvbG9ybWFwUHRyCgopOwoK dHlwZWRlZiBpbnQgKCogTGlzdEluc3RhbGxlZENvbG9ybWFwc1Byb2NQdHIpICgKCiAgICAgICAg U2NyZWVuUHRyICwKICAgICAgICBYSUQqCgopOwoKdHlwZWRlZiB2b2lkICgqIFN0b3JlQ29sb3Jz UHJvY1B0cikoCgogICAgICAgIENvbG9ybWFwUHRyICwKICAgICAgICBpbnQgLAogICAgICAgIHhD b2xvckl0ZW0gKgoKKTsKCnR5cGVkZWYgdm9pZCAoKiBSZXNvbHZlQ29sb3JQcm9jUHRyKSgKCiAg ICAgICAgdW5zaWduZWQgc2hvcnQqICwKICAgICAgICB1bnNpZ25lZCBzaG9ydCogLAogICAgICAg IHVuc2lnbmVkIHNob3J0KiAsCiAgICAgICAgVmlzdWFsUHRyCgopOwojIDYwNyAiLi4vLi4vLi4v Li4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5pbnRzdHIuaCIKdHlwZWRlZiBS ZWdpb25QdHIgKCogQml0bWFwVG9SZWdpb25Qcm9jUHRyKSgKCiAgICAgICAgUGl4bWFwUHRyCgop OwojIDYyNSAiLi4vLi4vLi4vLi4vLi4vLi4vcHJvZ3JhbXMvWHNlcnZlci9pbmNsdWRlL3Njcm5p bnRzdHIuaCIKdHlwZWRlZiB2b2lkICgqIFNlbmRHcmFwaGljc0V4cG9zZVByb2NQdHIpKAoKICAg ICAgICBDbGllbnRQdHIgLAogICAgICAgIFJlZ2lvblB0ciAsCiAgICAgICAgWElEICwKICAgICAg ICBpbnQgLAogICAgICAgIGludAoKKTsKCnR5cGVkZWYgdm9pZCAoKiBTY3JlZW5CbG9ja0hhbmRs ZXJQcm9jUHRyKSgKCiAgICAgICAgaW50ICwKICAgICAgICBwb2ludGVyICwKICAgICAgICBwb2lu dGVyICwKICAgICAgICBwb2ludGVyCgopOwoKdHlwZWRlZiB2b2lkICgqIFNjcmVlbldha2V1cEhh bmRsZXJQcm9jUHRyKSgKCiAgICAgICAgIGludCAsCiAgICAgICAgIHBvaW50ZXIgLAogICAgICAg ICB1bnNpZ25lZCBsb25nICwKICAgICAgICAgcG9pbnRlcgoKKTsKCnR5cGVkZWYgQm9vbCAoKiBD cmVhdGVTY3JlZW5SZXNvdXJjZXNQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyCgopOwoKdHlw ZWRlZiBCb29sICgqIE1vZGlmeVBpeG1hcEhlYWRlclByb2NQdHIpKAoKICAgICAgICBQaXhtYXBQ dHIgLAogICAgICAgIGludCAsCiAgICAgICAgaW50ICwKICAgICAgICBpbnQgLAogICAgICAgIGlu dCAsCiAgICAgICAgaW50ICwKICAgICAgICBwb2ludGVyCgopOwoKdHlwZWRlZiBQaXhtYXBQdHIg KCogR2V0V2luZG93UGl4bWFwUHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVk ZWYgdm9pZCAoKiBTZXRXaW5kb3dQaXhtYXBQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwK ICAgICAgICBQaXhtYXBQdHIKCik7Cgp0eXBlZGVmIFBpeG1hcFB0ciAoKiBHZXRTY3JlZW5QaXht YXBQcm9jUHRyKSgKCiAgICAgICAgU2NyZWVuUHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIFNldFNj cmVlblBpeG1hcFByb2NQdHIpKAoKICAgICAgICBQaXhtYXBQdHIKCik7Cgp0eXBlZGVmIHZvaWQg KCogTWFya1dpbmRvd1Byb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIEJv b2wgKCogTWFya092ZXJsYXBwZWRXaW5kb3dzUHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAs CiAgICAgICAgV2luZG93UHRyICwKICAgICAgICBXaW5kb3dQdHIgKgoKKTsKCnR5cGVkZWYgQm9v bCAoKiBDaGFuZ2VTYXZlVW5kZXJQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyICwKICAgICAg ICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogUG9zdENoYW5nZVNhdmVVbmRlclByb2NQ dHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFdpbmRvd1B0cgoKKTsKCnR5cGVkZWYg dm9pZCAoKiBNb3ZlV2luZG93UHJvY1B0cikoCgogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAg aW50ICwKICAgICAgICBpbnQgLAogICAgICAgIFdpbmRvd1B0ciAsCiAgICAgICAgVlRLaW5kCgop OwoKdHlwZWRlZiB2b2lkICgqIFJlc2l6ZVdpbmRvd1Byb2NQdHIpKAoKICAgIFdpbmRvd1B0ciAs CiAgICBpbnQgLAogICAgaW50ICwKICAgIHVuc2lnbmVkIGludCAsCiAgICB1bnNpZ25lZCBpbnQg LAogICAgV2luZG93UHRyCgopOwoKdHlwZWRlZiBXaW5kb3dQdHIgKCogR2V0TGF5ZXJXaW5kb3dQ cm9jUHRyKSgKCiAgICBXaW5kb3dQdHIKCik7Cgp0eXBlZGVmIHZvaWQgKCogSGFuZGxlRXhwb3N1 cmVzUHJvY1B0cikoCgogICAgV2luZG93UHRyCgopOwoKdHlwZWRlZiB2b2lkICgqIFJlcGFyZW50 V2luZG93UHJvY1B0cikoCgogICAgV2luZG93UHRyICwKICAgIFdpbmRvd1B0cgoKKTsKCgp0eXBl ZGVmIHZvaWQgKCogU2V0U2hhcGVQcm9jUHRyKSgKCiAgICAgICAgV2luZG93UHRyCgopOwoKCnR5 cGVkZWYgdm9pZCAoKiBDaGFuZ2VCb3JkZXJXaWR0aFByb2NQdHIpKAoKICAgICAgICBXaW5kb3dQ dHIgLAogICAgICAgIHVuc2lnbmVkIGludAoKKTsKCnR5cGVkZWYgdm9pZCAoKiBNYXJrVW5yZWFs aXplZFdpbmRvd1Byb2NQdHIpKAoKICAgICAgICBXaW5kb3dQdHIgLAogICAgICAgIFdpbmRvd1B0 ciAsCiAgICAgICAgQm9vbAoKKTsKCnR5cGVkZWYgc3RydWN0IF9TY3JlZW4gewogICAgaW50IG15 TnVtOwogICAgQVRPTSBpZDsKICAgIHNob3J0IHdpZHRoLCBoZWlnaHQ7CiAgICBzaG9ydCBtbVdp ZHRoLCBtbUhlaWdodDsKICAgIHNob3J0IG51bURlcHRoczsKICAgIHVuc2lnbmVkIGNoYXIgcm9v dERlcHRoOwogICAgRGVwdGhQdHIgYWxsb3dlZERlcHRoczsKICAgIHVuc2lnbmVkIGxvbmcgcm9v dFZpc3VhbDsKICAgIHVuc2lnbmVkIGxvbmcgZGVmQ29sb3JtYXA7CiAgICBzaG9ydCBtaW5JbnN0 YWxsZWRDbWFwcywgbWF4SW5zdGFsbGVkQ21hcHM7CiAgICBjaGFyIGJhY2tpbmdTdG9yZVN1cHBv cnQsIHNhdmVVbmRlclN1cHBvcnQ7CiAgICB1bnNpZ25lZCBsb25nIHdoaXRlUGl4ZWwsIGJsYWNr UGl4ZWw7CiAgICB1bnNpZ25lZCBsb25nIHJnZjsKICAgIEdDUHRyIEdDcGVyRGVwdGhbOCArMV07 CgoKCgoKCgogICAgUGl4bWFwUHRyIFBpeG1hcFBlckRlcHRoWzFdOwogICAgcG9pbnRlciBkZXZQ cml2YXRlOwogICAgc2hvcnQgbnVtVmlzdWFsczsKICAgIFZpc3VhbFB0ciB2aXN1YWxzOwogICAg aW50IFdpbmRvd1ByaXZhdGVMZW47CiAgICB1bnNpZ25lZCAqV2luZG93UHJpdmF0ZVNpemVzOwog ICAgdW5zaWduZWQgdG90YWxXaW5kb3dTaXplOwogICAgaW50IEdDUHJpdmF0ZUxlbjsKICAgIHVu c2lnbmVkICpHQ1ByaXZhdGVTaXplczsKICAgIHVuc2lnbmVkIHRvdGFsR0NTaXplOwoKCgogICAg Q2xvc2VTY3JlZW5Qcm9jUHRyIENsb3NlU2NyZWVuOwogICAgUXVlcnlCZXN0U2l6ZVByb2NQdHIg UXVlcnlCZXN0U2l6ZTsKICAgIFNhdmVTY3JlZW5Qcm9jUHRyIFNhdmVTY3JlZW47CiAgICBHZXRJ bWFnZVByb2NQdHIgR2V0SW1hZ2U7CiAgICBHZXRTcGFuc1Byb2NQdHIgR2V0U3BhbnM7CiAgICBQ b2ludGVyTm9uSW50ZXJlc3RCb3hQcm9jUHRyIFBvaW50ZXJOb25JbnRlcmVzdEJveDsKICAgIFNv dXJjZVZhbGlkYXRlUHJvY1B0ciBTb3VyY2VWYWxpZGF0ZTsKCgoKICAgIENyZWF0ZVdpbmRvd1By b2NQdHIgQ3JlYXRlV2luZG93OwogICAgRGVzdHJveVdpbmRvd1Byb2NQdHIgRGVzdHJveVdpbmRv dzsKICAgIFBvc2l0aW9uV2luZG93UHJvY1B0ciBQb3NpdGlvbldpbmRvdzsKICAgIENoYW5nZVdp bmRvd0F0dHJpYnV0ZXNQcm9jUHRyIENoYW5nZVdpbmRvd0F0dHJpYnV0ZXM7CiAgICBSZWFsaXpl V2luZG93UHJvY1B0ciBSZWFsaXplV2luZG93OwogICAgVW5yZWFsaXplV2luZG93UHJvY1B0ciBV bnJlYWxpemVXaW5kb3c7CiAgICBWYWxpZGF0ZVRyZWVQcm9jUHRyIFZhbGlkYXRlVHJlZTsKICAg IFBvc3RWYWxpZGF0ZVRyZWVQcm9jUHRyIFBvc3RWYWxpZGF0ZVRyZWU7CiAgICBXaW5kb3dFeHBv c3VyZXNQcm9jUHRyIFdpbmRvd0V4cG9zdXJlczsKICAgIFBhaW50V2luZG93QmFja2dyb3VuZFBy b2NQdHIgUGFpbnRXaW5kb3dCYWNrZ3JvdW5kOwogICAgUGFpbnRXaW5kb3dCb3JkZXJQcm9jUHRy IFBhaW50V2luZG93Qm9yZGVyOwogICAgQ29weVdpbmRvd1Byb2NQdHIgQ29weVdpbmRvdzsKICAg IENsZWFyVG9CYWNrZ3JvdW5kUHJvY1B0ciBDbGVhclRvQmFja2dyb3VuZDsKICAgIENsaXBOb3Rp ZnlQcm9jUHRyIENsaXBOb3RpZnk7CiAgICBSZXN0YWNrV2luZG93UHJvY1B0ciBSZXN0YWNrV2lu ZG93OwoKCgogICAgQ3JlYXRlUGl4bWFwUHJvY1B0ciBDcmVhdGVQaXhtYXA7CiAgICBEZXN0cm95 UGl4bWFwUHJvY1B0ciBEZXN0cm95UGl4bWFwOwoKCgogICAgU2F2ZURvb21lZEFyZWFzUHJvY1B0 ciBTYXZlRG9vbWVkQXJlYXM7CiAgICBSZXN0b3JlQXJlYXNQcm9jUHRyIFJlc3RvcmVBcmVhczsK ICAgIEV4cG9zZUNvcHlQcm9jUHRyIEV4cG9zZUNvcHk7CiAgICBUcmFuc2xhdGVCYWNraW5nU3Rv cmVQcm9jUHRyIFRyYW5zbGF0ZUJhY2tpbmdTdG9yZTsKICAgIENsZWFyQmFja2luZ1N0b3JlUHJv Y1B0ciBDbGVhckJhY2tpbmdTdG9yZTsKICAgIERyYXdHdWFyYW50ZWVQcm9jUHRyIERyYXdHdWFy YW50ZWU7CgoKCgogICAgQlNGdW5jUmVjIEJhY2tpbmdTdG9yZUZ1bmNzOwoKCgogICAgUmVhbGl6 ZUZvbnRQcm9jUHRyIFJlYWxpemVGb250OwogICAgVW5yZWFsaXplRm9udFByb2NQdHIgVW5yZWFs aXplRm9udDsKCgoKICAgIENvbnN0cmFpbkN1cnNvclByb2NQdHIgQ29uc3RyYWluQ3Vyc29yOwog ICAgQ3Vyc29yTGltaXRzUHJvY1B0ciBDdXJzb3JMaW1pdHM7CiAgICBEaXNwbGF5Q3Vyc29yUHJv Y1B0ciBEaXNwbGF5Q3Vyc29yOwogICAgUmVhbGl6ZUN1cnNvclByb2NQdHIgUmVhbGl6ZUN1cnNv cjsKICAgIFVucmVhbGl6ZUN1cnNvclByb2NQdHIgVW5yZWFsaXplQ3Vyc29yOwogICAgUmVjb2xv ckN1cnNvclByb2NQdHIgUmVjb2xvckN1cnNvcjsKICAgIFNldEN1cnNvclBvc2l0aW9uUHJvY1B0 ciBTZXRDdXJzb3JQb3NpdGlvbjsKCgoKICAgIENyZWF0ZUdDUHJvY1B0ciBDcmVhdGVHQzsKCgoK ICAgIENyZWF0ZUNvbG9ybWFwUHJvY1B0ciBDcmVhdGVDb2xvcm1hcDsKICAgIERlc3Ryb3lDb2xv cm1hcFByb2NQdHIgRGVzdHJveUNvbG9ybWFwOwogICAgSW5zdGFsbENvbG9ybWFwUHJvY1B0ciBJ bnN0YWxsQ29sb3JtYXA7CiAgICBVbmluc3RhbGxDb2xvcm1hcFByb2NQdHIgVW5pbnN0YWxsQ29s b3JtYXA7CiAgICBMaXN0SW5zdGFsbGVkQ29sb3JtYXBzUHJvY1B0ciBMaXN0SW5zdGFsbGVkQ29s b3JtYXBzOwogICAgU3RvcmVDb2xvcnNQcm9jUHRyIFN0b3JlQ29sb3JzOwogICAgUmVzb2x2ZUNv bG9yUHJvY1B0ciBSZXNvbHZlQ29sb3I7CiMgOTIwICIuLi8uLi8uLi8uLi8uLi8uLi9wcm9ncmFt cy9Yc2VydmVyL2luY2x1ZGUvc2NybmludHN0ci5oIgogICAgQml0bWFwVG9SZWdpb25Qcm9jUHRy IEJpdG1hcFRvUmVnaW9uOwoKCgogICAgU2VuZEdyYXBoaWNzRXhwb3NlUHJvY1B0ciBTZW5kR3Jh cGhpY3NFeHBvc2U7CgoKCiAgICBTY3JlZW5CbG9ja0hhbmRsZXJQcm9jUHRyIEJsb2NrSGFuZGxl cjsKICAgIFNjcmVlbldha2V1cEhhbmRsZXJQcm9jUHRyIFdha2V1cEhhbmRsZXI7CgogICAgcG9p bnRlciBibG9ja0RhdGE7CiAgICBwb2ludGVyIHdha2V1cERhdGE7CgoKICAgIERldlVuaW9uICpk ZXZQcml2YXRlczsKCiAgICBDcmVhdGVTY3JlZW5SZXNvdXJjZXNQcm9jUHRyIENyZWF0ZVNjcmVl blJlc291cmNlczsKICAgIE1vZGlmeVBpeG1hcEhlYWRlclByb2NQdHIgTW9kaWZ5UGl4bWFwSGVh ZGVyOwoKICAgIEdldFdpbmRvd1BpeG1hcFByb2NQdHIgR2V0V2luZG93UGl4bWFwOwogICAgU2V0 V2luZG93UGl4bWFwUHJvY1B0ciBTZXRXaW5kb3dQaXhtYXA7CiAgICBHZXRTY3JlZW5QaXhtYXBQ cm9jUHRyIEdldFNjcmVlblBpeG1hcDsKICAgIFNldFNjcmVlblBpeG1hcFByb2NQdHIgU2V0U2Ny ZWVuUGl4bWFwOwoKICAgIFBpeG1hcFB0ciBwU2NyYXRjaFBpeG1hcDsKCgogICAgaW50IFBpeG1h cFByaXZhdGVMZW47CiAgICB1bnNpZ25lZCBpbnQgKlBpeG1hcFByaXZhdGVTaXplczsKICAgIHVu c2lnbmVkIGludCB0b3RhbFBpeG1hcFNpemU7CgoKICAgIE1hcmtXaW5kb3dQcm9jUHRyIE1hcmtX aW5kb3c7CiAgICBNYXJrT3ZlcmxhcHBlZFdpbmRvd3NQcm9jUHRyIE1hcmtPdmVybGFwcGVkV2lu ZG93czsKICAgIENoYW5nZVNhdmVVbmRlclByb2NQdHIgQ2hhbmdlU2F2ZVVuZGVyOwogICAgUG9z dENoYW5nZVNhdmVVbmRlclByb2NQdHIgUG9zdENoYW5nZVNhdmVVbmRlcjsKICAgIE1vdmVXaW5k b3dQcm9jUHRyIE1vdmVXaW5kb3c7CiAgICBSZXNpemVXaW5kb3dQcm9jUHRyIFJlc2l6ZVdpbmRv dzsKICAgIEdldExheWVyV2luZG93UHJvY1B0ciBHZXRMYXllcldpbmRvdzsKICAgIEhhbmRsZUV4 cG9zdXJlc1Byb2NQdHIgSGFuZGxlRXhwb3N1cmVzOwogICAgUmVwYXJlbnRXaW5kb3dQcm9jUHRy IFJlcGFyZW50V2luZG93OwoKCiAgICBTZXRTaGFwZVByb2NQdHIgU2V0U2hhcGU7CgoKICAgIENo YW5nZUJvcmRlcldpZHRoUHJvY1B0ciBDaGFuZ2VCb3JkZXJXaWR0aDsKICAgIE1hcmtVbnJlYWxp emVkV2luZG93UHJvY1B0ciBNYXJrVW5yZWFsaXplZFdpbmRvdzsKCn0gU2NyZWVuUmVjOwoKdHlw ZWRlZiBzdHJ1Y3QgX1NjcmVlbkluZm8gewogICAgaW50IGltYWdlQnl0ZU9yZGVyOwogICAgaW50 IGJpdG1hcFNjYW5saW5lVW5pdDsKICAgIGludCBiaXRtYXBTY2FubGluZVBhZDsKICAgIGludCBi aXRtYXBCaXRPcmRlcjsKICAgIGludCBudW1QaXhtYXBGb3JtYXRzOwogICAgUGl4bWFwRm9ybWF0 UmVjCiAgICAgICAgICAgICAgICBmb3JtYXRzWzhdOwogICAgaW50IGFycmF5U2l6ZTsKICAgIGlu dCBudW1TY3JlZW5zOwogICAgU2NyZWVuUHRyIHNjcmVlbnNbMTZdOwogICAgaW50IG51bVZpZGVv U2NyZWVuczsKfSBTY3JlZW5JbmZvOwoKZXh0ZXJuIFNjcmVlbkluZm8gc2NyZWVuSW5mbzsKCmV4 dGVybiB2b2lkIEluaXRPdXRwdXQoCgogICAgU2NyZWVuSW5mbyAqICwKICAgIGludCAsCiAgICBj aGFyICoqCgopOwojIDU3ICIuLi9pbmNsdWRlL21pcGV4LmgiIDIKIyA4NyAiLi4vaW5jbHVkZS9t aXBleC5oIgp0eXBlZGVmIHZvaWQgKCpkZXN0cm95VGFibGVUeXBlKSgpOwojIDE0NCAiLi4vaW5j bHVkZS9taXBleC5oIgpleHRlcm4gaW50IFBleEVycm9yQmFzZTsKIyAxNjMgIi4uL2luY2x1ZGUv bWlwZXguaCIKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkRW51bVR5cGVJbmRleCBpbmRleDsK ICAgICAgICBjaGFyICpuYW1lOwp9IG1pRW51bVR5cGU7Cgp0eXBlZGVmIGVudW0gewogICAgICAg IFZJRVdfUkVQX0RZTkFNSUM9MCwKICAgICAgICBNQVJLRVJfQlVORExFX0RZTkFNSUM9MSwKICAg ICAgICBURVhUX0JVTkRMRV9EWU5BTUlDPTIsCiAgICAgICAgTElORV9CVU5ETEVfRFlOQU1JQz0z LAogICAgICAgIElOVEVSSU9SX0JVTkRMRV9EWU5BTUlDPTQsCiAgICAgICAgRURHRV9CVU5ETEVf RFlOQU1JQz01LAogICAgICAgIENPTE9VUl9UQUJMRV9EWU5BTUlDPTYsCiAgICAgICAgUEFUVEVS Tl9UQUJMRV9EWU5BTUlDPTcsCiAgICAgICAgV0tTX1RSQU5TRk9STV9EWU5BTUlDPTgsCiAgICAg ICAgSElHSF9GSUxURVJfRFlOQU1JQz05LAogICAgICAgIElOVklTX0ZJTFRFUl9EWU5BTUlDPTEw LAogICAgICAgIEhMSFNSX01PREVfRFlOQU1JQz0xMSwKICAgICAgICBTVFJfTU9ESUZZX0RZTkFN SUM9MTIsCiAgICAgICAgUE9TVF9TVFJfRFlOQU1JQz0xMywKICAgICAgICBVTlBPU1RfU1RSX0RZ TkFNSUM9MTQsCiAgICAgICAgREVMRVRFX1NUUl9EWU5BTUlDPTE1LAogICAgICAgIFJFRl9NT0RJ RllfRFlOQU1JQz0xNiwKICAgICAgICBCVUZGRVJfTU9ESUZZX0RZTkFNSUM9MTcsCiAgICAgICAg TElHSFRfVEFCTEVfRFlOQU1JQz0xOCwKICAgICAgICBERVBUSF9DVUVfRFlOQU1JQz0xOSwKICAg ICAgICBDT0xPVVJfQVBQUk9YX1RBQkxFX0RZTkFNSUM9MjAsCiAgICAgICAgTUFYX0RZTkFNSUMg PSAyMQp9IGRkRHluYW1pYzsKIyA1NCAiLi4vaW5jbHVkZS9taUxVVC5oIiAyCgoKCgp0eXBlZGVm IHN0cnVjdCB7CiAgICBkZEVudW1UeXBlSW5kZXggbGluZVR5cGU7CiAgICBkZEVudW1UeXBlSW5k ZXggcG9seWxpbmVJbnRlcnA7CiAgICBkZEN1cnZlQXBwcm94IGN1cnZlQXBwcm94OwogICAgZGRG TE9BVCBsaW5lV2lkdGg7CiAgICBkZENvbG91clNwZWNpZmllciBsaW5lQ29sb3VyOwp9IGRkTGlu ZUJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRFbnVtVHlwZUluZGV4IG1hcmtl clR5cGU7CiAgICBkZFNIT1JUIHVudXNlZDsKICAgIGRkRkxPQVQgbWFya2VyU2NhbGU7CiAgICBk ZENvbG91clNwZWNpZmllciBtYXJrZXJDb2xvdXI7Cn0gZGRNYXJrZXJCdW5kbGVFbnRyeTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIGRkVVNIT1JUIHRleHRGb250SW5kZXg7CiAgICBkZFVTSE9SVCB0 ZXh0UHJlY2lzaW9uOwogICAgZGRGTE9BVCBjaGFyRXhwYW5zaW9uOwogICAgZGRGTE9BVCBjaGFy U3BhY2luZzsKICAgIGRkQ29sb3VyU3BlY2lmaWVyIHRleHRDb2xvdXI7Cn0gZGRUZXh0QnVuZGxl RW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEVudW1UeXBlSW5kZXggaW50ZXJpb3JTdHls ZTsKICAgIGRkU0hPUlQgaW50ZXJpb3JTdHlsZUluZGV4OwogICAgZGRFbnVtVHlwZUluZGV4IHJl ZmxlY3Rpb25Nb2RlbDsKICAgIGRkRW51bVR5cGVJbmRleCBzdXJmYWNlSW50ZXJwOwogICAgZGRF bnVtVHlwZUluZGV4IGJmSW50ZXJpb3JTdHlsZTsKICAgIGRkU0hPUlQgYmZJbnRlcmlvclN0eWxl SW5kZXg7CiAgICBkZEVudW1UeXBlSW5kZXggYmZSZWZsZWN0aW9uTW9kZWw7CiAgICBkZEVudW1U eXBlSW5kZXggYmZTdXJmYWNlSW50ZXJwOwogICAgZGRTdXJmYWNlQXBwcm94IHN1cmZhY2VBcHBy b3g7CiAgICBkZENvbG91clNwZWNpZmllciBzdXJmYWNlQ29sb3VyOwogICAgZGRSZWZsZWN0aW9u QXR0ciByZWZsZWN0aW9uQXR0cjsKICAgIGRkQ29sb3VyU3BlY2lmaWVyIGJmU3VyZmFjZUNvbG91 cjsKICAgIGRkUmVmbGVjdGlvbkF0dHIgYmZSZWZsZWN0aW9uQXR0cjsKfSBkZEludGVyaW9yQnVu ZGxlRW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZFN3aXRjaCBlZGdlczsKICAgIGRkVUNI QVIgdW51c2VkOwogICAgZGRFbnVtVHlwZUluZGV4IGVkZ2VUeXBlOwogICAgZGRGTE9BVCBlZGdl V2lkdGg7CiAgICBkZENvbG91clNwZWNpZmllciBlZGdlQ29sb3VyOwp9IGRkRWRnZUJ1bmRsZUVu dHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRTSE9SVCBjb2xvdXJUeXBlOwogICAgZGRVU0hP UlQgbnVteDsKICAgIGRkVVNIT1JUIG51bXk7CiAgICBkZFVTSE9SVCB1bnVzZWQ7CgogICAgdW5p b24gewogICAgICAgIGRkSW5kZXhlZENvbG91ciAqaW5kZXhlZDsKICAgICAgICBkZFJnYjhDb2xv dXIgKnJnYjg7CiAgICAgICAgZGRSZ2IxNkNvbG91ciAqcmdiMTY7CiAgICAgICAgZGRSZ2JGbG9h dENvbG91ciAqcmdiRmxvYXQ7CiAgICAgICAgZGRIc3ZDb2xvdXIgKmhzdkZsb2F0OwogICAgICAg IGRkSGxzQ29sb3VyICpobHNGbG9hdDsKICAgICAgICBkZENpZUNvbG91ciAqY2llRmxvYXQ7CiAg IH0gY29sb3VyczsKfSBkZFBhdHRlcm5FbnRyeTsKIyAxMjkgIi4uL2luY2x1ZGUvbWlMVVQuaCIK dHlwZWRlZiBzdHJ1Y3QgewogICAgZGRVTE9ORyBudW1Gb250czsKICAgIGRpRm9udEhhbmRsZSBm b250c1sxNl07Cn0gZGRUZXh0Rm9udEVudHJ5OwoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEVu dW1UeXBlSW5kZXggbGlnaHRUeXBlOwogICAgZGRTSE9SVCB1bnVzZWQ7CiAgICBkZFZlY3RvcjNE IGRpcmVjdGlvbjsKICAgIGRkQ29vcmQzRCBwb2ludDsKICAgIGRkRkxPQVQgY29uY2VudHJhdGlv bjsKICAgIGRkRkxPQVQgc3ByZWFkQW5nbGU7CiAgICBkZEZMT0FUIGF0dGVudWF0aW9uMTsKICAg IGRkRkxPQVQgYXR0ZW51YXRpb24yOwogICAgZGRDb2xvdXJTcGVjaWZpZXIgbGlnaHRDb2xvdXI7 Cn0gZGRMaWdodEVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgZGRVQ0hBUiBtb2RlOwogICAg ZGRVQ0hBUiB1bnVzZWQ7CiAgICBkZFVTSE9SVCB1bnVzZWQyOwogICAgZGRGTE9BVCBmcm9udFBs YW5lOwogICAgZGRGTE9BVCBiYWNrUGxhbmU7CiAgICBkZEZMT0FUIGZyb250U2NhbGluZzsKICAg IGRkRkxPQVQgYmFja1NjYWxpbmc7CiAgICBkZENvbG91clNwZWNpZmllciBkZXB0aEN1ZUNvbG91 cjsKfSBkZERlcHRoQ3VlRW50cnk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEVudW1UeXBlSW5k ZXggYXBwcm94VHlwZTsKICAgIGRkRW51bVR5cGVJbmRleCBhcHByb3hNb2RlbDsKICAgIGRkVVNI T1JUIG1heDE7CiAgICBkZFVTSE9SVCBtYXgyOwogICAgZGRVU0hPUlQgbWF4MzsKICAgIGRkVUNI QVIgZGl0aGVyOwogICAgZGRVQ0hBUiB1bnVzZWQ7CiAgICBkZFVMT05HIG11bHQxOwogICAgZGRV TE9ORyBtdWx0MjsKICAgIGRkVUxPTkcgbXVsdDM7CiAgICBkZEZMT0FUIHdlaWdodDE7CiAgICBk ZEZMT0FUIHdlaWdodDI7CiAgICBkZEZMT0FUIHdlaWdodDM7CiAgICBkZFVMT05HIGJhc2VQaXhl bDsKfSBkZENvbG91ckFwcHJveEVudHJ5OwojIDE4NyAiLi4vaW5jbHVkZS9taUxVVC5oIgp0eXBl ZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVU0hPUlQgc3RhdHVzOwogICAgICAgIGRkVGFibGVJbmRl eCBpbmRleDsKfSBtaVRhYmxlRW50cnk7Cgp0eXBlZGVmIHN0cnVjdCBfbWlMaW5lQnVuZGxlRW50 cnkgewogICAgICAgIG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZExpbmVCdW5k bGVFbnRyeSBlbnRyeTsKICAgICAgICBkZExpbmVCdW5kbGVFbnRyeSByZWFsX2VudHJ5Owp9IG1p TGluZUJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pTWFya2VyQnVuZGxlRW50cnkgewog ICAgICAgIG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZE1hcmtlckJ1bmRsZUVu dHJ5IGVudHJ5OwogICAgICAgIGRkTWFya2VyQnVuZGxlRW50cnkgcmVhbF9lbnRyeTsKfSBtaU1h cmtlckJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pVGV4dEJ1bmRsZUVudHJ5IHsKICAg ICAgICBtaVRhYmxlRW50cnkgZW50cnlfaW5mbzsKCiAgICAgICAgZGRUZXh0QnVuZGxlRW50cnkg ZW50cnk7CiAgICAgICAgZGRUZXh0QnVuZGxlRW50cnkgcmVhbF9lbnRyeTsKfSBtaVRleHRCdW5k bGVFbnRyeTsKCnR5cGVkZWYgc3RydWN0IF9taUludGVyaW9yQnVuZGxlRW50cnkgewogICAgICAg IG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZEludGVyaW9yQnVuZGxlRW50cnkg ZW50cnk7CiAgICAgICAgZGRJbnRlcmlvckJ1bmRsZUVudHJ5IHJlYWxfZW50cnk7Cn0gbWlJbnRl cmlvckJ1bmRsZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pRWRnZUJ1bmRsZUVudHJ5IHsKICAg ICAgICBtaVRhYmxlRW50cnkgZW50cnlfaW5mbzsKCiAgICAgICAgZGRFZGdlQnVuZGxlRW50cnkg ZW50cnk7CiAgICAgICAgZGRFZGdlQnVuZGxlRW50cnkgcmVhbF9lbnRyeTsKfSBtaUVkZ2VCdW5k bGVFbnRyeTsKCnR5cGVkZWYgc3RydWN0IF9taVBhdHRlcm5FbnRyeSB7CiAgICAgICAgbWlUYWJs ZUVudHJ5IGVudHJ5X2luZm87CgogICAgICAgIGRkUGF0dGVybkVudHJ5IGVudHJ5Owp9IG1pUGF0 dGVybkVudHJ5OwoKCnR5cGVkZWYgc3RydWN0IF9taVRleHRGb250RW50cnkgewogICAgICAgIG1p VGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZFRleHRGb250RW50cnkgZW50cnk7Cn0g bWlUZXh0Rm9udEVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pQ29sb3VyRW50cnkgewogICAgICAg IG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZENvbG91clNwZWNpZmllciBlbnRy eTsKfSBtaUNvbG91ckVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pVmlld0VudHJ5IHsKICAgICAg ICBtaVRhYmxlRW50cnkgZW50cnlfaW5mbzsKCiAgICAgICAgZGRWaWV3RW50cnkgZW50cnk7CiAg ICAgICAgZGRGTE9BVCB2b21bNF1bNF07CiAgICAgICAgZGRGTE9BVCB2b21faW52WzRdWzRdOwog ICAgICAgIGRkQk9PTCBpbnZfZmxhZzsKfSBtaVZpZXdFbnRyeTsKCnR5cGVkZWYgc3RydWN0IF9t aUxpZ2h0RW50cnkgewogICAgICAgIG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBk ZExpZ2h0RW50cnkgZW50cnk7CiAgICAgICAgZG91YmxlIGNvc1NwcmVhZEFuZ2xlOwp9IG1pTGln aHRFbnRyeTsKCnR5cGVkZWYgc3RydWN0IF9taURlcHRoQ3VlRW50cnkgewogICAgICAgIG1pVGFi bGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZERlcHRoQ3VlRW50cnkgZW50cnk7Cn0gbWlE ZXB0aEN1ZUVudHJ5OwoKdHlwZWRlZiBzdHJ1Y3QgX21pQ29sb3VyQXBwcm94RW50cnkgewogICAg ICAgIG1pVGFibGVFbnRyeSBlbnRyeV9pbmZvOwoKICAgICAgICBkZENvbG91ckFwcHJveEVudHJ5 IGVudHJ5Owp9IG1pQ29sb3VyQXBwcm94RW50cnk7Cgp0eXBlZGVmIGRkcGV4NDNydG4gKCptaU9w c1RhYmxlVHlwZSkoKTsKCnR5cGVkZWYgc3RydWN0IF9taUxVVEhlYWRlciB7CgoKICAgICAgICBk ZERyYXdhYmxlSW5mbyBkcmF3RXhhbXBsZTsKICAgICAgICBkZFNIT1JUIGRyYXdUeXBlOwoKICAg ICAgICBkZFVTSE9SVCBzdGFydEluZGV4OwogICAgICAgIGRkVVNIT1JUIGRlZmF1bHRJbmRleDsK ICAgICAgICBkZFVTSE9SVCBudW1EZWZpbmVkOwogICAgICAgIGRkVGFibGVJbmZvIHRhYmxlSW5m bzsKCiAgICAgICAgbGlzdG9mT2JqICp3a3NSZWZMaXN0OwogICAgICAgIGxpc3RvZk9iaiAqcmVu ZFJlZkxpc3Q7CiAgICAgICAgZGRCT09MIGZyZWVGbGFnOwoKCgoKCgogICAgICAgIHVuaW9uIHsK ICAgICAgICAgICAgICAgIG1pTGluZUJ1bmRsZUVudHJ5ICpsaW5lOwogICAgICAgICAgICAgICAg bWlNYXJrZXJCdW5kbGVFbnRyeSAqbWFya2VyOwogICAgICAgICAgICAgICAgbWlUZXh0QnVuZGxl RW50cnkgKnRleHQ7CiAgICAgICAgICAgICAgICBtaUludGVyaW9yQnVuZGxlRW50cnkgKmludGVy aW9yOwogICAgICAgICAgICAgICAgbWlFZGdlQnVuZGxlRW50cnkgKmVkZ2U7CiAgICAgICAgICAg ICAgICBtaVBhdHRlcm5FbnRyeSAqcGF0dGVybjsKICAgICAgICAgICAgICAgIG1pVGV4dEZvbnRF bnRyeSAqZm9udDsKICAgICAgICAgICAgICAgIG1pQ29sb3VyRW50cnkgKmNvbG91cjsKICAgICAg ICAgICAgICAgIG1pVmlld0VudHJ5ICp2aWV3OwogICAgICAgICAgICAgICAgbWlMaWdodEVudHJ5 ICpsaWdodDsKICAgICAgICAgICAgICAgIG1pRGVwdGhDdWVFbnRyeSAqZGVwdGhDdWU7CiAgICAg ICAgICAgICAgICBtaUNvbG91ckFwcHJveEVudHJ5ICpjb2xvdXJBcHByb3g7CiAgICAgICAgIH0g cGx1dDsKIyAzMzYgIi4uL2luY2x1ZGUvbWlMVVQuaCIKICAgICAgICBtaU9wc1RhYmxlVHlwZSBv cHNbKDEzIC0gNCArIDEgKyA2KV07Cn0gbWlMVVRIZWFkZXI7CiMgNjEgIi4uL2luY2x1ZGUvbWlS ZW5kZXIuaCIgMgoKCgoKCgp0eXBlZGVmIHN0cnVjdCBfbWlMaXN0SGVhZGVyIHsKICAgICAgICBk ZFBvaW50VHlwZSB0eXBlOwogICAgICAgIGRkVVNIT1JUIGZsYWdzOwogICAgICAgIGRkVUxPTkcg bnVtTGlzdHM7CiAgICAgICAgZGRVTE9ORyBtYXhMaXN0czsKICAgICAgICBsaXN0b2ZkZFBvaW50 ICpkZExpc3Q7Cn0gbWlMaXN0SGVhZGVyOwoKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX21pRHluYW1p Y0REQ29udGV4dCB7CiAgICAgICAgZGRQQ0F0dHIgKnBQQ0F0dHI7CiAgICAgICAgZGROYW1lUGll Y2UgY3VycmVudE5hbWVzWygoMjU1IC0gMCArMSkgLyAoc2l6ZW9mKGRkTmFtZVBpZWNlKSAqIDgp KV07CiAgICAgICAgc3RydWN0IF9taUR5bmFtaWNERENvbnRleHQgKm5leHQ7CiAgICAgICAgZGRG TE9BVCBtY190b193Y194Zm9ybVs0XVs0XTsKICAgICAgICBkZEZMT0FUIHdjX3RvX25wY194Zm9y bVs0XVs0XTsKICAgICAgICBkZEZMT0FUIG1jX3RvX25wY194Zm9ybVs0XVs0XTsKICAgICAgICBk ZEZMT0FUIHdjX3RvX2NjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgY2NfdG9fZGNfeGZv cm1bNF1bNF07CiAgICAgICAgZGRGTE9BVCBtY190b19jY194Zm9ybVs0XVs0XTsKICAgICAgICBk ZEZMT0FUIG1jX3RvX2RjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgbnBjX3RvX2NjX3hm b3JtWzRdWzRdOwogICAgICAgIGRkVVNIT1JUIGNsaXBGbGFnczsKICAgICAgICBkZFVTSE9SVCBm aWx0ZXJfZmxhZ3M7CiAgICAgICAgZGRVU0hPUlQgZG9fcHJpbXM7Cn0gbWlEeW5hbWljRERDb250 ZXh0OwojIDE2MiAiLi4vaW5jbHVkZS9taVJlbmRlci5oIgp0eXBlZGVmIGRkcGV4MnJ0biAoKlJl bmRUYWJsZVR5cGUpKCk7CiMgMTcxICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiCnR5cGVkZWYgc3Ry dWN0IF9taUREQ29udGV4dFJlbmRBdHRycyB7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IG1hcmtl clR5cGU7CiAgICAgICAgZGRGTE9BVCBtYXJrZXJTY2FsZTsKICAgICAgICBkZENvbG91clNwZWNp ZmllciBtYXJrZXJDb2xvdXI7CiAgICAgICAgZGRVU0hPUlQgdGV4dEZvbnQ7CiAgICAgICAgZGRV U0hPUlQgdGV4dFByZWNpc2lvbjsKICAgICAgICBkZEZMT0FUIGNoYXJFeHBhbnNpb247CiAgICAg ICAgZGRGTE9BVCBjaGFyU3BhY2luZzsKICAgICAgICBkZENvbG91clNwZWNpZmllciB0ZXh0Q29s b3VyOwogICAgICAgIGRkRkxPQVQgY2hhckhlaWdodDsKICAgICAgICBkZFZlY3RvcjJEIGNoYXJV cDsKICAgICAgICBkZFVTSE9SVCB0ZXh0UGF0aDsKICAgICAgICBkZFRleHRBbGlnbm1lbnREYXRh IHRleHRBbGlnbm1lbnQ7CiAgICAgICAgZGRGTE9BVCBhdGV4dEhlaWdodDsKICAgICAgICBkZFZl Y3RvcjJEIGF0ZXh0VXA7CiAgICAgICAgZGRVU0hPUlQgYXRleHRQYXRoOwogICAgICAgIGRkVGV4 dEFsaWdubWVudERhdGEgYXRleHRBbGlnbm1lbnQ7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGF0 ZXh0U3R5bGU7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGxpbmVUeXBlOwogICAgICAgIGRkRkxP QVQgbGluZVdpZHRoOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIGxpbmVDb2xvdXI7CiAgICAg ICAgZGRDdXJ2ZUFwcHJveCBjdXJ2ZUFwcHJveDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggbGlu ZUludGVycDsKICAgICAgICBkZEVudW1UeXBlSW5kZXggaW50U3R5bGU7CiAgICAgICAgZGRDb2xv dXJTcGVjaWZpZXIgc3VyZmFjZUNvbG91cjsKICAgICAgICBkZFJlZmxlY3Rpb25BdHRyIHJlZmxB dHRyOwogICAgICAgIGRkRW51bVR5cGVJbmRleCByZWZsTW9kZWw7CiAgICAgICAgZGRFbnVtVHlw ZUluZGV4IHN1cmZJbnRlcnA7CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IGJmSW50U3R5bGU7CiAg ICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgYmZTdXJmQ29sb3VyOwogICAgICAgIGRkUmVmbGVjdGlv bkF0dHIgYmZSZWZsQXR0cjsKICAgICAgICBkZEVudW1UeXBlSW5kZXggYmZSZWZsTW9kZWw7CiAg ICAgICAgZGRFbnVtVHlwZUluZGV4IGJmU3VyZkludGVycDsKICAgICAgICBkZFN1cmZhY2VBcHBy b3ggc3VyZkFwcHJveDsKICAgICAgICBkZENvb3JkMkQgcGF0dGVyblNpemU7CiAgICAgICAgZGRD b29yZDNEIHBhdHRlcm5SZWZQdDsKICAgICAgICBkZFZlY3RvcjNEIHBhdHRlcm5SZWZWMTsKICAg ICAgICBkZFZlY3RvcjNEIHBhdHRlcm5SZWZWMjsKICAgICAgICBkZFVTSE9SVCBlZGdlczsKICAg ICAgICBkZEVudW1UeXBlSW5kZXggZWRnZVR5cGU7CiAgICAgICAgZGRGTE9BVCBlZGdlV2lkdGg7 CiAgICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgZWRnZUNvbG91cjsKICAgICAgICBkZFVTSE9SVCBt b2RlbENsaXA7CiAgICAgICAgZGRVTE9ORyBwaWNrSWQ7CiAgICAgICAgZGRVTE9ORyBobGhzclR5 cGU7CiAgICAgICAgZGRDb2xvdXJTcGVjaWZpZXIgYmFja2dyb3VuZENvbG91cjsKICAgICAgICBk ZFVTSE9SVCBjbGVhckk7CiAgICAgICAgZGRVU0hPUlQgY2xlYXJaOwogICAgICAgIGRkVVNIT1JU IGVjaG9Nb2RlOwogICAgICAgIGRkQ29sb3VyU3BlY2lmaWVyIGVjaG9Db2xvdXI7Cn0gbWlERENv bnRleHRSZW5kQXR0cnM7CiMgMjQ5ICIuLi9pbmNsdWRlL21pUmVuZGVyLmgiCnR5cGVkZWYgc3Ry dWN0IF9taUREQ29udGV4dE1pc2MgewogICAgICAgIGRkVUxPTkcgbGlzdEluZGV4OwogICAgICAg IG1pTGlzdEhlYWRlciBsaXN0NERbNF07CiAgICAgICAgbWlMaXN0SGVhZGVyIGxpc3QyRDsKICAg ICAgICBkZFVMT05HIGZhY2V0SW5kZXg7CiAgICAgICAgbGlzdG9mZGRGYWNldCBmYWNldHNbNF07 CiAgICAgICAgZGRGTE9BVCB2aWV3cG9ydF94Zm9ybVs0XVs0XTsKICAgICAgICBkZFVMT05HIGZs YWdzOwogICAgICAgIEdDUHRyIHBQb2x5bGluZUdDOwogICAgICAgIEdDUHRyIHBGaWxsQXJlYUdD OwogICAgICAgIEdDUHRyIHBFZGdlR0M7CiAgICAgICAgR0NQdHIgcFBvbHlNYXJrZXJHQzsKICAg ICAgICBHQ1B0ciBwVGV4dEdDOwogICAgICAgIGRkRkxPQVQgaW52X3RyX21jX3RvX3djX3hmb3Jt WzRdWzRdOwogICAgICAgIGRkRkxPQVQgaW52X3RyX3djX3RvX2NjX3hmb3JtWzRdWzRdOwogICAg ICAgIGRkRkxPQVQgaW52X3RyX21jX3RvX2NjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQg aW52X3RyX2NjX3RvX2RjX3hmb3JtWzRdWzRdOwogICAgICAgIGRkRkxPQVQgaW52X3ZwdF94Zm9y bVs0XVs0XTsKICAgICAgICBkZEZMT0FUIGludl92aWV3X3hmb3JtWzRdWzRdOwogICAgICAgIGxp c3RvZk9iaiAqbXNfTUNWOwoKICAgICAgICBkZENvb3JkNEQgZXllX3B0OwogICAgICAgIGRkQ29s b3VyU3BlY2lmaWVyIGhpZ2hsaWdodF9jb2xvdXI7CiAgICAgICAgZGREZXB0aEN1ZUVudHJ5IGNj X2RjdWVfZW50cnk7Cgp9IG1pRERDb250ZXh0TWlzYzsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg ICBkZEVudW1UeXBlSW5kZXggdHlwZTsKICAgICAgICBkZFVTSE9SVCBzdGF0dXM7CiAgICAgICAg ZGROYW1lUGllY2UgaW5jbHVzaW9uWygoMjU1IC0gMCArMSkgLyAoc2l6ZW9mKGRkTmFtZVBpZWNl KSAqIDgpKV07CiAgICAgICAgZGROYW1lUGllY2UgZXhjbHVzaW9uWygoMjU1IC0gMCArMSkgLyAo c2l6ZW9mKGRkTmFtZVBpZWNlKSAqIDgpKV07CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg ICAgY2hhciBkY19kYXRhX3JlYzsKICAgICAgICAgICAgICAgIGNoYXIgbnBjX2RhdGFfcmVjOwog ICAgICAgIH0gZGF0YV9yZWM7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgZGRQQ19E Q19IaXRCb3ggZGNfaGl0X2JveDsKICAgICAgICAgICAgICAgIGRkUENfTlBDX0hpdFZvbHVtZSBu cGNfaGl0X3ZvbHVtZTsKICAgICAgICB9IGlucHV0X3JlYzsKICAgICAgICBkZFBvaW50ZXIgZGV2 UHJpdjsKfSBkZFBpY2tEZXZpY2VTdHI7Cgp0eXBlZGVmIHN0cnVjdCBfZGRTZWFyY2hEZXZQcml2 IHsKICAgICAgICBkZFVTSE9SVCBzdGF0dXM7CiAgICAgICAgZGRDb29yZDNEIHBvc2l0aW9uOwog ICAgICAgIGRkRkxPQVQgZGlzdGFuY2U7CiAgICAgICAgZGRCT09MIG1vZGVsQ2xpcEZsYWc7CiAg ICAgICAgZGROYW1lUGllY2Ugbm9ybV9pbmNsdXNpb25bKCgyNTUgLSAwICsxKSAvIChzaXplb2Yo ZGROYW1lUGllY2UpICogOCkpXTsKICAgICAgICBkZE5hbWVQaWVjZSBub3JtX2V4Y2x1c2lvblso KDI1NSAtIDAgKzEpIC8gKHNpemVvZihkZE5hbWVQaWVjZSkgKiA4KSldOwogICAgICAgIGRkTmFt ZVBpZWNlIGludmVydF9pbmNsdXNpb25bKCgyNTUgLSAwICsxKSAvIChzaXplb2YoZGROYW1lUGll Y2UpICogOCkpXTsKICAgICAgICBkZE5hbWVQaWVjZSBpbnZlcnRfZXhjbHVzaW9uWygoMjU1IC0g MCArMSkgLyAoc2l6ZW9mKGRkTmFtZVBpZWNlKSAqIDgpKV07CiAgICAgICAgZGRQb2ludGVyIGRl dlByaXY7Cn0gZGRTZWFyY2hEZXZpY2VTdHI7Cgp0eXBlZGVmIHN0cnVjdCBfbWlTdGF0aWNERENv bnRleHQgewogICBtaUREQ29udGV4dFJlbmRBdHRycyAqYXR0cnM7CiAgIG1pRERDb250ZXh0TWlz YyBtaXNjOwogICBSZW5kVGFibGVUeXBlIFJlbmRlclByb2NzWzVdOwogICBkZFBpY2tEZXZpY2VT dHIgcGljazsKICAgZGRTZWFyY2hEZXZpY2VTdHIgc2VhcmNoOwp9IG1pU3RhdGljRERDb250ZXh0 OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX21pRERDb250ZXh0IHsKICAgICAgICBtaVN0YXRpY0REQ29u dGV4dCBTdGF0aWM7CiAgICAgICAgbWlEeW5hbWljRERDb250ZXh0ICpEeW5hbWljOwp9IG1pRERD b250ZXh0OwojIDMzNyAiLi4vaW5jbHVkZS9taVJlbmRlci5oIgpleHRlcm4gZGRGTE9BVCBpZGVu dDR4NFs0XVs0XTsKIyA1MiAibWlQY2sxUHJpbS5jIiAyCgoKIyAxICIuLi8uLi8uLi9pbmNsdWRl L1BFWEVyci5oIiAxCiMgNTQgIi4uLy4uLy4uL2luY2x1ZGUvUEVYRXJyLmgiCnR5cGVkZWYgaW50 IEVycm9yQ29kZTsKIyA1NSAibWlQY2sxUHJpbS5jIiAyCiMgMSAiLi4vaW5jbHVkZS9taVN0cnVj dC5oIiAxCiMgNTUgIi4uL2luY2x1ZGUvbWlTdHJ1Y3QuaCIKIyAxICIuLi8uLi8uLi9pbmNsdWRl L1BFWHByb3RvLmgiIDEKIyAxMDYgIi4uLy4uLy4uL2luY2x1ZGUvUEVYcHJvdG8uaCIKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1 ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBtYWpvclZlcnNpb24g OwogICAgQ0FSRDE2IG1pbm9yVmVyc2lvbiA7CiAgICBDQVJEMzIgcmVsZWFzZSA7CiAgICBDQVJE MzIgbGVuZ3RoTmFtZSA7CiAgICBDQVJEMzIgc3Vic2V0SW5mbyA7CiAgICBCWVRFIHBhZFs4XTsK CgogICAgfSBwZXhHZXRFeHRlbnNpb25JbmZvUmVwbHk7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAg QllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAg ICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBudW1MaXN0cyA7CiAgICBCWVRFIHBhZFsyMF07 CgoKICAgIH0gcGV4R2V0RW51bWVyYXRlZFR5cGVJbmZvUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVy IDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQllURSBwYWRbMjRdOwoKICAgIH0gcGV4R2V0SW1w RGVwQ29uc3RhbnRzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBD QVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGgg OwogICAgQ0FSRDMyIGVzY2FwZUlEIDsKICAgIENBUkQ4IGVzY2FwZV9zcGVjaWZpY1syMF07CgoK ICAgIH0gcGV4RXNjYXBlV2l0aFJlcGx5UmVwbHk7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllU RSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBD QVJEMzIgbGVuZ3RoIDsKICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleE1hdGNoUmVuZGVyZXJU YXJnZXRzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3 aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAg Q0FSRDE2IHVudXNlZCA7CiAgICBDQVJEMTYgZGVmaW5hYmxlRW50cmllcyA7CiAgICBDQVJEMTYg bnVtUHJlZGVmaW5lZCA7CiAgICBDQVJEMTYgcHJlZGVmaW5lZE1pbiA7CiAgICBDQVJEMTYgcHJl ZGVmaW5lZE1heCA7CiAgICBCWVRFIHBhZFsxNF07CiAgICB9IHBleEdldFRhYmxlSW5mb1JlcGx5 OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENB UkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiB1bnVz ZWQgOwogICAgQ0FSRDMyIG51bUVudHJpZXMgOwogICAgQllURSBwYWRbMTZdOwoKICAgIH0gcGV4 R2V0UHJlZGVmaW5lZEVudHJpZXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlw ZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMy IGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtSW5kaWNlcyA7CiAgICBCWVRFIHBhZFsyMF07CgoKICAg IH0gcGV4R2V0RGVmaW5lZEluZGljZXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUg dHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FS RDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgc3RhdHVzIDsKICAgIENBUkQxNiB0YWJsZVR5cGUgOwog ICAgQllURSBwYWRbMjBdOwoKICAgIH0gcGV4R2V0VGFibGVFbnRyeVJlcGx5OwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5j ZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiB0YWJsZVR5cGUgOwogICAg Q0FSRDE2IHVudXNlZCA7CiAgICBDQVJEMzIgbnVtRW50cmllcyA7CiAgICBCWVRFIHBhZFsxNl07 CgogICAgfSBwZXhHZXRUYWJsZUVudHJpZXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZ VEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAg Q0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYgc3RhdHVzIDsKICAgIENBUkQxNiB0YWJsZVR5cGUg OwogICAgQ0FSRDMyIG51bVZhbHVlcyA7CiAgICBCWVRFIHBhZFsxNl07CgogICAgfSBwZXhHZXRU YWJsZVZhbHVlc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FS RDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsK ICAgIEJZVEUgcGFkWzI0XTsKCiAgICB9IHBleEdldFBpcGVsaW5lQ29udGV4dFJlcGx5OwoKCnR5 cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYg c2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07Cgog ICAgfSBwZXhHZXRSZW5kZXJlckF0dHJpYnV0ZXNSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwog ICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtVmFsdWVzIDsKICAgIHBleFN3aXRjaCB1 bmRlZmluZWRWYWx1ZXM7CiAgICBCWVRFIHBhZFsxOV07Cgp9IHBleEdldFpCdWZmZXJSZXBseTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJE MTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBJTlQzMiBjb3VudCA7 CiAgICBCWVRFIHBhZFsyMF07Cn0gcGV4TmV4dFBhc3NSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIg OwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBwZXhCaXRtYXNrIHRhYmxlcyA7CiAgICBwZXhCaXRt YXNrIG5hbWVzZXRzIDsKICAgIHBleEJpdG1hc2sgYXR0cmlidXRlcyA7CiAgICBCWVRFIHBhZFsx Ml07Cn0gcGV4R2V0UmVuZGVyZXJEeW5hbWljc1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg QllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAg ICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQxNiBlZGl0TW9kZSA7CiAgICBDQVJEMTYgdW51c2Vk IDsKICAgIENBUkQzMiBlbGVtZW50UHRyIDsKICAgIENBUkQzMiBudW1FbGVtZW50cyA7CiAgICBD QVJEMzIgbGVuZ3RoU3RydWN0dXJlIDsKICAgIENBUkQxNiBoYXNSZWZzIDsKICAgIEJZVEUgcGFk WzZdOwogICAgfSBwZXhHZXRTdHJ1Y3R1cmVJbmZvUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsK ICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIG51bUluZm8gOwogICAgQllURSBwYWRbMjBd OwoKICAgIH0gcGV4R2V0RWxlbWVudEluZm9SZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZ VEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAg Q0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEOCB1bnVzZWRbOF07CiAgICBDQVJEMzIgbnVtU3RydWN0 dXJlcyA7CiAgICBCWVRFIHBhZFsxMl07CgogICAgfSBwZXhHZXRTdHJ1Y3R1cmVzSW5OZXR3b3Jr UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0Owog ICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FSRDgg dW51c2VkWzEyXTsKICAgIENBUkQzMiBudW1QYXRocyA7CiAgICBCWVRFIHBhZFs4XTsKCiAgICB9 IHBleEdldEFuY2VzdG9yc1JlcGx5OwoKdHlwZWRlZiBwZXhHZXRBbmNlc3RvcnNSZXBseSBwZXhH ZXREZXNjZW5kYW50c1JlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAg Q0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3Ro IDsKICAgIENBUkQzMiBudW1FbGVtZW50cyA7CiAgICBCWVRFIHBhZFsyMF07CgogICAgfSBwZXhG ZXRjaEVsZW1lbnRzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBD QVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGgg OwogICAgQ0FSRDE2IHN0YXR1cyA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIENBUkQzMiBmb3Vu ZE9mZnNldCA7CiAgICBCWVRFIHBhZFsxNl07CiAgICB9IHBleEVsZW1lbnRTZWFyY2hSZXBseTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJE MTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtTmFt ZXMgOwogICAgQllURSBwYWRbMjBdOwoKICAgIH0gcGV4R2V0TmFtZVNldFJlcGx5OwoKCnR5cGVk ZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2Vx dWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAg fSBwZXhHZXRTZWFyY2hDb250ZXh0UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5 cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQz MiBsZW5ndGggOwogICAgQ0FSRDMyIHVudXNlZCA7CiAgICBDQVJEMzIgbnVtSXRlbXMgOwogICAg QllURSBwYWRbMTZdOwoKICAgIH0gcGV4U2VhcmNoTmV0d29ya1JlcGx5OwoKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VO dW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAgfSBwZXhH ZXRXa3NJbmZvUmVwbHk7CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FS RDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsK ICAgIHBleER5bmFtaWNUeXBlIHZpZXdSZXA7CiAgICBwZXhEeW5hbWljVHlwZSBtYXJrZXJCdW5k bGU7CiAgICBwZXhEeW5hbWljVHlwZSB0ZXh0QnVuZGxlOwogICAgcGV4RHluYW1pY1R5cGUgbGlu ZUJ1bmRsZTsKICAgIHBleER5bmFtaWNUeXBlIGludGVyaW9yQnVuZGxlOwogICAgcGV4RHluYW1p Y1R5cGUgZWRnZUJ1bmRsZTsKICAgIHBleER5bmFtaWNUeXBlIGNvbG91clRhYmxlOwogICAgcGV4 RHluYW1pY1R5cGUgcGF0dGVyblRhYmxlOwogICAgcGV4RHluYW1pY1R5cGUgd2tzVHJhbnNmb3Jt OwogICAgcGV4RHluYW1pY1R5cGUgaGlnaGxpZ2h0RmlsdGVyOwogICAgcGV4RHluYW1pY1R5cGUg aW52aXNpYmlsaXR5RmlsdGVyOwogICAgcGV4RHluYW1pY1R5cGUgSGxoc3JNb2RlOwogICAgcGV4 RHluYW1pY1R5cGUgc3RydWN0dXJlTW9kaWZ5OwogICAgcGV4RHluYW1pY1R5cGUgcG9zdFN0cnVj dHVyZTsKICAgIHBleER5bmFtaWNUeXBlIHVucG9zdFN0cnVjdHVyZTsKICAgIHBleER5bmFtaWNU eXBlIGRlbGV0ZVN0cnVjdHVyZTsKICAgIHBleER5bmFtaWNUeXBlIHJlZmVyZW5jZU1vZGlmeTsK ICAgIHBleER5bmFtaWNUeXBlIGJ1ZmZlck1vZGlmeTsKICAgIHBleER5bmFtaWNUeXBlIGxpZ2h0 VGFibGU7CiAgICBwZXhEeW5hbWljVHlwZSBkZXB0aEN1ZVRhYmxlOwogICAgcGV4RHluYW1pY1R5 cGUgY29sb3VyQXBwcm94VGFibGU7CiAgICBDQVJEOCBwYWRbM107CiAgICB9IHBleEdldER5bmFt aWNzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0 OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQ0FS RDE2IHZpZXdVcGRhdGUgOwogICAgQllURSBwYWRbMjJdOwoKCiAgICB9IHBleEdldFZpZXdSZXBS ZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAg ICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMTYg dmlld0luZGV4IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDMyIG51bUNvb3JkcyA7CiAg ICBCWVRFIHBhZFsxNl07CgogICAgfSBwZXhNYXBEQ3RvV0NSZXBseTsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1i ZXIgOwogICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgdW51c2VkIDsKICAgIENBUkQzMiBu dW1Db29yZHMgOwogICAgQllURSBwYWRbMTZdOwoKICAgIH0gcGV4TWFwV0N0b0RDUmVwbHk7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2 IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQllURSBwYWRbMjRdOwoK ICAgIH0gcGV4R2V0V2tzUG9zdGluZ3NSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUg dHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FS RDMyIGxlbmd0aCA7CiAgICBCWVRFIHBhZFsyNF07CgogICAgfSBwZXhHZXRQaWNrRGV2aWNlUmVw bHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAg Q0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBsZW5ndGggOwogICAgQllURSBwYWRb MjRdOwoKICAgIH0gcGV4R2V0UGlja01lYXN1cmVSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IEJZVEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwog ICAgQ0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtUGlja0VsUmVmcyA7CiAgICBwZXhFbnVt VHlwZUluZGV4IHBpY2tTdGF0dXMgOwogICAgQ0FSRDggYmV0dGVyUGljazsKICAgIEJZVEUgcGFk WzE3XTsKCiAgICB9IHBleEVuZFBpY2tPbmVSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZ VEUgdHlwZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAg Q0FSRDMyIGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtUGlja0VsUmVmcyA7CiAgICBwZXhFbnVtVHlw ZUluZGV4IHBpY2tTdGF0dXMgOwogICAgQ0FSRDggYmV0dGVyUGljazsKICAgIEJZVEUgcGFkWzE3 XTsKCiAgICB9IHBleFBpY2tPbmVSZXBseTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIEJZVEUgdHlw ZTsKICAgIENBUkQ4IHdoYXQ7CiAgICBDQVJEMTYgc2VxdWVuY2VOdW1iZXIgOwogICAgQ0FSRDMy IGxlbmd0aCA7CiAgICBDQVJEMzIgbnVtUGlja2VkIDsKICAgIHBleEVudW1UeXBlSW5kZXggcGlj a1N0YXR1cyA7CiAgICBwZXhFbnVtVHlwZUluZGV4IG1vcmVQaWNrcyA7CiAgICBCWVRFIHBhZFsx Nl07CgogICAgfSBwZXhFbmRQaWNrQWxsUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRF IHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENB UkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIG51bVBpY2tlZCA7CiAgICBwZXhFbnVtVHlwZUluZGV4 IHBpY2tTdGF0dXMgOwogICAgcGV4RW51bVR5cGVJbmRleCBtb3JlUGlja3MgOwogICAgQllURSBw YWRbMTZdOwoKICAgIH0gcGV4UGlja0FsbFJlcGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllU RSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAgIENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBD QVJEMzIgbGVuZ3RoIDsKICAgIENBUkQzMiBsZW5ndGhGb250SW5mbyA7CiAgICBDQVJEOCBwYWRb MjBdOwoKICAgIH0gcGV4UXVlcnlGb250UmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRF IHR5cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENB UkQzMiBsZW5ndGggOwogICAgQ0FSRDMyIG51bVN0cmluZ3MgOwogICAgQllURSBwYWRbMjBdOwoK ICAgIH0gcGV4TGlzdEZvbnRzUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7 CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiBs ZW5ndGggOwogICAgQ0FSRDMyIG51bVN0cmluZ3MgOwogICAgQllURSBwYWRbMjBdOwoKCiAgICB9 IHBleExpc3RGb250c1dpdGhJbmZvUmVwbHk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5 cGU7CiAgICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQz MiBsZW5ndGggOwogICAgQllURSBwYWRbMjRdOwoKICAgIH0gcGV4UXVlcnlUZXh0RXh0ZW50c1Jl cGx5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQllURSB0eXBlOwogICAgQ0FSRDggd2hhdDsKICAg IENBUkQxNiBzZXF1ZW5jZU51bWJlciA7CiAgICBDQVJEMzIgbGVuZ3RoIDsKICAgIENBUkQ4IGFw cHJveFN1cHBvcnRlZDsKICAgIENBUkQ4IGV4aGF1c3RpdmVBcHByb3g7CiAgICBDQVJEOCB1bnVz ZWRbMl07CiAgICBDQVJEMzIgbnVtQ29sb3JBcHByb3g7CiAgICBCWVRFIHBhZFsxNl07Cgp9IHBl eFF1ZXJ5Q29sb3JBcHByb3hSZXBseTsKCgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDgg cmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwoKCn0gcGV4UmVx OwojIDYwNSAiLi4vLi4vLi4vaW5jbHVkZS9QRVhwcm90by5oIgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBDQVJEMzIgaWQgOwogICAgfSBwZXhSZXNvdXJjZVJlcTsKCgoKCgoKCnR5cGVkZWYgc3RydWN0 IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3Ro IDsKICAgIENBUkQxNiBjbGllbnRQcm90b2NvbE1ham9yIDsKICAgIENBUkQxNiBjbGllbnRQcm90 b2NvbE1pbm9yIDsKfSBwZXhHZXRFeHRlbnNpb25JbmZvUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgRHJhd2FibGUgZHJhd2FibGUgOwogICAgcGV4Qml0bWFzayBpdGVtTWFzayA7CiAgICBDQVJE MzIgbnVtRW51bXMgOwoKCn0gcGV4R2V0RW51bWVyYXRlZFR5cGVJbmZvUmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBs ZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdW51c2Vk IDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIENBUkQzMiBudW1OYW1lcyA7CgoKfSBwZXhH ZXRJbXBEZXBDb25zdGFudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3YWJsZSBkcmF3 YWJsZSA7CiAgICBDQVJEOCBkZXB0aDsKICAgIENBUkQ4IHVudXNlZDsKICAgIENBUkQxNiB0eXBl IDsKICAgIENBUkQzMiB2aXN1YWxJRCA7CiAgICBDQVJEMzIgbWF4VHJpcGxldHMgOwp9IHBleE1h dGNoUmVuZGVyZXJUYXJnZXRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIGVzY2Fw ZUlEIDsKCn0gcGV4RXNjYXBlUmVxOwoKdHlwZWRlZiBwZXhFc2NhcGVSZXEgcGV4RXNjYXBlV2l0 aFJlcGx5UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4 IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgRHJhd2FibGUgZHJhd2FibGVFeGFtcGxl IDsKICAgIHBleExvb2t1cFRhYmxlIGx1dCA7CiAgICBwZXhUYWJsZVR5cGUgdGFibGVUeXBlIDsK ICAgIENBUkQxNiB1bnVzZWQgOwp9IHBleENyZWF0ZUxvb2t1cFRhYmxlUmVxOwoKCnR5cGVkZWYg c3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYg bGVuZ3RoIDsKICAgIHBleExvb2t1cFRhYmxlIHNyYyA7CiAgICBwZXhMb29rdXBUYWJsZSBkc3Qg Owp9IHBleENvcHlMb29rdXBUYWJsZVJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RnJl ZUxvb2t1cFRhYmxlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAg IENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgRHJhd2FibGUgZHJhd2FibGVF eGFtcGxlIDsKICAgIHBleFRhYmxlVHlwZSB0YWJsZVR5cGUgOwogICAgQ0FSRDE2IHVudXNlZCA7 Cn0gcGV4R2V0VGFibGVJbmZvUmVxOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBl SW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBEcmF3YWJsZSBkcmF3YWJs ZUV4YW1wbGUgOwogICAgcGV4VGFibGVUeXBlIHRhYmxlVHlwZSA7CiAgICBwZXhUYWJsZUluZGV4 IHN0YXJ0IDsKICAgIENBUkQxNiBjb3VudCA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhHZXRQcmVk ZWZpbmVkRW50cmllc1JlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4R2V0RGVmaW5lZElu ZGljZXNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0 IDsKICAgIENBUkQxNiB2YWx1ZVR5cGUgOwogICAgcGV4TG9va3VwVGFibGUgbHV0IDsKICAgIHBl eFRhYmxlSW5kZXggaW5kZXggOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4R2V0VGFibGVFbnRyeVJl cTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAg Q0FSRDE2IHZhbHVlVHlwZSA7CiAgICBwZXhMb29rdXBUYWJsZSBsdXQgOwogICAgcGV4VGFibGVJ bmRleCBzdGFydCA7CiAgICBDQVJEMTYgY291bnQgOwp9IHBleEdldFRhYmxlRW50cmllc1JlcTsK Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENB UkQxNiB1bnVzZWQgOwogICAgcGV4TG9va3VwVGFibGUgbHV0IDsKICAgIHBleFRhYmxlSW5kZXgg c3RhcnQgOwogICAgQ0FSRDE2IGNvdW50IDsKCn0gcGV4U2V0VGFibGVFbnRyaWVzUmVxOwoKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4VGFi bGVJbmRleCBpbmRleCA7CiAgICBwZXhMb29rdXBUYWJsZSBsdXQgOwogICAgcGV4Qml0bWFzayBU YWJsZU1hc2s7Cgp9IHBleENoYW5nZVRhYmxlVmFsdWVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdmFsdWVUeXBlIDsKICAg IHBleExvb2t1cFRhYmxlIGx1dCA7CiAgICBwZXhUYWJsZUluZGV4IGluZGV4IDsKICAgIENBUkQx NiB1bnVzZWQ7CiAgICBwZXhCaXRtYXNrIFRhYmxlTWFzazsKfSBwZXhHZXRUYWJsZVZhbHVlc1Jl cTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7 CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleExvb2t1cFRhYmxlIGx1dCA7CiAgICBwZXhUYWJs ZUluZGV4IHN0YXJ0IDsKICAgIENBUkQxNiBjb3VudCA7Cn0gcGV4RGVsZXRlVGFibGVFbnRyaWVz UmVxOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNv ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwog ICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQQyBwYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNr WzNdOwoKfSBwZXhDcmVhdGVQaXBlbGluZUNvbnRleHRSZXE7CgoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgcGV4UEMgc3JjIDsKICAgIHBleFBDIGRzdCA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrWzNd Owp9IHBleENvcHlQaXBlbGluZUNvbnRleHRSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBl eEZyZWVQaXBlbGluZUNvbnRleHRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFU eXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlw ZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UEMgcGMgOwogICAg cGV4Qml0bWFzayBpdGVtTWFza1szXTsKfSBwZXhHZXRQaXBlbGluZUNvbnRleHRSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1 bnVzZWQgOwogICAgcGV4UEMgcGMgOwogICAgcGV4Qml0bWFzayBpdGVtTWFza1szXTsKCn0gcGV4 Q2hhbmdlUGlwZWxpbmVDb250ZXh0UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5 cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleFJlbmRlcmVyIHJk ciA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKCn0g cGV4Q3JlYXRlUmVuZGVyZXJSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleEZyZWVSZW5k ZXJlclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBv cGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQg OwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgcGV4Qml0bWFz ayBpdGVtTWFzayA7Cgp9IHBleENoYW5nZVJlbmRlcmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBl eFJlbmRlcmVyIHJkciA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKfSBwZXhHZXRSZW5kZXJl ckF0dHJpYnV0ZXNSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleEdldFJlbmRlcmVyRHlu YW1pY3NSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgRHJh d2FibGUgZHJhd2FibGUgOwp9IHBleEJlZ2luUmVuZGVyaW5nUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIHBleFN3aXRjaCBmbHVzaEZsYWc7CiAgICBCWVRF IHBhZFszXTsKfSBwZXhFbmRSZW5kZXJpbmdSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhS ZW5kZXJlciByZHIgOwogICAgcGV4Qml0bWFzayBjbGVhckNvbnRyb2wgOwp9IHBleENsZWFyUmVu ZGVyZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDgg b3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgcGV4 U3dpdGNoIGZsdXNoRmxhZzsKICAgIEJZVEUgcGFkWzNdOwp9IHBleEZsdXNoUmVuZGVyZXJSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwp9IHBleEluaXRSZW5kZXJl clJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNv ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJs ZSBwaXhtYXAgOwp9IHBleENvcHlBbHBoYVRvUGl4bWFwUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwog ICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIHBpeG1hcCA7Cn0gcGV4Q29weVBpeG1h cFRvQWxwaGFSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAg RHJhd2FibGUgcGl4bWFwIDsKfSBwZXhDb3B5WkJ1ZmZlclRvUGl4bWFwUmVxOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBs ZW5ndGggOwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIHBpeG1hcCA7Cn0gcGV4 Q29weVBpeG1hcFRvWkJ1ZmZlclJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVy IHJkciA7CiAgICBwZXhQQyBwYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrWzNdOwp9IHBleENv cHlQQ1RvUGlwZWxpbmVTdGF0ZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFJlbmRlcmVy IHJkciA7CiAgICBwZXhQQyBwYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrWzNdOwp9IHBleENv cHlQaXBlbGluZVN0YXRlVG9QQ1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5 cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBl SW5kZXggZnBGb3JtYXQgOwogICAgcGV4U3dpdGNoIG5vcm1hbGl6ZWRWYWx1ZXM7CiAgICBDQVJE OCB1bnVzZWQ7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgSU5UMTYgeCA7CiAgICBJTlQxNiB5 IDsKICAgIENBUkQxNiB3aWR0aCA7CiAgICBDQVJEMTYgaGVpZ2h0IDsKfSBwZXhHZXRaQnVmZmVy UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29k ZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAg ICBDQVJEMTYgdW51c2VkOwogICAgQ0FSRDMyIG51bVZhbHVlcyA7CiAgICBwZXhSZW5kZXJlciBy ZHIgOwogICAgSU5UMTYgeCA7CiAgICBJTlQxNiB5IDsKICAgIENBUkQxNiB3aWR0aCA7CiAgICBD QVJEMTYgaGVpZ2h0IDsKICAgIHBleFN3aXRjaCBub3JtYWxpemVkVmFsdWVzOwogICAgQ0FSRDgg bW9yZV91bnVzZWRbM107Cgp9IHBleFB1dFpCdWZmZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAg ICBwZXhSZW5kZXJlciByZHIgOwp9IHBleEluaXRNdWx0aXBhc3NSZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgQ0FSRDE2IG11bHRpcGFzc19jb250cm9sOwog ICAgQ0FSRDE2IHVudXNlZDsKfSBwZXhOZXh0UGFzc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAg IHBleFJlbmRlcmVyIHJkciA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKfSBwZXhCZWdpblN0cnVj dHVyZVJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RW5kU3RydWN0dXJlUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYg dW51c2VkIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBDQVJEMzIgbnVtQ29tbWFuZHMgOwoK fSBwZXhSZW5kZXJPdXRwdXRDb21tYW5kc1JlcTsKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4 UmVuZGVyZXIgcmRyIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAgcGV4RWxlbWVudFJhbmdl IHJhbmdlOwp9IHBleFJlbmRlckVsZW1lbnRzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4 UmVuZGVyZXIgcmRyIDsKICAgIENBUkQzMiBudW1FbFJlZnMgOwoKfSBwZXhBY2N1bXVsYXRlU3Rh dGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bj b2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwogICAgRHJhd2Fi bGUgZHJhd2FibGUgOwogICAgcGV4U3RydWN0dXJlIHNpZCA7Cn0gcGV4UmVuZGVyTmV0d29ya1Jl cTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4Q3JlYXRlU3RydWN0dXJlUmVxOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQx NiBsZW5ndGggOwogICAgcGV4U3RydWN0dXJlIHNyYyA7CiAgICBwZXhTdHJ1Y3R1cmUgZHN0IDsK fSBwZXhDb3B5U3RydWN0dXJlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgQ0FSRDMyIG51bVN0 cnVjdHVyZXMgOwoKfSBwZXhEZXN0cm95U3RydWN0dXJlc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsK ICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IGl0ZW1NYXNrIDsKICAg IHBleFN0cnVjdHVyZSBzaWQgOwp9IHBleEdldFN0cnVjdHVyZUluZm9SZXE7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxl bmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIENBUkQxNiBwZXJtaXNzaW9uIDsKICAg IENBUkQxNiB1bnVzZWQgOwp9IHBleFNldFN0cnVjdHVyZVBlcm1pc3Npb25SZXE7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2 IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVz ZWQgOwogICAgcGV4U3RydWN0dXJlIHNpZCA7CiAgICBwZXhFbGVtZW50UmFuZ2UgcmFuZ2U7Cn0g cGV4R2V0RWxlbWVudEluZm9SZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUg c2lkIDsKICAgIENBUkQxNiB3aGljaCA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhHZXRTdHJ1Y3R1 cmVzSW5OZXR3b3JrUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAg IENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4U3RydWN0dXJlIHNpZCA7 CiAgICBDQVJEMTYgcGF0aE9yZGVyIDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgQ0FSRDMyIHBh dGhEZXB0aCA7Cn0gcGV4R2V0QW5jZXN0b3JzUmVxOwoKdHlwZWRlZiBwZXhHZXRBbmNlc3RvcnNS ZXEgcGV4R2V0RGVzY2VuZGFudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFU eXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlw ZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4U3RydWN0dXJlIHNp ZCA7CiAgICBwZXhFbGVtZW50UmFuZ2UgcmFuZ2U7Cn0gcGV4RmV0Y2hFbGVtZW50c1JlcTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBD QVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzaWQgOwogICAgQ0FSRDE2IG1vZGUgOwog ICAgQ0FSRDE2IHBhZCA7Cn0gcGV4U2V0RWRpdGluZ01vZGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIHBleEVsZW1lbnRQb3MgcG9zaXRpb247Cn0gcGV4 U2V0RWxlbWVudFBvaW50ZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUg c2lkIDsKICAgIElOVDMyIGxhYmVsIDsKICAgIElOVDMyIG9mZnNldCA7Cn0gcGV4U2V0RWxlbWVu dFBvaW50ZXJBdExhYmVsUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4U3RydWN0dXJlIHNp ZCA7CiAgICBJTlQzMiBwaWNrSWQgOwogICAgSU5UMzIgb2Zmc2V0IDsKfSBwZXhTZXRFbGVtZW50 UG9pbnRlckF0UGlja0lEUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4U3RydWN0dXJlIHNp ZCA7CiAgICBwZXhFbGVtZW50UG9zIHBvc2l0aW9uOwogICAgQ0FSRDMyIGRpcmVjdGlvbiA7CiAg ICBDQVJEMzIgbnVtSW5jbHMgOwogICAgQ0FSRDMyIG51bUV4Y2xzIDsKCgoKCn0gcGV4RWxlbWVu dFNlYXJjaFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3Jt YXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIENBUkQz MiBudW1Db21tYW5kcyA7Cgp9IHBleFN0b3JlRWxlbWVudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7 CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKICAgIHBleEVsZW1lbnRSYW5nZSByYW5nZTsKfSBwZXhE ZWxldGVFbGVtZW50c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAg ICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFN0cnVjdHVyZSBzaWQg OwogICAgcGV4RWxlbWVudFBvcyBwb3NpdGlvbjsKICAgIElOVDMyIGxhYmVsIDsKfSBwZXhEZWxl dGVFbGVtZW50c1RvTGFiZWxSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUg c2lkIDsKICAgIElOVDMyIGxhYmVsMSA7CiAgICBJTlQzMiBsYWJlbDIgOwp9IHBleERlbGV0ZUJl dHdlZW5MYWJlbHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAg Q0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgc3JjIDsK ICAgIHBleEVsZW1lbnRSYW5nZSBzcmNSYW5nZTsKICAgIHBleFN0cnVjdHVyZSBkc3QgOwogICAg cGV4RWxlbWVudFBvcyBkc3RQb3NpdGlvbjsKfSBwZXhDb3B5RWxlbWVudHNSZXE7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2 IGxlbmd0aCA7CiAgICBwZXhTdHJ1Y3R1cmUgb2xkX2lkIDsKICAgIHBleFN0cnVjdHVyZSBuZXdf aWQgOwp9IHBleENoYW5nZVN0cnVjdHVyZVJlZnNSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVx IHBleENyZWF0ZU5hbWVTZXRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhOYW1lU2V0IHNy YyA7CiAgICBwZXhOYW1lU2V0IGRzdCA7Cn0gcGV4Q29weU5hbWVTZXRSZXE7Cgp0eXBlZGVmIHBl eFJlc291cmNlUmVxIHBleEZyZWVOYW1lU2V0UmVxOwoKdHlwZWRlZiBwZXhSZXNvdXJjZVJlcSBw ZXhHZXROYW1lU2V0UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAg IENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4TmFtZVNldCBucyA7CiAg ICBDQVJEMTYgYWN0aW9uIDsKICAgIENBUkQxNiB1bnVzZWQgOwoKfSBwZXhDaGFuZ2VOYW1lU2V0 UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29k ZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAg ICBDQVJEMTYgdW51c2VkIDsKICAgIHBleFNDIHNjIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sg OwoKfSBwZXhDcmVhdGVTZWFyY2hDb250ZXh0UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FS RDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4 U0Mgc3JjIDsKICAgIHBleFNDIGRzdCA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKfSBwZXhD b3B5U2VhcmNoQ29udGV4dFJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RnJlZVNlYXJj aENvbnRleHRSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9y bWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4U0Mgc2MgOwogICAgcGV4Qml0bWFzayBp dGVtTWFzayA7Cn0gcGV4R2V0U2VhcmNoQ29udGV4dFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAg IHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhT QyBzYyA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNrIDsKCn0gcGV4Q2hhbmdlU2VhcmNoQ29udGV4 dFJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4U2VhcmNoTmV0d29ya1JlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7 CiAgICBwZXhMb29rdXBUYWJsZSBtYXJrZXJCdW5kbGUgOwogICAgcGV4TG9va3VwVGFibGUgdGV4 dEJ1bmRsZSA7CiAgICBwZXhMb29rdXBUYWJsZSBsaW5lQnVuZGxlIDsKICAgIHBleExvb2t1cFRh YmxlIGludGVyaW9yQnVuZGxlIDsKICAgIHBleExvb2t1cFRhYmxlIGVkZ2VCdW5kbGUgOwogICAg cGV4TG9va3VwVGFibGUgY29sb3VyVGFibGUgOwogICAgcGV4TG9va3VwVGFibGUgZGVwdGhDdWVU YWJsZSA7CiAgICBwZXhMb29rdXBUYWJsZSBsaWdodFRhYmxlIDsKICAgIHBleExvb2t1cFRhYmxl IGNvbG91ckFwcHJveFRhYmxlIDsKICAgIHBleExvb2t1cFRhYmxlIHBhdHRlcm5UYWJsZSA7CiAg ICBwZXhMb29rdXBUYWJsZSB0ZXh0Rm9udFRhYmxlIDsKICAgIHBleE5hbWVTZXQgaGlnaGxpZ2h0 SW5jbCA7CiAgICBwZXhOYW1lU2V0IGhpZ2hsaWdodEV4Y2wgOwogICAgcGV4TmFtZVNldCBpbnZp c0luY2wgOwogICAgcGV4TmFtZVNldCBpbnZpc0V4Y2wgOwogICAgQ0FSRDE2IGJ1ZmZlck1vZGUg OwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4Q3JlYXRlUGhpZ3NXa3NSZXE7Cgp0eXBlZGVmIHBleFJl c291cmNlUmVxIHBleEZyZWVQaGlnc1drc1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVu dW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQaGlnc1dr cyB3a3MgOwogICAgcGV4Qml0bWFzayBpdGVtTWFza1syXSA7Cn0gcGV4R2V0V2tzSW5mb1JlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKfSBwZXhHZXREeW5hbWlj c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNv ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwog ICAgcGV4VGFibGVJbmRleCBpbmRleCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwp9IHBleEdldFZp ZXdSZXBSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleFJlZHJhd0FsbFN0cnVjdHVyZXNS ZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleFVwZGF0ZVdvcmtzdGF0aW9uUmVxOwoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENB UkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIENBUkQzMiBudW1SZWN0cyA7 Cgp9IHBleFJlZHJhd0NsaXBSZWdpb25SZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVxIHBleEV4 ZWN1dGVEZWZlcnJlZEFjdGlvbnNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFU eXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhQaGlnc1dr cyB3a3MgOwogICAgcGV4VGFibGVJbmRleCBpbmRleDEgOwogICAgcGV4VGFibGVJbmRleCBpbmRl eDIgOwogICAgQ0FSRDE2IHByaW9yaXR5IDsKICAgIENBUkQxNiBwYWQgOwp9IHBleFNldFZpZXdQ cmlvcml0eVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJE OCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAgICBw ZXhFbnVtVHlwZUluZGV4IGRpc3BsYXlVcGRhdGUgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4U2V0 RGlzcGxheVVwZGF0ZU1vZGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUlu ZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsK ICAgIENBUkQzMiBudW1Db29yZHMgOwoKfSBwZXhNYXBEQ3RvV0NSZXE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0 aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiBpbmRleCA7CiAg ICBwZXhQaGlnc1drcyB3a3MgOwogICAgQ0FSRDMyIG51bUNvb3JkcyA7Cgp9IHBleE1hcFdDdG9E Q1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNv ZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwog ICAgQ0FSRDE2IHVudXNlZCA7CiAgICBwZXhQaGlnc1drcyB3a3MgOwogICAgcGV4Vmlld1JlcCB2 aWV3UmVwOwp9IHBleFNldFZpZXdSZXBSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCBy ZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVt VHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UGhpZ3NXa3Mg d2tzIDsKICAgIHBleE5wY1N1YnZvbHVtZSBucGNTdWJ2b2x1bWU7Cn0gcGV4U2V0V2tzV2luZG93 UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29k ZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAg ICBDQVJEMTYgdW51c2VkIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAgICBwZXhWaWV3cG9ydCB2 aWV3cG9ydDsKfSBwZXhTZXRXa3NWaWV3cG9ydFJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENB UkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBl eFBoaWdzV2tzIHdrcyA7CiAgICBwZXhFbnVtVHlwZUluZGV4IG1vZGUgOwogICAgQ0FSRDE2IHBh ZCA7Cn0gcGV4U2V0SGxoc3JNb2RlUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVx VHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4UGhpZ3NX a3Mgd2tzIDsKICAgIENBUkQxNiBidWZmZXJNb2RlIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleFNl dFdrc0J1ZmZlck1vZGVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwog ICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4 IGZwRm9ybWF0IDsKICAgIENBUkQxNiB1bnVzZWQgOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAg IHBleFN0cnVjdHVyZSBzaWQgOwogICAgUEVYRkxPQVQgcHJpb3JpdHk7Cn0gcGV4UG9zdFN0cnVj dHVyZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBv cGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFBoaWdzV2tzIHdrcyA7CiAgICBwZXhT dHJ1Y3R1cmUgc2lkIDsKfSBwZXhVbnBvc3RTdHJ1Y3R1cmVSZXE7Cgp0eXBlZGVmIHBleFJlc291 cmNlUmVxIHBleFVucG9zdEFsbFN0cnVjdHVyZXNSZXE7Cgp0eXBlZGVmIHBleFJlc291cmNlUmVx IHBleEdldFdrc1Bvc3RpbmdzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlw ZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJ bmRleCBmcEZvcm1hdCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGRldlR5cGUgOwogICAgcGV4UGhp Z3NXa3Mgd2tzIDsKICAgIHBleEJpdG1hc2sgaXRlbU1hc2sgOwp9IHBleEdldFBpY2tEZXZpY2VS ZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2Rl OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAg IENBUkQxNiB1bnVzZWQgOwogICAgcGV4UGhpZ3NXa3Mgd2tzIDsKICAgIHBleEVudW1UeXBlSW5k ZXggZGV2VHlwZSA7CiAgICBDQVJEMTYgdW51c2VkMiA7CiAgICBwZXhCaXRtYXNrIGl0ZW1NYXNr IDsKCn0gcGV4Q2hhbmdlUGlja0RldmljZVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleFBo aWdzV2tzIHdrcyA7CiAgICBwZXhQaWNrTWVhc3VyZSBwbTsKICAgIHBleEVudW1UeXBlSW5kZXgg ZGV2VHlwZSA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhDcmVhdGVQaWNrTWVhc3VyZVJlcTsKCnR5 cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4RnJlZVBpY2tNZWFzdXJlUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5n dGggOwogICAgcGV4UGlja01lYXN1cmUgcG0gOwogICAgcGV4Qml0bWFzayBpdGVtTWFzayA7Cn0g cGV4R2V0UGlja01lYXN1cmVSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBl OwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhQaWNrTWVhc3Vy ZSBwbSA7CiAgICBDQVJEMzIgbnVtQnl0ZXMgOwoKCn0gcGV4VXBkYXRlUGlja01lYXN1cmVSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIHBl eEVudW1UeXBlSW5kZXggbWV0aG9kIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJs ZSBkcmF3YWJsZSA7CiAgICBJTlQzMiBzaWQgOwoKfSBwZXhCZWdpblBpY2tPbmVSZXE7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FS RDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwp9IHBleEVuZFBpY2tPbmVSZXE7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAg Q0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIHBleEVu dW1UeXBlSW5kZXggbWV0aG9kIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJsZSBk cmF3YWJsZSA7CiAgICBwZXhTdHJ1Y3R1cmUgc2lkIDsKCn0gcGV4UGlja09uZVJlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4RW51bVR5 cGVJbmRleCBtZXRob2QgOwogICAgQ0FSRDggc2VuZEV2ZW50OwogICAgQ0FSRDggdW51c2VkWzNd OwogICAgcGV4UmVuZGVyZXIgcmRyIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIElOVDMy IHNpZCA7CiAgICBDQVJEMzIgcGlja01heEhpdHMgOwoKfSBwZXhCZWdpblBpY2tBbGxSZXE7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAg Q0FSRDE2IGxlbmd0aCA7CiAgICBwZXhSZW5kZXJlciByZHIgOwp9IHBleEVuZFBpY2tBbGxSZXE7 Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwog ICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9ybWF0IDsKICAgIHBl eEVudW1UeXBlSW5kZXggbWV0aG9kIDsKICAgIHBleFJlbmRlcmVyIHJkciA7CiAgICBEcmF3YWJs ZSBkcmF3YWJsZSA7CiAgICBDQVJEMzIgcGlja01heEhpdHMgOwoKfSBwZXhQaWNrQWxsUmVxOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAg IENBUkQxNiBsZW5ndGggOwogICAgcGV4Rm9udCBmb250IDsKICAgIENBUkQzMiBudW1CeXRlcyA7 CgoKfSBwZXhPcGVuRm9udFJlcTsKCnR5cGVkZWYgcGV4UmVzb3VyY2VSZXEgcGV4Q2xvc2VGb250 UmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29k ZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4Rm9udCBmb250IDsKfSBwZXhRdWVyeUZvbnRS ZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2Rl OwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBDQVJEMTYgbWF4TmFtZXMgOwogICAgQ0FSRDE2IG51 bUNoYXJzIDsKCgp9IHBleExpc3RGb250c1JlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4 IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIENBUkQx NiB1bnVzZWQgOwogICAgQ0FSRDE2IG1heE5hbWVzIDsKICAgIENBUkQxNiBudW1DaGFycyA7CiAg ICBDQVJEMTYgcGFkIDsKCgp9IHBleExpc3RGb250c1dpdGhJbmZvUmVxOwoKdHlwZWRlZiBzdHJ1 Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5n dGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1hdCA7CiAgICBDQVJEMTYgdGV4dFBhdGgg OwogICAgcGV4VGFibGVJbmRleCBmb250R3JvdXBJbmRleCA7CiAgICBDQVJEMTYgdW51c2VkIDsK ICAgIFhJRCBpZCA7CiAgICBQRVhGTE9BVCBjaGFyRXhwYW5zaW9uOwogICAgUEVYRkxPQVQgY2hh clNwYWNpbmc7CiAgICBQRVhGTE9BVCBjaGFySGVpZ2h0OwogICAgcGV4VGV4dEFsaWdubWVudERh dGEgdGV4dEFsaWdubWVudDsKICAgIENBUkQzMiBudW1TdHJpbmdzIDsKCgp9IHBleFF1ZXJ5VGV4 dEV4dGVudHNSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJEOCByZXFUeXBlOwogICAgQ0FS RDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IGZwRm9y bWF0IDsKICAgIENBUkQxNiB1bnVzZWQ7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7CiAgICBwZXhD b2xvdXJBcHByb3hFbnRyeSBDb2xvdXJBcHByb3g7Cn0gcGV4UXVlcnlDb2xvckFwcHJveFJlcTsK CnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAg ICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4 RW51bVR5cGVJbmRleCBUTURpbWVuc2lvbiA7CiAgICBDQVJEMzIgVE1pZCA7CiAgICBDQVJEMTYg bnVtTGV2ZWxzIDsKICAgIHBleEVudW1UeXBlSW5kZXggdGV4ZWxUeXBlIDsKCn0gcGV4Q3JlYXRl Q29sb3JNaXBNYXBUTVJlcTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAg ICBDQVJEOCBvcGNvZGU7CiAgICBDQVJEMTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXgg ZnBGb3JtYXQgOwogICAgcGV4RW51bVR5cGVJbmRleCBUTURpbWVuc2lvbiA7CiAgICBDQVJEMzIg VE1pZCA7CiAgICBDQVJEMTYgbnVtTGV2ZWxzIDsKICAgIHBleEVudW1UeXBlSW5kZXggdGV4ZWxU eXBlIDsKICAgIERyYXdhYmxlIGRyYXdhYmxlIDsKICAgIENBUkQxNiBsdW1uYW5jZVNlbGVjdG9y IDsKICAgIENBUkQxNiBhbHBoYVNlbGVjdG9yIDsKCgoKCn0gcGV4Q3JlYXRlQ29sb3JNaXBNYXBm cm9tUmVzUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4 IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgcGV4RW51bVR5cGVJbmRleCBmcEZvcm1h dCA7CiAgICBwZXhFbnVtVHlwZUluZGV4IHVudXNlZCA7CiAgICBEcmF3YWJsZSBkcmF3YWJsZSA7 CiAgICBQRVhGTE9BVCBzcmNfd2VpZ2h0OwogICAgUEVYRkxPQVQgZHN0X3dlaWdodDsKfSBwZXhB Y2N1bXVsYXRlQnVmZmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgQ0FSRDggcmVxVHlwZTsK ICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGggOwogICAgRHJhd2FibGUgZHJhd2Fi bGUgOwp9IHBleEFsbG9jQWNjdW1CdWZmZXJSZXE7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBDQVJE OCByZXFUeXBlOwogICAgQ0FSRDggb3Bjb2RlOwogICAgQ0FSRDE2IGxlbmd0aCA7CiAgICBEcmF3 YWJsZSBkcmF3YWJsZSA7Cn0gcGV4RnJlZUFjY3VtQnVmZmVyUmVxOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgQ0FSRDggcmVxVHlwZTsKICAgIENBUkQ4IG9wY29kZTsKICAgIENBUkQxNiBsZW5ndGgg OwogICAgRHJhd2FibGUgZHJhd2FibGUgOwp9IHBleExvYWRBY2N1bUJ1ZmZlclJlcTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIENBUkQ4IHJlcVR5cGU7CiAgICBDQVJEOCBvcGNvZGU7CiAgICBDQVJE MTYgbGVuZ3RoIDsKICAgIHBleEVudW1UeXBlSW5kZXggZnBGb3JtYXQgOwogICAgcGV4RW51bVR5 cGVJbmRleCB1bnVzZWQgOwogICAgRHJhd2FibGUgZHJhd2FibGUgOwogICAgUEVYRkxPQVQgc2Nh bGU7Cn0gcGV4UmV0dXJuQWNjdW1CdWZmZXJSZXE7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggbWFya2VyVHlwZSA7CiAg ICBDQVJEMTYgcGFkIDsKfSBwZXhNYXJrZXJUeXBlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 RWxlbWVudEluZm8gaGVhZDsKICAgIFBFWEZMT0FUIHNjYWxlOwp9IHBleE1hcmtlclNjYWxlOwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleFRhYmxlSW5k ZXggaW5kZXggOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4TWFya2VyQnVuZGxlSW5kZXg7Cgp0eXBl ZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleE1hcmtlckNvbG91ckluZGV4Owp0eXBlZGVmIHBl eE1hcmtlckJ1bmRsZUluZGV4IHBleFRleHRDb2xvdXJJbmRleDsKdHlwZWRlZiBwZXhNYXJrZXJC dW5kbGVJbmRleCBwZXhMaW5lQ29sb3VySW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5k ZXggcGV4U3VyZmFjZUNvbG91ckluZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBl eEJmU3VyZmFjZUNvbG91ckluZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleFN1 cmZhY2VFZGdlQ29sb3VySW5kZXg7Cgp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleFRl eHRGb250SW5kZXg7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwog ICAgcGV4Q29sb3VyU3BlY2lmaWVyIGNvbG91clNwZWM7Cgp9IHBleE1hcmtlckNvbG91cjsKCnR5 cGVkZWYgcGV4TWFya2VyQ29sb3VyIHBleFRleHRDb2xvdXI7CnR5cGVkZWYgcGV4TWFya2VyQ29s b3VyIHBleExpbmVDb2xvdXI7CnR5cGVkZWYgcGV4TWFya2VyQ29sb3VyIHBleFN1cmZhY2VDb2xv dXI7CnR5cGVkZWYgcGV4TWFya2VyQ29sb3VyIHBleEJmU3VyZmFjZUNvbG91cjsKdHlwZWRlZiBw ZXhNYXJrZXJDb2xvdXIgcGV4U3VyZmFjZUVkZ2VDb2xvdXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRleCBzdHlsZSA7CiAgICBD QVJEMTYgcGFkIDsKfSBwZXhBdGV4dFN0eWxlOwoKdHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRl eCBwZXhUZXh0QnVuZGxlSW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4TGlu ZUJ1bmRsZUluZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleEludGVyaW9yQnVu ZGxlSW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVuZGxlSW5kZXggcGV4SW50ZXJpb3JTdHlsZUlu ZGV4Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleEJmSW50ZXJpb3JTdHlsZUluZGV4 Owp0eXBlZGVmIHBleE1hcmtlckJ1bmRsZUluZGV4IHBleEVkZ2VCdW5kbGVJbmRleDsKdHlwZWRl ZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBwZXhWaWV3SW5kZXg7CnR5cGVkZWYgcGV4TWFya2VyQnVu ZGxlSW5kZXggcGV4RGVwdGhDdWVJbmRleDsKdHlwZWRlZiBwZXhNYXJrZXJCdW5kbGVJbmRleCBw ZXhDb2xvdXJBcHByb3hJbmRleDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZv IGhlYWQ7CiAgICBDQVJEMTYgcHJlY2lzaW9uIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleFRleHRQ cmVjaXNpb247Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAg UEVYRkxPQVQgZXhwYW5zaW9uOwp9IHBleENoYXJFeHBhbnNpb247Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgUEVYRkxPQVQgc3BhY2luZzsKfSBwZXhDaGFy U3BhY2luZzsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBQ RVhGTE9BVCBoZWlnaHQ7Cn0gcGV4Q2hhckhlaWdodDsKdHlwZWRlZiBwZXhDaGFySGVpZ2h0IHBl eEF0ZXh0SGVpZ2h0OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsK ICAgIHBleFZlY3RvcjJEIHVwOwp9IHBleENoYXJVcFZlY3RvcjsKdHlwZWRlZiBwZXhDaGFyVXBW ZWN0b3IgcGV4QXRleHRVcFZlY3RvcjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJ bmZvIGhlYWQ7CiAgICBDQVJEMTYgcGF0aCA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhUZXh0UGF0 aDsKdHlwZWRlZiBwZXhUZXh0UGF0aCBwZXhBdGV4dFBhdGg7Cgp0eXBlZGVmIHN0cnVjdCB7CiAg ICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4VGV4dEFsaWdubWVudERhdGEgYWxpZ25tZW50 Owp9IHBleFRleHRBbGlnbm1lbnQ7CnR5cGVkZWYgcGV4VGV4dEFsaWdubWVudCBwZXhBdGV4dEFs aWdubWVudDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBw ZXhFbnVtVHlwZUluZGV4IGxpbmVUeXBlIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleExpbmVUeXBl OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIFBFWEZMT0FU IHdpZHRoOwp9IHBleExpbmVXaWR0aDsKdHlwZWRlZiBwZXhMaW5lV2lkdGggcGV4U3VyZmFjZUVk Z2VXaWR0aDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBw ZXhDdXJ2ZUFwcHJveCBhcHByb3g7Cn0gcGV4Q3VydmVBcHByb3hpbWF0aW9uOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggcG9s eWxpbmVJbnRlcnAgOwogICAgQ0FSRDE2IHBhZCA7Cn0gcGV4UG9seWxpbmVJbnRlcnA7Cgp0eXBl ZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRl eCBpbnRlcmlvclN0eWxlIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleEludGVyaW9yU3R5bGU7CnR5 cGVkZWYgcGV4SW50ZXJpb3JTdHlsZSBwZXhCZkludGVyaW9yU3R5bGU7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4UmVmbGVjdGlvbkF0dHIgcmVmbGVj dGlvbkF0dHI7Cn0gcGV4U3VyZmFjZVJlZmxBdHRyOwp0eXBlZGVmIHBleFN1cmZhY2VSZWZsQXR0 ciBwZXhCZlN1cmZhY2VSZWZsQXR0cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJ bmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlwZUluZGV4IHJlZmxlY3Rpb25Nb2RlbCA7CiAgICBDQVJE MTYgcGFkIDsKfSBwZXhTdXJmYWNlUmVmbE1vZGVsOwp0eXBlZGVmIHBleFN1cmZhY2VSZWZsTW9k ZWwgcGV4QmZTdXJmYWNlUmVmbE1vZGVsOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVu dEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggc3VyZmFjZUludGVycCA7CiAgICBDQVJE MTYgcGFkIDsKfSBwZXhTdXJmYWNlSW50ZXJwOwp0eXBlZGVmIHBleFN1cmZhY2VJbnRlcnAgcGV4 QmZTdXJmYWNlSW50ZXJwOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVh ZDsKICAgIHBleFN1cmZhY2VBcHByb3ggYXBwcm94Owp9IHBleFN1cmZhY2VBcHByb3hpbWF0aW9u OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEN1bGxN b2RlIGN1bGxNb2RlIDsKICAgIENBUkQxNiBwYWQgOwp9IHBleEN1bGxpbmdNb2RlOwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleFN3aXRjaCBkaXN0aW5n dWlzaDsKICAgIEJZVEUgcGFkWzNdOwp9IHBleERpc3Rpbmd1aXNoRmxhZzsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhWZWN0b3IyRCBzaXplOwp9IHBl eFBhdHRlcm5TaXplOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsK ICAgIHBleENvb3JkMkQgcG9pbnQ7Cn0gcGV4UGF0dGVyblJlZlB0OwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkM0QgcmVmUHQ7CiAgICBwZXhW ZWN0b3IzRCB2ZWN0b3IxOwogICAgcGV4VmVjdG9yM0QgdmVjdG9yMjsKfSBwZXhQYXR0ZXJuQXR0 cjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhTd2l0 Y2ggb25vZmY7CiAgICBCWVRFIHBhZFszXTsKfSBwZXhTdXJmYWNlRWRnZUZsYWc7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4RW51bVR5cGVJbmRleCBl ZGdlVHlwZSA7CiAgICBDQVJEMTYgcGFkIDsKfSBwZXhTdXJmYWNlRWRnZVR5cGU7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4QXNmQXR0cmlidXRlIGF0 dHJpYnV0ZSA7CiAgICBwZXhBc2ZWYWx1ZSBzb3VyY2U7CiAgICBCWVRFIHBhZFszXTsKfSBwZXhT ZXRBc2ZWYWx1ZXM7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwog ICAgcGV4Q29tcG9zaXRpb24gY29tcFR5cGU7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIHBleE1h dHJpeCBtYXRyaXg7Cn0gcGV4TG9jYWxUcmFuc2Zvcm07Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBw ZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4Q29tcG9zaXRpb24gY29tcFR5cGU7CiAgICBDQVJE MTYgdW51c2VkIDsKICAgIHBleE1hdHJpeDNYMyBtYXRyaXgzWDM7Cn0gcGV4TG9jYWxUcmFuc2Zv cm0yRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhN YXRyaXggbWF0cml4Owp9IHBleEdsb2JhbFRyYW5zZm9ybTsKCnR5cGVkZWYgc3RydWN0IHsKICAg IHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhNYXRyaXgzWDMgbWF0cml4M1gzOwp9IHBleEds b2JhbFRyYW5zZm9ybTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVh ZDsKICAgIHBleFN3aXRjaCBvbm9mZjsKICAgIEJZVEUgcGFkWzNdOwp9IHBleE1vZGVsQ2xpcDsK CnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlw ZUluZGV4IG1vZGVsQ2xpcE9wZXJhdG9yIDsKICAgIENBUkQxNiBudW1IYWxmU3BhY2VzIDsKCn0g cGV4TW9kZWxDbGlwVm9sdW1lOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8g aGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggbW9kZWxDbGlwT3BlcmF0b3IgOwogICAgQ0FSRDE2 IG51bUhhbGZTcGFjZXMgOwoKfSBwZXhNb2RlbENsaXBWb2x1bWUyRDsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7Cn0gcGV4UmVzdG9yZU1vZGVsQ2xpcDsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMTYgbnVtRW5hYmxl IDsKICAgIENBUkQxNiBudW1EaXNhYmxlIDsKCgoKCn0gcGV4TGlnaHRTdGF0ZTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMzIgcGlja0lkIDsKfSBw ZXhQaWNrSWQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAg Q0FSRDMyIGhsaHNySUQgOwp9IHBleEhsaHNySWRlbnRpZmllcjsKCnR5cGVkZWYgc3RydWN0IHsK ICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhFbnVtVHlwZUluZGV4IG1vZGVsIDsKICAg IENBUkQxNiBwYWQgOwp9IHBleFJlbmRlcmluZ0NvbG91ck1vZGVsOwoKdHlwZWRlZiBzdHJ1Y3Qg ewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleEVudW1UeXBlSW5kZXggY2hhcmFjdGVy aXN0aWNzIDsKICAgIENBUkQxNiBsZW5ndGggOwoKfSBwZXhQYXJhU3VyZkNoYXJhY3RlcmlzdGlj czsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7Cgp9IHBleEFkZFRv TmFtZVNldDsKdHlwZWRlZiBwZXhBZGRUb05hbWVTZXQgcGV4UmVtb3ZlRnJvbU5hbWVTZXQ7Cgp0 eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgcGV4U3RydWN0dXJl IGlkIDsKfSBwZXhFeGVjdXRlU3RydWN0dXJlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxl bWVudEluZm8gaGVhZDsKICAgIElOVDMyIGxhYmVsIDsKfSBwZXhMYWJlbDsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMTYgbnVtRWxlbWVudHMgOwog ICAgQ0FSRDE2IHVudXNlZCA7CgoKfSBwZXhBcHBsaWNhdGlvbkRhdGE7Cgp0eXBlZGVmIHN0cnVj dCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwogICAgQ0FSRDMyIGlkIDsKICAgIENBUkQxNiBu dW1FbGVtZW50cyA7CiAgICBDQVJEMTYgdW51c2VkIDsKCgp9IHBleEdzZTsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7Cgp9IHBleE1hcmtlcjsKCnR5cGVkZWYgc3Ry dWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7Cgp9IHBleE1hcmtlcjJEOwoKdHlwZWRlZiBz dHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkM0Qgb3JpZ2luOwog ICAgcGV4VmVjdG9yM0QgdmVjdG9yMTsKICAgIHBleFZlY3RvcjNEIHZlY3RvcjI7CiAgICBDQVJE MTYgbnVtRW5jb2RpbmdzIDsKICAgIENBUkQxNiB1bnVzZWQgOwoKfSBwZXhUZXh0OwoKdHlwZWRl ZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkMkQgb3JpZ2lu OwogICAgQ0FSRDE2IG51bUVuY29kaW5ncyA7CiAgICBDQVJEMTYgdW51c2VkIDsKCn0gcGV4VGV4 dDJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENv b3JkM0Qgb3JpZ2luOwogICAgcGV4Q29vcmQzRCBvZmZzZXQ7CiAgICBDQVJEMTYgbnVtRW5jb2Rp bmdzIDsKICAgIENBUkQxNiB1bnVzZWQgOwoKfSBwZXhBbm5vdGF0aW9uVGV4dDsKCnR5cGVkZWYg c3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb29yZDJEIG9yaWdpbjsK ICAgIHBleENvb3JkMkQgb2Zmc2V0OwogICAgQ0FSRDE2IG51bUVuY29kaW5ncyA7CiAgICBDQVJE MTYgdW51c2VkIDsKCn0gcGV4QW5ub3RhdGlvblRleHQyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAg IHBleEVsZW1lbnRJbmZvIGhlYWQ7Cgp9IHBleFBvbHlsaW5lOwoKdHlwZWRlZiBzdHJ1Y3Qgewog ICAgcGV4RWxlbWVudEluZm8gaGVhZDsKCn0gcGV4UG9seWxpbmUyRDsKCnR5cGVkZWYgc3RydWN0 IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb2xvdXJUeXBlIGNvbG91clR5cGUg OwogICAgcGV4Qml0bWFza1Nob3J0IHZlcnRleEF0dHJpYnMgOwogICAgQ0FSRDMyIG51bUxpc3Rz IDsKCn0gcGV4UG9seWxpbmVTZXQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5m byBoZWFkOwogICAgQ0FSRDE2IGN1cnZlT3JkZXIgOwogICAgcGV4Q29vcmRUeXBlIGNvb3JkVHlw ZSA7CiAgICBQRVhGTE9BVCB0bWluOwogICAgUEVYRkxPQVQgdG1heDsKICAgIENBUkQzMiBudW1L bm90cyA7CiAgICBDQVJEMzIgbnVtUG9pbnRzIDsKCgp9IHBleE51cmJDdXJ2ZTsKCnR5cGVkZWYg c3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMTYgc2hhcGUgOwogICAg cGV4U3dpdGNoIGlnbm9yZUVkZ2VzOwogICAgQ0FSRDggcGFkOwoKfSBwZXhGaWxsQXJlYTsKCnR5 cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBDQVJEMTYgc2hhcGUg OwogICAgcGV4U3dpdGNoIGlnbm9yZUVkZ2VzOwogICAgQ0FSRDggdW51c2VkOwoKfSBwZXhGaWxs QXJlYTJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENB UkQxNiBzaGFwZSA7CiAgICBwZXhTd2l0Y2ggaWdub3JlRWRnZXM7CiAgICBDQVJEOCB1bnVzZWQ7 CiAgICBwZXhDb2xvdXJUeXBlIGNvbG91clR5cGUgOwogICAgcGV4Qml0bWFza1Nob3J0IGZhY2V0 QXR0cmlicyA7CiAgICBwZXhCaXRtYXNrU2hvcnQgdmVydGV4QXR0cmlicyA7CiAgICBDQVJEMTYg dW51c2VkMiA7Cgp9IHBleEV4dEZpbGxBcmVhOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxl bWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBzaGFwZSA7CiAgICBwZXhTd2l0Y2ggaWdub3JlRWRn ZXM7CiAgICBDQVJEOCBjb250b3VySGludDsKICAgIENBUkQzMiBudW1MaXN0cyA7Cgp9IHBleEZp bGxBcmVhU2V0OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAg IENBUkQxNiBzaGFwZSA7CiAgICBwZXhTd2l0Y2ggaWdub3JlRWRnZXM7CiAgICBDQVJEOCBjb250 b3VySGludDsKICAgIENBUkQzMiBudW1MaXN0cyA7Cgp9IHBleEZpbGxBcmVhU2V0MkQ7CgoKdHlw ZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBzaGFwZSA7 CiAgICBwZXhTd2l0Y2ggaWdub3JlRWRnZXM7CiAgICBDQVJEOCBjb250b3VySGludDsKICAgIHBl eENvbG91clR5cGUgY29sb3VyVHlwZSA7CiAgICBwZXhCaXRtYXNrU2hvcnQgZmFjZXRBdHRyaWJz IDsKICAgIHBleEJpdG1hc2tTaG9ydCB2ZXJ0ZXhBdHRyaWJzIDsKICAgIENBUkQxNiB1bnVzZWQy IDsKICAgIENBUkQzMiBudW1MaXN0cyA7CgoKfSBwZXhFeHRGaWxsQXJlYVNldDsKCnR5cGVkZWYg c3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb2xvdXJUeXBlIGNvbG91 clR5cGUgOwogICAgcGV4Qml0bWFza1Nob3J0IGZhY2V0QXR0cmlicyA7CiAgICBwZXhCaXRtYXNr U2hvcnQgdmVydGV4QXR0cmlicyA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIENBUkQzMiBudW1W ZXJ0aWNlcyA7CgoKCn0gcGV4VHJpYW5nbGVTdHJpcDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBl eEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb2xvdXJUeXBlIGNvbG91clR5cGUgOwogICAgQ0FS RDE2IG1QdHMgOwogICAgQ0FSRDE2IG5QdHMgOwogICAgcGV4Qml0bWFza1Nob3J0IGZhY2V0QXR0 cmlicyA7CiAgICBwZXhCaXRtYXNrU2hvcnQgdmVydGV4QXR0cmlicyA7CiAgICBDQVJEMTYgc2hh cGUgOwoKCgp9IHBleFF1YWRyaWxhdGVyYWxNZXNoOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4 RWxlbWVudEluZm8gaGVhZDsKICAgIENBUkQxNiBzaGFwZSA7CiAgICBwZXhDb2xvdXJUeXBlIGNv bG91clR5cGUgOwogICAgQ0FSRDE2IEZBU19BdHRyaWJ1dGVzIDsKICAgIENBUkQxNiB2ZXJ0ZXhB dHRyaWJ1dGVzIDsKICAgIENBUkQxNiBlZGdlQXR0cmlidXRlcyA7CiAgICBDQVJEOCBjb250b3Vy SGludDsKICAgIHBleFN3aXRjaCBjb250b3VyQ291bnRzRmxhZzsKICAgIENBUkQxNiBudW1GQVMg OwogICAgQ0FSRDE2IG51bVZlcnRpY2VzIDsKICAgIENBUkQxNiBudW1FZGdlcyA7CiAgICBDQVJE MTYgbnVtQ29udG91cnMgOwoKCgoKCgp9IHBleFNPRkFTOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg cGV4RWxlbWVudEluZm8gaGVhZDsKICAgIHBleENvb3JkVHlwZSB0eXBlIDsKICAgIENBUkQxNiB1 T3JkZXIgOwogICAgQ0FSRDE2IHZPcmRlciA7CiAgICBDQVJEMTYgdW51c2VkIDsKICAgIENBUkQz MiBudW1Va25vdHMgOwogICAgQ0FSRDMyIG51bVZrbm90cyA7CiAgICBDQVJEMTYgbVB0cyA7CiAg ICBDQVJEMTYgblB0cyA7CiAgICBDQVJEMzIgbnVtTGlzdHMgOwoKCgoKfSBwZXhOdXJiU3VyZmFj ZTsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb29y ZDNEIHBvaW50MTsKICAgIHBleENvb3JkM0QgcG9pbnQyOwogICAgcGV4Q29vcmQzRCBwb2ludDM7 CiAgICBDQVJEMzIgZHggOwogICAgQ0FSRDMyIGR5IDsKCgp9IHBleENlbGxBcnJheTsKCnR5cGVk ZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZvIGhlYWQ7CiAgICBwZXhDb29yZDJEIHBvaW50 MTsKICAgIHBleENvb3JkMkQgcG9pbnQyOwogICAgQ0FSRDMyIGR4IDsKICAgIENBUkQzMiBkeSA7 CgoKfSBwZXhDZWxsQXJyYXkyRDsKCnR5cGVkZWYgc3RydWN0IHsKICAgIHBleEVsZW1lbnRJbmZv IGhlYWQ7CiAgICBwZXhDb2xvdXJUeXBlIGNvbG91clR5cGUgOwogICAgQ0FSRDE2IHVudXNlZCA7 CiAgICBwZXhDb29yZDNEIHBvaW50MTsKICAgIHBleENvb3JkM0QgcG9pbnQyOwogICAgcGV4Q29v cmQzRCBwb2ludDM7CiAgICBDQVJEMzIgZHggOwogICAgQ0FSRDMyIGR5IDsKCn0gcGV4RXh0Q2Vs bEFycmF5OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8gaGVhZDsKICAgIElO VDMyIGdkcElkIDsKICAgIENBUkQzMiBudW1Qb2ludHMgOwogICAgQ0FSRDMyIG51bUJ5dGVzIDsK CgoKfSBwZXhHZHA7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBwZXhFbGVtZW50SW5mbyBoZWFkOwog ICAgSU5UMzIgZ2RwSWQgOwogICAgQ0FSRDMyIG51bVBvaW50cyA7CiAgICBDQVJEMzIgbnVtQnl0 ZXMgOwoKCgp9IHBleEdkcDJEOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgcGV4RWxlbWVudEluZm8g aGVhZDsKfSBwZXhOb29wOwoKCgoKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBCWVRFIHR5cGU7CiAg ICBDQVJEOCB3aGF0OwogICAgQ0FSRDE2IHNlcXVlbmNlTnVtYmVyIDsKICAgIENBUkQzMiByZHIg OwogICAgQllURSBwYWRbMjRdOwp9IHBleE1heEhpdHNSZWFjaGVkRXZlbnQ7CiMgNTYgIi4uL2lu Y2x1ZGUvbWlTdHJ1Y3QuaCIgMgoKCnR5cGVkZWYgZGRwZXg0cnRuICgqY3NzVGFibGVUeXBlKSgp OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGRkVVNIT1JUIGVsZW1lbnRUeXBlOwogICAgICAg IGRkVVNIT1JUIHBleE9DbGVuZ3RoOwojIDczICIuLi9pbmNsdWRlL21pU3RydWN0LmgiCn0gbWlH ZW5lcmljU3RyOwoKdHlwZWRlZiBzdHJ1Y3QgX21pQ1NTRWxlbWVudCB7CiAgICAgICAgc3RydWN0 IF9taUNTU0VsZW1lbnQgKnByZXYsICpuZXh0OwogICAgICAgIGRpU3RydWN0SGFuZGxlIHBTdHJ1 Y3Q7CiAgICAgICAgbWlHZW5lcmljU3RyIGVsZW1lbnQ7Cgp9IG1pR2VuZXJpY0VsZW1lbnRTdHIs ICptaUdlbmVyaWNFbGVtZW50UHRyOwoKdHlwZWRlZiBzdHJ1Y3QgX21pQ1NTRWxlbWVudEhlYWQg ewogICAgICAgIHN0cnVjdCBfbWlDU1NFbGVtZW50SGVhZCAqbmV4dCwgKnByZXY7Cn0gbWlFbGVt ZW50SGVhZFN0cjsKCgoKdHlwZWRlZiBzdHJ1Y3QgX21pU3RydWN0SGVhZGVyIHsKCiAgICAgICAg ZGRVU0hPUlQgZWRpdE1vZGU7CiAgICAgICAgZGRVTE9ORyBudW1FbGVtZW50czsKICAgICAgICBk ZFVMT05HIHRvdGFsU2l6ZTsKICAgICAgICBtaUdlbmVyaWNFbGVtZW50UHRyIHBaZXJvRWxlbWVu dDsKICAgICAgICBtaUdlbmVyaWNFbGVtZW50UHRyIHBMYXN0RWxlbWVudDsKICAgICAgICBtaUdl bmVyaWNFbGVtZW50UHRyIHBDdXJyRWxlbWVudDsKICAgICAgICBkZExPTkcgY3VyckVsZW1lbnRP ZmZzZXQ7CiAgICAgICAgbGlzdG9mT2JqICpwYXJlbnRzOwogICAgICAgIGxpc3RvZk9iaiAqY2hp bGRyZW47CiAgICAgICAgbGlzdG9mT2JqICp3a3NQb3N0ZWRUbzsKICAgICAgICBsaXN0b2ZPYmog Kndrc0FwcGVhck9uOwogICAgICAgIGRkVUxPTkcgcmVmQ291bnQ7CiAgICAgICAgZGRCT09MIGZy ZWVGbGFnOwoKfSBtaVN0cnVjdFN0ciwgKm1pU3RydWN0UHRyOwojIDEyNSAiLi4vaW5jbHVkZS9t aVN0cnVjdC5oIgp0eXBlZGVmIGVudW0gewogICAgICAgIEVTX1lFUyA9IDAsCiAgICAgICAgRVNf UE9QID0gMSwKICAgICAgICBFU19GT0xMT1dfUElDSyA9IDIsCiAgICAgICAgRVNfRk9MTE9XX1NF QVJDSCA9IDMKfSBtaUV4ZWNTdHJTdGF0ZTsKCgp0eXBlZGVmIHN0cnVjdCBfbWlQUExldmVsIHsK ICBkZFBpY2tQYXRoIHBwOwogIHN0cnVjdCBfbWlQUExldmVsICp1cDsKfSBtaVBQTGV2ZWw7CgoK CgoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBtaUV4ZWNTdHJTdGF0ZSBleGVjX3N0cl9mbGFn OwogICAgICAgIGRkVUxPTkcgcGlja0lkOwogICAgICAgIGRkVUxPTkcgUk9Db2Zmc2V0OwogICAg ICAgIGRkUGlja1BhdGggKnBfY3Vycl9waWNrX2VsOwogICAgICAgIGRkRWxlbWVudFJlZiAqcF9j dXJyX3NjX2VsOwogICAgICAgIGRkU0hPUlQgbWF4X2RlcHRoOwogICAgICAgIG1pUFBMZXZlbCAq cF9waWNrX3BhdGg7Cn0gbWlUcmF2ZXJzZXJTdGF0ZTsKIyA1NiAibWlQY2sxUHJpbS5jIiAyCiMg MSAiLi4vaW5jbHVkZS9taUZvbnQuaCIgMQojIDU2ICIuLi9pbmNsdWRlL21pRm9udC5oIgojIDEg Ii4uLy4uLy4uL2luY2x1ZGUvZGRwZXgzLmgiIDEKIyA1NyAiLi4vaW5jbHVkZS9taUZvbnQuaCIg MgojIDc1ICIuLi9pbmNsdWRlL21pRm9udC5oIgp0eXBlZGVmIGVudW0gewogICAgUEFUSF8yRD0w LAogICAgUEFUSF8zRD0xLAogICAgUEFUSF80RD0yCn0gRm9udF9wYXRoX3R5cGU7Cgp0eXBlZGVm IHN0cnVjdCB7CiAgICBGb250X3BhdGhfdHlwZSB0eXBlOwogICAgZGRGTE9BVCBjZW50ZXI7CiAg ICBkZEZMT0FUIHJpZ2h0OwogICAgZGRVTE9ORyBuX3ZlcnRpY2VzOwogICAgbWlMaXN0SGVhZGVy IHN0cm9rZXM7Cn0gQ2hfc3Ryb2tlX2RhdGE7Cgp0eXBlZGVmIGVudW0gewogICAgRk9OVF9QT0xZ TElORVM9MCwKICAgIEZPTlRfU1BMSU5FUz0xLAogICAgRk9OVF9QT0xZR09OUz0yCn0gRm9udF90 eXBlOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgRm9udF90eXBlIGZvbnRfdHlwZTsKICAgIGNoYXIg bmFtZVs4MF07CiAgICB1bnNpZ25lZCBsb25nIG51bV9jaDsKICAgIGZsb2F0IHRvcCwgYm90dG9t LCBtYXhfd2lkdGg7CiAgICBDaF9zdHJva2VfZGF0YSAqKmNoX2RhdGE7CiAgICBwZXhGb250SW5m byBmb250X2luZm87CiAgICBwZXhGb250UHJvcCAqcHJvcGVydGllczsKICAgIGludCBsdXRSZWZD b3VudDsKICAgIGludCBmcmVlRmxhZzsKfSBtaUZvbnRIZWFkZXI7Cgp0eXBlZGVmIHN0cnVjdCB7 CiAgICBkZEZMT0FUIHRvcCwgYm90dG9tLCB3aWR0aDsKfSBNZXRhX2ZvbnQ7Cgp0eXBlZGVmIHN0 cnVjdCB7CiAgY2hhciBwcm9wbmFtZVs4MF07CiAgY2hhciBwcm9wdmFsdWVbODBdOwp9UHJvcGVy dHk7Cgp0eXBlZGVmIHN0cnVjdAp7CiAgICBpbnQgbWFnaWM7CiAgICBjaGFyIG5hbWVbODBdOwog ICAgZmxvYXQgdG9wLAogICAgICAgICAgICBib3R0b20sCiAgICAgICAgICAgIG1heF93aWR0aDsK ICAgIGludCBudW1fY2g7CiAgICBpbnQgbnVtX3Byb3BzOwogICAgUHJvcGVydHkgKnByb3BlcnRp ZXM7Cn0gRm9udF9maWxlX2hlYWRlcjsKCnR5cGVkZWYgc3RydWN0CnsKICAgIGZsb2F0IGNlbnRl ciwKICAgICAgICAgICAgcmlnaHQ7CiAgICBsb25nIG9mZnNldDsKCn0gRGlzcGF0Y2g7CiMgNTcg Im1pUGNrMVByaW0uYyIgMgojIDEgIi4uL2luY2x1ZGUvbWlXa3MuaCIgMQojIDUwICIuLi9pbmNs dWRlL21pV2tzLmgiCiMgMSAiLi4vLi4vLi4vaW5jbHVkZS9kZHBleDQuaCIgMQojIDUxICIuLi9p bmNsdWRlL21pV2tzLmgiIDIKIyAxICIuLi9pbmNsdWRlL21pTlMuaCIgMQojIDUyICIuLi9pbmNs dWRlL21pV2tzLmgiIDIKCiMgMSAiLi4vaW5jbHVkZS9taUluZm8uaCIgMQojIDY1ICIuLi9pbmNs dWRlL21pSW5mby5oIgojIDEgIi4uL2luY2x1ZGUvbWlOUy5oIiAxCiMgNjYgIi4uL2luY2x1ZGUv bWlJbmZvLmgiIDIKIyA1NCAiLi4vaW5jbHVkZS9taVdrcy5oIiAyCiMgMSAiLi4vaW5jbHVkZS9t aVBpY2suaCIgMQojIDUwICIuLi9pbmNsdWRlL21pUGljay5oIgojIDEgIi4uLy4uLy4uL2luY2x1 ZGUvZGRwZXg0LmgiIDEKIyA1MSAiLi4vaW5jbHVkZS9taVBpY2suaCIgMgojIDU5ICIuLi9pbmNs dWRlL21pUGljay5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICBkZEVudW1UeXBlSW5kZXggdHlwZTsK ICAgIGRkVVNIT1JUIHN0YXR1czsKICAgIGxpc3RvZk9iaiAqcGF0aDsKICAgIGRkVVNIT1JUIHBh dGhPcmRlcjsKICAgIGRpTlNIYW5kbGUgaW5jbHVzaW9uOwogICAgZGlOU0hhbmRsZSBleGNsdXNp b247CiAgICB1bmlvbiB7CiAgICAgICAgY2hhciBkY19kYXRhX3JlYzsKICAgICAgICBjaGFyIG5w Y19kYXRhX3JlYzsKICAgIH0gZGF0YV9yZWM7CiAgICBkZEVudW1UeXBlSW5kZXggcGV0OwogICAg ZGRWaWV3cG9ydCBlY2hvVm9sdW1lOwogICAgZGRVU0hPUlQgZWNob1N3aXRjaDsKICAgIGRkUG9p bnRlciBkZXZQcml2Owp9IG1pUGlja0RldmljZTsKCnR5cGVkZWYgc3RydWN0IHsKCiAgICAgICAg ZGlXS1NIYW5kbGUgcFdrczsKICAgICAgICBkZEVudW1UeXBlSW5kZXggdHlwZTsKICAgICAgICBk ZFVTSE9SVCBzdGF0dXM7CiAgICAgICAgbGlzdG9mT2JqICpwYXRoOwogICAgICAgIGRkVVNIT1JU IHBhdGhPcmRlcjsKICAgIGRpTlNIYW5kbGUgaW5jbF9oYW5kbGU7CiAgICBkaU5TSGFuZGxlIGV4 Y2xfaGFuZGxlOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIGNoYXIgZGNfZGF0YV9y ZWM7CiAgICAgICAgICAgICAgICBjaGFyIG5wY19kYXRhX3JlYzsKICAgICAgICB9IGRhdGFfcmVj OwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIGRkUENfRENfSGl0Qm94IGRjX2hpdF9i b3g7CiAgICAgICAgICAgICAgICBkZFBDX05QQ19IaXRWb2x1bWUgbnBjX2hpdF92b2x1bWU7CiAg ICAgICAgfSBpbnB1dF9yZWM7CiAgICBkZFBvaW50ZXIgZGV2UHJpdjsKfSBtaVBpY2tNZWFzdXJl U3RyOwojIDU1ICIuLi9pbmNsdWRlL21pV2tzLmgiIDIKCgoKCnR5cGVkZWYgc3RydWN0IF9kZE9y ZFN0cnVjdCB7CiAgICAgICAgZGlTdHJ1Y3RIYW5kbGUgcHN0cnVjdDsKICAgICAgICBkZEZMT0FU IHByaW9yaXR5OwogICAgICAgIHN0cnVjdCBfZGRPcmRTdHJ1Y3QgKm5leHQ7Cn0gZGRPcmRTdHJ1 Y3Q7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgZGRVTE9ORyBudW1TdHJ1Y3RzOwogICAgICAg IGRkT3JkU3RydWN0ICpwb3N0cnVjdDsKfSBsaXN0b2ZPcmRTdHJ1Y3Q7CiMgMTAzICIuLi9pbmNs dWRlL21pV2tzLmgiCnR5cGVkZWYgc3RydWN0IF9kZE9yZFZpZXcgewogICAgICAgIHNob3J0IGRl ZmluZWQ7CiAgICAgICAgZGRVU0hPUlQgZmlyc3RfdmlldzsKICAgICAgICBkZFVTSE9SVCBsYXN0 X3ZpZXc7CiAgICAgICAgc3RydWN0IF9kZE9yZFZpZXcgKmhpZ2hlcjsKICAgICAgICBzdHJ1Y3Qg X2RkT3JkVmlldyAqbG93ZXI7Cn0gZGRPcmRWaWV3OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg IGRkVUxPTkcgZGVmaW5lZF92aWV3czsKICAgICAgICBkZE9yZFZpZXcgKmhpZ2hlc3Q7CiAgICAg ICAgZGRPcmRWaWV3ICpsb3dlc3Q7CiAgICAgICAgZGRPcmRWaWV3ICpmcmVlOwogICAgICAgIGRk T3JkVmlldyBlbnRyaWVzWyggNiAqIDIgKyAzKV07Cn0gbGlzdG9mT3JkVmlldzsKCgoKCgoKCnR5 cGVkZWYgc3RydWN0IF9taVdrcyB7CgogICAgICAgIGRkRW51bVR5cGVJbmRleCBkaXNwbGF5VXBk YXRlOwogICAgICAgIGRkQllURSB2aXN1YWxTdGF0ZTsKICAgICAgICBkZEJZVEUgZGlzcGxheVN1 cmZhY2U7CiAgICAgICAgZGRCWVRFIHZpZXdVcGRhdGU7CgoKICAgICAgICBsaXN0b2ZPcmRWaWV3 IHZpZXdzOwogICAgICAgIGRpTFVUSGFuZGxlIHJlcVZpZXdUYWJsZTsKCgogICAgICAgIGRkVUxP TkcgZGVsdGF2aWV3TWFzazsKCiAgICAgICAgZGRCWVRFIHdrc1VwZGF0ZTsKCiAgICAgICAgZGRC WVRFIHdrc01hc2s7CiAgICAgICAgZGROcGNTdWJ2b2x1bWUgcmVxTnBjU3Vidm9sdW1lOwoKICAg ICAgICBkZFZpZXdwb3J0IHJlcXZpZXdwb3J0OwoKICAgICAgICBkZEJZVEUgaGxoc3JVcGRhdGU7 CiAgICAgICAgZGRFbnVtVHlwZUluZGV4IHJlcWhsaHNyTW9kZTsKCiAgICAgICAgZGRSZW5kZXJl clB0ciBwUmVuZDsKIyAxNzYgIi4uL2luY2x1ZGUvbWlXa3MuaCIKICAgICAgICBkZEJZVEUgYnVm ZmVyVXBkYXRlOwogICAgICAgIGRkVVNIT1JUIGN1ckJ1ZmZlck1vZGU7CiAgICAgICAgZGRVU0hP UlQgcmVxQnVmZmVyTW9kZTsKICAgICAgICBsaXN0b2ZPcmRTdHJ1Y3QgcG9zdGVkU3RydWN0czsK ICAgICAgICBkZEJZVEUgZHluYW1pY3NbTUFYX0RZTkFNSUNdOwoKICAgICAgICBkZEJPT0wgZnJl ZUZsYWc7CiAgICAgICAgZGRMT05HIHJlZkNvdW50OwogICAgICAgIG1pUGlja0RldmljZSBkZXZp Y2VzWzJdOwoKICAgICAgICBsaXN0b2ZPYmogKnB3a3NMaXN0OwogICAgICAgIERyYXdhYmxlUHRy IGRvdWJsZURyYXdhYmxlc1syXTsKICAgICAgICBpbnQgY3VyRG91YmxlQnVmZmVyOwogICAgICAg IGludCBoYXNEb3VibGVCdWZmZXI7CiAgICAgICAgaW50IHVzaW5nRG91YmxlQnVmZmVyOwogICAg ICAgIERyYXdhYmxlUHRyIHBDdXJEcmF3YWJsZTsKfSBtaVdrc1N0ciwgKm1pV2tzUHRyOwojIDU4 ICJtaVBjazFQcmltLmMiIDIKIyAxICIuLi9pbmNsdWRlL21pVGV4dC5oIiAxCiMgNTcgIi4uL2lu Y2x1ZGUvbWlUZXh0LmgiCnR5cGVkZWYgc3RydWN0IHsKICAgIGRkVmVjdG9yMkQgdHJhbnM7CiAg ICBtaUxpc3RIZWFkZXIgKnBhdGg7CiAgfW1pQ2hhclBhdGg7Cgp0eXBlZGVmIHN0cnVjdCB7Cgog ICAgbWlDaGFyUGF0aCAqcGF0aHM7CiAgICBkZEZMT0FUIHhmb3JtWzRdWzRdOwoKICB9bWlUZXh0 RWxlbWVudDsKIyA1OSAibWlQY2sxUHJpbS5jIiAyCiMgMSAiLi4vaW5jbHVkZS9taUNsaXAuaCIg MQojIDUzICIuLi9pbmNsdWRlL21pQ2xpcC5oIgojIDEgIi4uL2luY2x1ZGUvbWlMaWdodC5oIiAx CiMgNTQgIi4uL2luY2x1ZGUvbWlDbGlwLmgiIDIKIyA2MCAibWlQY2sxUHJpbS5jIiAyCiMgNzQg Im1pUGNrMVByaW0uYyIKZGRwZXgycnRuCm1pUGljazFQb2x5TGluZShwUmVuZCwgcGRkYywgaW5w dXRfbGlzdCkKCiAgICBkZFJlbmRlcmVyUHRyIHBSZW5kOwogICAgbWlERENvbnRleHQgKnBkZGM7 CiAgICBtaUxpc3RIZWFkZXIgKmlucHV0X2xpc3Q7CnsKCgoKCgoKICAgICAgaWYgKGlucHV0X2xp c3QtPm51bUxpc3RzID4gMCkgewogICAgICAgICAgcGRkYy0+U3RhdGljLnBpY2suc3RhdHVzID0g MTsKICAgICAgfQogICAgICByZXR1cm4gKDApOwp9CiMgMTA1ICJtaVBjazFQcmltLmMiCmRkcGV4 MnJ0bgptaVBpY2sxVGV4dChwUmVuZCwgcGRkYywgaW5wdXRfbGlzdCkKCiAgICBkZFJlbmRlcmVy UHRyIHBSZW5kOwogICAgbWlERENvbnRleHQgKnBkZGM7CiAgICBtaUxpc3RIZWFkZXIgKmlucHV0 X2xpc3Q7Cgp7CgoKCgoKCiAgICAgIGlmIChpbnB1dF9saXN0LT5udW1MaXN0cyA+IDApIHsKICAg ICAgICAgIHBkZGMtPlN0YXRpYy5waWNrLnN0YXR1cyA9IDE7CiAgICAgIH0KICAgICAgcmV0dXJu ICgwKTsKfQojIDEzNyAibWlQY2sxUHJpbS5jIgpkZHBleDJydG4KbWlQaWNrMU1hcmtlcihwUmVu ZCwgcGRkYywgaW5wdXRfbGlzdCkKCiAgICBkZFJlbmRlcmVyUHRyIHBSZW5kOwogICAgbWlERENv bnRleHQgKnBkZGM7CiAgICBtaUxpc3RIZWFkZXIgKmlucHV0X2xpc3Q7Cgp7CgoKCgoKCiAgICAg IGlmIChpbnB1dF9saXN0LT5udW1MaXN0cyA+IDApIHsKICAgICAgICAgIHBkZGMtPlN0YXRpYy5w aWNrLnN0YXR1cyA9IDE7CiAgICAgIH0KICAgICAgcmV0dXJuICgwKTsKfQojIDE2OCAibWlQY2sx UHJpbS5jIgpzdGF0aWMKZGRwZXgycnRuCkNoZWNrRkFyZWFQaWNrMSAoaW5fbGlzdCkKCiAgICBt aUxpc3RIZWFkZXIgKmluX2xpc3Q7Cgp7CgoKCgogICAgbGlzdG9mZGRQb2ludCAqcG9seV9saXN0 OwogICAgZGRQb2ludFVuaW9uIHB0X2xpc3Q7CiAgICBpbnQgcHRfc2l6ZTsKICAgIGRkQ29vcmQy RCB2MSwgdjI7CiAgICBkZFNIT1JUIHhfc2FtZSwgeV9zYW1lOwogICAgaW50IGksIGo7CiAgICBp bnQgdmNvdW50LCBoY291bnQ7CiMgMjI5ICJtaVBjazFQcmltLmMiCiAgICBwb2x5X2xpc3QgPSBp bl9saXN0LT5kZExpc3Q7CgogICAgeyBpZiAoKCEoKGluX2xpc3QtPnR5cGUpICYgKDE8PDApKSkp IHsgaWYgKCgoKGluX2xpc3QtPnR5cGUpICYgKDM8PDEpKSA9PSAoMTw8MSkpKSBwdF9zaXplID0g c2l6ZW9mKGRkQ29vcmQyRCk7IGVsc2UgaWYgKCgoKGluX2xpc3QtPnR5cGUpICYgKDM8PDEpKSA9 PSAoMjw8MSkpKSBwdF9zaXplID0gc2l6ZW9mKGRkQ29vcmQzRCk7IGVsc2UgcHRfc2l6ZSA9IHNp emVvZihkZENvb3JkNEQpOyB9IGVsc2UgeyBpZiAoKCgoaW5fbGlzdC0+dHlwZSkgJiAoMzw8MSkp ID09ICgxPDwxKSkpIHB0X3NpemUgPSBzaXplb2YoZGRDb29yZDJEUyk7IGVsc2UgcHRfc2l6ZSA9 IHNpemVvZihkZENvb3JkM0RTKTsgfSBpZiAoKChpbl9saXN0LT50eXBlKSAmICgxPDwzKSkpIHB0 X3NpemUgKz0gc2l6ZW9mKGRkVmVjdG9yM0QpOyBpZiAoKChpbl9saXN0LT50eXBlKSAmICg3PDw1 KSkpIHsgaWYgKCgoKGluX2xpc3QtPnR5cGUpICYgKDc8PDUpKSA9PSAoMTw8NSkpKSBwdF9zaXpl ICs9IHNpemVvZihkZEluZGV4ZWRDb2xvdXIpOyBlbHNlIGlmICgoKChpbl9saXN0LT50eXBlKSAm ICg3PDw1KSkgPT0gKDI8PDUpKSkgcHRfc2l6ZSArPSBzaXplb2YoZGRSZ2I4Q29sb3VyKTsgZWxz ZSBpZiAoKCgoaW5fbGlzdC0+dHlwZSkgJiAoNzw8NSkpID09ICgzPDw1KSkpIHB0X3NpemUgKz0g c2l6ZW9mKGRkUmdiMTZDb2xvdXIpOyBlbHNlIHB0X3NpemUgKz0gc2l6ZW9mKGRkUmdiRmxvYXRD b2xvdXIpOyB9IGlmICgoKGluX2xpc3QtPnR5cGUpICYgKDE8PDQpKSkgcHRfc2l6ZSArPSBzaXpl b2YoZGRVTE9ORyk7IH07CgogICAgZm9yIChpPTA7IGk8aW5fbGlzdC0+bnVtTGlzdHM7IGkrKywg cG9seV9saXN0KyspIHsKCgoKICAgICAgICBwdF9saXN0LnB0ciA9IHBvbHlfbGlzdC0+cHRzLnB0 cjsKCiAgICAgICAgZm9yIChqPTA7IGo8aW5fbGlzdC0+ZGRMaXN0LT5udW1Qb2ludHM7IGorKykg ewoKCgogICAgICAgICAgICBwdF9saXN0LnB0ciArPSBwdF9zaXplOwoKCgogICAgICAgICAgICBp ZiAoKHB0X2xpc3QucDJEU3B0LT54ID4gLTEpICYmCiAgICAgICAgICAgICAgICAocHRfbGlzdC5w MkRTcHQtPnggPCAxKSAmJgogICAgICAgICAgICAgICAgKHB0X2xpc3QucDJEU3B0LT55ID4gLTEp ICYmCiAgICAgICAgICAgICAgICAocHRfbGlzdC5wMkRTcHQtPnkgPCAxKSkKCgoKCiAgICAgICAg ICAgICAgICByZXR1cm4gKDApOwogICAgICAgIH0KICAgIH0KCgoKCgoKICAgIHZjb3VudCA9IGhj b3VudCA9IDA7CgoKCgogICAgcG9seV9saXN0ID0gaW5fbGlzdC0+ZGRMaXN0OwoKICAgIGZvciAo aT0wOyBpPGluX2xpc3QtPm51bUxpc3RzOyBpKyssIHBvbHlfbGlzdCsrKSB7CgoKCiAgICAgICAg cHRfbGlzdC5wdHIgPSBwb2x5X2xpc3QtPnB0cy5wdHI7CgogICAgICAgIGZvciAoaj0wOyBqPGlu X2xpc3QtPmRkTGlzdC0+bnVtUG9pbnRzLTE7IGorKykgewoKCgogICAgICAgICAgICB2MS54ID0g cHRfbGlzdC5wMkRTcHQtPng7CiAgICAgICAgICAgIHYxLnkgPSBwdF9saXN0LnAyRFNwdC0+eTsK CgoKICAgICAgICAgICAgcHRfbGlzdC5wdHIgKz0gcHRfc2l6ZTsKCgoKICAgICAgICAgICAgdjIu eCA9IHB0X2xpc3QucDJEU3B0LT54OwogICAgICAgICAgICB2Mi55ID0gcHRfbGlzdC5wMkRTcHQt Pnk7CgoKCiAgICAgICAgICAgIGlmICgoKCh2MS54LXYyLngpIDwgMCA/IC0odjEueC12Mi54KSA6 ICh2MS54LXYyLngpKSA8IDEuMGUtMzApKQogICAgICAgICAgICAgICAgeF9zYW1lID0gMTsKICAg ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgeF9zYW1lID0gMDsKCiAgICAgICAgICAgIGlm ICgoKCh2MS55LXYyLnkpIDwgMCA/IC0odjEueS12Mi55KSA6ICh2MS55LXYyLnkpKSA8IDEuMGUt MzApKQogICAgICAgICAgICAgICAgeV9zYW1lID0gMTsKICAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgICAgeV9zYW1lID0gMDsKCiAgICAgICAgICAgIGlmICgoeF9zYW1lKSYmKHYxLnggPiAw KSkKCgoKICAgICAgICAgICAgICAgIHZjb3VudCsrOwoKICAgICAgICAgICAgaWYgKCh5X3NhbWUp JiYodjEueSA+IDApKQoKCgogICAgICAgICAgICAgICAgaGNvdW50Kys7CgogICAgICAgIH0KCgoK ICAgICAgICBpZiAodmNvdW50JTIpIHsKICAgICAgICAgICAgcmV0dXJuICgwKTsKICAgICAgICB9 CiAgICAgICAgZWxzZSB7CgoKCgogICAgICAgICAgICBpZiAoKHZjb3VudCA9PSAwKSYmKGhjb3Vu dCUyKSkgcmV0dXJuICgwKTsKICAgICAgICB9CgogICAgICAgIGNvbnRpbnVlOwoKICAgIH0KCiAg ICByZXR1cm4gKC0xKTsKfQojIDM1MSAibWlQY2sxUHJpbS5jIgpkZHBleDJydG4KbWlQaWNrMUZp bGxBcmVhKHBSZW5kLCBwZGRjLCBpbnB1dF9saXN0LCBpbnB1dF9mYWNldCwgc2hhcGUsIG5vZWRn ZXMpCgogICAgZGRSZW5kZXJlclB0ciBwUmVuZDsKICAgIG1pRERDb250ZXh0ICpwZGRjOwogICAg bWlMaXN0SGVhZGVyICppbnB1dF9saXN0OwogICAgbGlzdG9mZGRGYWNldCAqaW5wdXRfZmFjZXQ7 CiAgICBkZEJpdG1hc2tTaG9ydCBzaGFwZTsKICAgIGRkVUNIQVIgbm9lZGdlczsKCnsKCgoKCiAg ICBpZiAoQ2hlY2tGQXJlYVBpY2sxIChpbnB1dF9saXN0KSA9PSAwKSB7CiAgICAgICAgcGRkYy0+ U3RhdGljLnBpY2suc3RhdHVzID0gMTsKICAgIH0KICAgIHJldHVybiAoMCk7Cn0KIyAzODQgIm1p UGNrMVByaW0uYyIKZGRwZXgycnRuCm1pUGljazFUcmlTdHJpcChwUmVuZCwgcGRkYywgaW5wdXRf bGlzdCwgaW5wdXRfZmFjZXQpCgogICAgZGRSZW5kZXJlclB0ciBwUmVuZDsKICAgIG1pRERDb250 ZXh0ICpwZGRjOwogICAgbWlMaXN0SGVhZGVyICppbnB1dF9saXN0OwogICAgbGlzdG9mZGRGYWNl dCAqaW5wdXRfZmFjZXQ7Cgp7CiMgNDAxICJtaVBjazFQcmltLmMiCiAgICBpZiAoKGlucHV0X2xp c3QtPm51bUxpc3RzKSA+IDApIHsKICAgICAgICBwZGRjLT5TdGF0aWMucGljay5zdGF0dXMgPSAx OwogICAgfQogICAgcmV0dXJuICgwKTsKfQo=
next reply other threads:[~2002-07-22 16:26 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-07-22 9:26 dan [this message] 2002-10-10 11:34 hubicka
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20020722162221.10831.qmail@sources.redhat.com \ --to=dan@devonit.com \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).