From 706f1c38f29e1f657a1b7c93cb4564bd88031cc2 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 7 Apr 2021 00:46:51 +0200 Subject: [PATCH 01/32] Update stubbed force calculation Signed-off-by: Rafael Ravedutti --- config.mk | 2 +- include_GCC.mk | 6 +++-- src/core/force.c | 57 +++++++++++++++++++++++++----------------------- src/main.c | 6 ++--- src/stub.c | 14 +++++------- 5 files changed, 43 insertions(+), 42 deletions(-) diff --git a/config.mk b/config.mk index a67dd4d..afbd2ca 100644 --- a/config.mk +++ b/config.mk @@ -6,4 +6,4 @@ DATA_TYPE ?= DP DATA_LAYOUT ?= SOA #Feature options -OPTIONS += -DALIGNMENT=64 +OPTIONS += -DALIGNMENT=64 -DLIKWID_PERFMON diff --git a/include_GCC.mk b/include_GCC.mk index d29cca9..3ec307a 100644 --- a/include_GCC.mk +++ b/include_GCC.mk @@ -11,5 +11,7 @@ CFLAGS = -O3 -march=znver1 -ffast-math -funroll-loops # -fopenmp ASFLAGS = -masm=intel LFLAGS = DEFINES = -D_GNU_SOURCE -INCLUDES = -LIBS = -lm +#INCLUDES = +#LIBS = -lm +INCLUDES = $(LIKWID_INC) +LIBS = -lm $(LIKWID_LIB) -llikwid diff --git a/src/core/force.c b/src/core/force.c index 7ce9d8a..e1cb39d 100644 --- a/src/core/force.c +++ b/src/core/force.c @@ -31,7 +31,8 @@ double computeForce( Parameter *param, Atom *atom, Neighbor *neighbor, - int profile) + int profile, + int ntimes) { int Nlocal = atom->Nlocal; int* neighs; @@ -52,38 +53,40 @@ double computeForce( LIKWID_MARKER_START("force"); } + for(int t = 0; t < ntimes; t++) { #pragma omp parallel for - for(int i = 0; i < Nlocal; i++) { - neighs = &neighbor->neighbors[i * neighbor->maxneighs]; - int numneighs = neighbor->numneigh[i]; - MD_FLOAT xtmp = atom_x(i); - MD_FLOAT ytmp = atom_y(i); - MD_FLOAT ztmp = atom_z(i); + for(int i = 0; i < Nlocal; i++) { + neighs = &neighbor->neighbors[i * neighbor->maxneighs]; + int numneighs = neighbor->numneigh[i]; + MD_FLOAT xtmp = atom_x(i); + MD_FLOAT ytmp = atom_y(i); + MD_FLOAT ztmp = atom_z(i); - MD_FLOAT fix = 0; - MD_FLOAT fiy = 0; - MD_FLOAT fiz = 0; + MD_FLOAT fix = 0; + MD_FLOAT fiy = 0; + MD_FLOAT fiz = 0; - for(int k = 0; k < numneighs; k++) { - int j = neighs[k]; - MD_FLOAT delx = xtmp - atom_x(j); - MD_FLOAT dely = ytmp - atom_y(j); - MD_FLOAT delz = ztmp - atom_z(j); - MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; + for(int k = 0; k < numneighs; k++) { + int j = neighs[k]; + MD_FLOAT delx = xtmp - atom_x(j); + MD_FLOAT dely = ytmp - atom_y(j); + MD_FLOAT delz = ztmp - atom_z(j); + MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; - if(rsq < cutforcesq) { - MD_FLOAT sr2 = 1.0 / rsq; - MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; - MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; - fix += delx * force; - fiy += dely * force; - fiz += delz * force; + if(rsq < cutforcesq) { + MD_FLOAT sr2 = 1.0 / rsq; + MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; + MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; + fix += delx * force; + fiy += dely * force; + fiz += delz * force; + } } - } - fx[i] += fix; - fy[i] += fiy; - fz[i] += fiz; + fx[i] += fix; + fy[i] += fiy; + fz[i] += fiz; + } } if(profile) { diff --git a/src/main.c b/src/main.c index 564708e..2b431ae 100644 --- a/src/main.c +++ b/src/main.c @@ -47,7 +47,7 @@ typedef enum { NUMTIMER } timertype; -extern double computeForce( Parameter*, Atom*, Neighbor*, int); +extern double computeForce( Parameter*, Atom*, Neighbor*, int, int); void init(Parameter *param) { @@ -205,7 +205,7 @@ int main (int argc, char** argv) setup(¶m, &atom, &neighbor); computeThermo(0, ¶m, &atom); - computeForce(¶m, &atom, &neighbor, 1); + computeForce(¶m, &atom, &neighbor, 1, 1); timer[FORCE] = 0.0; timer[NEIGH] = 0.0; @@ -221,7 +221,7 @@ int main (int argc, char** argv) timer[NEIGH] += reneighbour(¶m, &atom, &neighbor); } - timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1); + timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1, 1); finalIntegrate(¶m, &atom); if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) { diff --git a/src/stub.c b/src/stub.c index c6f3c24..c82096c 100644 --- a/src/stub.c +++ b/src/stub.c @@ -16,7 +16,7 @@ #define LATTICE_DISTANCE 10.0 #define NEIGH_DISTANCE 1.0 -extern double computeForce( Parameter*, Atom*, Neighbor*, int); +extern double computeForce( Parameter*, Atom*, Neighbor*, int, int); void init(Parameter *param) { param->epsilon = 1.0; @@ -103,7 +103,7 @@ int main(int argc, const char *argv[]) { initAtom(atom); DEBUG("Creating atoms...\n"); - const int atoms_per_unit_cell = 16; + const int atoms_per_unit_cell = 8; for(int i = 0; i < param.nx; ++i) { for(int j = 0; j < param.ny; ++j) { @@ -158,7 +158,7 @@ int main(int argc, const char *argv[]) { } } - const double estim_volume = (double)(atom->Nlocal * 6 * sizeof(MD_FLOAT) + (atoms_per_unit_cell - 1 + 2) * sizeof(int)) / 1000.0; + const double estim_volume = (double)(atom->Nlocal * 6 * sizeof(MD_FLOAT) + atom->Nlocal * (atoms_per_unit_cell - 1 + 2) * sizeof(int)) / 1000.0; printf("System size (unit cells): %dx%dx%d\n", param.nx, param.ny, param.nz); printf("Atoms per unit cell: %d\n", atoms_per_unit_cell); printf("Total number of atoms: %d\n", atom->Nlocal); @@ -171,13 +171,9 @@ int main(int argc, const char *argv[]) { DEBUG("Building neighbor lists...\n"); buildNeighbor(atom, &neighbor); DEBUG("Computing forces...\n"); - computeForce(¶m, atom, &neighbor, 0); - - double T_accum = 0.0; - for(int i = 0; i < param.ntimes; i++) { - T_accum += computeForce(¶m, atom, &neighbor, 1); - } + computeForce(¶m, atom, &neighbor, 0, 1); + double T_accum = computeForce(¶m, atom, &neighbor, 1, param.ntimes); printf("Total time: %.4f, Time/force: %.4f\n", T_accum, T_accum / param.ntimes); LIKWID_MARKER_CLOSE; return EXIT_SUCCESS; From e656490a3840c2add8769fc6511dfa35b5e09adc Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Fri, 16 Apr 2021 12:44:18 +0200 Subject: [PATCH 02/32] Add annotated assembly files Signed-off-by: Rafael Ravedutti --- asm/force_aos_intel.s | 950 +++ asm/force_soa_att.s | 12730 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 13680 insertions(+) create mode 100644 asm/force_aos_intel.s create mode 100644 asm/force_soa_att.s diff --git a/asm/force_aos_intel.s b/asm/force_aos_intel.s new file mode 100644 index 0000000..0ea5009 --- /dev/null +++ b/asm/force_aos_intel.s @@ -0,0 +1,950 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -masm=intel -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX"; +# mark_description "512 -qopt-zmm-usage=high -o ICC/force.s"; + .intel_syntax noprefix + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: rdi +# parameter 2: rsi +# parameter 3: rdx +# parameter 4: ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + push r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + push r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 +# r8 <- atom + mov r8, rsi #35.1 +# xmm2 <- param->cutforce + vmovsd xmm2, QWORD PTR [72+rdi] #38.27 +# rax <- neighbors + mov rax, rdx #35.1 +# xmm1 <- param->sigma6 + vmovsd xmm1, QWORD PTR [8+rdi] #39.23 +# xmm0 <- param->epsilon + vmovsd xmm0, QWORD PTR [rdi] #40.24 +# r12d <- atom->Nlocal + mov r12d, DWORD PTR [4+r8] #36.18 +# r11 <- atom->fx + mov r11, QWORD PTR [64+r8] #41.20 +# rdx <- atom->fy + mov rdx, QWORD PTR [72+r8] #41.45 +# r9 <- atom->fz + mov r9, QWORD PTR [80+r8] #41.70 +# atom->Nlocal > 0 + test r12d, r12d #44.24 + jle ..B1.42 # Prob 50% #44.24 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] +# edi <- atom->Nlocal + mov edi, r12d #44.5 +# esi <- 0 + xor esi, esi #44.5 +# r10d <- 1 + mov r10d, 1 #44.5 +# ecx <- 0 + xor ecx, ecx #44.5 +# edi <- atom->Nlocal >> 1 + shr edi, 1 #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.3: # Preds ..B1.2 + # Execution count [9.00e-01] +# r10d <- 0 + xor r10d, r10d #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.4 ..B1.3 + # Execution count [2.50e+00] +# atom->fx[i] <- 0.0 + mov QWORD PTR [rcx+r11], r10 #45.9 +# i++ + inc rsi #44.5 +# atom->fy[i] <- 0.0 + mov QWORD PTR [rcx+rdx], r10 #46.9 +# atom->fz[i] <- 0.0 + mov QWORD PTR [rcx+r9], r10 #47.9 + mov QWORD PTR [8+rcx+r11], r10 #45.9 + mov QWORD PTR [8+rcx+rdx], r10 #46.9 + mov QWORD PTR [8+rcx+r9], r10 #47.9 + add rcx, 16 #44.5 + cmp rsi, rdi #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea r10d, DWORD PTR [1+rsi+rsi] #45.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea ecx, DWORD PTR [-1+r10] #44.5 + cmp ecx, r12d #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movsxd r10, r10d #44.5 + xor ecx, ecx #45.9 + mov QWORD PTR [-8+r11+r10*8], rcx #45.9 + mov QWORD PTR [-8+rdx+r10*8], rcx #46.9 + mov QWORD PTR [-8+r9+r10*8], rcx #47.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] +# xmm13 <- cutforcesq + vmulsd xmm13, xmm2, xmm2 #38.45 +# ecx <- i + xor ecx, ecx #55.15 +# ymm16 <- 8 (vector width / sizeof(double) ?) + vmovdqu32 ymm16, YMMWORD PTR .L_2il0floatpacket.0[rip] #67.9 +# xmm0 <- 48 * sr6 + vmulsd xmm0, xmm0, QWORD PTR .L_2il0floatpacket.3[rip] #77.41 +# ymm15 <- [0..7] + vmovdqu ymm15, YMMWORD PTR .L_2il0floatpacket.1[rip] #67.9 +# zmm5 <- 0.5 + vmovups zmm5, ZMMWORD PTR .L_2il0floatpacket.4[rip] #77.54 +# zmm14 <- cutforcesq + vbroadcastsd zmm14, xmm13 #38.25 +# zmm13 <- param->sigma6 + vbroadcastsd zmm13, xmm1 #39.21 +# zmm10 <- param->epsilon + vbroadcastsd zmm10, xmm0 #77.41 +# r12 <- atom->nlocal + movsxd r12, r12d #55.5 +# esi <- 0 (i) + xor esi, esi #55.5 +# r13 <- neighbor->numneighs + mov r13, QWORD PTR [24+rax] #57.25 +# rdi <- atom->x + mov rdi, QWORD PTR [16+r8] #58.25 +# r8 <- neighbor->maxneighs + movsxd r8, DWORD PTR [16+rax] #56.43 +# r10 <- neighbor->neighbors + mov r10, QWORD PTR [8+rax] #56.19 +# eax <- 0 (i * 3) + xor eax, eax #55.5 +# r8 <- neighbor->maxneighs << 2 + shl r8, 2 #37.5 +# [-24+rsp] <- atom->nlocal + mov QWORD PTR [-24+rsp], r12 #55.5[spill] +# [-16+rsp] <- neighbor->numneigh + mov QWORD PTR [-16+rsp], r13 #55.5[spill] +# [-8+rsp] <- atom->fx + mov QWORD PTR [-8+rsp], r11 #55.5[spill] +# [-88+rsp] <- r14 (unused so far) + mov QWORD PTR [-88+rsp], r14 #55.5[spill] +# [-96+rsp] <- r15 (unused so far) + mov QWORD PTR [-96+rsp], r15 #55.5[spill] +# [-104+rsp] <- rbx (unused so far) + mov QWORD PTR [-104+rsp], rbx #55.5[spill] + .cfi_offset 3, -128 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.9: # Preds ..B1.39 ..B1.8 + # Execution count [5.00e+00] +# rbx <- neighbor->numneigh + mov rbx, QWORD PTR [-16+rsp] #57.25[spill] +# xmm24 <- 0 (fix) + vxorpd xmm24, xmm24, xmm24 #61.22 +# xmm18 <- 0 (fiy) + vmovapd xmm18, xmm24 #62.22 +# r11d <- neighbor->numneigh[i] + mov r11d, DWORD PTR [rbx+rsi*4] #57.25 +# xmm4 <- 0 (fiz) + vmovapd xmm4, xmm18 #63.22 +# xmm6 <- atom->x[i * 3] + vmovsd xmm6, QWORD PTR [rax+rdi] #58.25 +# xmm6 <- atom->x[i * 3 + 1] + vmovsd xmm7, QWORD PTR [8+rax+rdi] #59.25 +# xmm6 <- atom->x[i * 3 + 2] + vmovsd xmm12, QWORD PTR [16+rax+rdi] #60.25 +# neighbor->numneigh[i] > 0 + test r11d, r11d #67.28 + jle ..B1.39 # Prob 50% #67.28 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] +# zmm9 <- 0 (fix) + vpxord zmm9, zmm9, zmm9 #61.22 +# zmm8 <- 0 (fiy) + vmovaps zmm8, zmm9 #62.22 +# zmm11 <- 0 (fiz) + vmovaps zmm11, zmm8 #63.22 +# neighbor->numneigh[i] < 8 + cmp r11d, 8 #67.9 + jl ..B1.44 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] +# neighbor->numneigh[i] < 1200 +# L1? 1200 * 3 * 8 = 28800 = 28.8kB + cmp r11d, 1200 #67.9 + jl ..B1.43 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] +# r15 <- neighbor->maxneighs + mov r15, r8 #56.43 +# r15 <- neighbor->maxneighs * i + imul r15, rcx #56.43 +# r15 <- neighbor->neighbors + neighbor->maxneighs * i + add r15, r10 #37.5 +# r12 <- neighbor->neighbors + neighbor->maxneighs * i + mov r12, r15 #67.9 +# r12 <- (neighbor->neighbors + neighbor->maxneighs * i) & 63 -- 0b00111111 + and r12, 63 #67.9 +# (neighbor->neighbors + neighbor->maxneighs * i) & 63 == 3 -- 0b00000011 + test r12d, 3 #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] +# r12d <- 0 + xor r12d, r12d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] +# r12d == 0 + test r12d, r12d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] +# r12d <- ~r12d + 1 + neg r12d #67.9 +# r12d <- (~r12d + 1) + 64 + add r12d, 64 #67.9 +# r12d <- ((~r12d + 1) + 64) >> 2 + shr r12d, 2 #67.9 +# neighbor->numneigh[i] < r12d + cmp r11d, r12d #67.9 +# r12d <- min(r12d, neighbor->numneigh[i]) + cmovl r12d, r11d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] +# r14d <- neighbor->numneigh[i] + mov r14d, r11d #67.9 +# r14d <- neighbor->numneigh[i] - r12d + sub r14d, r12d #67.9 +# r14d <- (neighbor->numneigh[i] - r12d) & 7 (0b0111) + and r14d, 7 #67.9 +# r14d <- ~r14d + 1 + neg r14d #67.9 +# r14d <- r14d + neighbor->numneigh[i] + add r14d, r11d #67.9 +# r12d < 1 + cmp r12d, 1 #67.9 + jb ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] +# ymm3 <- [0..7] + vmovdqa ymm3, ymm15 #67.9 +# r13d <- 0 + xor r13d, r13d #67.9 +# ymm2 <- r12d (k? amount of neighs?) + vpbroadcastd ymm2, r12d #67.9 +# zmm1 <- atom->x[i * 3] + vbroadcastsd zmm1, xmm6 #58.23 +# zmm0 <- atom->x[i * 3 + 1] + vbroadcastsd zmm0, xmm7 #59.23 +# zmm4 <- atom->x[i * 3 + 2] + vbroadcastsd zmm4, xmm12 #60.23 +# rbx <- r12d (k? amount of neighs?) + movsxd rbx, r12d #67.9 +# [-80+rsp] <- atom->fz + mov QWORD PTR [-80+rsp], r9 #67.9[spill] +# [-72+rdx] <- atom->fy + mov QWORD PTR [-72+rsp], rdx #67.9[spill] + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.18: # Preds ..B1.22 ..B1.17 + # Execution count [2.50e+01] +# k3 <- [x when amount_of_neighs < [0..7](x)] (i.e. mask of available neighbors) + vpcmpgtd k3, ymm2, ymm3 #67.9 +# ymm17 <- neighs[k] + vmovdqu32 ymm17{k3}{z}, YMMWORD PTR [r15+r13*4] #68.21 +# r9d <- k3 + kmovw r9d, k3 #67.9 +# ymm18 <- neighs[k] * 2 + vpaddd ymm18, ymm17, ymm17 #69.36 +# ymm17 <- neighs[k] * 3 + vpaddd ymm17, ymm17, ymm18 #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.21: # Preds ..B1.18 + # Execution count [1.25e+01] +# k1 <- k3 + kmovw k1, k3 #69.36 +# k2 <- k3 + kmovw k2, k3 #69.36 +# zmm18 <- 0.0 + vpxord zmm18, zmm18, zmm18 #69.36 +# zmm19 <- 0.0 + vpxord zmm19, zmm19, zmm19 #69.36 +# zmm20 <- 0.0 + vpxord zmm20, zmm20, zmm20 #69.36 +# zmm18 <- atom->x[j * 3 + 2] + vgatherdpd zmm18{k1}, QWORD PTR [16+rdi+ymm17*8] #69.36 +# zmm19 <- atom->x[j * 3 + 1] + vgatherdpd zmm19{k2}, QWORD PTR [8+rdi+ymm17*8] #69.36 +# zmm20 <- atom->x[j * 3] + vgatherdpd zmm20{k3}, QWORD PTR [rdi+ymm17*8] #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 +..B1.22: # Preds ..B1.21 + # Execution count [2.50e+01] +# k++ (+= 8) + add r13, 8 #67.9 +# ymm3 <- [0..7] + 8 + vpaddd ymm3, ymm3, ymm16 #67.9 +# zmm29 <- atom->x[i * 3 + 2] - atom->x[j * 3 + 2] + vsubpd zmm29, zmm4, zmm18 #71.36 +# zmm27 <- atom->x[i * 3 + 1] - atom->x[j * 3 + 1] + vsubpd zmm27, zmm0, zmm19 #70.36 +# zmm26 <- atom->x[i * 3] - atom->x[j * 3] + vsubpd zmm26, zmm1, zmm20 #69.36 +# zmm25 <- dely * dely + vmulpd zmm25, zmm27, zmm27 #72.49 +# zmm25 <- delx * delx + dely * dely + vfmadd231pd zmm25, zmm26, zmm26 #72.49 +# zmm25 <- rsq (delz * delz + delx * delx + dely * dely) + vfmadd231pd zmm25, zmm29, zmm29 #72.63 +# zmm24 <- sr2 (1.0 / rsq -- compute reciprocal) + vrcp14pd zmm24, zmm25 #75.38 +# k2 <- [rsq < cutforcesq] + vcmppd k2, zmm25, zmm14, 1 #74.22 +# k0 <- [true when +0, Neg. 0, +inf, -inf] + vfpclasspd k0, zmm24, 30 #75.38 +# edx <- k2 + kmovw edx, k2 #74.22 +# k1 <- [false when +0, Neg. 0, +inf, -inf] + knotw k1, k0 #75.38 +# zmm17 <- rsq + vmovaps zmm17, zmm25 #75.38 +# r9d <- [true if k < numneighs and rsq < cutforcesq] + and r9d, edx #74.22 +# zmm17 <- [-(rsq * sr2) + 1.0] -- check if 1.0 / rsq is valid! -- call it error? + vfnmadd213pd zmm17, zmm24, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 +# k3 <- [true if k < numneighs and rsq < cutforcesq] + kmovw k3, r9d #78.17 +# zmm18 <- [(-rsq * sr2 + 1.0) * (-rsq * sr2 + 1.0)] -- errorsq + vmulpd zmm18, zmm17, zmm17 #75.38 +# zmm24 <- [sr2 * error + sr2] + vfmadd213pd zmm24{k1}, zmm17, zmm24 #75.38 +# zmm24 <- [(sr2 * error + sr2) * errorsq + (sr2 * error + sr2)] + vfmadd213pd zmm24{k1}, zmm18, zmm24 #75.38 +# zmm19 <- sr2 * sigma6 + vmulpd zmm19, zmm24, zmm13 #76.38 +# zmm21 <- sr2 * epsilon + vmulpd zmm21, zmm24, zmm10 #77.54 +# zmm22 <- sr2 * sr2 * sigma6 + vmulpd zmm22, zmm24, zmm19 #76.44 +# zmm20 <- sr6 (sr2 * sr2 * sr2 * sigma6) + vmulpd zmm20, zmm24, zmm22 #76.50 +# zmm24 <- sr2 * (sr2 * sr2 * sigma) - 0.5 (why not vsubpd zmm24, zmm20, zmm5 ?) + vfmsub213pd zmm24, zmm22, zmm5 #77.54 +# zmm23 <- (sr6) * (sr2 * epsilon) + vmulpd zmm23, zmm20, zmm21 #77.61 +# zmm28 <- force -- (sr6 * sr2 * epsilon) * (sr6 - 0.5) + vmulpd zmm28, zmm23, zmm24 #77.67 +# zmm9 <- force * delx + fix + vfmadd231pd zmm9{k3}, zmm28, zmm26 #78.17 +# zmm8 <- force * dely + fiy + vfmadd231pd zmm8{k3}, zmm28, zmm27 #79.17 +# zmm11 <- force * delz + fiz + vfmadd231pd zmm11{k3}, zmm28, zmm29 #80.17 +# k < numneighs + cmp r13, rbx #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.23: # Preds ..B1.22 + # Execution count [4.50e+00] +# r9 <- atom->fz + mov r9, QWORD PTR [-80+rsp] #[spill] +# rdx <- atom->fy + mov rdx, QWORD PTR [-72+rsp] #[spill] +# numneighs == amount_of_neighs + cmp r11d, r12d #67.9 + je ..B1.38 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 + # Execution count [2.50e+01] +# COND: neighbor->numneigh[i] < 1200 +# ebx <- k + 8 + lea ebx, DWORD PTR [8+r12] #67.9 +# k - (k % 8) < k + 8 TODO: this may be wrong, but probably checks if the number of remaining neighbors is less than 8 + cmp r14d, ebx #67.9 + jl ..B1.32 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.25: # Preds ..B1.24 + # Execution count [4.50e+00] +# r13 <- neighbor->maxneighs << 2 + mov r13, r8 #56.43 +# r13 <- neighbor->maxneighs * 4 * i + imul r13, rcx #56.43 +# zmm2 <- atom->x[i * 3] + vbroadcastsd zmm2, xmm6 #58.23 +# zmm1 <- atom->x[i * 3 + 1] + vbroadcastsd zmm1, xmm7 #59.23 +# zmm0 <- atom->x[i * 3 + 2] + vbroadcastsd zmm0, xmm12 #60.23 +# rbx <- r12d (k? amount of neighs?) + movsxd rbx, r12d #67.9 +# r13 <- neighs (neighbor->neighbors + neighbor->maxneighs * 4 * i) + add r13, r10 #37.5 + mov QWORD PTR [-64+rsp], rax #37.5[spill] + mov QWORD PTR [-56+rsp], r8 #37.5[spill] + mov QWORD PTR [-48+rsp], r10 #37.5[spill] + mov QWORD PTR [-40+rsp], rsi #37.5[spill] + mov QWORD PTR [-32+rsp], rcx #37.5[spill] + mov QWORD PTR [-80+rsp], r9 #37.5[spill] + mov QWORD PTR [-72+rsp], rdx #37.5[spill] + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.26: # Preds ..B1.30 ..B1.25 + # Execution count [2.50e+01] +# ymm3 <- neighs[k] + vmovdqu ymm3, YMMWORD PTR [r13+rbx*4] #68.21 +# ymm4 <- neighs[k] * 2 + vpaddd ymm4, ymm3, ymm3 #69.36 +# ymm3 <- neighs[k] * 3 + vpaddd ymm3, ymm3, ymm4 #69.36 + +# Prefetching Instructions???????????? +# r10d <- neighs[k] + mov r10d, DWORD PTR [r13+rbx*4] #68.21 +# r9d <- neighs[k + 1] + mov r9d, DWORD PTR [4+r13+rbx*4] #68.21 +# r8d <- neighs[k + 2] + mov r8d, DWORD PTR [8+r13+rbx*4] #68.21 +# esi <- neighs[k + 3] + mov esi, DWORD PTR [12+r13+rbx*4] #68.21 +# r10d <- neighs[k] * 3 + lea r10d, DWORD PTR [r10+r10*2] #69.36 +# ecx <- neighs[k + 4] + mov ecx, DWORD PTR [16+r13+rbx*4] #68.21 +# r9d <- neighs[k + 1] * 3 + lea r9d, DWORD PTR [r9+r9*2] #69.36 +# edx <- neighs[k + 5] + mov edx, DWORD PTR [20+r13+rbx*4] #68.21 +# r8d <- neighs[k + 2] * 3 + lea r8d, DWORD PTR [r8+r8*2] #69.36 +# edx <- neighs[k + 6] + mov eax, DWORD PTR [24+r13+rbx*4] #68.21 +# esi <- neighs[k + 3] * 3 + lea esi, DWORD PTR [rsi+rsi*2] #69.36 +# edx <- neighs[k + 7] + mov r15d, DWORD PTR [28+r13+rbx*4] #68.21 +# ecx <- neighs[k + 4] * 3 + lea ecx, DWORD PTR [rcx+rcx*2] #69.36 +# ecx <- neighs[k + 5] * 3 + lea edx, DWORD PTR [rdx+rdx*2] #69.36 +# ecx <- neighs[k + 6] * 3 + lea eax, DWORD PTR [rax+rax*2] #69.36 +# ecx <- neighs[k + 7] * 3 + lea r15d, DWORD PTR [r15+r15*2] #69.36 + # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.29: # Preds ..B1.26 + # Execution count [1.25e+01] + vpcmpeqb k1, xmm0, xmm0 #69.36 + vpcmpeqb k2, xmm0, xmm0 #69.36 + vpcmpeqb k3, xmm0, xmm0 #69.36 + vpxord zmm4, zmm4, zmm4 #69.36 + vpxord zmm17, zmm17, zmm17 #69.36 + vpxord zmm18, zmm18, zmm18 #69.36 + vgatherdpd zmm4{k1}, QWORD PTR [16+rdi+ymm3*8] #69.36 + vgatherdpd zmm17{k2}, QWORD PTR [8+rdi+ymm3*8] #69.36 + vgatherdpd zmm18{k3}, QWORD PTR [rdi+ymm3*8] #69.36 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 +..B1.30: # Preds ..B1.29 + # Execution count [2.50e+01] + add r12d, 8 #67.9 + add rbx, 8 #67.9 + vsubpd zmm26, zmm0, zmm4 #71.36 + vsubpd zmm24, zmm1, zmm17 #70.36 + vsubpd zmm23, zmm2, zmm18 #69.36 + vmulpd zmm3, zmm24, zmm24 #72.49 + vfmadd231pd zmm3, zmm23, zmm23 #72.49 + vfmadd231pd zmm3, zmm26, zmm26 #72.63 + vrcp14pd zmm22, zmm3 #75.38 + vcmppd k2, zmm3, zmm14, 1 #74.22 + vfpclasspd k0, zmm22, 30 #75.38 + vfnmadd213pd zmm3, zmm22, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 + knotw k1, k0 #75.38 + vmulpd zmm4, zmm3, zmm3 #75.38 + vfmadd213pd zmm22{k1}, zmm3, zmm22 #75.38 + vfmadd213pd zmm22{k1}, zmm4, zmm22 #75.38 + vmulpd zmm17, zmm22, zmm13 #76.38 + vmulpd zmm19, zmm22, zmm10 #77.54 + vmulpd zmm20, zmm22, zmm17 #76.44 + vmulpd zmm18, zmm22, zmm20 #76.50 + vfmsub213pd zmm22, zmm20, zmm5 #77.54 + vmulpd zmm21, zmm18, zmm19 #77.61 + vmulpd zmm25, zmm21, zmm22 #77.67 + vfmadd231pd zmm9{k2}, zmm25, zmm23 #78.17 + vfmadd231pd zmm8{k2}, zmm25, zmm24 #79.17 + vfmadd231pd zmm11{k2}, zmm25, zmm26 #80.17 + cmp r12d, r14d #67.9 + jb ..B1.26 # Prob 82% #67.9 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.31: # Preds ..B1.30 + # Execution count [4.50e+00] + mov rax, QWORD PTR [-64+rsp] #[spill] + mov r8, QWORD PTR [-56+rsp] #[spill] + mov r10, QWORD PTR [-48+rsp] #[spill] + mov rsi, QWORD PTR [-40+rsp] #[spill] + mov rcx, QWORD PTR [-32+rsp] #[spill] + mov r9, QWORD PTR [-80+rsp] #[spill] + mov rdx, QWORD PTR [-72+rsp] #[spill] + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 + # Execution count [5.00e+00] +# COND: neighbor->numneigh[i] < 8 + lea ebx, DWORD PTR [1+r14] #67.9 + cmp ebx, r11d #67.9 + ja ..B1.38 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.33: # Preds ..B1.32 + # Execution count [2.50e+01] + imul rcx, r8 #56.43 + vbroadcastsd zmm4, xmm6 #58.23 + sub r11d, r14d #67.9 + add rcx, r10 #37.5 + vpbroadcastd ymm0, r11d #67.9 + vpcmpgtd k3, ymm0, ymm15 #67.9 + movsxd r14, r14d #67.9 + kmovw ebx, k3 #67.9 + vmovdqu32 ymm1{k3}{z}, YMMWORD PTR [rcx+r14*4] #68.21 + vpaddd ymm2, ymm1, ymm1 #69.36 + vpaddd ymm0, ymm1, ymm2 #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.36: # Preds ..B1.33 + # Execution count [1.25e+01] + kmovw k1, k3 #69.36 + kmovw k2, k3 #69.36 + vpxord zmm1, zmm1, zmm1 #69.36 + vpxord zmm2, zmm2, zmm2 #69.36 + vpxord zmm3, zmm3, zmm3 #69.36 + vgatherdpd zmm1{k1}, QWORD PTR [16+rdi+ymm0*8] #69.36 + vgatherdpd zmm2{k2}, QWORD PTR [8+rdi+ymm0*8] #69.36 + vgatherdpd zmm3{k3}, QWORD PTR [rdi+ymm0*8] #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.37: # Preds ..B1.36 + # Execution count [2.50e+01] + vbroadcastsd zmm7, xmm7 #59.23 + vbroadcastsd zmm12, xmm12 #60.23 + vsubpd zmm23, zmm12, zmm1 #71.36 + vsubpd zmm21, zmm7, zmm2 #70.36 + vsubpd zmm20, zmm4, zmm3 #69.36 + vmulpd zmm19, zmm21, zmm21 #72.49 + vfmadd231pd zmm19, zmm20, zmm20 #72.49 + vfmadd231pd zmm19, zmm23, zmm23 #72.63 + vrcp14pd zmm18, zmm19 #75.38 + vcmppd k2, zmm19, zmm14, 1 #74.22 + vfpclasspd k0, zmm18, 30 #75.38 + kmovw ecx, k2 #74.22 + knotw k1, k0 #75.38 + vmovaps zmm0, zmm19 #75.38 + and ebx, ecx #74.22 + vfnmadd213pd zmm0, zmm18, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 + kmovw k3, ebx #78.17 + vmulpd zmm1, zmm0, zmm0 #75.38 + vfmadd213pd zmm18{k1}, zmm0, zmm18 #75.38 + vfmadd213pd zmm18{k1}, zmm1, zmm18 #75.38 + vmulpd zmm2, zmm18, zmm13 #76.38 + vmulpd zmm4, zmm18, zmm10 #77.54 + vmulpd zmm6, zmm18, zmm2 #76.44 + vmulpd zmm3, zmm18, zmm6 #76.50 + vfmsub213pd zmm18, zmm6, zmm5 #77.54 + vmulpd zmm17, zmm3, zmm4 #77.61 + vmulpd zmm22, zmm17, zmm18 #77.67 + vfmadd231pd zmm9{k3}, zmm22, zmm20 #78.17 + vfmadd231pd zmm8{k3}, zmm22, zmm21 #79.17 + vfmadd231pd zmm11{k3}, zmm22, zmm23 #80.17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 + # Execution count [4.50e+00] + vmovups zmm19, ZMMWORD PTR .L_2il0floatpacket.10[rip] #63.22 + vpermd zmm0, zmm19, zmm11 #63.22 + vpermd zmm6, zmm19, zmm8 #62.22 + vpermd zmm20, zmm19, zmm9 #61.22 + vaddpd zmm11, zmm0, zmm11 #63.22 + vaddpd zmm8, zmm6, zmm8 #62.22 + vaddpd zmm9, zmm20, zmm9 #61.22 + vpermpd zmm1, zmm11, 78 #63.22 + vpermpd zmm7, zmm8, 78 #62.22 + vpermpd zmm21, zmm9, 78 #61.22 + vaddpd zmm2, zmm11, zmm1 #63.22 + vaddpd zmm12, zmm8, zmm7 #62.22 + vaddpd zmm22, zmm9, zmm21 #61.22 + vpermpd zmm3, zmm2, 177 #63.22 + vpermpd zmm17, zmm12, 177 #62.22 + vpermpd zmm23, zmm22, 177 #61.22 + vaddpd zmm4, zmm2, zmm3 #63.22 + vaddpd zmm18, zmm12, zmm17 #62.22 + vaddpd zmm24, zmm22, zmm23 #61.22 + # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.39: # Preds ..B1.38 ..B1.9 + # Execution count [5.00e+00] + mov rcx, QWORD PTR [-8+rsp] #84.9[spill] + add rax, 24 #55.5 + vaddsd xmm0, xmm24, QWORD PTR [rcx+rsi*8] #84.9 + vmovsd QWORD PTR [rcx+rsi*8], xmm0 #84.9 + movsxd rcx, esi #55.32 + vaddsd xmm1, xmm18, QWORD PTR [rdx+rsi*8] #85.9 + vmovsd QWORD PTR [rdx+rsi*8], xmm1 #85.9 + inc rcx #55.32 + vaddsd xmm2, xmm4, QWORD PTR [r9+rsi*8] #86.9 + vmovsd QWORD PTR [r9+rsi*8], xmm2 #86.9 + inc rsi #55.5 + cmp rsi, QWORD PTR [-24+rsp] #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.40: # Preds ..B1.39 + # Execution count [9.00e-01] + mov r14, QWORD PTR [-88+rsp] #[spill] + .cfi_restore 14 + mov r15, QWORD PTR [-96+rsp] #[spill] + .cfi_restore 15 + mov rbx, QWORD PTR [-104+rsp] #[spill] + .cfi_restore 3 + # LOE rbx rbp r14 r15 +..B1.42: # Preds ..B1.1 ..B1.40 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd xmm0, xmm0, xmm0 #93.12 + .cfi_restore 13 + pop r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + pop r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 24 + .cfi_offset 3, -128 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE +..B1.43: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq +# COND: neighbor->numneigh[i] < 1200 +# r14d <- numneighs + mov r14d, r11d #67.9 +# r12d <- 0 (k) + xor r12d, r12d #67.9 +# r14d <- numneighs & -8 (0b1111...111000), 32bits -- k - (k % 8) + and r14d, -8 #67.9 + jmp ..B1.24 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.44: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq +# COND: neighbor->numneigh[i] < 8 + xor r14d, r14d #67.9 + jmp ..B1.32 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.5: + .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 64 +.L_2il0floatpacket.7: + .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 + .type .L_2il0floatpacket.7,@object + .size .L_2il0floatpacket.7,64 + .align 64 +.L_2il0floatpacket.8: + .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 + .type .L_2il0floatpacket.8,@object + .size .L_2il0floatpacket.8,64 + .align 64 +.L_2il0floatpacket.10: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.10,@object + .size .L_2il0floatpacket.10,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.9: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.9,@object + .size .L_2il0floatpacket.9,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/force_soa_att.s b/asm/force_soa_att.s new file mode 100644 index 0000000..77cf14f --- /dev/null +++ b/asm/force_soa_att.s @@ -0,0 +1,12730 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 17.0.5.239 Build 20170817"; +# mark_description "-I./src/includes -c -D_GNU_SOURCE -DALIGNMENT=64 -DAOS -restrict -fast -xCORE-AVX512 -qopt-zmm-usage=high -S"; +# mark_description " -fsource-asm"; + .file "force.c" + .section __ildata, "" + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 115 + .byte 128 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 158 + .byte 30 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 86 + .byte 16 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 44 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 228 + .byte 1 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 254 + .byte 29 + .byte 0 + .byte 0 + .byte 80 + .byte 0 + .byte 0 + .byte 0 + .byte 82 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 157 + .byte 3 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 0 + .byte 0 + .byte 159 + .byte 0 + .byte 0 + .byte 0 + .byte 54 + .byte 4 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 28 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 17 + .byte 0 + .byte 1 + .byte 1 + .byte 12 + .byte 11 + .byte 0 + .byte 1 + .byte 2 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 2 + .byte 13 + .byte 55 + .byte 217 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 2 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 6 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 3 + .byte 151 + .byte 1 + .byte 151 + .byte 1 + .byte 0 + .byte 1 + .byte 2 + .byte 0 + .byte 1 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 4 + .byte 154 + .byte 1 + .byte 194 + .byte 0 + .byte 137 + .byte 1 + .byte 2 + .byte 5 + .byte 0 + .byte 3 + .byte 0 + .byte 2 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 6 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 5 + .byte 155 + .byte 1 + .byte 155 + .byte 1 + .byte 137 + .byte 1 + .byte 1 + .byte 4 + .byte 0 + .byte 1 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 6 + .byte 21 + .byte 61 + .byte 161 + .byte 1 + .byte 2 + .byte 4 + .byte 0 + .byte 2 + .byte 0 + .byte 2 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 16 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 7 + .byte 152 + .byte 1 + .byte 152 + .byte 1 + .byte 0 + .byte 1 + .byte 6 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 8 + .byte 158 + .byte 1 + .byte 58 + .byte 198 + .byte 3 + .byte 2 + .byte 15 + .byte 0 + .byte 7 + .byte 0 + .byte 2 + .byte 9 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 9 + .byte 153 + .byte 1 + .byte 153 + .byte 1 + .byte 0 + .byte 1 + .byte 8 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 192 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 10 + .byte 156 + .byte 1 + .byte 42 + .byte 160 + .byte 3 + .byte 2 + .byte 13 + .byte 0 + .byte 9 + .byte 0 + .byte 2 + .byte 11 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 1 + .byte 1 + .byte 11 + .byte 36 + .byte 41 + .byte 212 + .byte 2 + .byte 1 + .byte 10 + .byte 0 + .byte 1 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 12 + .byte 43 + .byte 202 + .byte 0 + .byte 151 + .byte 3 + .byte 2 + .byte 11 + .byte 0 + .byte 10 + .byte 0 + .byte 2 + .byte 13 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 13 + .byte 157 + .byte 1 + .byte 157 + .byte 1 + .byte 160 + .byte 3 + .byte 1 + .byte 12 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 144 + .byte 141 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 14 + .byte 45 + .byte 198 + .byte 0 + .byte 169 + .byte 3 + .byte 2 + .byte 12 + .byte 0 + .byte 8 + .byte 0 + .byte 2 + .byte 15 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 16 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 15 + .byte 159 + .byte 1 + .byte 159 + .byte 1 + .byte 198 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 16 + .byte 51 + .byte 51 + .byte 219 + .byte 3 + .byte 2 + .byte 14 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 17 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 17 + .byte 52 + .byte 53 + .byte 222 + .byte 3 + .byte 1 + .byte 16 + .byte 0 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 1 + .byte 78 + .byte 11 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 2 + .byte 0 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 14 + .byte 3 + .byte 15 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 2 + .byte 74 + .byte 40 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 186 + .byte 7 + .byte 21 + .byte 65 + .byte 67 + .byte 4 + .byte 74 + .byte 50 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 5 + .byte 2 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 188 + .byte 7 + .byte 38 + .byte 65 + .byte 67 + .byte 5 + .byte 74 + .byte 56 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 6 + .byte 4 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 191 + .byte 7 + .byte 44 + .byte 65 + .byte 67 + .byte 6 + .byte 74 + .byte 62 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 7 + .byte 5 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 193 + .byte 7 + .byte 51 + .byte 65 + .byte 67 + .byte 7 + .byte 74 + .byte 196 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 8 + .byte 6 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 195 + .byte 7 + .byte 58 + .byte 65 + .byte 67 + .byte 8 + .byte 74 + .byte 202 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 9 + .byte 7 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 197 + .byte 7 + .byte 193 + .byte 0 + .byte 65 + .byte 67 + .byte 9 + .byte 74 + .byte 208 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 12 + .byte 8 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 199 + .byte 7 + .byte 200 + .byte 0 + .byte 65 + .byte 67 + .byte 12 + .byte 77 + .byte 214 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 13 + .byte 9 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 209 + .byte 0 + .byte 0 + .byte 206 + .byte 0 + .byte 0 + .byte 0 + .byte 85 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 13 + .byte 74 + .byte 217 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 14 + .byte 12 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 201 + .byte 7 + .byte 207 + .byte 0 + .byte 65 + .byte 67 + .byte 14 + .byte 74 + .byte 223 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 55 + .byte 13 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 202 + .byte 7 + .byte 212 + .byte 0 + .byte 65 + .byte 67 + .byte 15 + .byte 74 + .byte 236 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 16 + .byte 154 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 222 + .byte 0 + .byte 213 + .byte 0 + .byte 65 + .byte 67 + .byte 16 + .byte 74 + .byte 244 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 17 + .byte 15 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 232 + .byte 0 + .byte 223 + .byte 0 + .byte 65 + .byte 67 + .byte 17 + .byte 74 + .byte 252 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 18 + .byte 16 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 242 + .byte 0 + .byte 233 + .byte 0 + .byte 65 + .byte 67 + .byte 18 + .byte 74 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 194 + .byte 0 + .byte 17 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 210 + .byte 7 + .byte 246 + .byte 0 + .byte 65 + .byte 67 + .byte 21 + .byte 74 + .byte 161 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 61 + .byte 55 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte 0 + .byte 214 + .byte 7 + .byte 254 + .byte 0 + .byte 65 + .byte 67 + .byte 22 + .byte 74 + .byte 192 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 23 + .byte 158 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 216 + .byte 7 + .byte 144 + .byte 1 + .byte 65 + .byte 67 + .byte 23 + .byte 74 + .byte 200 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 24 + .byte 22 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 220 + .byte 7 + .byte 160 + .byte 1 + .byte 65 + .byte 67 + .byte 24 + .byte 74 + .byte 206 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 25 + .byte 23 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 223 + .byte 7 + .byte 179 + .byte 1 + .byte 65 + .byte 67 + .byte 25 + .byte 74 + .byte 215 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 26 + .byte 24 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 226 + .byte 7 + .byte 198 + .byte 1 + .byte 65 + .byte 67 + .byte 26 + .byte 74 + .byte 224 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 27 + .byte 25 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 229 + .byte 7 + .byte 217 + .byte 1 + .byte 65 + .byte 67 + .byte 27 + .byte 74 + .byte 231 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 28 + .byte 26 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 232 + .byte 7 + .byte 219 + .byte 1 + .byte 65 + .byte 67 + .byte 28 + .byte 74 + .byte 235 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 29 + .byte 27 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 233 + .byte 7 + .byte 221 + .byte 1 + .byte 65 + .byte 67 + .byte 29 + .byte 74 + .byte 239 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 30 + .byte 28 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 234 + .byte 7 + .byte 223 + .byte 1 + .byte 65 + .byte 67 + .byte 30 + .byte 74 + .byte 245 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 58 + .byte 29 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 235 + .byte 7 + .byte 225 + .byte 1 + .byte 65 + .byte 67 + .byte 31 + .byte 74 + .byte 142 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 32 + .byte 156 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 237 + .byte 7 + .byte 235 + .byte 1 + .byte 65 + .byte 67 + .byte 32 + .byte 74 + .byte 150 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 33 + .byte 31 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 240 + .byte 7 + .byte 128 + .byte 2 + .byte 65 + .byte 67 + .byte 33 + .byte 74 + .byte 161 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 34 + .byte 32 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 244 + .byte 7 + .byte 149 + .byte 2 + .byte 65 + .byte 67 + .byte 34 + .byte 74 + .byte 172 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 35 + .byte 33 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 248 + .byte 7 + .byte 170 + .byte 2 + .byte 65 + .byte 67 + .byte 35 + .byte 74 + .byte 191 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 42 + .byte 34 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 252 + .byte 7 + .byte 182 + .byte 2 + .byte 65 + .byte 67 + .byte 36 + .byte 74 + .byte 212 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 37 + .byte 42 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 133 + .byte 8 + .byte 186 + .byte 2 + .byte 65 + .byte 67 + .byte 37 + .byte 74 + .byte 224 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 38 + .byte 36 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 135 + .byte 8 + .byte 194 + .byte 2 + .byte 65 + .byte 67 + .byte 38 + .byte 74 + .byte 240 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 39 + .byte 37 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 140 + .byte 8 + .byte 206 + .byte 2 + .byte 65 + .byte 67 + .byte 39 + .byte 74 + .byte 248 + .byte 2 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 40 + .byte 38 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 145 + .byte 8 + .byte 212 + .byte 2 + .byte 65 + .byte 67 + .byte 40 + .byte 74 + .byte 128 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 41 + .byte 39 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 149 + .byte 8 + .byte 218 + .byte 2 + .byte 65 + .byte 67 + .byte 41 + .byte 74 + .byte 136 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 138 + .byte 4 + .byte 0 + .byte 40 + .byte 0 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 153 + .byte 8 + .byte 224 + .byte 2 + .byte 65 + .byte 67 + .byte 42 + .byte 80 + .byte 146 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 43 + .byte 35 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 227 + .byte 2 + .byte 0 + .byte 36 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 43 + .byte 74 + .byte 151 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 202 + .byte 0 + .byte 42 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 157 + .byte 8 + .byte 231 + .byte 2 + .byte 65 + .byte 67 + .byte 45 + .byte 74 + .byte 169 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 46 + .byte 58 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 244 + .byte 2 + .byte 254 + .byte 2 + .byte 65 + .byte 67 + .byte 46 + .byte 74 + .byte 177 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 47 + .byte 45 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 136 + .byte 3 + .byte 146 + .byte 3 + .byte 65 + .byte 67 + .byte 47 + .byte 74 + .byte 185 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 48 + .byte 46 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 156 + .byte 3 + .byte 166 + .byte 3 + .byte 65 + .byte 67 + .byte 48 + .byte 74 + .byte 189 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 198 + .byte 0 + .byte 47 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 176 + .byte 8 + .byte 170 + .byte 3 + .byte 65 + .byte 67 + .byte 51 + .byte 77 + .byte 219 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 52 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 180 + .byte 3 + .byte 0 + .byte 177 + .byte 3 + .byte 0 + .byte 0 + .byte 85 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 52 + .byte 74 + .byte 222 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 53 + .byte 51 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 180 + .byte 8 + .byte 178 + .byte 3 + .byte 65 + .byte 67 + .byte 53 + .byte 79 + .byte 228 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 0 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 186 + .byte 3 + .byte 67 + .byte 55 + .byte 80 + .byte 137 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 21 + .byte 14 + .byte 2 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 249 + .byte 0 + .byte 0 + .byte 151 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 58 + .byte 80 + .byte 160 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 45 + .byte 30 + .byte 2 + .byte 1 + .byte 0 + .byte 8 + .byte 0 + .byte 234 + .byte 2 + .byte 0 + .byte 153 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 61 + .byte 80 + .byte 198 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 51 + .byte 21 + .byte 2 + .byte 1 + .byte 0 + .byte 6 + .byte 0 + .byte 173 + .byte 3 + .byte 0 + .byte 152 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 194 + .byte 0 + .byte 80 + .byte 137 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 18 + .byte 2 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 189 + .byte 3 + .byte 0 + .byte 155 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 198 + .byte 0 + .byte 80 + .byte 198 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 48 + .byte 2 + .byte 1 + .byte 0 + .byte 14 + .byte 0 + .byte 192 + .byte 3 + .byte 0 + .byte 159 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 202 + .byte 0 + .byte 80 + .byte 160 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 0 + .byte 43 + .byte 2 + .byte 1 + .byte 0 + .byte 12 + .byte 0 + .byte 195 + .byte 3 + .byte 0 + .byte 157 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 151 + .byte 1 + .byte 95 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 154 + .byte 1 + .byte 55 + .byte 0 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 152 + .byte 1 + .byte 95 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 158 + .byte 1 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 153 + .byte 1 + .byte 95 + .byte 0 + .byte 128 + .byte 128 + .byte 192 + .byte 132 + .byte 4 + .byte 156 + .byte 1 + .byte 58 + .byte 0 + .byte 0 + .byte 0 + .byte 9 + .byte 0 + .byte 154 + .byte 1 + .byte 95 + .byte 137 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 15 + .byte 151 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 155 + .byte 1 + .byte 82 + .byte 137 + .byte 1 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 194 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 0 + .byte 154 + .byte 1 + .byte 156 + .byte 1 + .byte 95 + .byte 160 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 142 + .byte 4 + .byte 31 + .byte 153 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 157 + .byte 1 + .byte 82 + .byte 160 + .byte 3 + .byte 128 + .byte 128 + .byte 144 + .byte 141 + .byte 4 + .byte 0 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 13 + .byte 0 + .byte 156 + .byte 1 + .byte 158 + .byte 1 + .byte 95 + .byte 198 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 22 + .byte 152 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 159 + .byte 1 + .byte 82 + .byte 198 + .byte 3 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 198 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 15 + .byte 0 + .byte 158 + .byte 1 + .byte 1 + .byte 1 + .byte 9 + .byte 1 + .byte 2 + .byte 1 + .byte 9 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 11 + .byte 9 + .byte 6 + .byte 1 + .byte 0 + .byte 2 + .byte 80 + .byte 4 + .byte 1 + .byte 9 + .byte 2 + .byte 5 + .byte 1 + .byte 9 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 11 + .byte 9 + .byte 9 + .byte 4 + .byte 0 + .byte 5 + .byte 80 + .byte 7 + .byte 1 + .byte 9 + .byte 3 + .byte 8 + .byte 1 + .byte 9 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 11 + .byte 9 + .byte 12 + .byte 7 + .byte 0 + .byte 8 + .byte 80 + .byte 10 + .byte 1 + .byte 9 + .byte 4 + .byte 11 + .byte 1 + .byte 9 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 12 + .byte 11 + .byte 9 + .byte 0 + .byte 10 + .byte 0 + .byte 11 + .byte 80 + .byte 13 + .byte 1 + .byte 9 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 14 + .byte 11 + .byte 9 + .byte 0 + .byte 13 + .byte 0 + .byte 0 + .byte 80 + .byte 15 + .byte 0 + .byte 11 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 20 + .byte 0 + .byte 40 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 21 + .byte 8 + .byte 40 + .byte 187 + .byte 7 + .byte 22 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 20 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 22 + .byte 1 + .byte 40 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 0 + .byte 48 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 30 + .byte 8 + .byte 48 + .byte 189 + .byte 7 + .byte 31 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 31 + .byte 1 + .byte 48 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 35 + .byte 0 + .byte 50 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 36 + .byte 8 + .byte 50 + .byte 190 + .byte 7 + .byte 37 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 35 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 37 + .byte 1 + .byte 50 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 38 + .byte 22 + .byte 50 + .byte 30 + .byte 36 + .byte 12 + .byte 43 + .byte 0 + .byte 56 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 44 + .byte 8 + .byte 56 + .byte 192 + .byte 7 + .byte 45 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 43 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 45 + .byte 1 + .byte 56 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 50 + .byte 0 + .byte 62 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 51 + .byte 8 + .byte 62 + .byte 194 + .byte 7 + .byte 52 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 50 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 52 + .byte 1 + .byte 62 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 57 + .byte 0 + .byte 196 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 58 + .byte 8 + .byte 196 + .byte 0 + .byte 196 + .byte 7 + .byte 59 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 57 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 59 + .byte 1 + .byte 196 + .byte 0 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 192 + .byte 0 + .byte 0 + .byte 202 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 193 + .byte 0 + .byte 8 + .byte 202 + .byte 0 + .byte 198 + .byte 7 + .byte 194 + .byte 0 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 192 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 194 + .byte 0 + .byte 1 + .byte 202 + .byte 0 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 199 + .byte 0 + .byte 0 + .byte 208 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 200 + .byte 0 + .byte 8 + .byte 208 + .byte 0 + .byte 200 + .byte 7 + .byte 201 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 199 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 201 + .byte 0 + .byte 1 + .byte 208 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 206 + .byte 0 + .byte 0 + .byte 214 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 207 + .byte 0 + .byte 0 + .byte 214 + .byte 0 + .byte 1 + .byte 0 + .byte 208 + .byte 0 + .byte 1 + .byte 214 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 209 + .byte 0 + .byte 11 + .byte 214 + .byte 0 + .byte 0 + .byte 207 + .byte 0 + .byte 0 + .byte 208 + .byte 0 + .byte 80 + .byte 212 + .byte 0 + .byte 0 + .byte 223 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 213 + .byte 0 + .byte 0 + .byte 232 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 236 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 217 + .byte 0 + .byte 15 + .byte 236 + .byte 0 + .byte 205 + .byte 7 + .byte 7 + .byte 6 + .byte 218 + .byte 0 + .byte 23 + .byte 236 + .byte 0 + .byte 217 + .byte 0 + .byte 216 + .byte 0 + .byte 7 + .byte 219 + .byte 0 + .byte 20 + .byte 236 + .byte 0 + .byte 204 + .byte 7 + .byte 218 + .byte 0 + .byte 36 + .byte 220 + .byte 0 + .byte 1 + .byte 236 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 0 + .byte 0 + .byte 236 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 222 + .byte 0 + .byte 8 + .byte 236 + .byte 0 + .byte 219 + .byte 0 + .byte 220 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 223 + .byte 0 + .byte 0 + .byte 240 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 226 + .byte 0 + .byte 0 + .byte 244 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 227 + .byte 0 + .byte 15 + .byte 244 + .byte 0 + .byte 207 + .byte 7 + .byte 7 + .byte 6 + .byte 228 + .byte 0 + .byte 23 + .byte 244 + .byte 0 + .byte 227 + .byte 0 + .byte 226 + .byte 0 + .byte 7 + .byte 229 + .byte 0 + .byte 20 + .byte 244 + .byte 0 + .byte 206 + .byte 7 + .byte 228 + .byte 0 + .byte 36 + .byte 230 + .byte 0 + .byte 1 + .byte 244 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 0 + .byte 0 + .byte 244 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 232 + .byte 0 + .byte 8 + .byte 244 + .byte 0 + .byte 229 + .byte 0 + .byte 230 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 233 + .byte 0 + .byte 0 + .byte 248 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 236 + .byte 0 + .byte 0 + .byte 252 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 237 + .byte 0 + .byte 15 + .byte 252 + .byte 0 + .byte 209 + .byte 7 + .byte 7 + .byte 6 + .byte 238 + .byte 0 + .byte 23 + .byte 252 + .byte 0 + .byte 237 + .byte 0 + .byte 236 + .byte 0 + .byte 7 + .byte 239 + .byte 0 + .byte 20 + .byte 252 + .byte 0 + .byte 208 + .byte 7 + .byte 238 + .byte 0 + .byte 36 + .byte 240 + .byte 0 + .byte 1 + .byte 252 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 0 + .byte 0 + .byte 252 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 242 + .byte 0 + .byte 8 + .byte 252 + .byte 0 + .byte 239 + .byte 0 + .byte 240 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 244 + .byte 0 + .byte 0 + .byte 128 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 246 + .byte 0 + .byte 20 + .byte 128 + .byte 1 + .byte 211 + .byte 7 + .byte 244 + .byte 0 + .byte 6 + .byte 249 + .byte 0 + .byte 48 + .byte 135 + .byte 1 + .byte 165 + .byte 7 + .byte 203 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 254 + .byte 0 + .byte 0 + .byte 161 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 132 + .byte 1 + .byte 8 + .byte 188 + .byte 1 + .byte 219 + .byte 7 + .byte 133 + .byte 1 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 131 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 133 + .byte 1 + .byte 1 + .byte 188 + .byte 1 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 134 + .byte 1 + .byte 23 + .byte 188 + .byte 1 + .byte 218 + .byte 7 + .byte 132 + .byte 1 + .byte 6 + .byte 138 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 139 + .byte 1 + .byte 8 + .byte 190 + .byte 1 + .byte 217 + .byte 7 + .byte 140 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 138 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 140 + .byte 1 + .byte 1 + .byte 190 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 141 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 142 + .byte 1 + .byte 15 + .byte 190 + .byte 1 + .byte 134 + .byte 1 + .byte 7 + .byte 6 + .byte 143 + .byte 1 + .byte 23 + .byte 190 + .byte 1 + .byte 142 + .byte 1 + .byte 141 + .byte 1 + .byte 7 + .byte 144 + .byte 1 + .byte 20 + .byte 190 + .byte 1 + .byte 139 + .byte 1 + .byte 143 + .byte 1 + .byte 36 + .byte 151 + .byte 1 + .byte 0 + .byte 200 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 152 + .byte 1 + .byte 8 + .byte 200 + .byte 1 + .byte 221 + .byte 7 + .byte 153 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 151 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 153 + .byte 1 + .byte 1 + .byte 200 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 154 + .byte 1 + .byte 0 + .byte 200 + .byte 1 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 155 + .byte 1 + .byte 15 + .byte 200 + .byte 1 + .byte 222 + .byte 7 + .byte 7 + .byte 6 + .byte 156 + .byte 1 + .byte 23 + .byte 200 + .byte 1 + .byte 155 + .byte 1 + .byte 154 + .byte 1 + .byte 7 + .byte 157 + .byte 1 + .byte 20 + .byte 200 + .byte 1 + .byte 152 + .byte 1 + .byte 156 + .byte 1 + .byte 36 + .byte 158 + .byte 1 + .byte 1 + .byte 200 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 159 + .byte 1 + .byte 0 + .byte 200 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 160 + .byte 1 + .byte 8 + .byte 200 + .byte 1 + .byte 157 + .byte 1 + .byte 158 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 159 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 163 + .byte 1 + .byte 0 + .byte 206 + .byte 1 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 1 + .byte 23 + .byte 206 + .byte 1 + .byte 225 + .byte 7 + .byte 163 + .byte 1 + .byte 6 + .byte 170 + .byte 1 + .byte 0 + .byte 206 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 171 + .byte 1 + .byte 8 + .byte 206 + .byte 1 + .byte 224 + .byte 7 + .byte 172 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 170 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 172 + .byte 1 + .byte 1 + .byte 206 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 173 + .byte 1 + .byte 0 + .byte 206 + .byte 1 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 174 + .byte 1 + .byte 15 + .byte 206 + .byte 1 + .byte 164 + .byte 1 + .byte 7 + .byte 6 + .byte 175 + .byte 1 + .byte 23 + .byte 206 + .byte 1 + .byte 174 + .byte 1 + .byte 173 + .byte 1 + .byte 7 + .byte 176 + .byte 1 + .byte 20 + .byte 206 + .byte 1 + .byte 171 + .byte 1 + .byte 175 + .byte 1 + .byte 36 + .byte 177 + .byte 1 + .byte 1 + .byte 206 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 206 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 179 + .byte 1 + .byte 8 + .byte 206 + .byte 1 + .byte 176 + .byte 1 + .byte 177 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 182 + .byte 1 + .byte 0 + .byte 215 + .byte 1 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 183 + .byte 1 + .byte 23 + .byte 215 + .byte 1 + .byte 228 + .byte 7 + .byte 182 + .byte 1 + .byte 6 + .byte 184 + .byte 1 + .byte 0 + .byte 215 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 185 + .byte 1 + .byte 20 + .byte 215 + .byte 1 + .byte 183 + .byte 1 + .byte 184 + .byte 1 + .byte 6 + .byte 189 + .byte 1 + .byte 0 + .byte 215 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 190 + .byte 1 + .byte 8 + .byte 215 + .byte 1 + .byte 227 + .byte 7 + .byte 191 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 189 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 191 + .byte 1 + .byte 1 + .byte 215 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 192 + .byte 1 + .byte 0 + .byte 215 + .byte 1 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 193 + .byte 1 + .byte 15 + .byte 215 + .byte 1 + .byte 185 + .byte 1 + .byte 7 + .byte 6 + .byte 194 + .byte 1 + .byte 23 + .byte 215 + .byte 1 + .byte 193 + .byte 1 + .byte 192 + .byte 1 + .byte 7 + .byte 195 + .byte 1 + .byte 20 + .byte 215 + .byte 1 + .byte 190 + .byte 1 + .byte 194 + .byte 1 + .byte 36 + .byte 196 + .byte 1 + .byte 1 + .byte 215 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 197 + .byte 1 + .byte 0 + .byte 215 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 1 + .byte 8 + .byte 215 + .byte 1 + .byte 195 + .byte 1 + .byte 196 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 197 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 201 + .byte 1 + .byte 0 + .byte 224 + .byte 1 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 202 + .byte 1 + .byte 23 + .byte 224 + .byte 1 + .byte 231 + .byte 7 + .byte 201 + .byte 1 + .byte 6 + .byte 203 + .byte 1 + .byte 0 + .byte 224 + .byte 1 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 204 + .byte 1 + .byte 20 + .byte 224 + .byte 1 + .byte 202 + .byte 1 + .byte 203 + .byte 1 + .byte 6 + .byte 208 + .byte 1 + .byte 0 + .byte 224 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 1 + .byte 8 + .byte 224 + .byte 1 + .byte 230 + .byte 7 + .byte 210 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 208 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 210 + .byte 1 + .byte 1 + .byte 224 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 211 + .byte 1 + .byte 0 + .byte 224 + .byte 1 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 212 + .byte 1 + .byte 15 + .byte 224 + .byte 1 + .byte 204 + .byte 1 + .byte 7 + .byte 6 + .byte 213 + .byte 1 + .byte 23 + .byte 224 + .byte 1 + .byte 212 + .byte 1 + .byte 211 + .byte 1 + .byte 7 + .byte 214 + .byte 1 + .byte 20 + .byte 224 + .byte 1 + .byte 209 + .byte 1 + .byte 213 + .byte 1 + .byte 36 + .byte 215 + .byte 1 + .byte 1 + .byte 224 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 1 + .byte 0 + .byte 224 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 217 + .byte 1 + .byte 8 + .byte 224 + .byte 1 + .byte 214 + .byte 1 + .byte 215 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 219 + .byte 1 + .byte 0 + .byte 231 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 221 + .byte 1 + .byte 0 + .byte 235 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 223 + .byte 1 + .byte 0 + .byte 239 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 225 + .byte 1 + .byte 0 + .byte 245 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 229 + .byte 1 + .byte 0 + .byte 142 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 230 + .byte 1 + .byte 15 + .byte 142 + .byte 2 + .byte 239 + .byte 7 + .byte 7 + .byte 6 + .byte 231 + .byte 1 + .byte 23 + .byte 142 + .byte 2 + .byte 230 + .byte 1 + .byte 229 + .byte 1 + .byte 7 + .byte 232 + .byte 1 + .byte 20 + .byte 142 + .byte 2 + .byte 238 + .byte 7 + .byte 231 + .byte 1 + .byte 36 + .byte 233 + .byte 1 + .byte 1 + .byte 142 + .byte 2 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 1 + .byte 0 + .byte 142 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 235 + .byte 1 + .byte 8 + .byte 142 + .byte 2 + .byte 232 + .byte 1 + .byte 233 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 239 + .byte 1 + .byte 0 + .byte 150 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 240 + .byte 1 + .byte 23 + .byte 150 + .byte 2 + .byte 243 + .byte 7 + .byte 239 + .byte 1 + .byte 6 + .byte 246 + .byte 1 + .byte 0 + .byte 150 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 247 + .byte 1 + .byte 8 + .byte 150 + .byte 2 + .byte 242 + .byte 7 + .byte 248 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 248 + .byte 1 + .byte 1 + .byte 150 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 249 + .byte 1 + .byte 0 + .byte 150 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 250 + .byte 1 + .byte 15 + .byte 150 + .byte 2 + .byte 240 + .byte 1 + .byte 7 + .byte 6 + .byte 251 + .byte 1 + .byte 23 + .byte 150 + .byte 2 + .byte 250 + .byte 1 + .byte 249 + .byte 1 + .byte 7 + .byte 252 + .byte 1 + .byte 20 + .byte 150 + .byte 2 + .byte 247 + .byte 1 + .byte 251 + .byte 1 + .byte 36 + .byte 253 + .byte 1 + .byte 1 + .byte 150 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 254 + .byte 1 + .byte 0 + .byte 150 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 255 + .byte 1 + .byte 8 + .byte 150 + .byte 2 + .byte 252 + .byte 1 + .byte 253 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 254 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 128 + .byte 2 + .byte 21 + .byte 150 + .byte 2 + .byte 241 + .byte 7 + .byte 255 + .byte 1 + .byte 12 + .byte 132 + .byte 2 + .byte 0 + .byte 161 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 133 + .byte 2 + .byte 23 + .byte 161 + .byte 2 + .byte 247 + .byte 7 + .byte 132 + .byte 2 + .byte 6 + .byte 134 + .byte 2 + .byte 0 + .byte 161 + .byte 2 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 135 + .byte 2 + .byte 20 + .byte 161 + .byte 2 + .byte 133 + .byte 2 + .byte 134 + .byte 2 + .byte 6 + .byte 139 + .byte 2 + .byte 0 + .byte 161 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 140 + .byte 2 + .byte 8 + .byte 161 + .byte 2 + .byte 246 + .byte 7 + .byte 141 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 139 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 141 + .byte 2 + .byte 1 + .byte 161 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 142 + .byte 2 + .byte 0 + .byte 161 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 143 + .byte 2 + .byte 15 + .byte 161 + .byte 2 + .byte 135 + .byte 2 + .byte 7 + .byte 6 + .byte 144 + .byte 2 + .byte 23 + .byte 161 + .byte 2 + .byte 143 + .byte 2 + .byte 142 + .byte 2 + .byte 7 + .byte 145 + .byte 2 + .byte 20 + .byte 161 + .byte 2 + .byte 140 + .byte 2 + .byte 144 + .byte 2 + .byte 36 + .byte 146 + .byte 2 + .byte 1 + .byte 161 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 147 + .byte 2 + .byte 0 + .byte 161 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 148 + .byte 2 + .byte 8 + .byte 161 + .byte 2 + .byte 145 + .byte 2 + .byte 146 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 147 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 149 + .byte 2 + .byte 21 + .byte 161 + .byte 2 + .byte 245 + .byte 7 + .byte 148 + .byte 2 + .byte 12 + .byte 153 + .byte 2 + .byte 0 + .byte 172 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 154 + .byte 2 + .byte 23 + .byte 172 + .byte 2 + .byte 251 + .byte 7 + .byte 153 + .byte 2 + .byte 6 + .byte 155 + .byte 2 + .byte 0 + .byte 172 + .byte 2 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 156 + .byte 2 + .byte 20 + .byte 172 + .byte 2 + .byte 154 + .byte 2 + .byte 155 + .byte 2 + .byte 6 + .byte 160 + .byte 2 + .byte 0 + .byte 172 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 161 + .byte 2 + .byte 8 + .byte 172 + .byte 2 + .byte 250 + .byte 7 + .byte 162 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 160 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 162 + .byte 2 + .byte 1 + .byte 172 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 2 + .byte 0 + .byte 172 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 2 + .byte 15 + .byte 172 + .byte 2 + .byte 156 + .byte 2 + .byte 7 + .byte 6 + .byte 165 + .byte 2 + .byte 23 + .byte 172 + .byte 2 + .byte 164 + .byte 2 + .byte 163 + .byte 2 + .byte 7 + .byte 166 + .byte 2 + .byte 20 + .byte 172 + .byte 2 + .byte 161 + .byte 2 + .byte 165 + .byte 2 + .byte 36 + .byte 167 + .byte 2 + .byte 1 + .byte 172 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 168 + .byte 2 + .byte 0 + .byte 172 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 169 + .byte 2 + .byte 8 + .byte 172 + .byte 2 + .byte 166 + .byte 2 + .byte 167 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 168 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 170 + .byte 2 + .byte 21 + .byte 172 + .byte 2 + .byte 249 + .byte 7 + .byte 169 + .byte 2 + .byte 12 + .byte 174 + .byte 2 + .byte 22 + .byte 183 + .byte 2 + .byte 253 + .byte 7 + .byte 254 + .byte 7 + .byte 12 + .byte 177 + .byte 2 + .byte 22 + .byte 187 + .byte 2 + .byte 255 + .byte 7 + .byte 128 + .byte 8 + .byte 12 + .byte 178 + .byte 2 + .byte 20 + .byte 187 + .byte 2 + .byte 174 + .byte 2 + .byte 177 + .byte 2 + .byte 12 + .byte 181 + .byte 2 + .byte 22 + .byte 191 + .byte 2 + .byte 129 + .byte 8 + .byte 130 + .byte 8 + .byte 12 + .byte 182 + .byte 2 + .byte 20 + .byte 191 + .byte 2 + .byte 178 + .byte 2 + .byte 181 + .byte 2 + .byte 12 + .byte 184 + .byte 2 + .byte 0 + .byte 210 + .byte 2 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 186 + .byte 2 + .byte 39 + .byte 212 + .byte 2 + .byte 184 + .byte 2 + .byte 134 + .byte 8 + .byte 12 + .byte 1 + .byte 3 + .byte 10 + .byte 109 + .byte 97 + .byte 120 + .byte 45 + .byte 101 + .byte 114 + .byte 114 + .byte 111 + .byte 114 + .byte 0 + .byte 4 + .byte 52 + .byte 46 + .byte 48 + .byte 0 + .byte 17 + .byte 100 + .byte 111 + .byte 109 + .byte 97 + .byte 105 + .byte 110 + .byte 45 + .byte 101 + .byte 120 + .byte 99 + .byte 108 + .byte 117 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 0 + .byte 3 + .byte 49 + .byte 53 + .byte 0 + .byte 18 + .byte 118 + .byte 97 + .byte 108 + .byte 105 + .byte 100 + .byte 45 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 117 + .byte 115 + .byte 45 + .byte 98 + .byte 105 + .byte 116 + .byte 115 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 190 + .byte 2 + .byte 22 + .byte 220 + .byte 2 + .byte 136 + .byte 8 + .byte 137 + .byte 8 + .byte 12 + .byte 192 + .byte 2 + .byte 22 + .byte 222 + .byte 2 + .byte 190 + .byte 2 + .byte 138 + .byte 8 + .byte 12 + .byte 194 + .byte 2 + .byte 22 + .byte 224 + .byte 2 + .byte 192 + .byte 2 + .byte 139 + .byte 8 + .byte 12 + .byte 196 + .byte 2 + .byte 0 + .byte 230 + .byte 2 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 2 + .byte 22 + .byte 232 + .byte 2 + .byte 196 + .byte 2 + .byte 141 + .byte 8 + .byte 12 + .byte 200 + .byte 2 + .byte 0 + .byte 236 + .byte 2 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 201 + .byte 2 + .byte 21 + .byte 236 + .byte 2 + .byte 142 + .byte 8 + .byte 200 + .byte 2 + .byte 12 + .byte 202 + .byte 2 + .byte 22 + .byte 236 + .byte 2 + .byte 198 + .byte 2 + .byte 201 + .byte 2 + .byte 12 + .byte 204 + .byte 2 + .byte 22 + .byte 238 + .byte 2 + .byte 202 + .byte 2 + .byte 143 + .byte 8 + .byte 12 + .byte 206 + .byte 2 + .byte 22 + .byte 240 + .byte 2 + .byte 204 + .byte 2 + .byte 144 + .byte 8 + .byte 12 + .byte 209 + .byte 2 + .byte 22 + .byte 246 + .byte 2 + .byte 147 + .byte 8 + .byte 148 + .byte 8 + .byte 12 + .byte 212 + .byte 2 + .byte 20 + .byte 248 + .byte 2 + .byte 146 + .byte 8 + .byte 209 + .byte 2 + .byte 12 + .byte 215 + .byte 2 + .byte 22 + .byte 254 + .byte 2 + .byte 151 + .byte 8 + .byte 152 + .byte 8 + .byte 12 + .byte 218 + .byte 2 + .byte 20 + .byte 128 + .byte 3 + .byte 150 + .byte 8 + .byte 215 + .byte 2 + .byte 12 + .byte 221 + .byte 2 + .byte 22 + .byte 134 + .byte 3 + .byte 155 + .byte 8 + .byte 156 + .byte 8 + .byte 12 + .byte 224 + .byte 2 + .byte 20 + .byte 136 + .byte 3 + .byte 154 + .byte 8 + .byte 221 + .byte 2 + .byte 12 + .byte 227 + .byte 2 + .byte 48 + .byte 144 + .byte 3 + .byte 131 + .byte 8 + .byte 132 + .byte 8 + .byte 6 + .byte 4 + .byte 12 + .byte 229 + .byte 2 + .byte 0 + .byte 151 + .byte 3 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 231 + .byte 2 + .byte 20 + .byte 151 + .byte 3 + .byte 158 + .byte 8 + .byte 229 + .byte 2 + .byte 6 + .byte 234 + .byte 2 + .byte 48 + .byte 158 + .byte 3 + .byte 167 + .byte 7 + .byte 236 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 238 + .byte 2 + .byte 0 + .byte 169 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 239 + .byte 2 + .byte 15 + .byte 169 + .byte 3 + .byte 162 + .byte 8 + .byte 7 + .byte 6 + .byte 240 + .byte 2 + .byte 23 + .byte 169 + .byte 3 + .byte 239 + .byte 2 + .byte 238 + .byte 2 + .byte 7 + .byte 241 + .byte 2 + .byte 20 + .byte 169 + .byte 3 + .byte 161 + .byte 8 + .byte 240 + .byte 2 + .byte 36 + .byte 242 + .byte 2 + .byte 1 + .byte 169 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 2 + .byte 0 + .byte 169 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 244 + .byte 2 + .byte 8 + .byte 169 + .byte 3 + .byte 241 + .byte 2 + .byte 242 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 245 + .byte 2 + .byte 8 + .byte 169 + .byte 3 + .byte 246 + .byte 2 + .byte 252 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 253 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 246 + .byte 2 + .byte 20 + .byte 169 + .byte 3 + .byte 163 + .byte 8 + .byte 248 + .byte 2 + .byte 36 + .byte 248 + .byte 2 + .byte 23 + .byte 169 + .byte 3 + .byte 249 + .byte 2 + .byte 251 + .byte 2 + .byte 7 + .byte 249 + .byte 2 + .byte 15 + .byte 169 + .byte 3 + .byte 164 + .byte 8 + .byte 7 + .byte 6 + .byte 251 + .byte 2 + .byte 0 + .byte 169 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 252 + .byte 2 + .byte 1 + .byte 169 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 253 + .byte 2 + .byte 0 + .byte 169 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 254 + .byte 2 + .byte 20 + .byte 169 + .byte 3 + .byte 245 + .byte 2 + .byte 165 + .byte 8 + .byte 12 + .byte 130 + .byte 3 + .byte 0 + .byte 177 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 3 + .byte 15 + .byte 177 + .byte 3 + .byte 167 + .byte 8 + .byte 7 + .byte 6 + .byte 132 + .byte 3 + .byte 23 + .byte 177 + .byte 3 + .byte 131 + .byte 3 + .byte 130 + .byte 3 + .byte 7 + .byte 133 + .byte 3 + .byte 20 + .byte 177 + .byte 3 + .byte 166 + .byte 8 + .byte 132 + .byte 3 + .byte 36 + .byte 134 + .byte 3 + .byte 1 + .byte 177 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 3 + .byte 0 + .byte 177 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 136 + .byte 3 + .byte 8 + .byte 177 + .byte 3 + .byte 133 + .byte 3 + .byte 134 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 137 + .byte 3 + .byte 8 + .byte 177 + .byte 3 + .byte 138 + .byte 3 + .byte 144 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 145 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 138 + .byte 3 + .byte 20 + .byte 177 + .byte 3 + .byte 168 + .byte 8 + .byte 140 + .byte 3 + .byte 36 + .byte 140 + .byte 3 + .byte 23 + .byte 177 + .byte 3 + .byte 141 + .byte 3 + .byte 143 + .byte 3 + .byte 7 + .byte 141 + .byte 3 + .byte 15 + .byte 177 + .byte 3 + .byte 169 + .byte 8 + .byte 7 + .byte 6 + .byte 143 + .byte 3 + .byte 0 + .byte 177 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 3 + .byte 1 + .byte 177 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 145 + .byte 3 + .byte 0 + .byte 177 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 146 + .byte 3 + .byte 20 + .byte 177 + .byte 3 + .byte 137 + .byte 3 + .byte 170 + .byte 8 + .byte 12 + .byte 150 + .byte 3 + .byte 0 + .byte 185 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 151 + .byte 3 + .byte 15 + .byte 185 + .byte 3 + .byte 172 + .byte 8 + .byte 7 + .byte 6 + .byte 152 + .byte 3 + .byte 23 + .byte 185 + .byte 3 + .byte 151 + .byte 3 + .byte 150 + .byte 3 + .byte 7 + .byte 153 + .byte 3 + .byte 20 + .byte 185 + .byte 3 + .byte 171 + .byte 8 + .byte 152 + .byte 3 + .byte 36 + .byte 154 + .byte 3 + .byte 1 + .byte 185 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 155 + .byte 3 + .byte 0 + .byte 185 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 156 + .byte 3 + .byte 8 + .byte 185 + .byte 3 + .byte 153 + .byte 3 + .byte 154 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 155 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 157 + .byte 3 + .byte 8 + .byte 185 + .byte 3 + .byte 158 + .byte 3 + .byte 164 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 165 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 158 + .byte 3 + .byte 20 + .byte 185 + .byte 3 + .byte 173 + .byte 8 + .byte 160 + .byte 3 + .byte 36 + .byte 160 + .byte 3 + .byte 23 + .byte 185 + .byte 3 + .byte 161 + .byte 3 + .byte 163 + .byte 3 + .byte 7 + .byte 161 + .byte 3 + .byte 15 + .byte 185 + .byte 3 + .byte 174 + .byte 8 + .byte 7 + .byte 6 + .byte 163 + .byte 3 + .byte 0 + .byte 185 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 3 + .byte 1 + .byte 185 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 165 + .byte 3 + .byte 0 + .byte 185 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 166 + .byte 3 + .byte 20 + .byte 185 + .byte 3 + .byte 157 + .byte 3 + .byte 175 + .byte 8 + .byte 12 + .byte 168 + .byte 3 + .byte 0 + .byte 189 + .byte 3 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 170 + .byte 3 + .byte 20 + .byte 189 + .byte 3 + .byte 177 + .byte 8 + .byte 168 + .byte 3 + .byte 6 + .byte 173 + .byte 3 + .byte 48 + .byte 196 + .byte 3 + .byte 166 + .byte 7 + .byte 215 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 177 + .byte 3 + .byte 0 + .byte 219 + .byte 3 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 178 + .byte 3 + .byte 0 + .byte 219 + .byte 3 + .byte 2 + .byte 0 + .byte 179 + .byte 3 + .byte 1 + .byte 219 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 180 + .byte 3 + .byte 11 + .byte 219 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 0 + .byte 179 + .byte 3 + .byte 80 + .byte 184 + .byte 3 + .byte 21 + .byte 228 + .byte 3 + .byte 181 + .byte 8 + .byte 182 + .byte 8 + .byte 12 + .byte 185 + .byte 3 + .byte 1 + .byte 228 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 186 + .byte 3 + .byte 11 + .byte 228 + .byte 3 + .byte 0 + .byte 184 + .byte 3 + .byte 0 + .byte 185 + .byte 3 + .byte 80 + .byte 189 + .byte 3 + .byte 48 + .byte 135 + .byte 1 + .byte 212 + .byte 7 + .byte 213 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 192 + .byte 3 + .byte 48 + .byte 196 + .byte 3 + .byte 178 + .byte 8 + .byte 179 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 195 + .byte 3 + .byte 48 + .byte 158 + .byte 3 + .byte 159 + .byte 8 + .byte 160 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 165 + .byte 7 + .byte 0 + .byte 223 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 166 + .byte 7 + .byte 0 + .byte 161 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 167 + .byte 7 + .byte 0 + .byte 245 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 186 + .byte 7 + .byte 1 + .byte 40 + .byte 5 + .byte 187 + .byte 7 + .byte 1 + .byte 40 + .byte 2 + .byte 188 + .byte 7 + .byte 1 + .byte 50 + .byte 7 + .byte 189 + .byte 7 + .byte 1 + .byte 48 + .byte 1 + .byte 190 + .byte 7 + .byte 1 + .byte 50 + .byte 1 + .byte 191 + .byte 7 + .byte 1 + .byte 56 + .byte 8 + .byte 192 + .byte 7 + .byte 1 + .byte 56 + .byte 1 + .byte 193 + .byte 7 + .byte 1 + .byte 62 + .byte 9 + .byte 194 + .byte 7 + .byte 1 + .byte 62 + .byte 1 + .byte 195 + .byte 7 + .byte 1 + .byte 196 + .byte 0 + .byte 10 + .byte 196 + .byte 7 + .byte 1 + .byte 196 + .byte 0 + .byte 2 + .byte 197 + .byte 7 + .byte 1 + .byte 202 + .byte 0 + .byte 11 + .byte 198 + .byte 7 + .byte 1 + .byte 202 + .byte 0 + .byte 2 + .byte 199 + .byte 7 + .byte 1 + .byte 208 + .byte 0 + .byte 12 + .byte 200 + .byte 7 + .byte 1 + .byte 208 + .byte 0 + .byte 2 + .byte 201 + .byte 7 + .byte 1 + .byte 217 + .byte 0 + .byte 13 + .byte 202 + .byte 7 + .byte 1 + .byte 223 + .byte 0 + .byte 15 + .byte 203 + .byte 7 + .byte 1 + .byte 135 + .byte 1 + .byte 5 + .byte 204 + .byte 7 + .byte 1 + .byte 236 + .byte 0 + .byte 10 + .byte 205 + .byte 7 + .byte 1 + .byte 236 + .byte 0 + .byte 15 + .byte 206 + .byte 7 + .byte 1 + .byte 244 + .byte 0 + .byte 11 + .byte 207 + .byte 7 + .byte 1 + .byte 244 + .byte 0 + .byte 15 + .byte 208 + .byte 7 + .byte 1 + .byte 252 + .byte 0 + .byte 12 + .byte 209 + .byte 7 + .byte 1 + .byte 252 + .byte 0 + .byte 15 + .byte 210 + .byte 7 + .byte 1 + .byte 128 + .byte 1 + .byte 15 + .byte 211 + .byte 7 + .byte 1 + .byte 128 + .byte 1 + .byte 15 + .byte 212 + .byte 7 + .byte 1 + .byte 135 + .byte 1 + .byte 15 + .byte 213 + .byte 7 + .byte 1 + .byte 135 + .byte 1 + .byte 5 + .byte 214 + .byte 7 + .byte 1 + .byte 161 + .byte 1 + .byte 16 + .byte 215 + .byte 7 + .byte 1 + .byte 196 + .byte 3 + .byte 5 + .byte 216 + .byte 7 + .byte 1 + .byte 192 + .byte 1 + .byte 6 + .byte 217 + .byte 7 + .byte 1 + .byte 190 + .byte 1 + .byte 3 + .byte 218 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 16 + .byte 219 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 3 + .byte 220 + .byte 7 + .byte 1 + .byte 200 + .byte 1 + .byte 17 + .byte 221 + .byte 7 + .byte 1 + .byte 200 + .byte 1 + .byte 3 + .byte 222 + .byte 7 + .byte 1 + .byte 200 + .byte 1 + .byte 16 + .byte 223 + .byte 7 + .byte 1 + .byte 206 + .byte 1 + .byte 18 + .byte 224 + .byte 7 + .byte 1 + .byte 206 + .byte 1 + .byte 2 + .byte 225 + .byte 7 + .byte 1 + .byte 206 + .byte 1 + .byte 16 + .byte 226 + .byte 7 + .byte 1 + .byte 215 + .byte 1 + .byte 19 + .byte 227 + .byte 7 + .byte 1 + .byte 215 + .byte 1 + .byte 2 + .byte 228 + .byte 7 + .byte 1 + .byte 215 + .byte 1 + .byte 16 + .byte 229 + .byte 7 + .byte 1 + .byte 224 + .byte 1 + .byte 20 + .byte 230 + .byte 7 + .byte 1 + .byte 224 + .byte 1 + .byte 2 + .byte 231 + .byte 7 + .byte 1 + .byte 224 + .byte 1 + .byte 16 + .byte 232 + .byte 7 + .byte 1 + .byte 231 + .byte 1 + .byte 21 + .byte 233 + .byte 7 + .byte 1 + .byte 235 + .byte 1 + .byte 22 + .byte 234 + .byte 7 + .byte 1 + .byte 239 + .byte 1 + .byte 23 + .byte 235 + .byte 7 + .byte 1 + .byte 245 + .byte 1 + .byte 24 + .byte 236 + .byte 7 + .byte 1 + .byte 158 + .byte 3 + .byte 17 + .byte 237 + .byte 7 + .byte 1 + .byte 142 + .byte 2 + .byte 25 + .byte 238 + .byte 7 + .byte 1 + .byte 142 + .byte 2 + .byte 6 + .byte 239 + .byte 7 + .byte 1 + .byte 142 + .byte 2 + .byte 24 + .byte 240 + .byte 7 + .byte 1 + .byte 150 + .byte 2 + .byte 26 + .byte 241 + .byte 7 + .byte 1 + .byte 150 + .byte 2 + .byte 18 + .byte 242 + .byte 7 + .byte 1 + .byte 150 + .byte 2 + .byte 2 + .byte 243 + .byte 7 + .byte 1 + .byte 150 + .byte 2 + .byte 25 + .byte 244 + .byte 7 + .byte 1 + .byte 161 + .byte 2 + .byte 27 + .byte 245 + .byte 7 + .byte 1 + .byte 161 + .byte 2 + .byte 19 + .byte 246 + .byte 7 + .byte 1 + .byte 161 + .byte 2 + .byte 2 + .byte 247 + .byte 7 + .byte 1 + .byte 161 + .byte 2 + .byte 25 + .byte 248 + .byte 7 + .byte 1 + .byte 172 + .byte 2 + .byte 28 + .byte 249 + .byte 7 + .byte 1 + .byte 172 + .byte 2 + .byte 20 + .byte 250 + .byte 7 + .byte 1 + .byte 172 + .byte 2 + .byte 2 + .byte 251 + .byte 7 + .byte 1 + .byte 172 + .byte 2 + .byte 25 + .byte 252 + .byte 7 + .byte 1 + .byte 191 + .byte 2 + .byte 29 + .byte 253 + .byte 7 + .byte 1 + .byte 183 + .byte 2 + .byte 26 + .byte 254 + .byte 7 + .byte 1 + .byte 183 + .byte 2 + .byte 26 + .byte 255 + .byte 7 + .byte 1 + .byte 187 + .byte 2 + .byte 27 + .byte 128 + .byte 8 + .byte 1 + .byte 187 + .byte 2 + .byte 27 + .byte 129 + .byte 8 + .byte 1 + .byte 191 + .byte 2 + .byte 28 + .byte 130 + .byte 8 + .byte 1 + .byte 191 + .byte 2 + .byte 28 + .byte 131 + .byte 8 + .byte 1 + .byte 144 + .byte 3 + .byte 29 + .byte 132 + .byte 8 + .byte 1 + .byte 144 + .byte 3 + .byte 7 + .byte 133 + .byte 8 + .byte 1 + .byte 212 + .byte 2 + .byte 30 + .byte 134 + .byte 8 + .byte 1 + .byte 212 + .byte 2 + .byte 29 + .byte 135 + .byte 8 + .byte 1 + .byte 224 + .byte 2 + .byte 31 + .byte 136 + .byte 8 + .byte 1 + .byte 220 + .byte 2 + .byte 30 + .byte 137 + .byte 8 + .byte 1 + .byte 220 + .byte 2 + .byte 30 + .byte 138 + .byte 8 + .byte 1 + .byte 222 + .byte 2 + .byte 30 + .byte 139 + .byte 8 + .byte 1 + .byte 224 + .byte 2 + .byte 8 + .byte 140 + .byte 8 + .byte 1 + .byte 240 + .byte 2 + .byte 32 + .byte 141 + .byte 8 + .byte 1 + .byte 232 + .byte 2 + .byte 31 + .byte 142 + .byte 8 + .byte 1 + .byte 236 + .byte 2 + .byte 31 + .byte 143 + .byte 8 + .byte 1 + .byte 238 + .byte 2 + .byte 30 + .byte 144 + .byte 8 + .byte 1 + .byte 240 + .byte 2 + .byte 9 + .byte 145 + .byte 8 + .byte 1 + .byte 248 + .byte 2 + .byte 21 + .byte 146 + .byte 8 + .byte 1 + .byte 248 + .byte 2 + .byte 21 + .byte 147 + .byte 8 + .byte 1 + .byte 246 + .byte 2 + .byte 26 + .byte 148 + .byte 8 + .byte 1 + .byte 246 + .byte 2 + .byte 32 + .byte 149 + .byte 8 + .byte 1 + .byte 128 + .byte 3 + .byte 22 + .byte 150 + .byte 8 + .byte 1 + .byte 128 + .byte 3 + .byte 22 + .byte 151 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 27 + .byte 152 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 32 + .byte 153 + .byte 8 + .byte 1 + .byte 136 + .byte 3 + .byte 23 + .byte 154 + .byte 8 + .byte 1 + .byte 136 + .byte 3 + .byte 23 + .byte 155 + .byte 8 + .byte 1 + .byte 134 + .byte 3 + .byte 28 + .byte 156 + .byte 8 + .byte 1 + .byte 134 + .byte 3 + .byte 32 + .byte 157 + .byte 8 + .byte 1 + .byte 151 + .byte 3 + .byte 24 + .byte 158 + .byte 8 + .byte 1 + .byte 151 + .byte 3 + .byte 24 + .byte 159 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 24 + .byte 160 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 17 + .byte 161 + .byte 8 + .byte 1 + .byte 169 + .byte 3 + .byte 10 + .byte 162 + .byte 8 + .byte 1 + .byte 169 + .byte 3 + .byte 16 + .byte 163 + .byte 8 + .byte 1 + .byte 169 + .byte 3 + .byte 10 + .byte 164 + .byte 8 + .byte 1 + .byte 169 + .byte 3 + .byte 16 + .byte 165 + .byte 8 + .byte 1 + .byte 169 + .byte 3 + .byte 21 + .byte 166 + .byte 8 + .byte 1 + .byte 177 + .byte 3 + .byte 11 + .byte 167 + .byte 8 + .byte 1 + .byte 177 + .byte 3 + .byte 16 + .byte 168 + .byte 8 + .byte 1 + .byte 177 + .byte 3 + .byte 11 + .byte 169 + .byte 8 + .byte 1 + .byte 177 + .byte 3 + .byte 16 + .byte 170 + .byte 8 + .byte 1 + .byte 177 + .byte 3 + .byte 22 + .byte 171 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 12 + .byte 172 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 16 + .byte 173 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 12 + .byte 174 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 16 + .byte 175 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 23 + .byte 176 + .byte 8 + .byte 1 + .byte 189 + .byte 3 + .byte 16 + .byte 177 + .byte 8 + .byte 1 + .byte 189 + .byte 3 + .byte 16 + .byte 178 + .byte 8 + .byte 1 + .byte 196 + .byte 3 + .byte 16 + .byte 179 + .byte 8 + .byte 1 + .byte 196 + .byte 3 + .byte 5 + .byte 180 + .byte 8 + .byte 1 + .byte 222 + .byte 3 + .byte 14 + .byte 181 + .byte 8 + .byte 1 + .byte 228 + .byte 3 + .byte 14 + .byte 182 + .byte 8 + .byte 1 + .byte 228 + .byte 3 + .byte 13 + .byte 1 + .byte 65 + .byte 55 + .byte 99 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 65 + .byte 55 + .byte 99 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 5 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 2 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 6 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 3 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 7 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 4 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 8 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 5 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 11 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 9 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 6 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 10 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 7 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 11 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 8 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 12 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 9 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 83 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 13 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 10 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 69 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 14 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 11 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 0 + .byte 15 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 12 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 54 + .byte 0 + .byte 16 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 13 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 13 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 17 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 14 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 18 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 15 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 19 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 16 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 20 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 17 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 21 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 18 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 22 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 19 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 55 + .byte 0 + .byte 23 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 20 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 0 + .byte 24 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 21 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 25 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 22 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 26 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 23 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 27 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 24 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 28 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 25 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 29 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 26 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 30 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 27 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 31 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 28 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 9 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 32 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 13 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 2 + .byte 12 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 16 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 15 + .byte 112 + .byte 114 + .byte 111 + .byte 102 + .byte 105 + .byte 108 + .byte 101 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 5 + .byte 14 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 0 + .byte 1 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 14 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 53 + .byte 0 + .byte 2 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 18 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 54 + .byte 0 + .byte 3 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 14 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 55 + .byte 0 + .byte 4 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 15 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 56 + .byte 0 + .byte 5 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 10 + .byte 10 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 57 + .byte 0 + .byte 6 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 10 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 97 + .byte 0 + .byte 7 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 12 + .byte 10 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 98 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 13 + .byte 9 + .byte 83 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 99 + .byte 0 + .byte 9 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 14 + .byte 9 + .byte 69 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 100 + .byte 0 + .byte 10 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 15 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 101 + .byte 0 + .byte 11 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 16 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 102 + .byte 0 + .byte 12 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 18 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 48 + .byte 0 + .byte 13 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 18 + .byte 13 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 49 + .byte 0 + .byte 14 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 19 + .byte 13 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 50 + .byte 0 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 20 + .byte 13 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 51 + .byte 0 + .byte 16 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 21 + .byte 12 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 52 + .byte 0 + .byte 17 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 22 + .byte 12 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 53 + .byte 0 + .byte 18 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 23 + .byte 12 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 55 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 54 + .byte 0 + .byte 19 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 24 + .byte 10 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 99 + .byte 0 + .byte 20 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 25 + .byte 10 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 100 + .byte 0 + .byte 21 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 101 + .byte 0 + .byte 22 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 27 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 102 + .byte 0 + .byte 23 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 28 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 48 + .byte 0 + .byte 24 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 12 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 49 + .byte 0 + .byte 25 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 30 + .byte 12 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 50 + .byte 0 + .byte 26 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 31 + .byte 12 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 51 + .byte 0 + .byte 27 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 14 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 52 + .byte 0 + .byte 28 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 56 + .byte 91 + .byte 8 + .byte 5 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 109 + .byte 54 + .byte 52 + .byte 116 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 114 + .byte 111 + .byte 117 + .byte 116 + .byte 105 + .byte 110 + .byte 101 + .byte 95 + .byte 112 + .byte 111 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 114 + .byte 95 + .byte 115 + .byte 105 + .byte 122 + .byte 101 + .byte 95 + .byte 54 + .byte 52 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 103 + .byte 110 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 95 + .byte 117 + .byte 115 + .byte 101 + .byte 100 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 103 + .byte 99 + .byte 99 + .byte 95 + .byte 118 + .byte 101 + .byte 114 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 61 + .byte 55 + .byte 48 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 99 + .byte 120 + .byte 120 + .byte 95 + .byte 108 + .byte 105 + .byte 109 + .byte 105 + .byte 116 + .byte 101 + .byte 100 + .byte 95 + .byte 114 + .byte 97 + .byte 110 + .byte 103 + .byte 101 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 95 + .byte 112 + .byte 97 + .byte 114 + .byte 109 + .byte 115 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 105 + .byte 110 + .byte 115 + .byte 116 + .byte 114 + .byte 117 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 95 + .byte 116 + .byte 117 + .byte 110 + .byte 105 + .byte 110 + .byte 103 + .byte 61 + .byte 48 + .byte 120 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 117 + .byte 97 + .byte 114 + .byte 99 + .byte 104 + .byte 95 + .byte 116 + .byte 117 + .byte 110 + .byte 105 + .byte 110 + .byte 103 + .byte 61 + .byte 48 + .byte 120 + .byte 48 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 98 + .byte 110 + .byte 108 + .byte 95 + .byte 109 + .byte 111 + .byte 118 + .byte 98 + .byte 101 + .byte 61 + .byte 84 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 101 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 115 + .byte 116 + .byte 114 + .byte 117 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 48 + .byte 120 + .byte 56 + .byte 48 + .byte 48 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 97 + .byte 100 + .byte 118 + .byte 97 + .byte 110 + .byte 99 + .byte 101 + .byte 100 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 109 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 115 + .byte 117 + .byte 98 + .byte 115 + .byte 95 + .byte 111 + .byte 117 + .byte 116 + .byte 95 + .byte 111 + .byte 102 + .byte 95 + .byte 98 + .byte 111 + .byte 117 + .byte 110 + .byte 100 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 98 + .byte 97 + .byte 115 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 61 + .byte 50 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 99 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 99 + .byte 104 + .byte 101 + .byte 99 + .byte 107 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 97 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 105 + .byte 108 + .byte 48 + .byte 95 + .byte 97 + .byte 114 + .byte 114 + .byte 97 + .byte 121 + .byte 95 + .byte 115 + .byte 101 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 102 + .byte 102 + .byte 108 + .byte 111 + .byte 97 + .byte 100 + .byte 95 + .byte 109 + .byte 111 + .byte 100 + .byte 101 + .byte 61 + .byte 49 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 114 + .byte 101 + .byte 115 + .byte 116 + .byte 114 + .byte 105 + .byte 99 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 102 + .byte 117 + .byte 110 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 112 + .byte 111 + .byte 95 + .byte 114 + .byte 116 + .byte 116 + .byte 95 + .byte 99 + .byte 111 + .byte 110 + .byte 116 + .byte 114 + .byte 111 + .byte 108 + .byte 61 + .byte 48 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 114 + .byte 103 + .byte 115 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 114 + .byte 101 + .byte 103 + .byte 115 + .byte 61 + .byte 48 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 110 + .byte 111 + .byte 110 + .byte 115 + .byte 116 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 110 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 122 + .byte 109 + .byte 109 + .byte 95 + .byte 117 + .byte 115 + .byte 97 + .byte 103 + .byte 101 + .byte 61 + .byte 52 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 108 + .byte 116 + .byte 111 + .byte 95 + .byte 111 + .byte 98 + .byte 106 + .byte 101 + .byte 99 + .byte 116 + .byte 95 + .byte 101 + .byte 110 + .byte 97 + .byte 98 + .byte 108 + .byte 101 + .byte 100 + .byte 32 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 115 + .byte 109 + .byte 95 + .byte 116 + .byte 97 + .byte 114 + .byte 103 + .byte 101 + .byte 116 + .byte 61 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 65 + .byte 83 + .byte 77 + .byte 95 + .byte 84 + .byte 65 + .byte 82 + .byte 71 + .byte 69 + .byte 84 + .byte 95 + .byte 71 + .byte 65 + .byte 83 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 100 + .byte 105 + .byte 97 + .byte 108 + .byte 101 + .byte 99 + .byte 116 + .byte 61 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 83 + .byte 79 + .byte 85 + .byte 82 + .byte 67 + .byte 69 + .byte 95 + .byte 68 + .byte 73 + .byte 65 + .byte 76 + .byte 69 + .byte 67 + .byte 84 + .byte 95 + .byte 67 + .byte 32 + .byte 80 + .byte 49 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 102 + .byte 117 + .byte 108 + .byte 108 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 102 + .byte 105 + .byte 108 + .byte 101 + .byte 95 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 61 + .byte 47 + .byte 104 + .byte 111 + .byte 109 + .byte 101 + .byte 47 + .byte 104 + .byte 112 + .byte 99 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 48 + .byte 50 + .byte 49 + .byte 104 + .byte 47 + .byte 77 + .byte 68 + .byte 45 + .byte 66 + .byte 101 + .byte 110 + .byte 99 + .byte 104 + .byte 47 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 99 + .byte 111 + .byte 114 + .byte 101 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 1 + .byte 2 + .byte 160 + .byte 1 + .byte 60 + .byte 255 + .byte 0 + .byte 127 + .byte 85 + .byte 114 + .byte 99 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 126 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 0 + .byte 123 + .byte 85 + .byte 114 + .byte 99 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 122 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 0 + .byte 121 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 8 + .byte 120 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 1 + .byte 119 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 4 + .byte 118 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 3 + .byte 117 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 2 + .byte 116 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 248 + .byte 63 + .byte 115 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 164 + .byte 64 + .byte 114 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 240 + .byte 63 + .byte 127 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 126 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 125 + .byte 4 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 124 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 123 + .byte 4 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 49 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 122 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 121 + .byte 4 + .byte 0 + .byte 32 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 50 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 120 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 119 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 118 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 13 + .byte 103 + .byte 101 + .byte 116 + .byte 84 + .byte 105 + .byte 109 + .byte 101 + .byte 83 + .byte 116 + .byte 97 + .byte 109 + .byte 112 + .byte 0 + .byte 85 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 145 + .byte 128 + .byte 128 + .byte 16 + .byte 13 + .byte 103 + .byte 101 + .byte 116 + .byte 84 + .byte 105 + .byte 109 + .byte 101 + .byte 83 + .byte 116 + .byte 97 + .byte 109 + .byte 112 + .byte 0 + .byte 15 + .byte 103 + .byte 101 + .byte 116 + .byte 84 + .byte 105 + .byte 109 + .byte 101 + .byte 83 + .byte 116 + .byte 97 + .byte 109 + .byte 112 + .byte 40 + .byte 41 + .byte 0 + .byte 1 + .byte 2 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 1 + .byte 1 + .byte 26 + .byte 3 + .byte 8 + .byte 0 + .byte 145 + .byte 192 + .byte 129 + .byte 16 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 8 + .byte 1 + .byte 51 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 40 + .byte 80 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 65 + .byte 116 + .byte 111 + .byte 109 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 78 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 105 + .byte 110 + .byte 116 + .byte 41 + .byte 0 + .byte 2 + .byte 1 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 2 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 127 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 32 + .byte 126 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 136 + .byte 1 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 125 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 124 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 0 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 123 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 122 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 213 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 121 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 120 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 32 + .byte 119 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 118 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 117 + .byte 11 + .byte 78 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 101 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 116 + .byte 11 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 95 + .byte 86 + .byte 36 + .byte 102 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 115 + .byte 12 + .byte 78 + .byte 103 + .byte 104 + .byte 111 + .byte 115 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 8 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 114 + .byte 10 + .byte 78 + .byte 109 + .byte 97 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 12 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 113 + .byte 7 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 50 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 112 + .byte 7 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 51 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 111 + .byte 7 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 52 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 110 + .byte 8 + .byte 118 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 53 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 40 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 109 + .byte 8 + .byte 118 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 54 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 48 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 236 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 108 + .byte 8 + .byte 118 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 55 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 107 + .byte 8 + .byte 102 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 56 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 106 + .byte 8 + .byte 102 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 57 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 105 + .byte 8 + .byte 102 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 97 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 104 + .byte 13 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 103 + .byte 12 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 230 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 102 + .byte 10 + .byte 116 + .byte 101 + .byte 109 + .byte 112 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 100 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 101 + .byte 9 + .byte 114 + .byte 104 + .byte 111 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 101 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 228 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 100 + .byte 10 + .byte 109 + .byte 97 + .byte 115 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 102 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 99 + .byte 12 + .byte 110 + .byte 116 + .byte 105 + .byte 109 + .byte 101 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 40 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 226 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 98 + .byte 11 + .byte 110 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 49 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 44 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 97 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 50 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 48 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 96 + .byte 8 + .byte 100 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 51 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 95 + .byte 13 + .byte 100 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 52 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 94 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 53 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 93 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 54 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 220 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 92 + .byte 8 + .byte 110 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 55 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 216 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 219 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 91 + .byte 8 + .byte 110 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 56 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 220 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 218 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 90 + .byte 8 + .byte 110 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 57 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 224 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 89 + .byte 13 + .byte 108 + .byte 97 + .byte 116 + .byte 116 + .byte 105 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 232 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 88 + .byte 10 + .byte 120 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 240 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 215 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 87 + .byte 10 + .byte 121 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 248 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 214 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 86 + .byte 10 + .byte 122 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 100 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 128 + .byte 1 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 37 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 85 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 55 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 212 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 84 + .byte 12 + .byte 110 + .byte 99 + .byte 97 + .byte 108 + .byte 108 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 56 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 83 + .byte 15 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 57 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 82 + .byte 15 + .byte 109 + .byte 97 + .byte 120 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 97 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 16 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 81 + .byte 14 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 98 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 1 + .byte 0 + .byte 30 + .byte 8 + .byte 11 + .byte 1 + .byte 0 + .byte 35 + .byte 1 + .byte 40 + .byte 1 + .byte 0 + .byte 36 + .byte 18 + .byte 48 + .byte 1 + .byte 0 + .byte 38 + .byte 27 + .byte 50 + .byte 1 + .byte 0 + .byte 38 + .byte 45 + .byte 56 + .byte 1 + .byte 0 + .byte 39 + .byte 23 + .byte 62 + .byte 1 + .byte 0 + .byte 40 + .byte 24 + .byte 196 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 20 + .byte 202 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 45 + .byte 208 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 70 + .byte 214 + .byte 0 + .byte 1 + .byte 0 + .byte 44 + .byte 9 + .byte 217 + .byte 0 + .byte 1 + .byte 0 + .byte 44 + .byte 5 + .byte 223 + .byte 0 + .byte 1 + .byte 0 + .byte 45 + .byte 15 + .byte 232 + .byte 0 + .byte 1 + .byte 0 + .byte 46 + .byte 17 + .byte 236 + .byte 0 + .byte 1 + .byte 0 + .byte 46 + .byte 9 + .byte 240 + .byte 0 + .byte 1 + .byte 0 + .byte 47 + .byte 17 + .byte 244 + .byte 0 + .byte 1 + .byte 0 + .byte 47 + .byte 9 + .byte 248 + .byte 0 + .byte 1 + .byte 0 + .byte 48 + .byte 17 + .byte 252 + .byte 0 + .byte 1 + .byte 0 + .byte 48 + .byte 9 + .byte 128 + .byte 1 + .byte 1 + .byte 0 + .byte 45 + .byte 32 + .byte 135 + .byte 1 + .byte 1 + .byte 0 + .byte 45 + .byte 24 + .byte 137 + .byte 1 + .byte 1 + .byte 0 + .byte 45 + .byte 5 + .byte 161 + .byte 1 + .byte 1 + .byte 0 + .byte 56 + .byte 15 + .byte 188 + .byte 1 + .byte 1 + .byte 0 + .byte 57 + .byte 43 + .byte 190 + .byte 1 + .byte 1 + .byte 0 + .byte 57 + .byte 19 + .byte 192 + .byte 1 + .byte 1 + .byte 0 + .byte 57 + .byte 9 + .byte 200 + .byte 1 + .byte 1 + .byte 0 + .byte 58 + .byte 25 + .byte 206 + .byte 1 + .byte 1 + .byte 0 + .byte 59 + .byte 25 + .byte 215 + .byte 1 + .byte 1 + .byte 0 + .byte 60 + .byte 25 + .byte 224 + .byte 1 + .byte 1 + .byte 0 + .byte 61 + .byte 25 + .byte 231 + .byte 1 + .byte 1 + .byte 0 + .byte 63 + .byte 22 + .byte 235 + .byte 1 + .byte 1 + .byte 0 + .byte 64 + .byte 22 + .byte 239 + .byte 1 + .byte 1 + .byte 0 + .byte 65 + .byte 22 + .byte 245 + .byte 1 + .byte 1 + .byte 0 + .byte 67 + .byte 19 + .byte 142 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 21 + .byte 150 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 36 + .byte 161 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 36 + .byte 172 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 36 + .byte 183 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 35 + .byte 187 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 49 + .byte 191 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 63 + .byte 210 + .byte 2 + .byte 1 + .byte 0 + .byte 75 + .byte 32 + .byte 212 + .byte 2 + .byte 1 + .byte 0 + .byte 75 + .byte 38 + .byte 220 + .byte 2 + .byte 1 + .byte 0 + .byte 76 + .byte 38 + .byte 222 + .byte 2 + .byte 1 + .byte 0 + .byte 76 + .byte 44 + .byte 224 + .byte 2 + .byte 1 + .byte 0 + .byte 76 + .byte 50 + .byte 230 + .byte 2 + .byte 1 + .byte 0 + .byte 77 + .byte 34 + .byte 232 + .byte 2 + .byte 1 + .byte 0 + .byte 77 + .byte 41 + .byte 236 + .byte 2 + .byte 1 + .byte 0 + .byte 77 + .byte 54 + .byte 238 + .byte 2 + .byte 1 + .byte 0 + .byte 77 + .byte 61 + .byte 240 + .byte 2 + .byte 1 + .byte 0 + .byte 77 + .byte 67 + .byte 246 + .byte 2 + .byte 1 + .byte 0 + .byte 78 + .byte 31 + .byte 248 + .byte 2 + .byte 1 + .byte 0 + .byte 78 + .byte 17 + .byte 254 + .byte 2 + .byte 1 + .byte 0 + .byte 79 + .byte 31 + .byte 128 + .byte 3 + .byte 1 + .byte 0 + .byte 79 + .byte 17 + .byte 134 + .byte 3 + .byte 1 + .byte 0 + .byte 80 + .byte 31 + .byte 136 + .byte 3 + .byte 1 + .byte 0 + .byte 80 + .byte 17 + .byte 144 + .byte 3 + .byte 1 + .byte 0 + .byte 74 + .byte 22 + .byte 146 + .byte 3 + .byte 1 + .byte 0 + .byte 74 + .byte 13 + .byte 151 + .byte 3 + .byte 1 + .byte 0 + .byte 67 + .byte 39 + .byte 158 + .byte 3 + .byte 1 + .byte 0 + .byte 67 + .byte 28 + .byte 160 + .byte 3 + .byte 1 + .byte 0 + .byte 67 + .byte 9 + .byte 169 + .byte 3 + .byte 1 + .byte 0 + .byte 84 + .byte 9 + .byte 177 + .byte 3 + .byte 1 + .byte 0 + .byte 85 + .byte 9 + .byte 185 + .byte 3 + .byte 1 + .byte 0 + .byte 86 + .byte 9 + .byte 189 + .byte 3 + .byte 1 + .byte 0 + .byte 56 + .byte 32 + .byte 196 + .byte 3 + .byte 1 + .byte 0 + .byte 56 + .byte 24 + .byte 198 + .byte 3 + .byte 1 + .byte 0 + .byte 56 + .byte 5 + .byte 219 + .byte 3 + .byte 1 + .byte 0 + .byte 93 + .byte 9 + .byte 222 + .byte 3 + .byte 1 + .byte 0 + .byte 93 + .byte 5 + .byte 228 + .byte 3 + .byte 1 + .byte 0 + .byte 94 + .byte 14 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 99 + .byte 99 + .byte 19 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 99 + .byte 111 + .byte 114 + .byte 101 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 3 + .byte 24 + .byte 193 + .byte 1 + .byte 0 + .byte 1 + .byte 23 + .byte 0 + .byte 115 + .byte 95 + .byte 31 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 108 + .byte 105 + .byte 107 + .byte 119 + .byte 105 + .byte 100 + .byte 45 + .byte 109 + .byte 97 + .byte 114 + .byte 107 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 3 + .byte 1 + .byte 4 + .byte 196 + .byte 1 + .byte 225 + .byte 1 + .byte 0 + .byte 1 + .byte 25 + .byte 0 + .byte 115 + .byte 95 + .byte 24 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 116 + .byte 105 + .byte 109 + .byte 105 + .byte 110 + .byte 103 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 4 + .byte 1 + .byte 7 + .byte 227 + .byte 1 + .byte 238 + .byte 2 + .byte 100 + .byte 1 + .byte 26 + .byte 0 + .byte 115 + .byte 95 + .byte 26 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 5 + .byte 5 + .byte 4 + .byte 0 + .byte 250 + .byte 1 + .byte 221 + .byte 2 + .byte 49 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 6 + .byte 6 + .byte 5 + .byte 0 + .byte 145 + .byte 2 + .byte 193 + .byte 2 + .byte 0 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 27 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 7 + .byte 1 + .byte 0 + .byte 241 + .byte 2 + .byte 163 + .byte 3 + .byte 0 + .byte 1 + .byte 28 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .text +..TXTST0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + +### { + + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %rbp #35.1 + .cfi_def_cfa_offset 16 + movq %rsp, %rbp #35.1 + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-64, %rsp #35.1 + pushq %r12 #35.1 + pushq %r13 #35.1 + pushq %r14 #35.1 + pushq %r15 #35.1 + pushq %rbx #35.1 + subq $152, %rsp #35.1 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22 + movq %rsi, %r12 #35.1 + +### int Nlocal = atom->Nlocal; +### int* neighs; +### MD_FLOAT cutforcesq = param->cutforce * param->cutforce; + + vmovsd 72(%rdi), %xmm16 #38.27 + +### MD_FLOAT sigma6 = param->sigma6; +### MD_FLOAT epsilon = param->epsilon; +### MD_FLOAT* fx = atom->fx; MD_FLOAT* fy = atom->fy; MD_FLOAT* fz = atom->fz; +### MD_FLOAT S, E; +### +### S = getTimeStamp(); + + xorl %eax, %eax #44.9 + vmulsd %xmm16, %xmm16, %xmm0 #38.45 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm2 #40.24 + vmovsd %xmm0, 8(%rsp) #38.45[spill] + vmovsd %xmm1, 32(%rsp) #39.23[spill] + vmovsd %xmm2, 16(%rsp) #40.24[spill] + movq %rdx, 24(%rsp) #35.1[spill] + movl 4(%r12), %r15d #36.18 + movq 64(%r12), %r14 #41.20 + movq 72(%r12), %r13 #41.45 + movq 80(%r12), %rbx #41.70 +..___tag_value_computeForce.11: +# getTimeStamp() + call getTimeStamp #44.9 +..___tag_value_computeForce.12: + # LOE rbx r12 r13 r14 r15d xmm0 +..B1.41: # Preds ..B1.1 + # Execution count [1.00e+00] + vmovsd %xmm0, (%rsp) #44.9[spill] + # LOE rbx r12 r13 r14 r15d +..B1.2: # Preds ..B1.41 + # Execution count [1.00e+00] + +### for(int i = 0; i < Nlocal; i++) { + + testl %r15d, %r15d #45.24 + jle ..B1.34 # Prob 50% #45.24 + # LOE rbx r12 r13 r14 r15d +..B1.3: # Preds ..B1.2 + # Execution count [1.00e+00] + movl %r15d, %eax #45.5 + movl $1, %ecx #45.5 + shrl $31, %eax #45.5 + xorl %edx, %edx #45.5 + addl %r15d, %eax #36.18 + +### fx[i] = 0.0; + + vxorpd %xmm26, %xmm26, %xmm26 #46.17 + sarl $1, %eax #36.18 + testl %eax, %eax #45.5 + jbe ..B1.7 # Prob 9% #45.5 + # LOE rbx r12 r13 r14 eax edx ecx r15d xmm26 +..B1.5: # Preds ..B1.3 ..B1.5 + # Execution count [2.50e+00] + lea (%rdx,%rdx), %ecx #46.9 + incl %edx #45.5 + movslq %ecx, %rcx #46.9 + vmovsd %xmm26, (%r14,%rcx,8) #46.9 + +### fy[i] = 0.0; + + vmovsd %xmm26, (%r13,%rcx,8) #47.9 + +### fz[i] = 0.0; + + vmovsd %xmm26, (%rbx,%rcx,8) #48.9 + vmovsd %xmm26, 8(%r14,%rcx,8) #46.9 + vmovsd %xmm26, 8(%r13,%rcx,8) #47.9 + vmovsd %xmm26, 8(%rbx,%rcx,8) #48.9 + cmpl %eax, %edx #45.5 + jb ..B1.5 # Prob 63% #45.5 + # LOE rbx r12 r13 r14 eax edx r15d xmm26 +..B1.6: # Preds ..B1.5 + # Execution count [9.00e-01] + lea 1(%rdx,%rdx), %ecx #46.9 + # LOE rbx r12 r13 r14 ecx r15d xmm26 +..B1.7: # Preds ..B1.3 ..B1.6 + # Execution count [1.00e+00] + lea -1(%rcx), %eax #45.5 + cmpl %r15d, %eax #45.5 + jae ..B1.9 # Prob 9% #45.5 + # LOE rbx r12 r13 r14 ecx r15d xmm26 +..B1.8: # Preds ..B1.7 + # Execution count [9.00e-01] + movslq %ecx, %rcx #46.9 + vmovsd %xmm26, -8(%r14,%rcx,8) #46.9 + vmovsd %xmm26, -8(%r13,%rcx,8) #47.9 + vmovsd %xmm26, -8(%rbx,%rcx,8) #48.9 + # LOE rbx r12 r13 r14 r15d xmm26 +..B1.9: # Preds ..B1.7 ..B1.8 + # Execution count [9.00e-01] + +### } +### +### if(profile) { +### LIKWID_MARKER_START("force"); +### } +### +### #pragma omp parallel for +### for(int i = 0; i < Nlocal; i++) { +### neighs = &neighbor->neighbors[i * neighbor->maxneighs]; +### int numneighs = neighbor->numneigh[i]; +### MD_FLOAT xtmp = atom_x(i); +### MD_FLOAT ytmp = atom_y(i); +### MD_FLOAT ztmp = atom_z(i); +### +### MD_FLOAT fix = 0; +### MD_FLOAT fiy = 0; +### MD_FLOAT fiz = 0; +### +### for(int k = 0; k < numneighs; k++) { +### int j = neighs[k]; +### MD_FLOAT delx = xtmp - atom_x(j); +### MD_FLOAT dely = ytmp - atom_y(j); +### MD_FLOAT delz = ztmp - atom_z(j); +### MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; +### +### if(rsq < cutforcesq) { +### MD_FLOAT sr2 = 1.0 / rsq; +### MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; +### MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; +# xmm0 <- epsilon + vmovsd 16(%rsp), %xmm0 #77.41[spill] + xorl %edx, %edx #56.15 + vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm12 #77.41 + xorl %eax, %eax #56.5 + vmovups .L_2il0floatpacket.2(%rip), %zmm13 #75.32 + vmovups .L_2il0floatpacket.3(%rip), %zmm10 #77.54 + vmovsd .L_2il0floatpacket.8(%rip), %xmm11 #75.32 + vmovsd .L_2il0floatpacket.1(%rip), %xmm22 #77.54 +# rcx <- neighbor + movq 24(%rsp), %rcx #57.19[spill] + movslq %r15d, %r15 #56.5 +# xmm25 <- sigma6 + vmovsd 32(%rsp), %xmm25 #58.25[spill] +# esi <- neighbor->maxneighs + movl 16(%rcx), %esi #57.43 +# rdi <- neighbor->neighbors + movq 8(%rcx), %rdi #57.19 +# r10 <- neighbor->numneigh + movq 24(%rcx), %r10 #58.25 +# r12 <- atom->x + movq 16(%r12), %r12 #59.25 +# zmm23 <- 48.0 * sr2 + vbroadcastsd %xmm12, %zmm23 #77.41 +# xmm1 <- cutforcesq + vmovsd 8(%rsp), %xmm1 #58.25[spill] +# zmm20 <- cutforcesq + vbroadcastsd 8(%rsp), %zmm20 #38.45[spill] +# zmm14 <- sigma6 + vbroadcastsd 32(%rsp), %zmm14 #39.23[spill] + movq %r15, 48(%rsp) #58.25[spill] + movl %esi, 40(%rsp) #58.25[spill] + vpxorq %zmm21, %zmm21, %zmm21 #63.22 + # LOE rax rbx rdi r10 r12 r13 r14 edx xmm1 xmm11 xmm12 xmm22 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.10: # Preds ..B1.32 ..B1.9 + # Execution count [5.00e+00] +# r11d <- 0 + movl %eax, %r11d #59.25 +# xmm19 <- 0.0 + vmovapd %xmm26, %xmm19 #64.22 +# r9 <- neighbor->num_neigh[i] + movslq (%r10,%rax,4), %r9 #58.25 +# xmm24 <- 0 + vxorpd %xmm24, %xmm24, %xmm24 #63.22 +# xmm18 <- 0.0 + vmovapd %xmm26, %xmm18 #65.22 +# ecx <- ptr r11*3 + lea (%r11,%r11,2), %ecx #59.25 +# rcx <- r11*3 + movslq %ecx, %rcx #59.25 +# xmm15 <- atom->x[i] + vmovsd (%r12,%rcx,8), %xmm15 #59.25 +# xmm16 <- atom->y[i] + vmovsd 8(%r12,%rcx,8), %xmm16 #60.25 +# xmm17 <- atom->z[i] + vmovsd 16(%r12,%rcx,8), %xmm17 #61.25 + testq %r9, %r9 #67.28 + jle ..B1.32 # Prob 50% #67.28 + # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] +# 8 < num_neigh[k] + cmpq $8, %r9 #67.9 + jl ..B1.36 # Prob 10% #67.9 + # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] +# ecx <- neighbor->maxneighs + movl 40(%rsp), %ecx #57.43[spill] +# ecx <- i * neighbor->maxneighs + imull %edx, %ecx #57.43 +# rcx <- signal_extended(ecx) + movslq %ecx, %rcx #57.19 +# rsi <- neighbor->neighbors[i * neighbor->maxneighs] + lea (%rdi,%rcx,4), %rsi #57.9 +# 1200 < num_neigh[k] + cmpq $1200, %r9 #67.9 + jl ..B1.37 # Prob 10% #67.9 + # LOE rax rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.13: # Preds ..B1.12 + # Execution count [4.50e+00] +# rcx <- i * neighbor->maxneighs + movq %rsi, %rcx #67.9 +# rcx <- rcx & 111111b + andq $63, %rcx #67.9 +# 3 == (i * neighbor->maxneighs) & 11111111b + testb $3, %cl #67.9 + je ..B1.15 # Prob 50% #67.9 + # LOE rax rbx rsi rdi r9 r10 r12 r13 r14 edx ecx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.14: # Preds ..B1.13 + # Execution count [2.25e+00] +# ecx <- 0 + xorl %ecx, %ecx #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.15: # Preds ..B1.13 + # Execution count [2.25e+00] +# r8d <- (i * neighbor->maxneighs) & 111111b + movl %ecx, %r8d #67.9 +# r8d <- -((i * neighbor->maxneighs) & 111111b) + negl %r8d #67.9 +# r8d <- -((i * neighbor->maxneighs) & 111111b) + 64 + addl $64, %r8d #67.9 +# r8d <- (-((i * neighbor->maxneighs) & 111111b) + 64) >> 2 + shrl $2, %r8d #67.9 + testl %ecx, %ecx #67.9 + cmovne %r8d, %ecx #67.9 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.16: # Preds ..B1.14 ..B1.15 + # Execution count [4.50e+00] + lea 8(%rcx), %r8d #67.9 +# k < numneighs + cmpq %r8, %r9 #67.9 + jl ..B1.36 # Prob 10% #67.9 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.17: # Preds ..B1.16 + # Execution count [5.00e+00] +# r8d <- numneighs + movl %r9d, %r8d #67.9 +# r15d <- numneighs + movl %r8d, %r15d #67.9 +# r15d <- numneighs - k + subl %ecx, %r15d #67.9 +# r15d <- (numneighs - k) & 111b + andl $7, %r15d #67.9 +# r8d <- numneighs - ((numneighs - k) & 111b) + subl %r15d, %r8d #67.9 +# r15d <- 0 + xorl %r15d, %r15d #67.9 +# 1 < k + cmpl $1, %ecx #67.9 + jb ..B1.23 # Prob 10% #67.9 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.18: # Preds ..B1.17 + # Execution count [4.50e+00] +# 8(rsp) <- atom->fx + movq %r14, 8(%rsp) #[spill] + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.19: # Preds ..B1.18 ..B1.21 + # Execution count [2.50e+01] +# r14d <- neighs[k] + movl (%rsi,%r15,4), %r14d #68.21 +# r14 <- r14 * 3 + lea (%r14,%r14,2), %r14d #69.36 + movslq %r14d, %r14 #69.36 +# xmm9 <- ytmp - atom_y(j) + vsubsd 8(%r12,%r14,8), %xmm16, %xmm9 #70.36 +# xmm8 <- xtmp - atom_x(j) + vsubsd (%r12,%r14,8), %xmm15, %xmm8 #69.36 +# xmm28 <- ztmp - atom_z(j) + vsubsd 16(%r12,%r14,8), %xmm17, %xmm28 #71.36 + vmulsd %xmm9, %xmm9, %xmm0 #72.49 + vfmadd231sd %xmm8, %xmm8, %xmm0 #72.63 + vfmadd231sd %xmm28, %xmm28, %xmm0 #72.63 +# cutforcesq <= rsq + vcomisd %xmm0, %xmm1 #74.22 + jbe ..B1.21 # Prob 50% #74.22 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm0 xmm1 xmm8 xmm9 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 xmm28 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.20: # Preds ..B1.19 + # Execution count [1.25e+01] + vdivsd %xmm0, %xmm11, %xmm3 #75.38 + vmulsd %xmm3, %xmm25, %xmm0 #76.38 + vmulsd %xmm12, %xmm3, %xmm4 #77.54 + vmulsd %xmm3, %xmm0, %xmm2 #76.44 + vmulsd %xmm3, %xmm2, %xmm5 #76.50 + vmulsd %xmm5, %xmm4, %xmm6 #77.61 + vsubsd %xmm22, %xmm5, %xmm7 #77.54 + vmulsd %xmm7, %xmm6, %xmm27 #77.67 + +### fix += delx * force; + + vfmadd231sd %xmm8, %xmm27, %xmm24 #78.17 + +### fiy += dely * force; + + vfmadd231sd %xmm9, %xmm27, %xmm19 #79.17 + +### fiz += delz * force; + + vfmadd231sd %xmm28, %xmm27, %xmm18 #80.17 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.21: # Preds ..B1.20 ..B1.19 + # Execution count [2.50e+01] +# k++ + incq %r15 #67.9 +# k < numneighs + cmpq %rcx, %r15 #67.9 + jb ..B1.19 # Prob 82% #67.9 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.22: # Preds ..B1.21 + # Execution count [4.50e+00] + movq 8(%rsp), %r14 #[spill] + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.23: # Preds ..B1.17 ..B1.22 ..B1.37 + # Execution count [4.50e+00] +# r15d <- 63 + movl $63, %r15d #69.36 +# k2 <- 63 (111111b) + kmovw %r15d, %k2 #69.36 +# r15d < 240 + movl $240, %r15d #69.36 +# k1 <- 240 (11110000b) + kmovw %r15d, %k1 #69.36 + vmovdqu32 .L_2il0floatpacket.4(%rip), %zmm0 #69.36 + vmovdqu32 .L_2il0floatpacket.5(%rip), %zmm5 #69.36 + vmovdqu32 .L_2il0floatpacket.6(%rip), %zmm6 #69.36 +# zmm4 <- atom_x(i) + vbroadcastsd %xmm15, %zmm4 #59.25 +# zmm3 <- atom_y(i) + vbroadcastsd %xmm16, %zmm3 #60.25 +# zmm2 <- atom_z(i) + vbroadcastsd %xmm17, %zmm2 #61.25 +# zmm9 <- 0.0 + vmovaps %zmm21, %zmm9 #63.22 +# zmm8 <- 0.0 + vmovaps %zmm21, %zmm8 #64.22 +# zmm7 <- 0.0 + vmovaps %zmm21, %zmm7 #65.22 + movslq %r8d, %r15 #67.9 +# 16(rsp) <- atom->fx + movq %rbx, 16(%rsp) #67.9[spill] +# 24(rsp) <- atom->fy + movq %r13, 24(%rsp) #67.9[spill] +# 8(rsp) <- atom->fz + movq %r14, 8(%rsp) #67.9[spill] + # LOE rax rcx rsi rdi r9 r10 r12 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 zmm0 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 k1 k2 +..B1.24: # Preds ..B1.24 ..B1.23 + # Execution count [2.50e+01] +# ymm27 <- neighbors[k] + vmovdqu32 (%rsi,%rcx,4), %ymm27 #68.21 +# k++ (+= 8) + addq $8, %rcx #67.9 +# ymm25 <- neighbors[k] * 2 + vpaddd %ymm27, %ymm27, %ymm25 #69.36 +# ymm26 <- neighbors[k] * 3 + vpaddd %ymm25, %ymm27, %ymm26 #69.36 +# 64(rsp) <- neighbors[k] * 3 + vmovdqu32 %ymm26, 64(%rsp) #69.36 +# rbx <- neighbors[0] * 3 + movslq 64(%rsp), %rbx #69.36 +# r13 <- neighbors[1] * 3 + movslq 68(%rsp), %r13 #69.36 +# r14 <- neighbors[2] * 3 + movslq 72(%rsp), %r14 #69.36 +# zmm31 <- atom->x[neighbors[0] * 3] + vmovdqu32 (%r12,%rbx,8), %zmm31{%k2}{z} #69.36 +# zmm29 <- atom->x[neighbors[1] * 3] + vmovdqu32 (%r12,%r13,8), %zmm29{%k2}{z} #69.36 +# zmm27 <- atom->x[neighbors[2] * 3] + vmovdqu32 (%r12,%r14,8), %zmm27{%k2}{z} #69.36 +# rbx <- neighbors[3] * 3 + movslq 76(%rsp), %rbx #69.36 +# r13 <- neighbors[4] * 3 + movslq 80(%rsp), %r13 #69.36 +# r14 <- neighbors[5] * 3 + movslq 84(%rsp), %r14 #69.36 +# zmm28 <- atom->x[neighbors[3] * 3] + vmovdqu32 (%r12,%rbx,8), %zmm28{%k2}{z} #69.36 +# zmm26 <- atom->x[neighbors[5] * 3] + vmovdqu32 (%r12,%r14,8), %zmm26{%k2}{z} #69.36 +# rbx <- neighbors[6] * 3 + movslq 88(%rsp), %rbx #69.36 +# zmm30 <- neigh0|neigh1 + vinserti64x4 $1, %ymm29, %zmm31, %zmm30 #69.36 +# zmm31 <- atom->x[neighbors[4] * 3] + vmovdqu32 (%r12,%r13,8), %zmm31{%k2}{z} #69.36 +# r13 <- neighbors[7] * 3 + movslq 92(%rsp), %r13 #69.36 + vmovaps %zmm5, %zmm29 #69.36 +# zmm25 <- neigh2|neigh3 + vinserti64x4 $1, %ymm28, %zmm27, %zmm25 #69.36 +# zmm27 <- atom->x[neighbors[7] * 3] + vmovdqu32 (%r12,%r13,8), %zmm27{%k2}{z} #69.36 + vmovaps %zmm0, %zmm28 #69.36 +# zmm28 <- neigh0|neigh1|neigh2|neigh3 + vpermi2q %zmm25, %zmm30, %zmm28 #69.36 +# zmm25 <- neigh2|neigh3|neigh0|neigh1 + vpermt2q %zmm25, %zmm6, %zmm30 #69.36 +# zmm25 <- atom->x[neighbors[6] * 3] + vmovdqu32 (%r12,%rbx,8), %zmm25{%k2}{z} #69.36 +# zmm31 <- neigh4|neigh5 + vinserti64x4 $1, %ymm26, %zmm31, %zmm31 #69.36 +# zmm25 <- neigh6|neigh7 + vinserti64x4 $1, %ymm27, %zmm25, %zmm25 #69.36 + vpermi2q %zmm25, %zmm31, %zmm29 #69.36 + vpermt2q %zmm25, %zmm6, %zmm31 #69.36 + vpblendmq %zmm31, %zmm30, %zmm30{%k1} #69.36 + vpblendmq %zmm29, %zmm28, %zmm31{%k1} #69.36 + valignd $8, %zmm28, %zmm29, %zmm29 #69.36 + vsubpd %zmm30, %zmm2, %zmm30 #71.36 + vsubpd %zmm31, %zmm4, %zmm28 #69.36 + vsubpd %zmm29, %zmm3, %zmm27 #70.36 + vmulpd %zmm27, %zmm27, %zmm25 #72.49 + vfmadd231pd %zmm28, %zmm28, %zmm25 #72.49 + vfmadd231pd %zmm30, %zmm30, %zmm25 #72.63 + vdivpd %zmm25, %zmm13, %zmm26 #75.38 + vcmppd $1, %zmm20, %zmm25, %k3 #74.22 + vmulpd %zmm26, %zmm14, %zmm25 #76.38 + vmulpd %zmm23, %zmm26, %zmm31 #77.54 + vmulpd %zmm25, %zmm26, %zmm29 #76.44 + vmulpd %zmm29, %zmm26, %zmm29 #76.50 + vmulpd %zmm26, %zmm26, %zmm26 #77.54 + vmulpd %zmm29, %zmm31, %zmm31 #77.61 + vfmsub213pd %zmm10, %zmm26, %zmm25 #77.54 + vmulpd %zmm25, %zmm31, %zmm25 #77.67 + vfmadd231pd %zmm28, %zmm25, %zmm9{%k3} #78.17 + vfmadd231pd %zmm27, %zmm25, %zmm8{%k3} #79.17 + vfmadd231pd %zmm30, %zmm25, %zmm7{%k3} #80.17 + cmpq %r15, %rcx #67.9 + jb ..B1.24 # Prob 82% #67.9 + # LOE rax rcx rsi rdi r9 r10 r12 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 zmm0 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 k1 k2 +..B1.25: # Preds ..B1.24 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.7(%rip), %zmm0 #63.22 + vmovsd 32(%rsp), %xmm25 #[spill] + vxorpd %xmm26, %xmm26, %xmm26 # + vpermd %zmm9, %zmm0, %zmm2 #63.22 + vpermd %zmm8, %zmm0, %zmm27 #64.22 + vpermd %zmm7, %zmm0, %zmm0 #65.22 + vaddpd %zmm9, %zmm2, %zmm3 #63.22 + vaddpd %zmm8, %zmm27, %zmm8 #64.22 + vaddpd %zmm7, %zmm0, %zmm7 #65.22 + vpermpd $78, %zmm3, %zmm4 #63.22 + vpermpd $78, %zmm8, %zmm28 #64.22 + vpermpd $78, %zmm7, %zmm0 #65.22 + vaddpd %zmm4, %zmm3, %zmm5 #63.22 + vaddpd %zmm28, %zmm8, %zmm29 #64.22 + vaddpd %zmm0, %zmm7, %zmm2 #65.22 + vpermpd $177, %zmm5, %zmm6 #63.22 + vpermpd $177, %zmm29, %zmm30 #64.22 + vpermpd $177, %zmm2, %zmm3 #65.22 + vaddpd %zmm6, %zmm5, %zmm9 #63.22 + vaddpd %zmm30, %zmm29, %zmm31 #64.22 + vaddpd %zmm3, %zmm2, %zmm4 #65.22 + movq 16(%rsp), %rbx #[spill] + movq 24(%rsp), %r13 #[spill] + movq 8(%rsp), %r14 #[spill] + vaddsd %xmm24, %xmm9, %xmm24 #63.22 + vaddsd %xmm19, %xmm31, %xmm19 #64.22 + vaddsd %xmm18, %xmm4, %xmm18 #65.22 + # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.26: # Preds ..B1.25 ..B1.36 + # Execution count [5.00e+00] + xorl %ecx, %ecx #67.9 + lea 1(%r8), %esi #67.9 + movslq %esi, %rsi #67.9 + cmpq %r9, %rsi #67.9 + ja ..B1.32 # Prob 10% #67.9 + # LOE rax rcx rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.27: # Preds ..B1.26 + # Execution count [4.50e+00] + imull 40(%rsp), %edx #57.43[spill] + movslq %r8d, %r8 #67.9 + movslq %edx, %rdx #57.19 + subq %r8, %r9 #67.9 + addq %r8, %rdx #68.21 + lea (%rdi,%rdx,4), %rdx #68.21 + # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.28: # Preds ..B1.30 ..B1.27 + # Execution count [2.50e+01] + movl (%rdx,%rcx,4), %esi #68.21 + lea (%rsi,%rsi,2), %r8d #69.36 + movslq %r8d, %r8 #69.36 + vsubsd 8(%r12,%r8,8), %xmm16, %xmm9 #70.36 + vsubsd (%r12,%r8,8), %xmm15, %xmm8 #69.36 + vsubsd 16(%r12,%r8,8), %xmm17, %xmm28 #71.36 + vmulsd %xmm9, %xmm9, %xmm0 #72.49 + vfmadd231sd %xmm8, %xmm8, %xmm0 #72.63 + vfmadd231sd %xmm28, %xmm28, %xmm0 #72.63 + vcomisd %xmm0, %xmm1 #74.22 + jbe ..B1.30 # Prob 50% #74.22 + # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm0 xmm1 xmm8 xmm9 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 xmm28 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.29: # Preds ..B1.28 + # Execution count [1.25e+01] + vdivsd %xmm0, %xmm11, %xmm3 #75.38 + vmulsd %xmm3, %xmm25, %xmm0 #76.38 + vmulsd %xmm12, %xmm3, %xmm4 #77.54 + vmulsd %xmm3, %xmm0, %xmm2 #76.44 + vmulsd %xmm3, %xmm2, %xmm5 #76.50 + vmulsd %xmm5, %xmm4, %xmm6 #77.61 + vsubsd %xmm22, %xmm5, %xmm7 #77.54 + vmulsd %xmm7, %xmm6, %xmm27 #77.67 + vfmadd231sd %xmm8, %xmm27, %xmm24 #78.17 + vfmadd231sd %xmm9, %xmm27, %xmm19 #79.17 + vfmadd231sd %xmm28, %xmm27, %xmm18 #80.17 + # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.30: # Preds ..B1.29 ..B1.28 + # Execution count [2.50e+01] + incq %rcx #67.9 + cmpq %r9, %rcx #67.9 + jb ..B1.28 # Prob 82% #67.9 + # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.32: # Preds ..B1.30 ..B1.26 ..B1.10 + # Execution count [5.00e+00] + +### } +### } +### +### fx[i] += fix; + + vaddsd (%r14,%rax,8), %xmm24, %xmm0 #84.9 + vmovsd %xmm0, (%r14,%rax,8) #84.9 + lea 1(%r11), %edx #56.32 + +### fy[i] += fiy; + + vaddsd (%r13,%rax,8), %xmm19, %xmm2 #85.9 + vmovsd %xmm2, (%r13,%rax,8) #85.9 + +### fz[i] += fiz; + + vaddsd (%rbx,%rax,8), %xmm18, %xmm3 #86.9 + vmovsd %xmm3, (%rbx,%rax,8) #86.9 + incq %rax #56.5 + cmpq 48(%rsp), %rax #56.5[spill] + jb ..B1.10 # Prob 82% #56.5 + # LOE rax rbx rdi r10 r12 r13 r14 edx xmm1 xmm11 xmm12 xmm22 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.34: # Preds ..B1.32 ..B1.2 + # Execution count [1.00e+00] + +### } +### +### if(profile) { +### LIKWID_MARKER_STOP("force"); +### } +### +### E = getTimeStamp(); + + xorl %eax, %eax #93.9 + vzeroupper #93.9 +..___tag_value_computeForce.13: +# getTimeStamp() + call getTimeStamp #93.9 +..___tag_value_computeForce.14: + # LOE xmm0 +..B1.35: # Preds ..B1.34 + # Execution count [1.00e+00] + +### return E-S; + + vsubsd (%rsp), %xmm0, %xmm0 #94.14[spill] + addq $152, %rsp #94.14 + .cfi_restore 3 + popq %rbx #94.14 + .cfi_restore 15 + popq %r15 #94.14 + .cfi_restore 14 + popq %r14 #94.14 + .cfi_restore 13 + popq %r13 #94.14 + .cfi_restore 12 + popq %r12 #94.14 + movq %rbp, %rsp #94.14 + popq %rbp #94.14 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret #94.14 + .cfi_def_cfa 6, 16 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xff, 0xff, 0xff, 0x22 + .cfi_offset 6, -16 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22 + # LOE +..B1.36: # Preds ..B1.11 ..B1.16 + # Execution count [4.50e-01]: Infreq + xorl %r8d, %r8d #67.9 + jmp ..B1.26 # Prob 100% #67.9 + # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 +..B1.37: # Preds ..B1.12 + # Execution count [4.50e-01]: Infreq + movl %r9d, %r8d #67.9 + xorl %ecx, %ecx #67.9 + andl $-8, %r8d #67.9 + jmp ..B1.23 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.3: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.5: + .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 64 +.L_2il0floatpacket.7: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.7,@object + .size .L_2il0floatpacket.7,64 + .align 8 +.L_2il0floatpacket.0: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,8 + .align 8 +.L_2il0floatpacket.1: + .long 0x00000000,0x3fe00000 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,8 + .align 8 +.L_2il0floatpacket.8: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.8,@object + .size .L_2il0floatpacket.8,8 + .data + .section .note.GNU-stack, "" +// -- Begin DWARF2 SEGMENT .eh_frame + .section .eh_frame,"a",@progbits +.eh_frame_seg: + .align 8 +# End From 5131b7bcaa2243a9752765023be340374417a16a Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Fri, 16 Apr 2021 16:31:27 +0200 Subject: [PATCH 03/32] Add comments for second kernel variant on Intel AOS assembly Signed-off-by: Rafael Ravedutti --- asm/force_aos_intel.s | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/asm/force_aos_intel.s b/asm/force_aos_intel.s index 0ea5009..4f1ef76 100644 --- a/asm/force_aos_intel.s +++ b/asm/force_aos_intel.s @@ -573,33 +573,58 @@ computeForce: # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 ..B1.29: # Preds ..B1.26 # Execution count [1.25e+01] +# k1 <- [true for all elements] vpcmpeqb k1, xmm0, xmm0 #69.36 +# k2 <- [true for all elements] vpcmpeqb k2, xmm0, xmm0 #69.36 +# k3 <- [true for all elements] vpcmpeqb k3, xmm0, xmm0 #69.36 +# zmm4 <- 0.0 vpxord zmm4, zmm4, zmm4 #69.36 +# zmm17 <- 0.0 vpxord zmm17, zmm17, zmm17 #69.36 +# zmm18 <- 0.0 vpxord zmm18, zmm18, zmm18 #69.36 +# zmm4 <- atom->x[j * 3 + 2] vgatherdpd zmm4{k1}, QWORD PTR [16+rdi+ymm3*8] #69.36 +# zmm17 <- atom->x[j * 3 + 1] vgatherdpd zmm17{k2}, QWORD PTR [8+rdi+ymm3*8] #69.36 +# zmm18 <- atom->x[j * 3] vgatherdpd zmm18{k3}, QWORD PTR [rdi+ymm3*8] #69.36 # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 ..B1.30: # Preds ..B1.29 # Execution count [2.50e+01] +# k++ add r12d, 8 #67.9 +# k++ add rbx, 8 #67.9 +# zmm26 <- atom->x[i * 3 + 2] - atom->x[j * 3 + 2] vsubpd zmm26, zmm0, zmm4 #71.36 +# zmm24 <- atom->x[i * 3 + 1] - atom->x[j * 3 + 1] vsubpd zmm24, zmm1, zmm17 #70.36 +# zmm23 <- atom->x[i * 3] - atom->x[j * 3] vsubpd zmm23, zmm2, zmm18 #69.36 +# zmm3 <- dely * dely vmulpd zmm3, zmm24, zmm24 #72.49 +# zmm3 <- delx * delx + dely * dely vfmadd231pd zmm3, zmm23, zmm23 #72.49 +# zmm3 <- rsq (delz * delz + delx * delx + dely * dely) vfmadd231pd zmm3, zmm26, zmm26 #72.63 +# zmm22 <- sr2 (1.0 / rsq -- compute reciprocal) vrcp14pd zmm22, zmm3 #75.38 +# k2 <- [rsq < cutforcesq] vcmppd k2, zmm3, zmm14, 1 #74.22 +# k0 <- [true when +0, Neg. 0, +inf, -inf] vfpclasspd k0, zmm22, 30 #75.38 +# zmm3 <- [-(rsq * sr2) + 1.0] -- check if 1.0 / rsq is valid! -- call it error? vfnmadd213pd zmm3, zmm22, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 +# k1 <- [false when +0, Neg. 0, +inf, -inf] knotw k1, k0 #75.38 +# zmm4 <- [(-rsq * sr2 + 1.0) * (-rsq * sr2 + 1.0)] -- errorsq vmulpd zmm4, zmm3, zmm3 #75.38 +# zmm22 <- [sr2 * error + sr2] vfmadd213pd zmm22{k1}, zmm3, zmm22 #75.38 +# zmm22 <- [(sr2 * error + sr2) * errorsq + (sr2 * error + sr2)] vfmadd213pd zmm22{k1}, zmm4, zmm22 #75.38 vmulpd zmm17, zmm22, zmm13 #76.38 vmulpd zmm19, zmm22, zmm10 #77.54 @@ -611,6 +636,7 @@ computeForce: vfmadd231pd zmm9{k2}, zmm25, zmm23 #78.17 vfmadd231pd zmm8{k2}, zmm25, zmm24 #79.17 vfmadd231pd zmm11{k2}, zmm25, zmm26 #80.17 +# k < numneighs cmp r12d, r14d #67.9 jb ..B1.26 # Prob 82% #67.9 # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 From d3121ee08f693029e48453f4fb6491afabf812d0 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 21 Apr 2021 11:28:02 +0200 Subject: [PATCH 04/32] Adjust computeForce parameters for stub Signed-off-by: Rafael Ravedutti --- src/force.c | 3 +-- src/main-stub.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/force.c b/src/force.c index c7c6121..380a31b 100644 --- a/src/force.c +++ b/src/force.c @@ -31,8 +31,7 @@ double computeForce( Parameter *param, Atom *atom, Neighbor *neighbor, - int profile, - int ntimes) + int profile) { int Nlocal = atom->Nlocal; int* neighs; diff --git a/src/main-stub.c b/src/main-stub.c index a92a8f4..47e4382 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -16,7 +16,7 @@ #define LATTICE_DISTANCE 10.0 #define NEIGH_DISTANCE 1.0 -extern double computeForce( Parameter*, Atom*, Neighbor*, int, int); +extern double computeForce( Parameter*, Atom*, Neighbor*, int); void init(Parameter *param) { param->epsilon = 1.0; From 3c7dbc833a5517ada2481cd5141fb1e67eac15d6 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 21 Apr 2021 13:01:06 +0200 Subject: [PATCH 05/32] Allow any values for atoms_per_unit_cell Signed-off-by: Rafael Ravedutti --- src/main-stub.c | 67 +++++++++++++++++++++++-------------------------- src/main.c | 6 ++--- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/src/main-stub.c b/src/main-stub.c index 47e4382..a71d90e 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -56,6 +56,7 @@ int main(int argc, const char *argv[]) { Atom *atom = (Atom *)(&atom_data); Neighbor neighbor; Parameter param; + int atoms_per_unit_cell = 8; LIKWID_MARKER_INIT; LIKWID_MARKER_REGISTER("force"); @@ -84,12 +85,18 @@ int main(int argc, const char *argv[]) { param.nz = atoi(argv[++i]); continue; } + if((strcmp(argv[i], "-na") == 0)) + { + atoms_per_unit_cell = atoi(argv[++i]); + continue; + } if((strcmp(argv[i], "-h") == 0) || (strcmp(argv[i], "--help") == 0)) { printf("MD Bench: A minimalistic re-implementation of miniMD\n"); printf(HLINE); printf("-n / --nsteps : set number of timesteps for simulation\n"); printf("-nx/-ny/-nz : set linear dimension of systembox in x/y/z direction\n"); + printf("-na : set number of atoms per unit cell\n"); printf(HLINE); exit(EXIT_SUCCESS); } @@ -103,11 +110,14 @@ int main(int argc, const char *argv[]) { initAtom(atom); DEBUG("Creating atoms...\n"); - const int atoms_per_unit_cell = 8; - for(int i = 0; i < param.nx; ++i) { for(int j = 0; j < param.ny; ++j) { for(int k = 0; k < param.nz; ++k) { + int added_atoms = 0; + int fac_x = 1; + int fac_y = 1; + int fac_z = 1; + int fmod = 0; MD_FLOAT base_x = i * LATTICE_DISTANCE; MD_FLOAT base_y = j * LATTICE_DISTANCE; MD_FLOAT base_z = k * LATTICE_DISTANCE; @@ -119,40 +129,25 @@ int main(int argc, const char *argv[]) { growAtom(atom); } - if(atoms_per_unit_cell == 4) { - ADD_ATOM(0.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(1.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 1.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 0.0, 1.0, vx, vy, vz); - } else if(atoms_per_unit_cell == 8) { - ADD_ATOM(0.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(1.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 1.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 0.0, 1.0, vx, vy, vz); - ADD_ATOM(1.0, 1.0, 0.0, vx, vy, vz); - ADD_ATOM(1.0, 0.0, 1.0, vx, vy, vz); - ADD_ATOM(0.0, 1.0, 1.0, vx, vy, vz); - ADD_ATOM(1.0, 1.0, 1.0, vx, vy, vz); - } else if(atoms_per_unit_cell == 16) { - ADD_ATOM(0.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(1.0, 0.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 1.0, 0.0, vx, vy, vz); - ADD_ATOM(0.0, 0.0, 1.0, vx, vy, vz); - ADD_ATOM(1.0, 1.0, 0.0, vx, vy, vz); - ADD_ATOM(1.0, 0.0, 1.0, vx, vy, vz); - ADD_ATOM(0.0, 1.0, 1.0, vx, vy, vz); - ADD_ATOM(1.0, 1.0, 1.0, vx, vy, vz); - ADD_ATOM(0.5, 0.5, 0.5, vx, vy, vz); - ADD_ATOM(1.5, 0.5, 0.5, vx, vy, vz); - ADD_ATOM(0.5, 1.5, 0.5, vx, vy, vz); - ADD_ATOM(0.5, 0.5, 1.5, vx, vy, vz); - ADD_ATOM(1.5, 1.5, 0.5, vx, vy, vz); - ADD_ATOM(1.5, 0.5, 1.5, vx, vy, vz); - ADD_ATOM(0.5, 1.5, 1.5, vx, vy, vz); - ADD_ATOM(1.5, 1.5, 1.5, vx, vy, vz); - } else { - printf("Invalid number of atoms per unit cell, must be: 4, 8 or 16\n"); - return EXIT_FAILURE; + while(fac_x * fac_y * fac_z < atoms_per_unit_cell) { + if(fmod == 0) { fac_x *= 2; } + if(fmod == 1) { fac_y *= 2; } + if(fmod == 2) { fac_z *= 2; } + fmod = (fmod + 1) % 3; + } + + MD_FLOAT offset_x = (fac_x > 0) ? 1.0 / (fac_x - 1) : 0.0; + MD_FLOAT offset_y = (fac_y > 0) ? 1.0 / (fac_y - 1) : 0.0; + MD_FLOAT offset_z = (fac_z > 0) ? 1.0 / (fac_z - 1) : 0.0; + for(int ii = 0; ii < fac_x; ++ii) { + for(int jj = 0; jj < fac_y; ++jj) { + for(int kk = 0; kk < fac_z; ++kk) { + if(added_atoms < atoms_per_unit_cell) { + ADD_ATOM(ii * offset_x, jj * offset_y, kk * offset_z, vx, vy, vz); + added_atoms++; + } + } + } } } } diff --git a/src/main.c b/src/main.c index 2b431ae..564708e 100644 --- a/src/main.c +++ b/src/main.c @@ -47,7 +47,7 @@ typedef enum { NUMTIMER } timertype; -extern double computeForce( Parameter*, Atom*, Neighbor*, int, int); +extern double computeForce( Parameter*, Atom*, Neighbor*, int); void init(Parameter *param) { @@ -205,7 +205,7 @@ int main (int argc, char** argv) setup(¶m, &atom, &neighbor); computeThermo(0, ¶m, &atom); - computeForce(¶m, &atom, &neighbor, 1, 1); + computeForce(¶m, &atom, &neighbor, 1); timer[FORCE] = 0.0; timer[NEIGH] = 0.0; @@ -221,7 +221,7 @@ int main (int argc, char** argv) timer[NEIGH] += reneighbour(¶m, &atom, &neighbor); } - timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1, 1); + timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1); finalIntegrate(¶m, &atom); if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) { From fd108d97d8880bc0a30a0152e994a0edc24d25ce Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 22 Apr 2021 00:07:42 +0200 Subject: [PATCH 06/32] Fix problem when atoms_per_unit_cell is less or equal than 4 Signed-off-by: Rafael Ravedutti --- src/main-stub.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main-stub.c b/src/main-stub.c index a71d90e..f9836b7 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -136,9 +136,9 @@ int main(int argc, const char *argv[]) { fmod = (fmod + 1) % 3; } - MD_FLOAT offset_x = (fac_x > 0) ? 1.0 / (fac_x - 1) : 0.0; - MD_FLOAT offset_y = (fac_y > 0) ? 1.0 / (fac_y - 1) : 0.0; - MD_FLOAT offset_z = (fac_z > 0) ? 1.0 / (fac_z - 1) : 0.0; + MD_FLOAT offset_x = (fac_x > 1) ? 1.0 / (fac_x - 1) : (int)fac_x; + MD_FLOAT offset_y = (fac_y > 1) ? 1.0 / (fac_y - 1) : (int)fac_y; + MD_FLOAT offset_z = (fac_z > 1) ? 1.0 / (fac_z - 1) : (int)fac_z; for(int ii = 0; ii < fac_x; ++ii) { for(int jj = 0; jj < fac_y; ++jj) { for(int kk = 0; kk < fac_z; ++kk) { From 4c53519c7360612239efcc30d95cee9971317a05 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 22 Apr 2021 01:22:18 +0200 Subject: [PATCH 07/32] Add output as CSV Signed-off-by: Rafael Ravedutti --- src/main-stub.c | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main-stub.c b/src/main-stub.c index f9836b7..332bc7a 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -57,6 +57,7 @@ int main(int argc, const char *argv[]) { Neighbor neighbor; Parameter param; int atoms_per_unit_cell = 8; + int csv = 0; LIKWID_MARKER_INIT; LIKWID_MARKER_REGISTER("force"); @@ -90,6 +91,11 @@ int main(int argc, const char *argv[]) { atoms_per_unit_cell = atoi(argv[++i]); continue; } + if((strcmp(argv[i], "-csv") == 0)) + { + csv = 1; + continue; + } if((strcmp(argv[i], "-h") == 0) || (strcmp(argv[i], "--help") == 0)) { printf("MD Bench: A minimalistic re-implementation of miniMD\n"); @@ -153,17 +159,19 @@ int main(int argc, const char *argv[]) { } } - const double estim_volume = (double) - (atom->Nlocal * 6 * sizeof(MD_FLOAT) + - atom->Nlocal * (atoms_per_unit_cell - 1 + 2) * sizeof(int)) / 1000.0; - printf("System size (unit cells): %dx%dx%d\n", param.nx, param.ny, param.nz); - printf("Atoms per unit cell: %d\n", atoms_per_unit_cell); - printf("Total number of atoms: %d\n", atom->Nlocal); - printf("Estimated total data volume (kB): %.4f\n", estim_volume ); - printf("Estimated atom data volume (kB): %.4f\n", - (double)(atom->Nlocal * 3 * sizeof(MD_FLOAT) / 1000.0)); - printf("Estimated neighborlist data volume (kB): %.4f\n", - (double)(atom->Nlocal * (atoms_per_unit_cell - 1 + 2) * sizeof(int)) / 1000.0); + const double estim_atom_volume = (double)(atom->Nlocal * 3 * sizeof(MD_FLOAT)); + const double estim_neighbors_volume = (double)(atom->Nlocal * (atoms_per_unit_cell - 1 + 2) * sizeof(int)); + const double estim_volume = (double)(atom->Nlocal * 6 * sizeof(MD_FLOAT) + estim_neighbors_volume); + + if(!csv) { + printf("Number of timesteps: %d\n", param.ntimes); + printf("System size (unit cells): %dx%dx%d\n", param.nx, param.ny, param.nz); + printf("Atoms per unit cell: %d\n", atoms_per_unit_cell); + printf("Total number of atoms: %d\n", atom->Nlocal); + printf("Estimated total data volume (kB): %.4f\n", estim_volume / 1000.0); + printf("Estimated atom data volume (kB): %.4f\n", estim_atom_volume / 1000.0); + printf("Estimated neighborlist data volume (kB): %.4f\n", estim_neighbors_volume / 1000.0); + } DEBUG("Initializing neighbor lists...\n"); initNeighbor(&neighbor, ¶m); @@ -183,9 +191,17 @@ int main(int argc, const char *argv[]) { LIKWID_MARKER_STOP("force"); E = getTimeStamp(); double T_accum = E-S; + const double atoms_updates_per_sec = atom->Nlocal * param.ntimes / T_accum; + + if(!csv) { + printf("Total time: %.4f, Mega atom updates/s: %.4f\n", T_accum, atoms_updates_per_sec / 1.E6); + } else { + printf("steps,unit cells,atoms/unit cell,total atoms,total vol.(kB),atoms vol.(kB),neigh vol.(kB),time(s),atom upds/s(M)\n"); + printf("%d,%dx%dx%d,%d,%d,%.4f,%.4f,%.4f,%.4f,%.4f\n", + param.ntimes, param.nx, param.ny, param.nz, atoms_per_unit_cell, atom->Nlocal, + estim_volume / 1.E3, estim_atom_volume / 1.E3, estim_neighbors_volume / 1.E3, T_accum, atoms_updates_per_sec / 1.E6); + } - printf("Total time: %.4f, Mega atom updates/s: %.4f\n", - T_accum, atom->Nlocal * param.ntimes/T_accum/1.E6); LIKWID_MARKER_CLOSE; return EXIT_SUCCESS; } From c356336dbd3ab1d75a75556817306ddc24633883 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 22 Apr 2021 16:50:22 +0200 Subject: [PATCH 08/32] Show cycles per atom and neighbor Signed-off-by: Rafael Ravedutti --- src/main-stub.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main-stub.c b/src/main-stub.c index 332bc7a..0f7aa71 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -58,6 +58,7 @@ int main(int argc, const char *argv[]) { Parameter param; int atoms_per_unit_cell = 8; int csv = 0; + double freq = 0.0; LIKWID_MARKER_INIT; LIKWID_MARKER_REGISTER("force"); @@ -91,6 +92,11 @@ int main(int argc, const char *argv[]) { atoms_per_unit_cell = atoi(argv[++i]); continue; } + if((strcmp(argv[i], "-f") == 0)) + { + freq = atof(argv[++i]) * 1.E9; + continue; + } if((strcmp(argv[i], "-csv") == 0)) { csv = 1; @@ -103,6 +109,8 @@ int main(int argc, const char *argv[]) { printf("-n / --nsteps : set number of timesteps for simulation\n"); printf("-nx/-ny/-nz : set linear dimension of systembox in x/y/z direction\n"); printf("-na : set number of atoms per unit cell\n"); + printf("-f : set CPU frequency (GHz) and display average cycles per atom and neighbors\n"); + printf("-csv: set output as CSV style\n"); printf(HLINE); exit(EXIT_SUCCESS); } @@ -192,14 +200,29 @@ int main(int argc, const char *argv[]) { E = getTimeStamp(); double T_accum = E-S; const double atoms_updates_per_sec = atom->Nlocal * param.ntimes / T_accum; + const double cycles_per_atom = T_accum * freq / (atom->Nlocal * param.ntimes); + const double cycles_per_neigh = T_accum * freq / (atom->Nlocal * (atoms_per_unit_cell - 1) * param.ntimes); if(!csv) { printf("Total time: %.4f, Mega atom updates/s: %.4f\n", T_accum, atoms_updates_per_sec / 1.E6); + if(freq > 0.0) { + printf("Cycles per atom: %.4f, Cycles per neighbor: %.4f\n", cycles_per_atom, cycles_per_neigh); + } } else { - printf("steps,unit cells,atoms/unit cell,total atoms,total vol.(kB),atoms vol.(kB),neigh vol.(kB),time(s),atom upds/s(M)\n"); - printf("%d,%dx%dx%d,%d,%d,%.4f,%.4f,%.4f,%.4f,%.4f\n", + printf("steps,unit cells,atoms/unit cell,total atoms,total vol.(kB),atoms vol.(kB),neigh vol.(kB),time(s),atom upds/s(M)"); + if(freq > 0.0) { + printf(",cy/atom,cy/neigh"); + } + printf("\n"); + + printf("%d,%dx%dx%d,%d,%d,%.4f,%.4f,%.4f,%.4f,%.4f", param.ntimes, param.nx, param.ny, param.nz, atoms_per_unit_cell, atom->Nlocal, estim_volume / 1.E3, estim_atom_volume / 1.E3, estim_neighbors_volume / 1.E3, T_accum, atoms_updates_per_sec / 1.E6); + + if(freq > 0.0) { + printf(",%.4f,%.4f", cycles_per_atom, cycles_per_neigh); + } + printf("\n"); } LIKWID_MARKER_CLOSE; From 1a195a30e2a9fdb12ee4a6261493d8ae4bf65b5c Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 22 Apr 2021 20:24:50 +0200 Subject: [PATCH 09/32] Add script to get stub results for several configurations Signed-off-by: Rafael Ravedutti --- scripts/run_stub.sh | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 scripts/run_stub.sh diff --git a/scripts/run_stub.sh b/scripts/run_stub.sh new file mode 100644 index 0000000..ff1a6b9 --- /dev/null +++ b/scripts/run_stub.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +while getopts "a:f:n:r:x:y:z:" flag; do + case "${flag}" in + a) atoms_per_unit_cell=${OPTARG};; + f) frequency=${OPTARG};; + n) timesteps=${OPTARG};; + o) output_file=${OPTARG};; + r) nruns=${OPTARG};; + x) nx=${OPTARG};; + y) ny=${OPTARG};; + z) nz=${OPTARG};; + esac +done + +EXEC="../MDBench-ICC-stub" +ATOMS_PER_UNIT_CELL="${atoms_per_unit_cell:-8}" +FREQUENCY="${frequency:-0.0}" +TIMESTEPS="${timesteps:-200}" +OUTPUT_FILE="${output_file:-run_results.txt}" +NRUNS="${nruns:-3}" +NX="${nx:-4}" +NY="${ny:-4}" +NZ="${nz:-2}" + +for timesteps in ${TIMESTEPS}; do + for atoms_per_unit_cell in ${ATOMS_PER_UNIT_CELL}; do + for nx in ${NX}; do + for ny in ${NY}; do + for nz in ${NZ}; do + best_perf= + best_output= + for nruns in ${NRUNS}; do + output=$( + ./${EXEC} -f ${FREQUENCY} -n ${timesteps} -na ${atoms_per_unit_cell} -nx ${nx} -ny ${ny} -nz ${nz} -csv | + grep -v steps + ) + perf=$(echo $output | cut -d',' -f8) + if [ -z "$best_perf" ]; then + best_perf="$perf" + best_output="$output" + elif (( $(echo "$perf < $best_perf" | bc -l) )); then + best_perf="$perf" + best_output="$output" + fi + done + + echo "${best_output}" | tee -a "${OUTPUT_FILE}" + done + done + done + done +done From d0d2bf8a0c7dae4a64771d1ad9609e4442acb831 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Tue, 27 Apr 2021 00:36:34 +0200 Subject: [PATCH 10/32] Add OSACA output for SOA Signed-off-by: Rafael Ravedutti --- arch_analysis/osaca_output_force_soa.txt | 112 +++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 arch_analysis/osaca_output_force_soa.txt diff --git a/arch_analysis/osaca_output_force_soa.txt b/arch_analysis/osaca_output_force_soa.txt new file mode 100644 index 0000000..a30919e --- /dev/null +++ b/arch_analysis/osaca_output_force_soa.txt @@ -0,0 +1,112 @@ +iwia021h@testfront1:~/MD-Bench/ICC$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force.s +Architecture: CSX +Timestamp: 2021-04-26 22:33:06 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 261 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 + 262 | | | | | | | | || | | # Execution count [4.50e+00] + 263 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | movq %r8, %r13 #56.43 + 264 | | 1.00 | | | | | | || 3.0 | 3.0 | imulq %rcx, %r13 #56.43 + 265 | | | | | | 1.00 | | || | | vbroadcastsd %xmm6, %zmm2 #58.23 + 266 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm1 #59.23 + 267 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm0 #60.23 + 268 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r12d, %rbx #67.9 + 269 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | addq %r10, %r13 #37.5 + 270 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rax, -64(%rsp) #37.5[spill] + 271 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r8, -56(%rsp) #37.5[spill] + 272 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r10, -48(%rsp) #37.5[spill] + 273 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rsi, -40(%rsp) #37.5[spill] + 274 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rcx, -32(%rsp) #37.5[spill] + 275 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r9, -80(%rsp) #37.5[spill] + 276 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rdx, -72(%rsp) #37.5[spill] + 277 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 278 | | | | | | | | || | | ..B1.26: # Preds ..B1.30 ..B1.25 + 279 | | | | | | | | || | | # Execution count [2.50e+01] + 280 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%r13,%rbx,4), %ymm3 #68.21 + 281 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm3, %ymm3, %ymm4 #69.36 + 282 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm4, %ymm3, %ymm3 #69.36 + 283 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl (%r13,%rbx,4), %r10d #68.21 + 284 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 4(%r13,%rbx,4), %r9d #68.21 + 285 | | | 0.50 0.50 | 0.50 0.50 | | | | || | 4.0 | movl 8(%r13,%rbx,4), %r8d #68.21 + 286 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 12(%r13,%rbx,4), %esi #68.21 + 287 | | 1.00 | | | | 0.00 | | || | | lea (%r10,%r10,2), %r10d #69.36 + 288 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 16(%r13,%rbx,4), %ecx #68.21 + 289 | | 1.00 | | | | 0.00 | | || | | lea (%r9,%r9,2), %r9d #69.36 + 290 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 20(%r13,%rbx,4), %edx #68.21 + 291 | | 1.00 | | | | 0.00 | | || | 1.0 | lea (%r8,%r8,2), %r8d #69.36 + 292 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 24(%r13,%rbx,4), %eax #68.21 + 293 | | 1.00 | | | | 0.00 | | || | | lea (%rsi,%rsi,2), %esi #69.36 + 294 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 28(%r13,%rbx,4), %r15d #68.21 + 295 | | 1.00 | | | | 0.00 | | || | | lea (%rcx,%rcx,2), %ecx #69.36 + 296 | | 1.00 | | | | 0.00 | | || | | lea (%rdx,%rdx,2), %edx #69.36 + 297 | | 1.00 | | | | 0.00 | | || | | lea (%rax,%rax,2), %eax #69.36 + 298 | | 1.00 | | | | 0.00 | | || | | lea (%r15,%r15,2), %r15d #69.36 + 299 | | | | | | | | || | | # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 300 | | | | | | | | || | | ..B1.29: # Preds ..B1.26 + 301 | | | | | | | | || | | # Execution count [1.25e+01] + 302 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + 303 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #69.36 + 304 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #69.36 + 305 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 + 306 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm17, %zmm17, %zmm17 #69.36 + 307 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 + 308 | 1.50 | 0.17 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.83 | || | | vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 + 309 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || 4.0 | | vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 + 310 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 + 311 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 + 312 | | | | | | | | || | | ..B1.30: # Preds ..B1.29 + 313 | | | | | | | | || | | # Execution count [2.50e+01] + 314 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addl $8, %r12d #67.9 + 315 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $8, %rbx #67.9 + 316 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm26 #71.36 + 317 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm1, %zmm24 #70.36 + 318 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm2, %zmm23 #69.36 + 319 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm3 #72.49 + 320 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 + 321 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 + 322 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm3, %zmm22 #75.38 + 323 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm3, %k2 #74.22 + 324 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm22, %k0 #75.38 + 325 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 + 326 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm3, %zmm3, %zmm4 #75.38 + 328 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 + 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 + 330 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm22, %zmm17 #76.38 + 331 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm22, %zmm19 #77.54 + 332 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm22, %zmm20 #76.44 + 333 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm22, %zmm18 #76.50 + 334 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 + 335 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm18, %zmm21 #77.61 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm25 #77.67 + 337 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 + 338 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 + 339 | 1.00 | | | | | 0.00 | | || 4.0 | | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 + 340 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpl %r14d, %r12d #67.9 + 341 | | | | | | | | || | | * jb ..B1.26 # Prob 82% #67.9 + 342 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + + 21.0 11.2 17.0 6.50 17.0 6.50 7.00 17.0 8.83 7.00 75.0 10.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 287 | 6.0 | lea (%r10,%r10,2), %r10d #69.36| [269, 283, 287] + 291 | 10.0 | lea (%r8,%r8,2), %r8d #69.36| [263, 264, 269, 285, 291] + 295 | 9.0 | lea (%rcx,%rcx,2), %ecx #69.36| [264, 269, 288, 295] + 314 | 1.0 | addl $8, %r12d #67.9| [314] + 339 | 4.0 | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17| [339] + 338 | 4.0 | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17| [338] + 337 | 4.0 | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17| [337] From 5cb341ab1f89e02d947e9357c86b6f0c3cd2b13f Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Tue, 27 Apr 2021 01:04:31 +0200 Subject: [PATCH 11/32] Add IACA output for SOA Signed-off-by: Rafael Ravedutti --- arch_analysis/iaca_output_force_soa.txt | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 arch_analysis/iaca_output_force_soa.txt diff --git a/arch_analysis/iaca_output_force_soa.txt b/arch_analysis/iaca_output_force_soa.txt new file mode 100644 index 0000000..451061a --- /dev/null +++ b/arch_analysis/iaca_output_force_soa.txt @@ -0,0 +1,104 @@ +iwia021h@testfront1:~/MD-Bench/ICC$ iaca -arch SKX force.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 36.70 Cycles Throughput Bottleneck: Backend +Loop Count: 23 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 17.5 0.0 | 11.0 | 20.5 17.0 | 20.5 17.0 | 7.0 | 20.5 | 7.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1* | | | | | | | | | mov r13, r8 +| 1 | | 1.0 | | | | | | | imul r13, rcx +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm6 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm1, xmm7 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm0, xmm12 +| 1 | | | | | | | 1.0 | | movsxd rbx, r12d +| 1 | | | | | | | 1.0 | | add r13, r10 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x40], rax +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x38], r8 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x30], r10 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x28], rsi +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x20], rcx +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x50], r9 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x48], rdx +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | vmovdqu ymm3, ymmword ptr [r13+rbx*4] +| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm3, ymm3 +| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm4 +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r10d, dword ptr [r13+rbx*4] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r9d, dword ptr [r13+rbx*4+0x4] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r8d, dword ptr [r13+rbx*4+0x8] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov esi, dword ptr [r13+rbx*4+0xc] +| 1 | | 1.0 | | | | | | | lea r10d, ptr [r10+r10*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov ecx, dword ptr [r13+rbx*4+0x10] +| 1 | | 1.0 | | | | | | | lea r9d, ptr [r9+r9*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov edx, dword ptr [r13+rbx*4+0x14] +| 1 | | 1.0 | | | | | | | lea r8d, ptr [r8+r8*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov eax, dword ptr [r13+rbx*4+0x18] +| 1 | | 1.0 | | | | | | | lea esi, ptr [rsi+rsi*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r15d, dword ptr [r13+rbx*4+0x1c] +| 1 | | 1.0 | | | | | | | lea ecx, ptr [rcx+rcx*2] +| 1 | | 1.0 | | | | | | | lea edx, ptr [rdx+rdx*2] +| 1 | | 1.0 | | | | | | | lea eax, ptr [rax+rax*2] +| 1 | | 1.0 | | | | | | | lea r15d, ptr [r15+r15*2] +| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 +| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 +| 1* | | | | | | | | | vpxord zmm17, zmm17, zmm17 +| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 +| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdi+ymm3*8+0x10] +| 5^ | 1.5 | | 4.0 4.0 | 4.0 4.0 | | 0.5 | 1.0 | | vgatherdpd zmm17, k2, zmmword ptr [rdi+ymm3*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k3, zmmword ptr [rdi+ymm3*8] +| 1 | | | | | | | 1.0 | | add r12d, 0x8 +| 1 | | | | | | | 1.0 | | add rbx, 0x8 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm0, zmm4 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm24, zmm1, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm23, zmm2, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm24, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm23, zmm23 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm26, zmm26 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm22, zmm3 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm3, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm22, 0x1e +| 2^ | 1.0 | | 0.5 0.5 | 0.5 0.5 | | | | | vfnmadd213pd zmm3, zmm22, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm4, zmm3, zmm3 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm3, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm4, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm22, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm22, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm22, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm18, zmm22, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm22, zmm20, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm18, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm21, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k2}, zmm25, zmm23 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k2}, zmm25, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k2}, zmm25, zmm26 +| 1* | | | | | | | | | cmp r12d, r14d +| 0*F | | | | | | | | | jb 0xfffffffffffffed3 +Total Num Of Uops: 91 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. From 10dacc5a4e105b992a0d42b1de6b3edd14bd9f33 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 28 Apr 2021 17:48:40 +0200 Subject: [PATCH 12/32] Add force for AoS data layout with markers Signed-off-by: Rafael Ravedutti --- asm/force_aos_with_markers.s | 563 +++++++++++++++++++++++++++++++++++ 1 file changed, 563 insertions(+) create mode 100644 asm/force_aos_with_markers.s diff --git a/asm/force_aos_with_markers.s b/asm/force_aos_with_markers.s new file mode 100644 index 0000000..7022772 --- /dev/null +++ b/asm/force_aos_with_markers.s @@ -0,0 +1,563 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; +# mark_description "m-usage=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + movq %rsi, %r8 #35.1 + vmovsd 72(%rdi), %xmm2 #38.27 + movq %rdx, %rax #35.1 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movl 4(%r8), %r12d #36.18 + movq 64(%r8), %r11 #41.20 + movq 72(%r8), %rdx #41.45 + movq 80(%r8), %r9 #41.70 + testl %r12d, %r12d #44.24 + jle ..B1.42 # Prob 50% #44.24 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + movl %r12d, %edi #44.5 + xorl %esi, %esi #44.5 + movl $1, %r10d #44.5 + xorl %ecx, %ecx #44.5 + shrl $1, %edi #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.3: # Preds ..B1.2 + # Execution count [9.00e-01] + xorl %r10d, %r10d #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.4 ..B1.3 + # Execution count [2.50e+00] + movq %r10, (%rcx,%r11) #45.9 + incq %rsi #44.5 + movq %r10, (%rcx,%rdx) #46.9 + movq %r10, (%rcx,%r9) #47.9 + movq %r10, 8(%rcx,%r11) #45.9 + movq %r10, 8(%rcx,%rdx) #46.9 + movq %r10, 8(%rcx,%r9) #47.9 + addq $16, %rcx #44.5 + cmpq %rdi, %rsi #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rsi,%rsi), %r10d #45.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r10), %ecx #44.5 + cmpl %r12d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r10d, %r10 #44.5 + xorl %ecx, %ecx #45.9 + movq %rcx, -8(%r11,%r10,8) #45.9 + movq %rcx, -8(%rdx,%r10,8) #46.9 + movq %rcx, -8(%r9,%r10,8) #47.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm13 #38.45 + xorl %ecx, %ecx #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 + vbroadcastsd %xmm13, %zmm14 #38.25 + vbroadcastsd %xmm1, %zmm13 #39.21 + vbroadcastsd %xmm0, %zmm10 #77.41 + movslq %r12d, %r12 #55.5 + xorl %esi, %esi #55.5 + movq 24(%rax), %r13 #57.25 + movq 16(%r8), %rdi #58.25 + movslq 16(%rax), %r8 #56.43 + movq 8(%rax), %r10 #56.19 + xorl %eax, %eax #55.5 + shlq $2, %r8 #37.5 + movq %r12, -24(%rsp) #55.5[spill] + movq %r13, -16(%rsp) #55.5[spill] + movq %r11, -8(%rsp) #55.5[spill] + movq %r14, -88(%rsp) #55.5[spill] + movq %r15, -96(%rsp) #55.5[spill] + movq %rbx, -104(%rsp) #55.5[spill] + .cfi_offset 3, -128 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.9: # Preds ..B1.39 ..B1.8 + # Execution count [5.00e+00] + movq -16(%rsp), %rbx #57.25[spill] + vxorpd %xmm24, %xmm24, %xmm24 #61.22 + vmovapd %xmm24, %xmm18 #62.22 + movl (%rbx,%rsi,4), %r11d #57.25 + vmovapd %xmm18, %xmm4 #63.22 + vmovsd (%rax,%rdi), %xmm6 #58.25 + vmovsd 8(%rax,%rdi), %xmm7 #59.25 + vmovsd 16(%rax,%rdi), %xmm12 #60.25 + testl %r11d, %r11d #67.28 + jle ..B1.39 # Prob 50% #67.28 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vpxord %zmm9, %zmm9, %zmm9 #61.22 + vmovaps %zmm9, %zmm8 #62.22 + vmovaps %zmm8, %zmm11 #63.22 + cmpl $8, %r11d #67.9 + jl ..B1.44 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r11d #67.9 + jl ..B1.43 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r8, %r15 #56.43 + imulq %rcx, %r15 #56.43 + addq %r10, %r15 #37.5 + movq %r15, %r12 #67.9 + andq $63, %r12 #67.9 + testl $3, %r12d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r12d, %r12d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r12d, %r12d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r12d #67.9 + addl $64, %r12d #67.9 + shrl $2, %r12d #67.9 + cmpl %r12d, %r11d #67.9 + cmovl %r11d, %r12d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r11d, %r14d #67.9 + subl %r12d, %r14d #67.9 + andl $7, %r14d #67.9 + negl %r14d #67.9 + addl %r11d, %r14d #67.9 + cmpl $1, %r12d #67.9 + jb ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa %ymm15, %ymm3 #67.9 + xorl %r13d, %r13d #67.9 + vpbroadcastd %r12d, %ymm2 #67.9 + vbroadcastsd %xmm6, %zmm1 #58.23 + vbroadcastsd %xmm7, %zmm0 #59.23 + vbroadcastsd %xmm12, %zmm4 #60.23 + movslq %r12d, %rbx #67.9 + movq %r9, -80(%rsp) #67.9[spill] + movq %rdx, -72(%rsp) #67.9[spill] + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.18: # Preds ..B1.22 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd %ymm3, %ymm2, %k3 #67.9 + vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 + kmovw %k3, %r9d #67.9 + vpaddd %ymm17, %ymm17, %ymm18 #69.36 + vpaddd %ymm18, %ymm17, %ymm17 #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.21: # Preds ..B1.18 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vpxord %zmm19, %zmm19, %zmm19 #69.36 + vpxord %zmm20, %zmm20, %zmm20 #69.36 + vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 + vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 +..B1.22: # Preds ..B1.21 + # Execution count [2.50e+01] + addq $8, %r13 #67.9 + vpaddd %ymm16, %ymm3, %ymm3 #67.9 + vsubpd %zmm18, %zmm4, %zmm29 #71.36 + vsubpd %zmm19, %zmm0, %zmm27 #70.36 + vsubpd %zmm20, %zmm1, %zmm26 #69.36 + vmulpd %zmm27, %zmm27, %zmm25 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 + vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 + vrcp14pd %zmm25, %zmm24 #75.38 + vcmppd $1, %zmm14, %zmm25, %k2 #74.22 + vfpclasspd $30, %zmm24, %k0 #75.38 + kmovw %k2, %edx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm25, %zmm17 #75.38 + andl %edx, %r9d #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 + kmovw %r9d, %k3 #78.17 + vmulpd %zmm17, %zmm17, %zmm18 #75.38 + vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 + vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 + vmulpd %zmm13, %zmm24, %zmm19 #76.38 + vmulpd %zmm10, %zmm24, %zmm21 #77.54 + vmulpd %zmm19, %zmm24, %zmm22 #76.44 + vmulpd %zmm22, %zmm24, %zmm20 #76.50 + vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 + vmulpd %zmm21, %zmm20, %zmm23 #77.61 + vmulpd %zmm24, %zmm23, %zmm28 #77.67 + vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 + vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 + vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 + cmpq %rbx, %r13 #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.23: # Preds ..B1.22 + # Execution count [4.50e+00] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + cmpl %r12d, %r11d #67.9 + je ..B1.38 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 + # Execution count [2.50e+01] + lea 8(%r12), %ebx #67.9 + cmpl %ebx, %r14d #67.9 + jl ..B1.32 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER +..B1.25: # Preds ..B1.24 + # Execution count [4.50e+00] + movq %r8, %r13 #56.43 + imulq %rcx, %r13 #56.43 + vbroadcastsd %xmm6, %zmm2 #58.23 + vbroadcastsd %xmm7, %zmm1 #59.23 + vbroadcastsd %xmm12, %zmm0 #60.23 + movslq %r12d, %rbx #67.9 + addq %r10, %r13 #37.5 + movq %rax, -64(%rsp) #37.5[spill] + movq %r8, -56(%rsp) #37.5[spill] + movq %r10, -48(%rsp) #37.5[spill] + movq %rsi, -40(%rsp) #37.5[spill] + movq %rcx, -32(%rsp) #37.5[spill] + movq %r9, -80(%rsp) #37.5[spill] + movq %rdx, -72(%rsp) #37.5[spill] + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.26: # Preds ..B1.30 ..B1.25 + # Execution count [2.50e+01] + vmovdqu (%r13,%rbx,4), %ymm3 #68.21 + vpaddd %ymm3, %ymm3, %ymm4 #69.36 + vpaddd %ymm4, %ymm3, %ymm3 #69.36 + movl (%r13,%rbx,4), %r10d #68.21 + movl 4(%r13,%rbx,4), %r9d #68.21 + movl 8(%r13,%rbx,4), %r8d #68.21 + movl 12(%r13,%rbx,4), %esi #68.21 + lea (%r10,%r10,2), %r10d #69.36 + movl 16(%r13,%rbx,4), %ecx #68.21 + lea (%r9,%r9,2), %r9d #69.36 + movl 20(%r13,%rbx,4), %edx #68.21 + lea (%r8,%r8,2), %r8d #69.36 + movl 24(%r13,%rbx,4), %eax #68.21 + lea (%rsi,%rsi,2), %esi #69.36 + movl 28(%r13,%rbx,4), %r15d #68.21 + lea (%rcx,%rcx,2), %ecx #69.36 + lea (%rdx,%rdx,2), %edx #69.36 + lea (%rax,%rax,2), %eax #69.36 + lea (%r15,%r15,2), %r15d #69.36 + # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.29: # Preds ..B1.26 + # Execution count [1.25e+01] + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k2 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #69.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm17, %zmm17, %zmm17 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 + vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 +..B1.30: # Preds ..B1.29 + # Execution count [2.50e+01] + addl $8, %r12d #67.9 + addq $8, %rbx #67.9 + vsubpd %zmm4, %zmm0, %zmm26 #71.36 + vsubpd %zmm17, %zmm1, %zmm24 #70.36 + vsubpd %zmm18, %zmm2, %zmm23 #69.36 + vmulpd %zmm24, %zmm24, %zmm3 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 + vrcp14pd %zmm3, %zmm22 #75.38 + vcmppd $1, %zmm14, %zmm3, %k2 #74.22 + vfpclasspd $30, %zmm22, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 + knotw %k0, %k1 #75.38 + vmulpd %zmm3, %zmm3, %zmm4 #75.38 + vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 + vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 + vmulpd %zmm13, %zmm22, %zmm17 #76.38 + vmulpd %zmm10, %zmm22, %zmm19 #77.54 + vmulpd %zmm17, %zmm22, %zmm20 #76.44 + vmulpd %zmm20, %zmm22, %zmm18 #76.50 + vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 + vmulpd %zmm19, %zmm18, %zmm21 #77.61 + vmulpd %zmm22, %zmm21, %zmm25 #77.67 + vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 + vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 + vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 + cmpl %r14d, %r12d #67.9 + jb ..B1.26 # Prob 82% #67.9 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER +..B1.31: # Preds ..B1.30 + # Execution count [4.50e+00] + movq -64(%rsp), %rax #[spill] + movq -56(%rsp), %r8 #[spill] + movq -48(%rsp), %r10 #[spill] + movq -40(%rsp), %rsi #[spill] + movq -32(%rsp), %rcx #[spill] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 + # Execution count [5.00e+00] + lea 1(%r14), %ebx #67.9 + cmpl %r11d, %ebx #67.9 + ja ..B1.38 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.33: # Preds ..B1.32 + # Execution count [2.50e+01] + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm6, %zmm4 #58.23 + subl %r14d, %r11d #67.9 + addq %r10, %rcx #37.5 + vpbroadcastd %r11d, %ymm0 #67.9 + vpcmpgtd %ymm15, %ymm0, %k3 #67.9 + movslq %r14d, %r14 #67.9 + kmovw %k3, %ebx #67.9 + vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 + vpaddd %ymm1, %ymm1, %ymm2 #69.36 + vpaddd %ymm2, %ymm1, %ymm0 #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.36: # Preds ..B1.33 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm1, %zmm1, %zmm1 #69.36 + vpxord %zmm2, %zmm2, %zmm2 #69.36 + vpxord %zmm3, %zmm3, %zmm3 #69.36 + vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 + vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.37: # Preds ..B1.36 + # Execution count [2.50e+01] + vbroadcastsd %xmm7, %zmm7 #59.23 + vbroadcastsd %xmm12, %zmm12 #60.23 + vsubpd %zmm1, %zmm12, %zmm23 #71.36 + vsubpd %zmm2, %zmm7, %zmm21 #70.36 + vsubpd %zmm3, %zmm4, %zmm20 #69.36 + vmulpd %zmm21, %zmm21, %zmm19 #72.49 + vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 + vrcp14pd %zmm19, %zmm18 #75.38 + vcmppd $1, %zmm14, %zmm19, %k2 #74.22 + vfpclasspd $30, %zmm18, %k0 #75.38 + kmovw %k2, %ecx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm19, %zmm0 #75.38 + andl %ecx, %ebx #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 + kmovw %ebx, %k3 #78.17 + vmulpd %zmm0, %zmm0, %zmm1 #75.38 + vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 + vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 + vmulpd %zmm13, %zmm18, %zmm2 #76.38 + vmulpd %zmm10, %zmm18, %zmm4 #77.54 + vmulpd %zmm2, %zmm18, %zmm6 #76.44 + vmulpd %zmm6, %zmm18, %zmm3 #76.50 + vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 + vmulpd %zmm4, %zmm3, %zmm17 #77.61 + vmulpd %zmm18, %zmm17, %zmm22 #77.67 + vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 + vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 + vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 + vpermd %zmm11, %zmm19, %zmm0 #63.22 + vpermd %zmm8, %zmm19, %zmm6 #62.22 + vpermd %zmm9, %zmm19, %zmm20 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm8, %zmm6, %zmm8 #62.22 + vaddpd %zmm9, %zmm20, %zmm9 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm8, %zmm7 #62.22 + vpermpd $78, %zmm9, %zmm21 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm7, %zmm8, %zmm12 #62.22 + vaddpd %zmm21, %zmm9, %zmm22 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm12, %zmm17 #62.22 + vpermpd $177, %zmm22, %zmm23 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm17, %zmm12, %zmm18 #62.22 + vaddpd %zmm23, %zmm22, %zmm24 #61.22 + # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.39: # Preds ..B1.38 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + addq $24, %rax #55.5 + vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%rsi,8) #84.9 + movslq %esi, %rcx #55.32 + vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 + vmovsd %xmm1, (%rdx,%rsi,8) #85.9 + incq %rcx #55.32 + vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%r9,%rsi,8) #86.9 + incq %rsi #55.5 + cmpq -24(%rsp), %rsi #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.40: # Preds ..B1.39 + # Execution count [9.00e-01] + movq -88(%rsp), %r14 #[spill] + .cfi_restore 14 + movq -96(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -104(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r14 r15 +..B1.42: # Preds ..B1.1 ..B1.40 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 24 + .cfi_offset 3, -128 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE +..B1.43: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r11d, %r14d #67.9 + xorl %r12d, %r12d #67.9 + andl $-8, %r14d #67.9 + jmp ..B1.24 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.44: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %r14d, %r14d #67.9 + jmp ..B1.32 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.5: + .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 64 +.L_2il0floatpacket.7: + .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 + .type .L_2il0floatpacket.7,@object + .size .L_2il0floatpacket.7,64 + .align 64 +.L_2il0floatpacket.8: + .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 + .type .L_2il0floatpacket.8,@object + .size .L_2il0floatpacket.8,64 + .align 64 +.L_2il0floatpacket.10: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.10,@object + .size .L_2il0floatpacket.10,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.9: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.9,@object + .size .L_2il0floatpacket.9,8 + .data + .section .note.GNU-stack, "" +# End From 02ff7de18fa65d8152699b761a91232c0c515e02 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 28 Apr 2021 23:19:06 +0200 Subject: [PATCH 13/32] Add markers for all kernel variants Signed-off-by: Rafael Ravedutti --- asm/force_aos_geq1200_markers.s | 563 ++++++++++++++++++ ...h_markers.s => force_aos_lt1200_markers.s} | 0 asm/force_aos_lt8_markers.s | 563 ++++++++++++++++++ asm/force_soa_geq1200_markers.s | 475 +++++++++++++++ asm/force_soa_lt1200_markers.s | 475 +++++++++++++++ asm/force_soa_lt8_markers.s | 475 +++++++++++++++ 6 files changed, 2551 insertions(+) create mode 100644 asm/force_aos_geq1200_markers.s rename asm/{force_aos_with_markers.s => force_aos_lt1200_markers.s} (100%) create mode 100644 asm/force_aos_lt8_markers.s create mode 100644 asm/force_soa_geq1200_markers.s create mode 100644 asm/force_soa_lt1200_markers.s create mode 100644 asm/force_soa_lt8_markers.s diff --git a/asm/force_aos_geq1200_markers.s b/asm/force_aos_geq1200_markers.s new file mode 100644 index 0000000..0fd894e --- /dev/null +++ b/asm/force_aos_geq1200_markers.s @@ -0,0 +1,563 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; +# mark_description "m-usage=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + movq %rsi, %r8 #35.1 + vmovsd 72(%rdi), %xmm2 #38.27 + movq %rdx, %rax #35.1 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movl 4(%r8), %r12d #36.18 + movq 64(%r8), %r11 #41.20 + movq 72(%r8), %rdx #41.45 + movq 80(%r8), %r9 #41.70 + testl %r12d, %r12d #44.24 + jle ..B1.42 # Prob 50% #44.24 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + movl %r12d, %edi #44.5 + xorl %esi, %esi #44.5 + movl $1, %r10d #44.5 + xorl %ecx, %ecx #44.5 + shrl $1, %edi #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.3: # Preds ..B1.2 + # Execution count [9.00e-01] + xorl %r10d, %r10d #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.4 ..B1.3 + # Execution count [2.50e+00] + movq %r10, (%rcx,%r11) #45.9 + incq %rsi #44.5 + movq %r10, (%rcx,%rdx) #46.9 + movq %r10, (%rcx,%r9) #47.9 + movq %r10, 8(%rcx,%r11) #45.9 + movq %r10, 8(%rcx,%rdx) #46.9 + movq %r10, 8(%rcx,%r9) #47.9 + addq $16, %rcx #44.5 + cmpq %rdi, %rsi #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rsi,%rsi), %r10d #45.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r10), %ecx #44.5 + cmpl %r12d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r10d, %r10 #44.5 + xorl %ecx, %ecx #45.9 + movq %rcx, -8(%r11,%r10,8) #45.9 + movq %rcx, -8(%rdx,%r10,8) #46.9 + movq %rcx, -8(%r9,%r10,8) #47.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm13 #38.45 + xorl %ecx, %ecx #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 + vbroadcastsd %xmm13, %zmm14 #38.25 + vbroadcastsd %xmm1, %zmm13 #39.21 + vbroadcastsd %xmm0, %zmm10 #77.41 + movslq %r12d, %r12 #55.5 + xorl %esi, %esi #55.5 + movq 24(%rax), %r13 #57.25 + movq 16(%r8), %rdi #58.25 + movslq 16(%rax), %r8 #56.43 + movq 8(%rax), %r10 #56.19 + xorl %eax, %eax #55.5 + shlq $2, %r8 #37.5 + movq %r12, -24(%rsp) #55.5[spill] + movq %r13, -16(%rsp) #55.5[spill] + movq %r11, -8(%rsp) #55.5[spill] + movq %r14, -88(%rsp) #55.5[spill] + movq %r15, -96(%rsp) #55.5[spill] + movq %rbx, -104(%rsp) #55.5[spill] + .cfi_offset 3, -128 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.9: # Preds ..B1.39 ..B1.8 + # Execution count [5.00e+00] + movq -16(%rsp), %rbx #57.25[spill] + vxorpd %xmm24, %xmm24, %xmm24 #61.22 + vmovapd %xmm24, %xmm18 #62.22 + movl (%rbx,%rsi,4), %r11d #57.25 + vmovapd %xmm18, %xmm4 #63.22 + vmovsd (%rax,%rdi), %xmm6 #58.25 + vmovsd 8(%rax,%rdi), %xmm7 #59.25 + vmovsd 16(%rax,%rdi), %xmm12 #60.25 + testl %r11d, %r11d #67.28 + jle ..B1.39 # Prob 50% #67.28 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vpxord %zmm9, %zmm9, %zmm9 #61.22 + vmovaps %zmm9, %zmm8 #62.22 + vmovaps %zmm8, %zmm11 #63.22 + cmpl $8, %r11d #67.9 + jl ..B1.44 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r11d #67.9 + jl ..B1.43 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r8, %r15 #56.43 + imulq %rcx, %r15 #56.43 + addq %r10, %r15 #37.5 + movq %r15, %r12 #67.9 + andq $63, %r12 #67.9 + testl $3, %r12d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r12d, %r12d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r12d, %r12d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r12d #67.9 + addl $64, %r12d #67.9 + shrl $2, %r12d #67.9 + cmpl %r12d, %r11d #67.9 + cmovl %r11d, %r12d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r11d, %r14d #67.9 + subl %r12d, %r14d #67.9 + andl $7, %r14d #67.9 + negl %r14d #67.9 + addl %r11d, %r14d #67.9 + cmpl $1, %r12d #67.9 + jb ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa %ymm15, %ymm3 #67.9 + xorl %r13d, %r13d #67.9 + vpbroadcastd %r12d, %ymm2 #67.9 + vbroadcastsd %xmm6, %zmm1 #58.23 + vbroadcastsd %xmm7, %zmm0 #59.23 + vbroadcastsd %xmm12, %zmm4 #60.23 + movslq %r12d, %rbx #67.9 + movq %r9, -80(%rsp) #67.9[spill] + movq %rdx, -72(%rsp) #67.9[spill] + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.18: # Preds ..B1.22 ..B1.17 + # Execution count [2.50e+01] + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + vpcmpgtd %ymm3, %ymm2, %k3 #67.9 + vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 + kmovw %k3, %r9d #67.9 + vpaddd %ymm17, %ymm17, %ymm18 #69.36 + vpaddd %ymm18, %ymm17, %ymm17 #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.21: # Preds ..B1.18 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vpxord %zmm19, %zmm19, %zmm19 #69.36 + vpxord %zmm20, %zmm20, %zmm20 #69.36 + vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 + vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 +..B1.22: # Preds ..B1.21 + # Execution count [2.50e+01] + addq $8, %r13 #67.9 + vpaddd %ymm16, %ymm3, %ymm3 #67.9 + vsubpd %zmm18, %zmm4, %zmm29 #71.36 + vsubpd %zmm19, %zmm0, %zmm27 #70.36 + vsubpd %zmm20, %zmm1, %zmm26 #69.36 + vmulpd %zmm27, %zmm27, %zmm25 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 + vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 + vrcp14pd %zmm25, %zmm24 #75.38 + vcmppd $1, %zmm14, %zmm25, %k2 #74.22 + vfpclasspd $30, %zmm24, %k0 #75.38 + kmovw %k2, %edx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm25, %zmm17 #75.38 + andl %edx, %r9d #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 + kmovw %r9d, %k3 #78.17 + vmulpd %zmm17, %zmm17, %zmm18 #75.38 + vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 + vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 + vmulpd %zmm13, %zmm24, %zmm19 #76.38 + vmulpd %zmm10, %zmm24, %zmm21 #77.54 + vmulpd %zmm19, %zmm24, %zmm22 #76.44 + vmulpd %zmm22, %zmm24, %zmm20 #76.50 + vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 + vmulpd %zmm21, %zmm20, %zmm23 #77.61 + vmulpd %zmm24, %zmm23, %zmm28 #77.67 + vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 + vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 + vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 + cmpq %rbx, %r13 #67.9 + jb ..B1.18 # Prob 82% #67.9 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.23: # Preds ..B1.22 + # Execution count [4.50e+00] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + cmpl %r12d, %r11d #67.9 + je ..B1.38 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 + # Execution count [2.50e+01] + lea 8(%r12), %ebx #67.9 + cmpl %ebx, %r14d #67.9 + jl ..B1.32 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.25: # Preds ..B1.24 + # Execution count [4.50e+00] + movq %r8, %r13 #56.43 + imulq %rcx, %r13 #56.43 + vbroadcastsd %xmm6, %zmm2 #58.23 + vbroadcastsd %xmm7, %zmm1 #59.23 + vbroadcastsd %xmm12, %zmm0 #60.23 + movslq %r12d, %rbx #67.9 + addq %r10, %r13 #37.5 + movq %rax, -64(%rsp) #37.5[spill] + movq %r8, -56(%rsp) #37.5[spill] + movq %r10, -48(%rsp) #37.5[spill] + movq %rsi, -40(%rsp) #37.5[spill] + movq %rcx, -32(%rsp) #37.5[spill] + movq %r9, -80(%rsp) #37.5[spill] + movq %rdx, -72(%rsp) #37.5[spill] + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.26: # Preds ..B1.30 ..B1.25 + # Execution count [2.50e+01] + vmovdqu (%r13,%rbx,4), %ymm3 #68.21 + vpaddd %ymm3, %ymm3, %ymm4 #69.36 + vpaddd %ymm4, %ymm3, %ymm3 #69.36 + movl (%r13,%rbx,4), %r10d #68.21 + movl 4(%r13,%rbx,4), %r9d #68.21 + movl 8(%r13,%rbx,4), %r8d #68.21 + movl 12(%r13,%rbx,4), %esi #68.21 + lea (%r10,%r10,2), %r10d #69.36 + movl 16(%r13,%rbx,4), %ecx #68.21 + lea (%r9,%r9,2), %r9d #69.36 + movl 20(%r13,%rbx,4), %edx #68.21 + lea (%r8,%r8,2), %r8d #69.36 + movl 24(%r13,%rbx,4), %eax #68.21 + lea (%rsi,%rsi,2), %esi #69.36 + movl 28(%r13,%rbx,4), %r15d #68.21 + lea (%rcx,%rcx,2), %ecx #69.36 + lea (%rdx,%rdx,2), %edx #69.36 + lea (%rax,%rax,2), %eax #69.36 + lea (%r15,%r15,2), %r15d #69.36 + # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.29: # Preds ..B1.26 + # Execution count [1.25e+01] + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k2 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #69.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm17, %zmm17, %zmm17 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 + vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 +..B1.30: # Preds ..B1.29 + # Execution count [2.50e+01] + addl $8, %r12d #67.9 + addq $8, %rbx #67.9 + vsubpd %zmm4, %zmm0, %zmm26 #71.36 + vsubpd %zmm17, %zmm1, %zmm24 #70.36 + vsubpd %zmm18, %zmm2, %zmm23 #69.36 + vmulpd %zmm24, %zmm24, %zmm3 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 + vrcp14pd %zmm3, %zmm22 #75.38 + vcmppd $1, %zmm14, %zmm3, %k2 #74.22 + vfpclasspd $30, %zmm22, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 + knotw %k0, %k1 #75.38 + vmulpd %zmm3, %zmm3, %zmm4 #75.38 + vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 + vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 + vmulpd %zmm13, %zmm22, %zmm17 #76.38 + vmulpd %zmm10, %zmm22, %zmm19 #77.54 + vmulpd %zmm17, %zmm22, %zmm20 #76.44 + vmulpd %zmm20, %zmm22, %zmm18 #76.50 + vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 + vmulpd %zmm19, %zmm18, %zmm21 #77.61 + vmulpd %zmm22, %zmm21, %zmm25 #77.67 + vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 + vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 + vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 + cmpl %r14d, %r12d #67.9 + jb ..B1.26 # Prob 82% #67.9 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.31: # Preds ..B1.30 + # Execution count [4.50e+00] + movq -64(%rsp), %rax #[spill] + movq -56(%rsp), %r8 #[spill] + movq -48(%rsp), %r10 #[spill] + movq -40(%rsp), %rsi #[spill] + movq -32(%rsp), %rcx #[spill] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 + # Execution count [5.00e+00] + lea 1(%r14), %ebx #67.9 + cmpl %r11d, %ebx #67.9 + ja ..B1.38 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.33: # Preds ..B1.32 + # Execution count [2.50e+01] + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm6, %zmm4 #58.23 + subl %r14d, %r11d #67.9 + addq %r10, %rcx #37.5 + vpbroadcastd %r11d, %ymm0 #67.9 + vpcmpgtd %ymm15, %ymm0, %k3 #67.9 + movslq %r14d, %r14 #67.9 + kmovw %k3, %ebx #67.9 + vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 + vpaddd %ymm1, %ymm1, %ymm2 #69.36 + vpaddd %ymm2, %ymm1, %ymm0 #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.36: # Preds ..B1.33 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm1, %zmm1, %zmm1 #69.36 + vpxord %zmm2, %zmm2, %zmm2 #69.36 + vpxord %zmm3, %zmm3, %zmm3 #69.36 + vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 + vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.37: # Preds ..B1.36 + # Execution count [2.50e+01] + vbroadcastsd %xmm7, %zmm7 #59.23 + vbroadcastsd %xmm12, %zmm12 #60.23 + vsubpd %zmm1, %zmm12, %zmm23 #71.36 + vsubpd %zmm2, %zmm7, %zmm21 #70.36 + vsubpd %zmm3, %zmm4, %zmm20 #69.36 + vmulpd %zmm21, %zmm21, %zmm19 #72.49 + vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 + vrcp14pd %zmm19, %zmm18 #75.38 + vcmppd $1, %zmm14, %zmm19, %k2 #74.22 + vfpclasspd $30, %zmm18, %k0 #75.38 + kmovw %k2, %ecx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm19, %zmm0 #75.38 + andl %ecx, %ebx #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 + kmovw %ebx, %k3 #78.17 + vmulpd %zmm0, %zmm0, %zmm1 #75.38 + vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 + vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 + vmulpd %zmm13, %zmm18, %zmm2 #76.38 + vmulpd %zmm10, %zmm18, %zmm4 #77.54 + vmulpd %zmm2, %zmm18, %zmm6 #76.44 + vmulpd %zmm6, %zmm18, %zmm3 #76.50 + vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 + vmulpd %zmm4, %zmm3, %zmm17 #77.61 + vmulpd %zmm18, %zmm17, %zmm22 #77.67 + vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 + vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 + vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 + vpermd %zmm11, %zmm19, %zmm0 #63.22 + vpermd %zmm8, %zmm19, %zmm6 #62.22 + vpermd %zmm9, %zmm19, %zmm20 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm8, %zmm6, %zmm8 #62.22 + vaddpd %zmm9, %zmm20, %zmm9 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm8, %zmm7 #62.22 + vpermpd $78, %zmm9, %zmm21 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm7, %zmm8, %zmm12 #62.22 + vaddpd %zmm21, %zmm9, %zmm22 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm12, %zmm17 #62.22 + vpermpd $177, %zmm22, %zmm23 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm17, %zmm12, %zmm18 #62.22 + vaddpd %zmm23, %zmm22, %zmm24 #61.22 + # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.39: # Preds ..B1.38 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + addq $24, %rax #55.5 + vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%rsi,8) #84.9 + movslq %esi, %rcx #55.32 + vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 + vmovsd %xmm1, (%rdx,%rsi,8) #85.9 + incq %rcx #55.32 + vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%r9,%rsi,8) #86.9 + incq %rsi #55.5 + cmpq -24(%rsp), %rsi #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.40: # Preds ..B1.39 + # Execution count [9.00e-01] + movq -88(%rsp), %r14 #[spill] + .cfi_restore 14 + movq -96(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -104(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r14 r15 +..B1.42: # Preds ..B1.1 ..B1.40 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 24 + .cfi_offset 3, -128 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE +..B1.43: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r11d, %r14d #67.9 + xorl %r12d, %r12d #67.9 + andl $-8, %r14d #67.9 + jmp ..B1.24 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.44: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %r14d, %r14d #67.9 + jmp ..B1.32 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.5: + .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 64 +.L_2il0floatpacket.7: + .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 + .type .L_2il0floatpacket.7,@object + .size .L_2il0floatpacket.7,64 + .align 64 +.L_2il0floatpacket.8: + .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 + .type .L_2il0floatpacket.8,@object + .size .L_2il0floatpacket.8,64 + .align 64 +.L_2il0floatpacket.10: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.10,@object + .size .L_2il0floatpacket.10,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.9: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.9,@object + .size .L_2il0floatpacket.9,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/force_aos_with_markers.s b/asm/force_aos_lt1200_markers.s similarity index 100% rename from asm/force_aos_with_markers.s rename to asm/force_aos_lt1200_markers.s diff --git a/asm/force_aos_lt8_markers.s b/asm/force_aos_lt8_markers.s new file mode 100644 index 0000000..f9ef002 --- /dev/null +++ b/asm/force_aos_lt8_markers.s @@ -0,0 +1,563 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; +# mark_description "m-usage=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + movq %rsi, %r8 #35.1 + vmovsd 72(%rdi), %xmm2 #38.27 + movq %rdx, %rax #35.1 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movl 4(%r8), %r12d #36.18 + movq 64(%r8), %r11 #41.20 + movq 72(%r8), %rdx #41.45 + movq 80(%r8), %r9 #41.70 + testl %r12d, %r12d #44.24 + jle ..B1.42 # Prob 50% #44.24 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + movl %r12d, %edi #44.5 + xorl %esi, %esi #44.5 + movl $1, %r10d #44.5 + xorl %ecx, %ecx #44.5 + shrl $1, %edi #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.3: # Preds ..B1.2 + # Execution count [9.00e-01] + xorl %r10d, %r10d #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.4 ..B1.3 + # Execution count [2.50e+00] + movq %r10, (%rcx,%r11) #45.9 + incq %rsi #44.5 + movq %r10, (%rcx,%rdx) #46.9 + movq %r10, (%rcx,%r9) #47.9 + movq %r10, 8(%rcx,%r11) #45.9 + movq %r10, 8(%rcx,%rdx) #46.9 + movq %r10, 8(%rcx,%r9) #47.9 + addq $16, %rcx #44.5 + cmpq %rdi, %rsi #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rsi,%rsi), %r10d #45.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r10), %ecx #44.5 + cmpl %r12d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r10d, %r10 #44.5 + xorl %ecx, %ecx #45.9 + movq %rcx, -8(%r11,%r10,8) #45.9 + movq %rcx, -8(%rdx,%r10,8) #46.9 + movq %rcx, -8(%r9,%r10,8) #47.9 + # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm13 #38.45 + xorl %ecx, %ecx #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 + vbroadcastsd %xmm13, %zmm14 #38.25 + vbroadcastsd %xmm1, %zmm13 #39.21 + vbroadcastsd %xmm0, %zmm10 #77.41 + movslq %r12d, %r12 #55.5 + xorl %esi, %esi #55.5 + movq 24(%rax), %r13 #57.25 + movq 16(%r8), %rdi #58.25 + movslq 16(%rax), %r8 #56.43 + movq 8(%rax), %r10 #56.19 + xorl %eax, %eax #55.5 + shlq $2, %r8 #37.5 + movq %r12, -24(%rsp) #55.5[spill] + movq %r13, -16(%rsp) #55.5[spill] + movq %r11, -8(%rsp) #55.5[spill] + movq %r14, -88(%rsp) #55.5[spill] + movq %r15, -96(%rsp) #55.5[spill] + movq %rbx, -104(%rsp) #55.5[spill] + .cfi_offset 3, -128 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.9: # Preds ..B1.39 ..B1.8 + # Execution count [5.00e+00] + movq -16(%rsp), %rbx #57.25[spill] + vxorpd %xmm24, %xmm24, %xmm24 #61.22 + vmovapd %xmm24, %xmm18 #62.22 + movl (%rbx,%rsi,4), %r11d #57.25 + vmovapd %xmm18, %xmm4 #63.22 + vmovsd (%rax,%rdi), %xmm6 #58.25 + vmovsd 8(%rax,%rdi), %xmm7 #59.25 + vmovsd 16(%rax,%rdi), %xmm12 #60.25 + testl %r11d, %r11d #67.28 + jle ..B1.39 # Prob 50% #67.28 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vpxord %zmm9, %zmm9, %zmm9 #61.22 + vmovaps %zmm9, %zmm8 #62.22 + vmovaps %zmm8, %zmm11 #63.22 + cmpl $8, %r11d #67.9 + jl ..B1.44 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r11d #67.9 + jl ..B1.43 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r8, %r15 #56.43 + imulq %rcx, %r15 #56.43 + addq %r10, %r15 #37.5 + movq %r15, %r12 #67.9 + andq $63, %r12 #67.9 + testl $3, %r12d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r12d, %r12d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r12d, %r12d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r12d #67.9 + addl $64, %r12d #67.9 + shrl $2, %r12d #67.9 + cmpl %r12d, %r11d #67.9 + cmovl %r11d, %r12d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r11d, %r14d #67.9 + subl %r12d, %r14d #67.9 + andl $7, %r14d #67.9 + negl %r14d #67.9 + addl %r11d, %r14d #67.9 + cmpl $1, %r12d #67.9 + jb ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa %ymm15, %ymm3 #67.9 + xorl %r13d, %r13d #67.9 + vpbroadcastd %r12d, %ymm2 #67.9 + vbroadcastsd %xmm6, %zmm1 #58.23 + vbroadcastsd %xmm7, %zmm0 #59.23 + vbroadcastsd %xmm12, %zmm4 #60.23 + movslq %r12d, %rbx #67.9 + movq %r9, -80(%rsp) #67.9[spill] + movq %rdx, -72(%rsp) #67.9[spill] + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.18: # Preds ..B1.22 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd %ymm3, %ymm2, %k3 #67.9 + vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 + kmovw %k3, %r9d #67.9 + vpaddd %ymm17, %ymm17, %ymm18 #69.36 + vpaddd %ymm18, %ymm17, %ymm17 #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.21: # Preds ..B1.18 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vpxord %zmm19, %zmm19, %zmm19 #69.36 + vpxord %zmm20, %zmm20, %zmm20 #69.36 + vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 + vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 +..B1.22: # Preds ..B1.21 + # Execution count [2.50e+01] + addq $8, %r13 #67.9 + vpaddd %ymm16, %ymm3, %ymm3 #67.9 + vsubpd %zmm18, %zmm4, %zmm29 #71.36 + vsubpd %zmm19, %zmm0, %zmm27 #70.36 + vsubpd %zmm20, %zmm1, %zmm26 #69.36 + vmulpd %zmm27, %zmm27, %zmm25 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 + vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 + vrcp14pd %zmm25, %zmm24 #75.38 + vcmppd $1, %zmm14, %zmm25, %k2 #74.22 + vfpclasspd $30, %zmm24, %k0 #75.38 + kmovw %k2, %edx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm25, %zmm17 #75.38 + andl %edx, %r9d #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 + kmovw %r9d, %k3 #78.17 + vmulpd %zmm17, %zmm17, %zmm18 #75.38 + vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 + vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 + vmulpd %zmm13, %zmm24, %zmm19 #76.38 + vmulpd %zmm10, %zmm24, %zmm21 #77.54 + vmulpd %zmm19, %zmm24, %zmm22 #76.44 + vmulpd %zmm22, %zmm24, %zmm20 #76.50 + vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 + vmulpd %zmm21, %zmm20, %zmm23 #77.61 + vmulpd %zmm24, %zmm23, %zmm28 #77.67 + vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 + vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 + vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 + cmpq %rbx, %r13 #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.23: # Preds ..B1.22 + # Execution count [4.50e+00] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + cmpl %r12d, %r11d #67.9 + je ..B1.38 # Prob 10% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 + # Execution count [2.50e+01] + lea 8(%r12), %ebx #67.9 + cmpl %ebx, %r14d #67.9 + jl ..B1.32 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.25: # Preds ..B1.24 + # Execution count [4.50e+00] + movq %r8, %r13 #56.43 + imulq %rcx, %r13 #56.43 + vbroadcastsd %xmm6, %zmm2 #58.23 + vbroadcastsd %xmm7, %zmm1 #59.23 + vbroadcastsd %xmm12, %zmm0 #60.23 + movslq %r12d, %rbx #67.9 + addq %r10, %r13 #37.5 + movq %rax, -64(%rsp) #37.5[spill] + movq %r8, -56(%rsp) #37.5[spill] + movq %r10, -48(%rsp) #37.5[spill] + movq %rsi, -40(%rsp) #37.5[spill] + movq %rcx, -32(%rsp) #37.5[spill] + movq %r9, -80(%rsp) #37.5[spill] + movq %rdx, -72(%rsp) #37.5[spill] + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.26: # Preds ..B1.30 ..B1.25 + # Execution count [2.50e+01] + vmovdqu (%r13,%rbx,4), %ymm3 #68.21 + vpaddd %ymm3, %ymm3, %ymm4 #69.36 + vpaddd %ymm4, %ymm3, %ymm3 #69.36 + movl (%r13,%rbx,4), %r10d #68.21 + movl 4(%r13,%rbx,4), %r9d #68.21 + movl 8(%r13,%rbx,4), %r8d #68.21 + movl 12(%r13,%rbx,4), %esi #68.21 + lea (%r10,%r10,2), %r10d #69.36 + movl 16(%r13,%rbx,4), %ecx #68.21 + lea (%r9,%r9,2), %r9d #69.36 + movl 20(%r13,%rbx,4), %edx #68.21 + lea (%r8,%r8,2), %r8d #69.36 + movl 24(%r13,%rbx,4), %eax #68.21 + lea (%rsi,%rsi,2), %esi #69.36 + movl 28(%r13,%rbx,4), %r15d #68.21 + lea (%rcx,%rcx,2), %ecx #69.36 + lea (%rdx,%rdx,2), %edx #69.36 + lea (%rax,%rax,2), %eax #69.36 + lea (%r15,%r15,2), %r15d #69.36 + # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.29: # Preds ..B1.26 + # Execution count [1.25e+01] + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k2 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #69.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm17, %zmm17, %zmm17 #69.36 + vpxord %zmm18, %zmm18, %zmm18 #69.36 + vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 + vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 +..B1.30: # Preds ..B1.29 + # Execution count [2.50e+01] + addl $8, %r12d #67.9 + addq $8, %rbx #67.9 + vsubpd %zmm4, %zmm0, %zmm26 #71.36 + vsubpd %zmm17, %zmm1, %zmm24 #70.36 + vsubpd %zmm18, %zmm2, %zmm23 #69.36 + vmulpd %zmm24, %zmm24, %zmm3 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 + vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 + vrcp14pd %zmm3, %zmm22 #75.38 + vcmppd $1, %zmm14, %zmm3, %k2 #74.22 + vfpclasspd $30, %zmm22, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 + knotw %k0, %k1 #75.38 + vmulpd %zmm3, %zmm3, %zmm4 #75.38 + vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 + vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 + vmulpd %zmm13, %zmm22, %zmm17 #76.38 + vmulpd %zmm10, %zmm22, %zmm19 #77.54 + vmulpd %zmm17, %zmm22, %zmm20 #76.44 + vmulpd %zmm20, %zmm22, %zmm18 #76.50 + vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 + vmulpd %zmm19, %zmm18, %zmm21 #77.61 + vmulpd %zmm22, %zmm21, %zmm25 #77.67 + vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 + vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 + vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 + cmpl %r14d, %r12d #67.9 + jb ..B1.26 # Prob 82% #67.9 + # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.31: # Preds ..B1.30 + # Execution count [4.50e+00] + movq -64(%rsp), %rax #[spill] + movq -56(%rsp), %r8 #[spill] + movq -48(%rsp), %r10 #[spill] + movq -40(%rsp), %rsi #[spill] + movq -32(%rsp), %rcx #[spill] + movq -80(%rsp), %r9 #[spill] + movq -72(%rsp), %rdx #[spill] + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 + # Execution count [5.00e+00] + lea 1(%r14), %ebx #67.9 + cmpl %r11d, %ebx #67.9 + ja ..B1.38 # Prob 50% #67.9 + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.33: # Preds ..B1.32 + # Execution count [2.50e+01] + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm6, %zmm4 #58.23 + subl %r14d, %r11d #67.9 + addq %r10, %rcx #37.5 + vpbroadcastd %r11d, %ymm0 #67.9 + vpcmpgtd %ymm15, %ymm0, %k3 #67.9 + movslq %r14d, %r14 #67.9 + kmovw %k3, %ebx #67.9 + vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 + vpaddd %ymm1, %ymm1, %ymm2 #69.36 + vpaddd %ymm2, %ymm1, %ymm0 #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 +..B1.36: # Preds ..B1.33 + # Execution count [1.25e+01] + kmovw %k3, %k1 #69.36 + kmovw %k3, %k2 #69.36 + vpxord %zmm1, %zmm1, %zmm1 #69.36 + vpxord %zmm2, %zmm2, %zmm2 #69.36 + vpxord %zmm3, %zmm3, %zmm3 #69.36 + vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 + vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 + vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 + # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.37: # Preds ..B1.36 + # Execution count [2.50e+01] + vbroadcastsd %xmm7, %zmm7 #59.23 + vbroadcastsd %xmm12, %zmm12 #60.23 + vsubpd %zmm1, %zmm12, %zmm23 #71.36 + vsubpd %zmm2, %zmm7, %zmm21 #70.36 + vsubpd %zmm3, %zmm4, %zmm20 #69.36 + vmulpd %zmm21, %zmm21, %zmm19 #72.49 + vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 + vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 + vrcp14pd %zmm19, %zmm18 #75.38 + vcmppd $1, %zmm14, %zmm19, %k2 #74.22 + vfpclasspd $30, %zmm18, %k0 #75.38 + kmovw %k2, %ecx #74.22 + knotw %k0, %k1 #75.38 + vmovaps %zmm19, %zmm0 #75.38 + andl %ecx, %ebx #74.22 + vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 + kmovw %ebx, %k3 #78.17 + vmulpd %zmm0, %zmm0, %zmm1 #75.38 + vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 + vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 + vmulpd %zmm13, %zmm18, %zmm2 #76.38 + vmulpd %zmm10, %zmm18, %zmm4 #77.54 + vmulpd %zmm2, %zmm18, %zmm6 #76.44 + vmulpd %zmm6, %zmm18, %zmm3 #76.50 + vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 + vmulpd %zmm4, %zmm3, %zmm17 #77.61 + vmulpd %zmm18, %zmm17, %zmm22 #77.67 + vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 + vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 + vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 + vpermd %zmm11, %zmm19, %zmm0 #63.22 + vpermd %zmm8, %zmm19, %zmm6 #62.22 + vpermd %zmm9, %zmm19, %zmm20 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm8, %zmm6, %zmm8 #62.22 + vaddpd %zmm9, %zmm20, %zmm9 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm8, %zmm7 #62.22 + vpermpd $78, %zmm9, %zmm21 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm7, %zmm8, %zmm12 #62.22 + vaddpd %zmm21, %zmm9, %zmm22 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm12, %zmm17 #62.22 + vpermpd $177, %zmm22, %zmm23 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm17, %zmm12, %zmm18 #62.22 + vaddpd %zmm23, %zmm22, %zmm24 #61.22 + # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.39: # Preds ..B1.38 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + addq $24, %rax #55.5 + vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%rsi,8) #84.9 + movslq %esi, %rcx #55.32 + vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 + vmovsd %xmm1, (%rdx,%rsi,8) #85.9 + incq %rcx #55.32 + vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%r9,%rsi,8) #86.9 + incq %rsi #55.5 + cmpq -24(%rsp), %rsi #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 +..B1.40: # Preds ..B1.39 + # Execution count [9.00e-01] + movq -88(%rsp), %r14 #[spill] + .cfi_restore 14 + movq -96(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -104(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r14 r15 +..B1.42: # Preds ..B1.1 ..B1.40 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 24 + .cfi_offset 3, -128 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -112 + .cfi_offset 15, -120 + # LOE +..B1.43: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r11d, %r14d #67.9 + xorl %r12d, %r12d #67.9 + andl $-8, %r14d #67.9 + jmp ..B1.24 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 +..B1.44: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %r14d, %r14d #67.9 + jmp ..B1.32 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.5: + .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 64 +.L_2il0floatpacket.7: + .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 + .type .L_2il0floatpacket.7,@object + .size .L_2il0floatpacket.7,64 + .align 64 +.L_2il0floatpacket.8: + .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 + .type .L_2il0floatpacket.8,@object + .size .L_2il0floatpacket.8,64 + .align 64 +.L_2il0floatpacket.10: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.10,@object + .size .L_2il0floatpacket.10,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.9: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.9,@object + .size .L_2il0floatpacket.9,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/force_soa_geq1200_markers.s b/asm/force_soa_geq1200_markers.s new file mode 100644 index 0000000..09b5aba --- /dev/null +++ b/asm/force_soa_geq1200_markers.s @@ -0,0 +1,475 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; +# mark_description "e=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r14 #35.1 + .cfi_def_cfa_offset 32 + .cfi_offset 14, -32 + movl 4(%rsi), %r9d #36.18 + vmovsd 72(%rdi), %xmm2 #38.27 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movq 64(%rsi), %r13 #41.20 + movq 72(%rsi), %r14 #41.45 + movq 80(%rsi), %rdi #41.70 + testl %r9d, %r9d #44.24 + jle ..B1.30 # Prob 50% #44.24 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + xorl %r10d, %r10d #44.5 + movl %r9d, %ecx #44.5 + xorl %r8d, %r8d #44.5 + movl $1, %r11d #44.5 + xorl %eax, %eax #45.17 + shrl $1, %ecx #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] + movq %rax, (%r8,%r13) #45.9 + incq %r10 #44.5 + movq %rax, (%r8,%r14) #46.9 + movq %rax, (%r8,%rdi) #47.9 + movq %rax, 8(%r8,%r13) #45.9 + movq %rax, 8(%r8,%r14) #46.9 + movq %rax, 8(%r8,%rdi) #47.9 + addq $16, %r8 #44.5 + cmpq %rcx, %r10 #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%r10,%r10), %r11d #45.9 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r11), %ecx #44.5 + cmpl %r9d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r11d, %r11 #44.5 + movq %rax, -8(%r13,%r11,8) #45.9 + movq %rax, -8(%r14,%r11,8) #46.9 + movq %rax, -8(%rdi,%r11,8) #47.9 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm15 #38.45 + xorl %r8d, %r8d #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 + vbroadcastsd %xmm15, %zmm16 #38.25 + vbroadcastsd %xmm1, %zmm15 #39.21 + vbroadcastsd %xmm0, %zmm14 #77.41 + movslq %r9d, %r9 #55.5 + xorl %r10d, %r10d #55.5 + movq 24(%rdx), %rcx #57.25 + movq 8(%rdx), %r11 #56.19 + movslq 16(%rdx), %r12 #56.43 + movq 16(%rsi), %rdx #58.25 + movq 24(%rsi), %rax #59.25 + movq 32(%rsi), %rsi #60.25 + shlq $2, %r12 #37.5 + movq %r9, -32(%rsp) #60.25[spill] + movq %rcx, -24(%rsp) #60.25[spill] + movq %r14, -16(%rsp) #60.25[spill] + movq %r13, -8(%rsp) #60.25[spill] + movq %r15, -40(%rsp) #60.25[spill] + movq %rbx, -48(%rsp) #60.25[spill] + vpxord %zmm19, %zmm19, %zmm19 #61.22 + .cfi_offset 3, -80 + .cfi_offset 15, -72 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.9: # Preds ..B1.27 ..B1.8 + # Execution count [5.00e+00] + movq -24(%rsp), %rcx #57.25[spill] + vxorpd %xmm25, %xmm25, %xmm25 #61.22 + vmovapd %xmm25, %xmm20 #62.22 + movl (%rcx,%r10,4), %r13d #57.25 + vmovapd %xmm20, %xmm4 #63.22 + vmovsd (%rdx,%r10,8), %xmm8 #58.25 + vmovsd (%rax,%r10,8), %xmm9 #59.25 + vmovsd (%rsi,%r10,8), %xmm10 #60.25 + testl %r13d, %r13d #67.28 + jle ..B1.27 # Prob 50% #67.28 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vmovaps %zmm19, %zmm13 #61.22 + vmovaps %zmm13, %zmm12 #62.22 + vmovaps %zmm12, %zmm11 #63.22 + cmpl $8, %r13d #67.9 + jl ..B1.32 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r13d #67.9 + jl ..B1.31 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + addq %r11, %rcx #37.5 + movq %rcx, %r9 #67.9 + andq $63, %r9 #67.9 + testl $3, %r9d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r9d, %r9d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r9d, %r9d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r9d #67.9 + addl $64, %r9d #67.9 + shrl $2, %r9d #67.9 + cmpl %r9d, %r13d #67.9 + cmovl %r13d, %r9d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r13d, %ebx #67.9 + subl %r9d, %ebx #67.9 + andl $7, %ebx #67.9 + negl %ebx #67.9 + addl %r13d, %ebx #67.9 + cmpl $1, %r9d #67.9 + jb ..B1.20 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa32 %ymm17, %ymm4 #67.9 + xorl %r15d, %r15d #67.9 + vpbroadcastd %r9d, %ymm3 #67.9 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm9, %zmm5 #59.23 + vbroadcastsd %xmm10, %zmm6 #60.23 + movslq %r9d, %r14 #67.9 + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.18: # Preds ..B1.18 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd %ymm4, %ymm3, %k5 #67.9 + vpaddd %ymm18, %ymm4, %ymm4 #67.9 + vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 + vmovaps %zmm19, %zmm22 #70.36 + addq $8, %r15 #67.9 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm21 #69.36 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm23 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 + vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 + vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 + vsubpd %zmm22, %zmm5, %zmm0 #70.36 + vsubpd %zmm21, %zmm2, %zmm1 #69.36 + vsubpd %zmm23, %zmm6, %zmm21 #71.36 + vmulpd %zmm0, %zmm0, %zmm20 #72.49 + vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 + vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm31 #75.38 + vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 + vfpclasspd $30, %zmm31, %k0 #75.38 + vmovaps %zmm20, %zmm24 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm24, %zmm24, %zmm25 #75.38 + vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 + vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 + vmulpd %zmm15, %zmm31, %zmm26 #76.38 + vmulpd %zmm14, %zmm31, %zmm28 #77.54 + vmulpd %zmm26, %zmm31, %zmm29 #76.44 + vmulpd %zmm29, %zmm31, %zmm27 #76.50 + vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 + vmulpd %zmm28, %zmm27, %zmm30 #77.61 + vmulpd %zmm31, %zmm30, %zmm24 #77.67 + vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 + vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 + vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 + cmpq %r14, %r15 #67.9 + jb ..B1.18 # Prob 82% #67.9 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.19: # Preds ..B1.18 + # Execution count [4.50e+00] + cmpl %r9d, %r13d #67.9 + je ..B1.26 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 + # Execution count [2.50e+01] + lea 8(%r9), %ecx #67.9 + cmpl %ecx, %ebx #67.9 + jl ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.21: # Preds ..B1.20 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm8, %zmm0 #58.23 + vbroadcastsd %xmm9, %zmm1 #59.23 + vbroadcastsd %xmm10, %zmm2 #60.23 + movslq %r9d, %r14 #67.9 + addq %r11, %rcx #37.5 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.22: # Preds ..B1.22 ..B1.21 + # Execution count [2.50e+01] + vpcmpeqb %xmm0, %xmm0, %k2 #70.36 + addl $8, %r9d #67.9 + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #71.36 + vmovdqu (%rcx,%r14,4), %ymm3 #68.21 + addq $8, %r14 #67.9 + vpxord %zmm5, %zmm5, %zmm5 #70.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm6, %zmm6, %zmm6 #71.36 + vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 + vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 + vsubpd %zmm5, %zmm1, %zmm29 #70.36 + vsubpd %zmm4, %zmm0, %zmm28 #69.36 + vsubpd %zmm6, %zmm2, %zmm31 #71.36 + vmulpd %zmm29, %zmm29, %zmm20 #72.49 + vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 + vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm27 #75.38 + vcmppd $1, %zmm16, %zmm20, %k5 #74.22 + vfpclasspd $30, %zmm27, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm20, %zmm20, %zmm21 #75.38 + vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 + vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 + vmulpd %zmm15, %zmm27, %zmm22 #76.38 + vmulpd %zmm14, %zmm27, %zmm24 #77.54 + vmulpd %zmm22, %zmm27, %zmm25 #76.44 + vmulpd %zmm25, %zmm27, %zmm23 #76.50 + vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 + vmulpd %zmm24, %zmm23, %zmm26 #77.61 + vmulpd %zmm27, %zmm26, %zmm30 #77.67 + vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 + vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 + vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 + cmpl %ebx, %r9d #67.9 + jb ..B1.22 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 + # Execution count [5.00e+00] + lea 1(%rbx), %ecx #67.9 + cmpl %r13d, %ecx #67.9 + ja ..B1.26 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.25: # Preds ..B1.24 + # Execution count [2.50e+01] + imulq %r12, %r8 #56.43 + vbroadcastsd %xmm9, %zmm9 #59.23 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm10, %zmm10 #60.23 + subl %ebx, %r13d #67.9 + addq %r11, %r8 #37.5 + vpbroadcastd %r13d, %ymm0 #67.9 + vpcmpgtd %ymm17, %ymm0, %k5 #67.9 + movslq %ebx, %rbx #67.9 + vmovaps %zmm19, %zmm4 #70.36 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm3 #69.36 + vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm5 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 + vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 + vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 + vsubpd %zmm5, %zmm10, %zmm30 #71.36 + vsubpd %zmm4, %zmm9, %zmm28 #70.36 + vsubpd %zmm3, %zmm2, %zmm27 #69.36 + vmulpd %zmm28, %zmm28, %zmm26 #72.49 + vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 + vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 + vrcp14pd %zmm26, %zmm25 #75.38 + vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 + vfpclasspd $30, %zmm25, %k0 #75.38 + vmovaps %zmm26, %zmm6 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm6, %zmm6, %zmm8 #75.38 + vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 + vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 + vmulpd %zmm15, %zmm25, %zmm20 #76.38 + vmulpd %zmm14, %zmm25, %zmm22 #77.54 + vmulpd %zmm20, %zmm25, %zmm23 #76.44 + vmulpd %zmm23, %zmm25, %zmm21 #76.50 + vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 + vmulpd %zmm22, %zmm21, %zmm24 #77.61 + vmulpd %zmm25, %zmm24, %zmm29 #77.67 + vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 + vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 + vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 + # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 + vpermd %zmm11, %zmm10, %zmm0 #63.22 + vpermd %zmm12, %zmm10, %zmm5 #62.22 + vpermd %zmm13, %zmm10, %zmm21 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm12, %zmm5, %zmm12 #62.22 + vaddpd %zmm13, %zmm21, %zmm13 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm12, %zmm6 #62.22 + vpermpd $78, %zmm13, %zmm22 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm6, %zmm12, %zmm8 #62.22 + vaddpd %zmm22, %zmm13, %zmm23 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm8, %zmm9 #62.22 + vpermpd $177, %zmm23, %zmm24 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm9, %zmm8, %zmm20 #62.22 + vaddpd %zmm24, %zmm23, %zmm25 #61.22 + # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.27: # Preds ..B1.26 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + movq -16(%rsp), %rbx #85.9[spill] + movslq %r10d, %r8 #55.32 + incq %r8 #55.32 + vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%r10,8) #84.9 + vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 + vmovsd %xmm1, (%rbx,%r10,8) #85.9 + vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%rdi,%r10,8) #86.9 + incq %r10 #55.5 + cmpq -32(%rsp), %r10 #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.28: # Preds ..B1.27 + # Execution count [9.00e-01] + movq -40(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -48(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r15 +..B1.30: # Preds ..B1.1 ..B1.28 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 14 + popq %r14 #93.12 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 32 + .cfi_offset 3, -80 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -32 + .cfi_offset 15, -72 + # LOE +..B1.31: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r13d, %ebx #67.9 + xorl %r9d, %r9d #67.9 + andl $-8, %ebx #67.9 + jmp ..B1.20 # Prob 100% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.32: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %ebx, %ebx #67.9 + jmp ..B1.24 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.5: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/force_soa_lt1200_markers.s b/asm/force_soa_lt1200_markers.s new file mode 100644 index 0000000..d4c6367 --- /dev/null +++ b/asm/force_soa_lt1200_markers.s @@ -0,0 +1,475 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; +# mark_description "e=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r14 #35.1 + .cfi_def_cfa_offset 32 + .cfi_offset 14, -32 + movl 4(%rsi), %r9d #36.18 + vmovsd 72(%rdi), %xmm2 #38.27 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movq 64(%rsi), %r13 #41.20 + movq 72(%rsi), %r14 #41.45 + movq 80(%rsi), %rdi #41.70 + testl %r9d, %r9d #44.24 + jle ..B1.30 # Prob 50% #44.24 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + xorl %r10d, %r10d #44.5 + movl %r9d, %ecx #44.5 + xorl %r8d, %r8d #44.5 + movl $1, %r11d #44.5 + xorl %eax, %eax #45.17 + shrl $1, %ecx #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] + movq %rax, (%r8,%r13) #45.9 + incq %r10 #44.5 + movq %rax, (%r8,%r14) #46.9 + movq %rax, (%r8,%rdi) #47.9 + movq %rax, 8(%r8,%r13) #45.9 + movq %rax, 8(%r8,%r14) #46.9 + movq %rax, 8(%r8,%rdi) #47.9 + addq $16, %r8 #44.5 + cmpq %rcx, %r10 #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%r10,%r10), %r11d #45.9 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r11), %ecx #44.5 + cmpl %r9d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r11d, %r11 #44.5 + movq %rax, -8(%r13,%r11,8) #45.9 + movq %rax, -8(%r14,%r11,8) #46.9 + movq %rax, -8(%rdi,%r11,8) #47.9 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm15 #38.45 + xorl %r8d, %r8d #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 + vbroadcastsd %xmm15, %zmm16 #38.25 + vbroadcastsd %xmm1, %zmm15 #39.21 + vbroadcastsd %xmm0, %zmm14 #77.41 + movslq %r9d, %r9 #55.5 + xorl %r10d, %r10d #55.5 + movq 24(%rdx), %rcx #57.25 + movq 8(%rdx), %r11 #56.19 + movslq 16(%rdx), %r12 #56.43 + movq 16(%rsi), %rdx #58.25 + movq 24(%rsi), %rax #59.25 + movq 32(%rsi), %rsi #60.25 + shlq $2, %r12 #37.5 + movq %r9, -32(%rsp) #60.25[spill] + movq %rcx, -24(%rsp) #60.25[spill] + movq %r14, -16(%rsp) #60.25[spill] + movq %r13, -8(%rsp) #60.25[spill] + movq %r15, -40(%rsp) #60.25[spill] + movq %rbx, -48(%rsp) #60.25[spill] + vpxord %zmm19, %zmm19, %zmm19 #61.22 + .cfi_offset 3, -80 + .cfi_offset 15, -72 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.9: # Preds ..B1.27 ..B1.8 + # Execution count [5.00e+00] + movq -24(%rsp), %rcx #57.25[spill] + vxorpd %xmm25, %xmm25, %xmm25 #61.22 + vmovapd %xmm25, %xmm20 #62.22 + movl (%rcx,%r10,4), %r13d #57.25 + vmovapd %xmm20, %xmm4 #63.22 + vmovsd (%rdx,%r10,8), %xmm8 #58.25 + vmovsd (%rax,%r10,8), %xmm9 #59.25 + vmovsd (%rsi,%r10,8), %xmm10 #60.25 + testl %r13d, %r13d #67.28 + jle ..B1.27 # Prob 50% #67.28 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vmovaps %zmm19, %zmm13 #61.22 + vmovaps %zmm13, %zmm12 #62.22 + vmovaps %zmm12, %zmm11 #63.22 + cmpl $8, %r13d #67.9 + jl ..B1.32 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r13d #67.9 + jl ..B1.31 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + addq %r11, %rcx #37.5 + movq %rcx, %r9 #67.9 + andq $63, %r9 #67.9 + testl $3, %r9d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r9d, %r9d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r9d, %r9d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r9d #67.9 + addl $64, %r9d #67.9 + shrl $2, %r9d #67.9 + cmpl %r9d, %r13d #67.9 + cmovl %r13d, %r9d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r13d, %ebx #67.9 + subl %r9d, %ebx #67.9 + andl $7, %ebx #67.9 + negl %ebx #67.9 + addl %r13d, %ebx #67.9 + cmpl $1, %r9d #67.9 + jb ..B1.20 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa32 %ymm17, %ymm4 #67.9 + xorl %r15d, %r15d #67.9 + vpbroadcastd %r9d, %ymm3 #67.9 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm9, %zmm5 #59.23 + vbroadcastsd %xmm10, %zmm6 #60.23 + movslq %r9d, %r14 #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.18: # Preds ..B1.18 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd %ymm4, %ymm3, %k5 #67.9 + vpaddd %ymm18, %ymm4, %ymm4 #67.9 + vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 + vmovaps %zmm19, %zmm22 #70.36 + addq $8, %r15 #67.9 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm21 #69.36 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm23 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 + vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 + vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 + vsubpd %zmm22, %zmm5, %zmm0 #70.36 + vsubpd %zmm21, %zmm2, %zmm1 #69.36 + vsubpd %zmm23, %zmm6, %zmm21 #71.36 + vmulpd %zmm0, %zmm0, %zmm20 #72.49 + vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 + vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm31 #75.38 + vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 + vfpclasspd $30, %zmm31, %k0 #75.38 + vmovaps %zmm20, %zmm24 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm24, %zmm24, %zmm25 #75.38 + vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 + vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 + vmulpd %zmm15, %zmm31, %zmm26 #76.38 + vmulpd %zmm14, %zmm31, %zmm28 #77.54 + vmulpd %zmm26, %zmm31, %zmm29 #76.44 + vmulpd %zmm29, %zmm31, %zmm27 #76.50 + vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 + vmulpd %zmm28, %zmm27, %zmm30 #77.61 + vmulpd %zmm31, %zmm30, %zmm24 #77.67 + vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 + vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 + vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 + cmpq %r14, %r15 #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.19: # Preds ..B1.18 + # Execution count [4.50e+00] + cmpl %r9d, %r13d #67.9 + je ..B1.26 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 + # Execution count [2.50e+01] + lea 8(%r9), %ecx #67.9 + cmpl %ecx, %ebx #67.9 + jl ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.21: # Preds ..B1.20 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm8, %zmm0 #58.23 + vbroadcastsd %xmm9, %zmm1 #59.23 + vbroadcastsd %xmm10, %zmm2 #60.23 + movslq %r9d, %r14 #67.9 + addq %r11, %rcx #37.5 + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.22: # Preds ..B1.22 ..B1.21 + # Execution count [2.50e+01] + vpcmpeqb %xmm0, %xmm0, %k2 #70.36 + addl $8, %r9d #67.9 + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #71.36 + vmovdqu (%rcx,%r14,4), %ymm3 #68.21 + addq $8, %r14 #67.9 + vpxord %zmm5, %zmm5, %zmm5 #70.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm6, %zmm6, %zmm6 #71.36 + vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 + vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 + vsubpd %zmm5, %zmm1, %zmm29 #70.36 + vsubpd %zmm4, %zmm0, %zmm28 #69.36 + vsubpd %zmm6, %zmm2, %zmm31 #71.36 + vmulpd %zmm29, %zmm29, %zmm20 #72.49 + vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 + vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm27 #75.38 + vcmppd $1, %zmm16, %zmm20, %k5 #74.22 + vfpclasspd $30, %zmm27, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm20, %zmm20, %zmm21 #75.38 + vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 + vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 + vmulpd %zmm15, %zmm27, %zmm22 #76.38 + vmulpd %zmm14, %zmm27, %zmm24 #77.54 + vmulpd %zmm22, %zmm27, %zmm25 #76.44 + vmulpd %zmm25, %zmm27, %zmm23 #76.50 + vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 + vmulpd %zmm24, %zmm23, %zmm26 #77.61 + vmulpd %zmm27, %zmm26, %zmm30 #77.67 + vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 + vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 + vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 + cmpl %ebx, %r9d #67.9 + jb ..B1.22 # Prob 82% #67.9 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 + # Execution count [5.00e+00] + lea 1(%rbx), %ecx #67.9 + cmpl %r13d, %ecx #67.9 + ja ..B1.26 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.25: # Preds ..B1.24 + # Execution count [2.50e+01] + imulq %r12, %r8 #56.43 + vbroadcastsd %xmm9, %zmm9 #59.23 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm10, %zmm10 #60.23 + subl %ebx, %r13d #67.9 + addq %r11, %r8 #37.5 + vpbroadcastd %r13d, %ymm0 #67.9 + vpcmpgtd %ymm17, %ymm0, %k5 #67.9 + movslq %ebx, %rbx #67.9 + vmovaps %zmm19, %zmm4 #70.36 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm3 #69.36 + vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm5 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 + vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 + vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 + vsubpd %zmm5, %zmm10, %zmm30 #71.36 + vsubpd %zmm4, %zmm9, %zmm28 #70.36 + vsubpd %zmm3, %zmm2, %zmm27 #69.36 + vmulpd %zmm28, %zmm28, %zmm26 #72.49 + vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 + vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 + vrcp14pd %zmm26, %zmm25 #75.38 + vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 + vfpclasspd $30, %zmm25, %k0 #75.38 + vmovaps %zmm26, %zmm6 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm6, %zmm6, %zmm8 #75.38 + vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 + vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 + vmulpd %zmm15, %zmm25, %zmm20 #76.38 + vmulpd %zmm14, %zmm25, %zmm22 #77.54 + vmulpd %zmm20, %zmm25, %zmm23 #76.44 + vmulpd %zmm23, %zmm25, %zmm21 #76.50 + vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 + vmulpd %zmm22, %zmm21, %zmm24 #77.61 + vmulpd %zmm25, %zmm24, %zmm29 #77.67 + vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 + vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 + vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 + # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 + vpermd %zmm11, %zmm10, %zmm0 #63.22 + vpermd %zmm12, %zmm10, %zmm5 #62.22 + vpermd %zmm13, %zmm10, %zmm21 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm12, %zmm5, %zmm12 #62.22 + vaddpd %zmm13, %zmm21, %zmm13 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm12, %zmm6 #62.22 + vpermpd $78, %zmm13, %zmm22 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm6, %zmm12, %zmm8 #62.22 + vaddpd %zmm22, %zmm13, %zmm23 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm8, %zmm9 #62.22 + vpermpd $177, %zmm23, %zmm24 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm9, %zmm8, %zmm20 #62.22 + vaddpd %zmm24, %zmm23, %zmm25 #61.22 + # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.27: # Preds ..B1.26 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + movq -16(%rsp), %rbx #85.9[spill] + movslq %r10d, %r8 #55.32 + incq %r8 #55.32 + vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%r10,8) #84.9 + vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 + vmovsd %xmm1, (%rbx,%r10,8) #85.9 + vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%rdi,%r10,8) #86.9 + incq %r10 #55.5 + cmpq -32(%rsp), %r10 #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.28: # Preds ..B1.27 + # Execution count [9.00e-01] + movq -40(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -48(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r15 +..B1.30: # Preds ..B1.1 ..B1.28 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 14 + popq %r14 #93.12 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 32 + .cfi_offset 3, -80 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -32 + .cfi_offset 15, -72 + # LOE +..B1.31: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r13d, %ebx #67.9 + xorl %r9d, %r9d #67.9 + andl $-8, %ebx #67.9 + jmp ..B1.20 # Prob 100% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.32: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %ebx, %ebx #67.9 + jmp ..B1.24 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.5: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/force_soa_lt8_markers.s b/asm/force_soa_lt8_markers.s new file mode 100644 index 0000000..e3cdc87 --- /dev/null +++ b/asm/force_soa_lt8_markers.s @@ -0,0 +1,475 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; +# mark_description "e=high -o ICC/force.s"; + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +# parameter 4: %ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + pushq %r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r14 #35.1 + .cfi_def_cfa_offset 32 + .cfi_offset 14, -32 + movl 4(%rsi), %r9d #36.18 + vmovsd 72(%rdi), %xmm2 #38.27 + vmovsd 8(%rdi), %xmm1 #39.23 + vmovsd (%rdi), %xmm0 #40.24 + movq 64(%rsi), %r13 #41.20 + movq 72(%rsi), %r14 #41.45 + movq 80(%rsi), %rdi #41.70 + testl %r9d, %r9d #44.24 + jle ..B1.30 # Prob 50% #44.24 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + xorl %r10d, %r10d #44.5 + movl %r9d, %ecx #44.5 + xorl %r8d, %r8d #44.5 + movl $1, %r11d #44.5 + xorl %eax, %eax #45.17 + shrl $1, %ecx #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] + movq %rax, (%r8,%r13) #45.9 + incq %r10 #44.5 + movq %rax, (%r8,%r14) #46.9 + movq %rax, (%r8,%rdi) #47.9 + movq %rax, 8(%r8,%r13) #45.9 + movq %rax, 8(%r8,%r14) #46.9 + movq %rax, 8(%r8,%rdi) #47.9 + addq $16, %r8 #44.5 + cmpq %rcx, %r10 #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%r10,%r10), %r11d #45.9 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r11), %ecx #44.5 + cmpl %r9d, %ecx #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r11d, %r11 #44.5 + movq %rax, -8(%r13,%r11,8) #45.9 + movq %rax, -8(%r14,%r11,8) #46.9 + movq %rax, -8(%rdi,%r11,8) #47.9 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd %xmm2, %xmm2, %xmm15 #38.45 + xorl %r8d, %r8d #55.15 + vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 + vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 + vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 + vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 + vbroadcastsd %xmm15, %zmm16 #38.25 + vbroadcastsd %xmm1, %zmm15 #39.21 + vbroadcastsd %xmm0, %zmm14 #77.41 + movslq %r9d, %r9 #55.5 + xorl %r10d, %r10d #55.5 + movq 24(%rdx), %rcx #57.25 + movq 8(%rdx), %r11 #56.19 + movslq 16(%rdx), %r12 #56.43 + movq 16(%rsi), %rdx #58.25 + movq 24(%rsi), %rax #59.25 + movq 32(%rsi), %rsi #60.25 + shlq $2, %r12 #37.5 + movq %r9, -32(%rsp) #60.25[spill] + movq %rcx, -24(%rsp) #60.25[spill] + movq %r14, -16(%rsp) #60.25[spill] + movq %r13, -8(%rsp) #60.25[spill] + movq %r15, -40(%rsp) #60.25[spill] + movq %rbx, -48(%rsp) #60.25[spill] + vpxord %zmm19, %zmm19, %zmm19 #61.22 + .cfi_offset 3, -80 + .cfi_offset 15, -72 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.9: # Preds ..B1.27 ..B1.8 + # Execution count [5.00e+00] + movq -24(%rsp), %rcx #57.25[spill] + vxorpd %xmm25, %xmm25, %xmm25 #61.22 + vmovapd %xmm25, %xmm20 #62.22 + movl (%rcx,%r10,4), %r13d #57.25 + vmovapd %xmm20, %xmm4 #63.22 + vmovsd (%rdx,%r10,8), %xmm8 #58.25 + vmovsd (%rax,%r10,8), %xmm9 #59.25 + vmovsd (%rsi,%r10,8), %xmm10 #60.25 + testl %r13d, %r13d #67.28 + jle ..B1.27 # Prob 50% #67.28 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] + vmovaps %zmm19, %zmm13 #61.22 + vmovaps %zmm13, %zmm12 #62.22 + vmovaps %zmm12, %zmm11 #63.22 + cmpl $8, %r13d #67.9 + jl ..B1.32 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] + cmpl $1200, %r13d #67.9 + jl ..B1.31 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + addq %r11, %rcx #37.5 + movq %rcx, %r9 #67.9 + andq $63, %r9 #67.9 + testl $3, %r9d #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xorl %r9d, %r9d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + testl %r9d, %r9d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + negl %r9d #67.9 + addl $64, %r9d #67.9 + shrl $2, %r9d #67.9 + cmpl %r9d, %r13d #67.9 + cmovl %r13d, %r9d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + movl %r13d, %ebx #67.9 + subl %r9d, %ebx #67.9 + andl $7, %ebx #67.9 + negl %ebx #67.9 + addl %r13d, %ebx #67.9 + cmpl $1, %r9d #67.9 + jb ..B1.20 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa32 %ymm17, %ymm4 #67.9 + xorl %r15d, %r15d #67.9 + vpbroadcastd %r9d, %ymm3 #67.9 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm9, %zmm5 #59.23 + vbroadcastsd %xmm10, %zmm6 #60.23 + movslq %r9d, %r14 #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.18: # Preds ..B1.18 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd %ymm4, %ymm3, %k5 #67.9 + vpaddd %ymm18, %ymm4, %ymm4 #67.9 + vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 + vmovaps %zmm19, %zmm22 #70.36 + addq $8, %r15 #67.9 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm21 #69.36 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm23 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 + vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 + vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 + vsubpd %zmm22, %zmm5, %zmm0 #70.36 + vsubpd %zmm21, %zmm2, %zmm1 #69.36 + vsubpd %zmm23, %zmm6, %zmm21 #71.36 + vmulpd %zmm0, %zmm0, %zmm20 #72.49 + vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 + vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm31 #75.38 + vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 + vfpclasspd $30, %zmm31, %k0 #75.38 + vmovaps %zmm20, %zmm24 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm24, %zmm24, %zmm25 #75.38 + vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 + vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 + vmulpd %zmm15, %zmm31, %zmm26 #76.38 + vmulpd %zmm14, %zmm31, %zmm28 #77.54 + vmulpd %zmm26, %zmm31, %zmm29 #76.44 + vmulpd %zmm29, %zmm31, %zmm27 #76.50 + vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 + vmulpd %zmm28, %zmm27, %zmm30 #77.61 + vmulpd %zmm31, %zmm30, %zmm24 #77.67 + vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 + vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 + vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 + cmpq %r14, %r15 #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.19: # Preds ..B1.18 + # Execution count [4.50e+00] + cmpl %r9d, %r13d #67.9 + je ..B1.26 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 + # Execution count [2.50e+01] + lea 8(%r9), %ecx #67.9 + cmpl %ecx, %ebx #67.9 + jl ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.21: # Preds ..B1.20 + # Execution count [4.50e+00] + movq %r12, %rcx #56.43 + imulq %r8, %rcx #56.43 + vbroadcastsd %xmm8, %zmm0 #58.23 + vbroadcastsd %xmm9, %zmm1 #59.23 + vbroadcastsd %xmm10, %zmm2 #60.23 + movslq %r9d, %r14 #67.9 + addq %r11, %rcx #37.5 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.22: # Preds ..B1.22 ..B1.21 + # Execution count [2.50e+01] + vpcmpeqb %xmm0, %xmm0, %k2 #70.36 + addl $8, %r9d #67.9 + vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + vpcmpeqb %xmm0, %xmm0, %k3 #71.36 + vmovdqu (%rcx,%r14,4), %ymm3 #68.21 + addq $8, %r14 #67.9 + vpxord %zmm5, %zmm5, %zmm5 #70.36 + vpxord %zmm4, %zmm4, %zmm4 #69.36 + vpxord %zmm6, %zmm6, %zmm6 #71.36 + vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 + vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 + vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 + vsubpd %zmm5, %zmm1, %zmm29 #70.36 + vsubpd %zmm4, %zmm0, %zmm28 #69.36 + vsubpd %zmm6, %zmm2, %zmm31 #71.36 + vmulpd %zmm29, %zmm29, %zmm20 #72.49 + vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 + vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 + vrcp14pd %zmm20, %zmm27 #75.38 + vcmppd $1, %zmm16, %zmm20, %k5 #74.22 + vfpclasspd $30, %zmm27, %k0 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm20, %zmm20, %zmm21 #75.38 + vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 + vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 + vmulpd %zmm15, %zmm27, %zmm22 #76.38 + vmulpd %zmm14, %zmm27, %zmm24 #77.54 + vmulpd %zmm22, %zmm27, %zmm25 #76.44 + vmulpd %zmm25, %zmm27, %zmm23 #76.50 + vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 + vmulpd %zmm24, %zmm23, %zmm26 #77.61 + vmulpd %zmm27, %zmm26, %zmm30 #77.67 + vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 + vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 + vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 + cmpl %ebx, %r9d #67.9 + jb ..B1.22 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 + # Execution count [5.00e+00] + lea 1(%rbx), %ecx #67.9 + cmpl %r13d, %ecx #67.9 + ja ..B1.26 # Prob 50% #67.9 + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.25: # Preds ..B1.24 + # Execution count [2.50e+01] + imulq %r12, %r8 #56.43 + vbroadcastsd %xmm9, %zmm9 #59.23 + vbroadcastsd %xmm8, %zmm2 #58.23 + vbroadcastsd %xmm10, %zmm10 #60.23 + subl %ebx, %r13d #67.9 + addq %r11, %r8 #37.5 + vpbroadcastd %r13d, %ymm0 #67.9 + vpcmpgtd %ymm17, %ymm0, %k5 #67.9 + movslq %ebx, %rbx #67.9 + vmovaps %zmm19, %zmm4 #70.36 + kmovw %k5, %k2 #70.36 + vmovaps %zmm19, %zmm3 #69.36 + vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 + kmovw %k5, %k1 #69.36 + vmovaps %zmm19, %zmm5 #71.36 + kmovw %k5, %k3 #71.36 + vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 + vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 + vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 + vsubpd %zmm5, %zmm10, %zmm30 #71.36 + vsubpd %zmm4, %zmm9, %zmm28 #70.36 + vsubpd %zmm3, %zmm2, %zmm27 #69.36 + vmulpd %zmm28, %zmm28, %zmm26 #72.49 + vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 + vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 + vrcp14pd %zmm26, %zmm25 #75.38 + vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 + vfpclasspd $30, %zmm25, %k0 #75.38 + vmovaps %zmm26, %zmm6 #75.38 + vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 + knotw %k0, %k4 #75.38 + vmulpd %zmm6, %zmm6, %zmm8 #75.38 + vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 + vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 + vmulpd %zmm15, %zmm25, %zmm20 #76.38 + vmulpd %zmm14, %zmm25, %zmm22 #77.54 + vmulpd %zmm20, %zmm25, %zmm23 #76.44 + vmulpd %zmm23, %zmm25, %zmm21 #76.50 + vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 + vmulpd %zmm22, %zmm21, %zmm24 #77.61 + vmulpd %zmm25, %zmm24, %zmm29 #77.67 + vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 + vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 + vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 + # Execution count [4.50e+00] + vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 + vpermd %zmm11, %zmm10, %zmm0 #63.22 + vpermd %zmm12, %zmm10, %zmm5 #62.22 + vpermd %zmm13, %zmm10, %zmm21 #61.22 + vaddpd %zmm11, %zmm0, %zmm11 #63.22 + vaddpd %zmm12, %zmm5, %zmm12 #62.22 + vaddpd %zmm13, %zmm21, %zmm13 #61.22 + vpermpd $78, %zmm11, %zmm1 #63.22 + vpermpd $78, %zmm12, %zmm6 #62.22 + vpermpd $78, %zmm13, %zmm22 #61.22 + vaddpd %zmm1, %zmm11, %zmm2 #63.22 + vaddpd %zmm6, %zmm12, %zmm8 #62.22 + vaddpd %zmm22, %zmm13, %zmm23 #61.22 + vpermpd $177, %zmm2, %zmm3 #63.22 + vpermpd $177, %zmm8, %zmm9 #62.22 + vpermpd $177, %zmm23, %zmm24 #61.22 + vaddpd %zmm3, %zmm2, %zmm4 #63.22 + vaddpd %zmm9, %zmm8, %zmm20 #62.22 + vaddpd %zmm24, %zmm23, %zmm25 #61.22 + # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.27: # Preds ..B1.26 ..B1.9 + # Execution count [5.00e+00] + movq -8(%rsp), %rcx #84.9[spill] + movq -16(%rsp), %rbx #85.9[spill] + movslq %r10d, %r8 #55.32 + incq %r8 #55.32 + vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 + vmovsd %xmm0, (%rcx,%r10,8) #84.9 + vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 + vmovsd %xmm1, (%rbx,%r10,8) #85.9 + vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 + vmovsd %xmm2, (%rdi,%r10,8) #86.9 + incq %r10 #55.5 + cmpq -32(%rsp), %r10 #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.28: # Preds ..B1.27 + # Execution count [9.00e-01] + movq -40(%rsp), %r15 #[spill] + .cfi_restore 15 + movq -48(%rsp), %rbx #[spill] + .cfi_restore 3 + # LOE rbx rbp r15 +..B1.30: # Preds ..B1.1 ..B1.28 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd %xmm0, %xmm0, %xmm0 #93.12 + .cfi_restore 14 + popq %r14 #93.12 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + popq %r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + popq %r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 32 + .cfi_offset 3, -80 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -32 + .cfi_offset 15, -72 + # LOE +..B1.31: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + movl %r13d, %ebx #67.9 + xorl %r9d, %r9d #67.9 + andl $-8, %ebx #67.9 + jmp ..B1.20 # Prob 100% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.32: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xorl %ebx, %ebx #67.9 + jmp ..B1.24 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.5: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,8 + .data + .section .note.GNU-stack, "" +# End From 11b2d4bcc1b613af101706e05075a7f4c040d202 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 29 Apr 2021 17:57:37 +0200 Subject: [PATCH 14/32] Update results for arch_analysis and stub script Signed-off-by: Rafael Ravedutti --- arch_analysis/iaca_force_aos_geq1200.txt | 79 +++ ...orce_soa.txt => iaca_force_aos_lt1200.txt} | 0 arch_analysis/iaca_force_aos_lt8.txt | 82 ++++ arch_analysis/iaca_force_soa_geq1200.txt | 74 +++ arch_analysis/iaca_force_soa_lt1200.txt | 72 +++ arch_analysis/iaca_force_soa_lt8.txt | 78 +++ arch_analysis/osaca_force_aos_geq1200.txt | 80 ++++ ...rce_soa.txt => osaca_force_aos_lt1200.txt} | 0 arch_analysis/osaca_force_aos_lt8.txt | 91 ++++ arch_analysis/osaca_force_soa_geq1200.txt | 71 +++ arch_analysis/osaca_force_soa_lt1200.txt | 69 +++ arch_analysis/osaca_force_soa_lt8.txt | 79 +++ scripts/results_aos_medusa.txt | 450 ++++++++++++++++++ scripts/results_aos_skylakesp2.txt | 450 ++++++++++++++++++ scripts/results_soa_skylakesp2.txt | 450 ++++++++++++++++++ scripts/run_stub.sh | 2 +- src/main-stub.c | 2 +- 17 files changed, 2127 insertions(+), 2 deletions(-) create mode 100644 arch_analysis/iaca_force_aos_geq1200.txt rename arch_analysis/{iaca_output_force_soa.txt => iaca_force_aos_lt1200.txt} (100%) create mode 100644 arch_analysis/iaca_force_aos_lt8.txt create mode 100644 arch_analysis/iaca_force_soa_geq1200.txt create mode 100644 arch_analysis/iaca_force_soa_lt1200.txt create mode 100644 arch_analysis/iaca_force_soa_lt8.txt create mode 100644 arch_analysis/osaca_force_aos_geq1200.txt rename arch_analysis/{osaca_output_force_soa.txt => osaca_force_aos_lt1200.txt} (100%) create mode 100644 arch_analysis/osaca_force_aos_lt8.txt create mode 100644 arch_analysis/osaca_force_soa_geq1200.txt create mode 100644 arch_analysis/osaca_force_soa_lt1200.txt create mode 100644 arch_analysis/osaca_force_soa_lt8.txt create mode 100644 scripts/results_aos_medusa.txt create mode 100644 scripts/results_aos_skylakesp2.txt create mode 100644 scripts/results_soa_skylakesp2.txt diff --git a/arch_analysis/iaca_force_aos_geq1200.txt b/arch_analysis/iaca_force_aos_geq1200.txt new file mode 100644 index 0000000..a10a778 --- /dev/null +++ b/arch_analysis/iaca_force_aos_geq1200.txt @@ -0,0 +1,79 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_aos_geq1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_aos_geq1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 33.05 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 20.0 0.0 | 4.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 4.5 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm2, ymm3 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm17{k3}{z}, ymmword ptr [r15+r13*4] +| 1 | 1.0 | | | | | | | | kmovw r9d, k3 +| 1 | | 1.0 | | | | | | | vpaddd ymm18, ymm17, ymm17 +| 1 | | 1.0 | | | | | | | vpaddd ymm17, ymm17, ymm18 +| 1 | 1.0 | | | | | | | | kmovw k1, k3 +| 1 | 1.0 | | | | | | | | kmovw k2, k3 +| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 +| 1* | | | | | | | | | vpxord zmm19, zmm19, zmm19 +| 1* | | | | | | | | | vpxord zmm20, zmm20, zmm20 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k1, zmmword ptr [rdi+ymm17*8+0x10] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm19, k2, zmmword ptr [rdi+ymm17*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm20, k3, zmmword ptr [rdi+ymm17*8] +| 1 | | 0.5 | | | | | 0.5 | | add r13, 0x8 +| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm16 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm29, zmm4, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm27, zmm0, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm1, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm27, zmm27 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm26, zmm26 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm29, zmm29 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm24, zmm25 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm25, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm24, 0x1e +| 1 | 1.0 | | | | | | | | kmovw edx, k2 +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1* | | | | | | | | | vmovaps zmm17, zmm25 +| 1 | | | | | | | 1.0 | | and r9d, edx +| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm17, zmm24, qword ptr [rip]{1to8} +| 1 | | | | | | 1.0 | | | kmovw k3, r9d +| 1 | 1.0 | | | | | | | | vmulpd zmm18, zmm17, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm17, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm18, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm24, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm24, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm24, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm24, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm24, zmm22, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm23, zmm20, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm28, zmm23, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm28, zmm26 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm28, zmm27 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm28, zmm29 +| 1* | | | | | | | | | cmp r13, rbx +| 0*F | | | | | | | | | jb 0xfffffffffffffef7 +Total Num Of Uops: 60 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/iaca_output_force_soa.txt b/arch_analysis/iaca_force_aos_lt1200.txt similarity index 100% rename from arch_analysis/iaca_output_force_soa.txt rename to arch_analysis/iaca_force_aos_lt1200.txt diff --git a/arch_analysis/iaca_force_aos_lt8.txt b/arch_analysis/iaca_force_aos_lt8.txt new file mode 100644 index 0000000..973db7c --- /dev/null +++ b/arch_analysis/iaca_force_aos_lt8.txt @@ -0,0 +1,82 @@ +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_aos_lt8_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 69.79 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 21.0 0.0 | 5.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 21.0 | 5.5 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | 1.0 | | | | | | | imul rcx, r8 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm4, xmm6 +| 1 | | | | | | | 1.0 | | sub r11d, r14d +| 1 | | 0.5 | | | | | 0.5 | | add rcx, r10 +| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r11d +| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm0, ymm15 +| 1 | | 0.5 | | | | | 0.5 | | movsxd r14, r14d +| 1 | 1.0 | | | | | | | | kmovw ebx, k3 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k3}{z}, ymmword ptr [rcx+r14*4] +| 1 | | 1.0 | | | | | | | vpaddd ymm2, ymm1, ymm1 +| 1 | | 1.0 | | | | | | | vpaddd ymm0, ymm1, ymm2 +| 1 | 1.0 | | | | | | | | kmovw k1, k3 +| 1 | 1.0 | | | | | | | | kmovw k2, k3 +| 1* | | | | | | | | | vpxord zmm1, zmm1, zmm1 +| 1* | | | | | | | | | vpxord zmm2, zmm2, zmm2 +| 1* | | | | | | | | | vpxord zmm3, zmm3, zmm3 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm1, k1, zmmword ptr [rdi+ymm0*8+0x10] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm2, k2, zmmword ptr [rdi+ymm0*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k3, zmmword ptr [rdi+ymm0*8] +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm7, xmm7 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm12, xmm12 +| 1 | 1.0 | | | | | | | | vsubpd zmm23, zmm12, zmm1 +| 1 | 1.0 | | | | | | | | vsubpd zmm21, zmm7, zmm2 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm20, zmm4, zmm3 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm21, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm20, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm23, zmm23 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm18, zmm19 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm19, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm18, 0x1e +| 1 | 1.0 | | | | | | | | kmovw ecx, k2 +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1* | | | | | | | | | vmovaps zmm0, zmm19 +| 1 | | 0.5 | | | | | 0.5 | | and ebx, ecx +| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm0, zmm18, qword ptr [rip]{1to8} +| 1 | | | | | | 1.0 | | | kmovw k3, ebx +| 1 | 1.0 | | | | | | | | vmulpd zmm1, zmm0, zmm0 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm0, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm1, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm2, zmm18, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm4, zmm18, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm6, zmm18, zmm2 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm18, zmm6 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm18, zmm6, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm3, zmm4 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm17, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm22, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm22, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm22, zmm23 +Total Num Of Uops: 65 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_geq1200.txt b/arch_analysis/iaca_force_soa_geq1200.txt new file mode 100644 index 0000000..1deb2bc --- /dev/null +++ b/arch_analysis/iaca_force_soa_geq1200.txt @@ -0,0 +1,74 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_geq1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_geq1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 31.47 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 18.0 0.0 | 3.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 3.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm3, ymm4 +| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm4, ymm18 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm20{k5}{z}, ymmword ptr [rcx+r15*4] +| 1* | | | | | | | | | vmovaps zmm22, zmm19 +| 1 | | 1.0 | | | | | | | add r15, 0x8 +| 1 | 1.0 | | | | | | | | kmovw k2, k5 +| 1* | | | | | | | | | vmovaps zmm21, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k1, k5 +| 1* | | | | | | | | | vmovaps zmm23, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k3, k5 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm23, k3, zmmword ptr [rsi+ymm20*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm22, k2, zmmword ptr [rax+ymm20*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm21, k1, zmmword ptr [rdx+ymm20*8] +| 1 | | | | | | 1.0 | | | vsubpd zmm0, zmm5, zmm22 +| 1 | | | | | | 1.0 | | | vsubpd zmm1, zmm2, zmm21 +| 1 | | | | | | 1.0 | | | vsubpd zmm21, zmm6, zmm23 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm0, zmm0 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm1, zmm1 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm21, zmm21 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm31, zmm20 +| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm20, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm31, 0x1e +| 1* | | | | | | | | | vmovaps zmm24, zmm20 +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm24, zmm31, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm24, zmm24 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm31{k4}, zmm24, zmm31 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm31{k4}, zmm25, zmm31 +| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm31, zmm15 +| 1 | 1.0 | | | | | | | | vmulpd zmm28, zmm31, zmm14 +| 1 | | | | | | 1.0 | | | vmulpd zmm29, zmm31, zmm26 +| 1 | 1.0 | | | | | | | | vmulpd zmm27, zmm31, zmm29 +| 1 | | | | | | 1.0 | | | vfmsub213pd zmm31, zmm29, zmm7 +| 1 | 1.0 | | | | | | | | vmulpd zmm30, zmm27, zmm28 +| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm30, zmm31 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k6}, zmm24, zmm1 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k6}, zmm24, zmm0 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k6}, zmm24, zmm21 +| 1* | | | | | | | | | cmp r15, r14 +| 0*F | | | | | | | | | jb 0xffffffffffffff19 +Total Num Of Uops: 55 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_lt1200.txt b/arch_analysis/iaca_force_soa_lt1200.txt new file mode 100644 index 0000000..38f7014 --- /dev/null +++ b/arch_analysis/iaca_force_soa_lt1200.txt @@ -0,0 +1,72 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_lt1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 30.25 Cycles Throughput Bottleneck: Backend +Loop Count: 23 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 16.0 0.0 | 2.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 19.0 | 3.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 +| 1 | | 1.0 | | | | | | | add r9d, 0x8 +| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 +| 1 | | | 1.0 1.0 | | | | | | vmovdqu ymm3, ymmword ptr [rcx+r14*4] +| 1 | | 1.0 | | | | | | | add r14, 0x8 +| 1* | | | | | | | | | vpxord zmm5, zmm5, zmm5 +| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 +| 1* | | | | | | | | | vpxord zmm6, zmm6, zmm6 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm5, k2, zmmword ptr [rax+ymm3*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdx+ymm3*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm6, k3, zmmword ptr [rsi+ymm3*8] +| 1 | | | | | | 1.0 | | | vsubpd zmm29, zmm1, zmm5 +| 1 | 1.0 | | | | | | | | vsubpd zmm28, zmm0, zmm4 +| 1 | | | | | | 1.0 | | | vsubpd zmm31, zmm2, zmm6 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm29, zmm29 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm28, zmm28 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm31, zmm31 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm27, zmm20 +| 1 | | | | | | 1.0 | | | vcmppd k5, zmm20, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm27, 0x1e +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm20, zmm27, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm20, zmm20 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm27{k4}, zmm20, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm27{k4}, zmm21, zmm27 +| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm27, zmm15 +| 1 | 1.0 | | | | | | | | vmulpd zmm24, zmm27, zmm14 +| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm27, zmm22 +| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm27, zmm25 +| 1 | | | | | | 1.0 | | | vfmsub213pd zmm27, zmm25, zmm7 +| 1 | 1.0 | | | | | | | | vmulpd zmm26, zmm23, zmm24 +| 1 | | | | | | 1.0 | | | vmulpd zmm30, zmm26, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k5}, zmm30, zmm28 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k5}, zmm30, zmm29 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k5}, zmm30, zmm31 +| 1* | | | | | | | | | cmp r9d, ebx +| 0*F | | | | | | | | | jb 0xffffffffffffff22 +Total Num Of Uops: 52 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_lt8.txt b/arch_analysis/iaca_force_soa_lt8.txt new file mode 100644 index 0000000..c9782f9 --- /dev/null +++ b/arch_analysis/iaca_force_soa_lt8.txt @@ -0,0 +1,78 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt8_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_lt8_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 35.00 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 20.0 0.0 | 4.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 20.0 | 4.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | 1.0 | | | | | | | imul r8, r12 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm9, xmm9 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm8 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm10, xmm10 +| 1 | | 1.0 | | | | | | | sub r13d, ebx +| 1 | | 1.0 | | | | | | | add r8, r11 +| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r13d +| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm0, ymm17 +| 1 | | | | | | | 1.0 | | movsxd rbx, ebx +| 1* | | | | | | | | | vmovaps zmm4, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k2, k5 +| 1* | | | | | | | | | vmovaps zmm3, zmm19 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k5}{z}, ymmword ptr [r8+rbx*4] +| 1 | 1.0 | | | | | | | | kmovw k1, k5 +| 1* | | | | | | | | | vmovaps zmm5, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k3, k5 +| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm5, k3, zmmword ptr [rsi+ymm1*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k2, zmmword ptr [rax+ymm1*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k1, zmmword ptr [rdx+ymm1*8] +| 1 | 1.0 | | | | | | | | vsubpd zmm30, zmm10, zmm5 +| 1 | | | | | | 1.0 | | | vsubpd zmm28, zmm9, zmm4 +| 1 | 1.0 | | | | | | | | vsubpd zmm27, zmm2, zmm3 +| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm28, zmm28 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm26, zmm27, zmm27 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm26, zmm30, zmm30 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm25, zmm26 +| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm26, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm25, 0x1e +| 1* | | | | | | | | | vmovaps zmm6, zmm26 +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm6, zmm25, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm8, zmm6, zmm6 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm25{k4}, zmm6, zmm25 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm25{k4}, zmm8, zmm25 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm25, zmm15 +| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm25, zmm14 +| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm25, zmm20 +| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm25, zmm23 +| 1 | 1.0 | | | | | | | | vfmsub213pd zmm25, zmm23, zmm7 +| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm21, zmm22 +| 1 | 1.0 | | | | | | | | vmulpd zmm29, zmm24, zmm25 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm13{k6}, zmm29, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm12{k6}, zmm29, zmm28 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm11{k6}, zmm29, zmm30 +Total Num Of Uops: 60 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/osaca_force_aos_geq1200.txt b/arch_analysis/osaca_force_aos_geq1200.txt new file mode 100644 index 0000000..5e0907a --- /dev/null +++ b/arch_analysis/osaca_force_aos_geq1200.txt @@ -0,0 +1,80 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_geq1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_aos_geq1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:53:50 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 196 | | | | | | 1.00 | | || | | vpcmpgtd %ymm3, %ymm2, %k3 #67.9 + 197 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 + 198 | 1.00 | | | | | | | || | | kmovw %k3, %r9d #67.9 + 199 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm17, %ymm17, %ymm18 #69.36 + 200 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm18, %ymm17, %ymm17 #69.36 + 201 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 + 202 | | | | | | | | || | | ..B1.21: # Preds ..B1.18 + 203 | | | | | | | | || | | # Execution count [1.25e+01] + 204 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 + 205 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 + 206 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 + 207 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm19, %zmm19, %zmm19 #69.36 + 208 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm20, %zmm20, %zmm20 #69.36 + 209 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 + 210 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 + 211 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 + 212 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 + 213 | | | | | | | | || | | ..B1.22: # Preds ..B1.21 + 214 | | | | | | | | || | | # Execution count [2.50e+01] + 215 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | addq $8, %r13 #67.9 + 216 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm16, %ymm3, %ymm3 #67.9 + 217 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm4, %zmm29 #71.36 + 218 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm19, %zmm0, %zmm27 #70.36 + 219 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm20, %zmm1, %zmm26 #69.36 + 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm27, %zmm27, %zmm25 #72.49 + 221 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 + 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 + 223 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm25, %zmm24 #75.38 + 224 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm25, %k2 #74.22 + 225 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm24, %k0 #75.38 + 226 | 1.00 | | | | | | | || | | kmovw %k2, %edx #74.22 + 227 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 228 | | | | | | | | || | | * vmovaps %zmm25, %zmm17 #75.38 + 229 | 0.00 | 0.34 | | | | 0.00 | 0.66 | || | | andl %edx, %r9d #74.22 + 230 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 + 231 | 1.00 | | | | | | | || | | kmovw %r9d, %k3 #78.17 + 232 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm17, %zmm18 #75.38 + 233 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 + 234 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 + 235 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm24, %zmm19 #76.38 + 236 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm24, %zmm21 #77.54 + 237 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm19, %zmm24, %zmm22 #76.44 + 238 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm22, %zmm24, %zmm20 #76.50 + 239 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 + 240 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm21, %zmm20, %zmm23 #77.61 + 241 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm28 #77.67 + 242 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 + 243 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 + 244 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 + 245 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rbx, %r13 #67.9 + 246 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 + + 20.5 6.00 13.0 2.50 13.0 2.50 20.5 4.00 70.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 215 | 1.0 | addq $8, %r13 #67.9| [215] + 216 | 1.0 | vpaddd %ymm16, %ymm3, %ymm3 #67.9| [216] + 244 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17| [244] + 243 | 4.0 | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17| [243] + 242 | 4.0 | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17| [242] + diff --git a/arch_analysis/osaca_output_force_soa.txt b/arch_analysis/osaca_force_aos_lt1200.txt similarity index 100% rename from arch_analysis/osaca_output_force_soa.txt rename to arch_analysis/osaca_force_aos_lt1200.txt diff --git a/arch_analysis/osaca_force_aos_lt8.txt b/arch_analysis/osaca_force_aos_lt8.txt new file mode 100644 index 0000000..810dae9 --- /dev/null +++ b/arch_analysis/osaca_force_aos_lt8.txt @@ -0,0 +1,91 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_lt8_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_aos_lt8_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:49:27 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 358 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 359 | | | | | | | | || | | ..B1.33: # Preds ..B1.32 + 360 | | | | | | | | || | | # Execution count [2.50e+01] + 361 | | 1.00 | | | | | | || 3.0 | | imulq %r8, %rcx #56.43 + 362 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm6, %zmm4 #58.23 + 363 | | | | | | | | || | | X subl %r14d, %r11d #67.9 + 364 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | addq %r10, %rcx #37.5 + 365 | | | | | | | | || | | X vpbroadcastd %r11d, %ymm0 #67.9 + 366 | | | | | | 1.00 | | || | | vpcmpgtd %ymm15, %ymm0, %k3 #67.9 + 367 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r14d, %r14 #67.9 + 368 | 1.00 | | | | | | | || | | kmovw %k3, %ebx #67.9 + 369 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 + 370 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm1, %ymm1, %ymm2 #69.36 + 371 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm2, %ymm1, %ymm0 #69.36 + 372 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 + 373 | | | | | | | | || | | ..B1.36: # Preds ..B1.33 + 374 | | | | | | | | || | | # Execution count [1.25e+01] + 375 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 + 376 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 + 377 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm1, %zmm1, %zmm1 #69.36 + 378 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm2, %zmm2, %zmm2 #69.36 + 379 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm3, %zmm3, %zmm3 #69.36 + 380 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 + 381 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 + 382 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 + 383 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 384 | | | | | | | | || | | ..B1.37: # Preds ..B1.36 + 385 | | | | | | | | || | | # Execution count [2.50e+01] + 386 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm7 #59.23 + 387 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm12 #60.23 + 388 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm1, %zmm12, %zmm23 #71.36 + 389 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm2, %zmm7, %zmm21 #70.36 + 390 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm4, %zmm20 #69.36 + 391 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm21, %zmm19 #72.49 + 392 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 + 393 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 + 394 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm19, %zmm18 #75.38 + 395 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm19, %k2 #74.22 + 396 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm18, %k0 #75.38 + 397 | 1.00 | | | | | | | || | | kmovw %k2, %ecx #74.22 + 398 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 399 | | | | | | | | || | | * vmovaps %zmm19, %zmm0 #75.38 + 400 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | andl %ecx, %ebx #74.22 + 401 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 + 402 | 1.00 | | | | | | | || | | kmovw %ebx, %k3 #78.17 + 403 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm1 #75.38 + 404 | 0.50 | | | | | 0.50 | | || | 4.0 | vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 + 405 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 + 406 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm18, %zmm2 #76.38 + 407 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm18, %zmm4 #77.54 + 408 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44 + 409 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm6, %zmm18, %zmm3 #76.50 + 410 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 + 411 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm4, %zmm3, %zmm17 #77.61 + 412 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm18, %zmm17, %zmm22 #77.67 + 413 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 + 414 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 + 415 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 + + 22.0 5.00 13.0 2.50 13.0 2.50 22.0 5.00 70.0 35.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 363 | 0.0 | subl %r14d, %r11d #67.9| [363] + 367 | 1.0 | movslq %r14d, %r14 #67.9| [367] + 386 | 3.0 | vbroadcastsd %xmm7, %zmm7 #59.23| [386] + 387 | 3.0 | vbroadcastsd %xmm12, %zmm12 #60.23| [387] + 415 | 4.0 | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17| [415] + 414 | 4.0 | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17| [414] + 413 | 4.0 | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17| [413] + 397 | 28.0 | kmovw %k2, %ecx #74.22| [361, 364, 369, 371, 382, 390, 392, 393, 395, 397] + 408 | 35.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44| [362, 390, 392, 393, 394, 404, 405, 408] + diff --git a/arch_analysis/osaca_force_soa_geq1200.txt b/arch_analysis/osaca_force_soa_geq1200.txt new file mode 100644 index 0000000..a98d11b --- /dev/null +++ b/arch_analysis/osaca_force_soa_geq1200.txt @@ -0,0 +1,71 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_geq1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_geq1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:54:23 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 189 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 190 | | | | | | | | || | | ..B1.18: # Preds ..B1.18 ..B1.17 + 191 | | | | | | | | || | | # Execution count [2.50e+01] + 192 | | | | | | 1.00 | | || | | vpcmpgtd %ymm4, %ymm3, %k5 #67.9 + 193 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm18, %ymm4, %ymm4 #67.9 + 194 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 + 195 | | | | | | | | || | | * vmovaps %zmm19, %zmm22 #70.36 + 196 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r15 #67.9 + 197 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 + 198 | | | | | | | | || | | * vmovaps %zmm19, %zmm21 #69.36 + 199 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 + 200 | | | | | | | | || | | * vmovaps %zmm19, %zmm23 #71.36 + 201 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 + 202 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 + 203 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 + 204 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 + 205 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm22, %zmm5, %zmm0 #70.36 + 206 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm21, %zmm2, %zmm1 #69.36 + 207 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm23, %zmm6, %zmm21 #71.36 + 208 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm20 #72.49 + 209 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 + 210 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 + 211 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm31 #75.38 + 212 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 + 213 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm31, %k0 #75.38 + 214 | | | | | | | | || | | * vmovaps %zmm20, %zmm24 #75.38 + 215 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 + 216 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 217 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm25 #75.38 + 218 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 + 219 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 + 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm31, %zmm26 #76.38 + 221 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm31, %zmm28 #77.54 + 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm26, %zmm31, %zmm29 #76.44 + 223 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm31, %zmm27 #76.50 + 224 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 + 225 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm28, %zmm27, %zmm30 #77.61 + 226 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm31, %zmm30, %zmm24 #77.67 + 227 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 + 228 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 + 229 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 + 230 | 0.00 | 0.17 | | | | 0.00 | 0.83 | || | | cmpq %r14, %r15 #67.9 + 231 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 + + 18.0 4.17 13.0 2.50 13.0 2.50 18.0 2.83 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 193 | 1.0 | vpaddd %ymm18, %ymm4, %ymm4 #67.9| [193] + 196 | 1.0 | addq $8, %r15 #67.9| [196] + 228 | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17| [228] + 227 | 4.0 | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17| [227] + 229 | 4.0 | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17| [229] diff --git a/arch_analysis/osaca_force_soa_lt1200.txt b/arch_analysis/osaca_force_soa_lt1200.txt new file mode 100644 index 0000000..ded0878 --- /dev/null +++ b/arch_analysis/osaca_force_soa_lt1200.txt @@ -0,0 +1,69 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_lt1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:39:58 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 253 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 254 | | | | | | | | || | | ..B1.22: # Preds ..B1.22 ..B1.21 + 255 | | | | | | | | || | | # Execution count [2.50e+01] + 256 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #70.36 + 257 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addl $8, %r9d #67.9 + 258 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + 259 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #71.36 + 260 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rcx,%r14,4), %ymm3 #68.21 + 261 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r14 #67.9 + 262 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm5, %zmm5, %zmm5 #70.36 + 263 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 + 264 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm6, %zmm6, %zmm6 #71.36 + 265 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 + 266 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 + 267 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 + 268 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm5, %zmm1, %zmm29 #70.36 + 269 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm28 #69.36 + 270 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm6, %zmm2, %zmm31 #71.36 + 271 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm20 #72.49 + 272 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 + 273 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 + 274 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm27 #75.38 + 275 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k5 #74.22 + 276 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm27, %k0 #75.38 + 277 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 + 278 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 279 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm20, %zmm21 #75.38 + 280 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 + 281 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 + 282 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm27, %zmm22 #76.38 + 283 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm27, %zmm24 #77.54 + 284 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm27, %zmm25 #76.44 + 285 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm27, %zmm23 #76.50 + 286 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 + 287 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm26 #77.61 + 288 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm27, %zmm26, %zmm30 #77.67 + 289 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 + 290 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 + 291 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 + 292 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | cmpl %ebx, %r9d #67.9 + 293 | | | | | | | | || | | * jb ..B1.22 # Prob 82% #67.9 + + 17.5 3.00 13.0 2.50 13.0 2.50 17.5 3.00 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 257 | 1.0 | addl $8, %r9d #67.9| [257] + 261 | 1.0 | addq $8, %r14 #67.9| [261] + 290 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17| [290] + 289 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17| [289] + 291 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17| [291] diff --git a/arch_analysis/osaca_force_soa_lt8.txt b/arch_analysis/osaca_force_soa_lt8.txt new file mode 100644 index 0000000..bf328fa --- /dev/null +++ b/arch_analysis/osaca_force_soa_lt8.txt @@ -0,0 +1,79 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt8_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_lt8_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:52:48 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 300 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 301 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 + 302 | | | | | | | | || | | # Execution count [2.50e+01] + 303 | | 1.00 | | | | | | || 3.0 | | imulq %r12, %r8 #56.43 + 304 | | | | | | 1.00 | | || | | vbroadcastsd %xmm9, %zmm9 #59.23 + 305 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm8, %zmm2 #58.23 + 306 | | | | | | 1.00 | | || | | vbroadcastsd %xmm10, %zmm10 #60.23 + 307 | | | | | | | | || | | X subl %ebx, %r13d #67.9 + 308 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || 1.0 | | addq %r11, %r8 #37.5 + 309 | | | | | | | | || | | X vpbroadcastd %r13d, %ymm0 #67.9 + 310 | | | | | | 1.00 | | || | | vpcmpgtd %ymm17, %ymm0, %k5 #67.9 + 311 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ebx, %rbx #67.9 + 312 | | | | | | | | || | | * vmovaps %zmm19, %zmm4 #70.36 + 313 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 + 314 | | | | | | | | || | | * vmovaps %zmm19, %zmm3 #69.36 + 315 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 + 316 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 + 317 | | | | | | | | || | | * vmovaps %zmm19, %zmm5 #71.36 + 318 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 + 319 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 + 320 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || 4.0 | | vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 + 321 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 + 322 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm5, %zmm10, %zmm30 #71.36 + 323 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm4, %zmm9, %zmm28 #70.36 + 324 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm2, %zmm27 #69.36 + 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm28, %zmm28, %zmm26 #72.49 + 326 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 + 328 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm26, %zmm25 #75.38 + 329 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 + 330 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm25, %k0 #75.38 + 331 | | | | | | | | || | | * vmovaps %zmm26, %zmm6 #75.38 + 332 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | 4.0 | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 + 333 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 334 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38 + 335 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 + 337 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm25, %zmm20 #76.38 + 338 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm25, %zmm22 #77.54 + 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm25, %zmm23 #76.44 + 340 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm23, %zmm25, %zmm21 #76.50 + 341 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 + 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm24 #77.61 + 343 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm24, %zmm29 #77.67 + 344 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 + 345 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 + 346 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 + + 19.5 3.50 13.0 2.50 13.0 2.50 19.5 3.50 68.0 31.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 308 | 4.0 | addq %r11, %r8 #37.5| [303, 308] + 304 | 3.0 | vbroadcastsd %xmm9, %zmm9 #59.23| [304] + 306 | 3.0 | vbroadcastsd %xmm10, %zmm10 #60.23| [306] + 307 | 0.0 | subl %ebx, %r13d #67.9| [307] + 311 | 1.0 | movslq %ebx, %rbx #67.9| [311] + 346 | 4.0 | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17| [346] + 345 | 4.0 | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17| [345] + 344 | 4.0 | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17| [344] + 334 | 31.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38| [305, 324, 326, 327, 328, 332, 334] diff --git a/scripts/results_aos_medusa.txt b/scripts/results_aos_medusa.txt new file mode 100644 index 0000000..884af93 --- /dev/null +++ b/scripts/results_aos_medusa.txt @@ -0,0 +1,450 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0012,41.1057,80.3051,11.4722 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0025,40.3647,81.7793,11.6828 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0051,39.8752,82.7833,11.8262 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0101,40.6017,81.3020,11.6146 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0204,40.2231,82.0673,11.7239 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0472,34.6834,95.1752,13.5965 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0025,40.4194,81.6686,11.6669 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0052,39.3566,83.8740,11.9820 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0102,39.9745,82.5777,11.7968 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0204,40.1524,82.2118,11.7445 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0466,35.1455,93.9238,13.4177 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.0929,35.2833,93.5569,13.3653 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0052,39.5220,83.5232,11.9319 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0102,40.0184,82.4871,11.7839 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0207,39.5628,83.4369,11.9196 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0468,35.0227,94.2531,13.4647 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.0952,34.4175,95.9105,13.7015 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.1878,34.8933,94.6026,13.5147 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0102,40.0417,82.4391,11.7770 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0205,39.8714,82.7911,11.8273 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0458,35.8069,92.1889,13.1698 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.0955,34.3126,96.2037,13.7434 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.1895,34.5920,95.4266,13.6324 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.3960,33.1002,99.7276,14.2468 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0203,40.4125,81.6827,11.6690 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0456,35.9633,91.7881,13.1126 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.0934,35.0939,94.0620,13.4374 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.1896,34.5699,95.4876,13.6411 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.3912,33.5037,98.5264,14.0752 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.1277,23.2467,141.9985,20.2855 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0026,40.0831,82.3538,11.7648 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0052,39.7363,83.0727,11.8675 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0103,39.8957,82.7408,11.8201 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0209,39.2829,84.0314,12.0045 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0458,35.7476,92.3419,13.1917 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.0946,34.6359,95.3057,13.6151 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0051,40.0148,82.4944,11.7849 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0103,39.6144,83.3284,11.9041 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0205,39.8786,82.7763,11.8252 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0464,35.3339,93.4229,13.3461 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.0954,34.3429,96.1188,13.7313 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.1857,35.2944,93.5275,13.3611 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0103,39.6254,83.3052,11.9007 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0210,39.0435,84.5466,12.0781 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0464,35.3417,93.4023,13.3432 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.0952,34.4276,95.8824,13.6975 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.1901,34.4669,95.7730,13.6819 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.3949,33.1919,99.4520,14.2074 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0207,39.5242,83.5184,11.9312 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0453,36.1420,91.3341,13.0477 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.0943,34.7606,94.9638,13.5663 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5562,95.5256,13.6465 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.3924,33.4054,98.8165,14.1166 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.1113,23.5885,139.9413,19.9916 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0464,35.3179,93.4654,13.3522 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.0954,34.3379,96.1328,13.7333 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.1836,35.6978,92.4708,13.2101 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.3942,33.2522,99.2717,14.1817 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.1300,23.1979,142.2975,20.3282 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,2.7875,18.8084,175.5068,25.0724 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0051,39.8587,82.8175,11.8311 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0102,40.2620,81.9879,11.7126 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0205,39.9633,82.6008,11.8001 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0467,35.0947,94.0599,13.4371 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.0951,34.4516,95.8156,13.6879 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.1862,35.1990,93.7812,13.3973 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0103,39.7484,83.0474,11.8639 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0208,39.2926,84.0107,12.0015 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0457,35.8223,92.1492,13.1642 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.0955,34.3243,96.1708,13.7387 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.1852,35.3809,93.2990,13.3284 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.3926,33.3876,98.8690,14.1241 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0206,39.8296,82.8780,11.8397 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0465,35.2205,93.7237,13.3891 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.0950,34.4971,95.6893,13.6699 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.1854,35.3446,93.3949,13.3421 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.3933,33.3269,99.0492,14.1499 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.1221,23.3617,141.2995,20.1856 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0465,35.2689,93.5953,13.3708 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.0933,35.1150,94.0053,13.4293 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.1890,34.6767,95.1937,13.5991 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.3917,33.4612,98.6515,14.0931 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.1154,23.5026,140.4528,20.0647 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,2.8702,18.2666,180.7123,25.8160 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.0935,35.0393,94.2084,13.4583 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.1859,35.2627,93.6118,13.3731 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.3860,33.9565,97.2126,13.8875 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.1278,23.2434,142.0187,20.2884 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,2.7969,18.7451,176.0992,25.1570 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.0921,17.2122,191.7829,27.3976 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0104,39.5116,83.5452,11.9350 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0210,39.0648,84.5007,12.0715 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0466,35.1938,93.7948,13.3993 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.0943,34.7486,94.9965,13.5709 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.1895,34.5862,95.4426,13.6347 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.3987,32.8783,100.4005,14.3429 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0205,39.8861,82.7606,11.8229 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0461,35.5303,92.9066,13.2724 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.0945,34.6607,95.2374,13.6053 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.1869,35.0584,94.1573,13.4510 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.3925,33.3962,98.8436,14.1205 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.1238,23.3268,141.5113,20.2159 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0457,35.8343,92.1184,13.1598 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.0964,33.9864,97.1271,13.8753 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.1880,34.8516,94.7160,13.5309 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.3958,33.1143,99.6850,14.2407 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.1231,23.3408,141.4262,20.2037 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,2.8733,18.2471,180.9059,25.8437 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.0956,34.2772,96.3030,13.7576 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5447,95.5574,13.6511 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.3997,32.7961,100.6523,14.3789 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.1139,23.5333,140.2696,20.0385 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,2.8750,18.2358,181.0173,25.8596 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.0705,17.2733,191.1044,27.3006 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.1856,35.3144,93.4747,13.3535 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.3870,33.8709,97.4582,13.9226 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.1255,23.2919,141.7230,20.2461 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,2.8226,18.5745,177.7170,25.3881 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.1089,17.1648,192.3122,27.4732 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.4440,16.8527,195.8737,27.9820 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0206,39.8061,82.9270,11.8467 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0468,35.0209,94.2580,13.4654 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.0953,34.3759,96.0265,13.7181 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.1905,34.3953,95.9725,13.7104 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4040,32.4474,101.7340,14.5334 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.1196,23.4137,140.9856,20.1408 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0469,34.9211,94.5273,13.5039 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.0931,35.1895,93.8065,13.4009 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.1876,34.9341,94.4921,13.4989 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4015,32.6446,101.1194,14.4456 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.1355,23.0863,142.9852,20.4265 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,2.7960,18.7514,176.0401,25.1486 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.0947,34.6156,95.3617,13.6231 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.1877,34.9064,94.5672,13.5096 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.3966,33.0458,99.8916,14.2702 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.1021,23.7865,138.7759,19.8251 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,2.7874,18.8091,175.5005,25.0715 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.1138,17.1511,192.4663,27.4952 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5455,95.5553,13.6508 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.3956,33.1363,99.6189,14.2313 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.1204,23.3981,141.0800,20.1543 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,2.8010,18.7181,176.3538,25.1934 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.1574,17.0296,193.8395,27.6914 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.3240,17.0169,193.9841,27.7120 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.3888,33.7099,97.9237,13.9891 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.1338,23.1208,142.7720,20.3960 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,2.8212,18.5837,177.6291,25.3756 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.1008,17.1875,192.0577,27.4368 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.4366,16.8628,195.7566,27.9652 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.4410,16.4864,200.2254,-61.7980 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0041,24.7324,133.4689,8.8979 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0083,24.6887,133.7047,8.9136 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0163,25.0903,131.5646,8.7710 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0329,24.8829,132.6616,8.8441 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0680,24.0966,136.9905,9.1327 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1371,23.8973,138.1328,9.2089 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0082,25.0360,131.8501,8.7900 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0164,24.9590,132.2571,8.8171 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0335,24.4561,134.9764,8.9984 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0685,23.9268,137.9623,9.1975 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1375,23.8339,138.5001,9.2333 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9222,137.9890,9.1993 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0165,24.8840,132.6557,8.8437 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0331,24.7245,133.5111,8.9007 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0635,137.1784,9.1452 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1379,23.7594,138.9344,9.2623 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.2743,23.8917,138.1649,9.2110 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.5828,22.4908,146.7711,9.7847 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0332,24.6499,133.9152,8.9277 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0691,23.7219,139.1539,9.2769 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1368,23.9567,137.7903,9.1860 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.2735,23.9648,137.7438,9.1829 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.5886,22.2698,148.2277,9.8818 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.4720,17.8088,185.3577,12.3572 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0682,24.0084,137.4936,9.1662 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1372,23.8862,138.1971,9.2131 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9051,138.0878,9.2059 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.5849,22.4077,147.3151,9.8210 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.4458,18.1316,182.0577,12.1372 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.1137,16.8378,196.0465,13.0698 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0083,24.7704,133.2639,8.8843 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0164,24.9790,132.1512,8.8101 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0327,25.0873,131.5805,8.7720 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0683,23.9916,137.5897,9.1726 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1374,23.8546,138.3798,9.2253 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.8990,138.1229,9.2082 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0163,25.1862,131.0636,8.7376 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0333,24.6350,133.9965,8.9331 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0493,137.2596,9.1506 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1373,23.8580,138.3605,9.2240 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.2736,23.9502,137.8279,9.1885 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.5870,22.3294,147.8318,9.8555 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0331,24.7333,133.4638,8.8976 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0686,23.8895,138.1779,9.2119 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1371,23.8939,138.1526,9.2102 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9045,138.0909,9.2061 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.5851,22.4035,147.3428,9.8229 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.4449,18.1431,181.9423,12.1295 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0685,23.9332,137.9258,9.1951 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1354,24.1941,136.4383,9.0959 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9018,138.1068,9.2071 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.5858,22.3747,147.5327,9.8355 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.4728,17.7993,185.4566,12.3638 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.1009,16.9075,195.2388,13.0159 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1362,24.0517,137.2460,9.1497 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.2729,24.0178,137.4398,9.1627 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.5883,22.2787,148.1687,9.8779 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.4518,18.0563,182.8169,12.1878 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.1235,16.7852,196.6615,13.1108 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,6.4154,16.3447,201.9617,13.4641 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0164,25.0188,131.9407,8.7960 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0327,25.0635,131.7055,8.7804 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0625,137.1844,9.1456 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1353,24.2172,136.3079,9.0872 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.2736,23.9531,137.8109,9.1874 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.5894,22.2374,148.4434,9.8962 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0331,24.7414,133.4200,8.8947 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0681,24.0635,137.1789,9.1453 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7946,138.7287,9.2486 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.2731,23.9998,137.5431,9.1695 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.5872,22.3223,147.8793,9.8586 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.4703,17.8294,185.1437,12.3429 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0687,23.8416,138.4552,9.2303 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1375,23.8375,138.4791,9.2319 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.2727,24.0302,137.3686,9.1579 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.5883,22.2792,148.1652,9.8777 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.4533,18.0375,183.0080,12.2005 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.1294,16.7536,197.0325,13.1355 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1378,23.7792,138.8186,9.2546 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.2724,24.0554,137.2249,9.1483 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.5840,22.4451,147.0702,9.8047 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.4553,18.0128,183.2583,12.2172 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.1316,16.7421,197.1674,13.1445 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,6.5036,16.1231,204.7372,13.6491 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.2731,23.9947,137.5723,9.1715 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.5852,22.3992,147.3712,9.8247 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.4516,18.0592,182.7882,12.1859 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.1097,16.8599,195.7903,13.0527 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,6.5056,16.1181,204.8003,13.6534 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,13.1053,16.0023,206.2823,-37.6428 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0328,24.9512,132.2984,8.8199 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0682,24.0216,137.4177,9.1612 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7965,138.7181,9.2479 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.2730,24.0046,137.5155,9.1677 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.5829,22.4881,146.7890,9.7859 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.4484,18.0992,182.3833,12.1589 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0677,24.1845,136.4923,9.0995 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1374,23.8416,138.4555,9.2304 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.2738,23.9371,137.9030,9.1935 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.5882,22.2849,148.1270,9.8751 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.4562,18.0018,183.3708,12.2247 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.0955,16.9373,194.8949,12.9930 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7916,138.7464,9.2498 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.8984,138.1263,9.2084 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.5860,22.3662,147.5890,9.8393 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.4521,18.0527,182.8531,12.1902 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.1149,16.8315,196.1201,13.0747 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,6.4845,16.1705,204.1378,13.6092 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9190,138.0077,9.2005 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.5801,22.5958,146.0891,9.7393 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.4427,18.1702,181.6708,12.1114 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.1059,16.8805,195.5508,13.0367 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,6.5648,15.9727,206.6647,13.7776 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,13.4465,15.5962,211.6535,-38.6229 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.5794,22.6212,145.9248,9.7283 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.4597,17.9582,183.8159,12.2544 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.1126,16.8442,195.9724,13.0648 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,6.5076,16.1131,204.8649,13.6577 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,13.2052,15.8813,207.8550,-37.9298 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,26.5533,15.7958,208.9801,43.9034 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0676,24.2458,136.1475,9.0765 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1387,23.6314,139.6870,9.3125 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.2728,24.0216,137.4180,9.1612 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.5876,22.3071,147.9798,9.8653 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.4662,17.8796,184.6236,12.3082 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.1136,16.8386,196.0381,13.0692 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1372,23.8911,138.1686,9.2112 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.2738,23.9316,137.9348,9.1957 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.5872,22.3233,147.8722,9.8581 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.4458,18.1310,182.0638,12.1376 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.1368,16.7141,197.4976,13.1665 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,6.4162,16.3427,201.9857,13.4657 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9176,138.0158,9.2011 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.5800,22.5988,146.0695,9.7380 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.4595,17.9611,183.7857,12.2524 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.0984,16.9211,195.0822,13.0055 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,6.4903,16.1561,204.3191,13.6213 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,13.1687,15.9252,207.2811,-37.8250 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.5855,22.3859,147.4589,9.8306 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.4746,17.7769,185.6908,12.3794 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.1073,16.8730,195.6382,13.0425 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,6.4985,16.1356,204.5791,13.6386 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,13.3353,15.7263,209.9025,-38.3034 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,26.9030,15.5905,211.7316,44.4814 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.4540,18.0290,183.0936,12.2062 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.1314,16.7431,197.1556,13.1437 +200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,6.4141,16.3480,201.9211,13.4614 +200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,13.2231,15.8597,208.1375,-37.9813 +200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,26.2168,15.9985,206.3317,43.3470 +200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,53.6958,15.6225,211.2984,-586.9401 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0134,15.2346,216.6777,6.9896 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0266,15.4085,214.2323,6.9107 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0545,15.0233,219.7251,7.0879 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1093,14.9944,220.1483,7.1016 +200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2193,14.9437,220.8951,7.1256 +200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.4379,14.9647,220.5860,7.1157 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0267,15.3207,215.4599,6.9503 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0546,15.0008,220.0543,7.0985 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1094,14.9822,220.3278,7.1073 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9583,220.6805,7.1187 +200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9848,220.2903,7.1061 +200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,0.9374,13.9828,236.0765,7.6154 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0541,15.1494,217.8961,7.0289 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1089,15.0502,219.3323,7.0752 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2189,14.9698,220.5113,7.1133 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9443,220.8864,7.1254 +200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,0.9337,14.0372,235.1611,7.5858 +200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.0220,12.9647,254.6154,8.2134 +200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1087,15.0688,219.0623,7.0665 +200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9847,220.2915,7.1062 +200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.4346,15.0800,218.8995,7.0613 +200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,0.9384,13.9682,236.3232,7.6233 +200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.0175,12.9935,254.0510,8.1952 +200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,4.1609,12.6004,261.9751,8.4508 +200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9811,220.3445,7.1079 +200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9470,220.8474,7.1241 +200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,0.9425,13.9075,237.3533,7.6566 +200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.0193,12.9817,254.2807,8.2026 +200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,4.1060,12.7687,258.5221,8.3394 +200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,8.5023,12.3329,267.6588,-26.8734 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0269,15.2501,216.4575,6.9825 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0546,15.0017,220.0414,7.0981 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1090,15.0299,219.6287,7.0848 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2186,14.9877,220.2466,7.1047 +200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.4382,14.9568,220.7025,7.1194 +200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,0.9368,13.9922,235.9171,7.6102 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0542,15.1196,218.3266,7.0428 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1092,15.0007,220.0570,7.0986 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2159,15.1799,217.4583,7.0148 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9815,220.3387,7.1077 +200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,0.9386,13.9650,236.3773,7.6251 +200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.0236,12.9544,254.8161,8.2199 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1093,14.9932,220.1666,7.1021 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9802,220.3572,7.1083 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.4388,14.9344,221.0333,7.1301 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,0.9327,14.0529,234.8988,7.5774 +200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.0367,12.8711,256.4670,8.2731 +200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,4.1018,12.7819,258.2559,8.3308 +200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2188,14.9790,220.3750,7.1089 +200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.4386,14.9426,220.9122,7.1262 +200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,0.9360,14.0039,235.7196,7.6039 +200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.0310,12.9071,255.7514,8.2500 +200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,4.1461,12.6452,261.0469,8.4209 +200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,8.3325,12.5842,262.3128,-26.3366 +200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9469,220.8478,7.1241 +200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,0.9403,13.9390,236.8176,7.6393 +200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.0259,12.9397,255.1062,8.2292 +200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,4.1068,12.7662,258.5733,8.3411 +200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,8.4559,12.4005,266.1989,-26.7268 +200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,17.0485,12.3011,268.3504,-26.9428 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0545,15.0353,219.5506,7.0823 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1083,15.1228,218.2803,7.0413 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2193,14.9435,220.8982,7.1257 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.4371,14.9928,220.1717,7.1023 +200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,0.9377,13.9786,236.1473,7.6177 +200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.0308,12.9084,255.7246,8.2492 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1092,14.9993,220.0768,7.0993 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2156,15.2008,217.1597,7.0052 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.4348,15.0713,219.0254,7.0653 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,0.9381,13.9724,236.2512,7.6210 +200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.0138,13.0174,253.5827,8.1801 +200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,4.1049,12.7722,258.4526,8.3372 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2196,14.9241,221.1865,7.1350 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9833,220.3117,7.1068 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,0.9391,13.9572,236.5088,7.6293 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.0364,12.8726,256.4356,8.2721 +200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,4.1083,12.7618,258.6626,8.3440 +200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,8.5071,12.3259,267.8100,-26.8886 +200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9829,220.3184,7.1070 +200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,0.9337,14.0376,235.1549,7.5856 +200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.0285,12.9228,255.4397,8.2400 +200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,4.1517,12.6282,261.3994,8.4322 +200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,8.3354,12.5797,262.4065,-26.3460 +200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,17.1852,12.2033,270.5016,-27.1588 +200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,0.9372,13.9857,236.0275,7.6138 +200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.0181,12.9897,254.1243,8.1976 +200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,4.1102,12.7557,258.7871,8.3480 +200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,8.5143,12.3155,268.0368,-26.9113 +200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,16.7462,12.5231,263.5925,-26.4651 +200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,34.3474,12.2114,270.3206,965.4307 +200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1091,15.0122,219.8883,7.0932 +200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9554,220.7223,7.1201 +200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.4372,14.9912,220.1951,7.1031 +200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,0.9347,14.0224,235.4083,7.5938 +200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.0181,12.9898,254.1230,8.1975 +200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,4.0964,12.7986,257.9188,8.3200 +200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9549,220.7300,7.1203 +200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.4380,14.9628,220.6131,7.1166 +200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,0.9370,13.9889,235.9727,7.6120 +200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.0005,13.1036,251.9156,8.1263 +200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,4.1569,12.6125,261.7241,8.4427 +200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,8.4536,12.4039,266.1250,-26.7194 +200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.4376,14.9762,220.4158,7.1102 +200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,0.9325,14.0565,234.8381,7.5754 +200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.0189,12.9848,254.2212,8.2007 +200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,4.1342,12.6818,260.2952,8.3966 +200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,8.4425,12.4201,265.7779,-26.6845 +200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,16.8367,12.4558,265.0161,-26.6080 +200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,0.9372,13.9857,236.0276,7.6138 +200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.0228,12.9595,254.7174,8.2167 +200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,4.1124,12.7491,258.9207,8.3523 +200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,8.5060,12.3275,267.7762,-26.8852 +200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,17.1890,12.2005,270.5622,-27.1649 +200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,33.5418,12.5047,263.9803,942.7868 +200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.1203,12.3637,266.9921,8.6126 +200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,4.1809,12.5402,263.2341,8.4914 +200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,8.3133,12.6132,261.7105,-26.2762 +200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,16.6965,12.5605,262.8088,-26.3864 +200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,33.7448,12.4295,265.5785,948.4946 +200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,68.5976,12.2287,269.9385,964.0660 +200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2194,14.9371,220.9935,7.1288 +200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.4381,14.9604,220.6498,7.1177 +200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,0.9245,14.1782,232.8227,7.5104 +200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.0184,12.9880,254.1572,8.1986 +200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,4.1707,12.5708,262.5927,8.4707 +200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,8.2933,12.6437,261.0782,-26.2127 +200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.4371,14.9927,220.1744,7.1024 +200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,0.9394,13.9534,236.5739,7.6314 +200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.0204,12.9749,254.4147,8.2069 +200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,4.1678,12.5794,262.4123,8.4649 +200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,8.3336,12.5825,262.3480,-26.3402 +200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,17.0020,12.3347,267.6182,-26.8693 +200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,0.9336,14.0390,235.1313,7.5849 +200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.0218,12.9657,254.5951,8.2127 +200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,4.1207,12.7233,259.4454,8.3692 +200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,8.3560,12.5488,263.0527,-26.4109 +200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,16.7676,12.5072,263.9284,-26.4988 +200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,33.4795,12.5280,263.4900,941.0357 +200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.0220,12.9643,254.6225,8.2136 +200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,4.0872,12.8275,257.3383,8.3012 +200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,8.4447,12.4169,265.8471,-26.6915 +200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,17.0434,12.3048,268.2701,-26.9347 +200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,33.4924,12.5231,263.5920,941.3999 +200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,68.4806,12.2496,269.4779,962.4209 +200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,4.1498,12.6341,261.2772,8.4283 +200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,8.4875,12.3543,267.1943,-26.8267 +200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,16.7591,12.5135,263.7955,-26.4855 +200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,33.6675,12.4580,264.9700,946.3215 +200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,68.4488,12.2553,269.3528,961.9742 +200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,136.3839,12.3015,268.3420,958.3643 diff --git a/scripts/results_aos_skylakesp2.txt b/scripts/results_aos_skylakesp2.txt new file mode 100644 index 0000000..61a646a --- /dev/null +++ b/scripts/results_aos_skylakesp2.txt @@ -0,0 +1,450 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0017,30.3465,108.7769,15.5396 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0035,29.4117,112.2341,16.0334 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0068,29.9117,110.3582,15.7655 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0140,29.2747,112.7597,16.1085 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0277,29.6271,111.4183,15.9169 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0588,27.8858,118.3758,16.9108 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0035,29.2900,112.7006,16.1001 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0071,28.8960,114.2372,16.3196 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0138,29.7567,110.9330,15.8476 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9645,113.9670,16.2810 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0589,27.8278,118.6226,16.9461 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2126,117.0045,16.7149 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.1692,113.1674,16.1668 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0138,29.7129,111.0967,15.8710 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1939,113.0715,16.1531 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0575,28.5109,115.7801,16.5400 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7097,119.1278,17.0183 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.9053,118.2930,16.8990 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0143,28.6695,115.1397,16.4485 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8051,114.5978,16.3711 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0586,27.9695,118.0216,16.8602 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7722,118.8600,16.9800 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2282,28.7202,114.9367,16.4195 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5880,22.2904,148.0906,21.1558 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0281,29.1687,113.1693,16.1670 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0587,27.9318,118.1807,16.8830 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1181,27.7405,118.9959,16.9994 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2362,27.7451,118.9758,16.9965 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.5785,22.6560,145.7012,20.8145 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.4375,18.2361,181.0141,25.8592 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0035,29.3622,112.4235,16.0605 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0068,29.9101,110.3639,15.7663 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0141,29.0417,113.6642,16.2377 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0281,29.1617,113.1963,16.1709 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0585,28.0111,117.8460,16.8351 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7088,119.1318,17.0188 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0069,29.8459,110.6015,15.8002 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0139,29.4463,112.1024,16.0146 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0277,29.5525,111.6996,15.9571 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0579,28.3017,116.6362,16.6623 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6203,115.3378,16.4768 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2280,28.7474,114.8278,16.4040 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0140,29.3212,112.5807,16.0830 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0277,29.5887,111.5627,15.9375 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0572,28.6587,115.1831,16.4547 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1178,27.8274,118.6242,16.9463 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2344,27.9549,118.0829,16.8690 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.5755,22.7750,144.9394,20.7056 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0283,28.9347,114.0844,16.2978 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0586,27.9741,118.0018,16.8574 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3512,116.4326,16.6332 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2286,28.6691,115.1416,16.4488 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.5765,22.7365,145.1848,20.7407 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.4350,18.2676,180.7024,25.8146 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0584,28.0706,117.5963,16.7995 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1148,28.5532,115.6087,16.5155 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2361,27.7596,118.9138,16.9877 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.5871,22.3246,147.8639,21.1234 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.4440,18.1544,181.8290,25.9756 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.0284,17.3122,190.6752,27.2393 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.1585,113.2087,16.1727 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0138,29.6911,111.1780,15.8826 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0283,28.9797,113.9074,16.2725 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0587,27.9252,118.2088,16.8870 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7026,119.1586,17.0227 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2341,27.9895,117.9373,16.8482 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.7942,114.6411,16.3773 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9327,114.0924,16.2989 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0570,28.7438,114.8422,16.4060 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1146,28.5861,115.4759,16.4966 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2326,28.1699,117.1817,16.7402 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.5820,22.5202,146.5794,20.9399 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6319,115.2912,16.4702 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0577,28.4037,116.2174,16.6025 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1157,28.3232,116.5474,16.6496 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2272,28.8476,114.4289,16.3470 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5853,22.3948,147.4001,21.0572 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.4359,18.2569,180.8082,25.8297 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0592,27.6563,119.3580,17.0511 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1175,27.8953,118.3353,16.9050 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2339,28.0208,117.8051,16.8293 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.5877,22.3036,148.0030,21.1433 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.4163,18.5085,178.3503,25.4786 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.0250,17.3321,190.4557,27.2080 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1184,27.6850,119.2343,17.0335 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2318,28.2692,116.7704,16.6815 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.5828,22.4888,146.7843,20.9692 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.4080,18.6177,177.3041,25.3292 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.0668,17.0956,193.0906,27.5844 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.2702,16.7233,197.3894,28.1985 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.7469,110.9697,15.8528 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0280,29.2260,112.9475,16.1354 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0592,27.6594,119.3447,17.0492 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1176,27.8590,118.4893,16.9270 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2335,28.0716,117.5922,16.7989 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.5712,22.9486,143.8433,20.5490 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.4205,112.2006,16.0287 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1302,117.3473,16.7639 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1179,27.8007,118.7378,16.9625 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2297,28.5347,115.6839,16.5263 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.5933,22.0925,149.4173,21.3453 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.4077,18.6223,177.2608,25.3230 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0584,28.0354,117.7439,16.8206 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1151,28.4770,115.9181,16.5597 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2362,27.7498,118.9559,16.9937 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.5820,22.5213,146.5721,20.9389 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.4174,18.4944,178.4868,25.4981 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.0733,17.0595,193.4992,27.6427 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4535,116.0140,16.5734 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9244,114.1250,16.3036 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.5804,22.5825,146.1755,20.8822 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.4367,18.2460,180.9162,25.8452 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.0375,17.2607,191.2436,27.3205 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.2335,16.8215,196.2366,28.0338 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2302,28.4738,115.9312,16.5616 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.5861,22.3652,147.5953,21.0850 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.4180,18.4875,178.5533,25.5076 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.0346,17.2770,191.0631,27.2947 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.3025,16.6376,198.4062,28.3437 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.7814,16.4079,201.1838,28.7405 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0283,28.9709,113.9419,16.2774 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1578,117.2320,16.7474 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7027,119.1582,17.0226 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2278,28.7749,114.7179,16.3883 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3280,147.8415,21.1202 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.4253,18.3927,179.4738,25.6391 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0583,28.1031,117.4602,16.7800 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1160,28.2362,116.9066,16.7009 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2346,27.9345,118.1694,16.8813 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.5759,22.7579,145.0484,20.7212 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.4412,18.1889,181.4842,25.9263 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.0304,17.3007,190.8014,27.2573 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4352,116.0884,16.5841 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2329,28.1400,117.3061,16.7580 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5882,22.2847,148.1284,21.1612 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.4200,18.4609,178.8099,25.5443 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.0645,17.1084,192.9467,27.5638 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.2823,16.6910,197.7714,28.2531 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2325,28.1827,117.1285,16.7326 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5814,22.5459,146.4124,20.9161 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.4327,18.2977,180.4052,25.7722 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.0435,17.2262,191.6265,27.3752 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.2562,16.7606,196.9494,28.1356 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.8218,16.3562,201.8198,28.8314 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.5803,22.5887,146.1352,20.8765 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.4161,18.5111,178.3255,25.4751 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.0288,17.3098,190.7007,27.2430 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.2470,16.7853,196.6601,28.0943 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.7711,16.4211,201.0219,28.7174 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.5759,16.3994,201.2874,-62.1257 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.4446,178.9684,11.9312 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0112,18.2150,181.2240,12.0816 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0224,18.3113,180.2714,12.0181 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0447,18.3455,179.9354,11.9957 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0905,18.1055,182.3198,12.1547 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1819,18.0138,183.2489,12.2166 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0111,18.4483,178.9328,11.9289 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0222,18.4121,179.2842,11.9523 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1169,182.2060,12.1471 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0921,17.7870,185.5850,12.3723 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1818,18.0274,183.1101,12.2073 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3687,17.7742,185.7186,12.3812 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0224,18.3173,180.2120,12.0141 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0459,17.8317,185.1201,12.3413 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0907,18.0668,182.7105,12.1807 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1836,17.8502,184.9274,12.3285 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3632,18.0417,182.9653,12.1977 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.8405,15.5939,211.6859,14.1124 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.1000,182.3761,12.1584 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0906,18.0813,182.5645,12.1710 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8212,185.2292,12.3486 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3639,18.0100,183.2872,12.2191 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.8393,15.6170,211.3718,14.0915 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7298,15.1546,217.8222,14.5215 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9284,184.1209,12.2747 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1847,17.7401,186.0756,12.4050 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9308,184.0962,12.2731 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6689,210.6717,14.0448 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7282,15.1685,217.6226,14.5082 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.4849,15.0444,219.4168,14.6278 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0111,18.4278,179.1319,11.9421 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0226,18.1638,181.7354,12.1157 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0453,18.0726,182.6524,12.1768 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0920,17.8152,185.2914,12.3528 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1823,17.9748,183.6461,12.2431 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3658,17.9157,184.2522,12.2835 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0222,18.4192,179.2152,11.9477 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0444,18.4360,179.0522,11.9368 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0916,17.8863,184.5548,12.3037 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8220,185.2203,12.3480 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3664,17.8863,184.5542,12.3036 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.8380,15.6408,211.0501,14.0700 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.0660,182.7192,12.1813 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0919,17.8192,185.2493,12.3500 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8059,185.3877,12.3592 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3670,17.8573,184.8539,12.3236 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.8359,15.6812,210.5074,14.0338 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7319,15.1360,218.0891,14.5393 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0904,18.1311,182.0625,12.1375 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9638,183.7583,12.2506 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3648,17.9625,183.7718,12.2515 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8361,15.6759,210.5784,14.0386 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7322,15.1336,218.1245,14.5416 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.4793,15.0688,219.0625,14.6042 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1843,17.7795,185.6637,12.3776 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3625,18.0764,182.6137,12.1742 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.8262,15.8645,208.0749,13.8717 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1748,217.5316,14.5021 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.4846,15.0457,219.3977,14.6265 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,7.0206,14.9356,221.0153,14.7344 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0226,18.1117,182.2579,12.1505 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0449,18.2408,180.9682,12.0645 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0919,17.8350,185.0856,12.3390 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0462,182.9196,12.1946 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3678,17.8165,185.2778,12.3519 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.8404,15.5960,211.6567,14.1104 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0450,18.2228,181.1466,12.0764 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0908,18.0431,182.9508,12.1967 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1820,18.0031,183.3572,12.2238 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7458,186.0162,12.4011 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.8347,15.7034,210.2096,14.0140 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7291,15.1608,217.7328,14.5155 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0909,18.0184,183.2018,12.2135 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9630,183.7665,12.2511 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3699,17.7162,186.3271,12.4218 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.8338,15.7207,209.9783,13.9986 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7287,15.1644,217.6807,14.5120 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.4878,15.0321,219.5966,14.6398 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8096,185.3495,12.3566 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0034,183.3538,12.2236 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.8352,15.6942,210.3329,14.0222 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1744,217.5369,14.5025 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.4834,15.0510,219.3216,14.6214 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,7.0276,14.9209,221.2334,14.7489 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3636,18.0229,183.1558,12.2104 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.8278,15.8337,208.4795,13.8986 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7258,15.1897,217.3186,14.4879 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.4981,14.9878,220.2464,14.6831 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,7.0395,14.8955,221.6102,14.7740 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1277,14.8442,222.3762,-40.5796 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0454,18.0286,183.0981,12.2065 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7984,185.4660,12.3644 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1820,18.0071,183.3167,12.2211 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3688,17.7722,185.7397,12.3826 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.8394,15.6154,211.3937,14.0929 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7272,15.1777,217.4896,14.4993 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0922,17.7751,185.7089,12.3806 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1847,17.7401,186.0755,12.4050 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3650,17.9548,183.8507,12.2567 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.8342,15.7128,210.0837,14.0056 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7343,15.1151,218.3913,14.5594 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.4881,15.0309,219.6142,14.6409 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1842,17.7899,185.5548,12.3703 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3635,18.0279,183.1051,12.2070 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.8402,15.5994,211.6101,14.1073 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7321,15.1345,218.1105,14.5407 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.4956,14.9983,220.0914,14.6728 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,7.0035,14.9722,220.4748,14.6983 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3676,17.8286,185.1519,12.3435 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.8358,15.6819,210.4980,14.0332 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7292,15.1599,217.7456,14.5164 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.4836,15.0501,219.3342,14.6223 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,7.0147,14.9483,220.8277,14.7218 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1095,14.8634,222.0885,-40.5271 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.8323,15.7487,209.6045,13.9736 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7337,15.1204,218.3147,14.5543 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.4854,15.0424,219.4469,14.6298 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,6.9997,14.9803,220.3564,14.6904 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,14.1000,14.8734,221.9396,-40.4999 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,28.5006,14.7165,224.3054,47.1230 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0928,17.6461,187.0664,12.4711 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1819,18.0106,183.2808,12.2187 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3692,17.7502,185.9693,12.3980 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.8337,15.7213,209.9699,13.9980 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7324,15.1317,218.1512,14.5434 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.4837,15.0497,219.3394,14.6226 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8183,185.2592,12.3506 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3694,17.7413,186.0627,12.4042 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.8317,15.7603,209.4500,13.9633 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7289,15.1629,217.7025,14.5135 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.4803,15.0645,219.1241,14.6083 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,7.0112,14.9557,220.7180,14.7145 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3702,17.7021,186.4753,12.4317 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.8310,15.7727,209.2857,13.9524 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7311,15.1428,217.9918,14.5328 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.4783,15.0730,219.0016,14.6001 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,7.1692,14.6261,225.6924,15.0462 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0752,14.8996,221.5499,-40.4288 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8301,15.7907,209.0467,13.9364 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7349,15.1099,218.4658,14.5644 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.4954,14.9994,220.0760,14.6717 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,7.0085,14.9614,220.6340,14.7089 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0931,14.8807,221.8305,-40.4800 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,28.3617,14.7886,223.2118,46.8932 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7273,15.1768,217.5037,14.5002 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.4938,15.0061,219.9772,14.6651 +200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,7.0357,14.9037,221.4885,14.7659 +200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,14.1410,14.8303,222.5848,-40.6177 +200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,28.4706,14.7320,224.0696,47.0734 +200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,56.5696,14.8288,222.6070,-618.3528 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1141,297.0107,9.5810 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0363,11.2779,292.6971,9.4418 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0742,11.0449,298.8711,9.6410 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1481,11.0605,298.4503,9.6274 +200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2949,11.1106,297.1028,9.5840 +200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5983,10.9532,301.3734,9.7217 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1204,296.8413,9.5755 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0742,11.0352,299.1326,9.6494 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0465,298.8270,9.6396 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2961,11.0655,298.3154,9.6231 +200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5986,10.9475,301.5306,9.7268 +200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2720,10.3045,320.3467,10.3338 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0743,11.0186,299.5856,9.6641 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1484,11.0422,298.9442,9.6434 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2966,11.0488,298.7648,9.6376 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5989,10.9436,301.6379,9.7303 +200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2770,10.2640,321.6110,10.3745 +200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6173,10.0157,329.5828,10.6317 +200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1488,11.0087,299.8546,9.6727 +200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0310,299.2466,9.6531 +200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5925,11.0611,298.4334,9.6269 +200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2776,10.2593,321.7576,10.3793 +200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6138,10.0294,329.1324,10.6172 +200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.2766,9.9362,332.2209,10.7168 +200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2965,11.0517,298.6869,9.6351 +200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5938,11.0371,299.0820,9.6478 +200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2778,10.2578,321.8033,10.3808 +200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6155,10.0229,329.3472,10.6241 +200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.2779,9.9336,332.3065,10.7196 +200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,10.6334,9.8612,334.7478,-33.6092 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0367,11.1554,295.9115,9.5455 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0740,11.0655,298.3153,9.6231 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1486,11.0227,299.4742,9.6605 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0293,299.2935,9.6546 +200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9192,302.3105,9.7520 +200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2766,10.2675,321.4994,10.3709 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0741,11.0621,298.4065,9.6260 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1473,11.1195,296.8666,9.5763 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2977,11.0065,299.9133,9.6746 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5911,11.0872,297.7294,9.6042 +200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2751,10.2790,321.1408,10.3594 +200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6235,9.9923,330.3550,10.6566 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0789,297.9548,9.6114 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2968,11.0408,298.9830,9.6446 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5965,10.9874,300.4339,9.6914 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2750,10.2803,321.0997,10.3581 +200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6219,9.9984,330.1535,10.6501 +200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.2861,9.9183,332.8200,10.7361 +200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2988,10.9680,300.9674,9.7086 +200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.6009,10.9058,302.6840,9.7640 +200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2771,10.2631,321.6368,10.3754 +200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6137,10.0297,329.1236,10.6169 +200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.2858,9.9188,332.8016,10.7355 +200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,10.6487,9.8470,335.2298,-33.6576 +200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5968,10.9820,300.5841,9.6963 +200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2733,321.3197,10.3652 +200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0147,329.6169,10.6328 +200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.2745,9.9401,332.0889,10.7125 +200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,10.6213,9.8724,334.3654,-33.5708 +200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3695,9.8138,336.3646,-33.7715 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0735,11.1455,296.1731,9.5540 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0346,299.1487,9.6500 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2974,11.0192,299.5679,9.6635 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5902,11.1047,297.2608,9.5891 +200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2747,10.2823,321.0372,10.3560 +200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6211,10.0014,330.0542,10.6469 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1464,11.1916,294.9529,9.5146 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2968,11.0406,298.9861,9.6447 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5997,10.9280,302.0694,9.7442 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2908,320.7705,10.3474 +200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0146,329.6179,10.6328 +200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.2740,9.9410,332.0605,10.7116 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2980,10.9960,300.1990,9.6838 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5998,10.9255,302.1364,9.7463 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2795,10.2436,322.2487,10.3951 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6165,10.0187,329.4831,10.6285 +200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.2867,9.9172,332.8567,10.7373 +200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,10.6383,9.8566,334.9024,-33.6247 +200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5986,10.9484,301.5060,9.7260 +200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2760,10.2722,321.3535,10.3662 +200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6148,10.0254,329.2634,10.6214 +200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.2901,9.9108,333.0721,10.7443 +200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,10.6227,9.8711,334.4096,-33.5753 +200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3623,9.8171,336.2509,-33.7601 +200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2790,10.2483,322.1007,10.3903 +200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6180,10.0131,329.6669,10.6344 +200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.2855,9.9195,332.7805,10.7349 +200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,10.6399,9.8552,334.9509,-33.6296 +200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3698,9.8136,336.3697,-33.7721 +200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,43.1537,9.7195,339.6280,1212.9573 +200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1487,11.0146,299.6924,9.6675 +200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0283,299.3212,9.6555 +200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.6031,10.8658,303.7984,9.7999 +200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2738,10.2897,320.8047,10.3485 +200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6164,10.0192,329.4670,10.6280 +200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.2957,9.9002,333.4274,10.7557 +200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2961,11.0654,298.3166,9.6231 +200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5972,10.9736,300.8139,9.7037 +200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2758,10.2741,321.2934,10.3643 +200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6237,9.9914,330.3840,10.6575 +200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.2833,9.9235,332.6437,10.7304 +200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,10.6768,9.8211,336.1128,-33.7463 +200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9182,302.3380,9.7528 +200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2746,10.2830,321.0152,10.3553 +200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6157,10.0219,329.3779,10.6251 +200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.2852,9.9200,332.7618,10.7343 +200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,10.6337,9.8609,334.7568,-33.6101 +200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3454,9.8248,335.9852,-33.7335 +200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2752,10.2788,321.1461,10.3596 +200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6087,10.0488,328.4974,10.5967 +200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.2916,9.9080,333.1646,10.7472 +200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,10.6600,9.8365,335.5854,-33.6933 +200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,21.2981,9.8467,335.2408,-33.6587 +200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,44.2297,9.4830,348.0965,1243.2018 +200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6099,10.0444,328.6422,10.6014 +200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.2859,9.9185,332.8113,10.7358 +200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,10.6227,9.8711,334.4097,-33.5753 +200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3381,9.8282,335.8697,-33.7219 +200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,43.4748,9.6477,342.1553,1221.9831 +200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,85.5724,9.8029,336.7359,1202.6281 +200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2976,11.0103,299.8114,9.6713 +200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5956,11.0036,299.9923,9.6772 +200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2751,10.2796,321.1224,10.3588 +200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.6173,10.0158,329.5782,10.6316 +200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.2761,9.9371,332.1908,10.7158 +200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,10.6702,9.8271,335.9071,-33.7256 +200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5979,10.9603,301.1766,9.7154 +200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2730,10.2965,320.5931,10.3417 +200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6162,10.0199,329.4430,10.6272 +200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.2847,9.9208,332.7343,10.7334 +200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,10.6461,9.8494,335.1478,-33.6494 +200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,21.2812,9.8545,334.9748,-33.6320 +200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2672,10.3434,319.1396,10.2948 +200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6178,10.0139,329.6408,10.6336 +200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.2912,9.9087,333.1431,10.7466 +200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,10.6585,9.8379,335.5386,-33.6886 +200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3308,9.8316,335.7558,-33.7104 +200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,42.6895,9.8252,335.9745,1199.9088 +200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6194,10.0078,329.8425,10.6401 +200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.2909,9.9093,333.1209,10.7458 +200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,10.6534,9.8426,335.3774,-33.6724 +200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3611,9.8176,336.2327,-33.7583 +200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,43.1672,9.7164,339.7341,1213.3361 +200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,86.3298,9.7169,339.7161,1213.2719 +200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.2673,9.9537,331.6370,10.6980 +200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,10.6459,9.8496,335.1422,-33.6488 +200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,21.2973,9.8471,335.2271,-33.6573 +200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,42.8531,9.7876,337.2623,1204.5083 +200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,85.7954,9.7775,337.6135,1205.7624 +200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,175.9705,9.5341,346.2307,1236.5383 diff --git a/scripts/results_soa_skylakesp2.txt b/scripts/results_soa_skylakesp2.txt new file mode 100644 index 0000000..98c4350 --- /dev/null +++ b/scripts/results_soa_skylakesp2.txt @@ -0,0 +1,450 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0016,31.1175,106.0818,15.1545 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0035,29.3957,112.2953,16.0422 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0070,29.1148,113.3787,16.1970 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0143,28.6699,115.1380,16.4483 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0279,29.3329,112.5357,16.0765 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0589,27.8187,118.6611,16.9516 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0034,30.1387,109.5268,15.6467 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.1126,113.3874,16.1982 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0138,29.7694,110.8857,15.8408 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9748,113.9266,16.2752 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0567,28.9172,114.1536,16.3077 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1181,27.7523,118.9452,16.9922 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.3553,112.4497,16.0642 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0617,113.5858,16.2265 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0283,28.9315,114.0972,16.2996 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0581,28.1803,117.1387,16.7341 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1182,27.7240,119.0667,17.0095 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2292,28.5891,115.4635,16.4948 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.5889,111.5622,15.9375 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0277,29.6082,111.4894,15.9271 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0573,28.6036,115.4052,16.4865 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7805,118.8243,16.9749 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2315,28.3076,116.6117,16.6588 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5896,22.2305,148.4894,21.2128 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0275,29.8382,110.6301,15.8043 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0590,27.7490,118.9591,16.9942 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9699,118.0198,16.8600 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2337,28.0471,117.6948,16.8135 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.5894,22.2368,148.4475,21.2068 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.4231,18.4202,179.2050,25.6007 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0034,30.1707,109.4109,15.6301 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.1336,113.3055,16.1865 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0141,29.0357,113.6876,16.2411 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9620,113.9771,16.2824 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0589,27.7938,118.7673,16.9668 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1177,27.8454,118.5474,16.9353 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0071,28.7228,114.9259,16.4180 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0143,28.6016,115.4133,16.4876 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0277,29.5796,111.5972,15.9425 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0588,27.8794,118.4030,16.9147 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9865,117.9497,16.8500 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2282,28.7237,114.9226,16.4175 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.7967,114.6314,16.3759 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9346,114.0847,16.2978 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0570,28.7606,114.7752,16.3965 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1179,27.7814,118.8205,16.9744 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2265,28.9373,114.0741,16.2963 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.5811,22.5540,146.3601,20.9086 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6660,115.1539,16.4506 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0586,27.9693,118.0222,16.8603 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3397,116.4796,16.6399 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8080,114.5864,16.3695 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.5878,22.2982,148.0390,21.1484 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.4210,18.4483,178.9322,25.5617 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0587,27.9060,118.2900,16.8986 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9557,118.0798,16.8685 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2330,28.1226,117.3790,16.7684 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.5877,22.3042,147.9991,21.1427 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.4194,18.4681,178.7404,25.5343 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.0295,17.3061,190.7417,27.2488 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0072,28.5625,115.5712,16.5102 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0139,29.4813,111.9692,15.9956 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1991,113.0515,16.1502 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0571,28.7037,115.0028,16.4290 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1143,28.6746,115.1193,16.4456 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2279,28.7624,114.7679,16.3954 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.8441,114.4430,16.3490 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8597,114.3809,16.3401 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0571,28.6922,115.0488,16.4355 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1139,28.7644,114.7598,16.3943 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2279,28.7548,114.7984,16.3998 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.5880,22.2899,148.0941,21.1563 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0285,28.7502,114.8167,16.4024 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0571,28.7103,114.9760,16.4251 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1174,27.9047,118.2953,16.8993 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2328,28.1544,117.2462,16.7495 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5841,22.4409,147.0975,21.0139 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.4255,18.3902,179.4976,25.6425 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0588,27.8632,118.4715,16.9245 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1147,28.5722,115.5317,16.5045 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2358,27.7892,118.7872,16.9696 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.5700,22.9961,143.5462,20.5066 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.4499,18.0804,182.5737,26.0820 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.0517,17.1800,192.1420,27.4489 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9769,117.9904,16.8558 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2327,28.1641,117.2060,16.7437 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.5765,22.7359,145.1890,20.7413 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.4113,18.5747,177.7145,25.3878 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.1046,16.8873,195.4718,27.9245 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.3321,16.5596,199.3400,28.4771 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0140,29.3028,112.6513,16.0930 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0279,29.4024,112.2697,16.0385 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0571,28.7071,114.9890,16.4270 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1176,27.8618,118.4778,16.9254 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2354,27.8446,118.5509,16.9358 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.5903,22.2057,148.6558,21.2365 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0275,29.7629,110.9100,15.8443 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0588,27.8758,118.4181,16.9169 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1173,27.9366,118.1605,16.8801 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2267,28.9068,114.1947,16.3135 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.5834,22.4680,146.9204,20.9886 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.4399,18.2055,181.3185,25.9026 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0594,27.5914,119.6387,17.0912 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9773,117.9887,16.8555 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2352,27.8634,118.4709,16.9244 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.5805,22.5780,146.2041,20.8863 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.4311,18.3173,180.2122,25.7446 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.0673,17.0929,193.1212,27.5887 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1147,28.5593,115.5841,16.5120 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2338,28.0300,117.7668,16.8238 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.5872,22.3231,147.8738,21.1248 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.4118,18.5683,177.7761,25.3966 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.0614,17.1258,192.7496,27.5357 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.3631,16.4789,200.3168,28.6167 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2330,28.1262,117.3640,16.7663 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.5818,22.5288,146.5236,20.9319 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.4092,18.6030,177.4448,25.3493 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.0520,17.1785,192.1593,27.4513 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.3449,16.5264,199.7414,28.5345 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.8872,16.2732,202.8493,28.9785 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.4982,111.9052,15.9865 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0573,28.5718,115.5334,16.5048 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4428,116.0573,16.5796 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2336,28.0505,117.6807,16.8115 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.5798,22.6063,146.0209,20.8601 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.4209,18.4488,178.9273,25.5610 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0586,27.9668,118.0326,16.8618 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1160,28.2470,116.8621,16.6946 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2294,28.5742,115.5238,16.5034 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3285,147.8382,21.1197 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.4191,18.4732,178.6914,25.5273 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.0748,17.0510,193.5953,27.6565 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1159,28.2836,116.7109,16.6730 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2332,28.0997,117.4745,16.7821 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5861,22.3650,147.5965,21.0852 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.4183,18.4828,178.5985,25.5141 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.0343,17.2785,191.0463,27.2923 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.3269,16.5733,199.1752,28.4536 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8109,114.5747,16.3678 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3278,147.8425,21.1204 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.4124,18.5597,177.8585,25.4084 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.0282,17.3134,190.6611,27.2373 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.3631,16.4791,200.3148,28.6164 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.7459,16.4536,200.6248,28.6607 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.5816,22.5346,146.4856,20.9265 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.4185,18.4802,178.6234,25.5176 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.0653,17.1039,192.9967,27.5710 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.2591,16.7527,197.0425,28.1489 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.7873,16.4002,201.2777,28.7540 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.3414,16.5512,199.4419,-61.5561 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.2960,180.4222,12.0281 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0113,18.0639,182.7398,12.1827 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0232,17.6695,186.8195,12.4546 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0451,18.1703,181.6698,12.1113 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0915,17.9014,184.3990,12.2933 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8046,185.4010,12.3601 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0112,18.2238,181.1364,12.0758 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2084,181.2901,12.0860 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1204,182.1706,12.1447 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0908,18.0397,182.9853,12.1990 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8319,185.1175,12.3412 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0025,183.3630,12.2242 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0227,18.0239,183.1456,12.2097 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0451,18.1620,181.7526,12.1168 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0923,17.7419,186.0569,12.4038 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0477,182.9043,12.1936 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3646,17.9729,183.6656,12.2444 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.8363,15.6732,210.6148,14.0410 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0449,18.2632,180.7461,12.0497 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7950,185.5015,12.3668 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8299,185.1388,12.3426 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9329,184.0750,12.2717 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.8389,15.6246,211.2694,14.0846 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7340,15.1178,218.3526,14.5568 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0907,18.0613,182.7666,12.1844 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8213,185.2282,12.3485 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7464,186.0092,12.4006 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.8366,15.6679,210.6855,14.0457 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7225,15.2190,216.9000,14.4600 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.4820,15.0573,219.2297,14.6153 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0114,18.0138,183.2482,12.2165 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2077,181.2973,12.0865 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0454,18.0407,182.9754,12.1984 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0918,17.8433,184.9994,12.3333 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1826,17.9495,183.9044,12.2603 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3641,18.0005,183.3834,12.2256 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0224,18.3071,180.3121,12.0208 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0453,18.0714,182.6647,12.1776 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0906,18.0807,182.5707,12.1714 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8322,185.1142,12.3409 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0066,183.3212,12.2214 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.8361,15.6765,210.5705,14.0380 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0445,18.4011,179.3913,11.9594 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0908,18.0523,182.8576,12.1905 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8071,185.3758,12.3584 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8222,185.2185,12.3479 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.8354,15.6894,210.3971,14.0265 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7307,15.1470,217.9303,14.5287 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0915,17.8982,184.4316,12.2954 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8177,185.2656,12.3510 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3630,18.0547,182.8336,12.1889 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6691,210.6693,14.0446 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7251,15.1956,217.2335,14.4822 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.4910,15.0184,219.7975,14.6532 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.8028,185.4207,12.3614 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8242,185.1975,12.3465 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6697,210.6616,14.0441 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7215,15.2276,216.7771,14.4518 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.4890,15.0267,219.6760,14.6451 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,7.0182,14.9408,220.9380,14.7292 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0225,18.2315,181.0606,12.0707 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0454,18.0499,182.8815,12.1921 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0919,17.8201,185.2398,12.3493 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1826,17.9490,183.9098,12.2607 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3682,17.8013,185.4364,12.3624 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.8284,15.8219,208.6348,13.9090 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.0897,182.4799,12.1653 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7910,185.5429,12.3695 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.7950,185.5011,12.3667 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3644,17.9861,183.5306,12.2354 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.8360,15.6776,210.5549,14.0370 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7218,15.2250,216.8139,14.4543 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0919,17.8267,185.1722,12.3448 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0469,182.9119,12.1941 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3628,18.0620,182.7598,12.1840 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.8371,15.6579,210.8203,14.0547 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1749,217.5302,14.5020 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.4822,15.0561,219.2462,14.6164 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1814,18.0647,182.7321,12.1821 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7452,186.0226,12.4015 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.8312,15.7692,209.3325,13.9555 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7303,15.1499,217.8895,14.5260 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.4813,15.0603,219.1857,14.6124 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,7.0206,14.9358,221.0133,14.7342 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8227,185.2129,12.3475 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.8286,15.8193,208.6690,13.9113 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1243,218.2585,14.5506 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.4808,15.0624,219.1549,14.6103 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,7.0109,14.9565,220.7072,14.7138 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0846,14.8897,221.6970,-40.4557 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0455,18.0158,183.2281,12.2152 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0910,18.0058,183.3293,12.2220 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9626,183.7708,12.2514 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3649,17.9604,183.7931,12.2529 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.8305,15.7818,209.1647,13.9443 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7326,15.1299,218.1779,14.5452 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9206,184.2011,12.2801 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1817,18.0318,183.0659,12.2044 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3631,18.0476,182.9056,12.1937 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.8336,15.7244,209.9284,13.9952 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1241,218.2616,14.5508 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.4862,15.0390,219.4955,14.6330 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1817,18.0327,183.0564,12.2038 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3708,17.6763,186.7474,12.4498 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.8334,15.7281,209.8790,13.9919 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7301,15.1518,217.8613,14.5241 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.4846,15.0461,219.3931,14.6262 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,7.0117,14.9548,220.7325,14.7155 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3650,17.9532,183.8669,12.2578 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.8263,15.8627,208.0976,13.8732 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1243,218.2578,14.5505 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.4864,15.0382,219.5082,14.6339 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,7.0269,14.9223,221.2125,14.7475 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0684,14.9068,221.4424,-40.4092 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.8343,15.7113,210.1042,14.0069 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7294,15.1578,217.7754,14.5184 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.4826,15.0546,219.2679,14.6179 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,7.0182,14.9408,220.9389,14.7293 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0401,14.9369,220.9959,-40.3277 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,28.4436,14.7460,223.8568,47.0287 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0907,18.0594,182.7859,12.1857 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1821,17.9935,183.4551,12.2303 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3673,17.8419,185.0140,12.3343 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.8270,15.8488,208.2813,13.8854 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7268,15.1806,217.4484,14.4966 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.5042,14.9618,220.6282,14.7085 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.7998,185.4515,12.3634 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8227,185.2128,12.3475 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.8403,15.5980,211.6294,14.1086 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7286,15.1654,217.6671,14.5111 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.4831,15.0521,219.3045,14.6203 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,7.0128,14.9524,220.7673,14.7178 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3696,17.7295,186.1872,12.4125 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.8355,15.6870,210.4292,14.0286 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7271,15.1781,217.4841,14.4989 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.4838,15.0493,219.3463,14.6231 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,6.9985,14.9828,220.3193,14.6880 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1217,14.8505,222.2818,-40.5624 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8328,15.7387,209.7378,13.9825 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7318,15.1367,218.0798,14.5387 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.4835,15.0505,219.3286,14.6219 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,7.0249,14.9267,221.1479,14.7432 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0693,14.9059,221.4558,-40.4116 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,28.5260,14.7034,224.5056,47.1650 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7298,15.1548,217.8186,14.5212 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.4835,15.0508,219.3240,14.6216 +200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,7.0038,14.9715,220.4853,14.6990 +200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,14.0787,14.8960,221.6037,-40.4386 +200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,28.2532,14.8454,222.3579,46.7138 +200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,56.7032,14.7939,223.1326,-619.8127 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1343,296.4700,9.5635 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0367,11.1623,295.7287,9.5396 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0742,11.0459,298.8427,9.6401 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0768,298.0102,9.6132 +200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2940,11.1459,296.1616,9.5536 +200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5993,10.9363,301.8385,9.7367 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0363,11.2914,292.3454,9.4305 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0743,11.0324,299.2096,9.6519 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0358,299.1171,9.6489 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2969,11.0373,299.0780,9.6477 +200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5939,11.0341,299.1637,9.6504 +200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2794,10.2451,322.2030,10.3936 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0740,11.0639,298.3586,9.6245 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1462,11.2070,294.5475,9.5015 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2939,11.1506,296.0374,9.5496 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5989,10.9423,301.6720,9.7314 +200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2748,10.2822,321.0414,10.3562 +200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6346,9.9501,331.7548,10.7018 +200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0330,299.1930,9.6514 +200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0277,299.3378,9.6561 +200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5972,10.9748,300.7808,9.7026 +200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2769,10.2653,321.5702,10.3732 +200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6224,9.9963,330.2237,10.6524 +200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.3057,9.8816,334.0550,10.7760 +200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0311,299.2447,9.6531 +200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.6015,10.8958,302.9599,9.7729 +200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2819,10.2248,322.8439,10.4143 +200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6160,10.0209,329.4108,10.6262 +200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.2811,9.9276,332.5078,10.7261 +200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,10.6519,9.8441,335.3289,-33.6676 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1330,296.5056,9.5647 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0740,11.0736,298.0970,9.6160 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0501,298.7301,9.6365 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2933,11.1714,295.4874,9.5319 +200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9567,301.2773,9.7186 +200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2789,10.2488,322.0863,10.3899 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0739,11.0912,297.6237,9.6008 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1482,11.0545,298.6125,9.6327 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2974,11.0180,299.5995,9.6645 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5904,11.0999,297.3889,9.5932 +200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2774,10.2611,321.6992,10.3774 +200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6137,10.0297,329.1226,10.6169 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0470,298.8150,9.6392 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2975,11.0131,299.7339,9.6688 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5982,10.9562,301.2905,9.7190 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2760,10.2721,321.3560,10.3663 +200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6146,10.0263,329.2351,10.6205 +200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.2848,9.9206,332.7404,10.7336 +200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2967,11.0446,298.8779,9.6412 +200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5983,10.9536,301.3623,9.7214 +200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2785,10.2522,321.9806,10.3865 +200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6162,10.0200,329.4416,10.6271 +200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.2818,9.9263,332.5517,10.7275 +200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,10.6656,9.8314,335.7605,-33.7109 +200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9568,301.2731,9.7185 +200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2726,321.3416,10.3659 +200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6177,10.0143,329.6278,10.6332 +200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.2981,9.8957,333.5791,10.7606 +200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,10.6569,9.8394,335.4876,-33.6835 +200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,22.0848,9.4959,347.6238,-34.9020 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0734,11.1599,295.7909,9.5416 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0457,298.8502,9.6403 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2969,11.0351,299.1364,9.6496 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9182,302.3381,9.7528 +200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2791,10.2475,322.1284,10.3912 +200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6199,10.0058,329.9076,10.6422 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1471,11.1387,296.3547,9.5598 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2965,11.0523,298.6703,9.6345 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9183,302.3378,9.7528 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2728,10.2978,320.5541,10.3405 +200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0146,329.6201,10.6329 +200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.3039,9.8849,333.9450,10.7724 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2931,11.1816,295.2182,9.5232 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5996,10.9300,302.0115,9.7423 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2755,10.2760,321.2350,10.3624 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6117,10.0374,328.8698,10.6087 +200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.2872,9.9162,332.8884,10.7383 +200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,10.6518,9.8441,335.3272,-33.6674 +200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5951,11.0130,299.7369,9.6689 +200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2710,10.3123,320.1036,10.3259 +200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6168,10.0177,329.5162,10.6296 +200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.2696,9.9493,331.7830,10.7027 +200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,10.6700,9.8274,335.8990,-33.7248 +200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3463,9.8244,335.9986,-33.7348 +200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2744,10.2853,320.9430,10.3530 +200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6233,9.9930,330.3298,10.6558 +200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.2958,9.9000,333.4339,10.7559 +200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,10.6676,9.8295,335.8249,-33.7174 +200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3328,9.8306,335.7866,-33.7135 +200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,43.2515,9.6975,340.3977,1215.7060 +200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1467,11.1717,295.4785,9.5316 +200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2932,11.1753,295.3833,9.5285 +200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5962,10.9931,300.2802,9.6865 +200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2727,10.2991,320.5145,10.3392 +200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6218,9.9985,330.1501,10.6500 +200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.2997,9.8928,333.6772,10.7638 +200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2982,10.9877,300.4260,9.6912 +200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5999,10.9247,302.1584,9.7470 +200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2905,320.7800,10.3477 +200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6220,9.9977,330.1746,10.6508 +200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.2694,9.9497,331.7683,10.7022 +200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,10.6605,9.8361,335.6015,-33.6949 +200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9581,301.2397,9.7174 +200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2765,10.2682,321.4795,10.3703 +200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6141,10.0280,329.1777,10.6186 +200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.2722,9.9444,331.9453,10.7079 +200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,10.6403,9.8548,334.9650,-33.6310 +200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3337,9.8302,335.8002,-33.7149 +200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2729,321.3320,10.3655 +200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6127,10.0333,329.0044,10.6130 +200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.2880,9.9147,332.9401,10.7400 +200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,10.6384,9.8565,334.9068,-33.6252 +200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3562,9.8199,336.1558,-33.7506 +200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,42.9627,9.7627,338.1252,1207.5901 +200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6187,10.0106,329.7513,10.6371 +200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.2917,9.9078,333.1709,10.7474 +200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,10.6475,9.8481,335.1905,-33.6537 +200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3369,9.8288,335.8512,-33.7200 +200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,42.7122,9.8199,336.1533,1200.5474 +200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,86.3545,9.7141,339.8136,1213.6201 +200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2938,11.1517,296.0095,9.5487 +200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9565,301.2815,9.7188 +200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2762,10.2702,321.4139,10.3682 +200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.6196,10.0069,329.8709,10.6410 +200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.3022,9.8882,333.8331,10.7688 +200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,10.6430,9.8523,335.0502,-33.6396 +200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5980,10.9588,301.2187,9.7167 +200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2720,10.3042,320.3540,10.3340 +200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6136,10.0298,329.1186,10.6167 +200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.2814,9.9272,332.5222,10.7265 +200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,10.6593,9.8372,335.5619,-33.6910 +200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3728,9.8123,336.4161,-33.7767 +200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2904,320.7839,10.3479 +200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6248,9.9870,330.5291,10.6622 +200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.2807,9.9284,332.4815,10.7252 +200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,10.6290,9.8653,334.6079,-33.5952 +200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3837,9.8072,336.5883,-33.7940 +200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,42.8648,9.7850,337.3547,1204.8384 +200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6133,10.0311,329.0782,10.6154 +200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.2990,9.8941,333.6320,10.7623 +200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,10.6473,9.8483,335.1850,-33.6531 +200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3139,9.8394,335.4895,-33.6837 +200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,42.7194,9.8183,336.2104,1200.7513 +200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,86.0053,9.7536,338.4393,1208.7117 +200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.2792,9.9312,332.3876,10.7222 +200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,10.6422,9.8530,335.0261,-33.6372 +200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,21.3188,9.8371,335.5660,-33.6914 +200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,42.7500,9.8112,336.4510,1201.6108 +200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,86.0358,9.7501,338.5595,1209.1409 +200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,175.8321,9.5416,345.9584,1235.5657 diff --git a/scripts/run_stub.sh b/scripts/run_stub.sh index ff1a6b9..2cf15a2 100644 --- a/scripts/run_stub.sh +++ b/scripts/run_stub.sh @@ -1,6 +1,6 @@ #!/bin/bash -while getopts "a:f:n:r:x:y:z:" flag; do +while getopts "a:f:n:o:r:x:y:z:" flag; do case "${flag}" in a) atoms_per_unit_cell=${OPTARG};; f) frequency=${OPTARG};; diff --git a/src/main-stub.c b/src/main-stub.c index 0f7aa71..bc8bc79 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -201,7 +201,7 @@ int main(int argc, const char *argv[]) { double T_accum = E-S; const double atoms_updates_per_sec = atom->Nlocal * param.ntimes / T_accum; const double cycles_per_atom = T_accum * freq / (atom->Nlocal * param.ntimes); - const double cycles_per_neigh = T_accum * freq / (atom->Nlocal * (atoms_per_unit_cell - 1) * param.ntimes); + const double cycles_per_neigh = cycles_per_atom / (atoms_per_unit_cell - 1); if(!csv) { printf("Total time: %.4f, Mega atom updates/s: %.4f\n", T_accum, atoms_updates_per_sec / 1.E6); From 0a814079487ba7a5289f6836f19ab68ad15a4ec9 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 29 Apr 2021 20:29:00 +0200 Subject: [PATCH 15/32] Fix invalid values for cycles per neighbor Signed-off-by: Rafael Ravedutti --- src/main-stub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main-stub.c b/src/main-stub.c index bc8bc79..a884ae0 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -201,7 +201,7 @@ int main(int argc, const char *argv[]) { double T_accum = E-S; const double atoms_updates_per_sec = atom->Nlocal * param.ntimes / T_accum; const double cycles_per_atom = T_accum * freq / (atom->Nlocal * param.ntimes); - const double cycles_per_neigh = cycles_per_atom / (atoms_per_unit_cell - 1); + const double cycles_per_neigh = cycles_per_atom / (double)(atoms_per_unit_cell - 1); if(!csv) { printf("Total time: %.4f, Mega atom updates/s: %.4f\n", T_accum, atoms_updates_per_sec / 1.E6); From faf1e2ae85d064dc6117ecd5ca686071acdf0633 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Fri, 30 Apr 2021 15:58:54 +0200 Subject: [PATCH 16/32] Update results and assembly for SoA Signed-off-by: Rafael Ravedutti --- asm/force_soa_intel.s | 541 ++++++++++++++++++++++++++++ scripts/results_aos_casclakesp2.txt | 450 +++++++++++++++++++++++ scripts/results_aos_skylakesp2.txt | 450 +++++++++++++++++++++++ scripts/results_soa_casclakesp2.txt | 450 +++++++++++++++++++++++ 4 files changed, 1891 insertions(+) create mode 100644 asm/force_soa_intel.s create mode 100644 scripts/results_aos_casclakesp2.txt create mode 100644 scripts/results_soa_casclakesp2.txt diff --git a/asm/force_soa_intel.s b/asm/force_soa_intel.s new file mode 100644 index 0000000..de4a250 --- /dev/null +++ b/asm/force_soa_intel.s @@ -0,0 +1,541 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -masm=intel -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -q"; +# mark_description "opt-zmm-usage=high -o ICC/force.s"; + .intel_syntax noprefix + .file "force.c" + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *, int) +computeForce: +# parameter 1: rdi +# parameter 2: rsi +# parameter 3: rdx +# parameter 4: ecx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #35.1 + push r12 #35.1 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + push r13 #35.1 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + push r14 #35.1 + .cfi_def_cfa_offset 32 + .cfi_offset 14, -32 +# r9d <- atom->Nlocal + mov r9d, DWORD PTR [4+rsi] #36.18 +# xmm2 <- param->cutforce + vmovsd xmm2, QWORD PTR [72+rdi] #38.27 +# xmm1 <- param->sigma6 + vmovsd xmm1, QWORD PTR [8+rdi] #39.23 +# xmm0 <- param->epsilon + vmovsd xmm0, QWORD PTR [rdi] #40.24 +# r13 <- atom->fx + mov r13, QWORD PTR [64+rsi] #41.20 +# r14 <- atom->fy + mov r14, QWORD PTR [72+rsi] #41.45 +# rdi <- atom->fz + mov rdi, QWORD PTR [80+rsi] #41.70 +# atom->Nlocal <= 0 + test r9d, r9d #44.24 + jle ..B1.30 # Prob 50% #44.24 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] +# r10d <- 0 + xor r10d, r10d #44.5 +# ecx <- atom->Nlocal + mov ecx, r9d #44.5 +# r8d <- 0 + xor r8d, r8d #44.5 +# r11d <- 1 + mov r11d, 1 #44.5 +# eax <- 0 + xor eax, eax #45.17 +# ecx <- atom->Nlocal >> 1 + shr ecx, 1 #44.5 + je ..B1.6 # Prob 9% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] +# fx[i] <- 0 + mov QWORD PTR [r8+r13], rax #45.9 +# i++ + inc r10 #44.5 +# fy[i] <- 0 + mov QWORD PTR [r8+r14], rax #46.9 +# fz[i] <- 0 + mov QWORD PTR [r8+rdi], rax #47.9 +# fx[i] <- 0 + mov QWORD PTR [8+r8+r13], rax #45.9 +# fy[i] <- 0 + mov QWORD PTR [8+r8+r14], rax #46.9 +# fz[i] <- 0 + mov QWORD PTR [8+r8+rdi], rax #47.9 +# i++ + add r8, 16 #44.5 +# i < Nlocal + cmp r10, rcx #44.5 + jb ..B1.4 # Prob 63% #44.5 + # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] +# r11d <- i * 2 + 1 + lea r11d, DWORD PTR [1+r10+r10] #45.9 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] +# r11d <- i * 2 + lea ecx, DWORD PTR [-1+r11] #44.5 +# i < Nlocal + cmp ecx, r9d #44.5 + jae ..B1.8 # Prob 9% #44.5 + # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] +# r11 <- i * 2 + movsxd r11, r11d #44.5 +# fx[i] <- 0 + mov QWORD PTR [-8+r13+r11*8], rax #45.9 +# fy[i] <- 0 + mov QWORD PTR [-8+r14+r11*8], rax #46.9 +# fz[i] <- 0 + mov QWORD PTR [-8+rdi+r11*8], rax #47.9 + # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] +# xmm15 <- cutforcesq + vmulsd xmm15, xmm2, xmm2 #38.45 +# r8d <- 0 + xor r8d, r8d #55.15 +# ymm18 <- 8 + vmovdqu32 ymm18, YMMWORD PTR .L_2il0floatpacket.0[rip] #67.9 +# xmm0 <- 48 * sr6 * epsilon + vmulsd xmm0, xmm0, QWORD PTR .L_2il0floatpacket.3[rip] #77.41 +# ymm17 <- [0..7] + vmovdqu32 ymm17, YMMWORD PTR .L_2il0floatpacket.1[rip] #67.9 +# zmm7 <- 0.5 + vmovups zmm7, ZMMWORD PTR .L_2il0floatpacket.4[rip] #77.54 +# zmm16 <- cutforcesq + vbroadcastsd zmm16, xmm15 #38.25 +# zmm15 <- param->sigma6 + vbroadcastsd zmm15, xmm1 #39.21 +# zmm16 <- 48 * sr6 * epsilon + vbroadcastsd zmm14, xmm0 #77.41 +# r9 <- atom->Nlocal + movsxd r9, r9d #55.5 +# r10d <- 0 (i) + xor r10d, r10d #55.5 +# rcx <- neighbor->numneigh + mov rcx, QWORD PTR [24+rdx] #57.25 +# r11 <- neighbor->neighbors + mov r11, QWORD PTR [8+rdx] #56.19 +# r12 <- neighbor->maxneighs + movsxd r12, DWORD PTR [16+rdx] #56.43 +# rdx <- atom->x + mov rdx, QWORD PTR [16+rsi] #58.25 +# rax <- atom->y + mov rax, QWORD PTR [24+rsi] #59.25 +# rsi <- atom->z + mov rsi, QWORD PTR [32+rsi] #60.25 +# r12 <- neighbor->maxneighs * 4 + shl r12, 2 #37.5 +# [-32+rsp] <- atom->Nlocal + mov QWORD PTR [-32+rsp], r9 #60.25[spill] +# [-24+rsp] <- neighbor->numneigh + mov QWORD PTR [-24+rsp], rcx #60.25[spill] +# [-16+rsp] <- atom->fy + mov QWORD PTR [-16+rsp], r14 #60.25[spill] +# [-8+rsp] <- atom->fx + mov QWORD PTR [-8+rsp], r13 #60.25[spill] +# [-40+rsp] <- r15 + mov QWORD PTR [-40+rsp], r15 #60.25[spill] +# [-48+rsp] <- rbx + mov QWORD PTR [-48+rsp], rbx #60.25[spill] +# zmm19 <- 0 + vpxord zmm19, zmm19, zmm19 #61.22 + .cfi_offset 3, -80 + .cfi_offset 15, -72 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.9: # Preds ..B1.27 ..B1.8 + # Execution count [5.00e+00] +# rcx <- neighbor->numneigh + mov rcx, QWORD PTR [-24+rsp] #57.25[spill] +# xmm25 <- 0 + vxorpd xmm25, xmm25, xmm25 #61.22 +# xmm20 <- 0 + vmovapd xmm20, xmm25 #62.22 +# r13d <- neighbor->numneigh[i] (numneighs) + mov r13d, DWORD PTR [rcx+r10*4] #57.25 +# xmm4 <- 0 + vmovapd xmm4, xmm20 #63.22 +# xmm8 <- atom->x[i] + vmovsd xmm8, QWORD PTR [rdx+r10*8] #58.25 +# xmm9 <- atom->y[i] + vmovsd xmm9, QWORD PTR [rax+r10*8] #59.25 +# xmm9 <- atom->z[i] + vmovsd xmm10, QWORD PTR [rsi+r10*8] #60.25 +# numneighs <= 0 + test r13d, r13d #67.28 + jle ..B1.27 # Prob 50% #67.28 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.10: # Preds ..B1.9 + # Execution count [4.50e+00] +# zmm13 <- 0 + vmovaps zmm13, zmm19 #61.22 +# zmm12 <- 0 + vmovaps zmm12, zmm13 #62.22 +# zmm11 <- 0 + vmovaps zmm11, zmm12 #63.22 +# numneighs < 8 + cmp r13d, 8 #67.9 + jl ..B1.32 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+00] +# numneighs < 1200 + cmp r13d, 1200 #67.9 + jl ..B1.31 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+00] + mov rcx, r12 #56.43 + imul rcx, r8 #56.43 + add rcx, r11 #37.5 + mov r9, rcx #67.9 + and r9, 63 #67.9 + test r9d, 3 #67.9 + je ..B1.14 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.13: # Preds ..B1.12 + # Execution count [2.25e+00] + xor r9d, r9d #67.9 + jmp ..B1.16 # Prob 100% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.14: # Preds ..B1.12 + # Execution count [2.25e+00] + test r9d, r9d #67.9 + je ..B1.16 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.15: # Preds ..B1.14 + # Execution count [2.50e+01] + neg r9d #67.9 + add r9d, 64 #67.9 + shr r9d, 2 #67.9 + cmp r13d, r9d #67.9 + cmovl r9d, r13d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 + # Execution count [5.00e+00] + mov ebx, r13d #67.9 + sub ebx, r9d #67.9 + and ebx, 7 #67.9 + neg ebx #67.9 + add ebx, r13d #67.9 + cmp r9d, 1 #67.9 + jb ..B1.20 # Prob 50% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.17: # Preds ..B1.16 + # Execution count [4.50e+00] + vmovdqa32 ymm4, ymm17 #67.9 + xor r15d, r15d #67.9 + vpbroadcastd ymm3, r9d #67.9 + vbroadcastsd zmm2, xmm8 #58.23 + vbroadcastsd zmm5, xmm9 #59.23 + vbroadcastsd zmm6, xmm10 #60.23 + movsxd r14, r9d #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.18: # Preds ..B1.18 ..B1.17 + # Execution count [2.50e+01] + vpcmpgtd k5, ymm3, ymm4 #67.9 + vpaddd ymm4, ymm4, ymm18 #67.9 + vmovdqu32 ymm20{k5}{z}, YMMWORD PTR [rcx+r15*4] #68.21 + vmovaps zmm22, zmm19 #70.36 + add r15, 8 #67.9 + kmovw k2, k5 #70.36 + vmovaps zmm21, zmm19 #69.36 + kmovw k1, k5 #69.36 + vmovaps zmm23, zmm19 #71.36 + kmovw k3, k5 #71.36 + vgatherdpd zmm23{k3}, QWORD PTR [rsi+ymm20*8] #71.36 + vgatherdpd zmm22{k2}, QWORD PTR [rax+ymm20*8] #70.36 + vgatherdpd zmm21{k1}, QWORD PTR [rdx+ymm20*8] #69.36 + vsubpd zmm0, zmm5, zmm22 #70.36 + vsubpd zmm1, zmm2, zmm21 #69.36 + vsubpd zmm21, zmm6, zmm23 #71.36 + vmulpd zmm20, zmm0, zmm0 #72.49 + vfmadd231pd zmm20, zmm1, zmm1 #72.49 + vfmadd231pd zmm20, zmm21, zmm21 #72.63 + vrcp14pd zmm31, zmm20 #75.38 + vcmppd k6{k5}, zmm20, zmm16, 1 #74.22 + vfpclasspd k0, zmm31, 30 #75.38 + vmovaps zmm24, zmm20 #75.38 + vfnmadd213pd zmm24, zmm31, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 + knotw k4, k0 #75.38 + vmulpd zmm25, zmm24, zmm24 #75.38 + vfmadd213pd zmm31{k4}, zmm24, zmm31 #75.38 + vfmadd213pd zmm31{k4}, zmm25, zmm31 #75.38 + vmulpd zmm26, zmm31, zmm15 #76.38 + vmulpd zmm28, zmm31, zmm14 #77.54 + vmulpd zmm29, zmm31, zmm26 #76.44 + vmulpd zmm27, zmm31, zmm29 #76.50 + vfmsub213pd zmm31, zmm29, zmm7 #77.54 + vmulpd zmm30, zmm27, zmm28 #77.61 + vmulpd zmm24, zmm30, zmm31 #77.67 + vfmadd231pd zmm13{k6}, zmm24, zmm1 #78.17 + vfmadd231pd zmm12{k6}, zmm24, zmm0 #79.17 + vfmadd231pd zmm11{k6}, zmm24, zmm21 #80.17 + cmp r15, r14 #67.9 + jb ..B1.18 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.19: # Preds ..B1.18 + # Execution count [4.50e+00] + cmp r13d, r9d #67.9 + je ..B1.26 # Prob 10% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 + # Execution count [2.50e+01] + lea ecx, DWORD PTR [8+r9] #67.9 + cmp ebx, ecx #67.9 + jl ..B1.24 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.21: # Preds ..B1.20 + # Execution count [4.50e+00] + mov rcx, r12 #56.43 + imul rcx, r8 #56.43 + vbroadcastsd zmm0, xmm8 #58.23 + vbroadcastsd zmm1, xmm9 #59.23 + vbroadcastsd zmm2, xmm10 #60.23 + movsxd r14, r9d #67.9 + add rcx, r11 #37.5 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.22: # Preds ..B1.22 ..B1.21 + # Execution count [2.50e+01] + vpcmpeqb k2, xmm0, xmm0 #70.36 + add r9d, 8 #67.9 + vpcmpeqb k1, xmm0, xmm0 #69.36 + vpcmpeqb k3, xmm0, xmm0 #71.36 + vmovdqu ymm3, YMMWORD PTR [rcx+r14*4] #68.21 + add r14, 8 #67.9 + vpxord zmm5, zmm5, zmm5 #70.36 + vpxord zmm4, zmm4, zmm4 #69.36 + vpxord zmm6, zmm6, zmm6 #71.36 + vgatherdpd zmm5{k2}, QWORD PTR [rax+ymm3*8] #70.36 + vgatherdpd zmm4{k1}, QWORD PTR [rdx+ymm3*8] #69.36 + vgatherdpd zmm6{k3}, QWORD PTR [rsi+ymm3*8] #71.36 + vsubpd zmm29, zmm1, zmm5 #70.36 + vsubpd zmm28, zmm0, zmm4 #69.36 + vsubpd zmm31, zmm2, zmm6 #71.36 + vmulpd zmm20, zmm29, zmm29 #72.49 + vfmadd231pd zmm20, zmm28, zmm28 #72.49 + vfmadd231pd zmm20, zmm31, zmm31 #72.63 + vrcp14pd zmm27, zmm20 #75.38 + vcmppd k5, zmm20, zmm16, 1 #74.22 + vfpclasspd k0, zmm27, 30 #75.38 + vfnmadd213pd zmm20, zmm27, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 + knotw k4, k0 #75.38 + vmulpd zmm21, zmm20, zmm20 #75.38 + vfmadd213pd zmm27{k4}, zmm20, zmm27 #75.38 + vfmadd213pd zmm27{k4}, zmm21, zmm27 #75.38 + vmulpd zmm22, zmm27, zmm15 #76.38 + vmulpd zmm24, zmm27, zmm14 #77.54 + vmulpd zmm25, zmm27, zmm22 #76.44 + vmulpd zmm23, zmm27, zmm25 #76.50 + vfmsub213pd zmm27, zmm25, zmm7 #77.54 + vmulpd zmm26, zmm23, zmm24 #77.61 + vmulpd zmm30, zmm26, zmm27 #77.67 + vfmadd231pd zmm13{k5}, zmm30, zmm28 #78.17 + vfmadd231pd zmm12{k5}, zmm30, zmm29 #79.17 + vfmadd231pd zmm11{k5}, zmm30, zmm31 #80.17 + cmp r9d, ebx #67.9 + jb ..B1.22 # Prob 82% #67.9 + # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 + # Execution count [5.00e+00] + lea ecx, DWORD PTR [1+rbx] #67.9 + cmp ecx, r13d #67.9 + ja ..B1.26 # Prob 50% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.25: # Preds ..B1.24 + # Execution count [2.50e+01] + imul r8, r12 #56.43 + vbroadcastsd zmm9, xmm9 #59.23 + vbroadcastsd zmm2, xmm8 #58.23 + vbroadcastsd zmm10, xmm10 #60.23 + sub r13d, ebx #67.9 + add r8, r11 #37.5 + vpbroadcastd ymm0, r13d #67.9 + vpcmpgtd k5, ymm0, ymm17 #67.9 + movsxd rbx, ebx #67.9 + vmovaps zmm4, zmm19 #70.36 + kmovw k2, k5 #70.36 + vmovaps zmm3, zmm19 #69.36 + vmovdqu32 ymm1{k5}{z}, YMMWORD PTR [r8+rbx*4] #68.21 + kmovw k1, k5 #69.36 + vmovaps zmm5, zmm19 #71.36 + kmovw k3, k5 #71.36 + vgatherdpd zmm5{k3}, QWORD PTR [rsi+ymm1*8] #71.36 + vgatherdpd zmm4{k2}, QWORD PTR [rax+ymm1*8] #70.36 + vgatherdpd zmm3{k1}, QWORD PTR [rdx+ymm1*8] #69.36 + vsubpd zmm30, zmm10, zmm5 #71.36 + vsubpd zmm28, zmm9, zmm4 #70.36 + vsubpd zmm27, zmm2, zmm3 #69.36 + vmulpd zmm26, zmm28, zmm28 #72.49 + vfmadd231pd zmm26, zmm27, zmm27 #72.49 + vfmadd231pd zmm26, zmm30, zmm30 #72.63 + vrcp14pd zmm25, zmm26 #75.38 + vcmppd k6{k5}, zmm26, zmm16, 1 #74.22 + vfpclasspd k0, zmm25, 30 #75.38 + vmovaps zmm6, zmm26 #75.38 + vfnmadd213pd zmm6, zmm25, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 + knotw k4, k0 #75.38 + vmulpd zmm8, zmm6, zmm6 #75.38 + vfmadd213pd zmm25{k4}, zmm6, zmm25 #75.38 + vfmadd213pd zmm25{k4}, zmm8, zmm25 #75.38 + vmulpd zmm20, zmm25, zmm15 #76.38 + vmulpd zmm22, zmm25, zmm14 #77.54 + vmulpd zmm23, zmm25, zmm20 #76.44 + vmulpd zmm21, zmm25, zmm23 #76.50 + vfmsub213pd zmm25, zmm23, zmm7 #77.54 + vmulpd zmm24, zmm21, zmm22 #77.61 + vmulpd zmm29, zmm24, zmm25 #77.67 + vfmadd231pd zmm13{k6}, zmm29, zmm27 #78.17 + vfmadd231pd zmm12{k6}, zmm29, zmm28 #79.17 + vfmadd231pd zmm11{k6}, zmm29, zmm30 #80.17 + # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 + # Execution count [4.50e+00] + vmovups zmm10, ZMMWORD PTR .L_2il0floatpacket.6[rip] #63.22 + vpermd zmm0, zmm10, zmm11 #63.22 + vpermd zmm5, zmm10, zmm12 #62.22 + vpermd zmm21, zmm10, zmm13 #61.22 + vaddpd zmm11, zmm0, zmm11 #63.22 + vaddpd zmm12, zmm5, zmm12 #62.22 + vaddpd zmm13, zmm21, zmm13 #61.22 + vpermpd zmm1, zmm11, 78 #63.22 + vpermpd zmm6, zmm12, 78 #62.22 + vpermpd zmm22, zmm13, 78 #61.22 + vaddpd zmm2, zmm11, zmm1 #63.22 + vaddpd zmm8, zmm12, zmm6 #62.22 + vaddpd zmm23, zmm13, zmm22 #61.22 + vpermpd zmm3, zmm2, 177 #63.22 + vpermpd zmm9, zmm8, 177 #62.22 + vpermpd zmm24, zmm23, 177 #61.22 + vaddpd zmm4, zmm2, zmm3 #63.22 + vaddpd zmm20, zmm8, zmm9 #62.22 + vaddpd zmm25, zmm23, zmm24 #61.22 + # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.27: # Preds ..B1.26 ..B1.9 + # Execution count [5.00e+00] + mov rcx, QWORD PTR [-8+rsp] #84.9[spill] + mov rbx, QWORD PTR [-16+rsp] #85.9[spill] + movsxd r8, r10d #55.32 + inc r8 #55.32 + vaddsd xmm0, xmm25, QWORD PTR [rcx+r10*8] #84.9 + vmovsd QWORD PTR [rcx+r10*8], xmm0 #84.9 + vaddsd xmm1, xmm20, QWORD PTR [rbx+r10*8] #85.9 + vmovsd QWORD PTR [rbx+r10*8], xmm1 #85.9 + vaddsd xmm2, xmm4, QWORD PTR [rdi+r10*8] #86.9 + vmovsd QWORD PTR [rdi+r10*8], xmm2 #86.9 + inc r10 #55.5 + cmp r10, QWORD PTR [-32+rsp] #55.5[spill] + jb ..B1.9 # Prob 82% #55.5 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 +..B1.28: # Preds ..B1.27 + # Execution count [9.00e-01] + mov r15, QWORD PTR [-40+rsp] #[spill] + .cfi_restore 15 + mov rbx, QWORD PTR [-48+rsp] #[spill] + .cfi_restore 3 + # LOE rbx rbp r15 +..B1.30: # Preds ..B1.1 ..B1.28 + # Execution count [1.00e+00] + vzeroupper #93.12 + vxorpd xmm0, xmm0, xmm0 #93.12 + .cfi_restore 14 + pop r14 #93.12 + .cfi_def_cfa_offset 24 + .cfi_restore 13 + pop r13 #93.12 + .cfi_def_cfa_offset 16 + .cfi_restore 12 + pop r12 #93.12 + .cfi_def_cfa_offset 8 + ret #93.12 + .cfi_def_cfa_offset 32 + .cfi_offset 3, -80 + .cfi_offset 12, -16 + .cfi_offset 13, -24 + .cfi_offset 14, -32 + .cfi_offset 15, -72 + # LOE +..B1.31: # Preds ..B1.11 + # Execution count [4.50e-01]: Infreq + mov ebx, r13d #67.9 + xor r9d, r9d #67.9 + and ebx, -8 #67.9 + jmp ..B1.20 # Prob 100% #67.9 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 +..B1.32: # Preds ..B1.10 + # Execution count [4.50e-01]: Infreq + xor ebx, ebx #67.9 + jmp ..B1.24 # Prob 100% #67.9 + .align 16,0x90 + # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 64 + .align 64 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,64 + .align 64 +.L_2il0floatpacket.4: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,64 + .align 64 +.L_2il0floatpacket.6: + .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f + .type .L_2il0floatpacket.6,@object + .size .L_2il0floatpacket.6,64 + .align 32 +.L_2il0floatpacket.0: + .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,32 + .align 32 +.L_2il0floatpacket.1: + .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,32 + .align 8 +.L_2il0floatpacket.3: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,8 + .align 8 +.L_2il0floatpacket.5: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.5,@object + .size .L_2il0floatpacket.5,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/scripts/results_aos_casclakesp2.txt b/scripts/results_aos_casclakesp2.txt new file mode 100644 index 0000000..a73b262 --- /dev/null +++ b/scripts/results_aos_casclakesp2.txt @@ -0,0 +1,450 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0016,31.3286,76.6074,10.9439 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0034,30.5402,78.5851,11.2264 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0068,30.2173,79.4248,11.3464 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0137,30.0069,79.9815,11.4259 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0272,30.1585,79.5795,11.3685 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0570,28.7247,83.5518,11.9360 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0034,30.4999,78.6887,11.2412 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0069,29.8712,80.3449,11.4778 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0136,30.2043,79.4588,11.3513 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0270,30.2881,79.2391,11.3199 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0573,28.5762,83.9861,11.9980 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1153,28.4258,84.4303,12.0615 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0066,31.0076,77.4004,11.0572 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0132,30.9218,77.6152,11.0879 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0272,30.1032,79.7258,11.3894 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0567,28.9101,83.0160,11.8594 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3389,84.6893,12.0985 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2277,28.7869,83.3713,11.9102 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0136,30.2157,79.4289,11.3470 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0275,29.7785,80.5951,11.5136 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0566,28.9500,82.9015,11.8431 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1167,28.0786,85.4744,12.2106 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2276,28.7961,83.3446,11.9064 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.4624,28.3432,84.6765,12.0966 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0272,30.1718,79.5444,11.3635 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0574,28.5211,84.1482,12.0212 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6206,83.8558,11.9794 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2235,29.3180,81.8611,11.6944 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.4677,28.0274,85.6305,12.2329 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.2438,21.0760,113.8738,16.2677 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0034,30.3789,79.0023,11.2860 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0068,30.0176,79.9532,11.4219 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0136,30.2149,79.4309,11.3473 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0269,30.5030,78.6807,11.2401 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0581,28.1906,85.1349,12.1621 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1151,28.4795,84.2712,12.0387 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0068,30.1697,79.5501,11.3643 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0137,29.9307,80.1853,11.4550 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0267,30.6941,78.1910,11.1701 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0579,28.3008,84.8033,12.1148 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1165,28.1230,85.3395,12.1914 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2284,28.6881,83.6583,11.9512 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0137,29.9813,80.0498,11.4357 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0274,29.9487,80.1369,11.4481 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0569,28.7964,83.3438,11.9063 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1150,28.5022,84.2039,12.0291 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2281,28.7316,83.5316,11.9331 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.4686,27.9702,85.8055,12.2579 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0268,30.6043,78.4204,11.2029 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0562,29.1740,82.2649,11.7521 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1158,28.2999,84.8059,12.1151 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8054,83.3178,11.9025 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.4667,28.0853,85.4540,12.2077 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.2352,21.2224,113.0883,16.1555 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0581,28.2059,85.0885,12.1555 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1165,28.1387,85.2918,12.1845 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9194,82.9892,11.8556 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.4618,28.3802,84.5661,12.0809 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.2085,21.6913,110.6434,15.8062 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.2471,16.1463,148.6409,21.2344 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0068,30.3205,79.1543,11.3078 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0136,30.2035,79.4611,11.3516 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0273,30.0167,79.9555,11.4222 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0571,28.7024,83.6168,11.9453 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1154,28.4058,84.4899,12.0700 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2190,29.9276,80.1934,11.4562 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.7709,80.6158,11.5165 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0273,30.0582,79.8451,11.4064 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0577,28.3944,84.5238,12.0748 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1113,29.4382,81.5267,11.6467 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2247,29.1619,82.2992,11.7570 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.4572,28.6660,83.7229,11.9604 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0269,30.4826,78.7334,11.2476 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0575,28.5172,84.1597,12.0228 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6233,83.8476,11.9782 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2246,29.1736,82.2660,11.7523 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.4568,28.6941,83.6410,11.9487 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.2084,21.6932,110.6338,15.8048 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0575,28.4700,84.2994,12.0428 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1143,28.6568,83.7497,11.9642 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2298,28.5246,84.1378,12.0197 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.4589,28.5652,84.0182,12.0026 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.2003,21.8406,109.8869,15.6981 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.1864,16.4538,145.8629,20.8376 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1155,28.3812,84.5629,12.0804 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9186,82.9915,11.8559 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.4500,29.1273,82.3969,11.7710 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.2058,21.7407,110.3920,15.7703 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.2580,16.0921,149.1411,21.3059 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,7.0624,14.8472,161.6462,23.0923 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0136,30.2024,79.4640,11.3520 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0272,30.1067,79.7165,11.3881 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0558,29.3475,81.7786,11.6827 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1131,28.9697,82.8452,11.8350 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9188,82.9910,11.8559 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.4571,28.6719,83.7058,11.9580 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0267,30.6548,78.2913,11.1845 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0565,28.9951,82.7725,11.8246 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2313,85.0119,12.1446 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2236,29.3134,81.8739,11.6963 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.4577,28.6354,83.8122,11.9732 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.2065,21.7269,110.4620,15.7803 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0564,29.0619,82.5825,11.7975 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1149,28.5307,84.1199,12.0171 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2242,29.2341,82.0959,11.7280 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.4530,28.9334,82.9492,11.8499 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.2210,21.4702,111.7830,15.9690 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.2488,16.1378,148.7188,21.2455 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1138,28.8006,83.3317,11.9045 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2283,28.7093,83.5966,11.9424 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.4490,29.1907,82.2179,11.7454 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.2358,21.2121,113.1431,16.1633 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.2416,16.1738,148.3884,21.1983 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,7.0780,14.8145,162.0034,23.1433 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2284,28.6984,83.6283,11.9469 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.4556,28.7686,83.4243,11.9178 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.2309,21.2978,112.6880,16.0983 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.2217,16.2735,147.4793,21.0685 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,7.1806,14.6029,164.3510,23.4787 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,14.3679,14.5961,164.4279,23.4897 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0273,30.0281,79.9251,11.4179 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0570,28.7561,83.4607,11.9230 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6263,83.8391,11.9770 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2273,28.8273,83.2544,11.8935 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4798,27.3181,87.8537,12.5505 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.2127,21.6162,111.0279,15.8611 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0565,28.9784,82.8203,11.8315 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1131,28.9691,82.8468,11.8353 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2251,29.1085,82.4501,11.7786 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4546,28.8315,83.2422,11.8917 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.2090,21.6824,110.6888,15.8127 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.2163,16.3010,147.2298,21.0328 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4384,84.3931,12.0562 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2273,28.8373,83.2257,11.8894 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.4812,27.2382,88.1115,12.5874 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.2232,21.4307,111.9891,15.9984 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.1955,16.4069,146.2800,20.8971 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,7.1952,14.5732,164.6858,23.5265 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2265,28.9330,82.9502,11.8500 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5024,26.0894,91.9913,13.1416 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.2188,21.5088,111.5821,15.9403 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.2184,16.2901,147.3285,21.0469 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,7.0597,14.8529,161.5841,23.0834 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,14.5806,14.3832,166.8613,23.8373 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.4546,28.8336,83.2361,11.8909 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.2400,21.1414,113.5215,16.2174 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.2102,16.3320,146.9510,20.9930 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,7.1222,14.7227,163.0139,23.2877 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,14.4043,14.5593,164.8437,23.5491 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,28.8310,14.5479,164.9724,23.5675 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0055,18.7721,127.8494,8.5233 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0108,18.8919,127.0386,8.4692 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0217,18.8390,127.3953,8.4930 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0438,18.7125,128.2565,8.5504 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0894,18.3265,130.9576,8.7305 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1766,18.5508,129.3744,8.6250 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0108,18.9210,126.8434,8.4562 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0217,18.9109,126.9106,8.4607 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0441,18.5708,129.2352,8.6157 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0883,18.5564,129.3351,8.6223 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1758,18.6440,128.7276,8.5818 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3520,18.6169,128.9148,8.5943 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0218,18.8228,127.5050,8.5003 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0437,18.7451,128.0334,8.5356 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0892,18.3753,130.6102,8.7073 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1773,18.4770,129.8910,8.6594 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3472,18.8739,127.1597,8.4773 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.7188,18.2342,131.6211,8.7747 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0432,18.9414,126.7065,8.4471 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0887,18.4681,129.9539,8.6636 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1779,18.4177,130.3097,8.6873 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3515,18.6457,128.7157,8.5810 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.7172,18.2746,131.3300,8.7553 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7695,14.8150,161.9980,10.7999 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0878,18.6524,128.6696,8.5780 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1791,18.2972,131.1673,8.7445 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3522,18.6056,128.9933,8.5996 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.7149,18.3332,130.9103,8.7274 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7628,14.8711,161.3873,10.7592 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,4.0027,13.0982,183.2306,12.2154 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0107,19.1269,125.4779,8.3652 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0216,18.9319,126.7701,8.4513 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0433,18.9287,126.7916,8.4528 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0888,18.4489,130.0893,8.6726 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1747,18.7517,127.9884,8.5326 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3523,18.6023,129.0163,8.6011 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0216,18.9696,126.5184,8.4346 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0436,18.7761,127.8222,8.5215 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0889,18.4242,130.2632,8.6842 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1783,18.3747,130.6141,8.7076 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3517,18.6356,128.7861,8.5857 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.7266,18.0382,133.0508,8.8701 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0439,18.6448,128.7220,8.5815 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0902,18.1590,132.1657,8.8110 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1773,18.4786,129.8799,8.6587 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3516,18.6372,128.7747,8.5850 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.7154,18.3217,130.9920,8.7328 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7763,14.7579,162.6247,10.8416 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0881,18.6023,129.0164,8.6011 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1782,18.3872,130.5254,8.7017 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3524,18.5996,129.0351,8.6023 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.7284,17.9940,133.3779,8.8919 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7605,14.8904,161.1771,10.7451 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,4.0180,13.0484,183.9300,12.2620 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1789,18.3191,131.0111,8.7341 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3529,18.5730,129.2201,8.6147 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.7318,17.9113,133.9936,8.9329 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7637,14.8629,161.4761,10.7651 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.9553,13.2553,181.0596,12.0706 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,8.4619,12.3918,193.6766,12.9118 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0217,18.8926,127.0335,8.4689 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0435,18.8480,127.3345,8.4890 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0873,18.7736,127.8388,8.5226 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1762,18.6018,129.0198,8.6013 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3528,18.5762,129.1979,8.6132 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.7303,17.9482,133.7180,8.9145 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0438,18.7211,128.1975,8.5465 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0895,18.3125,131.0580,8.7372 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1794,18.2652,131.3976,8.7598 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3518,18.6292,128.8299,8.5887 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.7323,17.8998,134.0798,8.9387 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7832,14.7006,163.2583,10.8839 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0876,18.7029,128.3222,8.5548 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1778,18.4260,130.2506,8.6834 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3532,18.5531,129.3583,8.6239 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.7349,17.8365,134.5554,8.9704 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7469,15.0064,159.9322,10.6621 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.9916,13.1349,182.7194,12.1813 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1752,18.7055,128.3043,8.5536 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3481,18.8292,127.4617,8.4974 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.7822,16.7564,143.2289,9.5486 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7702,14.8089,162.0652,10.8043 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,4.0154,13.0569,183.8103,12.2540 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,8.4181,12.4562,192.6749,12.8450 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3513,18.6578,128.6324,8.5755 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.7349,17.8363,134.5568,8.9705 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7682,14.8256,161.8822,10.7921 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.9491,13.2760,180.7771,12.0518 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,8.4483,12.4117,193.3659,12.8911 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,16.9824,12.3490,194.3483,12.9566 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0432,18.9428,126.6975,8.4465 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0892,18.3690,130.6548,8.7103 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1791,18.2945,131.1872,8.7458 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3513,18.6530,128.6659,8.5777 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.7125,18.3966,130.4586,8.6972 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7588,14.9051,161.0192,10.7346 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0873,18.7703,127.8618,8.5241 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1779,18.4195,130.2968,8.6865 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3521,18.6148,128.9296,8.5953 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.7187,18.2386,131.5892,8.7726 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7793,14.7330,162.8995,10.8600 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,4.0073,13.0833,183.4398,12.2293 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1772,18.4919,129.7865,8.6524 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3529,18.5716,129.2299,8.6153 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.7414,17.6795,135.7505,9.0500 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7616,14.8806,161.2834,10.7522 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.9904,13.1388,182.6649,12.1777 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,8.4067,12.4731,192.4144,12.8276 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3511,18.6636,128.5925,8.5728 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.7480,17.5225,136.9670,9.1311 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7637,14.8634,161.4702,10.7647 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.9943,13.1260,182.8430,12.1895 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,8.4761,12.3709,194.0033,12.9336 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,17.1450,12.2318,196.2091,13.0806 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.7103,18.4529,130.0611,8.6707 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7754,14.7651,162.5455,10.8364 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.9735,13.1946,181.8919,12.1261 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,8.3487,12.5597,191.0876,12.7392 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,17.1582,12.2224,196.3605,13.0907 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,34.0888,12.3040,195.0579,13.0039 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0891,18.3835,130.5519,8.7035 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1777,18.4426,130.1336,8.6756 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3487,18.7918,127.7156,8.5144 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.7352,17.8288,134.6140,8.9743 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7606,14.8899,161.1832,10.7455 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.9950,13.1237,182.8747,12.1916 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1780,18.4140,130.3357,8.6890 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3542,18.5019,129.7162,8.6477 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.7467,17.5530,136.7290,9.1153 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7498,14.9809,160.2035,10.6802 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.9909,13.1372,182.6874,12.1792 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,8.3531,12.5531,191.1874,12.7458 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3518,18.6265,128.8490,8.5899 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.7085,18.5008,129.7240,8.6483 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7465,15.0097,159.8963,10.6598 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.9689,13.2098,181.6827,12.1122 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,8.3589,12.5444,191.3201,12.7547 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,17.0777,12.2800,195.4392,13.0293 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.7205,18.1912,131.9318,8.7955 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7700,14.8100,162.0526,10.8035 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,4.0141,13.0612,183.7507,12.2500 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,8.3834,12.5077,191.8811,12.7921 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,17.0771,12.2805,195.4318,13.0288 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,34.2614,12.2421,196.0452,13.0697 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7763,14.7575,162.6287,10.8419 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.9779,13.1802,182.0917,12.1394 +200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,8.4382,12.4266,193.1347,12.8756 +200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,16.9325,12.3853,193.7776,12.9185 +200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,33.9828,12.3424,194.4513,12.9634 +200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,68.5011,12.2459,195.9834,13.0656 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0174,11.7952,203.4727,6.5636 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0353,11.6039,206.8273,6.6718 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0708,11.5768,207.3121,6.6875 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1432,11.4416,209.7618,6.7665 +200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2832,11.5706,207.4224,6.6910 +200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5676,11.5465,207.8548,6.7050 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0348,11.7767,203.7917,6.5739 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0719,11.4004,210.5186,6.7909 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1435,11.4208,210.1434,6.7788 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2865,11.4374,209.8376,6.7690 +200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5630,11.6406,206.1756,6.6508 +200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.1707,11.1959,214.3643,6.9150 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0711,11.5250,208.2427,6.7175 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1421,11.5337,208.0852,6.7124 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2871,11.4149,210.2514,6.7823 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5671,11.5565,207.6753,6.6992 +200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.1876,11.0367,217.4561,7.0147 +200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6114,10.0384,239.0823,7.7123 +200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1424,11.5080,208.5502,6.7274 +200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2859,11.4602,209.4209,6.7555 +200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5648,11.6029,206.8443,6.6724 +200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.1923,10.9931,218.3185,7.0425 +200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6085,10.0497,238.8139,7.7037 +200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.5256,9.4883,252.9427,8.1594 +200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2875,11.3992,210.5419,6.7917 +200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5719,11.4588,209.4459,6.7563 +200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.1988,10.9339,219.5006,7.0807 +200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6122,10.0354,239.1525,7.7146 +200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.4710,9.5830,250.4447,8.0789 +200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,11.2159,9.3491,256.7105,8.2810 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0353,11.5927,207.0267,6.6783 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0720,11.3755,210.9803,6.8058 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1429,11.4632,209.3662,6.7537 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2858,11.4667,209.3019,6.7517 +200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5713,11.4723,209.1999,6.7484 +200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.1912,11.0032,218.1182,7.0361 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0712,11.5041,208.6211,6.7297 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1432,11.4410,209.7719,6.7668 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2860,11.4576,209.4685,6.7570 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5698,11.5010,208.6770,6.7315 +200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.1786,11.1205,215.8170,6.9618 +200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6113,10.0388,239.0718,7.7120 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1433,11.4328,209.9230,6.7717 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2864,11.4420,209.7532,6.7662 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5645,11.6087,206.7407,6.6691 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.1612,11.2876,212.6224,6.8588 +200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6158,10.0214,239.4873,7.7254 +200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.5078,9.5191,252.1257,8.1331 +200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2867,11.4279,210.0125,6.7746 +200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5686,11.5263,208.2201,6.7168 +200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.1619,11.2809,212.7493,6.8629 +200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6084,10.0499,238.8074,7.7035 +200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.5168,9.5035,252.5382,8.1464 +200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,11.2449,9.3249,257.3764,8.3025 +200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5702,11.4941,208.8035,6.7356 +200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.1710,11.1933,214.4132,6.9166 +200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6195,10.0076,239.8179,7.7361 +200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.4891,9.5514,251.2729,8.1056 +200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,11.2059,9.3574,256.4817,8.2736 +200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7045,9.2367,259.8329,8.3817 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0714,11.4723,209.2005,6.7484 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1413,11.5911,207.0553,6.6792 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2868,11.4257,210.0525,6.7759 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5702,11.4944,208.7970,6.7354 +200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.1638,11.2621,213.1049,6.8744 +200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6182,10.0125,239.6999,7.7323 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1429,11.4679,209.2805,6.7510 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2874,11.4027,210.4763,6.7896 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5699,11.4998,208.6998,6.7323 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.1751,11.1544,215.1621,6.9407 +200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6103,10.0427,238.9795,7.7090 +200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.5152,9.5062,252.4679,8.1441 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2872,11.4108,210.3278,6.7848 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5607,11.6888,205.3246,6.6234 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.1865,11.0473,217.2482,7.0080 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6115,10.0381,239.0898,7.7126 +200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.4684,9.5876,250.3234,8.0749 +200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,11.2851,9.2917,258.2944,8.3321 +200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5698,11.5016,208.6667,6.7312 +200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.1800,11.1079,216.0618,6.9697 +200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6096,10.0455,238.9130,7.7069 +200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.4894,9.5510,251.2829,8.1059 +200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,11.2821,9.2941,258.2271,8.3299 +200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7474,9.2193,260.3233,8.3975 +200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.1741,11.1639,214.9782,6.9348 +200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6114,10.0384,239.0820,7.7123 +200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.5263,9.4872,252.9729,8.1604 +200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,11.3133,9.2686,258.9398,8.3529 +200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,22.8068,9.1953,261.0030,8.4195 +200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,45.4358,9.2313,259.9857,8.3866 +200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1441,11.3732,211.0217,6.8072 +200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2867,11.4281,210.0080,6.7745 +200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5704,11.4899,208.8797,6.7381 +200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.1706,11.1972,214.3391,6.9142 +200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6585,9.8606,243.3935,7.8514 +200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.5104,9.5145,252.2460,8.1370 +200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2863,11.4448,209.7019,6.7646 +200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5707,11.4842,208.9832,6.7414 +200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.1623,11.2773,212.8178,6.8651 +200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6152,10.0240,239.4244,7.7234 +200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.4955,9.5403,251.5632,8.1149 +200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,11.1827,9.3768,255.9510,8.2565 +200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5703,11.4915,208.8507,6.7371 +200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.1691,11.2114,214.0682,6.9054 +200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6149,10.0251,239.3981,7.7225 +200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.5122,9.5114,252.3295,8.1397 +200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,11.2002,9.3621,256.3522,8.2694 +200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,22.8756,9.1676,261.7905,8.4449 +200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.1770,11.1358,215.5214,6.9523 +200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6142,10.0275,239.3407,7.7207 +200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.5252,9.4890,252.9249,8.1589 +200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,11.2002,9.3621,256.3532,8.2695 +200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,22.6890,9.2430,259.6552,8.3760 +200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,45.7402,9.1698,261.7278,8.4428 +200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6267,9.9801,240.4777,7.7573 +200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.5090,9.5170,252.1814,8.1349 +200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,11.3300,9.2549,259.3221,8.3652 +200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,22.7104,9.2343,259.9002,8.3839 +200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,45.6291,9.1922,261.0918,8.4223 +200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,90.8981,9.2286,260.0616,8.3891 +200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2861,11.4553,209.5105,6.7584 +200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5686,11.5252,208.2389,6.7174 +200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.1681,11.2211,213.8826,6.8994 +200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.5998,10.0834,238.0152,7.6779 +200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.5037,9.5261,251.9403,8.1271 +200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,11.2344,9.3336,257.1346,8.2947 +200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5687,11.5235,208.2693,6.7184 +200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.1901,11.0134,217.9169,7.0296 +200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6161,10.0205,239.5079,7.7261 +200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.4939,9.5431,251.4914,8.1126 +200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,11.2474,9.3229,257.4317,8.3042 +200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7123,9.2336,259.9214,8.3846 +200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.1692,11.2105,214.0853,6.9060 +200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0147,239.6479,7.7306 +200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.5163,9.5043,252.5162,8.1457 +200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,11.2024,9.3603,256.4033,8.2711 +200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,22.7399,9.2224,260.2373,8.3948 +200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,45.6910,9.1797,261.4461,8.4337 +200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6132,10.0314,239.2490,7.7177 +200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.4943,9.5423,251.5104,8.1132 +200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,11.2644,9.3088,257.8213,8.3168 +200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,22.6715,9.2502,259.4542,8.3695 +200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,45.5770,9.2027,260.7935,8.4127 +200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,91.1329,9.2048,260.7334,8.4108 +200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.4815,9.5647,250.9236,8.0943 +200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,11.2564,9.3154,257.6377,8.3109 +200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,22.5064,9.3180,257.5657,8.3086 +200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,45.3069,9.2575,259.2479,8.3628 +200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,90.8428,9.2342,259.9032,8.3840 +200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,185.4831,9.0451,265.3357,8.5592 diff --git a/scripts/results_aos_skylakesp2.txt b/scripts/results_aos_skylakesp2.txt index 61a646a..631b187 100644 --- a/scripts/results_aos_skylakesp2.txt +++ b/scripts/results_aos_skylakesp2.txt @@ -448,3 +448,453 @@ 200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,42.8531,9.7876,337.2623,1204.5083 200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,85.7954,9.7775,337.6135,1205.7624 200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,175.9705,9.5341,346.2307,1236.5383 +1000,4x4x2,8,256,21.5040,6.1440,9.2160,0.0083,30.9670,77.5342,11.0763 +1000,4x4x4,8,512,43.0080,12.2880,18.4320,0.0174,29.3700,81.7501,11.6786 +1000,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0343,29.8299,80.4898,11.4985 +1000,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0691,29.6372,81.0130,11.5733 +1000,4x4x32,8,4096,344.0640,98.3040,147.4560,0.1401,29.2325,82.1345,11.7335 +1000,4x4x64,8,8192,688.1280,196.6080,294.9120,0.2881,28.4384,84.4280,12.0611 +1000,4x8x2,8,512,43.0080,12.2880,18.4320,0.0170,30.1311,79.6851,11.3836 +1000,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0348,29.4583,81.5050,11.6436 +1000,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0689,29.7161,80.7979,11.5426 +1000,4x8x16,8,4096,344.0640,98.3040,147.4560,0.1404,29.1689,82.3138,11.7591 +1000,4x8x32,8,8192,688.1280,196.6080,294.9120,0.2892,28.3229,84.7724,12.1103 +1000,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.5720,28.6452,83.8185,11.9741 +1000,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0356,28.7810,83.4231,11.9176 +1000,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0688,29.7735,80.6421,11.5203 +1000,4x16x8,8,4096,344.0640,98.3040,147.4560,0.1422,28.8142,83.3269,11.9038 +1000,4x16x16,8,8192,688.1280,196.6080,294.9120,0.2883,28.4145,84.4992,12.0713 +1000,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.5915,27.6978,86.6857,12.3837 +1000,4x16x64,8,32768,2752.5120,786.4320,1179.6480,1.1573,28.3139,84.7992,12.1142 +1000,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0694,29.5152,81.3478,11.6211 +1000,4x32x4,8,4096,344.0640,98.3040,147.4560,0.1408,29.0865,82.5470,11.7924 +1000,4x32x8,8,8192,688.1280,196.6080,294.9120,0.2926,27.9986,85.7544,12.2506 +1000,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.5922,27.6675,86.7806,12.3972 +1000,4x32x32,8,32768,2752.5120,786.4320,1179.6480,1.1478,28.5484,84.1027,12.0147 +1000,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,2.9154,22.4796,106.8080,15.2583 +1000,4x64x2,8,4096,344.0640,98.3040,147.4560,0.1386,29.5472,81.2597,11.6085 +1000,4x64x4,8,8192,688.1280,196.6080,294.9120,0.2868,28.5604,84.0673,12.0096 +1000,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.5812,28.1914,85.1677,12.1668 +1000,4x64x16,8,32768,2752.5120,786.4320,1179.6480,1.1536,28.4058,84.5250,12.0750 +1000,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,2.9057,22.5544,106.4539,15.2077 +1000,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,7.0310,18.6421,128.7947,18.3992 +1000,8x4x2,8,512,43.0080,12.2880,18.4320,0.0170,30.0859,79.8048,11.4007 +1000,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0343,29.8537,80.4257,11.4894 +1000,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0697,29.3996,81.6679,11.6668 +1000,8x4x16,8,4096,344.0640,98.3040,147.4560,0.1376,29.7726,80.6447,11.5207 +1000,8x4x32,8,8192,688.1280,196.6080,294.9120,0.2908,28.1687,85.2363,12.1766 +1000,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.5743,28.5301,84.1566,12.0224 +1000,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0349,29.3367,81.8430,11.6919 +1000,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0694,29.5090,81.3651,11.6236 +1000,8x8x8,8,4096,344.0640,98.3040,147.4560,0.1426,28.7195,83.6016,11.9431 +1000,8x8x16,8,8192,688.1280,196.6080,294.9120,0.2867,28.5694,84.0408,12.0058 +1000,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.5736,28.5656,84.0520,12.0074 +1000,8x8x64,8,32768,2752.5120,786.4320,1179.6480,1.1689,28.0333,85.6482,12.2355 +1000,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0711,28.7897,83.3979,11.9140 +1000,8x16x4,8,4096,344.0640,98.3040,147.4560,0.1372,29.8442,80.4512,11.4930 +1000,8x16x8,8,8192,688.1280,196.6080,294.9120,0.2941,27.8531,86.2021,12.3146 +1000,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.5863,27.9445,85.9205,12.2744 +1000,8x16x32,8,32768,2752.5120,786.4320,1179.6480,1.1456,28.6026,83.9434,11.9919 +1000,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,2.8886,22.6878,105.8276,15.1182 +1000,8x32x2,8,4096,344.0640,98.3040,147.4560,0.1396,29.3343,81.8496,11.6928 +1000,8x32x4,8,8192,688.1280,196.6080,294.9120,0.2935,27.9113,86.0226,12.2889 +1000,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.5721,28.6397,83.8346,11.9764 +1000,8x32x16,8,32768,2752.5120,786.4320,1179.6480,1.1710,27.9820,85.8051,12.2579 +1000,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,2.8921,22.6607,105.9545,15.1364 +1000,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,7.1243,18.3979,130.5043,18.6435 +1000,8x64x2,8,8192,688.1280,196.6080,294.9120,0.2906,28.1914,85.1678,12.1668 +1000,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.5911,27.7178,86.6230,12.3747 +1000,8x64x8,8,32768,2752.5120,786.4320,1179.6480,1.1648,28.1307,85.3515,12.1931 +1000,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,2.9356,22.3249,107.5479,15.3640 +1000,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,7.1261,18.3933,130.5367,18.6481 +1000,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,15.3614,17.0651,140.6965,20.0995 +1000,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0358,28.6355,83.8469,11.9781 +1000,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0695,29.4591,81.5028,11.6433 +1000,16x4x8,8,4096,344.0640,98.3040,147.4560,0.1411,29.0285,82.7118,11.8160 +1000,16x4x16,8,8192,688.1280,196.6080,294.9120,0.2947,27.8009,86.3642,12.3377 +1000,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.5916,27.6949,86.6947,12.3850 +1000,16x4x64,8,32768,2752.5120,786.4320,1179.6480,1.1713,27.9752,85.8260,12.2609 +1000,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0690,29.7017,80.8372,11.5482 +1000,16x8x4,8,4096,344.0640,98.3040,147.4560,0.1416,28.9211,83.0191,11.8599 +1000,16x8x8,8,8192,688.1280,196.6080,294.9120,0.2923,28.0278,85.6651,12.2379 +1000,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.5905,27.7469,86.5321,12.3617 +1000,16x8x32,8,32768,2752.5120,786.4320,1179.6480,1.1391,28.7668,83.4641,11.9234 +1000,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,2.9559,22.1712,108.2939,15.4706 +1000,16x16x2,8,4096,344.0640,98.3040,147.4560,0.1393,29.4145,81.6263,11.6609 +1000,16x16x4,8,8192,688.1280,196.6080,294.9120,0.2840,28.8456,83.2363,11.8909 +1000,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.5932,27.6181,86.9358,12.4194 +1000,16x16x16,8,32768,2752.5120,786.4320,1179.6480,1.1747,27.8951,86.0725,12.2961 +1000,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,2.8668,22.8603,105.0292,15.0042 +1000,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,7.1309,18.3808,130.6257,18.6608 +1000,16x32x2,8,8192,688.1280,196.6080,294.9120,0.2898,28.2676,84.9383,12.1340 +1000,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.5868,27.9203,85.9949,12.2850 +1000,16x32x8,8,32768,2752.5120,786.4320,1179.6480,1.1752,27.8833,86.1089,12.3013 +1000,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,2.9443,22.2585,107.8690,15.4099 +1000,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,7.0845,18.5011,129.7760,18.5394 +1000,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,15.2361,17.2054,139.5488,19.9355 +1000,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.5867,27.9261,85.9769,12.2824 +1000,16x64x4,8,32768,2752.5120,786.4320,1179.6480,1.1651,28.1240,85.3720,12.1960 +1000,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,2.8820,22.7399,105.5853,15.0836 +1000,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,7.1805,18.2538,131.5341,18.7906 +1000,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,15.0906,17.3714,138.2160,19.7451 +1000,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,31.9739,16.3974,146.4258,20.9180 +1000,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0689,29.7095,80.8160,11.5451 +1000,32x4x4,8,4096,344.0640,98.3040,147.4560,0.1378,29.7248,80.7743,11.5392 +1000,32x4x8,8,8192,688.1280,196.6080,294.9120,0.2894,28.3078,84.8177,12.1168 +1000,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.5759,28.4518,84.3883,12.0555 +1000,32x4x32,8,32768,2752.5120,786.4320,1179.6480,1.1651,28.1237,85.3730,12.1961 +1000,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,2.8862,22.7065,105.7406,15.1058 +1000,32x8x2,8,4096,344.0640,98.3040,147.4560,0.1368,29.9362,80.2040,11.4577 +1000,32x8x4,8,8192,688.1280,196.6080,294.9120,0.2835,28.8986,83.0837,11.8691 +1000,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.5787,28.3102,84.8104,12.1158 +1000,32x8x16,8,32768,2752.5120,786.4320,1179.6480,1.1465,28.5810,84.0069,12.0010 +1000,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,2.8498,22.9967,104.4064,14.9152 +1000,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,7.0561,18.5757,129.2547,18.4650 +1000,32x16x2,8,8192,688.1280,196.6080,294.9120,0.2852,28.7235,83.5902,11.9415 +1000,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.5837,28.0686,85.5404,12.2201 +1000,32x16x8,8,32768,2752.5120,786.4320,1179.6480,1.1504,28.4845,84.2913,12.0416 +1000,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,2.8993,22.6042,106.2193,15.1742 +1000,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,7.0918,18.4823,129.9079,18.5583 +1000,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,15.4199,17.0004,141.2322,20.1760 +1000,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.5807,28.2129,85.1028,12.1575 +1000,32x32x4,8,32768,2752.5120,786.4320,1179.6480,1.1824,27.7128,86.6386,12.3769 +1000,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,2.8990,22.6067,106.2074,15.1725 +1000,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,7.0475,18.5983,129.0979,18.4426 +1000,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,15.3367,17.0926,140.4703,20.0672 +1000,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,31.7109,16.5334,145.2215,20.7459 +1000,32x64x2,8,32768,2752.5120,786.4320,1179.6480,1.1432,28.6634,83.7653,11.9665 +1000,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,2.8859,22.7092,105.7282,15.1040 +1000,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,7.0480,18.5970,129.1068,18.4438 +1000,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,15.1667,17.2842,138.9128,19.8447 +1000,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,31.3721,16.7119,143.6699,20.5243 +1000,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,64.7684,16.1896,148.3048,21.1864 +1000,64x4x2,8,4096,344.0640,98.3040,147.4560,0.1401,29.2284,82.1462,11.7352 +1000,64x4x4,8,8192,688.1280,196.6080,294.9120,0.2859,28.6484,83.8092,11.9727 +1000,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.5852,27.9971,85.7588,12.2513 +1000,64x4x16,8,32768,2752.5120,786.4320,1179.6480,1.1721,27.9556,85.8862,12.2695 +1000,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,2.9070,22.5442,106.5020,15.2146 +1000,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,7.0141,18.6868,128.4864,18.3552 +1000,64x8x2,8,8192,688.1280,196.6080,294.9120,0.2957,27.7067,86.6578,12.3797 +1000,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.5773,28.3785,84.6063,12.0866 +1000,64x8x8,8,32768,2752.5120,786.4320,1179.6480,1.1553,28.3623,84.6545,12.0935 +1000,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,2.9517,22.2026,108.1404,15.4486 +1000,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,7.3935,17.7279,135.4359,19.3480 +1000,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,15.1413,17.3132,138.6802,19.8115 +1000,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.5724,28.6252,83.8772,11.9825 +1000,64x16x4,8,32768,2752.5120,786.4320,1179.6480,1.1533,28.4121,84.5064,12.0723 +1000,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,2.9298,22.3690,107.3362,15.3337 +1000,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,7.0712,18.5361,129.5313,18.5045 +1000,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,15.2023,17.2437,139.2391,19.8913 +1000,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,31.2550,16.7745,143.1337,20.4477 +1000,64x32x2,8,32768,2752.5120,786.4320,1179.6480,1.1872,27.6006,86.9909,12.4273 +1000,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,2.9028,22.5766,106.3489,15.1927 +1000,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,7.0732,18.5308,129.5680,18.5097 +1000,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,15.3410,17.0878,140.5094,20.0728 +1000,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,31.6923,16.5431,145.1361,20.7337 +1000,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,64.2230,16.3271,147.0560,21.0080 +1000,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,2.8779,22.7720,105.4365,15.0624 +1000,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,7.0810,18.5103,129.7112,18.5302 +1000,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,15.1939,17.2532,139.1623,19.8803 +1000,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,31.4185,16.6872,143.8826,20.5547 +1000,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,63.5853,16.4909,145.5959,20.7994 +1000,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,125.9547,16.6500,144.2038,20.6005 +1000,4x4x2,16,512,59.3920,12.2880,34.8160,0.0280,18.2876,131.2913,8.7528 +1000,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0601,17.0372,140.9266,9.3951 +1000,4x4x8,16,2048,237.5680,49.1520,139.2640,0.1130,18.1276,132.4500,8.8300 +1000,4x4x16,16,4096,475.1360,98.3040,278.5280,0.2272,18.0306,133.1625,8.8775 +1000,4x4x32,16,8192,950.2720,196.6080,557.0560,0.4596,17.8244,134.7032,8.9802 +1000,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0747,132.8377,8.8558 +1000,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0562,18.2071,131.8715,8.7914 +1000,4x8x4,16,2048,237.5680,49.1520,139.2640,0.1116,18.3563,130.7997,8.7200 +1000,4x8x8,16,4096,475.1360,98.3040,278.5280,0.2282,17.9456,133.7934,8.9196 +1000,4x8x16,16,8192,950.2720,196.6080,557.0560,0.4603,17.7979,134.9035,8.9936 +1000,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.9207,17.7954,134.9228,8.9949 +1000,4x8x64,16,32768,3801.0880,786.4320,2228.2240,1.8206,17.9982,133.4024,8.8935 +1000,4x16x2,16,2048,237.5680,49.1520,139.2640,0.1129,18.1431,132.3366,8.8224 +1000,4x16x4,16,4096,475.1360,98.3040,278.5280,0.2266,18.0738,132.8439,8.8563 +1000,4x16x8,16,8192,950.2720,196.6080,557.0560,0.4606,17.7846,135.0044,9.0003 +1000,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0746,132.8387,8.8559 +1000,4x16x32,16,32768,3801.0880,786.4320,2228.2240,1.8156,18.0480,133.0340,8.8689 +1000,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,4.1961,15.6185,153.7282,10.2485 +1000,4x32x2,16,4096,475.1360,98.3040,278.5280,0.2227,18.3938,130.5333,8.7022 +1000,4x32x4,16,8192,950.2720,196.6080,557.0560,0.4560,17.9654,133.6456,8.9097 +1000,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0730,132.8501,8.8567 +1000,4x32x16,16,32768,3801.0880,786.4320,2228.2240,1.8438,17.7718,135.1017,9.0068 +1000,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,4.1937,15.6272,153.6423,10.2428 +1000,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,8.6363,15.1770,158.2004,10.5467 +1000,4x64x2,16,8192,950.2720,196.6080,557.0560,0.4594,17.8324,134.6428,8.9762 +1000,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.9249,17.7138,135.5442,9.0363 +1000,4x64x8,16,32768,3801.0880,786.4320,2228.2240,1.8450,17.7609,135.1846,9.0123 +1000,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,4.1901,15.6405,153.5118,10.2341 +1000,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,8.6339,15.1811,158.1575,10.5438 +1000,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,17.4726,15.0031,160.0333,10.6689 +1000,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0556,18.4242,130.3179,8.6879 +1000,8x4x4,16,2048,237.5680,49.1520,139.2640,0.1115,18.3608,130.7676,8.7178 +1000,8x4x8,16,4096,475.1360,98.3040,278.5280,0.2238,18.3034,131.1781,8.7452 +1000,8x4x16,16,8192,950.2720,196.6080,557.0560,0.4585,17.8671,134.3814,8.9588 +1000,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.9209,17.7921,134.9472,8.9965 +1000,8x4x64,16,32768,3801.0880,786.4320,2228.2240,1.8148,18.0560,132.9752,8.8650 +1000,8x8x2,16,2048,237.5680,49.1520,139.2640,0.1129,18.1326,132.4138,8.8276 +1000,8x8x4,16,4096,475.1360,98.3040,278.5280,0.2261,18.1147,132.5445,8.8363 +1000,8x8x8,16,8192,950.2720,196.6080,557.0560,0.4553,17.9909,133.4562,8.8971 +1000,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.9142,17.9220,133.9695,8.9313 +1000,8x8x32,16,32768,3801.0880,786.4320,2228.2240,1.8324,17.8830,134.2618,8.9508 +1000,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,4.1905,15.6392,153.5243,10.2350 +1000,8x16x2,16,4096,475.1360,98.3040,278.5280,0.2247,18.2328,131.6857,8.7790 +1000,8x16x4,16,8192,950.2720,196.6080,557.0560,0.4584,17.8694,134.3637,8.9576 +1000,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.9115,17.9756,133.5702,8.9047 +1000,8x16x16,16,32768,3801.0880,786.4320,2228.2240,1.8386,17.8221,134.7201,8.9813 +1000,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,4.1788,15.6830,153.0953,10.2064 +1000,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,8.6652,15.1262,158.7312,10.5821 +1000,8x32x2,16,8192,950.2720,196.6080,557.0560,0.4603,17.7970,134.9102,8.9940 +1000,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.9139,17.9273,133.9299,8.9287 +1000,8x32x8,16,32768,3801.0880,786.4320,2228.2240,1.8440,17.7700,135.1152,9.0077 +1000,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,4.8293,13.5705,176.9282,11.7952 +1000,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,8.6609,15.1338,158.6510,10.5767 +1000,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,17.4388,15.0322,159.7238,10.6483 +1000,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.9137,17.9323,133.8928,8.9262 +1000,8x64x4,16,32768,3801.0880,786.4320,2228.2240,1.8088,18.1163,132.5328,8.8355 +1000,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,4.1850,15.6597,153.3232,10.2215 +1000,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,8.6250,15.1968,157.9938,10.5329 +1000,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,17.4081,15.0587,159.4423,10.6295 +1000,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,35.3398,14.8356,161.8402,10.7893 +1000,16x4x2,16,2048,237.5680,49.1520,139.2640,0.1124,18.2263,131.7324,8.7822 +1000,16x4x4,16,4096,475.1360,98.3040,278.5280,0.2265,18.0842,132.7675,8.8512 +1000,16x4x8,16,8192,950.2720,196.6080,557.0560,0.4601,17.8055,134.8461,8.9897 +1000,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.9200,17.8089,134.8199,8.9880 +1000,16x4x32,16,32768,3801.0880,786.4320,2228.2240,1.8303,17.9035,134.1081,8.9405 +1000,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,4.1983,15.6100,153.8118,10.2541 +1000,16x8x2,16,4096,475.1360,98.3040,278.5280,0.2231,18.3580,130.7878,8.7192 +1000,16x8x4,16,8192,950.2720,196.6080,557.0560,0.4627,17.7039,135.6196,9.0413 +1000,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.9071,18.0624,132.9284,8.8619 +1000,16x8x16,16,32768,3801.0880,786.4320,2228.2240,1.8383,17.8252,134.6967,8.9798 +1000,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,4.1920,15.6337,153.5790,10.2386 +1000,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,8.6293,15.1892,158.0725,10.5382 +1000,16x16x2,16,8192,950.2720,196.6080,557.0560,0.4582,17.8769,134.3077,8.9538 +1000,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.9178,17.8520,134.4944,8.9663 +1000,16x16x8,16,32768,3801.0880,786.4320,2228.2240,1.8323,17.8835,134.2578,8.9505 +1000,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,4.1813,15.6735,153.1887,10.2126 +1000,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,8.6485,15.1555,158.4247,10.5616 +1000,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,17.3921,15.0726,159.2954,10.6197 +1000,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.9191,17.8264,134.6879,8.9792 +1000,16x32x4,16,32768,3801.0880,786.4320,2228.2240,1.8266,17.9393,133.8401,8.9227 +1000,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,4.1715,15.7105,152.8278,10.1885 +1000,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,8.6513,15.1506,158.4756,10.5650 +1000,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,17.5022,14.9778,160.3039,10.6869 +1000,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,35.1069,14.9340,160.7738,10.7183 +1000,16x64x2,16,32768,3801.0880,786.4320,2228.2240,1.8369,17.8391,134.5922,8.9728 +1000,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,4.1644,15.7371,152.5693,10.1713 +1000,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,8.6170,15.2109,157.8476,10.5232 +1000,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,17.4472,15.0250,159.8003,10.6534 +1000,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,35.0089,14.9758,160.3249,10.6883 +1000,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,72.1388,14.5355,165.1814,11.0121 +1000,32x4x2,16,4096,475.1360,98.3040,278.5280,0.2250,18.2023,131.9062,8.7937 +1000,32x4x4,16,8192,950.2720,196.6080,557.0560,0.4598,17.8161,134.7657,8.9844 +1000,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.9061,18.0816,132.7866,8.8524 +1000,32x4x16,16,32768,3801.0880,786.4320,2228.2240,1.8442,17.7680,135.1302,9.0087 +1000,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,4.2043,15.5878,154.0308,10.2687 +1000,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,8.6253,15.1962,158.0005,10.5334 +1000,32x8x2,16,8192,950.2720,196.6080,557.0560,0.4542,18.0361,133.1217,8.8748 +1000,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.9193,17.8219,134.7221,8.9815 +1000,32x8x8,16,32768,3801.0880,786.4320,2228.2240,1.8215,17.9900,133.4632,8.8975 +1000,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,4.1587,15.7590,152.3578,10.1572 +1000,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,8.6452,15.1613,158.3642,10.5576 +1000,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,17.4339,15.0365,159.6785,10.6452 +1000,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.9196,17.8166,134.7621,8.9841 +1000,32x16x4,16,32768,3801.0880,786.4320,2228.2240,1.8172,18.0323,133.1500,8.8767 +1000,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,4.1820,15.6710,153.2125,10.2142 +1000,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,8.6406,15.1693,158.2806,10.5520 +1000,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,17.4204,15.0481,159.5547,10.6370 +1000,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,35.0026,14.9786,160.2959,10.6864 +1000,32x32x2,16,32768,3801.0880,786.4320,2228.2240,1.8324,17.8826,134.2647,8.9510 +1000,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,4.1733,15.7036,152.8946,10.1930 +1000,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,8.6484,15.1556,158.4234,10.5616 +1000,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,17.4350,15.0355,159.6888,10.6459 +1000,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,35.0854,14.9432,160.6750,10.7117 +1000,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,70.6692,14.8378,161.8165,10.7878 +1000,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,4.1885,15.6465,153.4529,10.2302 +1000,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,8.6618,15.1321,158.6692,10.5779 +1000,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,17.4122,15.0552,159.4796,10.6320 +1000,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,34.9968,14.9810,160.2693,10.6846 +1000,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,71.3457,14.6971,163.3653,10.8910 +1000,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,142.7880,14.6872,163.4760,10.8984 +1000,64x4x2,16,8192,950.2720,196.6080,557.0560,0.4560,17.9634,133.6604,8.9107 +1000,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.9158,17.8900,134.2094,8.9473 +1000,64x4x8,16,32768,3801.0880,786.4320,2228.2240,1.8438,17.7723,135.0980,9.0065 +1000,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,4.1660,15.7313,152.6255,10.1750 +1000,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,8.6348,15.1795,158.1737,10.5449 +1000,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,17.5210,14.9617,160.4760,10.6984 +1000,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.9088,18.0283,133.1792,8.8786 +1000,64x8x4,16,32768,3801.0880,786.4320,2228.2240,1.8309,17.8973,134.1545,8.9436 +1000,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,4.2025,15.5945,153.9650,10.2643 +1000,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,8.6268,15.1937,158.0264,10.5351 +1000,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,17.4245,15.0446,159.5921,10.6395 +1000,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,35.3317,14.8390,161.8029,10.7869 +1000,64x16x2,16,32768,3801.0880,786.4320,2228.2240,1.8250,17.9552,133.7218,8.9148 +1000,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,4.1726,15.7062,152.8698,10.1913 +1000,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,8.6631,15.1299,158.6928,10.5795 +1000,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,17.3823,15.0811,159.2060,10.6137 +1000,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,34.9747,14.9905,160.1681,10.6779 +1000,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,70.8759,14.7945,162.2896,10.8193 +1000,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,4.2008,15.6010,153.9008,10.2601 +1000,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,8.6586,15.1378,158.6100,10.5740 +1000,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,17.4436,15.0281,159.7671,10.6511 +1000,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,35.1817,14.9023,161.1163,10.7411 +1000,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,71.6125,14.6424,163.9763,10.9318 +1000,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,143.0502,14.6603,163.7762,10.9184 +1000,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,8.6345,15.1801,158.1676,10.5445 +1000,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,17.5245,14.9587,160.5082,10.7005 +1000,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,35.1115,14.9321,160.7948,10.7197 +1000,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,71.1214,14.7435,162.8518,10.8568 +1000,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,143.4827,14.6161,164.2713,10.9514 +1000,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,283.9210,-0.3545,-6772.0256,-451.4684 +1000,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0902,11.3486,211.5671,6.8247 +1000,4x4x4,32,2048,368.6400,49.1520,270.3360,0.1812,11.3004,212.4704,6.8539 +1000,4x4x8,32,4096,737.2800,98.3040,540.6720,0.3681,11.1280,215.7622,6.9601 +1000,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.7372,11.1121,216.0702,6.9700 +1000,4x4x32,32,16384,2949.1200,393.2160,2162.6880,1.4782,11.0841,216.6173,6.9877 +1000,4x4x64,32,32768,5898.2400,786.4320,4325.3760,2.9977,10.9311,219.6483,7.0854 +1000,4x8x2,32,2048,368.6400,49.1520,270.3360,0.1831,11.1830,214.7001,6.9258 +1000,4x8x4,32,4096,737.2800,98.3040,540.6720,0.3708,11.0452,217.3798,7.0123 +1000,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.7423,11.0353,217.5744,7.0185 +1000,4x8x16,32,16384,2949.1200,393.2160,2162.6880,1.4850,11.0329,217.6212,7.0200 +1000,4x8x32,32,32768,5898.2400,786.4320,4325.3760,2.9915,10.9538,219.1933,7.0708 +1000,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,6.3738,10.2822,233.5111,7.5326 +1000,4x16x2,32,4096,737.2800,98.3040,540.6720,0.3720,11.0106,218.0628,7.0343 +1000,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.7425,11.0324,217.6320,7.0204 +1000,4x16x8,32,16384,2949.1200,393.2160,2162.6880,1.4858,11.0268,217.7423,7.0239 +1000,4x16x16,32,32768,5898.2400,786.4320,4325.3760,2.9797,10.9969,218.3335,7.0430 +1000,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,6.3757,10.2791,233.5812,7.5349 +1000,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,13.1968,9.9321,241.7404,7.7981 +1000,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.7442,11.0081,218.1128,7.0359 +1000,4x32x4,32,16384,2949.1200,393.2160,2162.6880,1.4890,11.0032,218.2089,7.0390 +1000,4x32x8,32,32768,5898.2400,786.4320,4325.3760,2.9839,10.9815,218.6413,7.0529 +1000,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,6.3759,10.2787,233.5892,7.5351 +1000,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,13.0549,10.0401,239.1414,7.7142 +1000,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,26.5356,9.8790,243.0420,7.8401 +1000,4x64x2,32,16384,2949.1200,393.2160,2162.6880,1.4778,11.0870,216.5590,6.9858 +1000,4x64x4,32,32768,5898.2400,786.4320,4325.3760,2.9831,10.9847,218.5774,7.0509 +1000,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,6.3862,10.2621,233.9666,7.5473 +1000,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,13.1334,9.9800,240.5807,7.7607 +1000,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,26.4259,9.9200,242.0371,7.8076 +1000,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,53.8714,9.7322,246.7066,7.9583 +1000,8x4x2,32,2048,368.6400,49.1520,270.3360,0.1834,11.1683,214.9841,6.9350 +1000,8x4x4,32,4096,737.2800,98.3040,540.6720,0.3706,11.0535,217.2172,7.0070 +1000,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.7387,11.0895,216.5115,6.9842 +1000,8x4x16,32,16384,2949.1200,393.2160,2162.6880,1.4829,11.0488,217.3094,7.0100 +1000,8x4x32,32,32768,5898.2400,786.4320,4325.3760,2.9946,10.9422,219.4260,7.0783 +1000,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,6.3676,10.2921,233.2858,7.5253 +1000,8x8x2,32,4096,737.2800,98.3040,540.6720,0.3697,11.0802,216.6930,6.9901 +1000,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.7463,10.9762,218.7468,7.0563 +1000,8x8x8,32,16384,2949.1200,393.2160,2162.6880,1.4900,10.9957,218.3571,7.0438 +1000,8x8x16,32,32768,5898.2400,786.4320,4325.3760,2.9865,10.9722,218.8253,7.0589 +1000,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,6.3751,10.2800,233.5598,7.5342 +1000,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,13.0598,10.0363,239.2326,7.7172 +1000,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.7391,11.0836,216.6270,6.9880 +1000,8x16x4,32,16384,2949.1200,393.2160,2162.6880,1.4744,11.1125,216.0630,6.9698 +1000,8x16x8,32,32768,5898.2400,786.4320,4325.3760,2.9826,10.9866,218.5399,7.0497 +1000,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,6.3835,10.2665,233.8681,7.5441 +1000,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,13.0897,10.0134,239.7787,7.7348 +1000,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,26.4301,9.9184,242.0754,7.8089 +1000,8x32x2,32,16384,2949.1200,393.2160,2162.6880,1.4847,11.0349,217.5818,7.0188 +1000,8x32x4,32,32768,5898.2400,786.4320,4325.3760,2.9873,10.9692,218.8857,7.0608 +1000,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,6.3839,10.2658,233.8828,7.5446 +1000,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,13.0760,10.0239,239.5278,7.7267 +1000,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,26.4446,9.9130,242.2084,7.8132 +1000,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,53.2448,9.8468,243.8367,7.8657 +1000,8x64x2,32,32768,5898.2400,786.4320,4325.3760,2.9830,10.9850,218.5698,7.0506 +1000,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,6.3740,10.2818,233.5201,7.5329 +1000,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,13.0821,10.0192,239.6396,7.7303 +1000,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,26.4722,9.9026,242.4609,7.8213 +1000,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,53.9286,9.7219,246.9686,7.9667 +1000,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,108.0731,9.7025,247.4627,7.9827 +1000,16x4x2,32,4096,737.2800,98.3040,540.6720,0.3691,11.0977,216.3506,6.9791 +1000,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.7398,11.0733,216.8286,6.9945 +1000,16x4x8,32,16384,2949.1200,393.2160,2162.6880,1.4866,11.0209,217.8594,7.0277 +1000,16x4x16,32,32768,5898.2400,786.4320,4325.3760,2.9906,10.9569,219.1318,7.0688 +1000,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,6.3724,10.2844,233.4603,7.5310 +1000,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,13.0838,10.0178,239.6722,7.7314 +1000,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.7357,11.1354,215.6189,6.9554 +1000,16x8x4,32,16384,2949.1200,393.2160,2162.6880,1.4879,11.0118,218.0381,7.0335 +1000,16x8x8,32,32768,5898.2400,786.4320,4325.3760,2.9957,10.9384,219.5020,7.0807 +1000,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,6.3740,10.2818,233.5198,7.5329 +1000,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,13.0834,10.0182,239.6639,7.7311 +1000,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,26.4693,9.9037,242.4344,7.8205 +1000,16x16x2,32,16384,2949.1200,393.2160,2162.6880,1.4863,11.0236,217.8045,7.0260 +1000,16x16x4,32,32768,5898.2400,786.4320,4325.3760,2.9977,10.9310,219.6508,7.0855 +1000,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,6.3658,10.2951,233.2189,7.5232 +1000,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,13.0569,10.0385,239.1787,7.7154 +1000,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,26.4757,9.9013,242.4937,7.8224 +1000,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,53.2599,9.8439,243.9062,7.8679 +1000,16x32x2,32,32768,5898.2400,786.4320,4325.3760,2.9927,10.9495,219.2798,7.0735 +1000,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,6.3878,10.2596,234.0254,7.5492 +1000,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,13.0650,10.0323,239.3277,7.7202 +1000,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,26.4047,9.9279,241.8432,7.8014 +1000,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,53.7802,9.7487,246.2890,7.9448 +1000,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,107.4784,9.7562,246.1009,7.9387 +1000,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,6.3794,10.2731,233.7173,7.5393 +1000,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,13.0662,10.0314,239.3486,7.7209 +1000,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,26.7841,9.7873,245.3178,7.9135 +1000,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,53.3277,9.8314,244.2168,7.8780 +1000,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,107.9683,9.7119,247.2227,7.9749 +1000,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,214.3031,9.7859,245.3527,7.9146 +1000,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.7426,11.0309,217.6612,7.0213 +1000,32x4x4,32,16384,2949.1200,393.2160,2162.6880,1.4894,11.0005,218.2626,7.0407 +1000,32x4x8,32,32768,5898.2400,786.4320,4325.3760,2.9852,10.9767,218.7364,7.0560 +1000,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,6.3911,10.2542,234.1482,7.5532 +1000,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,13.0791,10.0215,239.5854,7.7286 +1000,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,26.4275,9.9194,242.0518,7.8081 +1000,32x8x2,32,16384,2949.1200,393.2160,2162.6880,1.4820,11.0557,217.1738,7.0056 +1000,32x8x4,32,32768,5898.2400,786.4320,4325.3760,2.9772,11.0063,218.1474,7.0370 +1000,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,6.3678,10.2917,233.2947,7.5256 +1000,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,13.0689,10.0293,239.3989,7.7225 +1000,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,26.4323,9.9176,242.0958,7.8095 +1000,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,53.2360,9.8484,243.7967,7.8644 +1000,32x16x2,32,32768,5898.2400,786.4320,4325.3760,2.9766,11.0085,218.1046,7.0356 +1000,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,6.3747,10.2807,233.5454,7.5337 +1000,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,13.4372,9.7544,246.1454,7.9402 +1000,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,26.4996,9.8924,242.7121,7.8294 +1000,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,54.7582,9.5746,250.7676,8.0893 +1000,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,108.2222,9.6891,247.8041,7.9937 +1000,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,6.3767,10.2773,233.6206,7.5361 +1000,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,13.7663,9.5212,252.1739,8.1346 +1000,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,26.4448,9.9129,242.2106,7.8132 +1000,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,53.3462,9.8280,244.3011,7.8807 +1000,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,108.0679,9.7029,247.4509,7.9823 +1000,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,215.9838,9.7098,247.2768,7.9767 +1000,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,13.0597,10.0364,239.2292,7.7171 +1000,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,26.3953,9.9315,241.7572,7.7986 +1000,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,53.1987,9.8553,243.6259,7.8589 +1000,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,106.6929,9.8280,244.3024,7.8807 +1000,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,214.7515,9.7655,245.8660,7.9312 +1000,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,431.4337,-0.2333,-10290.4677,-331.9506 +1000,64x4x2,32,16384,2949.1200,393.2160,2162.6880,1.4879,11.0118,218.0398,7.0335 +1000,64x4x4,32,32768,5898.2400,786.4320,4325.3760,2.9847,10.9788,218.6950,7.0547 +1000,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,6.3789,10.2739,233.6995,7.5387 +1000,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,13.0762,10.0237,239.5328,7.7269 +1000,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,26.4055,9.9276,241.8499,7.8016 +1000,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,53.9779,9.7130,247.1940,7.9740 +1000,64x8x2,32,32768,5898.2400,786.4320,4325.3760,2.9891,10.9623,219.0227,7.0652 +1000,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,6.3605,10.3036,233.0252,7.5169 +1000,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,13.0487,10.0449,239.0275,7.7106 +1000,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,26.4589,9.9076,242.3398,7.8174 +1000,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,53.3738,9.8229,244.4278,7.8848 +1000,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,106.7776,9.8202,244.4963,7.8870 +1000,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,6.3749,10.2803,233.5543,7.5340 +1000,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,13.1027,10.0035,240.0170,7.7425 +1000,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,26.4519,9.9102,242.2757,7.8153 +1000,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,53.8700,9.7325,246.7002,7.9581 +1000,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,107.7415,9.7323,246.7034,7.9582 +1000,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,213.3675,9.8288,244.2815,7.8800 +1000,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,13.0621,10.0345,239.2736,7.7185 +1000,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,26.3724,9.9401,241.5467,7.7918 +1000,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,53.1027,9.8731,243.1863,7.8447 +1000,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,106.7040,9.8270,244.3278,7.8815 +1000,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,213.9692,9.8012,244.9703,7.9023 +1000,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,428.8920,-0.2347,-10229.8417,-329.9949 +1000,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,27.0668,9.6851,247.9069,7.9970 +1000,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,54.7363,9.5784,250.6672,8.0860 +1000,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,108.3671,9.6762,248.1359,8.0044 +1000,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,216.9378,9.6671,248.3690,8.0119 +1000,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,433.8169,-0.2320,-10347.3116,-333.7842 +1000,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,878.1040,-0.2293,-10472.1773,-337.8122 diff --git a/scripts/results_soa_casclakesp2.txt b/scripts/results_soa_casclakesp2.txt new file mode 100644 index 0000000..4106da5 --- /dev/null +++ b/scripts/results_soa_casclakesp2.txt @@ -0,0 +1,450 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0017,30.1968,79.4787,11.3541 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0034,30.0857,79.7722,11.3960 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0071,29.0411,82.6414,11.8059 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0142,28.9227,82.9799,11.8543 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0281,29.1749,82.2624,11.7518 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0587,27.9148,85.9760,12.2823 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0035,29.3791,81.6907,11.6701 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0073,28.1253,85.3324,12.1903 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0142,28.9410,82.9273,11.8468 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0287,28.5778,83.9811,11.9973 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0587,27.9348,85.9143,12.2735 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1193,27.4757,87.3498,12.4785 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0069,29.6841,80.8515,11.5502 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0140,29.1786,82.2521,11.7503 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1882,82.2250,11.7464 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0601,27.2622,88.0339,12.5763 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1194,27.4458,87.4450,12.4921 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2367,27.6917,86.6685,12.3812 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0144,28.4002,84.5065,12.0724 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0281,29.2045,82.1792,11.7399 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0578,28.3343,84.7028,12.1004 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1187,27.6149,86.9095,12.4156 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2353,27.8557,86.1585,12.3084 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5017,26.1265,91.8606,13.1229 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6918,83.6476,11.9497 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0583,28.1218,85.3430,12.1919 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1196,27.3912,87.6195,12.5171 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2342,27.9881,85.7507,12.2501 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.4861,26.9639,89.0080,12.7154 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.2546,20.8949,114.8605,16.4086 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0035,29.1498,82.3334,11.7619 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.0834,82.5213,11.7888 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0139,29.4496,81.4952,11.6422 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0281,29.1828,82.2403,11.7486 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0593,27.6198,86.8941,12.4134 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1177,27.8367,86.2171,12.3167 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0072,28.5962,83.9274,11.9896 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0048,82.7449,11.8207 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0282,29.1001,82.4738,11.7820 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0588,27.8416,86.2020,12.3146 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1175,27.8776,86.0907,12.2987 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2373,27.6184,86.8985,12.4141 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.6202,81.0259,11.5751 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0282,29.0022,82.7524,11.8218 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0590,27.7595,86.4568,12.3510 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1195,27.4101,87.5590,12.5084 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9510,85.8646,12.2664 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.4899,26.7532,89.7089,12.8156 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0281,29.1831,82.2394,11.7485 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0591,27.7320,86.5425,12.3632 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5256,87.1916,12.4559 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2357,27.8106,86.2980,12.3283 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.4782,27.4087,87.5635,12.5091 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.2611,20.7865,115.4596,16.4942 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0598,27.4201,87.5270,12.5039 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1188,27.5857,87.0017,12.4288 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2378,27.5646,87.0682,12.4383 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.4982,26.3088,91.2243,13.0320 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.2420,21.1071,113.7059,16.2437 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.2871,15.9501,150.4694,21.4956 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0071,28.9960,82.7700,11.8243 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0035,82.7486,11.8212 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1943,82.2077,11.7440 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0580,28.2245,85.0324,12.1475 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5459,87.1274,12.4468 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2315,28.3093,84.7778,12.1111 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.6944,80.8234,11.5462 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9408,82.9278,11.8468 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0588,27.8805,86.0817,12.2974 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1164,28.1587,85.2312,12.1759 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2351,27.8775,86.0909,12.2987 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.4827,27.1555,88.3799,12.6257 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.5090,81.3312,11.6187 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1319,85.3123,12.1875 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9783,85.7808,12.2544 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2342,27.9800,85.7755,12.2536 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5129,25.5535,93.9207,13.4172 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.2518,20.9419,114.6028,16.3718 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0598,27.3917,87.6179,12.5168 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1198,27.3519,87.7454,12.5351 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2359,27.7824,86.3856,12.3408 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.4728,27.7198,86.5806,12.3687 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.2741,20.5744,116.6497,16.6642 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.2988,15.8931,151.0087,21.5727 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1198,27.3624,87.7117,12.5302 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9526,85.8595,12.2656 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.4795,27.3355,87.7979,12.5426 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.2697,20.6461,116.2446,16.6064 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.2978,15.8981,150.9610,21.5659 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,7.2019,14.5598,164.8376,23.5482 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0143,28.7329,83.5278,11.9325 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8290,83.2496,11.8928 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0581,28.2211,85.0427,12.1490 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9499,85.8678,12.2668 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2343,27.9743,85.7930,12.2561 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.4899,26.7521,89.7124,12.8161 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6625,83.7332,11.9619 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0578,28.3611,84.6231,12.0890 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1186,27.6276,86.8697,12.4100 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9497,85.8684,12.2669 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.4789,27.3714,87.6827,12.5261 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.2396,21.1468,113.4925,16.2132 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0587,27.9346,85.9149,12.2736 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5368,87.1562,12.4509 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.9022,86.0146,12.2878 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.4823,27.1772,88.3092,12.6156 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.2440,21.0724,113.8929,16.2704 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.2937,15.9178,150.7744,21.5392 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7590,86.4583,12.3512 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2350,27.8876,86.0597,12.2942 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.4704,27.8658,86.1270,12.3039 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.2534,20.9146,114.7524,16.3932 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.2411,16.1762,148.3658,21.1951 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,7.2101,14.5431,165.0270,23.5753 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2339,28.0142,85.6710,12.2387 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.4701,27.8800,86.0834,12.2976 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.2565,20.8636,115.0326,16.4332 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.3016,15.8796,151.1373,21.5910 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,7.1664,14.6318,164.0262,23.4323 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,14.7563,14.2119,168.8722,24.1246 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0284,28.8520,83.1830,11.8833 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0599,27.3595,87.7210,12.5316 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1155,28.3599,84.6266,12.0895 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2271,28.8639,83.1489,11.8784 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4784,27.3953,87.6063,12.5152 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.2466,21.0279,114.1338,16.3048 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0595,27.5465,87.1256,12.4465 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1201,27.2917,87.9388,12.5627 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.8954,86.0358,12.2908 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4647,28.2078,85.0829,12.1547 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.2417,21.1119,113.6802,16.2400 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.2842,15.9640,150.3379,21.4768 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2349,85.0010,12.1430 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2347,27.9189,85.9634,12.2805 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5039,26.0132,92.2608,13.1801 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.2615,20.7799,115.4963,16.4995 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.2610,16.0774,149.2775,21.3254 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,7.1767,14.6108,164.2617,23.4660 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2356,27.8138,86.2881,12.3269 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.4749,27.5997,86.9576,12.4225 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.2495,20.9806,114.3916,16.3417 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.2536,16.1139,148.9395,21.2771 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,7.2381,14.4870,165.6663,23.6666 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,14.6710,14.2945,167.8963,23.9852 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.4799,27.3151,87.8633,12.5519 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.2605,20.7972,115.3999,16.4857 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.2808,15.9804,150.1841,21.4549 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,7.1934,14.5769,164.6442,23.5206 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,14.6673,14.2981,167.8542,23.9792 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,29.2180,14.3552,167.1865,23.8838 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.2455,131.5393,8.7693 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0113,18.1440,132.2754,8.8184 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0227,18.0297,133.1133,8.8742 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0448,18.2657,131.3938,8.7596 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0911,17.9803,133.4791,8.8986 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1844,17.7724,135.0411,9.0027 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0113,18.1733,132.0615,8.8041 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2026,131.8491,8.7899 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0456,17.9674,133.5754,8.9050 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0923,17.7468,135.2353,9.0157 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1850,17.7143,135.4836,9.0322 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3665,17.8797,134.2308,8.9487 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0233,17.5763,136.5478,9.1032 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0450,18.2126,131.7769,8.7851 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0911,17.9818,133.4684,8.8979 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1868,17.5420,136.8145,9.1210 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3681,17.8024,134.8134,8.9876 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.7630,17.1780,139.7133,9.3142 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0456,17.9525,133.6859,8.9124 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0938,17.4605,137.4528,9.1635 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1827,17.9368,133.8034,8.9202 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9395,133.7829,8.9189 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.7845,16.7085,143.6395,9.5760 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.8176,14.4226,166.4053,11.0937 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0918,17.8519,134.4391,8.9626 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1855,17.6617,135.8875,9.0592 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3674,17.8396,134.5323,8.9688 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.7768,16.8730,142.2392,9.4826 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.8113,14.4725,165.8318,11.0555 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,4.0660,12.8944,186.1278,12.4085 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0113,18.1771,132.0345,8.8023 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0223,18.3984,130.4461,8.6964 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1085,132.5347,8.8356 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0923,17.7436,135.2601,9.0173 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7047,135.5574,9.0372 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3667,17.8705,134.2992,8.9533 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0227,18.0258,133.1425,8.8762 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0454,18.0636,132.8640,8.8576 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0916,17.8941,134.1221,8.9415 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7060,135.5472,9.0365 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3608,18.1644,132.1268,8.8085 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.7464,17.5607,136.6689,9.1113 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0454,18.0396,133.0408,8.8694 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0912,17.9607,133.6254,8.9084 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9620,133.6156,8.9077 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3660,17.9062,134.0320,8.9355 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.7780,16.8469,142.4592,9.4973 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.8134,14.4562,166.0193,11.0680 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9222,133.9118,8.9275 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1850,17.7102,135.5155,9.0344 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3659,17.9109,133.9967,8.9331 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8239,15.9087,150.8613,10.0574 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.8117,14.4692,165.8694,11.0580 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,4.0171,13.0514,183.8886,12.2592 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1860,17.6194,136.2134,9.0809 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3671,17.8511,134.4456,8.9630 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.7499,17.4789,137.3082,9.1539 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.8146,14.4464,166.1315,11.0754 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,4.0309,13.0066,184.5212,12.3014 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,8.5774,12.2249,196.3206,13.0880 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0225,18.1741,132.0560,8.8037 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0457,17.9366,133.8046,8.9203 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0930,17.6142,136.2538,9.0836 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1846,17.7515,135.1995,9.0133 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9405,133.7757,8.9184 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.7407,17.6949,135.6324,9.0422 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0455,18.0129,133.2379,8.8825 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0923,17.7417,135.2748,9.0183 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1829,17.9163,133.9561,8.9304 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3665,17.8840,134.1982,8.9465 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.7461,17.5671,136.6192,9.1079 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.8047,14.5254,165.2281,11.0152 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0923,17.7442,135.2553,9.0170 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7021,135.5774,9.0385 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8925,134.1344,8.9423 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.7613,17.2167,139.3996,9.2933 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.8171,14.4263,166.3633,11.0909 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,4.0583,12.9189,185.7738,12.3849 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1846,17.7495,135.2148,9.0143 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8904,134.1501,8.9433 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.7477,17.5298,136.9097,9.1273 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.8009,14.5562,164.8782,10.9919 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,4.0799,12.8505,186.7638,12.4509 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,8.5664,12.2405,196.0700,13.0713 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3630,18.0539,132.9349,8.8623 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.7584,17.2830,138.8645,9.2576 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.8135,14.4554,166.0274,11.0685 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,4.0762,12.8621,186.5942,12.4396 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,8.5873,12.2108,196.5473,13.1032 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,17.2827,12.1344,197.7849,13.1857 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0456,17.9516,133.6928,8.9129 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0939,17.4453,137.5727,9.1715 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7068,135.5413,9.0361 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8912,134.1438,8.9429 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.7391,17.7335,135.3367,9.0224 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7899,14.6456,163.8720,10.9248 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0920,17.8125,134.7366,8.9824 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1853,17.6791,135.7533,9.0502 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9421,133.7634,8.9176 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.7749,16.9148,141.8872,9.4591 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.8102,14.4812,165.7323,11.0488 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,4.0739,12.8695,186.4867,12.4324 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1844,17.7741,135.0281,9.0019 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3635,18.0300,133.1117,8.8741 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.7638,17.1596,139.8630,9.3242 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.8171,14.4267,166.3587,11.0906 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,4.0640,12.9008,186.0355,12.4024 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,8.5080,12.3246,194.7333,12.9822 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3675,17.8332,134.5804,8.9720 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.7585,17.2815,138.8771,9.2585 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.8147,14.4452,166.1447,11.0763 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,4.0587,12.9176,185.7936,12.3862 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,8.6098,12.1788,197.0638,13.1376 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,17.3969,12.0547,199.0917,13.2728 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.7403,17.7044,135.5592,9.0373 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.8081,14.4986,165.5333,11.0356 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,4.0864,12.8300,187.0616,12.4708 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,8.5361,12.2840,195.3760,13.0251 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,17.3914,12.0585,199.0291,13.2686 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,35.0665,11.9610,200.6520,13.3768 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9340,133.8241,8.9216 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1833,17.8749,134.2662,8.9511 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3669,17.8618,134.3650,8.9577 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.7622,17.1955,139.5710,9.3047 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.8131,14.4585,165.9924,11.0662 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,4.0475,12.9534,185.2790,12.3519 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1831,17.8992,134.0843,8.9390 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3669,17.8643,134.3464,8.9564 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.7450,17.5925,136.4221,9.0948 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.8160,14.4350,166.2626,11.0842 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,4.0604,12.9123,185.8690,12.3913 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,8.5079,12.3248,194.7298,12.9820 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9308,133.8476,8.9232 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.7456,17.5799,136.5194,9.1013 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.8031,14.5389,165.0747,11.0050 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,4.0631,12.9035,185.9954,12.3997 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,8.5217,12.3048,195.0458,13.0031 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,17.4178,12.0403,199.3308,13.2887 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8037,16.3093,147.1549,9.8103 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.8168,14.4292,166.3290,11.0886 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,4.0649,12.8978,186.0779,12.4052 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,8.5959,12.1986,196.7439,13.1163 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,17.3318,12.1000,198.3464,13.2231 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,35.1403,11.9359,201.0746,13.4050 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.8047,14.5253,165.2288,11.0153 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,4.0375,12.9854,184.8230,12.3215 +200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,8.5280,12.2957,195.1895,13.0126 +200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,17.2131,12.1835,196.9883,13.1326 +200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,34.7267,12.0780,198.7080,13.2472 +200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,69.9977,11.9841,200.2649,13.3510 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1445,215.3526,6.9469 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0367,11.1484,215.2784,6.9445 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0749,10.9335,219.5084,7.0809 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1489,11.0031,218.1212,7.0362 +200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2979,10.9983,218.2151,7.0392 +200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5936,11.0407,217.3782,7.0122 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1377,215.4848,6.9511 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0747,10.9650,218.8788,7.0606 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1491,10.9856,218.4685,7.0474 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2987,10.9688,218.8018,7.0581 +200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5901,11.1053,216.1135,6.9714 +200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2135,10.8010,222.2016,7.1678 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0746,10.9759,218.6605,7.0536 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1495,10.9556,219.0657,7.0666 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2986,10.9744,218.6898,7.0545 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5924,11.0635,216.9289,6.9977 +200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2140,10.7970,222.2843,7.1705 +200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6870,9.7559,246.0042,7.9356 +200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0780,216.6453,6.9886 +200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2975,11.0133,217.9181,7.0296 +200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5923,11.0647,216.9061,6.9970 +200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2194,10.7489,223.2783,7.2025 +200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6961,9.7231,246.8337,7.9624 +200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.6436,9.2899,258.3444,8.3337 +200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2979,10.9978,218.2247,7.0395 +200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5905,11.0991,216.2334,6.9753 +200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2377,10.5903,226.6227,7.3104 +200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.7026,9.6995,247.4349,7.9818 +200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.6421,9.2925,258.2736,8.3314 +200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,11.5057,9.1135,263.3446,8.4950 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0366,11.1998,214.2904,6.9126 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0742,11.0403,217.3856,7.0124 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1492,10.9849,218.4817,7.0478 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2991,10.9560,219.0584,7.0664 +200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5907,11.0940,216.3330,6.9785 +200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2175,10.7656,222.9332,7.1914 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0743,11.0187,217.8120,7.0262 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1495,10.9595,218.9885,7.0641 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2999,10.9274,219.6313,7.0849 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5869,11.1662,214.9339,6.9334 +200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2165,10.7745,222.7480,7.1854 +200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.7471,9.5424,251.5081,8.1132 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1490,10.9992,218.1970,7.0386 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2983,10.9837,218.5056,7.0486 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5901,11.1053,216.1125,6.9714 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2063,10.8653,220.8859,7.1254 +200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6882,9.7516,246.1127,7.9391 +200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.6302,9.3121,257.7289,8.3138 +200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2976,11.0089,218.0051,7.0324 +200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5926,11.0594,217.0096,7.0003 +200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2088,10.8433,221.3346,7.1398 +200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.7010,9.7055,247.2829,7.9769 +200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.6443,9.2887,258.3778,8.3348 +200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,11.4754,9.1376,262.6509,8.4726 +200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5909,11.0900,216.4113,6.9810 +200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2180,10.7614,223.0192,7.1942 +200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6995,9.7110,247.1430,7.9724 +200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.6213,9.3268,257.3236,8.3008 +200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,11.5317,9.0930,263.9393,8.5142 +200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,23.0906,9.0823,264.2507,8.5242 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0734,11.1635,214.9868,6.9351 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1493,10.9774,218.6311,7.0526 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2981,10.9922,218.3376,7.0431 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5933,11.0465,217.2627,7.0085 +200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2348,10.6149,226.0980,7.2935 +200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6964,9.7218,246.8669,7.9634 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1470,11.1473,215.2982,6.9451 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2982,10.9872,218.4350,7.0463 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5910,11.0884,216.4431,6.9820 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2354,10.6093,226.2169,7.2973 +200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6843,9.7659,245.7535,7.9275 +200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.6402,9.2956,258.1872,8.3286 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2986,10.9722,218.7351,7.0560 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5930,11.0511,217.1736,7.0056 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2187,10.7551,223.1490,7.1984 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6955,9.7253,246.7789,7.9606 +200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.6300,9.3124,257.7221,8.3136 +200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,11.4678,9.1436,262.4776,8.4670 +200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5932,11.0481,217.2322,7.0075 +200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2189,10.7536,223.1802,7.1994 +200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6839,9.7675,245.7140,7.9263 +200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.6155,9.3364,257.0593,8.2922 +200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,11.5181,9.1037,263.6285,8.5041 +200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,23.2101,9.0355,265.6190,8.5684 +200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2148,10.7894,222.4400,7.1755 +200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.7171,9.6480,248.7573,8.0244 +200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.6323,9.3086,257.8258,8.3170 +200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,11.4916,9.1247,263.0214,8.4846 +200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,23.1721,9.0503,265.1837,8.5543 +200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,46.4225,9.0351,265.6319,8.5688 +200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1491,10.9908,218.3644,7.0440 +200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2980,10.9973,218.2357,7.0399 +200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5923,11.0640,216.9201,6.9974 +200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2190,10.7526,223.2011,7.2000 +200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6910,9.7414,246.3719,7.9475 +200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.6597,9.2635,259.0816,8.3575 +200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2994,10.9438,219.3016,7.0742 +200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5909,11.0911,216.3901,6.9803 +200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2158,10.7807,222.6192,7.1813 +200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6899,9.7456,246.2645,7.9440 +200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.6445,9.2884,258.3855,8.3350 +200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,11.4730,9.1395,262.5972,8.4709 +200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5929,11.0536,217.1243,7.0040 +200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2112,10.8220,221.7706,7.1539 +200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6860,9.7596,245.9114,7.9326 +200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.6322,9.3087,257.8220,8.3168 +200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,11.5069,9.1126,263.3713,8.4958 +200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,23.1910,9.0429,265.4001,8.5613 +200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2062,10.8663,220.8666,7.1247 +200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6866,9.7575,245.9652,7.9344 +200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.6328,9.3077,257.8506,8.3178 +200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,11.4603,9.1496,262.3058,8.4615 +200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,23.2151,9.0336,265.6754,8.5702 +200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,46.3930,9.0408,265.4628,8.5633 +200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6934,9.7330,246.5840,7.9543 +200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.6297,9.3129,257.7073,8.3131 +200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,11.4733,9.1393,262.6034,8.4711 +200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,23.1572,9.0562,265.0131,8.5488 +200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,46.4403,9.0316,265.7335,8.5720 +200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,93.1158,9.0088,266.4065,8.5938 +200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2983,10.9862,218.4566,7.0470 +200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5919,11.0721,216.7605,6.9923 +200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2059,10.8690,220.8113,7.1229 +200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.7223,9.6296,249.2308,8.0397 +200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.6259,9.3192,257.5338,8.3075 +200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,11.5348,9.0905,264.0113,8.5165 +200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5919,11.0719,216.7642,6.9924 +200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2060,10.8686,220.8192,7.1232 +200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6973,9.7187,246.9454,7.9660 +200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.6342,9.3055,257.9115,8.3197 +200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,11.4968,9.1206,263.1412,8.4884 +200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,23.1210,9.0703,264.5987,8.5354 +200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2136,10.8004,222.2134,7.1682 +200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6854,9.7618,245.8551,7.9308 +200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.6319,9.3092,257.8084,8.3164 +200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,11.4978,9.1198,263.1639,8.4892 +200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,23.1832,9.0460,265.3105,8.5584 +200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,46.4555,9.0287,265.8204,8.5749 +200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6859,9.7600,245.9017,7.9323 +200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.6275,9.3166,257.6054,8.3099 +200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,11.4766,9.1367,262.6781,8.4735 +200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,23.1329,9.0657,264.7348,8.5398 +200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,46.5382,9.0126,266.2938,8.5901 +200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,92.7335,9.0459,265.3127,8.5585 +200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.6284,9.3150,257.6485,8.3112 +200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,11.4938,9.1230,263.0719,8.4862 +200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,23.1701,9.0511,265.1611,8.5536 +200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,46.5385,9.0125,266.2957,8.5902 +200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,93.0355,9.0166,266.1767,8.5863 +200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,187.8248,8.9324,268.6855,8.6673 From 15de65303effc9ef6d0c56e3840f2a28aefad1ef Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 5 May 2021 03:04:41 +0200 Subject: [PATCH 17/32] Add version iterating most internal loop multiple times Signed-off-by: Rafael Ravedutti --- Makefile | 4 + arch_analysis/osaca_force_soa_lt8_iln1000.txt | 70 +++++++++ asm/force_aos_lt8_markers.s | 2 + scripts/results_soa_casclakesp2_iln1000.txt | 142 ++++++++++++++++++ src/force.c | 48 +++--- src/main-stub.c | 10 +- src/main.c | 6 +- 7 files changed, 247 insertions(+), 35 deletions(-) create mode 100644 arch_analysis/osaca_force_soa_lt8_iln1000.txt create mode 100644 scripts/results_soa_casclakesp2_iln1000.txt diff --git a/Makefile b/Makefile index 2e05f9a..e15e330 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,10 @@ else DEFINES += -DPRECISION=2 endif +ifneq ($(INTERNAL_LOOP_NTIMES),) + DEFINES += -DINTERNAL_LOOP_NTIMES=$(INTERNAL_LOOP_NTIMES) +endif + VPATH = $(SRC_DIR) ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) OBJ = $(filter-out $(BUILD_DIR)/main%,$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) diff --git a/arch_analysis/osaca_force_soa_lt8_iln1000.txt b/arch_analysis/osaca_force_soa_lt8_iln1000.txt new file mode 100644 index 0000000..8ff88d5 --- /dev/null +++ b/arch_analysis/osaca_force_soa_lt8_iln1000.txt @@ -0,0 +1,70 @@ +iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX ICC/force.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: ICC/force.s +Architecture: CSX +Timestamp: 2021-04-30 16:08:44 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 306 | | | | | | | | || | | # LOE rbp rdi r8 r9 r10 edx ecx r11d r12d r13d r14d r15d ymm13 ymm14 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm15 + 307 | | | | | | | | || | | ..B1.29: # Preds ..B1.28 + 308 | | | | | | | | || | | # Execution count [2.50e+04] + 309 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | movl %r14d, %eax #64.13 + 310 | | | | | | | | || | | X subl %ecx, %eax #64.13 + 311 | | | | | | | | || | | X vpbroadcastd %eax, %ymm0 #64.13 + 312 | | | | | | 1.00 | | || | | vpcmpgtd %ymm14, %ymm0, %k5 #64.13 + 313 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ecx, %rcx #64.13 + 314 | | | | | | | | || | | * vmovaps %zmm15, %zmm17 #67.40 + 315 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #67.40 + 316 | | | | | | | | || | | * vmovaps %zmm15, %zmm16 #66.40 + 317 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rdi,%rcx,4), %ymm1{%k5}{z} #65.25 + 318 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #66.40 + 319 | | | | | | | | || | | * vmovaps %zmm15, %zmm18 #68.40 + 320 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #68.40 + 321 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%r8,%ymm1,8), %zmm18{%k3} #68.40 + 322 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%r9,%ymm1,8), %zmm17{%k2} #67.40 + 323 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || | | vgatherdpd (%r10,%ymm1,8), %zmm16{%k1} #66.40 + 324 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm3, %zmm31 #68.40 + 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm2, %zmm29 #67.40 + 326 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm16, %zmm4, %zmm28 #66.40 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm27 #69.53 + 328 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm27 #69.53 + 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm27 #69.67 + 330 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm27, %zmm26 #72.42 + 331 | | | | | | 1.00 | | || | | vcmppd $1, %zmm12, %zmm27, %k6{%k5} #71.26 + 332 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm26, %k0 #72.42 + 333 | | | | | | | | || | | * vmovaps %zmm27, %zmm19 #72.42 + 334 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm26, %zmm19 #72.42 + 335 | 1.00 | | | | | | | || | | knotw %k0, %k4 #72.42 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm19, %zmm20 #72.42 + 337 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm26, %zmm19, %zmm26{%k4} #72.42 + 338 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm26, %zmm20, %zmm26{%k4} #72.42 + 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm11, %zmm26, %zmm21 #73.42 + 340 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm9, %zmm26, %zmm23 #74.58 + 341 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm26, %zmm24 #73.48 + 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm26, %zmm22 #73.54 + 343 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm10, %zmm24, %zmm26 #74.58 + 344 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm23, %zmm22, %zmm25 #74.65 + 345 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm26, %zmm25, %zmm30 #74.71 + 346 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21 + 347 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21 + 348 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21 + + 18.0 3.00 13.0 2.50 13.0 2.50 18.0 3.00 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 313 | 1.0 | movslq %ecx, %rcx #64.13| [313] + 348 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21| [348] + 347 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21| [347] + 346 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21| [346] diff --git a/asm/force_aos_lt8_markers.s b/asm/force_aos_lt8_markers.s index f9ef002..1c8e3ef 100644 --- a/asm/force_aos_lt8_markers.s +++ b/asm/force_aos_lt8_markers.s @@ -355,6 +355,7 @@ computeForce: ja ..B1.38 # Prob 50% #67.9 movl $111,%ebx #IACA/OSACA START MARKER .byte 100,103,144 #IACA/OSACA START MARKER + # LLVM-MCA-BEGIN # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 ..B1.33: # Preds ..B1.32 # Execution count [2.50e+01] @@ -415,6 +416,7 @@ computeForce: vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 movl $222,%ebx #IACA/OSACA END MARKER .byte 100,103,144 #IACA/OSACA END MARKER + # LLVM-MCA-END # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 ..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 # Execution count [4.50e+00] diff --git a/scripts/results_soa_casclakesp2_iln1000.txt b/scripts/results_soa_casclakesp2_iln1000.txt new file mode 100644 index 0000000..303232b --- /dev/null +++ b/scripts/results_soa_casclakesp2_iln1000.txt @@ -0,0 +1,142 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7405,69.1424,34.7110,4.9587 +200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4818,69.1066,34.7290,4.9613 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9627,69.1261,34.7191,4.9599 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9244,69.1378,34.7133,4.9590 +200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4813,69.1298,34.7173,4.9596 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9633,69.1126,34.7259,4.9608 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9254,69.1265,34.7189,4.9598 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8621,69.0600,34.7524,4.9646 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9705,68.9438,34.8110,4.9730 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9338,69.0288,34.7681,4.9669 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8492,69.1354,34.7145,4.9592 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.7239,69.0612,34.7518,4.9645 +200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4814,69.1239,34.7203,4.9600 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9622,69.1383,34.7130,4.9590 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9256,69.1234,34.7205,4.9601 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8548,69.1026,34.7310,4.9616 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,2.9625,69.1319,34.7162,4.9595 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9247,69.1339,34.7152,4.9593 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8484,69.1400,34.7122,4.9589 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,23.7201,69.0721,34.7463,4.9638 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9244,69.1376,34.7134,4.9591 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8496,69.1331,34.7156,4.9594 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.7200,69.0724,34.7461,4.9637 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.4404,-21.4620,-111.8254,-15.9751 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9624,69.1338,34.7153,4.9593 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,5.9251,69.1300,34.7172,4.9596 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,11.8495,69.1335,34.7155,4.9594 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.7169,69.0814,34.7416,4.9631 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9246,69.1360,34.7142,4.9592 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8498,69.1319,34.7163,4.9595 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,23.7234,69.0625,34.7511,4.9644 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.4499,-21.4578,-111.8477,-15.9782 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8552,69.1005,34.7320,4.9617 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.7215,69.0682,34.7483,4.9640 +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7406,69.1332,34.7156,4.9594 +200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4813,69.1306,34.7169,4.9596 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9622,69.1383,34.7130,4.9590 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9253,69.1267,34.7188,4.9598 +200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4813,69.1298,34.7173,4.9596 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9625,69.1308,34.7168,4.9595 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9247,69.1340,34.7152,4.9593 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8482,69.1412,34.7116,4.9588 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9625,69.1310,34.7167,4.9595 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9254,69.1263,34.7191,4.9599 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8488,69.1375,34.7134,4.9591 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.7265,69.0536,34.7556,4.9651 +200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4814,69.1244,34.7200,4.9600 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9622,69.1375,34.7134,4.9591 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9251,69.1301,34.7172,4.9596 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8497,69.1326,34.7159,4.9594 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,2.9623,69.1364,34.7140,4.9591 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9250,69.1311,34.7166,4.9595 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8488,69.1378,34.7133,4.9590 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,23.7217,69.0677,34.7485,4.9641 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9246,69.1355,34.7145,4.9592 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8491,69.1358,34.7143,4.9592 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.7200,69.0725,34.7461,4.9637 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.4484,-21.4584,-111.8442,-15.9777 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9624,69.1343,34.7151,4.9593 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,5.9239,69.1432,34.7106,4.9587 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,11.8490,69.1367,34.7138,4.9591 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.7192,69.0749,34.7449,4.9636 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9251,69.1301,34.7171,4.9596 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8496,69.1329,34.7157,4.9594 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,23.7224,69.0655,34.7496,4.9642 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.4415,-21.4615,-111.8280,-15.9754 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8502,69.1297,34.7173,4.9596 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.7177,69.0792,34.7428,4.9633 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,47.4485,-21.4584,-111.8445,-15.9778 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,94.8632,-21.4660,-111.8047,-15.9721 +200,4x4x2,16,512,59.3920,12.2880,34.8160,2.8749,35.6181,67.3814,4.4921 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,5.7553,35.5849,67.4444,4.4963 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,11.5277,35.5317,67.5452,4.5030 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,23.0679,35.5125,67.5818,4.5055 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,5.7516,35.6076,67.4014,4.4934 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,11.5048,35.6026,67.4108,4.4941 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,23.0343,35.5643,67.4834,4.4989 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,46.1992,35.4638,67.6746,4.5116 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,11.5339,35.5126,67.5817,4.5054 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,23.0366,35.5607,67.4902,4.4993 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,46.1666,35.4888,67.6269,4.5085 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,92.3461,-11.0256,-217.6759,-14.5117 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,5.7504,35.6148,67.3877,4.4925 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,11.5363,35.5054,67.5954,4.5064 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,23.0449,35.5480,67.5143,4.5010 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,46.2153,35.4515,67.6981,4.5132 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,11.5019,35.6114,67.3942,4.4929 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,23.0126,35.5980,67.4196,4.4946 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,46.1823,35.4768,67.6499,4.5100 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,92.3762,-11.0220,-217.7469,-14.5165 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,23.0367,35.5606,67.4904,4.4994 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,46.1673,35.4883,67.6279,4.5085 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,92.4053,-11.0185,-217.8156,-14.5210 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,184.6536,-11.0279,-217.6306,-14.5087 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,11.4984,35.6223,67.3736,4.4916 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,23.0553,35.5319,67.5449,4.5030 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,46.1639,35.4909,67.6229,4.5082 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,92.3485,-11.0253,-217.6818,-14.5121 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,23.0221,35.5832,67.4475,4.4965 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,46.1950,35.4671,67.6684,4.5112 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,92.3825,-11.0212,-217.7618,-14.5175 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,184.4897,-11.0377,-217.4373,-14.4958 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,46.1887,35.4719,67.6592,4.5106 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,92.4000,-11.0191,-217.8031,-14.5202 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,184.6561,-11.0277,-217.6335,-14.5089 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,369.2723,0.6020,3986.7795,265.7853 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,11.4223,17.9299,133.8547,4.3179 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,22.8232,17.9466,133.7300,4.3139 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,45.6452,17.9471,133.7263,4.3138 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,91.3233,17.9407,133.7744,4.3153 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,22.8306,17.9408,133.7732,4.3153 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,45.6485,17.9458,133.7357,4.3141 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,91.3158,17.9421,133.7634,4.3149 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,182.6220,-5.5753,-430.4722,-13.8862 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,45.6489,17.9457,133.7371,4.3141 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,91.2890,17.9474,133.7241,4.3137 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,182.6145,-5.5755,-430.4547,-13.8856 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,365.2677,-5.5749,-430.5002,-13.8871 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,22.8301,17.9412,133.7701,4.3152 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,45.6689,17.9378,133.7956,4.3160 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,91.3143,17.9424,133.7611,4.3149 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,182.6332,-5.5749,-430.4987,-13.8871 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,45.6519,17.9445,133.7457,4.3144 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,91.3215,17.9410,133.7717,4.3152 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,182.6451,-5.5746,-430.5267,-13.8880 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,365.1989,-5.5760,-430.4192,-13.8845 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,91.3015,17.9449,133.7425,4.3143 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,182.6251,-5.5752,-430.4795,-13.8864 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,365.2087,-5.5758,-430.4307,-13.8849 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,730.5781,0.3043,7887.5501,254.4371 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,45.6592,17.9416,133.7671,4.3151 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,91.3092,17.9434,133.7537,4.3146 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,182.6471,-5.5745,-430.5315,-13.8881 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,365.2706,-5.5749,-430.5036,-13.8872 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,91.3464,17.9361,133.8082,4.3164 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,182.6559,-5.5742,-430.5521,-13.8888 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,365.2269,-5.5755,-430.4521,-13.8856 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,730.5707,0.3043,7887.4697,254.4345 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,182.6406,-5.5747,-430.5160,-13.8876 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,365.2364,-5.5754,-430.4633,-13.8859 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,730.5352,0.3043,7887.0871,254.4222 +200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,1461.1927,0.3043,7887.7469,254.4434 diff --git a/src/force.c b/src/force.c index 380a31b..32b30f5 100644 --- a/src/force.c +++ b/src/force.c @@ -27,12 +27,12 @@ #include #include -double computeForce( - Parameter *param, - Atom *atom, - Neighbor *neighbor, - int profile) -{ +// Number of times to compute the most internal loop +#ifndef INTERNAL_LOOP_NTIMES +#define INTERNAL_LOOP_NTIMES 1 +#endif + +double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { int Nlocal = atom->Nlocal; int* neighs; MD_FLOAT cutforcesq = param->cutforce * param->cutforce; @@ -47,10 +47,6 @@ double computeForce( fz[i] = 0.0; } - if(profile) { - // LIKWID_MARKER_START("force"); - } - #pragma omp parallel for for(int i = 0; i < Nlocal; i++) { neighs = &neighbor->neighbors[i * neighbor->maxneighs]; @@ -64,20 +60,22 @@ double computeForce( // printf("%d: %d\n", i, numneighs); - for(int k = 0; k < numneighs; k++) { - int j = neighs[k]; - MD_FLOAT delx = xtmp - atom_x(j); - MD_FLOAT dely = ytmp - atom_y(j); - MD_FLOAT delz = ztmp - atom_z(j); - MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; + for(int n = 0; n < INTERNAL_LOOP_NTIMES; n++) { + for(int k = 0; k < numneighs; k++) { + int j = neighs[k]; + MD_FLOAT delx = xtmp - atom_x(j); + MD_FLOAT dely = ytmp - atom_y(j); + MD_FLOAT delz = ztmp - atom_z(j); + MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; - if(rsq < cutforcesq) { - MD_FLOAT sr2 = 1.0 / rsq; - MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; - MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; - fix += delx * force; - fiy += dely * force; - fiz += delz * force; + if(rsq < cutforcesq) { + MD_FLOAT sr2 = 1.0 / rsq; + MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; + MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; + fix += delx * force; + fiy += dely * force; + fiz += delz * force; + } } } @@ -86,9 +84,5 @@ double computeForce( fz[i] += fiz; } - if(profile) { - // LIKWID_MARKER_STOP("force"); - } - return 0.0; } diff --git a/src/main-stub.c b/src/main-stub.c index a884ae0..4041c2c 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -16,7 +16,7 @@ #define LATTICE_DISTANCE 10.0 #define NEIGH_DISTANCE 1.0 -extern double computeForce( Parameter*, Atom*, Neighbor*, int); +extern double computeForce( Parameter*, Atom*, Neighbor*); void init(Parameter *param) { param->epsilon = 1.0; @@ -188,19 +188,19 @@ int main(int argc, const char *argv[]) { DEBUG("Building neighbor lists...\n"); buildNeighbor(atom, &neighbor); DEBUG("Computing forces...\n"); - computeForce(¶m, atom, &neighbor, 0); + computeForce(¶m, atom, &neighbor); double S, E; S = getTimeStamp(); LIKWID_MARKER_START("force"); for(int i = 0; i < param.ntimes; i++) { - computeForce(¶m, atom, &neighbor, 1); + computeForce(¶m, atom, &neighbor); } LIKWID_MARKER_STOP("force"); E = getTimeStamp(); double T_accum = E-S; - const double atoms_updates_per_sec = atom->Nlocal * param.ntimes / T_accum; - const double cycles_per_atom = T_accum * freq / (atom->Nlocal * param.ntimes); + const double atoms_updates_per_sec = (double)(atom->Nlocal * INTERNAL_LOOP_NTIMES * param.ntimes) / T_accum; + const double cycles_per_atom = T_accum * freq / (double)(atom->Nlocal * param.ntimes * INTERNAL_LOOP_NTIMES); const double cycles_per_neigh = cycles_per_atom / (double)(atoms_per_unit_cell - 1); if(!csv) { diff --git a/src/main.c b/src/main.c index 564708e..6b09c8e 100644 --- a/src/main.c +++ b/src/main.c @@ -47,7 +47,7 @@ typedef enum { NUMTIMER } timertype; -extern double computeForce( Parameter*, Atom*, Neighbor*, int); +extern double computeForce( Parameter*, Atom*, Neighbor*); void init(Parameter *param) { @@ -205,7 +205,7 @@ int main (int argc, char** argv) setup(¶m, &atom, &neighbor); computeThermo(0, ¶m, &atom); - computeForce(¶m, &atom, &neighbor, 1); + computeForce(¶m, &atom, &neighbor); timer[FORCE] = 0.0; timer[NEIGH] = 0.0; @@ -221,7 +221,7 @@ int main (int argc, char** argv) timer[NEIGH] += reneighbour(¶m, &atom, &neighbor); } - timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1); + timer[FORCE] += computeForce(¶m, &atom, &neighbor); finalIntegrate(¶m, &atom); if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) { From e53d9961efa52797dd12cacb7c2861d708b9ac5a Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 6 May 2021 13:59:02 +0200 Subject: [PATCH 18/32] Fix compilation when INTERNAL_LOOP_NTIMES is not set and create avx512 directory Signed-off-by: Rafael Ravedutti --- asm/{ => avx512}/force_aos_geq1200_markers.s | 0 asm/{ => avx512}/force_aos_intel.s | 0 asm/{ => avx512}/force_aos_lt1200_markers.s | 0 asm/{ => avx512}/force_aos_lt8_markers.s | 0 asm/{ => avx512}/force_soa_att.s | 0 asm/{ => avx512}/force_soa_geq1200_markers.s | 0 asm/{ => avx512}/force_soa_intel.s | 0 asm/{ => avx512}/force_soa_lt1200_markers.s | 0 asm/{ => avx512}/force_soa_lt8_markers.s | 0 src/force.c | 5 ----- src/includes/parameter.h | 5 +++++ 11 files changed, 5 insertions(+), 5 deletions(-) rename asm/{ => avx512}/force_aos_geq1200_markers.s (100%) rename asm/{ => avx512}/force_aos_intel.s (100%) rename asm/{ => avx512}/force_aos_lt1200_markers.s (100%) rename asm/{ => avx512}/force_aos_lt8_markers.s (100%) rename asm/{ => avx512}/force_soa_att.s (100%) rename asm/{ => avx512}/force_soa_geq1200_markers.s (100%) rename asm/{ => avx512}/force_soa_intel.s (100%) rename asm/{ => avx512}/force_soa_lt1200_markers.s (100%) rename asm/{ => avx512}/force_soa_lt8_markers.s (100%) diff --git a/asm/force_aos_geq1200_markers.s b/asm/avx512/force_aos_geq1200_markers.s similarity index 100% rename from asm/force_aos_geq1200_markers.s rename to asm/avx512/force_aos_geq1200_markers.s diff --git a/asm/force_aos_intel.s b/asm/avx512/force_aos_intel.s similarity index 100% rename from asm/force_aos_intel.s rename to asm/avx512/force_aos_intel.s diff --git a/asm/force_aos_lt1200_markers.s b/asm/avx512/force_aos_lt1200_markers.s similarity index 100% rename from asm/force_aos_lt1200_markers.s rename to asm/avx512/force_aos_lt1200_markers.s diff --git a/asm/force_aos_lt8_markers.s b/asm/avx512/force_aos_lt8_markers.s similarity index 100% rename from asm/force_aos_lt8_markers.s rename to asm/avx512/force_aos_lt8_markers.s diff --git a/asm/force_soa_att.s b/asm/avx512/force_soa_att.s similarity index 100% rename from asm/force_soa_att.s rename to asm/avx512/force_soa_att.s diff --git a/asm/force_soa_geq1200_markers.s b/asm/avx512/force_soa_geq1200_markers.s similarity index 100% rename from asm/force_soa_geq1200_markers.s rename to asm/avx512/force_soa_geq1200_markers.s diff --git a/asm/force_soa_intel.s b/asm/avx512/force_soa_intel.s similarity index 100% rename from asm/force_soa_intel.s rename to asm/avx512/force_soa_intel.s diff --git a/asm/force_soa_lt1200_markers.s b/asm/avx512/force_soa_lt1200_markers.s similarity index 100% rename from asm/force_soa_lt1200_markers.s rename to asm/avx512/force_soa_lt1200_markers.s diff --git a/asm/force_soa_lt8_markers.s b/asm/avx512/force_soa_lt8_markers.s similarity index 100% rename from asm/force_soa_lt8_markers.s rename to asm/avx512/force_soa_lt8_markers.s diff --git a/src/force.c b/src/force.c index 32b30f5..bd471c2 100644 --- a/src/force.c +++ b/src/force.c @@ -27,11 +27,6 @@ #include #include -// Number of times to compute the most internal loop -#ifndef INTERNAL_LOOP_NTIMES -#define INTERNAL_LOOP_NTIMES 1 -#endif - double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { int Nlocal = atom->Nlocal; int* neighs; diff --git a/src/includes/parameter.h b/src/includes/parameter.h index 3bf8b9f..9d51b12 100644 --- a/src/includes/parameter.h +++ b/src/includes/parameter.h @@ -29,6 +29,11 @@ #define MD_FLOAT double #endif +// Number of times to compute the most internal loop +#ifndef INTERNAL_LOOP_NTIMES +#define INTERNAL_LOOP_NTIMES 1 +#endif + typedef struct { MD_FLOAT epsilon; MD_FLOAT sigma6; From 327cc302b8b2f13d34410caa6fe84621129a8d88 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 6 May 2021 14:00:08 +0200 Subject: [PATCH 19/32] Create avx512 directory for analysis Signed-off-by: Rafael Ravedutti --- arch_analysis/iaca_force_aos_geq1200.txt | 79 ------------ arch_analysis/iaca_force_aos_lt1200.txt | 104 ---------------- arch_analysis/iaca_force_aos_lt8.txt | 82 ------------- arch_analysis/iaca_force_soa_geq1200.txt | 74 ------------ arch_analysis/iaca_force_soa_lt1200.txt | 72 ----------- arch_analysis/iaca_force_soa_lt8.txt | 78 ------------ arch_analysis/osaca_force_aos_geq1200.txt | 80 ------------- arch_analysis/osaca_force_aos_lt1200.txt | 112 ------------------ arch_analysis/osaca_force_aos_lt8.txt | 91 -------------- arch_analysis/osaca_force_soa_geq1200.txt | 71 ----------- arch_analysis/osaca_force_soa_lt1200.txt | 69 ----------- arch_analysis/osaca_force_soa_lt8.txt | 79 ------------ arch_analysis/osaca_force_soa_lt8_iln1000.txt | 70 ----------- 13 files changed, 1061 deletions(-) delete mode 100644 arch_analysis/iaca_force_aos_geq1200.txt delete mode 100644 arch_analysis/iaca_force_aos_lt1200.txt delete mode 100644 arch_analysis/iaca_force_aos_lt8.txt delete mode 100644 arch_analysis/iaca_force_soa_geq1200.txt delete mode 100644 arch_analysis/iaca_force_soa_lt1200.txt delete mode 100644 arch_analysis/iaca_force_soa_lt8.txt delete mode 100644 arch_analysis/osaca_force_aos_geq1200.txt delete mode 100644 arch_analysis/osaca_force_aos_lt1200.txt delete mode 100644 arch_analysis/osaca_force_aos_lt8.txt delete mode 100644 arch_analysis/osaca_force_soa_geq1200.txt delete mode 100644 arch_analysis/osaca_force_soa_lt1200.txt delete mode 100644 arch_analysis/osaca_force_soa_lt8.txt delete mode 100644 arch_analysis/osaca_force_soa_lt8_iln1000.txt diff --git a/arch_analysis/iaca_force_aos_geq1200.txt b/arch_analysis/iaca_force_aos_geq1200.txt deleted file mode 100644 index a10a778..0000000 --- a/arch_analysis/iaca_force_aos_geq1200.txt +++ /dev/null @@ -1,79 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_aos_geq1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_aos_geq1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 33.05 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 20.0 0.0 | 4.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 4.5 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm2, ymm3 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm17{k3}{z}, ymmword ptr [r15+r13*4] -| 1 | 1.0 | | | | | | | | kmovw r9d, k3 -| 1 | | 1.0 | | | | | | | vpaddd ymm18, ymm17, ymm17 -| 1 | | 1.0 | | | | | | | vpaddd ymm17, ymm17, ymm18 -| 1 | 1.0 | | | | | | | | kmovw k1, k3 -| 1 | 1.0 | | | | | | | | kmovw k2, k3 -| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 -| 1* | | | | | | | | | vpxord zmm19, zmm19, zmm19 -| 1* | | | | | | | | | vpxord zmm20, zmm20, zmm20 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k1, zmmword ptr [rdi+ymm17*8+0x10] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm19, k2, zmmword ptr [rdi+ymm17*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm20, k3, zmmword ptr [rdi+ymm17*8] -| 1 | | 0.5 | | | | | 0.5 | | add r13, 0x8 -| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm16 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm29, zmm4, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm27, zmm0, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm1, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm27, zmm27 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm26, zmm26 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm29, zmm29 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm24, zmm25 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm25, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm24, 0x1e -| 1 | 1.0 | | | | | | | | kmovw edx, k2 -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1* | | | | | | | | | vmovaps zmm17, zmm25 -| 1 | | | | | | | 1.0 | | and r9d, edx -| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm17, zmm24, qword ptr [rip]{1to8} -| 1 | | | | | | 1.0 | | | kmovw k3, r9d -| 1 | 1.0 | | | | | | | | vmulpd zmm18, zmm17, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm17, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm18, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm24, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm24, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm24, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm24, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm24, zmm22, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm23, zmm20, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm28, zmm23, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm28, zmm26 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm28, zmm27 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm28, zmm29 -| 1* | | | | | | | | | cmp r13, rbx -| 0*F | | | | | | | | | jb 0xfffffffffffffef7 -Total Num Of Uops: 60 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_aos_lt1200.txt b/arch_analysis/iaca_force_aos_lt1200.txt deleted file mode 100644 index 451061a..0000000 --- a/arch_analysis/iaca_force_aos_lt1200.txt +++ /dev/null @@ -1,104 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/ICC$ iaca -arch SKX force.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 36.70 Cycles Throughput Bottleneck: Backend -Loop Count: 23 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 17.5 0.0 | 11.0 | 20.5 17.0 | 20.5 17.0 | 7.0 | 20.5 | 7.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1* | | | | | | | | | mov r13, r8 -| 1 | | 1.0 | | | | | | | imul r13, rcx -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm6 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm1, xmm7 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm0, xmm12 -| 1 | | | | | | | 1.0 | | movsxd rbx, r12d -| 1 | | | | | | | 1.0 | | add r13, r10 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x40], rax -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x38], r8 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x30], r10 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x28], rsi -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x20], rcx -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x50], r9 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x48], rdx -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | vmovdqu ymm3, ymmword ptr [r13+rbx*4] -| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm3, ymm3 -| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm4 -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r10d, dword ptr [r13+rbx*4] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r9d, dword ptr [r13+rbx*4+0x4] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r8d, dword ptr [r13+rbx*4+0x8] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov esi, dword ptr [r13+rbx*4+0xc] -| 1 | | 1.0 | | | | | | | lea r10d, ptr [r10+r10*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov ecx, dword ptr [r13+rbx*4+0x10] -| 1 | | 1.0 | | | | | | | lea r9d, ptr [r9+r9*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov edx, dword ptr [r13+rbx*4+0x14] -| 1 | | 1.0 | | | | | | | lea r8d, ptr [r8+r8*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov eax, dword ptr [r13+rbx*4+0x18] -| 1 | | 1.0 | | | | | | | lea esi, ptr [rsi+rsi*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r15d, dword ptr [r13+rbx*4+0x1c] -| 1 | | 1.0 | | | | | | | lea ecx, ptr [rcx+rcx*2] -| 1 | | 1.0 | | | | | | | lea edx, ptr [rdx+rdx*2] -| 1 | | 1.0 | | | | | | | lea eax, ptr [rax+rax*2] -| 1 | | 1.0 | | | | | | | lea r15d, ptr [r15+r15*2] -| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 -| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 -| 1* | | | | | | | | | vpxord zmm17, zmm17, zmm17 -| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 -| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdi+ymm3*8+0x10] -| 5^ | 1.5 | | 4.0 4.0 | 4.0 4.0 | | 0.5 | 1.0 | | vgatherdpd zmm17, k2, zmmword ptr [rdi+ymm3*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k3, zmmword ptr [rdi+ymm3*8] -| 1 | | | | | | | 1.0 | | add r12d, 0x8 -| 1 | | | | | | | 1.0 | | add rbx, 0x8 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm0, zmm4 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm24, zmm1, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm23, zmm2, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm24, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm23, zmm23 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm26, zmm26 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm22, zmm3 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm3, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm22, 0x1e -| 2^ | 1.0 | | 0.5 0.5 | 0.5 0.5 | | | | | vfnmadd213pd zmm3, zmm22, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm4, zmm3, zmm3 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm3, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm4, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm22, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm22, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm22, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm18, zmm22, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm22, zmm20, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm18, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm21, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k2}, zmm25, zmm23 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k2}, zmm25, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k2}, zmm25, zmm26 -| 1* | | | | | | | | | cmp r12d, r14d -| 0*F | | | | | | | | | jb 0xfffffffffffffed3 -Total Num Of Uops: 91 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_aos_lt8.txt b/arch_analysis/iaca_force_aos_lt8.txt deleted file mode 100644 index 973db7c..0000000 --- a/arch_analysis/iaca_force_aos_lt8.txt +++ /dev/null @@ -1,82 +0,0 @@ -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_aos_lt8_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 69.79 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 21.0 0.0 | 5.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 21.0 | 5.5 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | 1.0 | | | | | | | imul rcx, r8 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm4, xmm6 -| 1 | | | | | | | 1.0 | | sub r11d, r14d -| 1 | | 0.5 | | | | | 0.5 | | add rcx, r10 -| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r11d -| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm0, ymm15 -| 1 | | 0.5 | | | | | 0.5 | | movsxd r14, r14d -| 1 | 1.0 | | | | | | | | kmovw ebx, k3 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k3}{z}, ymmword ptr [rcx+r14*4] -| 1 | | 1.0 | | | | | | | vpaddd ymm2, ymm1, ymm1 -| 1 | | 1.0 | | | | | | | vpaddd ymm0, ymm1, ymm2 -| 1 | 1.0 | | | | | | | | kmovw k1, k3 -| 1 | 1.0 | | | | | | | | kmovw k2, k3 -| 1* | | | | | | | | | vpxord zmm1, zmm1, zmm1 -| 1* | | | | | | | | | vpxord zmm2, zmm2, zmm2 -| 1* | | | | | | | | | vpxord zmm3, zmm3, zmm3 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm1, k1, zmmword ptr [rdi+ymm0*8+0x10] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm2, k2, zmmword ptr [rdi+ymm0*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k3, zmmword ptr [rdi+ymm0*8] -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm7, xmm7 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm12, xmm12 -| 1 | 1.0 | | | | | | | | vsubpd zmm23, zmm12, zmm1 -| 1 | 1.0 | | | | | | | | vsubpd zmm21, zmm7, zmm2 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm20, zmm4, zmm3 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm21, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm20, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm23, zmm23 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm18, zmm19 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm19, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm18, 0x1e -| 1 | 1.0 | | | | | | | | kmovw ecx, k2 -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1* | | | | | | | | | vmovaps zmm0, zmm19 -| 1 | | 0.5 | | | | | 0.5 | | and ebx, ecx -| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm0, zmm18, qword ptr [rip]{1to8} -| 1 | | | | | | 1.0 | | | kmovw k3, ebx -| 1 | 1.0 | | | | | | | | vmulpd zmm1, zmm0, zmm0 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm0, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm1, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm2, zmm18, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm4, zmm18, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm6, zmm18, zmm2 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm18, zmm6 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm18, zmm6, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm3, zmm4 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm17, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm22, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm22, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm22, zmm23 -Total Num Of Uops: 65 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_geq1200.txt b/arch_analysis/iaca_force_soa_geq1200.txt deleted file mode 100644 index 1deb2bc..0000000 --- a/arch_analysis/iaca_force_soa_geq1200.txt +++ /dev/null @@ -1,74 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_geq1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_geq1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 31.47 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 18.0 0.0 | 3.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 3.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm3, ymm4 -| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm4, ymm18 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm20{k5}{z}, ymmword ptr [rcx+r15*4] -| 1* | | | | | | | | | vmovaps zmm22, zmm19 -| 1 | | 1.0 | | | | | | | add r15, 0x8 -| 1 | 1.0 | | | | | | | | kmovw k2, k5 -| 1* | | | | | | | | | vmovaps zmm21, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k1, k5 -| 1* | | | | | | | | | vmovaps zmm23, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k3, k5 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm23, k3, zmmword ptr [rsi+ymm20*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm22, k2, zmmword ptr [rax+ymm20*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm21, k1, zmmword ptr [rdx+ymm20*8] -| 1 | | | | | | 1.0 | | | vsubpd zmm0, zmm5, zmm22 -| 1 | | | | | | 1.0 | | | vsubpd zmm1, zmm2, zmm21 -| 1 | | | | | | 1.0 | | | vsubpd zmm21, zmm6, zmm23 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm0, zmm0 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm1, zmm1 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm21, zmm21 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm31, zmm20 -| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm20, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm31, 0x1e -| 1* | | | | | | | | | vmovaps zmm24, zmm20 -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm24, zmm31, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm24, zmm24 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm31{k4}, zmm24, zmm31 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm31{k4}, zmm25, zmm31 -| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm31, zmm15 -| 1 | 1.0 | | | | | | | | vmulpd zmm28, zmm31, zmm14 -| 1 | | | | | | 1.0 | | | vmulpd zmm29, zmm31, zmm26 -| 1 | 1.0 | | | | | | | | vmulpd zmm27, zmm31, zmm29 -| 1 | | | | | | 1.0 | | | vfmsub213pd zmm31, zmm29, zmm7 -| 1 | 1.0 | | | | | | | | vmulpd zmm30, zmm27, zmm28 -| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm30, zmm31 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k6}, zmm24, zmm1 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k6}, zmm24, zmm0 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k6}, zmm24, zmm21 -| 1* | | | | | | | | | cmp r15, r14 -| 0*F | | | | | | | | | jb 0xffffffffffffff19 -Total Num Of Uops: 55 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_lt1200.txt b/arch_analysis/iaca_force_soa_lt1200.txt deleted file mode 100644 index 38f7014..0000000 --- a/arch_analysis/iaca_force_soa_lt1200.txt +++ /dev/null @@ -1,72 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_lt1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 30.25 Cycles Throughput Bottleneck: Backend -Loop Count: 23 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 16.0 0.0 | 2.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 19.0 | 3.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 -| 1 | | 1.0 | | | | | | | add r9d, 0x8 -| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 -| 1 | | | 1.0 1.0 | | | | | | vmovdqu ymm3, ymmword ptr [rcx+r14*4] -| 1 | | 1.0 | | | | | | | add r14, 0x8 -| 1* | | | | | | | | | vpxord zmm5, zmm5, zmm5 -| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 -| 1* | | | | | | | | | vpxord zmm6, zmm6, zmm6 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm5, k2, zmmword ptr [rax+ymm3*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdx+ymm3*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm6, k3, zmmword ptr [rsi+ymm3*8] -| 1 | | | | | | 1.0 | | | vsubpd zmm29, zmm1, zmm5 -| 1 | 1.0 | | | | | | | | vsubpd zmm28, zmm0, zmm4 -| 1 | | | | | | 1.0 | | | vsubpd zmm31, zmm2, zmm6 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm29, zmm29 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm28, zmm28 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm31, zmm31 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm27, zmm20 -| 1 | | | | | | 1.0 | | | vcmppd k5, zmm20, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm27, 0x1e -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm20, zmm27, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm20, zmm20 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm27{k4}, zmm20, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm27{k4}, zmm21, zmm27 -| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm27, zmm15 -| 1 | 1.0 | | | | | | | | vmulpd zmm24, zmm27, zmm14 -| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm27, zmm22 -| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm27, zmm25 -| 1 | | | | | | 1.0 | | | vfmsub213pd zmm27, zmm25, zmm7 -| 1 | 1.0 | | | | | | | | vmulpd zmm26, zmm23, zmm24 -| 1 | | | | | | 1.0 | | | vmulpd zmm30, zmm26, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k5}, zmm30, zmm28 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k5}, zmm30, zmm29 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k5}, zmm30, zmm31 -| 1* | | | | | | | | | cmp r9d, ebx -| 0*F | | | | | | | | | jb 0xffffffffffffff22 -Total Num Of Uops: 52 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/iaca_force_soa_lt8.txt b/arch_analysis/iaca_force_soa_lt8.txt deleted file mode 100644 index c9782f9..0000000 --- a/arch_analysis/iaca_force_soa_lt8.txt +++ /dev/null @@ -1,78 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt8_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_lt8_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 35.00 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 20.0 0.0 | 4.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 20.0 | 4.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | 1.0 | | | | | | | imul r8, r12 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm9, xmm9 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm8 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm10, xmm10 -| 1 | | 1.0 | | | | | | | sub r13d, ebx -| 1 | | 1.0 | | | | | | | add r8, r11 -| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r13d -| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm0, ymm17 -| 1 | | | | | | | 1.0 | | movsxd rbx, ebx -| 1* | | | | | | | | | vmovaps zmm4, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k2, k5 -| 1* | | | | | | | | | vmovaps zmm3, zmm19 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k5}{z}, ymmword ptr [r8+rbx*4] -| 1 | 1.0 | | | | | | | | kmovw k1, k5 -| 1* | | | | | | | | | vmovaps zmm5, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k3, k5 -| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm5, k3, zmmword ptr [rsi+ymm1*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k2, zmmword ptr [rax+ymm1*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k1, zmmword ptr [rdx+ymm1*8] -| 1 | 1.0 | | | | | | | | vsubpd zmm30, zmm10, zmm5 -| 1 | | | | | | 1.0 | | | vsubpd zmm28, zmm9, zmm4 -| 1 | 1.0 | | | | | | | | vsubpd zmm27, zmm2, zmm3 -| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm28, zmm28 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm26, zmm27, zmm27 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm26, zmm30, zmm30 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm25, zmm26 -| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm26, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm25, 0x1e -| 1* | | | | | | | | | vmovaps zmm6, zmm26 -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm6, zmm25, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm8, zmm6, zmm6 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm25{k4}, zmm6, zmm25 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm25{k4}, zmm8, zmm25 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm25, zmm15 -| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm25, zmm14 -| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm25, zmm20 -| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm25, zmm23 -| 1 | 1.0 | | | | | | | | vfmsub213pd zmm25, zmm23, zmm7 -| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm21, zmm22 -| 1 | 1.0 | | | | | | | | vmulpd zmm29, zmm24, zmm25 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm13{k6}, zmm29, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm12{k6}, zmm29, zmm28 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm11{k6}, zmm29, zmm30 -Total Num Of Uops: 60 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/osaca_force_aos_geq1200.txt b/arch_analysis/osaca_force_aos_geq1200.txt deleted file mode 100644 index 5e0907a..0000000 --- a/arch_analysis/osaca_force_aos_geq1200.txt +++ /dev/null @@ -1,80 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_geq1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_aos_geq1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:53:50 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 196 | | | | | | 1.00 | | || | | vpcmpgtd %ymm3, %ymm2, %k3 #67.9 - 197 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 - 198 | 1.00 | | | | | | | || | | kmovw %k3, %r9d #67.9 - 199 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm17, %ymm17, %ymm18 #69.36 - 200 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm18, %ymm17, %ymm17 #69.36 - 201 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 - 202 | | | | | | | | || | | ..B1.21: # Preds ..B1.18 - 203 | | | | | | | | || | | # Execution count [1.25e+01] - 204 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 - 205 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 - 206 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 - 207 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm19, %zmm19, %zmm19 #69.36 - 208 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm20, %zmm20, %zmm20 #69.36 - 209 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 - 210 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 - 211 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 - 212 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 - 213 | | | | | | | | || | | ..B1.22: # Preds ..B1.21 - 214 | | | | | | | | || | | # Execution count [2.50e+01] - 215 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | addq $8, %r13 #67.9 - 216 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm16, %ymm3, %ymm3 #67.9 - 217 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm4, %zmm29 #71.36 - 218 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm19, %zmm0, %zmm27 #70.36 - 219 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm20, %zmm1, %zmm26 #69.36 - 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm27, %zmm27, %zmm25 #72.49 - 221 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 - 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 - 223 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm25, %zmm24 #75.38 - 224 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm25, %k2 #74.22 - 225 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm24, %k0 #75.38 - 226 | 1.00 | | | | | | | || | | kmovw %k2, %edx #74.22 - 227 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 228 | | | | | | | | || | | * vmovaps %zmm25, %zmm17 #75.38 - 229 | 0.00 | 0.34 | | | | 0.00 | 0.66 | || | | andl %edx, %r9d #74.22 - 230 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 - 231 | 1.00 | | | | | | | || | | kmovw %r9d, %k3 #78.17 - 232 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm17, %zmm18 #75.38 - 233 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 - 234 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 - 235 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm24, %zmm19 #76.38 - 236 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm24, %zmm21 #77.54 - 237 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm19, %zmm24, %zmm22 #76.44 - 238 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm22, %zmm24, %zmm20 #76.50 - 239 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 - 240 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm21, %zmm20, %zmm23 #77.61 - 241 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm28 #77.67 - 242 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 - 243 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 - 244 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 - 245 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rbx, %r13 #67.9 - 246 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 - - 20.5 6.00 13.0 2.50 13.0 2.50 20.5 4.00 70.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 215 | 1.0 | addq $8, %r13 #67.9| [215] - 216 | 1.0 | vpaddd %ymm16, %ymm3, %ymm3 #67.9| [216] - 244 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17| [244] - 243 | 4.0 | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17| [243] - 242 | 4.0 | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17| [242] - diff --git a/arch_analysis/osaca_force_aos_lt1200.txt b/arch_analysis/osaca_force_aos_lt1200.txt deleted file mode 100644 index a30919e..0000000 --- a/arch_analysis/osaca_force_aos_lt1200.txt +++ /dev/null @@ -1,112 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/ICC$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force.s -Architecture: CSX -Timestamp: 2021-04-26 22:33:06 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 261 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 - 262 | | | | | | | | || | | # Execution count [4.50e+00] - 263 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | movq %r8, %r13 #56.43 - 264 | | 1.00 | | | | | | || 3.0 | 3.0 | imulq %rcx, %r13 #56.43 - 265 | | | | | | 1.00 | | || | | vbroadcastsd %xmm6, %zmm2 #58.23 - 266 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm1 #59.23 - 267 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm0 #60.23 - 268 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r12d, %rbx #67.9 - 269 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | addq %r10, %r13 #37.5 - 270 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rax, -64(%rsp) #37.5[spill] - 271 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r8, -56(%rsp) #37.5[spill] - 272 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r10, -48(%rsp) #37.5[spill] - 273 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rsi, -40(%rsp) #37.5[spill] - 274 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rcx, -32(%rsp) #37.5[spill] - 275 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r9, -80(%rsp) #37.5[spill] - 276 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rdx, -72(%rsp) #37.5[spill] - 277 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 278 | | | | | | | | || | | ..B1.26: # Preds ..B1.30 ..B1.25 - 279 | | | | | | | | || | | # Execution count [2.50e+01] - 280 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%r13,%rbx,4), %ymm3 #68.21 - 281 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm3, %ymm3, %ymm4 #69.36 - 282 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm4, %ymm3, %ymm3 #69.36 - 283 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl (%r13,%rbx,4), %r10d #68.21 - 284 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 4(%r13,%rbx,4), %r9d #68.21 - 285 | | | 0.50 0.50 | 0.50 0.50 | | | | || | 4.0 | movl 8(%r13,%rbx,4), %r8d #68.21 - 286 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 12(%r13,%rbx,4), %esi #68.21 - 287 | | 1.00 | | | | 0.00 | | || | | lea (%r10,%r10,2), %r10d #69.36 - 288 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 16(%r13,%rbx,4), %ecx #68.21 - 289 | | 1.00 | | | | 0.00 | | || | | lea (%r9,%r9,2), %r9d #69.36 - 290 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 20(%r13,%rbx,4), %edx #68.21 - 291 | | 1.00 | | | | 0.00 | | || | 1.0 | lea (%r8,%r8,2), %r8d #69.36 - 292 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 24(%r13,%rbx,4), %eax #68.21 - 293 | | 1.00 | | | | 0.00 | | || | | lea (%rsi,%rsi,2), %esi #69.36 - 294 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 28(%r13,%rbx,4), %r15d #68.21 - 295 | | 1.00 | | | | 0.00 | | || | | lea (%rcx,%rcx,2), %ecx #69.36 - 296 | | 1.00 | | | | 0.00 | | || | | lea (%rdx,%rdx,2), %edx #69.36 - 297 | | 1.00 | | | | 0.00 | | || | | lea (%rax,%rax,2), %eax #69.36 - 298 | | 1.00 | | | | 0.00 | | || | | lea (%r15,%r15,2), %r15d #69.36 - 299 | | | | | | | | || | | # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 300 | | | | | | | | || | | ..B1.29: # Preds ..B1.26 - 301 | | | | | | | | || | | # Execution count [1.25e+01] - 302 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - 303 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #69.36 - 304 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #69.36 - 305 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 - 306 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm17, %zmm17, %zmm17 #69.36 - 307 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 - 308 | 1.50 | 0.17 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.83 | || | | vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 - 309 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || 4.0 | | vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 - 310 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 - 311 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 - 312 | | | | | | | | || | | ..B1.30: # Preds ..B1.29 - 313 | | | | | | | | || | | # Execution count [2.50e+01] - 314 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addl $8, %r12d #67.9 - 315 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $8, %rbx #67.9 - 316 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm26 #71.36 - 317 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm1, %zmm24 #70.36 - 318 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm2, %zmm23 #69.36 - 319 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm3 #72.49 - 320 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 - 321 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 - 322 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm3, %zmm22 #75.38 - 323 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm3, %k2 #74.22 - 324 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm22, %k0 #75.38 - 325 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 - 326 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm3, %zmm3, %zmm4 #75.38 - 328 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 - 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 - 330 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm22, %zmm17 #76.38 - 331 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm22, %zmm19 #77.54 - 332 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm22, %zmm20 #76.44 - 333 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm22, %zmm18 #76.50 - 334 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 - 335 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm18, %zmm21 #77.61 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm25 #77.67 - 337 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 - 338 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 - 339 | 1.00 | | | | | 0.00 | | || 4.0 | | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 - 340 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpl %r14d, %r12d #67.9 - 341 | | | | | | | | || | | * jb ..B1.26 # Prob 82% #67.9 - 342 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - - 21.0 11.2 17.0 6.50 17.0 6.50 7.00 17.0 8.83 7.00 75.0 10.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 287 | 6.0 | lea (%r10,%r10,2), %r10d #69.36| [269, 283, 287] - 291 | 10.0 | lea (%r8,%r8,2), %r8d #69.36| [263, 264, 269, 285, 291] - 295 | 9.0 | lea (%rcx,%rcx,2), %ecx #69.36| [264, 269, 288, 295] - 314 | 1.0 | addl $8, %r12d #67.9| [314] - 339 | 4.0 | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17| [339] - 338 | 4.0 | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17| [338] - 337 | 4.0 | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17| [337] diff --git a/arch_analysis/osaca_force_aos_lt8.txt b/arch_analysis/osaca_force_aos_lt8.txt deleted file mode 100644 index 810dae9..0000000 --- a/arch_analysis/osaca_force_aos_lt8.txt +++ /dev/null @@ -1,91 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_lt8_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_aos_lt8_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:49:27 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 358 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 359 | | | | | | | | || | | ..B1.33: # Preds ..B1.32 - 360 | | | | | | | | || | | # Execution count [2.50e+01] - 361 | | 1.00 | | | | | | || 3.0 | | imulq %r8, %rcx #56.43 - 362 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm6, %zmm4 #58.23 - 363 | | | | | | | | || | | X subl %r14d, %r11d #67.9 - 364 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | addq %r10, %rcx #37.5 - 365 | | | | | | | | || | | X vpbroadcastd %r11d, %ymm0 #67.9 - 366 | | | | | | 1.00 | | || | | vpcmpgtd %ymm15, %ymm0, %k3 #67.9 - 367 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r14d, %r14 #67.9 - 368 | 1.00 | | | | | | | || | | kmovw %k3, %ebx #67.9 - 369 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 - 370 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm1, %ymm1, %ymm2 #69.36 - 371 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm2, %ymm1, %ymm0 #69.36 - 372 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 - 373 | | | | | | | | || | | ..B1.36: # Preds ..B1.33 - 374 | | | | | | | | || | | # Execution count [1.25e+01] - 375 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 - 376 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 - 377 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm1, %zmm1, %zmm1 #69.36 - 378 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm2, %zmm2, %zmm2 #69.36 - 379 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm3, %zmm3, %zmm3 #69.36 - 380 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 - 381 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 - 382 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 - 383 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 384 | | | | | | | | || | | ..B1.37: # Preds ..B1.36 - 385 | | | | | | | | || | | # Execution count [2.50e+01] - 386 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm7 #59.23 - 387 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm12 #60.23 - 388 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm1, %zmm12, %zmm23 #71.36 - 389 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm2, %zmm7, %zmm21 #70.36 - 390 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm4, %zmm20 #69.36 - 391 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm21, %zmm19 #72.49 - 392 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 - 393 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 - 394 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm19, %zmm18 #75.38 - 395 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm19, %k2 #74.22 - 396 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm18, %k0 #75.38 - 397 | 1.00 | | | | | | | || | | kmovw %k2, %ecx #74.22 - 398 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 399 | | | | | | | | || | | * vmovaps %zmm19, %zmm0 #75.38 - 400 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | andl %ecx, %ebx #74.22 - 401 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 - 402 | 1.00 | | | | | | | || | | kmovw %ebx, %k3 #78.17 - 403 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm1 #75.38 - 404 | 0.50 | | | | | 0.50 | | || | 4.0 | vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 - 405 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 - 406 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm18, %zmm2 #76.38 - 407 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm18, %zmm4 #77.54 - 408 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44 - 409 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm6, %zmm18, %zmm3 #76.50 - 410 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 - 411 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm4, %zmm3, %zmm17 #77.61 - 412 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm18, %zmm17, %zmm22 #77.67 - 413 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 - 414 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 - 415 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 - - 22.0 5.00 13.0 2.50 13.0 2.50 22.0 5.00 70.0 35.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 363 | 0.0 | subl %r14d, %r11d #67.9| [363] - 367 | 1.0 | movslq %r14d, %r14 #67.9| [367] - 386 | 3.0 | vbroadcastsd %xmm7, %zmm7 #59.23| [386] - 387 | 3.0 | vbroadcastsd %xmm12, %zmm12 #60.23| [387] - 415 | 4.0 | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17| [415] - 414 | 4.0 | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17| [414] - 413 | 4.0 | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17| [413] - 397 | 28.0 | kmovw %k2, %ecx #74.22| [361, 364, 369, 371, 382, 390, 392, 393, 395, 397] - 408 | 35.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44| [362, 390, 392, 393, 394, 404, 405, 408] - diff --git a/arch_analysis/osaca_force_soa_geq1200.txt b/arch_analysis/osaca_force_soa_geq1200.txt deleted file mode 100644 index a98d11b..0000000 --- a/arch_analysis/osaca_force_soa_geq1200.txt +++ /dev/null @@ -1,71 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_geq1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_geq1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:54:23 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 189 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 190 | | | | | | | | || | | ..B1.18: # Preds ..B1.18 ..B1.17 - 191 | | | | | | | | || | | # Execution count [2.50e+01] - 192 | | | | | | 1.00 | | || | | vpcmpgtd %ymm4, %ymm3, %k5 #67.9 - 193 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm18, %ymm4, %ymm4 #67.9 - 194 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 - 195 | | | | | | | | || | | * vmovaps %zmm19, %zmm22 #70.36 - 196 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r15 #67.9 - 197 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 - 198 | | | | | | | | || | | * vmovaps %zmm19, %zmm21 #69.36 - 199 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 - 200 | | | | | | | | || | | * vmovaps %zmm19, %zmm23 #71.36 - 201 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 - 202 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 - 203 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 - 204 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 - 205 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm22, %zmm5, %zmm0 #70.36 - 206 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm21, %zmm2, %zmm1 #69.36 - 207 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm23, %zmm6, %zmm21 #71.36 - 208 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm20 #72.49 - 209 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 - 210 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 - 211 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm31 #75.38 - 212 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 - 213 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm31, %k0 #75.38 - 214 | | | | | | | | || | | * vmovaps %zmm20, %zmm24 #75.38 - 215 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 - 216 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 217 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm25 #75.38 - 218 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 - 219 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 - 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm31, %zmm26 #76.38 - 221 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm31, %zmm28 #77.54 - 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm26, %zmm31, %zmm29 #76.44 - 223 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm31, %zmm27 #76.50 - 224 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 - 225 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm28, %zmm27, %zmm30 #77.61 - 226 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm31, %zmm30, %zmm24 #77.67 - 227 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 - 228 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 - 229 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 - 230 | 0.00 | 0.17 | | | | 0.00 | 0.83 | || | | cmpq %r14, %r15 #67.9 - 231 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 - - 18.0 4.17 13.0 2.50 13.0 2.50 18.0 2.83 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 193 | 1.0 | vpaddd %ymm18, %ymm4, %ymm4 #67.9| [193] - 196 | 1.0 | addq $8, %r15 #67.9| [196] - 228 | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17| [228] - 227 | 4.0 | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17| [227] - 229 | 4.0 | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17| [229] diff --git a/arch_analysis/osaca_force_soa_lt1200.txt b/arch_analysis/osaca_force_soa_lt1200.txt deleted file mode 100644 index ded0878..0000000 --- a/arch_analysis/osaca_force_soa_lt1200.txt +++ /dev/null @@ -1,69 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_lt1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:39:58 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 253 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 254 | | | | | | | | || | | ..B1.22: # Preds ..B1.22 ..B1.21 - 255 | | | | | | | | || | | # Execution count [2.50e+01] - 256 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #70.36 - 257 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addl $8, %r9d #67.9 - 258 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - 259 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #71.36 - 260 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rcx,%r14,4), %ymm3 #68.21 - 261 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r14 #67.9 - 262 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm5, %zmm5, %zmm5 #70.36 - 263 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 - 264 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm6, %zmm6, %zmm6 #71.36 - 265 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 - 266 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 - 267 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 - 268 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm5, %zmm1, %zmm29 #70.36 - 269 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm28 #69.36 - 270 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm6, %zmm2, %zmm31 #71.36 - 271 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm20 #72.49 - 272 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 - 273 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 - 274 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm27 #75.38 - 275 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k5 #74.22 - 276 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm27, %k0 #75.38 - 277 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 - 278 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 279 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm20, %zmm21 #75.38 - 280 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 - 281 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 - 282 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm27, %zmm22 #76.38 - 283 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm27, %zmm24 #77.54 - 284 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm27, %zmm25 #76.44 - 285 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm27, %zmm23 #76.50 - 286 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 - 287 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm26 #77.61 - 288 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm27, %zmm26, %zmm30 #77.67 - 289 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 - 290 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 - 291 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 - 292 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | cmpl %ebx, %r9d #67.9 - 293 | | | | | | | | || | | * jb ..B1.22 # Prob 82% #67.9 - - 17.5 3.00 13.0 2.50 13.0 2.50 17.5 3.00 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 257 | 1.0 | addl $8, %r9d #67.9| [257] - 261 | 1.0 | addq $8, %r14 #67.9| [261] - 290 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17| [290] - 289 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17| [289] - 291 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17| [291] diff --git a/arch_analysis/osaca_force_soa_lt8.txt b/arch_analysis/osaca_force_soa_lt8.txt deleted file mode 100644 index bf328fa..0000000 --- a/arch_analysis/osaca_force_soa_lt8.txt +++ /dev/null @@ -1,79 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt8_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_lt8_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:52:48 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 300 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 301 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 - 302 | | | | | | | | || | | # Execution count [2.50e+01] - 303 | | 1.00 | | | | | | || 3.0 | | imulq %r12, %r8 #56.43 - 304 | | | | | | 1.00 | | || | | vbroadcastsd %xmm9, %zmm9 #59.23 - 305 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm8, %zmm2 #58.23 - 306 | | | | | | 1.00 | | || | | vbroadcastsd %xmm10, %zmm10 #60.23 - 307 | | | | | | | | || | | X subl %ebx, %r13d #67.9 - 308 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || 1.0 | | addq %r11, %r8 #37.5 - 309 | | | | | | | | || | | X vpbroadcastd %r13d, %ymm0 #67.9 - 310 | | | | | | 1.00 | | || | | vpcmpgtd %ymm17, %ymm0, %k5 #67.9 - 311 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ebx, %rbx #67.9 - 312 | | | | | | | | || | | * vmovaps %zmm19, %zmm4 #70.36 - 313 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 - 314 | | | | | | | | || | | * vmovaps %zmm19, %zmm3 #69.36 - 315 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 - 316 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 - 317 | | | | | | | | || | | * vmovaps %zmm19, %zmm5 #71.36 - 318 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 - 319 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 - 320 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || 4.0 | | vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 - 321 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 - 322 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm5, %zmm10, %zmm30 #71.36 - 323 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm4, %zmm9, %zmm28 #70.36 - 324 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm2, %zmm27 #69.36 - 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm28, %zmm28, %zmm26 #72.49 - 326 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 - 328 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm26, %zmm25 #75.38 - 329 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 - 330 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm25, %k0 #75.38 - 331 | | | | | | | | || | | * vmovaps %zmm26, %zmm6 #75.38 - 332 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | 4.0 | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 - 333 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 334 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38 - 335 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 - 337 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm25, %zmm20 #76.38 - 338 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm25, %zmm22 #77.54 - 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm25, %zmm23 #76.44 - 340 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm23, %zmm25, %zmm21 #76.50 - 341 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 - 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm24 #77.61 - 343 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm24, %zmm29 #77.67 - 344 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 - 345 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 - 346 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 - - 19.5 3.50 13.0 2.50 13.0 2.50 19.5 3.50 68.0 31.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 308 | 4.0 | addq %r11, %r8 #37.5| [303, 308] - 304 | 3.0 | vbroadcastsd %xmm9, %zmm9 #59.23| [304] - 306 | 3.0 | vbroadcastsd %xmm10, %zmm10 #60.23| [306] - 307 | 0.0 | subl %ebx, %r13d #67.9| [307] - 311 | 1.0 | movslq %ebx, %rbx #67.9| [311] - 346 | 4.0 | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17| [346] - 345 | 4.0 | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17| [345] - 344 | 4.0 | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17| [344] - 334 | 31.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38| [305, 324, 326, 327, 328, 332, 334] diff --git a/arch_analysis/osaca_force_soa_lt8_iln1000.txt b/arch_analysis/osaca_force_soa_lt8_iln1000.txt deleted file mode 100644 index 8ff88d5..0000000 --- a/arch_analysis/osaca_force_soa_lt8_iln1000.txt +++ /dev/null @@ -1,70 +0,0 @@ -iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX ICC/force.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: ICC/force.s -Architecture: CSX -Timestamp: 2021-04-30 16:08:44 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 306 | | | | | | | | || | | # LOE rbp rdi r8 r9 r10 edx ecx r11d r12d r13d r14d r15d ymm13 ymm14 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm15 - 307 | | | | | | | | || | | ..B1.29: # Preds ..B1.28 - 308 | | | | | | | | || | | # Execution count [2.50e+04] - 309 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | movl %r14d, %eax #64.13 - 310 | | | | | | | | || | | X subl %ecx, %eax #64.13 - 311 | | | | | | | | || | | X vpbroadcastd %eax, %ymm0 #64.13 - 312 | | | | | | 1.00 | | || | | vpcmpgtd %ymm14, %ymm0, %k5 #64.13 - 313 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ecx, %rcx #64.13 - 314 | | | | | | | | || | | * vmovaps %zmm15, %zmm17 #67.40 - 315 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #67.40 - 316 | | | | | | | | || | | * vmovaps %zmm15, %zmm16 #66.40 - 317 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rdi,%rcx,4), %ymm1{%k5}{z} #65.25 - 318 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #66.40 - 319 | | | | | | | | || | | * vmovaps %zmm15, %zmm18 #68.40 - 320 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #68.40 - 321 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%r8,%ymm1,8), %zmm18{%k3} #68.40 - 322 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%r9,%ymm1,8), %zmm17{%k2} #67.40 - 323 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || | | vgatherdpd (%r10,%ymm1,8), %zmm16{%k1} #66.40 - 324 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm3, %zmm31 #68.40 - 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm2, %zmm29 #67.40 - 326 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm16, %zmm4, %zmm28 #66.40 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm27 #69.53 - 328 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm27 #69.53 - 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm27 #69.67 - 330 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm27, %zmm26 #72.42 - 331 | | | | | | 1.00 | | || | | vcmppd $1, %zmm12, %zmm27, %k6{%k5} #71.26 - 332 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm26, %k0 #72.42 - 333 | | | | | | | | || | | * vmovaps %zmm27, %zmm19 #72.42 - 334 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm26, %zmm19 #72.42 - 335 | 1.00 | | | | | | | || | | knotw %k0, %k4 #72.42 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm19, %zmm20 #72.42 - 337 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm26, %zmm19, %zmm26{%k4} #72.42 - 338 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm26, %zmm20, %zmm26{%k4} #72.42 - 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm11, %zmm26, %zmm21 #73.42 - 340 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm9, %zmm26, %zmm23 #74.58 - 341 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm26, %zmm24 #73.48 - 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm26, %zmm22 #73.54 - 343 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm10, %zmm24, %zmm26 #74.58 - 344 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm23, %zmm22, %zmm25 #74.65 - 345 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm26, %zmm25, %zmm30 #74.71 - 346 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21 - 347 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21 - 348 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21 - - 18.0 3.00 13.0 2.50 13.0 2.50 18.0 3.00 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 313 | 1.0 | movslq %ecx, %rcx #64.13| [313] - 348 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21| [348] - 347 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21| [347] - 346 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21| [346] From 9c28ff1e9e86b197ad47850137a16c28625767e5 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 6 May 2021 23:18:28 +0200 Subject: [PATCH 20/32] Add arch_analysis directory and first AVX2 results Signed-off-by: Rafael Ravedutti --- .../avx2/force_soa_lt600_markers.txt | 74 + .../avx512/iaca_force_aos_geq1200.txt | 79 + .../avx512/iaca_force_aos_lt1200.txt | 104 + arch_analysis/avx512/iaca_force_aos_lt8.txt | 82 + .../avx512/iaca_force_soa_geq1200.txt | 74 + .../avx512/iaca_force_soa_lt1200.txt | 72 + arch_analysis/avx512/iaca_force_soa_lt8.txt | 78 + .../avx512/osaca_force_aos_geq1200.txt | 80 + .../avx512/osaca_force_aos_lt1200.txt | 112 + arch_analysis/avx512/osaca_force_aos_lt8.txt | 91 + .../avx512/osaca_force_soa_geq1200.txt | 71 + .../avx512/osaca_force_soa_lt1200.txt | 69 + arch_analysis/avx512/osaca_force_soa_lt8.txt | 79 + .../avx512/osaca_force_soa_lt8_iln1000.txt | 70 + asm/avx2/force_soa_att.s | 12567 +++++++++++++++ asm/avx2/force_soa_lt600_markers.s | 12571 ++++++++++++++++ scripts/results_soa_broadep2_iln1000.txt | 87 + 17 files changed, 26360 insertions(+) create mode 100644 arch_analysis/avx2/force_soa_lt600_markers.txt create mode 100644 arch_analysis/avx512/iaca_force_aos_geq1200.txt create mode 100644 arch_analysis/avx512/iaca_force_aos_lt1200.txt create mode 100644 arch_analysis/avx512/iaca_force_aos_lt8.txt create mode 100644 arch_analysis/avx512/iaca_force_soa_geq1200.txt create mode 100644 arch_analysis/avx512/iaca_force_soa_lt1200.txt create mode 100644 arch_analysis/avx512/iaca_force_soa_lt8.txt create mode 100644 arch_analysis/avx512/osaca_force_aos_geq1200.txt create mode 100644 arch_analysis/avx512/osaca_force_aos_lt1200.txt create mode 100644 arch_analysis/avx512/osaca_force_aos_lt8.txt create mode 100644 arch_analysis/avx512/osaca_force_soa_geq1200.txt create mode 100644 arch_analysis/avx512/osaca_force_soa_lt1200.txt create mode 100644 arch_analysis/avx512/osaca_force_soa_lt8.txt create mode 100644 arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt create mode 100644 asm/avx2/force_soa_att.s create mode 100644 asm/avx2/force_soa_lt600_markers.s create mode 100644 scripts/results_soa_broadep2_iln1000.txt diff --git a/arch_analysis/avx2/force_soa_lt600_markers.txt b/arch_analysis/avx2/force_soa_lt600_markers.txt new file mode 100644 index 0000000..9090cce --- /dev/null +++ b/arch_analysis/avx2/force_soa_lt600_markers.txt @@ -0,0 +1,74 @@ +iwia021h@testfront1:~/MD-Bench/asm/avx2$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=BDW force_soa_lt600_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_lt600_markers.s +Architecture: BDW +Timestamp: 2021-05-06 15:40:52 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +---------------------------------------------------------------------------------------------------- +12343 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovups (%rax,%rdx,4), %xmm2 #60.25 +12344 | | 1.00 | | | | 0.00 | | || | 1.0 | vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 +12345 | | | | | | 1.00 | | || | | vxorpd %ymm8, %ymm8, %ymm8 #61.40 +12346 | | | | | | | | || | | * vmovdqa %ymm13, %ymm0 #61.40 +12347 | | | | | | 1.00 | | || | | vxorpd %ymm14, %ymm14, %ymm14 #62.40 +12348 | | | | | | | | || | | * vmovdqa %ymm13, %ymm7 #62.40 +12349 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || | | vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 +12350 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || 5.0 | | vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 +12351 | | 1.00 | | | | | | || | | vsubpd %ymm8, %ymm5, %ymm0 #61.40 +12352 | | 1.00 | | | | | | || 3.0 | | vsubpd %ymm14, %ymm4, %ymm8 #62.40 +12353 | | | | | | 1.00 | | || | | vxorpd %ymm7, %ymm7, %ymm7 #63.40 +12354 | | | | | | | | || | 0.0 | * vmovdqa %ymm13, %ymm15 #63.40 +12355 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || | 5.0 | vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 +12356 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm8, %ymm8, %ymm14 #64.53 +12357 | | 1.00 | | | | | | || | 3.0 | vsubpd %ymm7, %ymm6, %ymm2 #63.40 +12358 | 0.50 | 0.50 | | | | | | || 5.0 | | vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 +12359 | 0.50 | 0.50 | | | | | | || 5.0 | 5.0 | vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 +12360 | | | | | | | | || | | X vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 +12361 | 1.00 | | | | | 1.00 | | || | | vptest %ymm13, %ymm7 #66.26 +12362 | | | | | | | | || | | X je ..B1.26 # Prob 50% #66.26 +12363 | | | | | | | | || | | # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 +12364 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 +12365 | | | | | | | | || | | # Execution count [1.25e+04] +12366 | 2.50 16.00 | 0.50 | | | | | | || 23.0 | 23.0 | vdivpd %ymm14, %ymm10, %ymm13 #67.42 +12367 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 3.0 | | vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] +12368 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm14 #68.48 +12369 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm15 #68.54 +12370 | 0.50 | 0.50 | | | | | | || | | vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 +12371 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | 3.0 | vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] +12372 | 0.50 | 0.50 | | | | | | || 3.0 | 3.0 | vmulpd %ymm13, %ymm15, %ymm15 #69.65 +12373 | 0.75 | 0.25 | | | | | | || 3.0 | 3.0 | vmulpd %ymm14, %ymm15, %ymm13 #69.71 +12374 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm0, %ymm0 #70.35 +12375 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm8, %ymm8 #71.35 +12376 | | | | | | 1.00 | | || | | vandpd %ymm0, %ymm7, %ymm0 #70.35 +12377 | | 1.00 | | | | | | || | | vaddpd %ymm0, %ymm12, %ymm12 #70.21 +12378 | 1.00 | 0.00 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm2, %ymm0 #72.35 +12379 | | | | | | 1.00 | | || | | vandpd %ymm8, %ymm7, %ymm2 #71.35 +12380 | | | | | | 1.00 | | || 1.0 | | vandpd %ymm0, %ymm7, %ymm7 #72.35 +12381 | | 1.00 | | | | | | || | | vaddpd %ymm2, %ymm1, %ymm1 #71.21 +12382 | | 1.00 | | | | | | || 3.0 | | vaddpd %ymm7, %ymm3, %ymm3 #72.21 +12383 | | | | | | | | || | | # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +12384 | | | | | | | | || | | ..B1.26: # Preds ..B1.25 ..B1.24 +12385 | | | | | | | | || | | # Execution count [2.50e+04] +12386 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $4, %rdx #59.13 +12387 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %r14, %rdx #59.13 +12388 | | | | | | | | || | | * jb ..B1.24 # Prob 82% #59.13 + + 11.8 16.00 12.2 7.50 1.50 7.50 1.50 3.00 16.0 5.00 70 46 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- +12373 | 46.0 | vmulpd %ymm14, %ymm15, %ymm13 #69.71| [12344, 12354, 12355, 12357, 12359, 12366, 12371, 12372, 12373] +12377 | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21| [12377] +12381 | 3.0 | vaddpd %ymm2, %ymm1, %ymm1 #71.21| [12381] +12382 | 3.0 | vaddpd %ymm7, %ymm3, %ymm3 #72.21| [12382] +12386 | 1.0 | addq $4, %rdx #59.13| [12386] diff --git a/arch_analysis/avx512/iaca_force_aos_geq1200.txt b/arch_analysis/avx512/iaca_force_aos_geq1200.txt new file mode 100644 index 0000000..a10a778 --- /dev/null +++ b/arch_analysis/avx512/iaca_force_aos_geq1200.txt @@ -0,0 +1,79 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_aos_geq1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_aos_geq1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 33.05 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 20.0 0.0 | 4.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 4.5 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm2, ymm3 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm17{k3}{z}, ymmword ptr [r15+r13*4] +| 1 | 1.0 | | | | | | | | kmovw r9d, k3 +| 1 | | 1.0 | | | | | | | vpaddd ymm18, ymm17, ymm17 +| 1 | | 1.0 | | | | | | | vpaddd ymm17, ymm17, ymm18 +| 1 | 1.0 | | | | | | | | kmovw k1, k3 +| 1 | 1.0 | | | | | | | | kmovw k2, k3 +| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 +| 1* | | | | | | | | | vpxord zmm19, zmm19, zmm19 +| 1* | | | | | | | | | vpxord zmm20, zmm20, zmm20 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k1, zmmword ptr [rdi+ymm17*8+0x10] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm19, k2, zmmword ptr [rdi+ymm17*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm20, k3, zmmword ptr [rdi+ymm17*8] +| 1 | | 0.5 | | | | | 0.5 | | add r13, 0x8 +| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm16 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm29, zmm4, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm27, zmm0, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm1, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm27, zmm27 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm26, zmm26 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm29, zmm29 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm24, zmm25 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm25, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm24, 0x1e +| 1 | 1.0 | | | | | | | | kmovw edx, k2 +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1* | | | | | | | | | vmovaps zmm17, zmm25 +| 1 | | | | | | | 1.0 | | and r9d, edx +| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm17, zmm24, qword ptr [rip]{1to8} +| 1 | | | | | | 1.0 | | | kmovw k3, r9d +| 1 | 1.0 | | | | | | | | vmulpd zmm18, zmm17, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm17, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm18, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm24, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm24, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm24, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm24, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm24, zmm22, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm23, zmm20, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm28, zmm23, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm28, zmm26 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm28, zmm27 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm28, zmm29 +| 1* | | | | | | | | | cmp r13, rbx +| 0*F | | | | | | | | | jb 0xfffffffffffffef7 +Total Num Of Uops: 60 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_aos_lt1200.txt b/arch_analysis/avx512/iaca_force_aos_lt1200.txt new file mode 100644 index 0000000..451061a --- /dev/null +++ b/arch_analysis/avx512/iaca_force_aos_lt1200.txt @@ -0,0 +1,104 @@ +iwia021h@testfront1:~/MD-Bench/ICC$ iaca -arch SKX force.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 36.70 Cycles Throughput Bottleneck: Backend +Loop Count: 23 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 17.5 0.0 | 11.0 | 20.5 17.0 | 20.5 17.0 | 7.0 | 20.5 | 7.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1* | | | | | | | | | mov r13, r8 +| 1 | | 1.0 | | | | | | | imul r13, rcx +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm6 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm1, xmm7 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm0, xmm12 +| 1 | | | | | | | 1.0 | | movsxd rbx, r12d +| 1 | | | | | | | 1.0 | | add r13, r10 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x40], rax +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x38], r8 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x30], r10 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x28], rsi +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x20], rcx +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x50], r9 +| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x48], rdx +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | vmovdqu ymm3, ymmword ptr [r13+rbx*4] +| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm3, ymm3 +| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm4 +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r10d, dword ptr [r13+rbx*4] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r9d, dword ptr [r13+rbx*4+0x4] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r8d, dword ptr [r13+rbx*4+0x8] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov esi, dword ptr [r13+rbx*4+0xc] +| 1 | | 1.0 | | | | | | | lea r10d, ptr [r10+r10*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov ecx, dword ptr [r13+rbx*4+0x10] +| 1 | | 1.0 | | | | | | | lea r9d, ptr [r9+r9*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov edx, dword ptr [r13+rbx*4+0x14] +| 1 | | 1.0 | | | | | | | lea r8d, ptr [r8+r8*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov eax, dword ptr [r13+rbx*4+0x18] +| 1 | | 1.0 | | | | | | | lea esi, ptr [rsi+rsi*2] +| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r15d, dword ptr [r13+rbx*4+0x1c] +| 1 | | 1.0 | | | | | | | lea ecx, ptr [rcx+rcx*2] +| 1 | | 1.0 | | | | | | | lea edx, ptr [rdx+rdx*2] +| 1 | | 1.0 | | | | | | | lea eax, ptr [rax+rax*2] +| 1 | | 1.0 | | | | | | | lea r15d, ptr [r15+r15*2] +| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 +| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 +| 1* | | | | | | | | | vpxord zmm17, zmm17, zmm17 +| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 +| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdi+ymm3*8+0x10] +| 5^ | 1.5 | | 4.0 4.0 | 4.0 4.0 | | 0.5 | 1.0 | | vgatherdpd zmm17, k2, zmmword ptr [rdi+ymm3*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k3, zmmword ptr [rdi+ymm3*8] +| 1 | | | | | | | 1.0 | | add r12d, 0x8 +| 1 | | | | | | | 1.0 | | add rbx, 0x8 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm0, zmm4 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm24, zmm1, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm23, zmm2, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm24, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm23, zmm23 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm26, zmm26 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm22, zmm3 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm3, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm22, 0x1e +| 2^ | 1.0 | | 0.5 0.5 | 0.5 0.5 | | | | | vfnmadd213pd zmm3, zmm22, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm4, zmm3, zmm3 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm3, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm4, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm22, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm22, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm22, zmm17 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm18, zmm22, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm22, zmm20, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm18, zmm19 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm21, zmm22 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k2}, zmm25, zmm23 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k2}, zmm25, zmm24 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k2}, zmm25, zmm26 +| 1* | | | | | | | | | cmp r12d, r14d +| 0*F | | | | | | | | | jb 0xfffffffffffffed3 +Total Num Of Uops: 91 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_aos_lt8.txt b/arch_analysis/avx512/iaca_force_aos_lt8.txt new file mode 100644 index 0000000..973db7c --- /dev/null +++ b/arch_analysis/avx512/iaca_force_aos_lt8.txt @@ -0,0 +1,82 @@ +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_aos_lt8_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 69.79 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 21.0 0.0 | 5.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 21.0 | 5.5 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | 1.0 | | | | | | | imul rcx, r8 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm4, xmm6 +| 1 | | | | | | | 1.0 | | sub r11d, r14d +| 1 | | 0.5 | | | | | 0.5 | | add rcx, r10 +| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r11d +| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm0, ymm15 +| 1 | | 0.5 | | | | | 0.5 | | movsxd r14, r14d +| 1 | 1.0 | | | | | | | | kmovw ebx, k3 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k3}{z}, ymmword ptr [rcx+r14*4] +| 1 | | 1.0 | | | | | | | vpaddd ymm2, ymm1, ymm1 +| 1 | | 1.0 | | | | | | | vpaddd ymm0, ymm1, ymm2 +| 1 | 1.0 | | | | | | | | kmovw k1, k3 +| 1 | 1.0 | | | | | | | | kmovw k2, k3 +| 1* | | | | | | | | | vpxord zmm1, zmm1, zmm1 +| 1* | | | | | | | | | vpxord zmm2, zmm2, zmm2 +| 1* | | | | | | | | | vpxord zmm3, zmm3, zmm3 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm1, k1, zmmword ptr [rdi+ymm0*8+0x10] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm2, k2, zmmword ptr [rdi+ymm0*8+0x8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k3, zmmword ptr [rdi+ymm0*8] +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm7, xmm7 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm12, xmm12 +| 1 | 1.0 | | | | | | | | vsubpd zmm23, zmm12, zmm1 +| 1 | 1.0 | | | | | | | | vsubpd zmm21, zmm7, zmm2 +| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm20, zmm4, zmm3 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm21, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm20, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm23, zmm23 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm18, zmm19 +| 1 | | | | | | 1.0 | | | vcmppd k2, zmm19, zmm14, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm18, 0x1e +| 1 | 1.0 | | | | | | | | kmovw ecx, k2 +| 1 | 1.0 | | | | | | | | knotw k1, k0 +| 1* | | | | | | | | | vmovaps zmm0, zmm19 +| 1 | | 0.5 | | | | | 0.5 | | and ebx, ecx +| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm0, zmm18, qword ptr [rip]{1to8} +| 1 | | | | | | 1.0 | | | kmovw k3, ebx +| 1 | 1.0 | | | | | | | | vmulpd zmm1, zmm0, zmm0 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm0, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm1, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm2, zmm18, zmm13 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm4, zmm18, zmm10 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm6, zmm18, zmm2 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm18, zmm6 +| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm18, zmm6, zmm5 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm3, zmm4 +| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm17, zmm18 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm22, zmm20 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm22, zmm21 +| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm22, zmm23 +Total Num Of Uops: 65 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_geq1200.txt b/arch_analysis/avx512/iaca_force_soa_geq1200.txt new file mode 100644 index 0000000..1deb2bc --- /dev/null +++ b/arch_analysis/avx512/iaca_force_soa_geq1200.txt @@ -0,0 +1,74 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_geq1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_geq1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 31.47 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 18.0 0.0 | 3.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 3.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm3, ymm4 +| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm4, ymm18 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm20{k5}{z}, ymmword ptr [rcx+r15*4] +| 1* | | | | | | | | | vmovaps zmm22, zmm19 +| 1 | | 1.0 | | | | | | | add r15, 0x8 +| 1 | 1.0 | | | | | | | | kmovw k2, k5 +| 1* | | | | | | | | | vmovaps zmm21, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k1, k5 +| 1* | | | | | | | | | vmovaps zmm23, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k3, k5 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm23, k3, zmmword ptr [rsi+ymm20*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm22, k2, zmmword ptr [rax+ymm20*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm21, k1, zmmword ptr [rdx+ymm20*8] +| 1 | | | | | | 1.0 | | | vsubpd zmm0, zmm5, zmm22 +| 1 | | | | | | 1.0 | | | vsubpd zmm1, zmm2, zmm21 +| 1 | | | | | | 1.0 | | | vsubpd zmm21, zmm6, zmm23 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm0, zmm0 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm1, zmm1 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm21, zmm21 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm31, zmm20 +| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm20, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm31, 0x1e +| 1* | | | | | | | | | vmovaps zmm24, zmm20 +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm24, zmm31, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm24, zmm24 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm31{k4}, zmm24, zmm31 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm31{k4}, zmm25, zmm31 +| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm31, zmm15 +| 1 | 1.0 | | | | | | | | vmulpd zmm28, zmm31, zmm14 +| 1 | | | | | | 1.0 | | | vmulpd zmm29, zmm31, zmm26 +| 1 | 1.0 | | | | | | | | vmulpd zmm27, zmm31, zmm29 +| 1 | | | | | | 1.0 | | | vfmsub213pd zmm31, zmm29, zmm7 +| 1 | 1.0 | | | | | | | | vmulpd zmm30, zmm27, zmm28 +| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm30, zmm31 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k6}, zmm24, zmm1 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k6}, zmm24, zmm0 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k6}, zmm24, zmm21 +| 1* | | | | | | | | | cmp r15, r14 +| 0*F | | | | | | | | | jb 0xffffffffffffff19 +Total Num Of Uops: 55 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_lt1200.txt b/arch_analysis/avx512/iaca_force_soa_lt1200.txt new file mode 100644 index 0000000..38f7014 --- /dev/null +++ b/arch_analysis/avx512/iaca_force_soa_lt1200.txt @@ -0,0 +1,72 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt1200_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_lt1200_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 30.25 Cycles Throughput Bottleneck: Backend +Loop Count: 23 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 16.0 0.0 | 2.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 19.0 | 3.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 +| 1 | | 1.0 | | | | | | | add r9d, 0x8 +| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 +| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 +| 1 | | | 1.0 1.0 | | | | | | vmovdqu ymm3, ymmword ptr [rcx+r14*4] +| 1 | | 1.0 | | | | | | | add r14, 0x8 +| 1* | | | | | | | | | vpxord zmm5, zmm5, zmm5 +| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 +| 1* | | | | | | | | | vpxord zmm6, zmm6, zmm6 +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm5, k2, zmmword ptr [rax+ymm3*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdx+ymm3*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm6, k3, zmmword ptr [rsi+ymm3*8] +| 1 | | | | | | 1.0 | | | vsubpd zmm29, zmm1, zmm5 +| 1 | 1.0 | | | | | | | | vsubpd zmm28, zmm0, zmm4 +| 1 | | | | | | 1.0 | | | vsubpd zmm31, zmm2, zmm6 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm29, zmm29 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm28, zmm28 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm31, zmm31 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm27, zmm20 +| 1 | | | | | | 1.0 | | | vcmppd k5, zmm20, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm27, 0x1e +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm20, zmm27, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm20, zmm20 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm27{k4}, zmm20, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm27{k4}, zmm21, zmm27 +| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm27, zmm15 +| 1 | 1.0 | | | | | | | | vmulpd zmm24, zmm27, zmm14 +| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm27, zmm22 +| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm27, zmm25 +| 1 | | | | | | 1.0 | | | vfmsub213pd zmm27, zmm25, zmm7 +| 1 | 1.0 | | | | | | | | vmulpd zmm26, zmm23, zmm24 +| 1 | | | | | | 1.0 | | | vmulpd zmm30, zmm26, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k5}, zmm30, zmm28 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k5}, zmm30, zmm29 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k5}, zmm30, zmm31 +| 1* | | | | | | | | | cmp r9d, ebx +| 0*F | | | | | | | | | jb 0xffffffffffffff22 +Total Num Of Uops: 52 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_lt8.txt b/arch_analysis/avx512/iaca_force_soa_lt8.txt new file mode 100644 index 0000000..c9782f9 --- /dev/null +++ b/arch_analysis/avx512/iaca_force_soa_lt8.txt @@ -0,0 +1,78 @@ +iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt8_markers.o +Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 +Analyzed File - force_soa_lt8_markers.o +Binary Format - 64Bit +Architecture - SKX +Analysis Type - Throughput + +Throughput Analysis Report +-------------------------- +Block Throughput: 35.00 Cycles Throughput Bottleneck: Backend +Loop Count: 22 +Port Binding In Cycles Per Iteration: +-------------------------------------------------------------------------------------------------- +| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +-------------------------------------------------------------------------------------------------- +| Cycles | 20.0 0.0 | 4.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 20.0 | 4.0 | 0.0 | +-------------------------------------------------------------------------------------------------- + +DV - Divider pipe (on port 0) +D - Data fetch pipe (on ports 2 and 3) +F - Macro Fusion with the previous instruction occurred +* - instruction micro-ops not bound to a port +^ - Micro Fusion occurred +# - ESP Tracking sync uop was issued +@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected +X - instruction not supported, was not accounted in Analysis + +| Num Of | Ports pressure in cycles | | +| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | +----------------------------------------------------------------------------------------- +| 1 | | 1.0 | | | | | | | imul r8, r12 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm9, xmm9 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm8 +| 1 | | | | | | 1.0 | | | vbroadcastsd zmm10, xmm10 +| 1 | | 1.0 | | | | | | | sub r13d, ebx +| 1 | | 1.0 | | | | | | | add r8, r11 +| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r13d +| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm0, ymm17 +| 1 | | | | | | | 1.0 | | movsxd rbx, ebx +| 1* | | | | | | | | | vmovaps zmm4, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k2, k5 +| 1* | | | | | | | | | vmovaps zmm3, zmm19 +| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k5}{z}, ymmword ptr [r8+rbx*4] +| 1 | 1.0 | | | | | | | | kmovw k1, k5 +| 1* | | | | | | | | | vmovaps zmm5, zmm19 +| 1 | 1.0 | | | | | | | | kmovw k3, k5 +| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm5, k3, zmmword ptr [rsi+ymm1*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k2, zmmword ptr [rax+ymm1*8] +| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k1, zmmword ptr [rdx+ymm1*8] +| 1 | 1.0 | | | | | | | | vsubpd zmm30, zmm10, zmm5 +| 1 | | | | | | 1.0 | | | vsubpd zmm28, zmm9, zmm4 +| 1 | 1.0 | | | | | | | | vsubpd zmm27, zmm2, zmm3 +| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm28, zmm28 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm26, zmm27, zmm27 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm26, zmm30, zmm30 +| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm25, zmm26 +| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm26, zmm16, 0x1 +| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm25, 0x1e +| 1* | | | | | | | | | vmovaps zmm6, zmm26 +| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm6, zmm25, qword ptr [rip]{1to8} +| 1 | 1.0 | | | | | | | | knotw k4, k0 +| 1 | | | | | | 1.0 | | | vmulpd zmm8, zmm6, zmm6 +| 1 | 1.0 | | | | | | | | vfmadd213pd zmm25{k4}, zmm6, zmm25 +| 1 | | | | | | 1.0 | | | vfmadd213pd zmm25{k4}, zmm8, zmm25 +| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm25, zmm15 +| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm25, zmm14 +| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm25, zmm20 +| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm25, zmm23 +| 1 | 1.0 | | | | | | | | vfmsub213pd zmm25, zmm23, zmm7 +| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm21, zmm22 +| 1 | 1.0 | | | | | | | | vmulpd zmm29, zmm24, zmm25 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm13{k6}, zmm29, zmm27 +| 1 | 1.0 | | | | | | | | vfmadd231pd zmm12{k6}, zmm29, zmm28 +| 1 | | | | | | 1.0 | | | vfmadd231pd zmm11{k6}, zmm29, zmm30 +Total Num Of Uops: 60 +Analysis Notes: +Backend allocation was stalled due to unavailable allocation resources. +There were bubbles in the frontend. diff --git a/arch_analysis/avx512/osaca_force_aos_geq1200.txt b/arch_analysis/avx512/osaca_force_aos_geq1200.txt new file mode 100644 index 0000000..5e0907a --- /dev/null +++ b/arch_analysis/avx512/osaca_force_aos_geq1200.txt @@ -0,0 +1,80 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_geq1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_aos_geq1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:53:50 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 196 | | | | | | 1.00 | | || | | vpcmpgtd %ymm3, %ymm2, %k3 #67.9 + 197 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 + 198 | 1.00 | | | | | | | || | | kmovw %k3, %r9d #67.9 + 199 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm17, %ymm17, %ymm18 #69.36 + 200 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm18, %ymm17, %ymm17 #69.36 + 201 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 + 202 | | | | | | | | || | | ..B1.21: # Preds ..B1.18 + 203 | | | | | | | | || | | # Execution count [1.25e+01] + 204 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 + 205 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 + 206 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 + 207 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm19, %zmm19, %zmm19 #69.36 + 208 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm20, %zmm20, %zmm20 #69.36 + 209 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 + 210 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 + 211 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 + 212 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 + 213 | | | | | | | | || | | ..B1.22: # Preds ..B1.21 + 214 | | | | | | | | || | | # Execution count [2.50e+01] + 215 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | addq $8, %r13 #67.9 + 216 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm16, %ymm3, %ymm3 #67.9 + 217 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm4, %zmm29 #71.36 + 218 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm19, %zmm0, %zmm27 #70.36 + 219 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm20, %zmm1, %zmm26 #69.36 + 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm27, %zmm27, %zmm25 #72.49 + 221 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 + 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 + 223 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm25, %zmm24 #75.38 + 224 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm25, %k2 #74.22 + 225 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm24, %k0 #75.38 + 226 | 1.00 | | | | | | | || | | kmovw %k2, %edx #74.22 + 227 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 228 | | | | | | | | || | | * vmovaps %zmm25, %zmm17 #75.38 + 229 | 0.00 | 0.34 | | | | 0.00 | 0.66 | || | | andl %edx, %r9d #74.22 + 230 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 + 231 | 1.00 | | | | | | | || | | kmovw %r9d, %k3 #78.17 + 232 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm17, %zmm18 #75.38 + 233 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 + 234 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 + 235 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm24, %zmm19 #76.38 + 236 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm24, %zmm21 #77.54 + 237 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm19, %zmm24, %zmm22 #76.44 + 238 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm22, %zmm24, %zmm20 #76.50 + 239 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 + 240 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm21, %zmm20, %zmm23 #77.61 + 241 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm28 #77.67 + 242 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 + 243 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 + 244 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 + 245 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rbx, %r13 #67.9 + 246 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 + + 20.5 6.00 13.0 2.50 13.0 2.50 20.5 4.00 70.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 215 | 1.0 | addq $8, %r13 #67.9| [215] + 216 | 1.0 | vpaddd %ymm16, %ymm3, %ymm3 #67.9| [216] + 244 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17| [244] + 243 | 4.0 | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17| [243] + 242 | 4.0 | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17| [242] + diff --git a/arch_analysis/avx512/osaca_force_aos_lt1200.txt b/arch_analysis/avx512/osaca_force_aos_lt1200.txt new file mode 100644 index 0000000..a30919e --- /dev/null +++ b/arch_analysis/avx512/osaca_force_aos_lt1200.txt @@ -0,0 +1,112 @@ +iwia021h@testfront1:~/MD-Bench/ICC$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force.s +Architecture: CSX +Timestamp: 2021-04-26 22:33:06 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 261 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 + 262 | | | | | | | | || | | # Execution count [4.50e+00] + 263 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | movq %r8, %r13 #56.43 + 264 | | 1.00 | | | | | | || 3.0 | 3.0 | imulq %rcx, %r13 #56.43 + 265 | | | | | | 1.00 | | || | | vbroadcastsd %xmm6, %zmm2 #58.23 + 266 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm1 #59.23 + 267 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm0 #60.23 + 268 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r12d, %rbx #67.9 + 269 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | addq %r10, %r13 #37.5 + 270 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rax, -64(%rsp) #37.5[spill] + 271 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r8, -56(%rsp) #37.5[spill] + 272 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r10, -48(%rsp) #37.5[spill] + 273 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rsi, -40(%rsp) #37.5[spill] + 274 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rcx, -32(%rsp) #37.5[spill] + 275 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r9, -80(%rsp) #37.5[spill] + 276 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rdx, -72(%rsp) #37.5[spill] + 277 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 278 | | | | | | | | || | | ..B1.26: # Preds ..B1.30 ..B1.25 + 279 | | | | | | | | || | | # Execution count [2.50e+01] + 280 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%r13,%rbx,4), %ymm3 #68.21 + 281 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm3, %ymm3, %ymm4 #69.36 + 282 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm4, %ymm3, %ymm3 #69.36 + 283 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl (%r13,%rbx,4), %r10d #68.21 + 284 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 4(%r13,%rbx,4), %r9d #68.21 + 285 | | | 0.50 0.50 | 0.50 0.50 | | | | || | 4.0 | movl 8(%r13,%rbx,4), %r8d #68.21 + 286 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 12(%r13,%rbx,4), %esi #68.21 + 287 | | 1.00 | | | | 0.00 | | || | | lea (%r10,%r10,2), %r10d #69.36 + 288 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 16(%r13,%rbx,4), %ecx #68.21 + 289 | | 1.00 | | | | 0.00 | | || | | lea (%r9,%r9,2), %r9d #69.36 + 290 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 20(%r13,%rbx,4), %edx #68.21 + 291 | | 1.00 | | | | 0.00 | | || | 1.0 | lea (%r8,%r8,2), %r8d #69.36 + 292 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 24(%r13,%rbx,4), %eax #68.21 + 293 | | 1.00 | | | | 0.00 | | || | | lea (%rsi,%rsi,2), %esi #69.36 + 294 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 28(%r13,%rbx,4), %r15d #68.21 + 295 | | 1.00 | | | | 0.00 | | || | | lea (%rcx,%rcx,2), %ecx #69.36 + 296 | | 1.00 | | | | 0.00 | | || | | lea (%rdx,%rdx,2), %edx #69.36 + 297 | | 1.00 | | | | 0.00 | | || | | lea (%rax,%rax,2), %eax #69.36 + 298 | | 1.00 | | | | 0.00 | | || | | lea (%r15,%r15,2), %r15d #69.36 + 299 | | | | | | | | || | | # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 300 | | | | | | | | || | | ..B1.29: # Preds ..B1.26 + 301 | | | | | | | | || | | # Execution count [1.25e+01] + 302 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + 303 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #69.36 + 304 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #69.36 + 305 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 + 306 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm17, %zmm17, %zmm17 #69.36 + 307 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 + 308 | 1.50 | 0.17 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.83 | || | | vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 + 309 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || 4.0 | | vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 + 310 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 + 311 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 + 312 | | | | | | | | || | | ..B1.30: # Preds ..B1.29 + 313 | | | | | | | | || | | # Execution count [2.50e+01] + 314 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addl $8, %r12d #67.9 + 315 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $8, %rbx #67.9 + 316 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm26 #71.36 + 317 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm1, %zmm24 #70.36 + 318 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm2, %zmm23 #69.36 + 319 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm3 #72.49 + 320 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 + 321 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 + 322 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm3, %zmm22 #75.38 + 323 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm3, %k2 #74.22 + 324 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm22, %k0 #75.38 + 325 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 + 326 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm3, %zmm3, %zmm4 #75.38 + 328 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 + 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 + 330 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm22, %zmm17 #76.38 + 331 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm22, %zmm19 #77.54 + 332 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm22, %zmm20 #76.44 + 333 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm22, %zmm18 #76.50 + 334 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 + 335 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm18, %zmm21 #77.61 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm25 #77.67 + 337 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 + 338 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 + 339 | 1.00 | | | | | 0.00 | | || 4.0 | | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 + 340 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpl %r14d, %r12d #67.9 + 341 | | | | | | | | || | | * jb ..B1.26 # Prob 82% #67.9 + 342 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + + 21.0 11.2 17.0 6.50 17.0 6.50 7.00 17.0 8.83 7.00 75.0 10.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 287 | 6.0 | lea (%r10,%r10,2), %r10d #69.36| [269, 283, 287] + 291 | 10.0 | lea (%r8,%r8,2), %r8d #69.36| [263, 264, 269, 285, 291] + 295 | 9.0 | lea (%rcx,%rcx,2), %ecx #69.36| [264, 269, 288, 295] + 314 | 1.0 | addl $8, %r12d #67.9| [314] + 339 | 4.0 | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17| [339] + 338 | 4.0 | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17| [338] + 337 | 4.0 | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17| [337] diff --git a/arch_analysis/avx512/osaca_force_aos_lt8.txt b/arch_analysis/avx512/osaca_force_aos_lt8.txt new file mode 100644 index 0000000..810dae9 --- /dev/null +++ b/arch_analysis/avx512/osaca_force_aos_lt8.txt @@ -0,0 +1,91 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_lt8_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_aos_lt8_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:49:27 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 358 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 359 | | | | | | | | || | | ..B1.33: # Preds ..B1.32 + 360 | | | | | | | | || | | # Execution count [2.50e+01] + 361 | | 1.00 | | | | | | || 3.0 | | imulq %r8, %rcx #56.43 + 362 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm6, %zmm4 #58.23 + 363 | | | | | | | | || | | X subl %r14d, %r11d #67.9 + 364 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | addq %r10, %rcx #37.5 + 365 | | | | | | | | || | | X vpbroadcastd %r11d, %ymm0 #67.9 + 366 | | | | | | 1.00 | | || | | vpcmpgtd %ymm15, %ymm0, %k3 #67.9 + 367 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r14d, %r14 #67.9 + 368 | 1.00 | | | | | | | || | | kmovw %k3, %ebx #67.9 + 369 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 + 370 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm1, %ymm1, %ymm2 #69.36 + 371 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm2, %ymm1, %ymm0 #69.36 + 372 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 + 373 | | | | | | | | || | | ..B1.36: # Preds ..B1.33 + 374 | | | | | | | | || | | # Execution count [1.25e+01] + 375 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 + 376 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 + 377 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm1, %zmm1, %zmm1 #69.36 + 378 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm2, %zmm2, %zmm2 #69.36 + 379 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm3, %zmm3, %zmm3 #69.36 + 380 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 + 381 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 + 382 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 + 383 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 + 384 | | | | | | | | || | | ..B1.37: # Preds ..B1.36 + 385 | | | | | | | | || | | # Execution count [2.50e+01] + 386 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm7 #59.23 + 387 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm12 #60.23 + 388 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm1, %zmm12, %zmm23 #71.36 + 389 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm2, %zmm7, %zmm21 #70.36 + 390 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm4, %zmm20 #69.36 + 391 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm21, %zmm19 #72.49 + 392 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 + 393 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 + 394 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm19, %zmm18 #75.38 + 395 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm19, %k2 #74.22 + 396 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm18, %k0 #75.38 + 397 | 1.00 | | | | | | | || | | kmovw %k2, %ecx #74.22 + 398 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 + 399 | | | | | | | | || | | * vmovaps %zmm19, %zmm0 #75.38 + 400 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | andl %ecx, %ebx #74.22 + 401 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 + 402 | 1.00 | | | | | | | || | | kmovw %ebx, %k3 #78.17 + 403 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm1 #75.38 + 404 | 0.50 | | | | | 0.50 | | || | 4.0 | vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 + 405 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 + 406 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm18, %zmm2 #76.38 + 407 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm18, %zmm4 #77.54 + 408 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44 + 409 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm6, %zmm18, %zmm3 #76.50 + 410 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 + 411 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm4, %zmm3, %zmm17 #77.61 + 412 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm18, %zmm17, %zmm22 #77.67 + 413 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 + 414 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 + 415 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 + + 22.0 5.00 13.0 2.50 13.0 2.50 22.0 5.00 70.0 35.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 363 | 0.0 | subl %r14d, %r11d #67.9| [363] + 367 | 1.0 | movslq %r14d, %r14 #67.9| [367] + 386 | 3.0 | vbroadcastsd %xmm7, %zmm7 #59.23| [386] + 387 | 3.0 | vbroadcastsd %xmm12, %zmm12 #60.23| [387] + 415 | 4.0 | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17| [415] + 414 | 4.0 | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17| [414] + 413 | 4.0 | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17| [413] + 397 | 28.0 | kmovw %k2, %ecx #74.22| [361, 364, 369, 371, 382, 390, 392, 393, 395, 397] + 408 | 35.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44| [362, 390, 392, 393, 394, 404, 405, 408] + diff --git a/arch_analysis/avx512/osaca_force_soa_geq1200.txt b/arch_analysis/avx512/osaca_force_soa_geq1200.txt new file mode 100644 index 0000000..a98d11b --- /dev/null +++ b/arch_analysis/avx512/osaca_force_soa_geq1200.txt @@ -0,0 +1,71 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_geq1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_geq1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:54:23 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 189 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 190 | | | | | | | | || | | ..B1.18: # Preds ..B1.18 ..B1.17 + 191 | | | | | | | | || | | # Execution count [2.50e+01] + 192 | | | | | | 1.00 | | || | | vpcmpgtd %ymm4, %ymm3, %k5 #67.9 + 193 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm18, %ymm4, %ymm4 #67.9 + 194 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 + 195 | | | | | | | | || | | * vmovaps %zmm19, %zmm22 #70.36 + 196 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r15 #67.9 + 197 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 + 198 | | | | | | | | || | | * vmovaps %zmm19, %zmm21 #69.36 + 199 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 + 200 | | | | | | | | || | | * vmovaps %zmm19, %zmm23 #71.36 + 201 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 + 202 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 + 203 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 + 204 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 + 205 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm22, %zmm5, %zmm0 #70.36 + 206 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm21, %zmm2, %zmm1 #69.36 + 207 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm23, %zmm6, %zmm21 #71.36 + 208 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm20 #72.49 + 209 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 + 210 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 + 211 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm31 #75.38 + 212 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 + 213 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm31, %k0 #75.38 + 214 | | | | | | | | || | | * vmovaps %zmm20, %zmm24 #75.38 + 215 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 + 216 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 217 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm25 #75.38 + 218 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 + 219 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 + 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm31, %zmm26 #76.38 + 221 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm31, %zmm28 #77.54 + 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm26, %zmm31, %zmm29 #76.44 + 223 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm31, %zmm27 #76.50 + 224 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 + 225 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm28, %zmm27, %zmm30 #77.61 + 226 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm31, %zmm30, %zmm24 #77.67 + 227 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 + 228 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 + 229 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 + 230 | 0.00 | 0.17 | | | | 0.00 | 0.83 | || | | cmpq %r14, %r15 #67.9 + 231 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 + + 18.0 4.17 13.0 2.50 13.0 2.50 18.0 2.83 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 193 | 1.0 | vpaddd %ymm18, %ymm4, %ymm4 #67.9| [193] + 196 | 1.0 | addq $8, %r15 #67.9| [196] + 228 | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17| [228] + 227 | 4.0 | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17| [227] + 229 | 4.0 | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17| [229] diff --git a/arch_analysis/avx512/osaca_force_soa_lt1200.txt b/arch_analysis/avx512/osaca_force_soa_lt1200.txt new file mode 100644 index 0000000..ded0878 --- /dev/null +++ b/arch_analysis/avx512/osaca_force_soa_lt1200.txt @@ -0,0 +1,69 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt1200_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_lt1200_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:39:58 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 253 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 254 | | | | | | | | || | | ..B1.22: # Preds ..B1.22 ..B1.21 + 255 | | | | | | | | || | | # Execution count [2.50e+01] + 256 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #70.36 + 257 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addl $8, %r9d #67.9 + 258 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 + 259 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #71.36 + 260 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rcx,%r14,4), %ymm3 #68.21 + 261 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r14 #67.9 + 262 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm5, %zmm5, %zmm5 #70.36 + 263 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 + 264 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm6, %zmm6, %zmm6 #71.36 + 265 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 + 266 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 + 267 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 + 268 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm5, %zmm1, %zmm29 #70.36 + 269 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm28 #69.36 + 270 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm6, %zmm2, %zmm31 #71.36 + 271 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm20 #72.49 + 272 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 + 273 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 + 274 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm27 #75.38 + 275 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k5 #74.22 + 276 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm27, %k0 #75.38 + 277 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 + 278 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 279 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm20, %zmm21 #75.38 + 280 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 + 281 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 + 282 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm27, %zmm22 #76.38 + 283 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm27, %zmm24 #77.54 + 284 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm27, %zmm25 #76.44 + 285 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm27, %zmm23 #76.50 + 286 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 + 287 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm26 #77.61 + 288 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm27, %zmm26, %zmm30 #77.67 + 289 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 + 290 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 + 291 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 + 292 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | cmpl %ebx, %r9d #67.9 + 293 | | | | | | | | || | | * jb ..B1.22 # Prob 82% #67.9 + + 17.5 3.00 13.0 2.50 13.0 2.50 17.5 3.00 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 257 | 1.0 | addl $8, %r9d #67.9| [257] + 261 | 1.0 | addq $8, %r14 #67.9| [261] + 290 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17| [290] + 289 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17| [289] + 291 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17| [291] diff --git a/arch_analysis/avx512/osaca_force_soa_lt8.txt b/arch_analysis/avx512/osaca_force_soa_lt8.txt new file mode 100644 index 0000000..bf328fa --- /dev/null +++ b/arch_analysis/avx512/osaca_force_soa_lt8.txt @@ -0,0 +1,79 @@ +iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt8_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: force_soa_lt8_markers.s +Architecture: CSX +Timestamp: 2021-04-29 15:52:48 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 300 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 + 301 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 + 302 | | | | | | | | || | | # Execution count [2.50e+01] + 303 | | 1.00 | | | | | | || 3.0 | | imulq %r12, %r8 #56.43 + 304 | | | | | | 1.00 | | || | | vbroadcastsd %xmm9, %zmm9 #59.23 + 305 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm8, %zmm2 #58.23 + 306 | | | | | | 1.00 | | || | | vbroadcastsd %xmm10, %zmm10 #60.23 + 307 | | | | | | | | || | | X subl %ebx, %r13d #67.9 + 308 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || 1.0 | | addq %r11, %r8 #37.5 + 309 | | | | | | | | || | | X vpbroadcastd %r13d, %ymm0 #67.9 + 310 | | | | | | 1.00 | | || | | vpcmpgtd %ymm17, %ymm0, %k5 #67.9 + 311 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ebx, %rbx #67.9 + 312 | | | | | | | | || | | * vmovaps %zmm19, %zmm4 #70.36 + 313 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 + 314 | | | | | | | | || | | * vmovaps %zmm19, %zmm3 #69.36 + 315 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 + 316 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 + 317 | | | | | | | | || | | * vmovaps %zmm19, %zmm5 #71.36 + 318 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 + 319 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 + 320 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || 4.0 | | vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 + 321 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 + 322 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm5, %zmm10, %zmm30 #71.36 + 323 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm4, %zmm9, %zmm28 #70.36 + 324 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm2, %zmm27 #69.36 + 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm28, %zmm28, %zmm26 #72.49 + 326 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 + 328 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm26, %zmm25 #75.38 + 329 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 + 330 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm25, %k0 #75.38 + 331 | | | | | | | | || | | * vmovaps %zmm26, %zmm6 #75.38 + 332 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | 4.0 | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 + 333 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 + 334 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38 + 335 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 + 337 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm25, %zmm20 #76.38 + 338 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm25, %zmm22 #77.54 + 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm25, %zmm23 #76.44 + 340 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm23, %zmm25, %zmm21 #76.50 + 341 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 + 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm24 #77.61 + 343 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm24, %zmm29 #77.67 + 344 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 + 345 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 + 346 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 + + 19.5 3.50 13.0 2.50 13.0 2.50 19.5 3.50 68.0 31.0 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 308 | 4.0 | addq %r11, %r8 #37.5| [303, 308] + 304 | 3.0 | vbroadcastsd %xmm9, %zmm9 #59.23| [304] + 306 | 3.0 | vbroadcastsd %xmm10, %zmm10 #60.23| [306] + 307 | 0.0 | subl %ebx, %r13d #67.9| [307] + 311 | 1.0 | movslq %ebx, %rbx #67.9| [311] + 346 | 4.0 | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17| [346] + 345 | 4.0 | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17| [345] + 344 | 4.0 | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17| [344] + 334 | 31.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38| [305, 324, 326, 327, 328, 332, 334] diff --git a/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt b/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt new file mode 100644 index 0000000..8ff88d5 --- /dev/null +++ b/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt @@ -0,0 +1,70 @@ +iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX ICC/force.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: ICC/force.s +Architecture: CSX +Timestamp: 2021-04-30 16:08:44 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +------------------------------------------------------------------------------------------------- + 306 | | | | | | | | || | | # LOE rbp rdi r8 r9 r10 edx ecx r11d r12d r13d r14d r15d ymm13 ymm14 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm15 + 307 | | | | | | | | || | | ..B1.29: # Preds ..B1.28 + 308 | | | | | | | | || | | # Execution count [2.50e+04] + 309 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | movl %r14d, %eax #64.13 + 310 | | | | | | | | || | | X subl %ecx, %eax #64.13 + 311 | | | | | | | | || | | X vpbroadcastd %eax, %ymm0 #64.13 + 312 | | | | | | 1.00 | | || | | vpcmpgtd %ymm14, %ymm0, %k5 #64.13 + 313 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ecx, %rcx #64.13 + 314 | | | | | | | | || | | * vmovaps %zmm15, %zmm17 #67.40 + 315 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #67.40 + 316 | | | | | | | | || | | * vmovaps %zmm15, %zmm16 #66.40 + 317 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rdi,%rcx,4), %ymm1{%k5}{z} #65.25 + 318 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #66.40 + 319 | | | | | | | | || | | * vmovaps %zmm15, %zmm18 #68.40 + 320 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #68.40 + 321 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%r8,%ymm1,8), %zmm18{%k3} #68.40 + 322 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%r9,%ymm1,8), %zmm17{%k2} #67.40 + 323 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || | | vgatherdpd (%r10,%ymm1,8), %zmm16{%k1} #66.40 + 324 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm3, %zmm31 #68.40 + 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm2, %zmm29 #67.40 + 326 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm16, %zmm4, %zmm28 #66.40 + 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm27 #69.53 + 328 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm27 #69.53 + 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm27 #69.67 + 330 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm27, %zmm26 #72.42 + 331 | | | | | | 1.00 | | || | | vcmppd $1, %zmm12, %zmm27, %k6{%k5} #71.26 + 332 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm26, %k0 #72.42 + 333 | | | | | | | | || | | * vmovaps %zmm27, %zmm19 #72.42 + 334 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm26, %zmm19 #72.42 + 335 | 1.00 | | | | | | | || | | knotw %k0, %k4 #72.42 + 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm19, %zmm20 #72.42 + 337 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm26, %zmm19, %zmm26{%k4} #72.42 + 338 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm26, %zmm20, %zmm26{%k4} #72.42 + 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm11, %zmm26, %zmm21 #73.42 + 340 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm9, %zmm26, %zmm23 #74.58 + 341 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm26, %zmm24 #73.48 + 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm26, %zmm22 #73.54 + 343 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm10, %zmm24, %zmm26 #74.58 + 344 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm23, %zmm22, %zmm25 #74.65 + 345 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm26, %zmm25, %zmm30 #74.71 + 346 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21 + 347 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21 + 348 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21 + + 18.0 3.00 13.0 2.50 13.0 2.50 18.0 3.00 68.0 4 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- + 313 | 1.0 | movslq %ecx, %rcx #64.13| [313] + 348 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21| [348] + 347 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21| [347] + 346 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21| [346] diff --git a/asm/avx2/force_soa_att.s b/asm/avx2/force_soa_att.s new file mode 100644 index 0000000..ecf5e30 --- /dev/null +++ b/asm/avx2/force_soa_att.s @@ -0,0 +1,12567 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -fast -"; +# mark_description "xCORE-AVX2 -o ICC/force.s"; + .file "force.c" + .section __ildata, "" + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 236 + .byte 213 + .byte 42 + .byte 66 + .byte 178 + .byte 52 + .byte 67 + .byte 28 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 207 + .byte 30 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 83 + .byte 16 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 250 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 192 + .byte 1 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 30 + .byte 0 + .byte 0 + .byte 80 + .byte 0 + .byte 0 + .byte 0 + .byte 82 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 157 + .byte 3 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 0 + .byte 0 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 54 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 29 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 18 + .byte 0 + .byte 1 + .byte 1 + .byte 52 + .byte 9 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 2 + .byte 186 + .byte 1 + .byte 186 + .byte 1 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 3 + .byte 189 + .byte 1 + .byte 194 + .byte 0 + .byte 128 + .byte 1 + .byte 2 + .byte 4 + .byte 0 + .byte 2 + .byte 0 + .byte 2 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 4 + .byte 190 + .byte 1 + .byte 190 + .byte 1 + .byte 128 + .byte 1 + .byte 1 + .byte 3 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 5 + .byte 18 + .byte 61 + .byte 136 + .byte 1 + .byte 2 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 6 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 6 + .byte 187 + .byte 1 + .byte 187 + .byte 1 + .byte 0 + .byte 1 + .byte 5 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 7 + .byte 195 + .byte 1 + .byte 27 + .byte 187 + .byte 3 + .byte 2 + .byte 17 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 8 + .byte 193 + .byte 1 + .byte 55 + .byte 149 + .byte 3 + .byte 2 + .byte 15 + .byte 0 + .byte 7 + .byte 0 + .byte 2 + .byte 9 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 9 + .byte 188 + .byte 1 + .byte 188 + .byte 1 + .byte 0 + .byte 1 + .byte 8 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 10 + .byte 191 + .byte 1 + .byte 40 + .byte 135 + .byte 3 + .byte 2 + .byte 13 + .byte 0 + .byte 9 + .byte 0 + .byte 2 + .byte 11 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 1 + .byte 1 + .byte 11 + .byte 34 + .byte 39 + .byte 187 + .byte 2 + .byte 1 + .byte 10 + .byte 0 + .byte 1 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 12 + .byte 41 + .byte 206 + .byte 0 + .byte 254 + .byte 2 + .byte 2 + .byte 11 + .byte 0 + .byte 10 + .byte 0 + .byte 2 + .byte 13 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 13 + .byte 192 + .byte 1 + .byte 192 + .byte 1 + .byte 135 + .byte 3 + .byte 1 + .byte 12 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 14 + .byte 43 + .byte 202 + .byte 0 + .byte 140 + .byte 3 + .byte 2 + .byte 12 + .byte 0 + .byte 8 + .byte 0 + .byte 2 + .byte 15 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 16 + .byte 1 + .byte 128 + .byte 152 + .byte 179 + .byte 238 + .byte 3 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 15 + .byte 194 + .byte 1 + .byte 194 + .byte 1 + .byte 149 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 16 + .byte 185 + .byte 1 + .byte 198 + .byte 0 + .byte 158 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 2 + .byte 17 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 17 + .byte 196 + .byte 1 + .byte 196 + .byte 1 + .byte 187 + .byte 3 + .byte 1 + .byte 16 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 18 + .byte 50 + .byte 50 + .byte 192 + .byte 3 + .byte 2 + .byte 16 + .byte 0 + .byte 5 + .byte 0 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 1 + .byte 76 + .byte 9 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 2 + .byte 0 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 11 + .byte 3 + .byte 12 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 2 + .byte 72 + .byte 38 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 180 + .byte 7 + .byte 18 + .byte 65 + .byte 67 + .byte 4 + .byte 72 + .byte 48 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 5 + .byte 2 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 182 + .byte 7 + .byte 35 + .byte 65 + .byte 67 + .byte 5 + .byte 72 + .byte 54 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 6 + .byte 4 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 185 + .byte 7 + .byte 41 + .byte 65 + .byte 67 + .byte 6 + .byte 72 + .byte 60 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 7 + .byte 5 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 187 + .byte 7 + .byte 48 + .byte 65 + .byte 67 + .byte 7 + .byte 72 + .byte 194 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 8 + .byte 6 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 189 + .byte 7 + .byte 55 + .byte 65 + .byte 67 + .byte 8 + .byte 72 + .byte 200 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 9 + .byte 7 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 191 + .byte 7 + .byte 62 + .byte 65 + .byte 67 + .byte 9 + .byte 72 + .byte 206 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 12 + .byte 8 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 193 + .byte 7 + .byte 197 + .byte 0 + .byte 65 + .byte 67 + .byte 12 + .byte 72 + .byte 214 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 52 + .byte 9 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 195 + .byte 7 + .byte 204 + .byte 0 + .byte 65 + .byte 67 + .byte 13 + .byte 72 + .byte 227 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 14 + .byte 189 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 214 + .byte 0 + .byte 205 + .byte 0 + .byte 65 + .byte 67 + .byte 14 + .byte 72 + .byte 235 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 15 + .byte 13 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 224 + .byte 0 + .byte 215 + .byte 0 + .byte 65 + .byte 67 + .byte 15 + .byte 72 + .byte 243 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 16 + .byte 14 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 234 + .byte 0 + .byte 225 + .byte 0 + .byte 65 + .byte 67 + .byte 16 + .byte 72 + .byte 247 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 194 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 203 + .byte 7 + .byte 238 + .byte 0 + .byte 65 + .byte 67 + .byte 18 + .byte 72 + .byte 136 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 61 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 0 + .byte 207 + .byte 7 + .byte 243 + .byte 0 + .byte 65 + .byte 67 + .byte 19 + .byte 72 + .byte 167 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 20 + .byte 195 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 209 + .byte 7 + .byte 133 + .byte 1 + .byte 65 + .byte 67 + .byte 20 + .byte 72 + .byte 175 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 21 + .byte 19 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 213 + .byte 7 + .byte 149 + .byte 1 + .byte 65 + .byte 67 + .byte 21 + .byte 72 + .byte 181 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 22 + .byte 20 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 216 + .byte 7 + .byte 164 + .byte 1 + .byte 65 + .byte 67 + .byte 22 + .byte 72 + .byte 188 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 23 + .byte 21 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 219 + .byte 7 + .byte 179 + .byte 1 + .byte 65 + .byte 67 + .byte 23 + .byte 72 + .byte 195 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 24 + .byte 22 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 222 + .byte 7 + .byte 194 + .byte 1 + .byte 65 + .byte 67 + .byte 24 + .byte 72 + .byte 200 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 25 + .byte 23 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 225 + .byte 7 + .byte 196 + .byte 1 + .byte 65 + .byte 67 + .byte 25 + .byte 72 + .byte 204 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 26 + .byte 24 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 226 + .byte 7 + .byte 198 + .byte 1 + .byte 65 + .byte 67 + .byte 26 + .byte 72 + .byte 208 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 27 + .byte 25 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 227 + .byte 7 + .byte 200 + .byte 1 + .byte 65 + .byte 67 + .byte 27 + .byte 72 + .byte 214 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 193 + .byte 1 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 228 + .byte 7 + .byte 202 + .byte 1 + .byte 65 + .byte 67 + .byte 28 + .byte 72 + .byte 226 + .byte 1 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 55 + .byte 193 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 229 + .byte 7 + .byte 204 + .byte 1 + .byte 65 + .byte 67 + .byte 29 + .byte 72 + .byte 251 + .byte 1 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 30 + .byte 191 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 231 + .byte 7 + .byte 214 + .byte 1 + .byte 65 + .byte 67 + .byte 30 + .byte 72 + .byte 131 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 31 + .byte 29 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 234 + .byte 7 + .byte 231 + .byte 1 + .byte 65 + .byte 67 + .byte 31 + .byte 72 + .byte 140 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 32 + .byte 30 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 238 + .byte 7 + .byte 248 + .byte 1 + .byte 65 + .byte 67 + .byte 32 + .byte 72 + .byte 149 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 33 + .byte 31 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 242 + .byte 7 + .byte 137 + .byte 2 + .byte 65 + .byte 67 + .byte 33 + .byte 72 + .byte 166 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 40 + .byte 32 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 246 + .byte 7 + .byte 149 + .byte 2 + .byte 65 + .byte 67 + .byte 34 + .byte 72 + .byte 187 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 35 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 255 + .byte 7 + .byte 153 + .byte 2 + .byte 65 + .byte 67 + .byte 35 + .byte 72 + .byte 199 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 36 + .byte 34 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 129 + .byte 8 + .byte 161 + .byte 2 + .byte 65 + .byte 67 + .byte 36 + .byte 72 + .byte 215 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 37 + .byte 35 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 134 + .byte 8 + .byte 173 + .byte 2 + .byte 65 + .byte 67 + .byte 37 + .byte 72 + .byte 223 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 38 + .byte 36 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 139 + .byte 8 + .byte 179 + .byte 2 + .byte 65 + .byte 67 + .byte 38 + .byte 72 + .byte 231 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 39 + .byte 37 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 143 + .byte 8 + .byte 185 + .byte 2 + .byte 65 + .byte 67 + .byte 39 + .byte 72 + .byte 239 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 0 + .byte 38 + .byte 0 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 147 + .byte 8 + .byte 191 + .byte 2 + .byte 65 + .byte 67 + .byte 40 + .byte 78 + .byte 249 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 41 + .byte 33 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 194 + .byte 2 + .byte 0 + .byte 34 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 41 + .byte 72 + .byte 254 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 206 + .byte 0 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 151 + .byte 8 + .byte 198 + .byte 2 + .byte 65 + .byte 67 + .byte 43 + .byte 72 + .byte 140 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 202 + .byte 0 + .byte 55 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 155 + .byte 8 + .byte 205 + .byte 2 + .byte 65 + .byte 67 + .byte 45 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 46 + .byte 183 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 218 + .byte 2 + .byte 228 + .byte 2 + .byte 65 + .byte 67 + .byte 46 + .byte 72 + .byte 166 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 47 + .byte 45 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 238 + .byte 2 + .byte 248 + .byte 2 + .byte 65 + .byte 67 + .byte 47 + .byte 72 + .byte 174 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 48 + .byte 46 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 130 + .byte 3 + .byte 140 + .byte 3 + .byte 65 + .byte 67 + .byte 48 + .byte 72 + .byte 178 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 198 + .byte 0 + .byte 47 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 179 + .byte 8 + .byte 144 + .byte 3 + .byte 65 + .byte 67 + .byte 50 + .byte 77 + .byte 192 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 0 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 150 + .byte 3 + .byte 67 + .byte 52 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 18 + .byte 12 + .byte 2 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 241 + .byte 0 + .byte 0 + .byte 186 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 55 + .byte 78 + .byte 135 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 43 + .byte 28 + .byte 2 + .byte 1 + .byte 0 + .byte 8 + .byte 0 + .byte 201 + .byte 2 + .byte 0 + .byte 188 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 61 + .byte 78 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 50 + .byte 18 + .byte 2 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 147 + .byte 3 + .byte 0 + .byte 187 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 194 + .byte 0 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 16 + .byte 2 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 151 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 198 + .byte 0 + .byte 78 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 48 + .byte 2 + .byte 1 + .byte 0 + .byte 16 + .byte 0 + .byte 154 + .byte 3 + .byte 0 + .byte 196 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 202 + .byte 0 + .byte 78 + .byte 149 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 185 + .byte 1 + .byte 43 + .byte 2 + .byte 1 + .byte 0 + .byte 14 + .byte 0 + .byte 157 + .byte 3 + .byte 0 + .byte 194 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 206 + .byte 0 + .byte 78 + .byte 135 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 0 + .byte 41 + .byte 2 + .byte 1 + .byte 0 + .byte 12 + .byte 0 + .byte 160 + .byte 3 + .byte 0 + .byte 192 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 183 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 45 + .byte 184 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 162 + .byte 8 + .byte 163 + .byte 8 + .byte 65 + .byte 67 + .byte 184 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 183 + .byte 1 + .byte 185 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 160 + .byte 8 + .byte 161 + .byte 8 + .byte 65 + .byte 67 + .byte 185 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 184 + .byte 1 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 158 + .byte 8 + .byte 159 + .byte 8 + .byte 65 + .byte 67 + .byte 186 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 189 + .byte 1 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 187 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 195 + .byte 1 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte 0 + .byte 188 + .byte 1 + .byte 93 + .byte 0 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 191 + .byte 1 + .byte 55 + .byte 0 + .byte 0 + .byte 0 + .byte 9 + .byte 0 + .byte 189 + .byte 1 + .byte 93 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 13 + .byte 186 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 80 + .byte 128 + .byte 1 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 194 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 189 + .byte 1 + .byte 191 + .byte 1 + .byte 93 + .byte 135 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 29 + .byte 188 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 192 + .byte 1 + .byte 80 + .byte 135 + .byte 3 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 0 + .byte 206 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 13 + .byte 0 + .byte 191 + .byte 1 + .byte 193 + .byte 1 + .byte 93 + .byte 149 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 28 + .byte 27 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 194 + .byte 1 + .byte 80 + .byte 149 + .byte 3 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 0 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 15 + .byte 0 + .byte 193 + .byte 1 + .byte 195 + .byte 1 + .byte 93 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 19 + .byte 187 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 196 + .byte 1 + .byte 80 + .byte 187 + .byte 3 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 198 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 195 + .byte 1 + .byte 1 + .byte 1 + .byte 7 + .byte 1 + .byte 2 + .byte 1 + .byte 7 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 11 + .byte 7 + .byte 6 + .byte 1 + .byte 0 + .byte 2 + .byte 80 + .byte 4 + .byte 1 + .byte 7 + .byte 2 + .byte 5 + .byte 1 + .byte 7 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 11 + .byte 7 + .byte 9 + .byte 4 + .byte 0 + .byte 5 + .byte 80 + .byte 7 + .byte 1 + .byte 7 + .byte 3 + .byte 8 + .byte 1 + .byte 7 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 11 + .byte 7 + .byte 0 + .byte 7 + .byte 0 + .byte 8 + .byte 80 + .byte 10 + .byte 1 + .byte 7 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 11 + .byte 7 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 80 + .byte 12 + .byte 0 + .byte 9 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 17 + .byte 0 + .byte 38 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 18 + .byte 8 + .byte 38 + .byte 181 + .byte 7 + .byte 19 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 19 + .byte 1 + .byte 38 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 46 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 27 + .byte 8 + .byte 46 + .byte 183 + .byte 7 + .byte 28 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 28 + .byte 1 + .byte 46 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 48 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 33 + .byte 8 + .byte 48 + .byte 184 + .byte 7 + .byte 34 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 34 + .byte 1 + .byte 48 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 35 + .byte 21 + .byte 48 + .byte 27 + .byte 33 + .byte 12 + .byte 40 + .byte 0 + .byte 54 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 41 + .byte 8 + .byte 54 + .byte 186 + .byte 7 + .byte 42 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 40 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 42 + .byte 1 + .byte 54 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 60 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 48 + .byte 8 + .byte 60 + .byte 188 + .byte 7 + .byte 49 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 49 + .byte 1 + .byte 60 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 194 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 55 + .byte 8 + .byte 194 + .byte 0 + .byte 190 + .byte 7 + .byte 56 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 56 + .byte 1 + .byte 194 + .byte 0 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 200 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 62 + .byte 8 + .byte 200 + .byte 0 + .byte 192 + .byte 7 + .byte 63 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 63 + .byte 1 + .byte 200 + .byte 0 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 206 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 197 + .byte 0 + .byte 8 + .byte 206 + .byte 0 + .byte 194 + .byte 7 + .byte 198 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 198 + .byte 0 + .byte 1 + .byte 206 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 204 + .byte 0 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 205 + .byte 0 + .byte 0 + .byte 223 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 208 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 0 + .byte 15 + .byte 227 + .byte 0 + .byte 198 + .byte 7 + .byte 7 + .byte 6 + .byte 210 + .byte 0 + .byte 22 + .byte 227 + .byte 0 + .byte 209 + .byte 0 + .byte 208 + .byte 0 + .byte 7 + .byte 211 + .byte 0 + .byte 19 + .byte 227 + .byte 0 + .byte 197 + .byte 7 + .byte 210 + .byte 0 + .byte 36 + .byte 212 + .byte 0 + .byte 1 + .byte 227 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 0 + .byte 8 + .byte 227 + .byte 0 + .byte 211 + .byte 0 + .byte 212 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 215 + .byte 0 + .byte 0 + .byte 231 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 218 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 219 + .byte 0 + .byte 15 + .byte 235 + .byte 0 + .byte 200 + .byte 7 + .byte 7 + .byte 6 + .byte 220 + .byte 0 + .byte 22 + .byte 235 + .byte 0 + .byte 219 + .byte 0 + .byte 218 + .byte 0 + .byte 7 + .byte 221 + .byte 0 + .byte 19 + .byte 235 + .byte 0 + .byte 199 + .byte 7 + .byte 220 + .byte 0 + .byte 36 + .byte 222 + .byte 0 + .byte 1 + .byte 235 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 224 + .byte 0 + .byte 8 + .byte 235 + .byte 0 + .byte 221 + .byte 0 + .byte 222 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 225 + .byte 0 + .byte 0 + .byte 239 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 228 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 229 + .byte 0 + .byte 15 + .byte 243 + .byte 0 + .byte 202 + .byte 7 + .byte 7 + .byte 6 + .byte 230 + .byte 0 + .byte 22 + .byte 243 + .byte 0 + .byte 229 + .byte 0 + .byte 228 + .byte 0 + .byte 7 + .byte 231 + .byte 0 + .byte 19 + .byte 243 + .byte 0 + .byte 201 + .byte 7 + .byte 230 + .byte 0 + .byte 36 + .byte 232 + .byte 0 + .byte 1 + .byte 243 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 234 + .byte 0 + .byte 8 + .byte 243 + .byte 0 + .byte 231 + .byte 0 + .byte 232 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 236 + .byte 0 + .byte 0 + .byte 247 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 0 + .byte 19 + .byte 247 + .byte 0 + .byte 204 + .byte 7 + .byte 236 + .byte 0 + .byte 6 + .byte 241 + .byte 0 + .byte 46 + .byte 254 + .byte 0 + .byte 153 + .byte 7 + .byte 196 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 243 + .byte 0 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 248 + .byte 0 + .byte 0 + .byte 163 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 249 + .byte 0 + .byte 8 + .byte 163 + .byte 1 + .byte 212 + .byte 7 + .byte 250 + .byte 0 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 250 + .byte 0 + .byte 1 + .byte 163 + .byte 1 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 0 + .byte 22 + .byte 163 + .byte 1 + .byte 211 + .byte 7 + .byte 249 + .byte 0 + .byte 6 + .byte 255 + .byte 0 + .byte 0 + .byte 165 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 128 + .byte 1 + .byte 8 + .byte 165 + .byte 1 + .byte 210 + .byte 7 + .byte 129 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 129 + .byte 1 + .byte 1 + .byte 165 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 1 + .byte 0 + .byte 165 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 1 + .byte 15 + .byte 165 + .byte 1 + .byte 251 + .byte 0 + .byte 7 + .byte 6 + .byte 132 + .byte 1 + .byte 22 + .byte 165 + .byte 1 + .byte 131 + .byte 1 + .byte 130 + .byte 1 + .byte 7 + .byte 133 + .byte 1 + .byte 19 + .byte 165 + .byte 1 + .byte 128 + .byte 1 + .byte 132 + .byte 1 + .byte 36 + .byte 140 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 141 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 214 + .byte 7 + .byte 142 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 140 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 142 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 143 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 1 + .byte 15 + .byte 175 + .byte 1 + .byte 215 + .byte 7 + .byte 7 + .byte 6 + .byte 145 + .byte 1 + .byte 22 + .byte 175 + .byte 1 + .byte 144 + .byte 1 + .byte 143 + .byte 1 + .byte 7 + .byte 146 + .byte 1 + .byte 19 + .byte 175 + .byte 1 + .byte 141 + .byte 1 + .byte 145 + .byte 1 + .byte 36 + .byte 147 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 146 + .byte 1 + .byte 147 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 155 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 156 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 217 + .byte 7 + .byte 157 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 155 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 157 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 158 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 159 + .byte 1 + .byte 15 + .byte 181 + .byte 1 + .byte 218 + .byte 7 + .byte 7 + .byte 6 + .byte 160 + .byte 1 + .byte 22 + .byte 181 + .byte 1 + .byte 159 + .byte 1 + .byte 158 + .byte 1 + .byte 7 + .byte 161 + .byte 1 + .byte 19 + .byte 181 + .byte 1 + .byte 156 + .byte 1 + .byte 160 + .byte 1 + .byte 36 + .byte 162 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 161 + .byte 1 + .byte 162 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 170 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 171 + .byte 1 + .byte 8 + .byte 188 + .byte 1 + .byte 220 + .byte 7 + .byte 172 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 170 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 172 + .byte 1 + .byte 1 + .byte 188 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 173 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 174 + .byte 1 + .byte 15 + .byte 188 + .byte 1 + .byte 221 + .byte 7 + .byte 7 + .byte 6 + .byte 175 + .byte 1 + .byte 22 + .byte 188 + .byte 1 + .byte 174 + .byte 1 + .byte 173 + .byte 1 + .byte 7 + .byte 176 + .byte 1 + .byte 19 + .byte 188 + .byte 1 + .byte 171 + .byte 1 + .byte 175 + .byte 1 + .byte 36 + .byte 177 + .byte 1 + .byte 1 + .byte 188 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 179 + .byte 1 + .byte 8 + .byte 188 + .byte 1 + .byte 176 + .byte 1 + .byte 177 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 185 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 186 + .byte 1 + .byte 8 + .byte 195 + .byte 1 + .byte 223 + .byte 7 + .byte 187 + .byte 1 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 185 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 187 + .byte 1 + .byte 1 + .byte 195 + .byte 1 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 188 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 189 + .byte 1 + .byte 15 + .byte 195 + .byte 1 + .byte 224 + .byte 7 + .byte 7 + .byte 6 + .byte 190 + .byte 1 + .byte 22 + .byte 195 + .byte 1 + .byte 189 + .byte 1 + .byte 188 + .byte 1 + .byte 7 + .byte 191 + .byte 1 + .byte 19 + .byte 195 + .byte 1 + .byte 186 + .byte 1 + .byte 190 + .byte 1 + .byte 36 + .byte 192 + .byte 1 + .byte 1 + .byte 195 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 193 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 194 + .byte 1 + .byte 8 + .byte 195 + .byte 1 + .byte 191 + .byte 1 + .byte 192 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 193 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 196 + .byte 1 + .byte 0 + .byte 200 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 1 + .byte 0 + .byte 204 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 200 + .byte 1 + .byte 0 + .byte 208 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 202 + .byte 1 + .byte 0 + .byte 214 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 204 + .byte 1 + .byte 0 + .byte 226 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 208 + .byte 1 + .byte 0 + .byte 251 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 1 + .byte 15 + .byte 251 + .byte 1 + .byte 233 + .byte 7 + .byte 7 + .byte 6 + .byte 210 + .byte 1 + .byte 22 + .byte 251 + .byte 1 + .byte 209 + .byte 1 + .byte 208 + .byte 1 + .byte 7 + .byte 211 + .byte 1 + .byte 19 + .byte 251 + .byte 1 + .byte 232 + .byte 7 + .byte 210 + .byte 1 + .byte 36 + .byte 212 + .byte 1 + .byte 1 + .byte 251 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 1 + .byte 0 + .byte 251 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 1 + .byte 8 + .byte 251 + .byte 1 + .byte 211 + .byte 1 + .byte 212 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 221 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 222 + .byte 1 + .byte 8 + .byte 131 + .byte 2 + .byte 236 + .byte 7 + .byte 223 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 223 + .byte 1 + .byte 1 + .byte 131 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 225 + .byte 1 + .byte 15 + .byte 131 + .byte 2 + .byte 237 + .byte 7 + .byte 7 + .byte 6 + .byte 226 + .byte 1 + .byte 22 + .byte 131 + .byte 2 + .byte 225 + .byte 1 + .byte 224 + .byte 1 + .byte 7 + .byte 227 + .byte 1 + .byte 19 + .byte 131 + .byte 2 + .byte 222 + .byte 1 + .byte 226 + .byte 1 + .byte 36 + .byte 228 + .byte 1 + .byte 1 + .byte 131 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 230 + .byte 1 + .byte 8 + .byte 131 + .byte 2 + .byte 227 + .byte 1 + .byte 228 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 231 + .byte 1 + .byte 20 + .byte 131 + .byte 2 + .byte 235 + .byte 7 + .byte 230 + .byte 1 + .byte 12 + .byte 238 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 239 + .byte 1 + .byte 8 + .byte 140 + .byte 2 + .byte 240 + .byte 7 + .byte 240 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 240 + .byte 1 + .byte 1 + .byte 140 + .byte 2 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 242 + .byte 1 + .byte 15 + .byte 140 + .byte 2 + .byte 241 + .byte 7 + .byte 7 + .byte 6 + .byte 243 + .byte 1 + .byte 22 + .byte 140 + .byte 2 + .byte 242 + .byte 1 + .byte 241 + .byte 1 + .byte 7 + .byte 244 + .byte 1 + .byte 19 + .byte 140 + .byte 2 + .byte 239 + .byte 1 + .byte 243 + .byte 1 + .byte 36 + .byte 245 + .byte 1 + .byte 1 + .byte 140 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 247 + .byte 1 + .byte 8 + .byte 140 + .byte 2 + .byte 244 + .byte 1 + .byte 245 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 248 + .byte 1 + .byte 20 + .byte 140 + .byte 2 + .byte 239 + .byte 7 + .byte 247 + .byte 1 + .byte 12 + .byte 255 + .byte 1 + .byte 0 + .byte 149 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 128 + .byte 2 + .byte 8 + .byte 149 + .byte 2 + .byte 244 + .byte 7 + .byte 129 + .byte 2 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 129 + .byte 2 + .byte 1 + .byte 149 + .byte 2 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 2 + .byte 0 + .byte 149 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 2 + .byte 15 + .byte 149 + .byte 2 + .byte 245 + .byte 7 + .byte 7 + .byte 6 + .byte 132 + .byte 2 + .byte 22 + .byte 149 + .byte 2 + .byte 131 + .byte 2 + .byte 130 + .byte 2 + .byte 7 + .byte 133 + .byte 2 + .byte 19 + .byte 149 + .byte 2 + .byte 128 + .byte 2 + .byte 132 + .byte 2 + .byte 36 + .byte 134 + .byte 2 + .byte 1 + .byte 149 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 2 + .byte 0 + .byte 149 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 136 + .byte 2 + .byte 8 + .byte 149 + .byte 2 + .byte 133 + .byte 2 + .byte 134 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 137 + .byte 2 + .byte 20 + .byte 149 + .byte 2 + .byte 243 + .byte 7 + .byte 136 + .byte 2 + .byte 12 + .byte 141 + .byte 2 + .byte 21 + .byte 158 + .byte 2 + .byte 247 + .byte 7 + .byte 248 + .byte 7 + .byte 12 + .byte 144 + .byte 2 + .byte 21 + .byte 162 + .byte 2 + .byte 249 + .byte 7 + .byte 250 + .byte 7 + .byte 12 + .byte 145 + .byte 2 + .byte 19 + .byte 162 + .byte 2 + .byte 141 + .byte 2 + .byte 144 + .byte 2 + .byte 12 + .byte 148 + .byte 2 + .byte 21 + .byte 166 + .byte 2 + .byte 251 + .byte 7 + .byte 252 + .byte 7 + .byte 12 + .byte 149 + .byte 2 + .byte 19 + .byte 166 + .byte 2 + .byte 145 + .byte 2 + .byte 148 + .byte 2 + .byte 12 + .byte 151 + .byte 2 + .byte 0 + .byte 185 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 153 + .byte 2 + .byte 37 + .byte 187 + .byte 2 + .byte 151 + .byte 2 + .byte 128 + .byte 8 + .byte 12 + .byte 1 + .byte 5 + .byte 10 + .byte 109 + .byte 97 + .byte 120 + .byte 45 + .byte 101 + .byte 114 + .byte 114 + .byte 111 + .byte 114 + .byte 0 + .byte 4 + .byte 52 + .byte 46 + .byte 48 + .byte 0 + .byte 17 + .byte 100 + .byte 111 + .byte 109 + .byte 97 + .byte 105 + .byte 110 + .byte 45 + .byte 101 + .byte 120 + .byte 99 + .byte 108 + .byte 117 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 0 + .byte 3 + .byte 49 + .byte 53 + .byte 0 + .byte 18 + .byte 118 + .byte 97 + .byte 108 + .byte 105 + .byte 100 + .byte 45 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 117 + .byte 115 + .byte 45 + .byte 98 + .byte 105 + .byte 116 + .byte 115 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 5 + .byte 102 + .byte 117 + .byte 115 + .byte 97 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 8 + .byte 122 + .byte 109 + .byte 109 + .byte 45 + .byte 108 + .byte 111 + .byte 119 + .byte 0 + .byte 5 + .byte 116 + .byte 114 + .byte 117 + .byte 101 + .byte 0 + .byte 157 + .byte 2 + .byte 21 + .byte 195 + .byte 2 + .byte 130 + .byte 8 + .byte 131 + .byte 8 + .byte 12 + .byte 159 + .byte 2 + .byte 21 + .byte 197 + .byte 2 + .byte 157 + .byte 2 + .byte 132 + .byte 8 + .byte 12 + .byte 161 + .byte 2 + .byte 21 + .byte 199 + .byte 2 + .byte 159 + .byte 2 + .byte 133 + .byte 8 + .byte 12 + .byte 163 + .byte 2 + .byte 0 + .byte 205 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 165 + .byte 2 + .byte 21 + .byte 207 + .byte 2 + .byte 163 + .byte 2 + .byte 135 + .byte 8 + .byte 12 + .byte 167 + .byte 2 + .byte 0 + .byte 211 + .byte 2 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 168 + .byte 2 + .byte 20 + .byte 211 + .byte 2 + .byte 136 + .byte 8 + .byte 167 + .byte 2 + .byte 12 + .byte 169 + .byte 2 + .byte 21 + .byte 211 + .byte 2 + .byte 165 + .byte 2 + .byte 168 + .byte 2 + .byte 12 + .byte 171 + .byte 2 + .byte 21 + .byte 213 + .byte 2 + .byte 169 + .byte 2 + .byte 137 + .byte 8 + .byte 12 + .byte 173 + .byte 2 + .byte 21 + .byte 215 + .byte 2 + .byte 171 + .byte 2 + .byte 138 + .byte 8 + .byte 12 + .byte 176 + .byte 2 + .byte 21 + .byte 221 + .byte 2 + .byte 141 + .byte 8 + .byte 142 + .byte 8 + .byte 12 + .byte 179 + .byte 2 + .byte 19 + .byte 223 + .byte 2 + .byte 140 + .byte 8 + .byte 176 + .byte 2 + .byte 12 + .byte 182 + .byte 2 + .byte 21 + .byte 229 + .byte 2 + .byte 145 + .byte 8 + .byte 146 + .byte 8 + .byte 12 + .byte 185 + .byte 2 + .byte 19 + .byte 231 + .byte 2 + .byte 144 + .byte 8 + .byte 182 + .byte 2 + .byte 12 + .byte 188 + .byte 2 + .byte 21 + .byte 237 + .byte 2 + .byte 149 + .byte 8 + .byte 150 + .byte 8 + .byte 12 + .byte 191 + .byte 2 + .byte 19 + .byte 239 + .byte 2 + .byte 148 + .byte 8 + .byte 188 + .byte 2 + .byte 12 + .byte 194 + .byte 2 + .byte 46 + .byte 247 + .byte 2 + .byte 253 + .byte 7 + .byte 254 + .byte 7 + .byte 6 + .byte 4 + .byte 12 + .byte 196 + .byte 2 + .byte 0 + .byte 254 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 2 + .byte 19 + .byte 254 + .byte 2 + .byte 152 + .byte 8 + .byte 196 + .byte 2 + .byte 6 + .byte 201 + .byte 2 + .byte 46 + .byte 133 + .byte 3 + .byte 155 + .byte 7 + .byte 230 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 203 + .byte 2 + .byte 0 + .byte 140 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 205 + .byte 2 + .byte 19 + .byte 140 + .byte 3 + .byte 156 + .byte 8 + .byte 203 + .byte 2 + .byte 6 + .byte 212 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 213 + .byte 2 + .byte 15 + .byte 158 + .byte 3 + .byte 165 + .byte 8 + .byte 7 + .byte 6 + .byte 214 + .byte 2 + .byte 22 + .byte 158 + .byte 3 + .byte 213 + .byte 2 + .byte 212 + .byte 2 + .byte 7 + .byte 215 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 164 + .byte 8 + .byte 214 + .byte 2 + .byte 36 + .byte 216 + .byte 2 + .byte 1 + .byte 158 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 218 + .byte 2 + .byte 8 + .byte 158 + .byte 3 + .byte 215 + .byte 2 + .byte 216 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 219 + .byte 2 + .byte 8 + .byte 158 + .byte 3 + .byte 220 + .byte 2 + .byte 226 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 220 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 166 + .byte 8 + .byte 222 + .byte 2 + .byte 36 + .byte 222 + .byte 2 + .byte 22 + .byte 158 + .byte 3 + .byte 223 + .byte 2 + .byte 225 + .byte 2 + .byte 7 + .byte 223 + .byte 2 + .byte 15 + .byte 158 + .byte 3 + .byte 167 + .byte 8 + .byte 7 + .byte 6 + .byte 225 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 226 + .byte 2 + .byte 1 + .byte 158 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 228 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 219 + .byte 2 + .byte 168 + .byte 8 + .byte 12 + .byte 232 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 233 + .byte 2 + .byte 15 + .byte 166 + .byte 3 + .byte 170 + .byte 8 + .byte 7 + .byte 6 + .byte 234 + .byte 2 + .byte 22 + .byte 166 + .byte 3 + .byte 233 + .byte 2 + .byte 232 + .byte 2 + .byte 7 + .byte 235 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 169 + .byte 8 + .byte 234 + .byte 2 + .byte 36 + .byte 236 + .byte 2 + .byte 1 + .byte 166 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 2 + .byte 8 + .byte 166 + .byte 3 + .byte 235 + .byte 2 + .byte 236 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 239 + .byte 2 + .byte 8 + .byte 166 + .byte 3 + .byte 240 + .byte 2 + .byte 246 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 240 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 171 + .byte 8 + .byte 242 + .byte 2 + .byte 36 + .byte 242 + .byte 2 + .byte 22 + .byte 166 + .byte 3 + .byte 243 + .byte 2 + .byte 245 + .byte 2 + .byte 7 + .byte 243 + .byte 2 + .byte 15 + .byte 166 + .byte 3 + .byte 172 + .byte 8 + .byte 7 + .byte 6 + .byte 245 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 246 + .byte 2 + .byte 1 + .byte 166 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 248 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 239 + .byte 2 + .byte 173 + .byte 8 + .byte 12 + .byte 252 + .byte 2 + .byte 0 + .byte 174 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 253 + .byte 2 + .byte 15 + .byte 174 + .byte 3 + .byte 175 + .byte 8 + .byte 7 + .byte 6 + .byte 254 + .byte 2 + .byte 22 + .byte 174 + .byte 3 + .byte 253 + .byte 2 + .byte 252 + .byte 2 + .byte 7 + .byte 255 + .byte 2 + .byte 19 + .byte 174 + .byte 3 + .byte 174 + .byte 8 + .byte 254 + .byte 2 + .byte 36 + .byte 128 + .byte 3 + .byte 1 + .byte 174 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 129 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 130 + .byte 3 + .byte 8 + .byte 174 + .byte 3 + .byte 255 + .byte 2 + .byte 128 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 129 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 131 + .byte 3 + .byte 8 + .byte 174 + .byte 3 + .byte 132 + .byte 3 + .byte 138 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 139 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 132 + .byte 3 + .byte 19 + .byte 174 + .byte 3 + .byte 176 + .byte 8 + .byte 134 + .byte 3 + .byte 36 + .byte 134 + .byte 3 + .byte 22 + .byte 174 + .byte 3 + .byte 135 + .byte 3 + .byte 137 + .byte 3 + .byte 7 + .byte 135 + .byte 3 + .byte 15 + .byte 174 + .byte 3 + .byte 177 + .byte 8 + .byte 7 + .byte 6 + .byte 137 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 138 + .byte 3 + .byte 1 + .byte 174 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 139 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 140 + .byte 3 + .byte 19 + .byte 174 + .byte 3 + .byte 131 + .byte 3 + .byte 178 + .byte 8 + .byte 12 + .byte 142 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 3 + .byte 19 + .byte 178 + .byte 3 + .byte 180 + .byte 8 + .byte 142 + .byte 3 + .byte 6 + .byte 147 + .byte 3 + .byte 46 + .byte 185 + .byte 3 + .byte 154 + .byte 7 + .byte 208 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 148 + .byte 3 + .byte 0 + .byte 192 + .byte 3 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 3 + .byte 1 + .byte 192 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 150 + .byte 3 + .byte 11 + .byte 192 + .byte 3 + .byte 0 + .byte 148 + .byte 3 + .byte 0 + .byte 149 + .byte 3 + .byte 80 + .byte 151 + .byte 3 + .byte 46 + .byte 254 + .byte 0 + .byte 205 + .byte 7 + .byte 206 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 154 + .byte 3 + .byte 46 + .byte 185 + .byte 3 + .byte 181 + .byte 8 + .byte 182 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 157 + .byte 3 + .byte 46 + .byte 147 + .byte 3 + .byte 159 + .byte 3 + .byte 157 + .byte 8 + .byte 6 + .byte 2 + .byte 6 + .byte 159 + .byte 3 + .byte 0 + .byte 147 + .byte 3 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 160 + .byte 3 + .byte 46 + .byte 133 + .byte 3 + .byte 153 + .byte 8 + .byte 154 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 153 + .byte 7 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 154 + .byte 7 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 155 + .byte 7 + .byte 0 + .byte 226 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 180 + .byte 7 + .byte 1 + .byte 38 + .byte 4 + .byte 181 + .byte 7 + .byte 1 + .byte 38 + .byte 2 + .byte 182 + .byte 7 + .byte 1 + .byte 48 + .byte 6 + .byte 183 + .byte 7 + .byte 1 + .byte 46 + .byte 1 + .byte 184 + .byte 7 + .byte 1 + .byte 48 + .byte 1 + .byte 185 + .byte 7 + .byte 1 + .byte 54 + .byte 7 + .byte 186 + .byte 7 + .byte 1 + .byte 54 + .byte 1 + .byte 187 + .byte 7 + .byte 1 + .byte 60 + .byte 8 + .byte 188 + .byte 7 + .byte 1 + .byte 60 + .byte 1 + .byte 189 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 9 + .byte 190 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 2 + .byte 191 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 10 + .byte 192 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 2 + .byte 193 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 11 + .byte 194 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 2 + .byte 195 + .byte 7 + .byte 1 + .byte 214 + .byte 0 + .byte 14 + .byte 196 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 197 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 9 + .byte 198 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 14 + .byte 199 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 10 + .byte 200 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 14 + .byte 201 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 11 + .byte 202 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 14 + .byte 203 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 204 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 205 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 14 + .byte 206 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 207 + .byte 7 + .byte 1 + .byte 136 + .byte 1 + .byte 15 + .byte 208 + .byte 7 + .byte 1 + .byte 185 + .byte 3 + .byte 4 + .byte 209 + .byte 7 + .byte 1 + .byte 167 + .byte 1 + .byte 5 + .byte 210 + .byte 7 + .byte 1 + .byte 165 + .byte 1 + .byte 3 + .byte 211 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 15 + .byte 212 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 3 + .byte 213 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 16 + .byte 214 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 3 + .byte 215 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 15 + .byte 216 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 17 + .byte 217 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 2 + .byte 218 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 15 + .byte 219 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 18 + .byte 220 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 2 + .byte 221 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 15 + .byte 222 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 19 + .byte 223 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 2 + .byte 224 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 15 + .byte 225 + .byte 7 + .byte 1 + .byte 200 + .byte 1 + .byte 20 + .byte 226 + .byte 7 + .byte 1 + .byte 204 + .byte 1 + .byte 21 + .byte 227 + .byte 7 + .byte 1 + .byte 208 + .byte 1 + .byte 22 + .byte 228 + .byte 7 + .byte 1 + .byte 214 + .byte 1 + .byte 23 + .byte 229 + .byte 7 + .byte 1 + .byte 226 + .byte 1 + .byte 24 + .byte 230 + .byte 7 + .byte 1 + .byte 133 + .byte 3 + .byte 16 + .byte 231 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 25 + .byte 232 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 5 + .byte 233 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 24 + .byte 234 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 26 + .byte 235 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 17 + .byte 236 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 2 + .byte 237 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 25 + .byte 238 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 27 + .byte 239 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 18 + .byte 240 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 2 + .byte 241 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 25 + .byte 242 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 28 + .byte 243 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 19 + .byte 244 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 2 + .byte 245 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 25 + .byte 246 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 29 + .byte 247 + .byte 7 + .byte 1 + .byte 158 + .byte 2 + .byte 26 + .byte 248 + .byte 7 + .byte 1 + .byte 158 + .byte 2 + .byte 26 + .byte 249 + .byte 7 + .byte 1 + .byte 162 + .byte 2 + .byte 27 + .byte 250 + .byte 7 + .byte 1 + .byte 162 + .byte 2 + .byte 27 + .byte 251 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 28 + .byte 252 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 28 + .byte 253 + .byte 7 + .byte 1 + .byte 247 + .byte 2 + .byte 29 + .byte 254 + .byte 7 + .byte 1 + .byte 247 + .byte 2 + .byte 6 + .byte 255 + .byte 7 + .byte 1 + .byte 187 + .byte 2 + .byte 30 + .byte 128 + .byte 8 + .byte 1 + .byte 187 + .byte 2 + .byte 29 + .byte 129 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 31 + .byte 130 + .byte 8 + .byte 1 + .byte 195 + .byte 2 + .byte 30 + .byte 131 + .byte 8 + .byte 1 + .byte 195 + .byte 2 + .byte 30 + .byte 132 + .byte 8 + .byte 1 + .byte 197 + .byte 2 + .byte 30 + .byte 133 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 7 + .byte 134 + .byte 8 + .byte 1 + .byte 215 + .byte 2 + .byte 32 + .byte 135 + .byte 8 + .byte 1 + .byte 207 + .byte 2 + .byte 31 + .byte 136 + .byte 8 + .byte 1 + .byte 211 + .byte 2 + .byte 31 + .byte 137 + .byte 8 + .byte 1 + .byte 213 + .byte 2 + .byte 30 + .byte 138 + .byte 8 + .byte 1 + .byte 215 + .byte 2 + .byte 8 + .byte 139 + .byte 8 + .byte 1 + .byte 223 + .byte 2 + .byte 20 + .byte 140 + .byte 8 + .byte 1 + .byte 223 + .byte 2 + .byte 20 + .byte 141 + .byte 8 + .byte 1 + .byte 221 + .byte 2 + .byte 26 + .byte 142 + .byte 8 + .byte 1 + .byte 221 + .byte 2 + .byte 32 + .byte 143 + .byte 8 + .byte 1 + .byte 231 + .byte 2 + .byte 21 + .byte 144 + .byte 8 + .byte 1 + .byte 231 + .byte 2 + .byte 21 + .byte 145 + .byte 8 + .byte 1 + .byte 229 + .byte 2 + .byte 27 + .byte 146 + .byte 8 + .byte 1 + .byte 229 + .byte 2 + .byte 32 + .byte 147 + .byte 8 + .byte 1 + .byte 239 + .byte 2 + .byte 22 + .byte 148 + .byte 8 + .byte 1 + .byte 239 + .byte 2 + .byte 22 + .byte 149 + .byte 8 + .byte 1 + .byte 237 + .byte 2 + .byte 28 + .byte 150 + .byte 8 + .byte 1 + .byte 237 + .byte 2 + .byte 32 + .byte 151 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 24 + .byte 152 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 24 + .byte 153 + .byte 8 + .byte 1 + .byte 133 + .byte 3 + .byte 24 + .byte 154 + .byte 8 + .byte 1 + .byte 133 + .byte 3 + .byte 16 + .byte 155 + .byte 8 + .byte 1 + .byte 140 + .byte 3 + .byte 23 + .byte 156 + .byte 8 + .byte 1 + .byte 140 + .byte 3 + .byte 23 + .byte 157 + .byte 8 + .byte 1 + .byte 147 + .byte 3 + .byte 23 + .byte 158 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 159 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 160 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 21 + .byte 161 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 21 + .byte 162 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 22 + .byte 163 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 22 + .byte 164 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 9 + .byte 165 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 15 + .byte 166 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 9 + .byte 167 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 15 + .byte 168 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 169 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 10 + .byte 170 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 15 + .byte 171 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 10 + .byte 172 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 15 + .byte 173 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 21 + .byte 174 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 11 + .byte 175 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 15 + .byte 176 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 11 + .byte 177 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 15 + .byte 178 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 22 + .byte 179 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 180 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 181 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 15 + .byte 182 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 4 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 2 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 5 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 3 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 6 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 4 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 7 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 5 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 11 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 8 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 6 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 9 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 7 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 10 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 8 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 11 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 11 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 14 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 12 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 50 + .byte 0 + .byte 15 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 13 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 13 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 16 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 14 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 17 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 15 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 18 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 16 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 19 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 17 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 20 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 18 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 21 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 19 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 22 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 20 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 0 + .byte 8 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 23 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 21 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 0 + .byte 10 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 24 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 22 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 25 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 23 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 26 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 24 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 27 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 25 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 28 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 26 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 29 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 27 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 30 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 28 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 31 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 29 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 9 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 32 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 13 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 2 + .byte 12 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 16 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 14 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 0 + .byte 1 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 5 + .byte 14 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 0 + .byte 2 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 18 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 53 + .byte 0 + .byte 3 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 14 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 54 + .byte 0 + .byte 4 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 15 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 55 + .byte 0 + .byte 5 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 10 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 56 + .byte 0 + .byte 6 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 10 + .byte 10 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 57 + .byte 0 + .byte 7 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 10 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 97 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 14 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 100 + .byte 0 + .byte 11 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 15 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 101 + .byte 0 + .byte 12 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 16 + .byte 18 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 102 + .byte 0 + .byte 13 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 13 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 48 + .byte 0 + .byte 14 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 18 + .byte 13 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 49 + .byte 0 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 19 + .byte 13 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 50 + .byte 0 + .byte 16 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 20 + .byte 12 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 51 + .byte 0 + .byte 17 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 21 + .byte 12 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 52 + .byte 0 + .byte 18 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 22 + .byte 12 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 53 + .byte 0 + .byte 19 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 23 + .byte 10 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 98 + .byte 0 + .byte 20 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 24 + .byte 10 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 99 + .byte 0 + .byte 21 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 25 + .byte 10 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 100 + .byte 0 + .byte 22 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 101 + .byte 0 + .byte 23 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 27 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 102 + .byte 0 + .byte 24 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 28 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 48 + .byte 0 + .byte 25 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 12 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 49 + .byte 0 + .byte 26 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 30 + .byte 12 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 50 + .byte 0 + .byte 27 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 31 + .byte 12 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 51 + .byte 0 + .byte 28 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 14 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 52 + .byte 0 + .byte 29 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 200 + .byte 81 + .byte 83 + .byte 5 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 109 + .byte 54 + .byte 52 + .byte 116 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 114 + .byte 111 + .byte 117 + .byte 116 + .byte 105 + .byte 110 + .byte 101 + .byte 95 + .byte 112 + .byte 111 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 114 + .byte 95 + .byte 115 + .byte 105 + .byte 122 + .byte 101 + .byte 95 + .byte 54 + .byte 52 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 103 + .byte 110 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 95 + .byte 117 + .byte 115 + .byte 101 + .byte 100 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 103 + .byte 99 + .byte 99 + .byte 95 + .byte 118 + .byte 101 + .byte 114 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 61 + .byte 55 + .byte 53 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 99 + .byte 120 + .byte 120 + .byte 95 + .byte 108 + .byte 105 + .byte 109 + .byte 105 + .byte 116 + .byte 101 + .byte 100 + .byte 95 + .byte 114 + .byte 97 + .byte 110 + .byte 103 + .byte 101 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 95 + .byte 112 + .byte 97 + .byte 114 + .byte 109 + .byte 115 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 117 + .byte 97 + .byte 114 + .byte 99 + .byte 104 + .byte 95 + .byte 116 + .byte 117 + .byte 110 + .byte 105 + .byte 110 + .byte 103 + .byte 61 + .byte 48 + .byte 120 + .byte 48 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 98 + .byte 110 + .byte 108 + .byte 95 + .byte 109 + .byte 111 + .byte 118 + .byte 98 + .byte 101 + .byte 61 + .byte 84 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 101 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 115 + .byte 116 + .byte 114 + .byte 117 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 48 + .byte 120 + .byte 52 + .byte 48 + .byte 48 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 97 + .byte 100 + .byte 118 + .byte 97 + .byte 110 + .byte 99 + .byte 101 + .byte 100 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 109 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 115 + .byte 117 + .byte 98 + .byte 115 + .byte 95 + .byte 111 + .byte 117 + .byte 116 + .byte 95 + .byte 111 + .byte 102 + .byte 95 + .byte 98 + .byte 111 + .byte 117 + .byte 110 + .byte 100 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 98 + .byte 97 + .byte 115 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 61 + .byte 50 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 99 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 99 + .byte 104 + .byte 101 + .byte 99 + .byte 107 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 97 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 105 + .byte 108 + .byte 48 + .byte 95 + .byte 97 + .byte 114 + .byte 114 + .byte 97 + .byte 121 + .byte 95 + .byte 115 + .byte 101 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 102 + .byte 102 + .byte 108 + .byte 111 + .byte 97 + .byte 100 + .byte 95 + .byte 109 + .byte 111 + .byte 100 + .byte 101 + .byte 61 + .byte 49 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 114 + .byte 101 + .byte 115 + .byte 116 + .byte 114 + .byte 105 + .byte 99 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 102 + .byte 117 + .byte 110 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 112 + .byte 111 + .byte 95 + .byte 114 + .byte 116 + .byte 116 + .byte 95 + .byte 99 + .byte 111 + .byte 110 + .byte 116 + .byte 114 + .byte 111 + .byte 108 + .byte 61 + .byte 48 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 114 + .byte 103 + .byte 115 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 114 + .byte 101 + .byte 103 + .byte 115 + .byte 61 + .byte 48 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 110 + .byte 111 + .byte 110 + .byte 115 + .byte 116 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 110 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 108 + .byte 116 + .byte 111 + .byte 95 + .byte 111 + .byte 98 + .byte 106 + .byte 101 + .byte 99 + .byte 116 + .byte 95 + .byte 101 + .byte 110 + .byte 97 + .byte 98 + .byte 108 + .byte 101 + .byte 100 + .byte 32 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 115 + .byte 109 + .byte 95 + .byte 116 + .byte 97 + .byte 114 + .byte 103 + .byte 101 + .byte 116 + .byte 61 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 65 + .byte 83 + .byte 77 + .byte 95 + .byte 84 + .byte 65 + .byte 82 + .byte 71 + .byte 69 + .byte 84 + .byte 95 + .byte 71 + .byte 65 + .byte 83 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 100 + .byte 105 + .byte 97 + .byte 108 + .byte 101 + .byte 99 + .byte 116 + .byte 61 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 83 + .byte 79 + .byte 85 + .byte 82 + .byte 67 + .byte 69 + .byte 95 + .byte 68 + .byte 73 + .byte 65 + .byte 76 + .byte 69 + .byte 67 + .byte 84 + .byte 95 + .byte 67 + .byte 32 + .byte 80 + .byte 49 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 102 + .byte 117 + .byte 108 + .byte 108 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 102 + .byte 105 + .byte 108 + .byte 101 + .byte 95 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 61 + .byte 47 + .byte 104 + .byte 111 + .byte 109 + .byte 101 + .byte 47 + .byte 104 + .byte 112 + .byte 99 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 48 + .byte 50 + .byte 49 + .byte 104 + .byte 47 + .byte 77 + .byte 68 + .byte 45 + .byte 66 + .byte 101 + .byte 110 + .byte 99 + .byte 104 + .byte 47 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 1 + .byte 1 + .byte 160 + .byte 1 + .byte 192 + .byte 0 + .byte 243 + .byte 0 + .byte 127 + .byte 85 + .byte 114 + .byte 99 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 126 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 0 + .byte 123 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 0 + .byte 122 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 8 + .byte 121 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 1 + .byte 120 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 4 + .byte 119 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 248 + .byte 63 + .byte 118 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 164 + .byte 64 + .byte 117 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 240 + .byte 63 + .byte 116 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 232 + .byte 7 + .byte 127 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 126 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 125 + .byte 4 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 124 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 123 + .byte 4 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 122 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 121 + .byte 4 + .byte 0 + .byte 32 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 120 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 119 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 118 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 1 + .byte 1 + .byte 26 + .byte 3 + .byte 36 + .byte 8 + .byte 0 + .byte 145 + .byte 192 + .byte 129 + .byte 16 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 8 + .byte 1 + .byte 46 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 40 + .byte 80 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 65 + .byte 116 + .byte 111 + .byte 109 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 78 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 32 + .byte 42 + .byte 41 + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 127 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 32 + .byte 126 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 136 + .byte 1 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 125 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 124 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 0 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 123 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 122 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 213 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 121 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 120 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 32 + .byte 119 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 118 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 117 + .byte 11 + .byte 78 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 100 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 116 + .byte 11 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 95 + .byte 86 + .byte 36 + .byte 101 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 115 + .byte 11 + .byte 78 + .byte 103 + .byte 104 + .byte 111 + .byte 115 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 102 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 8 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 114 + .byte 10 + .byte 78 + .byte 109 + .byte 97 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 12 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 113 + .byte 7 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 112 + .byte 7 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 50 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 111 + .byte 7 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 51 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 110 + .byte 8 + .byte 118 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 52 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 40 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 109 + .byte 8 + .byte 118 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 53 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 48 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 236 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 108 + .byte 8 + .byte 118 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 54 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 107 + .byte 8 + .byte 102 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 55 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 106 + .byte 8 + .byte 102 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 56 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 105 + .byte 8 + .byte 102 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 57 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 104 + .byte 13 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 103 + .byte 12 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 230 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 102 + .byte 10 + .byte 116 + .byte 101 + .byte 109 + .byte 112 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 101 + .byte 9 + .byte 114 + .byte 104 + .byte 111 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 100 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 228 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 100 + .byte 10 + .byte 109 + .byte 97 + .byte 115 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 101 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 99 + .byte 12 + .byte 110 + .byte 116 + .byte 105 + .byte 109 + .byte 101 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 102 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 40 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 226 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 98 + .byte 11 + .byte 110 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 44 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 97 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 49 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 48 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 96 + .byte 8 + .byte 100 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 50 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 95 + .byte 13 + .byte 100 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 51 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 94 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 52 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 93 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 53 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 220 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 92 + .byte 8 + .byte 110 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 54 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 216 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 219 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 91 + .byte 8 + .byte 110 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 55 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 220 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 218 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 90 + .byte 8 + .byte 110 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 56 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 224 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 89 + .byte 13 + .byte 108 + .byte 97 + .byte 116 + .byte 116 + .byte 105 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 57 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 232 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 88 + .byte 10 + .byte 120 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 240 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 215 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 87 + .byte 10 + .byte 121 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 248 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 214 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 86 + .byte 10 + .byte 122 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 128 + .byte 1 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 37 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 85 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 54 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 212 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 84 + .byte 12 + .byte 110 + .byte 99 + .byte 97 + .byte 108 + .byte 108 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 55 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 83 + .byte 15 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 56 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 82 + .byte 15 + .byte 109 + .byte 97 + .byte 120 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 57 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 16 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 81 + .byte 14 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 97 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 1 + .byte 0 + .byte 30 + .byte 8 + .byte 0 + .byte 9 + .byte 1 + .byte 0 + .byte 30 + .byte 71 + .byte 0 + .byte 38 + .byte 1 + .byte 0 + .byte 31 + .byte 18 + .byte 0 + .byte 46 + .byte 1 + .byte 0 + .byte 33 + .byte 27 + .byte 0 + .byte 48 + .byte 1 + .byte 0 + .byte 33 + .byte 45 + .byte 0 + .byte 54 + .byte 1 + .byte 0 + .byte 34 + .byte 23 + .byte 0 + .byte 60 + .byte 1 + .byte 0 + .byte 35 + .byte 24 + .byte 0 + .byte 194 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 20 + .byte 0 + .byte 200 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 45 + .byte 0 + .byte 206 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 70 + .byte 0 + .byte 214 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 15 + .byte 0 + .byte 223 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 17 + .byte 0 + .byte 227 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 9 + .byte 0 + .byte 231 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 17 + .byte 0 + .byte 235 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 9 + .byte 0 + .byte 239 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 17 + .byte 0 + .byte 243 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 9 + .byte 0 + .byte 247 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 32 + .byte 0 + .byte 254 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 24 + .byte 0 + .byte 128 + .byte 1 + .byte 1 + .byte 0 + .byte 39 + .byte 5 + .byte 0 + .byte 136 + .byte 1 + .byte 1 + .byte 0 + .byte 46 + .byte 15 + .byte 0 + .byte 163 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 43 + .byte 0 + .byte 165 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 19 + .byte 0 + .byte 167 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 9 + .byte 0 + .byte 175 + .byte 1 + .byte 1 + .byte 0 + .byte 48 + .byte 25 + .byte 0 + .byte 181 + .byte 1 + .byte 1 + .byte 0 + .byte 49 + .byte 25 + .byte 0 + .byte 188 + .byte 1 + .byte 1 + .byte 0 + .byte 50 + .byte 25 + .byte 0 + .byte 195 + .byte 1 + .byte 1 + .byte 0 + .byte 51 + .byte 25 + .byte 0 + .byte 200 + .byte 1 + .byte 1 + .byte 0 + .byte 52 + .byte 22 + .byte 0 + .byte 204 + .byte 1 + .byte 1 + .byte 0 + .byte 53 + .byte 22 + .byte 0 + .byte 208 + .byte 1 + .byte 1 + .byte 0 + .byte 54 + .byte 22 + .byte 0 + .byte 214 + .byte 1 + .byte 1 + .byte 0 + .byte 58 + .byte 19 + .byte 0 + .byte 226 + .byte 1 + .byte 1 + .byte 0 + .byte 59 + .byte 23 + .byte 0 + .byte 251 + .byte 1 + .byte 1 + .byte 0 + .byte 60 + .byte 25 + .byte 0 + .byte 131 + .byte 2 + .byte 1 + .byte 0 + .byte 61 + .byte 40 + .byte 0 + .byte 140 + .byte 2 + .byte 1 + .byte 0 + .byte 62 + .byte 40 + .byte 0 + .byte 149 + .byte 2 + .byte 1 + .byte 0 + .byte 63 + .byte 40 + .byte 0 + .byte 158 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 39 + .byte 0 + .byte 162 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 53 + .byte 0 + .byte 166 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 67 + .byte 0 + .byte 185 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 36 + .byte 0 + .byte 187 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 42 + .byte 0 + .byte 195 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 42 + .byte 0 + .byte 197 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 48 + .byte 0 + .byte 199 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 54 + .byte 0 + .byte 205 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 38 + .byte 0 + .byte 207 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 45 + .byte 0 + .byte 211 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 58 + .byte 0 + .byte 213 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 65 + .byte 0 + .byte 215 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 71 + .byte 0 + .byte 221 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 35 + .byte 0 + .byte 223 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 21 + .byte 0 + .byte 229 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 35 + .byte 0 + .byte 231 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 21 + .byte 0 + .byte 237 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 35 + .byte 0 + .byte 239 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 21 + .byte 0 + .byte 247 + .byte 2 + .byte 1 + .byte 0 + .byte 66 + .byte 26 + .byte 0 + .byte 249 + .byte 2 + .byte 1 + .byte 0 + .byte 66 + .byte 17 + .byte 0 + .byte 254 + .byte 2 + .byte 1 + .byte 0 + .byte 59 + .byte 43 + .byte 0 + .byte 133 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 32 + .byte 0 + .byte 135 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 13 + .byte 0 + .byte 140 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 50 + .byte 0 + .byte 147 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 28 + .byte 0 + .byte 149 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 9 + .byte 0 + .byte 158 + .byte 3 + .byte 1 + .byte 0 + .byte 77 + .byte 9 + .byte 0 + .byte 166 + .byte 3 + .byte 1 + .byte 0 + .byte 78 + .byte 9 + .byte 0 + .byte 174 + .byte 3 + .byte 1 + .byte 0 + .byte 79 + .byte 9 + .byte 0 + .byte 178 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 32 + .byte 0 + .byte 185 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 24 + .byte 0 + .byte 187 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 5 + .byte 0 + .byte 192 + .byte 3 + .byte 1 + .byte 0 + .byte 82 + .byte 12 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 203 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 99 + .byte 99 + .byte 14 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 3 + .byte 1 + .byte 63 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 115 + .byte 115 + .byte 27 + .byte 47 + .byte 117 + .byte 115 + .byte 114 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 47 + .byte 115 + .byte 116 + .byte 100 + .byte 99 + .byte 45 + .byte 112 + .byte 114 + .byte 101 + .byte 100 + .byte 101 + .byte 102 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 3 + .byte 1 + .byte 4 + .byte 87 + .byte 128 + .byte 2 + .byte 0 + .byte 1 + .byte 23 + .byte 0 + .byte 115 + .byte 95 + .byte 31 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 108 + .byte 105 + .byte 107 + .byte 119 + .byte 105 + .byte 100 + .byte 45 + .byte 109 + .byte 97 + .byte 114 + .byte 107 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 4 + .byte 1 + .byte 5 + .byte 131 + .byte 2 + .byte 160 + .byte 2 + .byte 0 + .byte 1 + .byte 25 + .byte 0 + .byte 115 + .byte 95 + .byte 24 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 116 + .byte 105 + .byte 109 + .byte 105 + .byte 110 + .byte 103 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 5 + .byte 1 + .byte 8 + .byte 162 + .byte 2 + .byte 178 + .byte 3 + .byte 105 + .byte 1 + .byte 26 + .byte 0 + .byte 115 + .byte 95 + .byte 26 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 6 + .byte 6 + .byte 5 + .byte 0 + .byte 185 + .byte 2 + .byte 161 + .byte 3 + .byte 54 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 7 + .byte 7 + .byte 6 + .byte 0 + .byte 208 + .byte 2 + .byte 133 + .byte 3 + .byte 0 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 27 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 8 + .byte 1 + .byte 0 + .byte 181 + .byte 3 + .byte 231 + .byte 3 + .byte 0 + .byte 1 + .byte 28 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #30.71 + pushq %rbp #30.71 + .cfi_def_cfa_offset 16 + movq %rsp, %rbp #30.71 + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-32, %rsp #30.71 + pushq %r14 #30.71 + pushq %r15 #30.71 + pushq %rbx #30.71 + subq $456, %rsp #30.71 + movq %rdx, %r8 #30.71 + vmovsd 72(%rdi), %xmm0 #33.27 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + movl 4(%rsi), %ebx #31.18 + movq 64(%rsi), %r15 #36.20 + movq 72(%rsi), %r14 #36.45 + movq 80(%rsi), %rdx #36.70 + vmulsd %xmm0, %xmm0, %xmm4 #33.45 + vmovsd 8(%rdi), %xmm3 #34.23 + vmovsd (%rdi), %xmm0 #35.24 + testl %ebx, %ebx #39.24 + jle ..B1.38 # Prob 50% #39.24 + # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + xorl %ecx, %ecx #39.5 + movl %ebx, %r9d #39.5 + xorl %eax, %eax #39.5 + movl $1, %r10d #39.5 + xorl %edi, %edi #40.17 + shrl $1, %r9d #39.5 + je ..B1.6 # Prob 9% #39.5 + # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] + incq %rcx #39.5 + lea (%rax,%r15), %r10 #40.9 + movq %rdi, (%r10) #40.9 + movq %rdi, (%rax,%r14) #41.9 + movq %rdi, (%rax,%rdx) #42.9 + movq %rdi, 8(%r10) #40.9 + movq %rdi, 8(%rax,%r14) #41.9 + movq %rdi, 8(%rax,%rdx) #42.9 + addq $16, %rax #39.5 + cmpq %r9, %rcx #39.5 + jb ..B1.4 # Prob 63% #39.5 + # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rcx,%rcx), %r10d #40.9 + # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r10), %eax #39.5 + cmpl %ebx, %eax #39.5 + jae ..B1.8 # Prob 9% #39.5 + # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r10d, %r10 #39.5 + movq %rdi, -8(%r15,%r10,8) #40.9 + movq %rdi, -8(%r14,%r10,8) #41.9 + movq %rdi, -8(%rdx,%r10,8) #42.9 + # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 + xorl %eax, %eax #46.15 + vbroadcastsd %xmm4, %ymm7 #33.45 + vbroadcastsd %xmm6, %ymm8 #69.45 + vbroadcastsd %xmm3, %ymm2 #34.23 + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 + vmovupd %ymm7, 96(%rsp) #51.25[spill] + vmovupd %ymm2, 352(%rsp) #51.25[spill] + vmovupd %ymm8, 320(%rsp) #51.25[spill] + movslq 16(%r8), %rcx #47.43 + xorl %r11d, %r11d #46.5 + movq 8(%r8), %r10 #47.19 + movq 24(%r8), %r9 #48.25 + movslq %ebx, %rbx #46.5 + shlq $2, %rcx #47.9 + movq 16(%rsi), %r8 #49.25 + movq 24(%rsi), %rdi #50.25 + movq 32(%rsi), %rsi #51.25 + movq %rcx, 16(%rsp) #51.25[spill] + movq %rbx, 24(%rsp) #51.25[spill] + movq %r9, 32(%rsp) #51.25[spill] + movq %r10, 40(%rsp) #51.25[spill] + movq %r15, 72(%rsp) #51.25[spill] + movq %r12, (%rsp) #51.25[spill] + movq %r13, 8(%rsp) #51.25[spill] + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 +..B1.9: # Preds ..B1.35 ..B1.8 + # Execution count [5.00e+00] + imulq 16(%rsp), %rax #47.43[spill] + addq 40(%rsp), %rax #47.9[spill] + vxorpd %xmm9, %xmm9, %xmm9 #52.22 + movq 32(%rsp), %r12 #48.25[spill] + movq %rax, %rcx #59.13 + vmovsd (%rdi,%r11,8), %xmm10 #50.25 + andq $31, %rcx #59.13 + vmovsd (%r8,%r11,8), %xmm1 #49.25 + movl %ecx, %r15d #59.13 + vmovsd (%rsi,%r11,8), %xmm7 #51.25 + negl %r15d #59.13 + vbroadcastsd %xmm10, %ymm5 #50.25 + movl %ecx, %r10d #59.13 + vbroadcastsd %xmm1, %ymm11 #49.25 + vmovapd %xmm9, %xmm8 #53.22 + vbroadcastsd %xmm7, %ymm15 #51.25 + vmovapd %xmm8, %xmm2 #54.22 + vmovupd %ymm5, 160(%rsp) #51.25[spill] + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 + vmovupd %ymm15, 192(%rsp) #51.25[spill] + vmovupd %ymm11, 128(%rsp) #51.25[spill] + movslq (%r12,%r11,4), %r12 #48.25 + movl %r12d, %ebx #59.13 + vxorpd %ymm14, %ymm14, %ymm14 #52.22 + movl %ebx, %r9d #59.13 + vmovdqa %ymm14, %ymm13 #53.22 + andl $-4, %r9d #59.13 + vmovdqa %ymm13, %ymm12 #54.22 + addl $32, %r15d #59.13 + movslq %r9d, %r9 #59.13 + xorl %r13d, %r13d #58.9 + shrl $2, %r15d #59.13 + andl $3, %r10d #59.13 + vmovupd %ymm12, 288(%rsp) #51.25[spill] + vmovupd %ymm13, 256(%rsp) #51.25[spill] + vmovupd %ymm14, 224(%rsp) #51.25[spill] + movq %r11, 48(%rsp) #51.25[spill] + movq %rdx, 56(%rsp) #51.25[spill] + movq %r14, 64(%rsp) #51.25[spill] + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.10: # Preds ..B1.34 ..B1.9 + # Execution count [5.00e+03] + testq %r12, %r12 #59.32 + jle ..B1.34 # Prob 50% #59.32 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+03] + cmpq $4, %r12 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+03] + cmpq $600, %r12 #59.13 + jl ..B1.41 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.13: # Preds ..B1.12 + # Execution count [4.50e+03] + movl %ecx, %r11d #59.13 + testl %ecx, %ecx #59.13 + je ..B1.16 # Prob 50% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.14: # Preds ..B1.13 + # Execution count [4.50e+03] + testl %r10d, %r10d #59.13 + jne ..B1.39 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.15: # Preds ..B1.14 + # Execution count [2.25e+03] + movl %r15d, %r11d #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.16: # Preds ..B1.15 ..B1.13 + # Execution count [4.50e+03] + movl %r11d, %edx #59.13 + lea 4(%rdx), %r14 #59.13 + cmpq %r14, %r12 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rdx rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.17: # Preds ..B1.16 + # Execution count [5.00e+03] + movl %ebx, %r14d #59.13 + subl %r11d, %r14d #59.13 + andl $3, %r14d #59.13 + negl %r14d #59.13 + addl %ebx, %r14d #59.13 + movslq %r14d, %r14 #59.13 + testl %r11d, %r11d #59.13 + movl $0, %r11d #59.13 + jbe ..B1.23 # Prob 10% #59.13 + # LOE rax rdx rsi rdi r8 r9 r11 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.18: # Preds ..B1.17 + # Execution count [4.50e+03] + movq %r12, 80(%rsp) #[spill] + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.19: # Preds ..B1.21 ..B1.18 + # Execution count [2.50e+04] + movslq (%rax,%r11,4), %r12 #60.25 + vsubsd (%rdi,%r12,8), %xmm10, %xmm13 #62.40 + vsubsd (%r8,%r12,8), %xmm1, %xmm12 #61.40 + vsubsd (%rsi,%r12,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.21 # Prob 50% #66.26 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.20: # Preds ..B1.19 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.21: # Preds ..B1.20 ..B1.19 + # Execution count [2.50e+04] + incq %r11 #59.13 + cmpq %rdx, %r11 #59.13 + jb ..B1.19 # Prob 82% #59.13 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.22: # Preds ..B1.21 + # Execution count [4.50e+03] + movq 80(%rsp), %r12 #[spill] + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.23: # Preds ..B1.22 ..B1.17 ..B1.41 + # Execution count [4.50e+03] + vmovsd %xmm9, 392(%rsp) #61.40[spill] + vmovsd %xmm10, 408(%rsp) #61.40[spill] + vmovsd %xmm1, 416(%rsp) #61.40[spill] + vmovsd %xmm6, 424(%rsp) #61.40[spill] + vmovsd %xmm3, 432(%rsp) #61.40[spill] + vmovsd %xmm4, 440(%rsp) #61.40[spill] + vmovsd %xmm2, 88(%rsp) #61.40[spill] + vmovsd %xmm8, 384(%rsp) #61.40[spill] + vmovsd %xmm7, 400(%rsp) #61.40[spill] + vmovupd 192(%rsp), %ymm6 #61.40[spill] + vmovupd 160(%rsp), %ymm4 #61.40[spill] + vmovupd 128(%rsp), %ymm5 #61.40[spill] + vmovupd 288(%rsp), %ymm3 #61.40[spill] + vmovupd 256(%rsp), %ymm1 #61.40[spill] + vmovupd 224(%rsp), %ymm12 #61.40[spill] + vmovupd 96(%rsp), %ymm11 #61.40[spill] + vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #61.40 + vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #61.40 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.24: # Preds ..B1.26 ..B1.23 + # Execution count [2.50e+04] + vmovups (%rax,%rdx,4), %xmm2 #60.25 + vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 + vxorpd %ymm8, %ymm8, %ymm8 #61.40 + vmovdqa %ymm13, %ymm0 #61.40 + vxorpd %ymm14, %ymm14, %ymm14 #62.40 + vmovdqa %ymm13, %ymm7 #62.40 + vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 + vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 + vsubpd %ymm8, %ymm5, %ymm0 #61.40 + vsubpd %ymm14, %ymm4, %ymm8 #62.40 + vxorpd %ymm7, %ymm7, %ymm7 #63.40 + vmovdqa %ymm13, %ymm15 #63.40 + vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 + vmulpd %ymm8, %ymm8, %ymm14 #64.53 + vsubpd %ymm7, %ymm6, %ymm2 #63.40 + vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 + vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 + vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 + vptest %ymm13, %ymm7 #66.26 + je ..B1.26 # Prob 50% #66.26 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 +..B1.25: # Preds ..B1.24 + # Execution count [1.25e+04] + vdivpd %ymm14, %ymm10, %ymm13 #67.42 + vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] + vmulpd %ymm14, %ymm13, %ymm14 #68.48 + vmulpd %ymm14, %ymm13, %ymm15 #68.54 + vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 + vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] + vmulpd %ymm13, %ymm15, %ymm15 #69.65 + vmulpd %ymm14, %ymm15, %ymm13 #69.71 + vmulpd %ymm13, %ymm0, %ymm0 #70.35 + vmulpd %ymm13, %ymm8, %ymm8 #71.35 + vandpd %ymm0, %ymm7, %ymm0 #70.35 + vaddpd %ymm0, %ymm12, %ymm12 #70.21 + vmulpd %ymm13, %ymm2, %ymm0 #72.35 + vandpd %ymm8, %ymm7, %ymm2 #71.35 + vandpd %ymm0, %ymm7, %ymm7 #72.35 + vaddpd %ymm2, %ymm1, %ymm1 #71.21 + vaddpd %ymm7, %ymm3, %ymm3 #72.21 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.26: # Preds ..B1.25 ..B1.24 + # Execution count [2.50e+04] + addq $4, %rdx #59.13 + cmpq %r14, %rdx #59.13 + jb ..B1.24 # Prob 82% #59.13 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.27: # Preds ..B1.26 + # Execution count [4.50e+03] + vmovupd %ymm3, 288(%rsp) #[spill] + vmovupd %ymm1, 256(%rsp) #[spill] + vmovsd 88(%rsp), %xmm2 #[spill] + vmovsd 384(%rsp), %xmm8 #[spill] + vmovsd 392(%rsp), %xmm9 #[spill] + vmovsd 400(%rsp), %xmm7 #[spill] + vmovsd 408(%rsp), %xmm10 #[spill] + vmovsd 416(%rsp), %xmm1 #[spill] + vmovsd 424(%rsp), %xmm6 #[spill] + vmovsd 432(%rsp), %xmm3 #[spill] + vmovsd 440(%rsp), %xmm4 #[spill] + vmovupd %ymm12, 224(%rsp) #[spill] + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.28: # Preds ..B1.27 ..B1.39 + # Execution count [5.00e+03] + cmpq %r12, %r14 #59.13 + jae ..B1.34 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.30: # Preds ..B1.28 ..B1.32 + # Execution count [2.50e+04] + movslq (%rax,%r14,4), %rdx #60.25 + vsubsd (%rdi,%rdx,8), %xmm10, %xmm13 #62.40 + vsubsd (%r8,%rdx,8), %xmm1, %xmm12 #61.40 + vsubsd (%rsi,%rdx,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.32 # Prob 50% #66.26 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.31: # Preds ..B1.30 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.32: # Preds ..B1.31 ..B1.30 + # Execution count [2.50e+04] + incq %r14 #59.13 + cmpq %r12, %r14 #59.13 + jb ..B1.30 # Prob 82% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 + # Execution count [5.00e+03] + .byte 15 #58.9 + .byte 31 #58.9 + .byte 64 #58.9 + .byte 0 #58.9 + incl %r13d #58.9 + cmpl $1000, %r13d #58.9 + jb ..B1.10 # Prob 99% #58.9 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.35: # Preds ..B1.34 + # Execution count [5.00e+00] + vmovupd 288(%rsp), %ymm12 #[spill] + vmovupd 256(%rsp), %ymm13 #[spill] + vmovupd 224(%rsp), %ymm14 #[spill] + movq 72(%rsp), %rax #77.9[spill] + movq 48(%rsp), %r11 #[spill] + movq 64(%rsp), %r14 #[spill] + movq 56(%rsp), %rdx #[spill] + vextractf128 $1, %ymm12, %xmm1 #54.22 + vextractf128 $1, %ymm13, %xmm11 #53.22 + vaddpd %xmm1, %xmm12, %xmm5 #54.22 + vaddpd %xmm11, %xmm13, %xmm15 #53.22 + vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 + vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 + vaddsd %xmm7, %xmm5, %xmm10 #54.22 + vaddsd %xmm1, %xmm15, %xmm5 #53.22 + vaddsd %xmm2, %xmm10, %xmm2 #54.22 + vaddsd %xmm8, %xmm5, %xmm5 #53.22 + vextractf128 $1, %ymm14, %xmm8 #52.22 + vaddpd %xmm8, %xmm14, %xmm8 #52.22 + vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 + vaddsd %xmm14, %xmm8, %xmm1 #52.22 + vaddsd %xmm9, %xmm1, %xmm9 #52.22 + vaddsd (%rax,%r11,8), %xmm9, %xmm1 #77.9 + vmovsd %xmm1, (%rax,%r11,8) #77.9 + movslq %r11d, %rax #46.32 + vaddsd (%r14,%r11,8), %xmm5, %xmm7 #78.9 + vmovsd %xmm7, (%r14,%r11,8) #78.9 + incq %rax #46.32 + vaddsd (%rdx,%r11,8), %xmm2, %xmm2 #79.9 + vmovsd %xmm2, (%rdx,%r11,8) #79.9 + incq %r11 #46.5 + cmpq 24(%rsp), %r11 #46.5[spill] + jb ..B1.9 # Prob 82% #46.5 + # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 +..B1.36: # Preds ..B1.35 + # Execution count [9.00e-01] + movq (%rsp), %r12 #[spill] + .cfi_restore 12 + movq 8(%rsp), %r13 #[spill] + .cfi_restore 13 + # LOE r12 r13 +..B1.38: # Preds ..B1.1 ..B1.36 + # Execution count [1.00e+00] + vzeroupper #82.12 + vxorpd %xmm0, %xmm0, %xmm0 #82.12 + addq $456, %rsp #82.12 + .cfi_restore 3 + popq %rbx #82.12 + .cfi_restore 15 + popq %r15 #82.12 + .cfi_restore 14 + popq %r14 #82.12 + movq %rbp, %rsp #82.12 + popq %rbp #82.12 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret #82.12 + .cfi_def_cfa 6, 16 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_offset 6, -16 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + # LOE +..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 + # Execution count [4.50e+02]: Infreq + xorl %r14d, %r14d #59.13 + jmp ..B1.28 # Prob 100% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.41: # Preds ..B1.12 + # Execution count [4.50e+02]: Infreq + movq %r9, %r14 #59.13 + xorl %edx, %edx #59.13 + jmp ..B1.23 # Prob 100% #59.13 + .align 16,0x90 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 32 + .align 32 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,32 + .align 32 +.L_2il0floatpacket.3: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,32 + .align 8 +.L_2il0floatpacket.0: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,8 + .align 8 +.L_2il0floatpacket.1: + .long 0x00000000,0x3fe00000 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,8 + .align 8 +.L_2il0floatpacket.4: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/asm/avx2/force_soa_lt600_markers.s b/asm/avx2/force_soa_lt600_markers.s new file mode 100644 index 0000000..b694716 --- /dev/null +++ b/asm/avx2/force_soa_lt600_markers.s @@ -0,0 +1,12571 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -fast -"; +# mark_description "xCORE-AVX2 -o ICC/force.s"; + .file "force.c" + .section __ildata, "" + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 236 + .byte 213 + .byte 42 + .byte 66 + .byte 178 + .byte 52 + .byte 67 + .byte 28 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 207 + .byte 30 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 83 + .byte 16 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 250 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 192 + .byte 1 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 30 + .byte 0 + .byte 0 + .byte 80 + .byte 0 + .byte 0 + .byte 0 + .byte 82 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 157 + .byte 3 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 0 + .byte 0 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 54 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 29 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 18 + .byte 0 + .byte 1 + .byte 1 + .byte 52 + .byte 9 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 2 + .byte 186 + .byte 1 + .byte 186 + .byte 1 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 3 + .byte 189 + .byte 1 + .byte 194 + .byte 0 + .byte 128 + .byte 1 + .byte 2 + .byte 4 + .byte 0 + .byte 2 + .byte 0 + .byte 2 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 4 + .byte 190 + .byte 1 + .byte 190 + .byte 1 + .byte 128 + .byte 1 + .byte 1 + .byte 3 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 5 + .byte 18 + .byte 61 + .byte 136 + .byte 1 + .byte 2 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 6 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 6 + .byte 187 + .byte 1 + .byte 187 + .byte 1 + .byte 0 + .byte 1 + .byte 5 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 7 + .byte 195 + .byte 1 + .byte 27 + .byte 187 + .byte 3 + .byte 2 + .byte 17 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 8 + .byte 193 + .byte 1 + .byte 55 + .byte 149 + .byte 3 + .byte 2 + .byte 15 + .byte 0 + .byte 7 + .byte 0 + .byte 2 + .byte 9 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 9 + .byte 188 + .byte 1 + .byte 188 + .byte 1 + .byte 0 + .byte 1 + .byte 8 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 10 + .byte 191 + .byte 1 + .byte 40 + .byte 135 + .byte 3 + .byte 2 + .byte 13 + .byte 0 + .byte 9 + .byte 0 + .byte 2 + .byte 11 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 1 + .byte 1 + .byte 11 + .byte 34 + .byte 39 + .byte 187 + .byte 2 + .byte 1 + .byte 10 + .byte 0 + .byte 1 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 12 + .byte 41 + .byte 206 + .byte 0 + .byte 254 + .byte 2 + .byte 2 + .byte 11 + .byte 0 + .byte 10 + .byte 0 + .byte 2 + .byte 13 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 13 + .byte 192 + .byte 1 + .byte 192 + .byte 1 + .byte 135 + .byte 3 + .byte 1 + .byte 12 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 14 + .byte 43 + .byte 202 + .byte 0 + .byte 140 + .byte 3 + .byte 2 + .byte 12 + .byte 0 + .byte 8 + .byte 0 + .byte 2 + .byte 15 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 16 + .byte 1 + .byte 128 + .byte 152 + .byte 179 + .byte 238 + .byte 3 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 15 + .byte 194 + .byte 1 + .byte 194 + .byte 1 + .byte 149 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 16 + .byte 185 + .byte 1 + .byte 198 + .byte 0 + .byte 158 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 2 + .byte 17 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 17 + .byte 196 + .byte 1 + .byte 196 + .byte 1 + .byte 187 + .byte 3 + .byte 1 + .byte 16 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 18 + .byte 50 + .byte 50 + .byte 192 + .byte 3 + .byte 2 + .byte 16 + .byte 0 + .byte 5 + .byte 0 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 1 + .byte 76 + .byte 9 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 2 + .byte 0 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 11 + .byte 3 + .byte 12 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 2 + .byte 72 + .byte 38 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 180 + .byte 7 + .byte 18 + .byte 65 + .byte 67 + .byte 4 + .byte 72 + .byte 48 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 5 + .byte 2 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 182 + .byte 7 + .byte 35 + .byte 65 + .byte 67 + .byte 5 + .byte 72 + .byte 54 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 6 + .byte 4 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 185 + .byte 7 + .byte 41 + .byte 65 + .byte 67 + .byte 6 + .byte 72 + .byte 60 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 7 + .byte 5 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 187 + .byte 7 + .byte 48 + .byte 65 + .byte 67 + .byte 7 + .byte 72 + .byte 194 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 8 + .byte 6 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 189 + .byte 7 + .byte 55 + .byte 65 + .byte 67 + .byte 8 + .byte 72 + .byte 200 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 9 + .byte 7 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 191 + .byte 7 + .byte 62 + .byte 65 + .byte 67 + .byte 9 + .byte 72 + .byte 206 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 12 + .byte 8 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 193 + .byte 7 + .byte 197 + .byte 0 + .byte 65 + .byte 67 + .byte 12 + .byte 72 + .byte 214 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 52 + .byte 9 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 195 + .byte 7 + .byte 204 + .byte 0 + .byte 65 + .byte 67 + .byte 13 + .byte 72 + .byte 227 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 14 + .byte 189 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 214 + .byte 0 + .byte 205 + .byte 0 + .byte 65 + .byte 67 + .byte 14 + .byte 72 + .byte 235 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 15 + .byte 13 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 224 + .byte 0 + .byte 215 + .byte 0 + .byte 65 + .byte 67 + .byte 15 + .byte 72 + .byte 243 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 16 + .byte 14 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 234 + .byte 0 + .byte 225 + .byte 0 + .byte 65 + .byte 67 + .byte 16 + .byte 72 + .byte 247 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 194 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 203 + .byte 7 + .byte 238 + .byte 0 + .byte 65 + .byte 67 + .byte 18 + .byte 72 + .byte 136 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 61 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 0 + .byte 207 + .byte 7 + .byte 243 + .byte 0 + .byte 65 + .byte 67 + .byte 19 + .byte 72 + .byte 167 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 20 + .byte 195 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 209 + .byte 7 + .byte 133 + .byte 1 + .byte 65 + .byte 67 + .byte 20 + .byte 72 + .byte 175 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 21 + .byte 19 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 213 + .byte 7 + .byte 149 + .byte 1 + .byte 65 + .byte 67 + .byte 21 + .byte 72 + .byte 181 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 22 + .byte 20 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 216 + .byte 7 + .byte 164 + .byte 1 + .byte 65 + .byte 67 + .byte 22 + .byte 72 + .byte 188 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 23 + .byte 21 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 219 + .byte 7 + .byte 179 + .byte 1 + .byte 65 + .byte 67 + .byte 23 + .byte 72 + .byte 195 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 24 + .byte 22 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 222 + .byte 7 + .byte 194 + .byte 1 + .byte 65 + .byte 67 + .byte 24 + .byte 72 + .byte 200 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 25 + .byte 23 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 225 + .byte 7 + .byte 196 + .byte 1 + .byte 65 + .byte 67 + .byte 25 + .byte 72 + .byte 204 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 26 + .byte 24 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 226 + .byte 7 + .byte 198 + .byte 1 + .byte 65 + .byte 67 + .byte 26 + .byte 72 + .byte 208 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 27 + .byte 25 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 227 + .byte 7 + .byte 200 + .byte 1 + .byte 65 + .byte 67 + .byte 27 + .byte 72 + .byte 214 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 193 + .byte 1 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 228 + .byte 7 + .byte 202 + .byte 1 + .byte 65 + .byte 67 + .byte 28 + .byte 72 + .byte 226 + .byte 1 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 55 + .byte 193 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 229 + .byte 7 + .byte 204 + .byte 1 + .byte 65 + .byte 67 + .byte 29 + .byte 72 + .byte 251 + .byte 1 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 30 + .byte 191 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 231 + .byte 7 + .byte 214 + .byte 1 + .byte 65 + .byte 67 + .byte 30 + .byte 72 + .byte 131 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 31 + .byte 29 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 234 + .byte 7 + .byte 231 + .byte 1 + .byte 65 + .byte 67 + .byte 31 + .byte 72 + .byte 140 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 32 + .byte 30 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 238 + .byte 7 + .byte 248 + .byte 1 + .byte 65 + .byte 67 + .byte 32 + .byte 72 + .byte 149 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 33 + .byte 31 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 242 + .byte 7 + .byte 137 + .byte 2 + .byte 65 + .byte 67 + .byte 33 + .byte 72 + .byte 166 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 40 + .byte 32 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 246 + .byte 7 + .byte 149 + .byte 2 + .byte 65 + .byte 67 + .byte 34 + .byte 72 + .byte 187 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 35 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 255 + .byte 7 + .byte 153 + .byte 2 + .byte 65 + .byte 67 + .byte 35 + .byte 72 + .byte 199 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 36 + .byte 34 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 129 + .byte 8 + .byte 161 + .byte 2 + .byte 65 + .byte 67 + .byte 36 + .byte 72 + .byte 215 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 37 + .byte 35 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 134 + .byte 8 + .byte 173 + .byte 2 + .byte 65 + .byte 67 + .byte 37 + .byte 72 + .byte 223 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 38 + .byte 36 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 139 + .byte 8 + .byte 179 + .byte 2 + .byte 65 + .byte 67 + .byte 38 + .byte 72 + .byte 231 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 39 + .byte 37 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 143 + .byte 8 + .byte 185 + .byte 2 + .byte 65 + .byte 67 + .byte 39 + .byte 72 + .byte 239 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 0 + .byte 38 + .byte 0 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 147 + .byte 8 + .byte 191 + .byte 2 + .byte 65 + .byte 67 + .byte 40 + .byte 78 + .byte 249 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 41 + .byte 33 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 194 + .byte 2 + .byte 0 + .byte 34 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 41 + .byte 72 + .byte 254 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 206 + .byte 0 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 151 + .byte 8 + .byte 198 + .byte 2 + .byte 65 + .byte 67 + .byte 43 + .byte 72 + .byte 140 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 202 + .byte 0 + .byte 55 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 155 + .byte 8 + .byte 205 + .byte 2 + .byte 65 + .byte 67 + .byte 45 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 46 + .byte 183 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 218 + .byte 2 + .byte 228 + .byte 2 + .byte 65 + .byte 67 + .byte 46 + .byte 72 + .byte 166 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 47 + .byte 45 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 238 + .byte 2 + .byte 248 + .byte 2 + .byte 65 + .byte 67 + .byte 47 + .byte 72 + .byte 174 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 48 + .byte 46 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 130 + .byte 3 + .byte 140 + .byte 3 + .byte 65 + .byte 67 + .byte 48 + .byte 72 + .byte 178 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 198 + .byte 0 + .byte 47 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 179 + .byte 8 + .byte 144 + .byte 3 + .byte 65 + .byte 67 + .byte 50 + .byte 77 + .byte 192 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 0 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 150 + .byte 3 + .byte 67 + .byte 52 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 18 + .byte 12 + .byte 2 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 241 + .byte 0 + .byte 0 + .byte 186 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 55 + .byte 78 + .byte 135 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 43 + .byte 28 + .byte 2 + .byte 1 + .byte 0 + .byte 8 + .byte 0 + .byte 201 + .byte 2 + .byte 0 + .byte 188 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 61 + .byte 78 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 50 + .byte 18 + .byte 2 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 147 + .byte 3 + .byte 0 + .byte 187 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 194 + .byte 0 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 16 + .byte 2 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 151 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 198 + .byte 0 + .byte 78 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 48 + .byte 2 + .byte 1 + .byte 0 + .byte 16 + .byte 0 + .byte 154 + .byte 3 + .byte 0 + .byte 196 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 202 + .byte 0 + .byte 78 + .byte 149 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 185 + .byte 1 + .byte 43 + .byte 2 + .byte 1 + .byte 0 + .byte 14 + .byte 0 + .byte 157 + .byte 3 + .byte 0 + .byte 194 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 206 + .byte 0 + .byte 78 + .byte 135 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 0 + .byte 41 + .byte 2 + .byte 1 + .byte 0 + .byte 12 + .byte 0 + .byte 160 + .byte 3 + .byte 0 + .byte 192 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 183 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 45 + .byte 184 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 162 + .byte 8 + .byte 163 + .byte 8 + .byte 65 + .byte 67 + .byte 184 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 183 + .byte 1 + .byte 185 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 160 + .byte 8 + .byte 161 + .byte 8 + .byte 65 + .byte 67 + .byte 185 + .byte 1 + .byte 72 + .byte 158 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 184 + .byte 1 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 158 + .byte 8 + .byte 159 + .byte 8 + .byte 65 + .byte 67 + .byte 186 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 189 + .byte 1 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 187 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 195 + .byte 1 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte 0 + .byte 188 + .byte 1 + .byte 93 + .byte 0 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 191 + .byte 1 + .byte 55 + .byte 0 + .byte 0 + .byte 0 + .byte 9 + .byte 0 + .byte 189 + .byte 1 + .byte 93 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 13 + .byte 186 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 80 + .byte 128 + .byte 1 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 194 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 189 + .byte 1 + .byte 191 + .byte 1 + .byte 93 + .byte 135 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 29 + .byte 188 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 192 + .byte 1 + .byte 80 + .byte 135 + .byte 3 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 0 + .byte 206 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 13 + .byte 0 + .byte 191 + .byte 1 + .byte 193 + .byte 1 + .byte 93 + .byte 149 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 28 + .byte 27 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 194 + .byte 1 + .byte 80 + .byte 149 + .byte 3 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 0 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 15 + .byte 0 + .byte 193 + .byte 1 + .byte 195 + .byte 1 + .byte 93 + .byte 187 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 19 + .byte 187 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 196 + .byte 1 + .byte 80 + .byte 187 + .byte 3 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 198 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 195 + .byte 1 + .byte 1 + .byte 1 + .byte 7 + .byte 1 + .byte 2 + .byte 1 + .byte 7 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 11 + .byte 7 + .byte 6 + .byte 1 + .byte 0 + .byte 2 + .byte 80 + .byte 4 + .byte 1 + .byte 7 + .byte 2 + .byte 5 + .byte 1 + .byte 7 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 11 + .byte 7 + .byte 9 + .byte 4 + .byte 0 + .byte 5 + .byte 80 + .byte 7 + .byte 1 + .byte 7 + .byte 3 + .byte 8 + .byte 1 + .byte 7 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 11 + .byte 7 + .byte 0 + .byte 7 + .byte 0 + .byte 8 + .byte 80 + .byte 10 + .byte 1 + .byte 7 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 11 + .byte 7 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 80 + .byte 12 + .byte 0 + .byte 9 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 17 + .byte 0 + .byte 38 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 18 + .byte 8 + .byte 38 + .byte 181 + .byte 7 + .byte 19 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 19 + .byte 1 + .byte 38 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 46 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 27 + .byte 8 + .byte 46 + .byte 183 + .byte 7 + .byte 28 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 28 + .byte 1 + .byte 46 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 48 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 33 + .byte 8 + .byte 48 + .byte 184 + .byte 7 + .byte 34 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 34 + .byte 1 + .byte 48 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 35 + .byte 21 + .byte 48 + .byte 27 + .byte 33 + .byte 12 + .byte 40 + .byte 0 + .byte 54 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 41 + .byte 8 + .byte 54 + .byte 186 + .byte 7 + .byte 42 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 40 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 42 + .byte 1 + .byte 54 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 60 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 48 + .byte 8 + .byte 60 + .byte 188 + .byte 7 + .byte 49 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 49 + .byte 1 + .byte 60 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 194 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 55 + .byte 8 + .byte 194 + .byte 0 + .byte 190 + .byte 7 + .byte 56 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 56 + .byte 1 + .byte 194 + .byte 0 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 200 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 62 + .byte 8 + .byte 200 + .byte 0 + .byte 192 + .byte 7 + .byte 63 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 63 + .byte 1 + .byte 200 + .byte 0 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 206 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 197 + .byte 0 + .byte 8 + .byte 206 + .byte 0 + .byte 194 + .byte 7 + .byte 198 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 198 + .byte 0 + .byte 1 + .byte 206 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 204 + .byte 0 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 205 + .byte 0 + .byte 0 + .byte 223 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 208 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 0 + .byte 15 + .byte 227 + .byte 0 + .byte 198 + .byte 7 + .byte 7 + .byte 6 + .byte 210 + .byte 0 + .byte 22 + .byte 227 + .byte 0 + .byte 209 + .byte 0 + .byte 208 + .byte 0 + .byte 7 + .byte 211 + .byte 0 + .byte 19 + .byte 227 + .byte 0 + .byte 197 + .byte 7 + .byte 210 + .byte 0 + .byte 36 + .byte 212 + .byte 0 + .byte 1 + .byte 227 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 0 + .byte 8 + .byte 227 + .byte 0 + .byte 211 + .byte 0 + .byte 212 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 215 + .byte 0 + .byte 0 + .byte 231 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 218 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 219 + .byte 0 + .byte 15 + .byte 235 + .byte 0 + .byte 200 + .byte 7 + .byte 7 + .byte 6 + .byte 220 + .byte 0 + .byte 22 + .byte 235 + .byte 0 + .byte 219 + .byte 0 + .byte 218 + .byte 0 + .byte 7 + .byte 221 + .byte 0 + .byte 19 + .byte 235 + .byte 0 + .byte 199 + .byte 7 + .byte 220 + .byte 0 + .byte 36 + .byte 222 + .byte 0 + .byte 1 + .byte 235 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 224 + .byte 0 + .byte 8 + .byte 235 + .byte 0 + .byte 221 + .byte 0 + .byte 222 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 225 + .byte 0 + .byte 0 + .byte 239 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 228 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 229 + .byte 0 + .byte 15 + .byte 243 + .byte 0 + .byte 202 + .byte 7 + .byte 7 + .byte 6 + .byte 230 + .byte 0 + .byte 22 + .byte 243 + .byte 0 + .byte 229 + .byte 0 + .byte 228 + .byte 0 + .byte 7 + .byte 231 + .byte 0 + .byte 19 + .byte 243 + .byte 0 + .byte 201 + .byte 7 + .byte 230 + .byte 0 + .byte 36 + .byte 232 + .byte 0 + .byte 1 + .byte 243 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 234 + .byte 0 + .byte 8 + .byte 243 + .byte 0 + .byte 231 + .byte 0 + .byte 232 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 236 + .byte 0 + .byte 0 + .byte 247 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 0 + .byte 19 + .byte 247 + .byte 0 + .byte 204 + .byte 7 + .byte 236 + .byte 0 + .byte 6 + .byte 241 + .byte 0 + .byte 46 + .byte 254 + .byte 0 + .byte 153 + .byte 7 + .byte 196 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 243 + .byte 0 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 248 + .byte 0 + .byte 0 + .byte 163 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 249 + .byte 0 + .byte 8 + .byte 163 + .byte 1 + .byte 212 + .byte 7 + .byte 250 + .byte 0 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 250 + .byte 0 + .byte 1 + .byte 163 + .byte 1 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 0 + .byte 22 + .byte 163 + .byte 1 + .byte 211 + .byte 7 + .byte 249 + .byte 0 + .byte 6 + .byte 255 + .byte 0 + .byte 0 + .byte 165 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 128 + .byte 1 + .byte 8 + .byte 165 + .byte 1 + .byte 210 + .byte 7 + .byte 129 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 129 + .byte 1 + .byte 1 + .byte 165 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 1 + .byte 0 + .byte 165 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 1 + .byte 15 + .byte 165 + .byte 1 + .byte 251 + .byte 0 + .byte 7 + .byte 6 + .byte 132 + .byte 1 + .byte 22 + .byte 165 + .byte 1 + .byte 131 + .byte 1 + .byte 130 + .byte 1 + .byte 7 + .byte 133 + .byte 1 + .byte 19 + .byte 165 + .byte 1 + .byte 128 + .byte 1 + .byte 132 + .byte 1 + .byte 36 + .byte 140 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 141 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 214 + .byte 7 + .byte 142 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 140 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 142 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 143 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 1 + .byte 15 + .byte 175 + .byte 1 + .byte 215 + .byte 7 + .byte 7 + .byte 6 + .byte 145 + .byte 1 + .byte 22 + .byte 175 + .byte 1 + .byte 144 + .byte 1 + .byte 143 + .byte 1 + .byte 7 + .byte 146 + .byte 1 + .byte 19 + .byte 175 + .byte 1 + .byte 141 + .byte 1 + .byte 145 + .byte 1 + .byte 36 + .byte 147 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 146 + .byte 1 + .byte 147 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 155 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 156 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 217 + .byte 7 + .byte 157 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 155 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 157 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 158 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 159 + .byte 1 + .byte 15 + .byte 181 + .byte 1 + .byte 218 + .byte 7 + .byte 7 + .byte 6 + .byte 160 + .byte 1 + .byte 22 + .byte 181 + .byte 1 + .byte 159 + .byte 1 + .byte 158 + .byte 1 + .byte 7 + .byte 161 + .byte 1 + .byte 19 + .byte 181 + .byte 1 + .byte 156 + .byte 1 + .byte 160 + .byte 1 + .byte 36 + .byte 162 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 161 + .byte 1 + .byte 162 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 170 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 171 + .byte 1 + .byte 8 + .byte 188 + .byte 1 + .byte 220 + .byte 7 + .byte 172 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 170 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 172 + .byte 1 + .byte 1 + .byte 188 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 173 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 174 + .byte 1 + .byte 15 + .byte 188 + .byte 1 + .byte 221 + .byte 7 + .byte 7 + .byte 6 + .byte 175 + .byte 1 + .byte 22 + .byte 188 + .byte 1 + .byte 174 + .byte 1 + .byte 173 + .byte 1 + .byte 7 + .byte 176 + .byte 1 + .byte 19 + .byte 188 + .byte 1 + .byte 171 + .byte 1 + .byte 175 + .byte 1 + .byte 36 + .byte 177 + .byte 1 + .byte 1 + .byte 188 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 188 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 179 + .byte 1 + .byte 8 + .byte 188 + .byte 1 + .byte 176 + .byte 1 + .byte 177 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 185 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 186 + .byte 1 + .byte 8 + .byte 195 + .byte 1 + .byte 223 + .byte 7 + .byte 187 + .byte 1 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 185 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 187 + .byte 1 + .byte 1 + .byte 195 + .byte 1 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 188 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 189 + .byte 1 + .byte 15 + .byte 195 + .byte 1 + .byte 224 + .byte 7 + .byte 7 + .byte 6 + .byte 190 + .byte 1 + .byte 22 + .byte 195 + .byte 1 + .byte 189 + .byte 1 + .byte 188 + .byte 1 + .byte 7 + .byte 191 + .byte 1 + .byte 19 + .byte 195 + .byte 1 + .byte 186 + .byte 1 + .byte 190 + .byte 1 + .byte 36 + .byte 192 + .byte 1 + .byte 1 + .byte 195 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 193 + .byte 1 + .byte 0 + .byte 195 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 194 + .byte 1 + .byte 8 + .byte 195 + .byte 1 + .byte 191 + .byte 1 + .byte 192 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 193 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 196 + .byte 1 + .byte 0 + .byte 200 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 1 + .byte 0 + .byte 204 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 200 + .byte 1 + .byte 0 + .byte 208 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 202 + .byte 1 + .byte 0 + .byte 214 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 204 + .byte 1 + .byte 0 + .byte 226 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 208 + .byte 1 + .byte 0 + .byte 251 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 1 + .byte 15 + .byte 251 + .byte 1 + .byte 233 + .byte 7 + .byte 7 + .byte 6 + .byte 210 + .byte 1 + .byte 22 + .byte 251 + .byte 1 + .byte 209 + .byte 1 + .byte 208 + .byte 1 + .byte 7 + .byte 211 + .byte 1 + .byte 19 + .byte 251 + .byte 1 + .byte 232 + .byte 7 + .byte 210 + .byte 1 + .byte 36 + .byte 212 + .byte 1 + .byte 1 + .byte 251 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 1 + .byte 0 + .byte 251 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 1 + .byte 8 + .byte 251 + .byte 1 + .byte 211 + .byte 1 + .byte 212 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 221 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 222 + .byte 1 + .byte 8 + .byte 131 + .byte 2 + .byte 236 + .byte 7 + .byte 223 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 223 + .byte 1 + .byte 1 + .byte 131 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 225 + .byte 1 + .byte 15 + .byte 131 + .byte 2 + .byte 237 + .byte 7 + .byte 7 + .byte 6 + .byte 226 + .byte 1 + .byte 22 + .byte 131 + .byte 2 + .byte 225 + .byte 1 + .byte 224 + .byte 1 + .byte 7 + .byte 227 + .byte 1 + .byte 19 + .byte 131 + .byte 2 + .byte 222 + .byte 1 + .byte 226 + .byte 1 + .byte 36 + .byte 228 + .byte 1 + .byte 1 + .byte 131 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 1 + .byte 0 + .byte 131 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 230 + .byte 1 + .byte 8 + .byte 131 + .byte 2 + .byte 227 + .byte 1 + .byte 228 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 231 + .byte 1 + .byte 20 + .byte 131 + .byte 2 + .byte 235 + .byte 7 + .byte 230 + .byte 1 + .byte 12 + .byte 238 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 239 + .byte 1 + .byte 8 + .byte 140 + .byte 2 + .byte 240 + .byte 7 + .byte 240 + .byte 1 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 240 + .byte 1 + .byte 1 + .byte 140 + .byte 2 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 242 + .byte 1 + .byte 15 + .byte 140 + .byte 2 + .byte 241 + .byte 7 + .byte 7 + .byte 6 + .byte 243 + .byte 1 + .byte 22 + .byte 140 + .byte 2 + .byte 242 + .byte 1 + .byte 241 + .byte 1 + .byte 7 + .byte 244 + .byte 1 + .byte 19 + .byte 140 + .byte 2 + .byte 239 + .byte 1 + .byte 243 + .byte 1 + .byte 36 + .byte 245 + .byte 1 + .byte 1 + .byte 140 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 1 + .byte 0 + .byte 140 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 247 + .byte 1 + .byte 8 + .byte 140 + .byte 2 + .byte 244 + .byte 1 + .byte 245 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 248 + .byte 1 + .byte 20 + .byte 140 + .byte 2 + .byte 239 + .byte 7 + .byte 247 + .byte 1 + .byte 12 + .byte 255 + .byte 1 + .byte 0 + .byte 149 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 128 + .byte 2 + .byte 8 + .byte 149 + .byte 2 + .byte 244 + .byte 7 + .byte 129 + .byte 2 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 129 + .byte 2 + .byte 1 + .byte 149 + .byte 2 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 2 + .byte 0 + .byte 149 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 2 + .byte 15 + .byte 149 + .byte 2 + .byte 245 + .byte 7 + .byte 7 + .byte 6 + .byte 132 + .byte 2 + .byte 22 + .byte 149 + .byte 2 + .byte 131 + .byte 2 + .byte 130 + .byte 2 + .byte 7 + .byte 133 + .byte 2 + .byte 19 + .byte 149 + .byte 2 + .byte 128 + .byte 2 + .byte 132 + .byte 2 + .byte 36 + .byte 134 + .byte 2 + .byte 1 + .byte 149 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 2 + .byte 0 + .byte 149 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 136 + .byte 2 + .byte 8 + .byte 149 + .byte 2 + .byte 133 + .byte 2 + .byte 134 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 135 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 137 + .byte 2 + .byte 20 + .byte 149 + .byte 2 + .byte 243 + .byte 7 + .byte 136 + .byte 2 + .byte 12 + .byte 141 + .byte 2 + .byte 21 + .byte 158 + .byte 2 + .byte 247 + .byte 7 + .byte 248 + .byte 7 + .byte 12 + .byte 144 + .byte 2 + .byte 21 + .byte 162 + .byte 2 + .byte 249 + .byte 7 + .byte 250 + .byte 7 + .byte 12 + .byte 145 + .byte 2 + .byte 19 + .byte 162 + .byte 2 + .byte 141 + .byte 2 + .byte 144 + .byte 2 + .byte 12 + .byte 148 + .byte 2 + .byte 21 + .byte 166 + .byte 2 + .byte 251 + .byte 7 + .byte 252 + .byte 7 + .byte 12 + .byte 149 + .byte 2 + .byte 19 + .byte 166 + .byte 2 + .byte 145 + .byte 2 + .byte 148 + .byte 2 + .byte 12 + .byte 151 + .byte 2 + .byte 0 + .byte 185 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 153 + .byte 2 + .byte 37 + .byte 187 + .byte 2 + .byte 151 + .byte 2 + .byte 128 + .byte 8 + .byte 12 + .byte 1 + .byte 5 + .byte 10 + .byte 109 + .byte 97 + .byte 120 + .byte 45 + .byte 101 + .byte 114 + .byte 114 + .byte 111 + .byte 114 + .byte 0 + .byte 4 + .byte 52 + .byte 46 + .byte 48 + .byte 0 + .byte 17 + .byte 100 + .byte 111 + .byte 109 + .byte 97 + .byte 105 + .byte 110 + .byte 45 + .byte 101 + .byte 120 + .byte 99 + .byte 108 + .byte 117 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 0 + .byte 3 + .byte 49 + .byte 53 + .byte 0 + .byte 18 + .byte 118 + .byte 97 + .byte 108 + .byte 105 + .byte 100 + .byte 45 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 117 + .byte 115 + .byte 45 + .byte 98 + .byte 105 + .byte 116 + .byte 115 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 5 + .byte 102 + .byte 117 + .byte 115 + .byte 97 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 8 + .byte 122 + .byte 109 + .byte 109 + .byte 45 + .byte 108 + .byte 111 + .byte 119 + .byte 0 + .byte 5 + .byte 116 + .byte 114 + .byte 117 + .byte 101 + .byte 0 + .byte 157 + .byte 2 + .byte 21 + .byte 195 + .byte 2 + .byte 130 + .byte 8 + .byte 131 + .byte 8 + .byte 12 + .byte 159 + .byte 2 + .byte 21 + .byte 197 + .byte 2 + .byte 157 + .byte 2 + .byte 132 + .byte 8 + .byte 12 + .byte 161 + .byte 2 + .byte 21 + .byte 199 + .byte 2 + .byte 159 + .byte 2 + .byte 133 + .byte 8 + .byte 12 + .byte 163 + .byte 2 + .byte 0 + .byte 205 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 165 + .byte 2 + .byte 21 + .byte 207 + .byte 2 + .byte 163 + .byte 2 + .byte 135 + .byte 8 + .byte 12 + .byte 167 + .byte 2 + .byte 0 + .byte 211 + .byte 2 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 168 + .byte 2 + .byte 20 + .byte 211 + .byte 2 + .byte 136 + .byte 8 + .byte 167 + .byte 2 + .byte 12 + .byte 169 + .byte 2 + .byte 21 + .byte 211 + .byte 2 + .byte 165 + .byte 2 + .byte 168 + .byte 2 + .byte 12 + .byte 171 + .byte 2 + .byte 21 + .byte 213 + .byte 2 + .byte 169 + .byte 2 + .byte 137 + .byte 8 + .byte 12 + .byte 173 + .byte 2 + .byte 21 + .byte 215 + .byte 2 + .byte 171 + .byte 2 + .byte 138 + .byte 8 + .byte 12 + .byte 176 + .byte 2 + .byte 21 + .byte 221 + .byte 2 + .byte 141 + .byte 8 + .byte 142 + .byte 8 + .byte 12 + .byte 179 + .byte 2 + .byte 19 + .byte 223 + .byte 2 + .byte 140 + .byte 8 + .byte 176 + .byte 2 + .byte 12 + .byte 182 + .byte 2 + .byte 21 + .byte 229 + .byte 2 + .byte 145 + .byte 8 + .byte 146 + .byte 8 + .byte 12 + .byte 185 + .byte 2 + .byte 19 + .byte 231 + .byte 2 + .byte 144 + .byte 8 + .byte 182 + .byte 2 + .byte 12 + .byte 188 + .byte 2 + .byte 21 + .byte 237 + .byte 2 + .byte 149 + .byte 8 + .byte 150 + .byte 8 + .byte 12 + .byte 191 + .byte 2 + .byte 19 + .byte 239 + .byte 2 + .byte 148 + .byte 8 + .byte 188 + .byte 2 + .byte 12 + .byte 194 + .byte 2 + .byte 46 + .byte 247 + .byte 2 + .byte 253 + .byte 7 + .byte 254 + .byte 7 + .byte 6 + .byte 4 + .byte 12 + .byte 196 + .byte 2 + .byte 0 + .byte 254 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 2 + .byte 19 + .byte 254 + .byte 2 + .byte 152 + .byte 8 + .byte 196 + .byte 2 + .byte 6 + .byte 201 + .byte 2 + .byte 46 + .byte 133 + .byte 3 + .byte 155 + .byte 7 + .byte 230 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 203 + .byte 2 + .byte 0 + .byte 140 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 205 + .byte 2 + .byte 19 + .byte 140 + .byte 3 + .byte 156 + .byte 8 + .byte 203 + .byte 2 + .byte 6 + .byte 212 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 213 + .byte 2 + .byte 15 + .byte 158 + .byte 3 + .byte 165 + .byte 8 + .byte 7 + .byte 6 + .byte 214 + .byte 2 + .byte 22 + .byte 158 + .byte 3 + .byte 213 + .byte 2 + .byte 212 + .byte 2 + .byte 7 + .byte 215 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 164 + .byte 8 + .byte 214 + .byte 2 + .byte 36 + .byte 216 + .byte 2 + .byte 1 + .byte 158 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 218 + .byte 2 + .byte 8 + .byte 158 + .byte 3 + .byte 215 + .byte 2 + .byte 216 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 219 + .byte 2 + .byte 8 + .byte 158 + .byte 3 + .byte 220 + .byte 2 + .byte 226 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 220 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 166 + .byte 8 + .byte 222 + .byte 2 + .byte 36 + .byte 222 + .byte 2 + .byte 22 + .byte 158 + .byte 3 + .byte 223 + .byte 2 + .byte 225 + .byte 2 + .byte 7 + .byte 223 + .byte 2 + .byte 15 + .byte 158 + .byte 3 + .byte 167 + .byte 8 + .byte 7 + .byte 6 + .byte 225 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 226 + .byte 2 + .byte 1 + .byte 158 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 2 + .byte 0 + .byte 158 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 228 + .byte 2 + .byte 19 + .byte 158 + .byte 3 + .byte 219 + .byte 2 + .byte 168 + .byte 8 + .byte 12 + .byte 232 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 233 + .byte 2 + .byte 15 + .byte 166 + .byte 3 + .byte 170 + .byte 8 + .byte 7 + .byte 6 + .byte 234 + .byte 2 + .byte 22 + .byte 166 + .byte 3 + .byte 233 + .byte 2 + .byte 232 + .byte 2 + .byte 7 + .byte 235 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 169 + .byte 8 + .byte 234 + .byte 2 + .byte 36 + .byte 236 + .byte 2 + .byte 1 + .byte 166 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 2 + .byte 8 + .byte 166 + .byte 3 + .byte 235 + .byte 2 + .byte 236 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 239 + .byte 2 + .byte 8 + .byte 166 + .byte 3 + .byte 240 + .byte 2 + .byte 246 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 240 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 171 + .byte 8 + .byte 242 + .byte 2 + .byte 36 + .byte 242 + .byte 2 + .byte 22 + .byte 166 + .byte 3 + .byte 243 + .byte 2 + .byte 245 + .byte 2 + .byte 7 + .byte 243 + .byte 2 + .byte 15 + .byte 166 + .byte 3 + .byte 172 + .byte 8 + .byte 7 + .byte 6 + .byte 245 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 246 + .byte 2 + .byte 1 + .byte 166 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 2 + .byte 0 + .byte 166 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 248 + .byte 2 + .byte 19 + .byte 166 + .byte 3 + .byte 239 + .byte 2 + .byte 173 + .byte 8 + .byte 12 + .byte 252 + .byte 2 + .byte 0 + .byte 174 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 253 + .byte 2 + .byte 15 + .byte 174 + .byte 3 + .byte 175 + .byte 8 + .byte 7 + .byte 6 + .byte 254 + .byte 2 + .byte 22 + .byte 174 + .byte 3 + .byte 253 + .byte 2 + .byte 252 + .byte 2 + .byte 7 + .byte 255 + .byte 2 + .byte 19 + .byte 174 + .byte 3 + .byte 174 + .byte 8 + .byte 254 + .byte 2 + .byte 36 + .byte 128 + .byte 3 + .byte 1 + .byte 174 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 129 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 130 + .byte 3 + .byte 8 + .byte 174 + .byte 3 + .byte 255 + .byte 2 + .byte 128 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 129 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 131 + .byte 3 + .byte 8 + .byte 174 + .byte 3 + .byte 132 + .byte 3 + .byte 138 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 139 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 132 + .byte 3 + .byte 19 + .byte 174 + .byte 3 + .byte 176 + .byte 8 + .byte 134 + .byte 3 + .byte 36 + .byte 134 + .byte 3 + .byte 22 + .byte 174 + .byte 3 + .byte 135 + .byte 3 + .byte 137 + .byte 3 + .byte 7 + .byte 135 + .byte 3 + .byte 15 + .byte 174 + .byte 3 + .byte 177 + .byte 8 + .byte 7 + .byte 6 + .byte 137 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 138 + .byte 3 + .byte 1 + .byte 174 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 139 + .byte 3 + .byte 0 + .byte 174 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 140 + .byte 3 + .byte 19 + .byte 174 + .byte 3 + .byte 131 + .byte 3 + .byte 178 + .byte 8 + .byte 12 + .byte 142 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 3 + .byte 19 + .byte 178 + .byte 3 + .byte 180 + .byte 8 + .byte 142 + .byte 3 + .byte 6 + .byte 147 + .byte 3 + .byte 46 + .byte 185 + .byte 3 + .byte 154 + .byte 7 + .byte 208 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 148 + .byte 3 + .byte 0 + .byte 192 + .byte 3 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 3 + .byte 1 + .byte 192 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 150 + .byte 3 + .byte 11 + .byte 192 + .byte 3 + .byte 0 + .byte 148 + .byte 3 + .byte 0 + .byte 149 + .byte 3 + .byte 80 + .byte 151 + .byte 3 + .byte 46 + .byte 254 + .byte 0 + .byte 205 + .byte 7 + .byte 206 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 154 + .byte 3 + .byte 46 + .byte 185 + .byte 3 + .byte 181 + .byte 8 + .byte 182 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 157 + .byte 3 + .byte 46 + .byte 147 + .byte 3 + .byte 159 + .byte 3 + .byte 157 + .byte 8 + .byte 6 + .byte 2 + .byte 6 + .byte 159 + .byte 3 + .byte 0 + .byte 147 + .byte 3 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 160 + .byte 3 + .byte 46 + .byte 133 + .byte 3 + .byte 153 + .byte 8 + .byte 154 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 153 + .byte 7 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 154 + .byte 7 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 155 + .byte 7 + .byte 0 + .byte 226 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 180 + .byte 7 + .byte 1 + .byte 38 + .byte 4 + .byte 181 + .byte 7 + .byte 1 + .byte 38 + .byte 2 + .byte 182 + .byte 7 + .byte 1 + .byte 48 + .byte 6 + .byte 183 + .byte 7 + .byte 1 + .byte 46 + .byte 1 + .byte 184 + .byte 7 + .byte 1 + .byte 48 + .byte 1 + .byte 185 + .byte 7 + .byte 1 + .byte 54 + .byte 7 + .byte 186 + .byte 7 + .byte 1 + .byte 54 + .byte 1 + .byte 187 + .byte 7 + .byte 1 + .byte 60 + .byte 8 + .byte 188 + .byte 7 + .byte 1 + .byte 60 + .byte 1 + .byte 189 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 9 + .byte 190 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 2 + .byte 191 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 10 + .byte 192 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 2 + .byte 193 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 11 + .byte 194 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 2 + .byte 195 + .byte 7 + .byte 1 + .byte 214 + .byte 0 + .byte 14 + .byte 196 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 197 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 9 + .byte 198 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 14 + .byte 199 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 10 + .byte 200 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 14 + .byte 201 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 11 + .byte 202 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 14 + .byte 203 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 204 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 205 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 14 + .byte 206 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 207 + .byte 7 + .byte 1 + .byte 136 + .byte 1 + .byte 15 + .byte 208 + .byte 7 + .byte 1 + .byte 185 + .byte 3 + .byte 4 + .byte 209 + .byte 7 + .byte 1 + .byte 167 + .byte 1 + .byte 5 + .byte 210 + .byte 7 + .byte 1 + .byte 165 + .byte 1 + .byte 3 + .byte 211 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 15 + .byte 212 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 3 + .byte 213 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 16 + .byte 214 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 3 + .byte 215 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 15 + .byte 216 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 17 + .byte 217 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 2 + .byte 218 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 15 + .byte 219 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 18 + .byte 220 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 2 + .byte 221 + .byte 7 + .byte 1 + .byte 188 + .byte 1 + .byte 15 + .byte 222 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 19 + .byte 223 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 2 + .byte 224 + .byte 7 + .byte 1 + .byte 195 + .byte 1 + .byte 15 + .byte 225 + .byte 7 + .byte 1 + .byte 200 + .byte 1 + .byte 20 + .byte 226 + .byte 7 + .byte 1 + .byte 204 + .byte 1 + .byte 21 + .byte 227 + .byte 7 + .byte 1 + .byte 208 + .byte 1 + .byte 22 + .byte 228 + .byte 7 + .byte 1 + .byte 214 + .byte 1 + .byte 23 + .byte 229 + .byte 7 + .byte 1 + .byte 226 + .byte 1 + .byte 24 + .byte 230 + .byte 7 + .byte 1 + .byte 133 + .byte 3 + .byte 16 + .byte 231 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 25 + .byte 232 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 5 + .byte 233 + .byte 7 + .byte 1 + .byte 251 + .byte 1 + .byte 24 + .byte 234 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 26 + .byte 235 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 17 + .byte 236 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 2 + .byte 237 + .byte 7 + .byte 1 + .byte 131 + .byte 2 + .byte 25 + .byte 238 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 27 + .byte 239 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 18 + .byte 240 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 2 + .byte 241 + .byte 7 + .byte 1 + .byte 140 + .byte 2 + .byte 25 + .byte 242 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 28 + .byte 243 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 19 + .byte 244 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 2 + .byte 245 + .byte 7 + .byte 1 + .byte 149 + .byte 2 + .byte 25 + .byte 246 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 29 + .byte 247 + .byte 7 + .byte 1 + .byte 158 + .byte 2 + .byte 26 + .byte 248 + .byte 7 + .byte 1 + .byte 158 + .byte 2 + .byte 26 + .byte 249 + .byte 7 + .byte 1 + .byte 162 + .byte 2 + .byte 27 + .byte 250 + .byte 7 + .byte 1 + .byte 162 + .byte 2 + .byte 27 + .byte 251 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 28 + .byte 252 + .byte 7 + .byte 1 + .byte 166 + .byte 2 + .byte 28 + .byte 253 + .byte 7 + .byte 1 + .byte 247 + .byte 2 + .byte 29 + .byte 254 + .byte 7 + .byte 1 + .byte 247 + .byte 2 + .byte 6 + .byte 255 + .byte 7 + .byte 1 + .byte 187 + .byte 2 + .byte 30 + .byte 128 + .byte 8 + .byte 1 + .byte 187 + .byte 2 + .byte 29 + .byte 129 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 31 + .byte 130 + .byte 8 + .byte 1 + .byte 195 + .byte 2 + .byte 30 + .byte 131 + .byte 8 + .byte 1 + .byte 195 + .byte 2 + .byte 30 + .byte 132 + .byte 8 + .byte 1 + .byte 197 + .byte 2 + .byte 30 + .byte 133 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 7 + .byte 134 + .byte 8 + .byte 1 + .byte 215 + .byte 2 + .byte 32 + .byte 135 + .byte 8 + .byte 1 + .byte 207 + .byte 2 + .byte 31 + .byte 136 + .byte 8 + .byte 1 + .byte 211 + .byte 2 + .byte 31 + .byte 137 + .byte 8 + .byte 1 + .byte 213 + .byte 2 + .byte 30 + .byte 138 + .byte 8 + .byte 1 + .byte 215 + .byte 2 + .byte 8 + .byte 139 + .byte 8 + .byte 1 + .byte 223 + .byte 2 + .byte 20 + .byte 140 + .byte 8 + .byte 1 + .byte 223 + .byte 2 + .byte 20 + .byte 141 + .byte 8 + .byte 1 + .byte 221 + .byte 2 + .byte 26 + .byte 142 + .byte 8 + .byte 1 + .byte 221 + .byte 2 + .byte 32 + .byte 143 + .byte 8 + .byte 1 + .byte 231 + .byte 2 + .byte 21 + .byte 144 + .byte 8 + .byte 1 + .byte 231 + .byte 2 + .byte 21 + .byte 145 + .byte 8 + .byte 1 + .byte 229 + .byte 2 + .byte 27 + .byte 146 + .byte 8 + .byte 1 + .byte 229 + .byte 2 + .byte 32 + .byte 147 + .byte 8 + .byte 1 + .byte 239 + .byte 2 + .byte 22 + .byte 148 + .byte 8 + .byte 1 + .byte 239 + .byte 2 + .byte 22 + .byte 149 + .byte 8 + .byte 1 + .byte 237 + .byte 2 + .byte 28 + .byte 150 + .byte 8 + .byte 1 + .byte 237 + .byte 2 + .byte 32 + .byte 151 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 24 + .byte 152 + .byte 8 + .byte 1 + .byte 254 + .byte 2 + .byte 24 + .byte 153 + .byte 8 + .byte 1 + .byte 133 + .byte 3 + .byte 24 + .byte 154 + .byte 8 + .byte 1 + .byte 133 + .byte 3 + .byte 16 + .byte 155 + .byte 8 + .byte 1 + .byte 140 + .byte 3 + .byte 23 + .byte 156 + .byte 8 + .byte 1 + .byte 140 + .byte 3 + .byte 23 + .byte 157 + .byte 8 + .byte 1 + .byte 147 + .byte 3 + .byte 23 + .byte 158 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 159 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 160 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 21 + .byte 161 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 21 + .byte 162 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 22 + .byte 163 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 22 + .byte 164 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 9 + .byte 165 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 15 + .byte 166 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 9 + .byte 167 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 15 + .byte 168 + .byte 8 + .byte 1 + .byte 158 + .byte 3 + .byte 20 + .byte 169 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 10 + .byte 170 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 15 + .byte 171 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 10 + .byte 172 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 15 + .byte 173 + .byte 8 + .byte 1 + .byte 166 + .byte 3 + .byte 21 + .byte 174 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 11 + .byte 175 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 15 + .byte 176 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 11 + .byte 177 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 15 + .byte 178 + .byte 8 + .byte 1 + .byte 174 + .byte 3 + .byte 22 + .byte 179 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 180 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 181 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 15 + .byte 182 + .byte 8 + .byte 1 + .byte 185 + .byte 3 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 4 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 2 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 5 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 3 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 6 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 4 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 7 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 5 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 11 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 8 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 6 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 9 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 7 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 10 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 8 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 11 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 11 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 14 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 12 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 50 + .byte 0 + .byte 15 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 13 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 13 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 16 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 14 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 17 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 15 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 18 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 16 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 19 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 17 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 20 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 18 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 21 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 19 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 22 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 20 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 0 + .byte 8 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 23 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 21 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 0 + .byte 10 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 24 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 22 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 25 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 23 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 26 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 24 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 27 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 25 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 28 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 26 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 29 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 27 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 30 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 28 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 31 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 29 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 9 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 32 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 13 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 2 + .byte 12 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 16 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 14 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 0 + .byte 1 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 5 + .byte 14 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 0 + .byte 2 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 18 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 53 + .byte 0 + .byte 3 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 14 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 54 + .byte 0 + .byte 4 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 15 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 55 + .byte 0 + .byte 5 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 10 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 56 + .byte 0 + .byte 6 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 10 + .byte 10 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 57 + .byte 0 + .byte 7 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 10 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 97 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 14 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 100 + .byte 0 + .byte 11 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 15 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 101 + .byte 0 + .byte 12 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 16 + .byte 18 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 102 + .byte 0 + .byte 13 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 13 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 48 + .byte 0 + .byte 14 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 18 + .byte 13 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 49 + .byte 0 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 19 + .byte 13 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 50 + .byte 0 + .byte 16 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 20 + .byte 12 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 51 + .byte 0 + .byte 17 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 21 + .byte 12 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 52 + .byte 0 + .byte 18 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 22 + .byte 12 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 53 + .byte 0 + .byte 19 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 23 + .byte 10 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 98 + .byte 0 + .byte 20 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 24 + .byte 10 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 99 + .byte 0 + .byte 21 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 25 + .byte 10 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 100 + .byte 0 + .byte 22 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 101 + .byte 0 + .byte 23 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 27 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 102 + .byte 0 + .byte 24 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 28 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 48 + .byte 0 + .byte 25 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 12 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 49 + .byte 0 + .byte 26 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 30 + .byte 12 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 50 + .byte 0 + .byte 27 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 31 + .byte 12 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 51 + .byte 0 + .byte 28 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 14 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 52 + .byte 0 + .byte 29 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 200 + .byte 81 + .byte 83 + .byte 5 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 109 + .byte 54 + .byte 52 + .byte 116 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 114 + .byte 111 + .byte 117 + .byte 116 + .byte 105 + .byte 110 + .byte 101 + .byte 95 + .byte 112 + .byte 111 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 114 + .byte 95 + .byte 115 + .byte 105 + .byte 122 + .byte 101 + .byte 95 + .byte 54 + .byte 52 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 103 + .byte 110 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 95 + .byte 117 + .byte 115 + .byte 101 + .byte 100 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 103 + .byte 99 + .byte 99 + .byte 95 + .byte 118 + .byte 101 + .byte 114 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 61 + .byte 55 + .byte 53 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 99 + .byte 120 + .byte 120 + .byte 95 + .byte 108 + .byte 105 + .byte 109 + .byte 105 + .byte 116 + .byte 101 + .byte 100 + .byte 95 + .byte 114 + .byte 97 + .byte 110 + .byte 103 + .byte 101 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 95 + .byte 112 + .byte 97 + .byte 114 + .byte 109 + .byte 115 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 117 + .byte 97 + .byte 114 + .byte 99 + .byte 104 + .byte 95 + .byte 116 + .byte 117 + .byte 110 + .byte 105 + .byte 110 + .byte 103 + .byte 61 + .byte 48 + .byte 120 + .byte 48 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 98 + .byte 110 + .byte 108 + .byte 95 + .byte 109 + .byte 111 + .byte 118 + .byte 98 + .byte 101 + .byte 61 + .byte 84 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 101 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 115 + .byte 116 + .byte 114 + .byte 117 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 48 + .byte 120 + .byte 52 + .byte 48 + .byte 48 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 97 + .byte 100 + .byte 118 + .byte 97 + .byte 110 + .byte 99 + .byte 101 + .byte 100 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 109 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 115 + .byte 117 + .byte 98 + .byte 115 + .byte 95 + .byte 111 + .byte 117 + .byte 116 + .byte 95 + .byte 111 + .byte 102 + .byte 95 + .byte 98 + .byte 111 + .byte 117 + .byte 110 + .byte 100 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 98 + .byte 97 + .byte 115 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 61 + .byte 50 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 99 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 99 + .byte 104 + .byte 101 + .byte 99 + .byte 107 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 97 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 105 + .byte 108 + .byte 48 + .byte 95 + .byte 97 + .byte 114 + .byte 114 + .byte 97 + .byte 121 + .byte 95 + .byte 115 + .byte 101 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 102 + .byte 102 + .byte 108 + .byte 111 + .byte 97 + .byte 100 + .byte 95 + .byte 109 + .byte 111 + .byte 100 + .byte 101 + .byte 61 + .byte 49 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 114 + .byte 101 + .byte 115 + .byte 116 + .byte 114 + .byte 105 + .byte 99 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 102 + .byte 117 + .byte 110 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 112 + .byte 111 + .byte 95 + .byte 114 + .byte 116 + .byte 116 + .byte 95 + .byte 99 + .byte 111 + .byte 110 + .byte 116 + .byte 114 + .byte 111 + .byte 108 + .byte 61 + .byte 48 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 114 + .byte 103 + .byte 115 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 114 + .byte 101 + .byte 103 + .byte 115 + .byte 61 + .byte 48 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 110 + .byte 111 + .byte 110 + .byte 115 + .byte 116 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 110 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 108 + .byte 116 + .byte 111 + .byte 95 + .byte 111 + .byte 98 + .byte 106 + .byte 101 + .byte 99 + .byte 116 + .byte 95 + .byte 101 + .byte 110 + .byte 97 + .byte 98 + .byte 108 + .byte 101 + .byte 100 + .byte 32 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 115 + .byte 109 + .byte 95 + .byte 116 + .byte 97 + .byte 114 + .byte 103 + .byte 101 + .byte 116 + .byte 61 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 65 + .byte 83 + .byte 77 + .byte 95 + .byte 84 + .byte 65 + .byte 82 + .byte 71 + .byte 69 + .byte 84 + .byte 95 + .byte 71 + .byte 65 + .byte 83 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 100 + .byte 105 + .byte 97 + .byte 108 + .byte 101 + .byte 99 + .byte 116 + .byte 61 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 83 + .byte 79 + .byte 85 + .byte 82 + .byte 67 + .byte 69 + .byte 95 + .byte 68 + .byte 73 + .byte 65 + .byte 76 + .byte 69 + .byte 67 + .byte 84 + .byte 95 + .byte 67 + .byte 32 + .byte 80 + .byte 49 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 102 + .byte 117 + .byte 108 + .byte 108 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 102 + .byte 105 + .byte 108 + .byte 101 + .byte 95 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 61 + .byte 47 + .byte 104 + .byte 111 + .byte 109 + .byte 101 + .byte 47 + .byte 104 + .byte 112 + .byte 99 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 48 + .byte 50 + .byte 49 + .byte 104 + .byte 47 + .byte 77 + .byte 68 + .byte 45 + .byte 66 + .byte 101 + .byte 110 + .byte 99 + .byte 104 + .byte 47 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 1 + .byte 1 + .byte 160 + .byte 1 + .byte 192 + .byte 0 + .byte 243 + .byte 0 + .byte 127 + .byte 85 + .byte 114 + .byte 99 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 126 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 0 + .byte 123 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 0 + .byte 122 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 8 + .byte 121 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 1 + .byte 120 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 4 + .byte 119 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 248 + .byte 63 + .byte 118 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 164 + .byte 64 + .byte 117 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 240 + .byte 63 + .byte 116 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 232 + .byte 7 + .byte 127 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 126 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 125 + .byte 4 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 124 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 123 + .byte 4 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 122 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 121 + .byte 4 + .byte 0 + .byte 32 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 120 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 119 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 118 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 1 + .byte 1 + .byte 26 + .byte 3 + .byte 36 + .byte 8 + .byte 0 + .byte 145 + .byte 192 + .byte 129 + .byte 16 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 8 + .byte 1 + .byte 46 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 40 + .byte 80 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 65 + .byte 116 + .byte 111 + .byte 109 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 78 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 32 + .byte 42 + .byte 41 + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 127 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 32 + .byte 126 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 136 + .byte 1 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 125 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 124 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 0 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 123 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 122 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 213 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 121 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 120 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 32 + .byte 119 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 118 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 117 + .byte 11 + .byte 78 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 100 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 116 + .byte 11 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 95 + .byte 86 + .byte 36 + .byte 101 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 115 + .byte 11 + .byte 78 + .byte 103 + .byte 104 + .byte 111 + .byte 115 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 102 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 8 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 114 + .byte 10 + .byte 78 + .byte 109 + .byte 97 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 12 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 113 + .byte 7 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 112 + .byte 7 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 50 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 111 + .byte 7 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 51 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 110 + .byte 8 + .byte 118 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 52 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 40 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 109 + .byte 8 + .byte 118 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 53 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 48 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 236 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 108 + .byte 8 + .byte 118 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 54 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 107 + .byte 8 + .byte 102 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 55 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 106 + .byte 8 + .byte 102 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 56 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 105 + .byte 8 + .byte 102 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 57 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 104 + .byte 13 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 103 + .byte 12 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 230 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 102 + .byte 10 + .byte 116 + .byte 101 + .byte 109 + .byte 112 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 101 + .byte 9 + .byte 114 + .byte 104 + .byte 111 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 100 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 228 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 100 + .byte 10 + .byte 109 + .byte 97 + .byte 115 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 101 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 99 + .byte 12 + .byte 110 + .byte 116 + .byte 105 + .byte 109 + .byte 101 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 102 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 40 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 226 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 98 + .byte 11 + .byte 110 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 44 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 97 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 49 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 48 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 96 + .byte 8 + .byte 100 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 50 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 95 + .byte 13 + .byte 100 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 51 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 94 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 52 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 93 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 53 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 220 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 92 + .byte 8 + .byte 110 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 54 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 216 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 219 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 91 + .byte 8 + .byte 110 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 55 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 220 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 218 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 90 + .byte 8 + .byte 110 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 56 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 224 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 89 + .byte 13 + .byte 108 + .byte 97 + .byte 116 + .byte 116 + .byte 105 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 57 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 232 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 88 + .byte 10 + .byte 120 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 240 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 215 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 87 + .byte 10 + .byte 121 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 248 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 214 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 86 + .byte 10 + .byte 122 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 128 + .byte 1 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 37 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 85 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 54 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 212 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 84 + .byte 12 + .byte 110 + .byte 99 + .byte 97 + .byte 108 + .byte 108 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 55 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 83 + .byte 15 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 56 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 82 + .byte 15 + .byte 109 + .byte 97 + .byte 120 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 57 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 16 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 81 + .byte 14 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 97 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 1 + .byte 0 + .byte 30 + .byte 8 + .byte 0 + .byte 9 + .byte 1 + .byte 0 + .byte 30 + .byte 71 + .byte 0 + .byte 38 + .byte 1 + .byte 0 + .byte 31 + .byte 18 + .byte 0 + .byte 46 + .byte 1 + .byte 0 + .byte 33 + .byte 27 + .byte 0 + .byte 48 + .byte 1 + .byte 0 + .byte 33 + .byte 45 + .byte 0 + .byte 54 + .byte 1 + .byte 0 + .byte 34 + .byte 23 + .byte 0 + .byte 60 + .byte 1 + .byte 0 + .byte 35 + .byte 24 + .byte 0 + .byte 194 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 20 + .byte 0 + .byte 200 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 45 + .byte 0 + .byte 206 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 70 + .byte 0 + .byte 214 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 15 + .byte 0 + .byte 223 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 17 + .byte 0 + .byte 227 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 9 + .byte 0 + .byte 231 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 17 + .byte 0 + .byte 235 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 9 + .byte 0 + .byte 239 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 17 + .byte 0 + .byte 243 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 9 + .byte 0 + .byte 247 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 32 + .byte 0 + .byte 254 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 24 + .byte 0 + .byte 128 + .byte 1 + .byte 1 + .byte 0 + .byte 39 + .byte 5 + .byte 0 + .byte 136 + .byte 1 + .byte 1 + .byte 0 + .byte 46 + .byte 15 + .byte 0 + .byte 163 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 43 + .byte 0 + .byte 165 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 19 + .byte 0 + .byte 167 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 9 + .byte 0 + .byte 175 + .byte 1 + .byte 1 + .byte 0 + .byte 48 + .byte 25 + .byte 0 + .byte 181 + .byte 1 + .byte 1 + .byte 0 + .byte 49 + .byte 25 + .byte 0 + .byte 188 + .byte 1 + .byte 1 + .byte 0 + .byte 50 + .byte 25 + .byte 0 + .byte 195 + .byte 1 + .byte 1 + .byte 0 + .byte 51 + .byte 25 + .byte 0 + .byte 200 + .byte 1 + .byte 1 + .byte 0 + .byte 52 + .byte 22 + .byte 0 + .byte 204 + .byte 1 + .byte 1 + .byte 0 + .byte 53 + .byte 22 + .byte 0 + .byte 208 + .byte 1 + .byte 1 + .byte 0 + .byte 54 + .byte 22 + .byte 0 + .byte 214 + .byte 1 + .byte 1 + .byte 0 + .byte 58 + .byte 19 + .byte 0 + .byte 226 + .byte 1 + .byte 1 + .byte 0 + .byte 59 + .byte 23 + .byte 0 + .byte 251 + .byte 1 + .byte 1 + .byte 0 + .byte 60 + .byte 25 + .byte 0 + .byte 131 + .byte 2 + .byte 1 + .byte 0 + .byte 61 + .byte 40 + .byte 0 + .byte 140 + .byte 2 + .byte 1 + .byte 0 + .byte 62 + .byte 40 + .byte 0 + .byte 149 + .byte 2 + .byte 1 + .byte 0 + .byte 63 + .byte 40 + .byte 0 + .byte 158 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 39 + .byte 0 + .byte 162 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 53 + .byte 0 + .byte 166 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 67 + .byte 0 + .byte 185 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 36 + .byte 0 + .byte 187 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 42 + .byte 0 + .byte 195 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 42 + .byte 0 + .byte 197 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 48 + .byte 0 + .byte 199 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 54 + .byte 0 + .byte 205 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 38 + .byte 0 + .byte 207 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 45 + .byte 0 + .byte 211 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 58 + .byte 0 + .byte 213 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 65 + .byte 0 + .byte 215 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 71 + .byte 0 + .byte 221 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 35 + .byte 0 + .byte 223 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 21 + .byte 0 + .byte 229 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 35 + .byte 0 + .byte 231 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 21 + .byte 0 + .byte 237 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 35 + .byte 0 + .byte 239 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 21 + .byte 0 + .byte 247 + .byte 2 + .byte 1 + .byte 0 + .byte 66 + .byte 26 + .byte 0 + .byte 249 + .byte 2 + .byte 1 + .byte 0 + .byte 66 + .byte 17 + .byte 0 + .byte 254 + .byte 2 + .byte 1 + .byte 0 + .byte 59 + .byte 43 + .byte 0 + .byte 133 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 32 + .byte 0 + .byte 135 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 13 + .byte 0 + .byte 140 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 50 + .byte 0 + .byte 147 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 28 + .byte 0 + .byte 149 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 9 + .byte 0 + .byte 158 + .byte 3 + .byte 1 + .byte 0 + .byte 77 + .byte 9 + .byte 0 + .byte 166 + .byte 3 + .byte 1 + .byte 0 + .byte 78 + .byte 9 + .byte 0 + .byte 174 + .byte 3 + .byte 1 + .byte 0 + .byte 79 + .byte 9 + .byte 0 + .byte 178 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 32 + .byte 0 + .byte 185 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 24 + .byte 0 + .byte 187 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 5 + .byte 0 + .byte 192 + .byte 3 + .byte 1 + .byte 0 + .byte 82 + .byte 12 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 203 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 99 + .byte 99 + .byte 14 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 3 + .byte 1 + .byte 63 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 115 + .byte 115 + .byte 27 + .byte 47 + .byte 117 + .byte 115 + .byte 114 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 47 + .byte 115 + .byte 116 + .byte 100 + .byte 99 + .byte 45 + .byte 112 + .byte 114 + .byte 101 + .byte 100 + .byte 101 + .byte 102 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 3 + .byte 1 + .byte 4 + .byte 87 + .byte 128 + .byte 2 + .byte 0 + .byte 1 + .byte 23 + .byte 0 + .byte 115 + .byte 95 + .byte 31 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 108 + .byte 105 + .byte 107 + .byte 119 + .byte 105 + .byte 100 + .byte 45 + .byte 109 + .byte 97 + .byte 114 + .byte 107 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 4 + .byte 1 + .byte 5 + .byte 131 + .byte 2 + .byte 160 + .byte 2 + .byte 0 + .byte 1 + .byte 25 + .byte 0 + .byte 115 + .byte 95 + .byte 24 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 116 + .byte 105 + .byte 109 + .byte 105 + .byte 110 + .byte 103 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 5 + .byte 1 + .byte 8 + .byte 162 + .byte 2 + .byte 178 + .byte 3 + .byte 105 + .byte 1 + .byte 26 + .byte 0 + .byte 115 + .byte 95 + .byte 26 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 6 + .byte 6 + .byte 5 + .byte 0 + .byte 185 + .byte 2 + .byte 161 + .byte 3 + .byte 54 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 7 + .byte 7 + .byte 6 + .byte 0 + .byte 208 + .byte 2 + .byte 133 + .byte 3 + .byte 0 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 27 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 8 + .byte 1 + .byte 0 + .byte 181 + .byte 3 + .byte 231 + .byte 3 + .byte 0 + .byte 1 + .byte 28 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #30.71 + pushq %rbp #30.71 + .cfi_def_cfa_offset 16 + movq %rsp, %rbp #30.71 + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-32, %rsp #30.71 + pushq %r14 #30.71 + pushq %r15 #30.71 + pushq %rbx #30.71 + subq $456, %rsp #30.71 + movq %rdx, %r8 #30.71 + vmovsd 72(%rdi), %xmm0 #33.27 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + movl 4(%rsi), %ebx #31.18 + movq 64(%rsi), %r15 #36.20 + movq 72(%rsi), %r14 #36.45 + movq 80(%rsi), %rdx #36.70 + vmulsd %xmm0, %xmm0, %xmm4 #33.45 + vmovsd 8(%rdi), %xmm3 #34.23 + vmovsd (%rdi), %xmm0 #35.24 + testl %ebx, %ebx #39.24 + jle ..B1.38 # Prob 50% #39.24 + # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + xorl %ecx, %ecx #39.5 + movl %ebx, %r9d #39.5 + xorl %eax, %eax #39.5 + movl $1, %r10d #39.5 + xorl %edi, %edi #40.17 + shrl $1, %r9d #39.5 + je ..B1.6 # Prob 9% #39.5 + # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.4: # Preds ..B1.2 ..B1.4 + # Execution count [2.50e+00] + incq %rcx #39.5 + lea (%rax,%r15), %r10 #40.9 + movq %rdi, (%r10) #40.9 + movq %rdi, (%rax,%r14) #41.9 + movq %rdi, (%rax,%rdx) #42.9 + movq %rdi, 8(%r10) #40.9 + movq %rdi, 8(%rax,%r14) #41.9 + movq %rdi, 8(%rax,%rdx) #42.9 + addq $16, %rax #39.5 + cmpq %r9, %rcx #39.5 + jb ..B1.4 # Prob 63% #39.5 + # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rcx,%rcx), %r10d #40.9 + # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r10), %eax #39.5 + cmpl %ebx, %eax #39.5 + jae ..B1.8 # Prob 9% #39.5 + # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r10d, %r10 #39.5 + movq %rdi, -8(%r15,%r10,8) #40.9 + movq %rdi, -8(%r14,%r10,8) #41.9 + movq %rdi, -8(%rdx,%r10,8) #42.9 + # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 + xorl %eax, %eax #46.15 + vbroadcastsd %xmm4, %ymm7 #33.45 + vbroadcastsd %xmm6, %ymm8 #69.45 + vbroadcastsd %xmm3, %ymm2 #34.23 + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 + vmovupd %ymm7, 96(%rsp) #51.25[spill] + vmovupd %ymm2, 352(%rsp) #51.25[spill] + vmovupd %ymm8, 320(%rsp) #51.25[spill] + movslq 16(%r8), %rcx #47.43 + xorl %r11d, %r11d #46.5 + movq 8(%r8), %r10 #47.19 + movq 24(%r8), %r9 #48.25 + movslq %ebx, %rbx #46.5 + shlq $2, %rcx #47.9 + movq 16(%rsi), %r8 #49.25 + movq 24(%rsi), %rdi #50.25 + movq 32(%rsi), %rsi #51.25 + movq %rcx, 16(%rsp) #51.25[spill] + movq %rbx, 24(%rsp) #51.25[spill] + movq %r9, 32(%rsp) #51.25[spill] + movq %r10, 40(%rsp) #51.25[spill] + movq %r15, 72(%rsp) #51.25[spill] + movq %r12, (%rsp) #51.25[spill] + movq %r13, 8(%rsp) #51.25[spill] + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 +..B1.9: # Preds ..B1.35 ..B1.8 + # Execution count [5.00e+00] + imulq 16(%rsp), %rax #47.43[spill] + addq 40(%rsp), %rax #47.9[spill] + vxorpd %xmm9, %xmm9, %xmm9 #52.22 + movq 32(%rsp), %r12 #48.25[spill] + movq %rax, %rcx #59.13 + vmovsd (%rdi,%r11,8), %xmm10 #50.25 + andq $31, %rcx #59.13 + vmovsd (%r8,%r11,8), %xmm1 #49.25 + movl %ecx, %r15d #59.13 + vmovsd (%rsi,%r11,8), %xmm7 #51.25 + negl %r15d #59.13 + vbroadcastsd %xmm10, %ymm5 #50.25 + movl %ecx, %r10d #59.13 + vbroadcastsd %xmm1, %ymm11 #49.25 + vmovapd %xmm9, %xmm8 #53.22 + vbroadcastsd %xmm7, %ymm15 #51.25 + vmovapd %xmm8, %xmm2 #54.22 + vmovupd %ymm5, 160(%rsp) #51.25[spill] + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 + vmovupd %ymm15, 192(%rsp) #51.25[spill] + vmovupd %ymm11, 128(%rsp) #51.25[spill] + movslq (%r12,%r11,4), %r12 #48.25 + movl %r12d, %ebx #59.13 + vxorpd %ymm14, %ymm14, %ymm14 #52.22 + movl %ebx, %r9d #59.13 + vmovdqa %ymm14, %ymm13 #53.22 + andl $-4, %r9d #59.13 + vmovdqa %ymm13, %ymm12 #54.22 + addl $32, %r15d #59.13 + movslq %r9d, %r9 #59.13 + xorl %r13d, %r13d #58.9 + shrl $2, %r15d #59.13 + andl $3, %r10d #59.13 + vmovupd %ymm12, 288(%rsp) #51.25[spill] + vmovupd %ymm13, 256(%rsp) #51.25[spill] + vmovupd %ymm14, 224(%rsp) #51.25[spill] + movq %r11, 48(%rsp) #51.25[spill] + movq %rdx, 56(%rsp) #51.25[spill] + movq %r14, 64(%rsp) #51.25[spill] + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.10: # Preds ..B1.34 ..B1.9 + # Execution count [5.00e+03] + testq %r12, %r12 #59.32 + jle ..B1.34 # Prob 50% #59.32 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+03] + cmpq $4, %r12 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+03] + cmpq $600, %r12 #59.13 + jl ..B1.41 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.13: # Preds ..B1.12 + # Execution count [4.50e+03] + movl %ecx, %r11d #59.13 + testl %ecx, %ecx #59.13 + je ..B1.16 # Prob 50% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.14: # Preds ..B1.13 + # Execution count [4.50e+03] + testl %r10d, %r10d #59.13 + jne ..B1.39 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.15: # Preds ..B1.14 + # Execution count [2.25e+03] + movl %r15d, %r11d #59.13 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.16: # Preds ..B1.15 ..B1.13 + # Execution count [4.50e+03] + movl %r11d, %edx #59.13 + lea 4(%rdx), %r14 #59.13 + cmpq %r14, %r12 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rdx rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.17: # Preds ..B1.16 + # Execution count [5.00e+03] + movl %ebx, %r14d #59.13 + subl %r11d, %r14d #59.13 + andl $3, %r14d #59.13 + negl %r14d #59.13 + addl %ebx, %r14d #59.13 + movslq %r14d, %r14 #59.13 + testl %r11d, %r11d #59.13 + movl $0, %r11d #59.13 + jbe ..B1.23 # Prob 10% #59.13 + # LOE rax rdx rsi rdi r8 r9 r11 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.18: # Preds ..B1.17 + # Execution count [4.50e+03] + movq %r12, 80(%rsp) #[spill] + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.19: # Preds ..B1.21 ..B1.18 + # Execution count [2.50e+04] + movslq (%rax,%r11,4), %r12 #60.25 + vsubsd (%rdi,%r12,8), %xmm10, %xmm13 #62.40 + vsubsd (%r8,%r12,8), %xmm1, %xmm12 #61.40 + vsubsd (%rsi,%r12,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.21 # Prob 50% #66.26 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.20: # Preds ..B1.19 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.21: # Preds ..B1.20 ..B1.19 + # Execution count [2.50e+04] + incq %r11 #59.13 + cmpq %rdx, %r11 #59.13 + jb ..B1.19 # Prob 82% #59.13 + # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.22: # Preds ..B1.21 + # Execution count [4.50e+03] + movq 80(%rsp), %r12 #[spill] + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.23: # Preds ..B1.22 ..B1.17 ..B1.41 + # Execution count [4.50e+03] + vmovsd %xmm9, 392(%rsp) #61.40[spill] + vmovsd %xmm10, 408(%rsp) #61.40[spill] + vmovsd %xmm1, 416(%rsp) #61.40[spill] + vmovsd %xmm6, 424(%rsp) #61.40[spill] + vmovsd %xmm3, 432(%rsp) #61.40[spill] + vmovsd %xmm4, 440(%rsp) #61.40[spill] + vmovsd %xmm2, 88(%rsp) #61.40[spill] + vmovsd %xmm8, 384(%rsp) #61.40[spill] + vmovsd %xmm7, 400(%rsp) #61.40[spill] + vmovupd 192(%rsp), %ymm6 #61.40[spill] + vmovupd 160(%rsp), %ymm4 #61.40[spill] + vmovupd 128(%rsp), %ymm5 #61.40[spill] + vmovupd 288(%rsp), %ymm3 #61.40[spill] + vmovupd 256(%rsp), %ymm1 #61.40[spill] + vmovupd 224(%rsp), %ymm12 #61.40[spill] + vmovupd 96(%rsp), %ymm11 #61.40[spill] + vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #61.40 + vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #61.40 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.24: # Preds ..B1.26 ..B1.23 + # Execution count [2.50e+04] + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + vmovups (%rax,%rdx,4), %xmm2 #60.25 + vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 + vxorpd %ymm8, %ymm8, %ymm8 #61.40 + vmovdqa %ymm13, %ymm0 #61.40 + vxorpd %ymm14, %ymm14, %ymm14 #62.40 + vmovdqa %ymm13, %ymm7 #62.40 + vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 + vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 + vsubpd %ymm8, %ymm5, %ymm0 #61.40 + vsubpd %ymm14, %ymm4, %ymm8 #62.40 + vxorpd %ymm7, %ymm7, %ymm7 #63.40 + vmovdqa %ymm13, %ymm15 #63.40 + vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 + vmulpd %ymm8, %ymm8, %ymm14 #64.53 + vsubpd %ymm7, %ymm6, %ymm2 #63.40 + vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 + vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 + vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 + vptest %ymm13, %ymm7 #66.26 + je ..B1.26 # Prob 50% #66.26 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 +..B1.25: # Preds ..B1.24 + # Execution count [1.25e+04] + vdivpd %ymm14, %ymm10, %ymm13 #67.42 + vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] + vmulpd %ymm14, %ymm13, %ymm14 #68.48 + vmulpd %ymm14, %ymm13, %ymm15 #68.54 + vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 + vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] + vmulpd %ymm13, %ymm15, %ymm15 #69.65 + vmulpd %ymm14, %ymm15, %ymm13 #69.71 + vmulpd %ymm13, %ymm0, %ymm0 #70.35 + vmulpd %ymm13, %ymm8, %ymm8 #71.35 + vandpd %ymm0, %ymm7, %ymm0 #70.35 + vaddpd %ymm0, %ymm12, %ymm12 #70.21 + vmulpd %ymm13, %ymm2, %ymm0 #72.35 + vandpd %ymm8, %ymm7, %ymm2 #71.35 + vandpd %ymm0, %ymm7, %ymm7 #72.35 + vaddpd %ymm2, %ymm1, %ymm1 #71.21 + vaddpd %ymm7, %ymm3, %ymm3 #72.21 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.26: # Preds ..B1.25 ..B1.24 + # Execution count [2.50e+04] + addq $4, %rdx #59.13 + cmpq %r14, %rdx #59.13 + jb ..B1.24 # Prob 82% #59.13 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.27: # Preds ..B1.26 + # Execution count [4.50e+03] + vmovupd %ymm3, 288(%rsp) #[spill] + vmovupd %ymm1, 256(%rsp) #[spill] + vmovsd 88(%rsp), %xmm2 #[spill] + vmovsd 384(%rsp), %xmm8 #[spill] + vmovsd 392(%rsp), %xmm9 #[spill] + vmovsd 400(%rsp), %xmm7 #[spill] + vmovsd 408(%rsp), %xmm10 #[spill] + vmovsd 416(%rsp), %xmm1 #[spill] + vmovsd 424(%rsp), %xmm6 #[spill] + vmovsd 432(%rsp), %xmm3 #[spill] + vmovsd 440(%rsp), %xmm4 #[spill] + vmovupd %ymm12, 224(%rsp) #[spill] + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.28: # Preds ..B1.27 ..B1.39 + # Execution count [5.00e+03] + cmpq %r12, %r14 #59.13 + jae ..B1.34 # Prob 10% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.30: # Preds ..B1.28 ..B1.32 + # Execution count [2.50e+04] + movslq (%rax,%r14,4), %rdx #60.25 + vsubsd (%rdi,%rdx,8), %xmm10, %xmm13 #62.40 + vsubsd (%r8,%rdx,8), %xmm1, %xmm12 #61.40 + vsubsd (%rsi,%rdx,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.32 # Prob 50% #66.26 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.31: # Preds ..B1.30 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.32: # Preds ..B1.31 ..B1.30 + # Execution count [2.50e+04] + incq %r14 #59.13 + cmpq %r12, %r14 #59.13 + jb ..B1.30 # Prob 82% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 + # Execution count [5.00e+03] + .byte 15 #58.9 + .byte 31 #58.9 + .byte 64 #58.9 + .byte 0 #58.9 + incl %r13d #58.9 + cmpl $1000, %r13d #58.9 + jb ..B1.10 # Prob 99% #58.9 + # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.35: # Preds ..B1.34 + # Execution count [5.00e+00] + vmovupd 288(%rsp), %ymm12 #[spill] + vmovupd 256(%rsp), %ymm13 #[spill] + vmovupd 224(%rsp), %ymm14 #[spill] + movq 72(%rsp), %rax #77.9[spill] + movq 48(%rsp), %r11 #[spill] + movq 64(%rsp), %r14 #[spill] + movq 56(%rsp), %rdx #[spill] + vextractf128 $1, %ymm12, %xmm1 #54.22 + vextractf128 $1, %ymm13, %xmm11 #53.22 + vaddpd %xmm1, %xmm12, %xmm5 #54.22 + vaddpd %xmm11, %xmm13, %xmm15 #53.22 + vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 + vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 + vaddsd %xmm7, %xmm5, %xmm10 #54.22 + vaddsd %xmm1, %xmm15, %xmm5 #53.22 + vaddsd %xmm2, %xmm10, %xmm2 #54.22 + vaddsd %xmm8, %xmm5, %xmm5 #53.22 + vextractf128 $1, %ymm14, %xmm8 #52.22 + vaddpd %xmm8, %xmm14, %xmm8 #52.22 + vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 + vaddsd %xmm14, %xmm8, %xmm1 #52.22 + vaddsd %xmm9, %xmm1, %xmm9 #52.22 + vaddsd (%rax,%r11,8), %xmm9, %xmm1 #77.9 + vmovsd %xmm1, (%rax,%r11,8) #77.9 + movslq %r11d, %rax #46.32 + vaddsd (%r14,%r11,8), %xmm5, %xmm7 #78.9 + vmovsd %xmm7, (%r14,%r11,8) #78.9 + incq %rax #46.32 + vaddsd (%rdx,%r11,8), %xmm2, %xmm2 #79.9 + vmovsd %xmm2, (%rdx,%r11,8) #79.9 + incq %r11 #46.5 + cmpq 24(%rsp), %r11 #46.5[spill] + jb ..B1.9 # Prob 82% #46.5 + # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 +..B1.36: # Preds ..B1.35 + # Execution count [9.00e-01] + movq (%rsp), %r12 #[spill] + .cfi_restore 12 + movq 8(%rsp), %r13 #[spill] + .cfi_restore 13 + # LOE r12 r13 +..B1.38: # Preds ..B1.1 ..B1.36 + # Execution count [1.00e+00] + vzeroupper #82.12 + vxorpd %xmm0, %xmm0, %xmm0 #82.12 + addq $456, %rsp #82.12 + .cfi_restore 3 + popq %rbx #82.12 + .cfi_restore 15 + popq %r15 #82.12 + .cfi_restore 14 + popq %r14 #82.12 + movq %rbp, %rsp #82.12 + popq %rbp #82.12 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret #82.12 + .cfi_def_cfa 6, 16 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 + .cfi_offset 6, -16 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + # LOE +..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 + # Execution count [4.50e+02]: Infreq + xorl %r14d, %r14d #59.13 + jmp ..B1.28 # Prob 100% #59.13 + # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.41: # Preds ..B1.12 + # Execution count [4.50e+02]: Infreq + movq %r9, %r14 #59.13 + xorl %edx, %edx #59.13 + jmp ..B1.23 # Prob 100% #59.13 + .align 16,0x90 + # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 32 + .align 32 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,32 + .align 32 +.L_2il0floatpacket.3: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,32 + .align 8 +.L_2il0floatpacket.0: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,8 + .align 8 +.L_2il0floatpacket.1: + .long 0x00000000,0x3fe00000 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,8 + .align 8 +.L_2il0floatpacket.4: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,8 + .data + .section .note.GNU-stack, "" +# End diff --git a/scripts/results_soa_broadep2_iln1000.txt b/scripts/results_soa_broadep2_iln1000.txt new file mode 100644 index 0000000..0c0fae0 --- /dev/null +++ b/scripts/results_soa_broadep2_iln1000.txt @@ -0,0 +1,87 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,2.1360,23.9701,95.9944,13.7135 +200,4x4x4,8,512,43.0080,12.2880,18.4320,4.3167,23.7221,96.9983,13.8569 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,8.5194,24.0392,95.7186,13.6741 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,17.4337,23.4947,97.9370,13.9910 +200,4x8x2,8,512,43.0080,12.2880,18.4320,4.2566,24.0568,95.6488,13.6641 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,9.2081,22.2412,103.4567,14.7795 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,17.5763,23.3041,98.7380,14.1054 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,34.0899,24.0306,95.7531,13.6790 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,8.5118,24.0608,95.6326,13.6618 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,17.0260,24.0574,95.6463,13.6638 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,34.2228,23.9373,96.1263,13.7323 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,70.1974,23.3399,98.5865,14.0838 +200,8x4x2,8,512,43.0080,12.2880,18.4320,4.2777,23.9379,96.1236,13.7319 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,8.5118,24.0608,95.6328,13.6618 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,17.0249,24.0589,95.6404,13.6629 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,34.0480,24.0601,95.6354,13.6622 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,8.5123,24.0593,95.6388,13.6627 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,17.0434,24.0327,95.7445,13.6778 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,34.0453,24.0621,95.6277,13.6611 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,68.7834,23.8197,96.6007,13.8001 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,17.1665,23.8604,96.4357,13.7765 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,34.7349,23.5844,97.5647,13.9378 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,68.0974,24.0597,95.6373,13.6625 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,137.8436,-7.3864,-311.5186,-44.5027 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,8.5148,24.0524,95.6662,13.6666 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,17.0260,24.0573,95.6467,13.6638 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,34.0505,24.0584,95.6424,13.6632 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,69.0856,23.7155,97.0251,13.8607 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,17.4353,23.4925,97.9460,13.9923 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,34.0727,24.0427,95.7047,13.6721 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,69.3569,23.6227,97.4062,13.9152 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,137.4764,-7.4061,-310.6889,-44.3841 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,34.0576,24.0534,95.6622,13.6660 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,71.0575,23.0574,99.7945,14.2564 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,136.6013,-7.4536,-308.7110,-44.1016 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,274.6401,-7.4146,-310.3355,-44.3336 +200,4x4x2,16,512,59.3920,12.2880,34.8160,7.2058,14.2108,161.9192,10.7946 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,14.4343,14.1884,162.1750,10.8117 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,28.8264,14.2092,161.9376,10.7958 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,58.3994,14.0275,164.0345,10.9356 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,14.4088,14.2135,161.8880,10.7925 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,29.4276,13.9189,165.3146,11.0210 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,59.7154,13.7184,167.7309,11.1821 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,115.2898,14.2111,161.9152,10.7943 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,28.8249,14.2100,161.9287,10.7952 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,58.7774,13.9373,165.0962,11.0064 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,116.0715,14.1154,163.0130,10.8675 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,231.6558,-4.3952,-523.5290,-34.9019 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,14.4120,14.2104,161.9233,10.7949 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,28.8246,14.2101,161.9270,10.7951 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,58.9677,13.8924,165.6307,11.0420 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,117.3380,13.9631,164.7917,10.9861 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,29.2781,13.9900,164.4749,10.9650 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,59.7120,13.7192,167.7213,11.1814 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,116.6388,14.0468,163.8097,10.9206 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,235.1777,-4.3294,-531.4882,-35.4325 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,57.6495,14.2100,161.9280,10.7952 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,116.3551,14.0810,163.4112,10.8941 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,230.6178,-4.4150,-521.1831,-34.7455 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,475.6845,-4.2809,-537.5100,-35.8340 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,28.8208,14.2120,161.9058,10.7937 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,57.6418,14.2119,161.9066,10.7938 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,117.6560,13.9253,165.2383,11.0159 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,239.2523,-4.2556,-540.6966,-36.0464 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,58.7259,13.9495,164.9516,10.9968 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,118.8258,13.7883,166.8811,11.1254 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,231.1737,-4.4043,-522.4394,-34.8293 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,472.1670,-4.3127,-533.5352,-35.5690 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,116.7953,14.0280,164.0296,10.9353 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,230.5746,-4.4158,-521.0854,-34.7390 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,464.7158,-4.3819,-525.1156,-35.0077 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,925.1097,0.2403,9575.7780,638.3852 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,26.0030,7.8760,292.1528,9.4243 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,51.8944,7.8930,291.5258,9.4041 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,107.3953,7.6279,301.6561,9.7308 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,213.9949,7.6563,300.5385,9.6948 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,51.8926,7.8932,291.5157,9.4037 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,104.0172,7.8756,292.1675,9.4248 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,209.5100,7.8202,294.2398,9.4916 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,429.5337,-2.3704,-970.7216,-31.3136 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,103.7967,7.8923,291.5482,9.4048 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,211.2654,7.7552,296.7051,9.5711 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,422.9005,-2.4076,-955.7310,-30.8300 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,833.3645,-2.4435,-941.6781,-30.3767 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,52.0055,7.8761,292.1499,9.4242 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,106.8542,7.6665,300.1363,9.6818 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,209.6327,7.8156,294.4121,9.4972 From 6c03ea3f3c29a6bb51ab81b320c4cc171e7ade58 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Fri, 7 May 2021 02:31:53 +0200 Subject: [PATCH 21/32] Adjust output when computing invalid values Signed-off-by: Rafael Ravedutti --- scripts/run_stub.sh | 4 ++-- src/main-stub.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/run_stub.sh b/scripts/run_stub.sh index 2cf15a2..9a90e89 100644 --- a/scripts/run_stub.sh +++ b/scripts/run_stub.sh @@ -29,7 +29,7 @@ for timesteps in ${TIMESTEPS}; do for ny in ${NY}; do for nz in ${NZ}; do best_perf= - best_output= + best_output="invalid" for nruns in ${NRUNS}; do output=$( ./${EXEC} -f ${FREQUENCY} -n ${timesteps} -na ${atoms_per_unit_cell} -nx ${nx} -ny ${ny} -nz ${nz} -csv | @@ -39,7 +39,7 @@ for timesteps in ${TIMESTEPS}; do if [ -z "$best_perf" ]; then best_perf="$perf" best_output="$output" - elif (( $(echo "$perf < $best_perf" | bc -l) )); then + elif (( $(echo "$perf > 0.0 && $perf < $best_perf" | bc -l) )); then best_perf="$perf" best_output="$output" fi diff --git a/src/main-stub.c b/src/main-stub.c index 4041c2c..ad2e580 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -199,8 +199,8 @@ int main(int argc, const char *argv[]) { LIKWID_MARKER_STOP("force"); E = getTimeStamp(); double T_accum = E-S; - const double atoms_updates_per_sec = (double)(atom->Nlocal * INTERNAL_LOOP_NTIMES * param.ntimes) / T_accum; - const double cycles_per_atom = T_accum * freq / (double)(atom->Nlocal * param.ntimes * INTERNAL_LOOP_NTIMES); + const double atoms_updates_per_sec = (double)(atom->Nlocal) / T_accum * (double)(param.ntimes * INTERNAL_LOOP_NTIMES); + const double cycles_per_atom = T_accum / (double)(atom->Nlocal) / (double)(param.ntimes * INTERNAL_LOOP_NTIMES) * freq; const double cycles_per_neigh = cycles_per_atom / (double)(atoms_per_unit_cell - 1); if(!csv) { From 6c4168fdb5ea68c9f10e70f15c4e860c0c43ae3a Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Sat, 8 May 2021 01:03:44 +0200 Subject: [PATCH 22/32] Add OSACA analysis and ASM code for AVX2 with AoS, lt600 variant Signed-off-by: Rafael Ravedutti --- .../avx2/force_aos_lt600_markers.txt | 90 + asm/avx2/force_aos_lt600_markers.s | 12817 ++++++++++++++++ 2 files changed, 12907 insertions(+) create mode 100644 arch_analysis/avx2/force_aos_lt600_markers.txt create mode 100644 asm/avx2/force_aos_lt600_markers.s diff --git a/arch_analysis/avx2/force_aos_lt600_markers.txt b/arch_analysis/avx2/force_aos_lt600_markers.txt new file mode 100644 index 0000000..b960e26 --- /dev/null +++ b/arch_analysis/avx2/force_aos_lt600_markers.txt @@ -0,0 +1,90 @@ +iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=BDW asm/avx2/force_aos_lt600_markers.s +Open Source Architecture Code Analyzer (OSACA) - 0.3.14 +Analyzed file: asm/avx2/force_aos_lt600_markers.s +Architecture: BDW +Timestamp: 2021-05-07 23:01:31 + + + P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction + * - Instruction micro-ops not bound to a port + X - No throughput/latency information for this instruction in data file + + +Combined Analysis Report +------------------------ + Port pressure in cycles + | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | +---------------------------------------------------------------------------------------------------- +12567 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rax,%r8,4), %xmm2 #60.25 +12568 | 1.00 | | | | | | | || 1.0 | | vmovd %xmm2, %rdx #60.25 +12569 | | | | | | 1.00 | | || | | vpunpckhqdq %xmm2, %xmm2, %xmm8 #60.25 +12570 | 1.00 | | | | | | | || | | vmovd %xmm8, %r9 #60.25 +12571 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | movl %edx, %ebx #60.25 +12572 | 0.00 | | | | | | 1.00 | || | | shrq $32, %rdx #60.25 +12573 | | 0.50 | | | | 0.50 | | || | | lea (%rdx,%rdx,2), %esi #61.40 +12574 | | 0.50 | | | | 0.50 | | || 1.0 | | lea (%rbx,%rbx,2), %ebx #61.40 +12575 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | movslq %ebx, %rdx #61.40 +12576 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %esi, %rbx #61.40 +12577 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movl %r9d, %esi #60.25 +12578 | 0.00 | | | | | | 1.00 | || | | shrq $32, %r9 #60.25 +12579 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovups (%rcx,%rdx,8), %xmm13 #61.40 +12580 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovups (%rcx,%rbx,8), %xmm0 #61.40 +12581 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovq 16(%rcx,%rdx,8), %xmm14 #61.40 +12582 | | 0.00 | | | | 1.00 | | || | | lea (%rsi,%rsi,2), %esi #61.40 +12583 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %esi, %rsi #61.40 +12584 | | 0.00 | | | | 1.00 | | || | | lea (%r9,%r9,2), %r9d #61.40 +12585 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r9d, %r9 #61.40 +12586 | | | 0.50 0.50 | 0.50 0.50 | | 1.00 | | || | | vmovhpd 16(%rcx,%rbx,8), %xmm14, %xmm15 #61.40 +12587 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 1.0 | | vinsertf128 $1, (%rcx,%rsi,8), %ymm13, %ymm7 #61.40 +12588 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovq 16(%rcx,%rsi,8), %xmm2 #61.40 +12589 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | | vinsertf128 $1, (%rcx,%r9,8), %ymm0, %ymm0 #61.40 +12590 | | | 0.50 0.50 | 0.50 0.50 | | 1.00 | | || | | vmovhpd 16(%rcx,%r9,8), %xmm2, %xmm8 #61.40 +12591 | | | | | | 1.00 | | || | | vunpcklpd %ymm0, %ymm7, %ymm14 #61.40 +12592 | | | | | | 1.00 | | || 1.0 | | vunpckhpd %ymm0, %ymm7, %ymm7 #61.40 +12593 | | 1.00 | | | | | | || | | vsubpd %ymm14, %ymm5, %ymm0 #61.40 +12594 | | | | | | 1.00 | | || | | vinsertf128 $1, %xmm8, %ymm15, %ymm13 #61.40 +12595 | | 1.00 | | | | | | || 3.0 | | vsubpd %ymm7, %ymm4, %ymm8 #62.40 +12596 | | 1.00 | | | | | | || | | vsubpd %ymm13, %ymm6, %ymm2 #63.40 +12597 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm8, %ymm8, %ymm14 #64.53 +12598 | 0.50 | 0.50 | | | | | | || 5.0 | | vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 +12599 | 0.25 | 0.75 | | | | | | || 5.0 | | vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 +12600 | | | | | | | | || | | X vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 +12601 | | 0.00 | | | | 1.00 | | || | | vpcmpeqd %ymm13, %ymm13, %ymm13 #66.26 +12602 | 1.00 | | | | | 1.00 | | || | | vptest %ymm13, %ymm7 #66.26 +12603 | | | | | | | | || | | X je ..B1.26 # Prob 50% #66.26 +12604 | | | | | | | | || | | # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 +12605 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 +12606 | | | | | | | | || | | # Execution count [1.25e+04] +12607 | 2.50 16.00 | 0.50 | | | | | | || 23.0 | | vdivpd %ymm14, %ymm10, %ymm13 #67.42 +12608 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 3.0 | | vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] +12609 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm14 #68.48 +12610 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm15 #68.54 +12611 | 0.50 | 0.50 | | | | | | || | | vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 +12612 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | | vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] +12613 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm15, %ymm15 #69.65 +12614 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm15, %ymm13 #69.71 +12615 | 0.75 | 0.25 | | | | | | || | | vmulpd %ymm13, %ymm0, %ymm0 #70.35 +12616 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm8, %ymm8 #71.35 +12617 | | | | | | 1.00 | | || | | vandpd %ymm0, %ymm7, %ymm0 #70.35 +12618 | | 1.00 | | | | | | || | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21 +12619 | 1.00 | 0.00 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm2, %ymm0 #72.35 +12620 | | | | | | 1.00 | | || | | vandpd %ymm8, %ymm7, %ymm2 #71.35 +12621 | | | | | | 1.00 | | || 1.0 | | vandpd %ymm0, %ymm7, %ymm7 #72.35 +12622 | | 1.00 | | | | | | || | | vaddpd %ymm2, %ymm1, %ymm1 #71.21 +12623 | | 1.00 | | | | | | || 3.0 | | vaddpd %ymm7, %ymm3, %ymm3 #72.21 +12624 | | | | | | | | || | | # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +12625 | | | | | | | | || | | ..B1.26: # Preds ..B1.25 ..B1.24 +12626 | | | | | | | | || | | # Execution count [2.50e+04] +12627 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $4, %r8 #59.13 +12628 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rdi, %r8 #59.13 +12629 | | | | | | | | || | | * jb ..B1.24 # Prob 82% #59.13 + + 14.0 16.00 14.0 5.50 5.50 5.50 5.50 14.0 10.0 75.0 3 + + +Loop-Carried Dependencies Analysis Report +----------------------------------------- +12618 | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21| [12618] +12622 | 3.0 | vaddpd %ymm2, %ymm1, %ymm1 #71.21| [12622] +12623 | 3.0 | vaddpd %ymm7, %ymm3, %ymm3 #72.21| [12623] +12627 | 1.0 | addq $4, %r8 #59.13| [12627] diff --git a/asm/avx2/force_aos_lt600_markers.s b/asm/avx2/force_aos_lt600_markers.s new file mode 100644 index 0000000..5ff73a6 --- /dev/null +++ b/asm/avx2/force_aos_lt600_markers.s @@ -0,0 +1,12817 @@ +# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; +# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -"; +# mark_description "fast -xCORE-AVX2 -o ICC/force.s"; + .file "force.c" + .section __ildata, "" + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 236 + .byte 213 + .byte 42 + .byte 66 + .byte 178 + .byte 52 + .byte 67 + .byte 28 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 161 + .byte 31 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 97 + .byte 16 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 250 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 204 + .byte 1 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 31 + .byte 0 + .byte 0 + .byte 80 + .byte 0 + .byte 0 + .byte 0 + .byte 82 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 157 + .byte 3 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 0 + .byte 0 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 78 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 29 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 18 + .byte 0 + .byte 1 + .byte 1 + .byte 52 + .byte 9 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 2 + .byte 186 + .byte 1 + .byte 186 + .byte 1 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 3 + .byte 189 + .byte 1 + .byte 194 + .byte 0 + .byte 128 + .byte 1 + .byte 2 + .byte 4 + .byte 0 + .byte 2 + .byte 0 + .byte 2 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 5 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 4 + .byte 190 + .byte 1 + .byte 190 + .byte 1 + .byte 128 + .byte 1 + .byte 1 + .byte 3 + .byte 0 + .byte 1 + .byte 3 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 5 + .byte 18 + .byte 61 + .byte 136 + .byte 1 + .byte 2 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 6 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 6 + .byte 187 + .byte 1 + .byte 187 + .byte 1 + .byte 0 + .byte 1 + .byte 5 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 7 + .byte 195 + .byte 1 + .byte 27 + .byte 199 + .byte 3 + .byte 2 + .byte 17 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 8 + .byte 193 + .byte 1 + .byte 55 + .byte 161 + .byte 3 + .byte 2 + .byte 15 + .byte 0 + .byte 7 + .byte 0 + .byte 2 + .byte 9 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 137 + .byte 4 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 9 + .byte 188 + .byte 1 + .byte 188 + .byte 1 + .byte 0 + .byte 1 + .byte 8 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 10 + .byte 191 + .byte 1 + .byte 40 + .byte 147 + .byte 3 + .byte 2 + .byte 13 + .byte 0 + .byte 9 + .byte 0 + .byte 2 + .byte 11 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 1 + .byte 1 + .byte 11 + .byte 34 + .byte 39 + .byte 199 + .byte 2 + .byte 1 + .byte 10 + .byte 0 + .byte 1 + .byte 12 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 12 + .byte 41 + .byte 206 + .byte 0 + .byte 138 + .byte 3 + .byte 2 + .byte 11 + .byte 0 + .byte 10 + .byte 0 + .byte 2 + .byte 13 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 14 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 13 + .byte 192 + .byte 1 + .byte 192 + .byte 1 + .byte 147 + .byte 3 + .byte 1 + .byte 12 + .byte 0 + .byte 1 + .byte 10 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 14 + .byte 43 + .byte 202 + .byte 0 + .byte 152 + .byte 3 + .byte 2 + .byte 12 + .byte 0 + .byte 8 + .byte 0 + .byte 2 + .byte 15 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 16 + .byte 1 + .byte 128 + .byte 152 + .byte 179 + .byte 238 + .byte 3 + .byte 15 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 15 + .byte 194 + .byte 1 + .byte 194 + .byte 1 + .byte 161 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 1 + .byte 8 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 16 + .byte 185 + .byte 1 + .byte 198 + .byte 0 + .byte 170 + .byte 3 + .byte 1 + .byte 14 + .byte 0 + .byte 2 + .byte 17 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 18 + .byte 1 + .byte 128 + .byte 128 + .byte 192 + .byte 140 + .byte 4 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 1 + .byte 1 + .byte 17 + .byte 196 + .byte 1 + .byte 196 + .byte 1 + .byte 199 + .byte 3 + .byte 1 + .byte 16 + .byte 0 + .byte 1 + .byte 7 + .byte 1 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 15 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 18 + .byte 50 + .byte 50 + .byte 204 + .byte 3 + .byte 2 + .byte 16 + .byte 0 + .byte 5 + .byte 0 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 1 + .byte 1 + .byte 76 + .byte 9 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 2 + .byte 0 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 11 + .byte 3 + .byte 12 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 2 + .byte 72 + .byte 38 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 4 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 204 + .byte 7 + .byte 18 + .byte 65 + .byte 67 + .byte 4 + .byte 72 + .byte 48 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 5 + .byte 2 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 206 + .byte 7 + .byte 35 + .byte 65 + .byte 67 + .byte 5 + .byte 72 + .byte 54 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 6 + .byte 4 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 209 + .byte 7 + .byte 41 + .byte 65 + .byte 67 + .byte 6 + .byte 72 + .byte 60 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 7 + .byte 5 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 211 + .byte 7 + .byte 48 + .byte 65 + .byte 67 + .byte 7 + .byte 72 + .byte 194 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 8 + .byte 6 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 213 + .byte 7 + .byte 55 + .byte 65 + .byte 67 + .byte 8 + .byte 72 + .byte 200 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 9 + .byte 7 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 215 + .byte 7 + .byte 62 + .byte 65 + .byte 67 + .byte 9 + .byte 72 + .byte 206 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 12 + .byte 8 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 217 + .byte 7 + .byte 197 + .byte 0 + .byte 65 + .byte 67 + .byte 12 + .byte 72 + .byte 214 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 52 + .byte 9 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 219 + .byte 7 + .byte 204 + .byte 0 + .byte 65 + .byte 67 + .byte 13 + .byte 72 + .byte 227 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 14 + .byte 189 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 214 + .byte 0 + .byte 205 + .byte 0 + .byte 65 + .byte 67 + .byte 14 + .byte 72 + .byte 235 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 15 + .byte 13 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 224 + .byte 0 + .byte 215 + .byte 0 + .byte 65 + .byte 67 + .byte 15 + .byte 72 + .byte 243 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 16 + .byte 14 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 234 + .byte 0 + .byte 225 + .byte 0 + .byte 65 + .byte 67 + .byte 16 + .byte 72 + .byte 247 + .byte 0 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 194 + .byte 0 + .byte 15 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 227 + .byte 7 + .byte 238 + .byte 0 + .byte 65 + .byte 67 + .byte 18 + .byte 72 + .byte 136 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 61 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 0 + .byte 231 + .byte 7 + .byte 243 + .byte 0 + .byte 65 + .byte 67 + .byte 19 + .byte 72 + .byte 167 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 20 + .byte 195 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 233 + .byte 7 + .byte 133 + .byte 1 + .byte 65 + .byte 67 + .byte 20 + .byte 72 + .byte 175 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 21 + .byte 19 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 237 + .byte 7 + .byte 149 + .byte 1 + .byte 65 + .byte 67 + .byte 21 + .byte 72 + .byte 181 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 22 + .byte 20 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 240 + .byte 7 + .byte 168 + .byte 1 + .byte 65 + .byte 67 + .byte 22 + .byte 72 + .byte 190 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 23 + .byte 21 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 243 + .byte 7 + .byte 187 + .byte 1 + .byte 65 + .byte 67 + .byte 23 + .byte 72 + .byte 199 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 24 + .byte 22 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 246 + .byte 7 + .byte 206 + .byte 1 + .byte 65 + .byte 67 + .byte 24 + .byte 72 + .byte 206 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 25 + .byte 23 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 249 + .byte 7 + .byte 208 + .byte 1 + .byte 65 + .byte 67 + .byte 25 + .byte 72 + .byte 210 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 26 + .byte 24 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 250 + .byte 7 + .byte 210 + .byte 1 + .byte 65 + .byte 67 + .byte 26 + .byte 72 + .byte 214 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 27 + .byte 25 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 251 + .byte 7 + .byte 212 + .byte 1 + .byte 65 + .byte 67 + .byte 27 + .byte 72 + .byte 220 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 193 + .byte 1 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 252 + .byte 7 + .byte 214 + .byte 1 + .byte 65 + .byte 67 + .byte 28 + .byte 72 + .byte 232 + .byte 1 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 55 + .byte 193 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 253 + .byte 7 + .byte 216 + .byte 1 + .byte 65 + .byte 67 + .byte 29 + .byte 72 + .byte 129 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 30 + .byte 191 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 255 + .byte 7 + .byte 226 + .byte 1 + .byte 65 + .byte 67 + .byte 30 + .byte 72 + .byte 137 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 31 + .byte 29 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 130 + .byte 8 + .byte 247 + .byte 1 + .byte 65 + .byte 67 + .byte 31 + .byte 72 + .byte 148 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 32 + .byte 30 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 134 + .byte 8 + .byte 140 + .byte 2 + .byte 65 + .byte 67 + .byte 32 + .byte 72 + .byte 159 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 33 + .byte 31 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 138 + .byte 8 + .byte 161 + .byte 2 + .byte 65 + .byte 67 + .byte 33 + .byte 72 + .byte 178 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 40 + .byte 32 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 142 + .byte 8 + .byte 173 + .byte 2 + .byte 65 + .byte 67 + .byte 34 + .byte 72 + .byte 199 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 35 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 151 + .byte 8 + .byte 177 + .byte 2 + .byte 65 + .byte 67 + .byte 35 + .byte 72 + .byte 211 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 36 + .byte 34 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 153 + .byte 8 + .byte 185 + .byte 2 + .byte 65 + .byte 67 + .byte 36 + .byte 72 + .byte 227 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 37 + .byte 35 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 158 + .byte 8 + .byte 197 + .byte 2 + .byte 65 + .byte 67 + .byte 37 + .byte 72 + .byte 235 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 38 + .byte 36 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 163 + .byte 8 + .byte 203 + .byte 2 + .byte 65 + .byte 67 + .byte 38 + .byte 72 + .byte 243 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 39 + .byte 37 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 167 + .byte 8 + .byte 209 + .byte 2 + .byte 65 + .byte 67 + .byte 39 + .byte 72 + .byte 251 + .byte 2 + .byte 195 + .byte 161 + .byte 141 + .byte 178 + .byte 4 + .byte 0 + .byte 38 + .byte 0 + .byte 0 + .byte 0 + .byte 11 + .byte 0 + .byte 171 + .byte 8 + .byte 215 + .byte 2 + .byte 65 + .byte 67 + .byte 40 + .byte 78 + .byte 133 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 41 + .byte 33 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 218 + .byte 2 + .byte 0 + .byte 34 + .byte 128 + .byte 128 + .byte 160 + .byte 146 + .byte 4 + .byte 41 + .byte 72 + .byte 138 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 206 + .byte 0 + .byte 40 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 0 + .byte 175 + .byte 8 + .byte 222 + .byte 2 + .byte 65 + .byte 67 + .byte 43 + .byte 72 + .byte 152 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 202 + .byte 0 + .byte 55 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 14 + .byte 0 + .byte 179 + .byte 8 + .byte 229 + .byte 2 + .byte 65 + .byte 67 + .byte 45 + .byte 72 + .byte 170 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 46 + .byte 183 + .byte 1 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 242 + .byte 2 + .byte 252 + .byte 2 + .byte 65 + .byte 67 + .byte 46 + .byte 72 + .byte 178 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 47 + .byte 45 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 134 + .byte 3 + .byte 144 + .byte 3 + .byte 65 + .byte 67 + .byte 47 + .byte 72 + .byte 186 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 48 + .byte 46 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 154 + .byte 3 + .byte 164 + .byte 3 + .byte 65 + .byte 67 + .byte 48 + .byte 72 + .byte 190 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 198 + .byte 0 + .byte 47 + .byte 128 + .byte 128 + .byte 2 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 203 + .byte 8 + .byte 168 + .byte 3 + .byte 65 + .byte 67 + .byte 50 + .byte 77 + .byte 204 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 0 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 18 + .byte 0 + .byte 174 + .byte 3 + .byte 67 + .byte 52 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 18 + .byte 12 + .byte 2 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 241 + .byte 0 + .byte 0 + .byte 186 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 55 + .byte 78 + .byte 147 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 43 + .byte 28 + .byte 2 + .byte 1 + .byte 0 + .byte 8 + .byte 0 + .byte 225 + .byte 2 + .byte 0 + .byte 188 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 61 + .byte 78 + .byte 199 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 252 + .byte 3 + .byte 50 + .byte 18 + .byte 2 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 171 + .byte 3 + .byte 0 + .byte 187 + .byte 1 + .byte 128 + .byte 128 + .byte 208 + .byte 149 + .byte 4 + .byte 194 + .byte 0 + .byte 78 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 16 + .byte 2 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 175 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 198 + .byte 0 + .byte 78 + .byte 199 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 0 + .byte 48 + .byte 2 + .byte 1 + .byte 0 + .byte 16 + .byte 0 + .byte 178 + .byte 3 + .byte 0 + .byte 196 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 202 + .byte 0 + .byte 78 + .byte 161 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 185 + .byte 1 + .byte 43 + .byte 2 + .byte 1 + .byte 0 + .byte 14 + .byte 0 + .byte 181 + .byte 3 + .byte 0 + .byte 194 + .byte 1 + .byte 205 + .byte 153 + .byte 159 + .byte 150 + .byte 4 + .byte 206 + .byte 0 + .byte 78 + .byte 147 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 0 + .byte 41 + .byte 2 + .byte 1 + .byte 0 + .byte 12 + .byte 0 + .byte 184 + .byte 3 + .byte 0 + .byte 192 + .byte 1 + .byte 128 + .byte 128 + .byte 144 + .byte 149 + .byte 4 + .byte 183 + .byte 1 + .byte 72 + .byte 170 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 45 + .byte 184 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 186 + .byte 8 + .byte 187 + .byte 8 + .byte 65 + .byte 67 + .byte 184 + .byte 1 + .byte 72 + .byte 170 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 183 + .byte 1 + .byte 185 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 184 + .byte 8 + .byte 185 + .byte 8 + .byte 65 + .byte 67 + .byte 185 + .byte 1 + .byte 72 + .byte 170 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 184 + .byte 1 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 16 + .byte 0 + .byte 182 + .byte 8 + .byte 183 + .byte 8 + .byte 65 + .byte 67 + .byte 186 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 189 + .byte 1 + .byte 52 + .byte 0 + .byte 0 + .byte 0 + .byte 2 + .byte 0 + .byte 187 + .byte 1 + .byte 93 + .byte 0 + .byte 230 + .byte 204 + .byte 153 + .byte 251 + .byte 3 + .byte 195 + .byte 1 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte 0 + .byte 188 + .byte 1 + .byte 93 + .byte 0 + .byte 140 + .byte 193 + .byte 178 + .byte 172 + .byte 4 + .byte 191 + .byte 1 + .byte 55 + .byte 0 + .byte 0 + .byte 0 + .byte 9 + .byte 0 + .byte 189 + .byte 1 + .byte 93 + .byte 128 + .byte 1 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 13 + .byte 186 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 3 + .byte 0 + .byte 190 + .byte 1 + .byte 80 + .byte 128 + .byte 1 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 194 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 4 + .byte 0 + .byte 189 + .byte 1 + .byte 191 + .byte 1 + .byte 93 + .byte 147 + .byte 3 + .byte 195 + .byte 161 + .byte 141 + .byte 182 + .byte 4 + .byte 29 + .byte 188 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 10 + .byte 0 + .byte 192 + .byte 1 + .byte 80 + .byte 147 + .byte 3 + .byte 160 + .byte 209 + .byte 128 + .byte 181 + .byte 4 + .byte 0 + .byte 206 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 13 + .byte 0 + .byte 191 + .byte 1 + .byte 193 + .byte 1 + .byte 93 + .byte 161 + .byte 3 + .byte 156 + .byte 129 + .byte 241 + .byte 172 + .byte 4 + .byte 28 + .byte 27 + .byte 0 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 194 + .byte 1 + .byte 80 + .byte 161 + .byte 3 + .byte 156 + .byte 177 + .byte 240 + .byte 172 + .byte 4 + .byte 0 + .byte 202 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 15 + .byte 0 + .byte 193 + .byte 1 + .byte 195 + .byte 1 + .byte 93 + .byte 199 + .byte 3 + .byte 128 + .byte 128 + .byte 128 + .byte 133 + .byte 4 + .byte 19 + .byte 187 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 7 + .byte 0 + .byte 196 + .byte 1 + .byte 80 + .byte 199 + .byte 3 + .byte 179 + .byte 230 + .byte 140 + .byte 132 + .byte 4 + .byte 0 + .byte 198 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 17 + .byte 0 + .byte 195 + .byte 1 + .byte 1 + .byte 1 + .byte 7 + .byte 1 + .byte 2 + .byte 1 + .byte 7 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 11 + .byte 7 + .byte 6 + .byte 1 + .byte 0 + .byte 2 + .byte 80 + .byte 4 + .byte 1 + .byte 7 + .byte 2 + .byte 5 + .byte 1 + .byte 7 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 11 + .byte 7 + .byte 9 + .byte 4 + .byte 0 + .byte 5 + .byte 80 + .byte 7 + .byte 1 + .byte 7 + .byte 3 + .byte 8 + .byte 1 + .byte 7 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 11 + .byte 7 + .byte 0 + .byte 7 + .byte 0 + .byte 8 + .byte 80 + .byte 10 + .byte 1 + .byte 7 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 11 + .byte 7 + .byte 0 + .byte 10 + .byte 0 + .byte 0 + .byte 80 + .byte 12 + .byte 0 + .byte 9 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 17 + .byte 0 + .byte 38 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 18 + .byte 8 + .byte 38 + .byte 205 + .byte 7 + .byte 19 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 19 + .byte 1 + .byte 38 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 46 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 27 + .byte 8 + .byte 46 + .byte 207 + .byte 7 + .byte 28 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 28 + .byte 1 + .byte 46 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 48 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 33 + .byte 8 + .byte 48 + .byte 208 + .byte 7 + .byte 34 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 34 + .byte 1 + .byte 48 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 35 + .byte 21 + .byte 48 + .byte 27 + .byte 33 + .byte 12 + .byte 40 + .byte 0 + .byte 54 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 41 + .byte 8 + .byte 54 + .byte 210 + .byte 7 + .byte 42 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 40 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 42 + .byte 1 + .byte 54 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 60 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 48 + .byte 8 + .byte 60 + .byte 212 + .byte 7 + .byte 49 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 47 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 49 + .byte 1 + .byte 60 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 194 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 55 + .byte 8 + .byte 194 + .byte 0 + .byte 214 + .byte 7 + .byte 56 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 54 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 56 + .byte 1 + .byte 194 + .byte 0 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 200 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 62 + .byte 8 + .byte 200 + .byte 0 + .byte 216 + .byte 7 + .byte 63 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 61 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 63 + .byte 1 + .byte 200 + .byte 0 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 206 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 197 + .byte 0 + .byte 8 + .byte 206 + .byte 0 + .byte 218 + .byte 7 + .byte 198 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 196 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 198 + .byte 0 + .byte 1 + .byte 206 + .byte 0 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 204 + .byte 0 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 205 + .byte 0 + .byte 0 + .byte 223 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 208 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 209 + .byte 0 + .byte 15 + .byte 227 + .byte 0 + .byte 222 + .byte 7 + .byte 7 + .byte 6 + .byte 210 + .byte 0 + .byte 22 + .byte 227 + .byte 0 + .byte 209 + .byte 0 + .byte 208 + .byte 0 + .byte 7 + .byte 211 + .byte 0 + .byte 19 + .byte 227 + .byte 0 + .byte 221 + .byte 7 + .byte 210 + .byte 0 + .byte 36 + .byte 212 + .byte 0 + .byte 1 + .byte 227 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 227 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 0 + .byte 8 + .byte 227 + .byte 0 + .byte 211 + .byte 0 + .byte 212 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 213 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 215 + .byte 0 + .byte 0 + .byte 231 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 218 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 219 + .byte 0 + .byte 15 + .byte 235 + .byte 0 + .byte 224 + .byte 7 + .byte 7 + .byte 6 + .byte 220 + .byte 0 + .byte 22 + .byte 235 + .byte 0 + .byte 219 + .byte 0 + .byte 218 + .byte 0 + .byte 7 + .byte 221 + .byte 0 + .byte 19 + .byte 235 + .byte 0 + .byte 223 + .byte 7 + .byte 220 + .byte 0 + .byte 36 + .byte 222 + .byte 0 + .byte 1 + .byte 235 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 235 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 224 + .byte 0 + .byte 8 + .byte 235 + .byte 0 + .byte 221 + .byte 0 + .byte 222 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 225 + .byte 0 + .byte 0 + .byte 239 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 228 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 229 + .byte 0 + .byte 15 + .byte 243 + .byte 0 + .byte 226 + .byte 7 + .byte 7 + .byte 6 + .byte 230 + .byte 0 + .byte 22 + .byte 243 + .byte 0 + .byte 229 + .byte 0 + .byte 228 + .byte 0 + .byte 7 + .byte 231 + .byte 0 + .byte 19 + .byte 243 + .byte 0 + .byte 225 + .byte 7 + .byte 230 + .byte 0 + .byte 36 + .byte 232 + .byte 0 + .byte 1 + .byte 243 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 243 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 234 + .byte 0 + .byte 8 + .byte 243 + .byte 0 + .byte 231 + .byte 0 + .byte 232 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 236 + .byte 0 + .byte 0 + .byte 247 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 0 + .byte 19 + .byte 247 + .byte 0 + .byte 228 + .byte 7 + .byte 236 + .byte 0 + .byte 6 + .byte 241 + .byte 0 + .byte 46 + .byte 254 + .byte 0 + .byte 177 + .byte 7 + .byte 220 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 243 + .byte 0 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 248 + .byte 0 + .byte 0 + .byte 163 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 249 + .byte 0 + .byte 8 + .byte 163 + .byte 1 + .byte 236 + .byte 7 + .byte 250 + .byte 0 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 250 + .byte 0 + .byte 1 + .byte 163 + .byte 1 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 0 + .byte 22 + .byte 163 + .byte 1 + .byte 235 + .byte 7 + .byte 249 + .byte 0 + .byte 6 + .byte 255 + .byte 0 + .byte 0 + .byte 165 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 128 + .byte 1 + .byte 8 + .byte 165 + .byte 1 + .byte 234 + .byte 7 + .byte 129 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 129 + .byte 1 + .byte 1 + .byte 165 + .byte 1 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 1 + .byte 0 + .byte 165 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 1 + .byte 15 + .byte 165 + .byte 1 + .byte 251 + .byte 0 + .byte 7 + .byte 6 + .byte 132 + .byte 1 + .byte 22 + .byte 165 + .byte 1 + .byte 131 + .byte 1 + .byte 130 + .byte 1 + .byte 7 + .byte 133 + .byte 1 + .byte 19 + .byte 165 + .byte 1 + .byte 128 + .byte 1 + .byte 132 + .byte 1 + .byte 36 + .byte 140 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 141 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 238 + .byte 7 + .byte 142 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 140 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 142 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 143 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 1 + .byte 15 + .byte 175 + .byte 1 + .byte 239 + .byte 7 + .byte 7 + .byte 6 + .byte 145 + .byte 1 + .byte 22 + .byte 175 + .byte 1 + .byte 144 + .byte 1 + .byte 143 + .byte 1 + .byte 7 + .byte 146 + .byte 1 + .byte 19 + .byte 175 + .byte 1 + .byte 141 + .byte 1 + .byte 145 + .byte 1 + .byte 36 + .byte 147 + .byte 1 + .byte 1 + .byte 175 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 175 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 1 + .byte 8 + .byte 175 + .byte 1 + .byte 146 + .byte 1 + .byte 147 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 148 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 152 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 153 + .byte 1 + .byte 22 + .byte 181 + .byte 1 + .byte 242 + .byte 7 + .byte 152 + .byte 1 + .byte 6 + .byte 159 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 160 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 241 + .byte 7 + .byte 161 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 159 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 161 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 162 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 163 + .byte 1 + .byte 15 + .byte 181 + .byte 1 + .byte 153 + .byte 1 + .byte 7 + .byte 6 + .byte 164 + .byte 1 + .byte 22 + .byte 181 + .byte 1 + .byte 163 + .byte 1 + .byte 162 + .byte 1 + .byte 7 + .byte 165 + .byte 1 + .byte 19 + .byte 181 + .byte 1 + .byte 160 + .byte 1 + .byte 164 + .byte 1 + .byte 36 + .byte 166 + .byte 1 + .byte 1 + .byte 181 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 167 + .byte 1 + .byte 0 + .byte 181 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 168 + .byte 1 + .byte 8 + .byte 181 + .byte 1 + .byte 165 + .byte 1 + .byte 166 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 167 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 171 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 172 + .byte 1 + .byte 22 + .byte 190 + .byte 1 + .byte 245 + .byte 7 + .byte 171 + .byte 1 + .byte 6 + .byte 173 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 174 + .byte 1 + .byte 19 + .byte 190 + .byte 1 + .byte 172 + .byte 1 + .byte 173 + .byte 1 + .byte 6 + .byte 178 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 179 + .byte 1 + .byte 8 + .byte 190 + .byte 1 + .byte 244 + .byte 7 + .byte 180 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 178 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 180 + .byte 1 + .byte 1 + .byte 190 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 181 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 182 + .byte 1 + .byte 15 + .byte 190 + .byte 1 + .byte 174 + .byte 1 + .byte 7 + .byte 6 + .byte 183 + .byte 1 + .byte 22 + .byte 190 + .byte 1 + .byte 182 + .byte 1 + .byte 181 + .byte 1 + .byte 7 + .byte 184 + .byte 1 + .byte 19 + .byte 190 + .byte 1 + .byte 179 + .byte 1 + .byte 183 + .byte 1 + .byte 36 + .byte 185 + .byte 1 + .byte 1 + .byte 190 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 186 + .byte 1 + .byte 0 + .byte 190 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 187 + .byte 1 + .byte 8 + .byte 190 + .byte 1 + .byte 184 + .byte 1 + .byte 185 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 186 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 190 + .byte 1 + .byte 0 + .byte 199 + .byte 1 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 191 + .byte 1 + .byte 22 + .byte 199 + .byte 1 + .byte 248 + .byte 7 + .byte 190 + .byte 1 + .byte 6 + .byte 192 + .byte 1 + .byte 0 + .byte 199 + .byte 1 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 193 + .byte 1 + .byte 19 + .byte 199 + .byte 1 + .byte 191 + .byte 1 + .byte 192 + .byte 1 + .byte 6 + .byte 197 + .byte 1 + .byte 0 + .byte 199 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 198 + .byte 1 + .byte 8 + .byte 199 + .byte 1 + .byte 247 + .byte 7 + .byte 199 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 197 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 199 + .byte 1 + .byte 1 + .byte 199 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 200 + .byte 1 + .byte 0 + .byte 199 + .byte 1 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 201 + .byte 1 + .byte 15 + .byte 199 + .byte 1 + .byte 193 + .byte 1 + .byte 7 + .byte 6 + .byte 202 + .byte 1 + .byte 22 + .byte 199 + .byte 1 + .byte 201 + .byte 1 + .byte 200 + .byte 1 + .byte 7 + .byte 203 + .byte 1 + .byte 19 + .byte 199 + .byte 1 + .byte 198 + .byte 1 + .byte 202 + .byte 1 + .byte 36 + .byte 204 + .byte 1 + .byte 1 + .byte 199 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 205 + .byte 1 + .byte 0 + .byte 199 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 206 + .byte 1 + .byte 8 + .byte 199 + .byte 1 + .byte 203 + .byte 1 + .byte 204 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 205 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 208 + .byte 1 + .byte 0 + .byte 206 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 210 + .byte 1 + .byte 0 + .byte 210 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 212 + .byte 1 + .byte 0 + .byte 214 + .byte 1 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 214 + .byte 1 + .byte 0 + .byte 220 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 216 + .byte 1 + .byte 0 + .byte 232 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 220 + .byte 1 + .byte 0 + .byte 129 + .byte 2 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 221 + .byte 1 + .byte 15 + .byte 129 + .byte 2 + .byte 129 + .byte 8 + .byte 7 + .byte 6 + .byte 222 + .byte 1 + .byte 22 + .byte 129 + .byte 2 + .byte 221 + .byte 1 + .byte 220 + .byte 1 + .byte 7 + .byte 223 + .byte 1 + .byte 19 + .byte 129 + .byte 2 + .byte 128 + .byte 8 + .byte 222 + .byte 1 + .byte 36 + .byte 224 + .byte 1 + .byte 1 + .byte 129 + .byte 2 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 1 + .byte 0 + .byte 129 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 226 + .byte 1 + .byte 8 + .byte 129 + .byte 2 + .byte 223 + .byte 1 + .byte 224 + .byte 1 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 230 + .byte 1 + .byte 0 + .byte 137 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 231 + .byte 1 + .byte 22 + .byte 137 + .byte 2 + .byte 133 + .byte 8 + .byte 230 + .byte 1 + .byte 6 + .byte 237 + .byte 1 + .byte 0 + .byte 137 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 238 + .byte 1 + .byte 8 + .byte 137 + .byte 2 + .byte 132 + .byte 8 + .byte 239 + .byte 1 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 239 + .byte 1 + .byte 1 + .byte 137 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 240 + .byte 1 + .byte 0 + .byte 137 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 241 + .byte 1 + .byte 15 + .byte 137 + .byte 2 + .byte 231 + .byte 1 + .byte 7 + .byte 6 + .byte 242 + .byte 1 + .byte 22 + .byte 137 + .byte 2 + .byte 241 + .byte 1 + .byte 240 + .byte 1 + .byte 7 + .byte 243 + .byte 1 + .byte 19 + .byte 137 + .byte 2 + .byte 238 + .byte 1 + .byte 242 + .byte 1 + .byte 36 + .byte 244 + .byte 1 + .byte 1 + .byte 137 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 245 + .byte 1 + .byte 0 + .byte 137 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 246 + .byte 1 + .byte 8 + .byte 137 + .byte 2 + .byte 243 + .byte 1 + .byte 244 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 245 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 247 + .byte 1 + .byte 20 + .byte 137 + .byte 2 + .byte 131 + .byte 8 + .byte 246 + .byte 1 + .byte 12 + .byte 251 + .byte 1 + .byte 0 + .byte 148 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 252 + .byte 1 + .byte 22 + .byte 148 + .byte 2 + .byte 137 + .byte 8 + .byte 251 + .byte 1 + .byte 6 + .byte 253 + .byte 1 + .byte 0 + .byte 148 + .byte 2 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 254 + .byte 1 + .byte 19 + .byte 148 + .byte 2 + .byte 252 + .byte 1 + .byte 253 + .byte 1 + .byte 6 + .byte 130 + .byte 2 + .byte 0 + .byte 148 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 131 + .byte 2 + .byte 8 + .byte 148 + .byte 2 + .byte 136 + .byte 8 + .byte 132 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 130 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 132 + .byte 2 + .byte 1 + .byte 148 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 133 + .byte 2 + .byte 0 + .byte 148 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 134 + .byte 2 + .byte 15 + .byte 148 + .byte 2 + .byte 254 + .byte 1 + .byte 7 + .byte 6 + .byte 135 + .byte 2 + .byte 22 + .byte 148 + .byte 2 + .byte 134 + .byte 2 + .byte 133 + .byte 2 + .byte 7 + .byte 136 + .byte 2 + .byte 19 + .byte 148 + .byte 2 + .byte 131 + .byte 2 + .byte 135 + .byte 2 + .byte 36 + .byte 137 + .byte 2 + .byte 1 + .byte 148 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 138 + .byte 2 + .byte 0 + .byte 148 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 139 + .byte 2 + .byte 8 + .byte 148 + .byte 2 + .byte 136 + .byte 2 + .byte 137 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 138 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 140 + .byte 2 + .byte 20 + .byte 148 + .byte 2 + .byte 135 + .byte 8 + .byte 139 + .byte 2 + .byte 12 + .byte 144 + .byte 2 + .byte 0 + .byte 159 + .byte 2 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 145 + .byte 2 + .byte 22 + .byte 159 + .byte 2 + .byte 141 + .byte 8 + .byte 144 + .byte 2 + .byte 6 + .byte 146 + .byte 2 + .byte 0 + .byte 159 + .byte 2 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 147 + .byte 2 + .byte 19 + .byte 159 + .byte 2 + .byte 145 + .byte 2 + .byte 146 + .byte 2 + .byte 6 + .byte 151 + .byte 2 + .byte 0 + .byte 159 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 152 + .byte 2 + .byte 8 + .byte 159 + .byte 2 + .byte 140 + .byte 8 + .byte 153 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 151 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 153 + .byte 2 + .byte 1 + .byte 159 + .byte 2 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 154 + .byte 2 + .byte 0 + .byte 159 + .byte 2 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 155 + .byte 2 + .byte 15 + .byte 159 + .byte 2 + .byte 147 + .byte 2 + .byte 7 + .byte 6 + .byte 156 + .byte 2 + .byte 22 + .byte 159 + .byte 2 + .byte 155 + .byte 2 + .byte 154 + .byte 2 + .byte 7 + .byte 157 + .byte 2 + .byte 19 + .byte 159 + .byte 2 + .byte 152 + .byte 2 + .byte 156 + .byte 2 + .byte 36 + .byte 158 + .byte 2 + .byte 1 + .byte 159 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 159 + .byte 2 + .byte 0 + .byte 159 + .byte 2 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 160 + .byte 2 + .byte 8 + .byte 159 + .byte 2 + .byte 157 + .byte 2 + .byte 158 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 159 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 161 + .byte 2 + .byte 20 + .byte 159 + .byte 2 + .byte 139 + .byte 8 + .byte 160 + .byte 2 + .byte 12 + .byte 165 + .byte 2 + .byte 21 + .byte 170 + .byte 2 + .byte 143 + .byte 8 + .byte 144 + .byte 8 + .byte 12 + .byte 168 + .byte 2 + .byte 21 + .byte 174 + .byte 2 + .byte 145 + .byte 8 + .byte 146 + .byte 8 + .byte 12 + .byte 169 + .byte 2 + .byte 19 + .byte 174 + .byte 2 + .byte 165 + .byte 2 + .byte 168 + .byte 2 + .byte 12 + .byte 172 + .byte 2 + .byte 21 + .byte 178 + .byte 2 + .byte 147 + .byte 8 + .byte 148 + .byte 8 + .byte 12 + .byte 173 + .byte 2 + .byte 19 + .byte 178 + .byte 2 + .byte 169 + .byte 2 + .byte 172 + .byte 2 + .byte 12 + .byte 175 + .byte 2 + .byte 0 + .byte 197 + .byte 2 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 177 + .byte 2 + .byte 37 + .byte 199 + .byte 2 + .byte 175 + .byte 2 + .byte 152 + .byte 8 + .byte 12 + .byte 1 + .byte 5 + .byte 10 + .byte 109 + .byte 97 + .byte 120 + .byte 45 + .byte 101 + .byte 114 + .byte 114 + .byte 111 + .byte 114 + .byte 0 + .byte 4 + .byte 52 + .byte 46 + .byte 48 + .byte 0 + .byte 17 + .byte 100 + .byte 111 + .byte 109 + .byte 97 + .byte 105 + .byte 110 + .byte 45 + .byte 101 + .byte 120 + .byte 99 + .byte 108 + .byte 117 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 0 + .byte 3 + .byte 49 + .byte 53 + .byte 0 + .byte 18 + .byte 118 + .byte 97 + .byte 108 + .byte 105 + .byte 100 + .byte 45 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 117 + .byte 115 + .byte 45 + .byte 98 + .byte 105 + .byte 116 + .byte 115 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 5 + .byte 102 + .byte 117 + .byte 115 + .byte 97 + .byte 0 + .byte 6 + .byte 102 + .byte 97 + .byte 108 + .byte 115 + .byte 101 + .byte 0 + .byte 8 + .byte 122 + .byte 109 + .byte 109 + .byte 45 + .byte 108 + .byte 111 + .byte 119 + .byte 0 + .byte 5 + .byte 116 + .byte 114 + .byte 117 + .byte 101 + .byte 0 + .byte 181 + .byte 2 + .byte 21 + .byte 207 + .byte 2 + .byte 154 + .byte 8 + .byte 155 + .byte 8 + .byte 12 + .byte 183 + .byte 2 + .byte 21 + .byte 209 + .byte 2 + .byte 181 + .byte 2 + .byte 156 + .byte 8 + .byte 12 + .byte 185 + .byte 2 + .byte 21 + .byte 211 + .byte 2 + .byte 183 + .byte 2 + .byte 157 + .byte 8 + .byte 12 + .byte 187 + .byte 2 + .byte 0 + .byte 217 + .byte 2 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 189 + .byte 2 + .byte 21 + .byte 219 + .byte 2 + .byte 187 + .byte 2 + .byte 159 + .byte 8 + .byte 12 + .byte 191 + .byte 2 + .byte 0 + .byte 223 + .byte 2 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 192 + .byte 2 + .byte 20 + .byte 223 + .byte 2 + .byte 160 + .byte 8 + .byte 191 + .byte 2 + .byte 12 + .byte 193 + .byte 2 + .byte 21 + .byte 223 + .byte 2 + .byte 189 + .byte 2 + .byte 192 + .byte 2 + .byte 12 + .byte 195 + .byte 2 + .byte 21 + .byte 225 + .byte 2 + .byte 193 + .byte 2 + .byte 161 + .byte 8 + .byte 12 + .byte 197 + .byte 2 + .byte 21 + .byte 227 + .byte 2 + .byte 195 + .byte 2 + .byte 162 + .byte 8 + .byte 12 + .byte 200 + .byte 2 + .byte 21 + .byte 233 + .byte 2 + .byte 165 + .byte 8 + .byte 166 + .byte 8 + .byte 12 + .byte 203 + .byte 2 + .byte 19 + .byte 235 + .byte 2 + .byte 164 + .byte 8 + .byte 200 + .byte 2 + .byte 12 + .byte 206 + .byte 2 + .byte 21 + .byte 241 + .byte 2 + .byte 169 + .byte 8 + .byte 170 + .byte 8 + .byte 12 + .byte 209 + .byte 2 + .byte 19 + .byte 243 + .byte 2 + .byte 168 + .byte 8 + .byte 206 + .byte 2 + .byte 12 + .byte 212 + .byte 2 + .byte 21 + .byte 249 + .byte 2 + .byte 173 + .byte 8 + .byte 174 + .byte 8 + .byte 12 + .byte 215 + .byte 2 + .byte 19 + .byte 251 + .byte 2 + .byte 172 + .byte 8 + .byte 212 + .byte 2 + .byte 12 + .byte 218 + .byte 2 + .byte 46 + .byte 131 + .byte 3 + .byte 149 + .byte 8 + .byte 150 + .byte 8 + .byte 6 + .byte 4 + .byte 12 + .byte 220 + .byte 2 + .byte 0 + .byte 138 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 222 + .byte 2 + .byte 19 + .byte 138 + .byte 3 + .byte 176 + .byte 8 + .byte 220 + .byte 2 + .byte 6 + .byte 225 + .byte 2 + .byte 46 + .byte 145 + .byte 3 + .byte 179 + .byte 7 + .byte 254 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 227 + .byte 2 + .byte 0 + .byte 152 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 229 + .byte 2 + .byte 19 + .byte 152 + .byte 3 + .byte 180 + .byte 8 + .byte 227 + .byte 2 + .byte 6 + .byte 236 + .byte 2 + .byte 0 + .byte 170 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 237 + .byte 2 + .byte 15 + .byte 170 + .byte 3 + .byte 189 + .byte 8 + .byte 7 + .byte 6 + .byte 238 + .byte 2 + .byte 22 + .byte 170 + .byte 3 + .byte 237 + .byte 2 + .byte 236 + .byte 2 + .byte 7 + .byte 239 + .byte 2 + .byte 19 + .byte 170 + .byte 3 + .byte 188 + .byte 8 + .byte 238 + .byte 2 + .byte 36 + .byte 240 + .byte 2 + .byte 1 + .byte 170 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 2 + .byte 0 + .byte 170 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 242 + .byte 2 + .byte 8 + .byte 170 + .byte 3 + .byte 239 + .byte 2 + .byte 240 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 243 + .byte 2 + .byte 8 + .byte 170 + .byte 3 + .byte 244 + .byte 2 + .byte 250 + .byte 2 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 2 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 244 + .byte 2 + .byte 19 + .byte 170 + .byte 3 + .byte 190 + .byte 8 + .byte 246 + .byte 2 + .byte 36 + .byte 246 + .byte 2 + .byte 22 + .byte 170 + .byte 3 + .byte 247 + .byte 2 + .byte 249 + .byte 2 + .byte 7 + .byte 247 + .byte 2 + .byte 15 + .byte 170 + .byte 3 + .byte 191 + .byte 8 + .byte 7 + .byte 6 + .byte 249 + .byte 2 + .byte 0 + .byte 170 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 250 + .byte 2 + .byte 1 + .byte 170 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 2 + .byte 0 + .byte 170 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 252 + .byte 2 + .byte 19 + .byte 170 + .byte 3 + .byte 243 + .byte 2 + .byte 192 + .byte 8 + .byte 12 + .byte 128 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 129 + .byte 3 + .byte 15 + .byte 178 + .byte 3 + .byte 194 + .byte 8 + .byte 7 + .byte 6 + .byte 130 + .byte 3 + .byte 22 + .byte 178 + .byte 3 + .byte 129 + .byte 3 + .byte 128 + .byte 3 + .byte 7 + .byte 131 + .byte 3 + .byte 19 + .byte 178 + .byte 3 + .byte 193 + .byte 8 + .byte 130 + .byte 3 + .byte 36 + .byte 132 + .byte 3 + .byte 1 + .byte 178 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 133 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 134 + .byte 3 + .byte 8 + .byte 178 + .byte 3 + .byte 131 + .byte 3 + .byte 132 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 133 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 135 + .byte 3 + .byte 8 + .byte 178 + .byte 3 + .byte 136 + .byte 3 + .byte 142 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 143 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 136 + .byte 3 + .byte 19 + .byte 178 + .byte 3 + .byte 195 + .byte 8 + .byte 138 + .byte 3 + .byte 36 + .byte 138 + .byte 3 + .byte 22 + .byte 178 + .byte 3 + .byte 139 + .byte 3 + .byte 141 + .byte 3 + .byte 7 + .byte 139 + .byte 3 + .byte 15 + .byte 178 + .byte 3 + .byte 196 + .byte 8 + .byte 7 + .byte 6 + .byte 141 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 142 + .byte 3 + .byte 1 + .byte 178 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 143 + .byte 3 + .byte 0 + .byte 178 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 144 + .byte 3 + .byte 19 + .byte 178 + .byte 3 + .byte 135 + .byte 3 + .byte 197 + .byte 8 + .byte 12 + .byte 148 + .byte 3 + .byte 0 + .byte 186 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 149 + .byte 3 + .byte 15 + .byte 186 + .byte 3 + .byte 199 + .byte 8 + .byte 7 + .byte 6 + .byte 150 + .byte 3 + .byte 22 + .byte 186 + .byte 3 + .byte 149 + .byte 3 + .byte 148 + .byte 3 + .byte 7 + .byte 151 + .byte 3 + .byte 19 + .byte 186 + .byte 3 + .byte 198 + .byte 8 + .byte 150 + .byte 3 + .byte 36 + .byte 152 + .byte 3 + .byte 1 + .byte 186 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 153 + .byte 3 + .byte 0 + .byte 186 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 154 + .byte 3 + .byte 8 + .byte 186 + .byte 3 + .byte 151 + .byte 3 + .byte 152 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 153 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 155 + .byte 3 + .byte 8 + .byte 186 + .byte 3 + .byte 156 + .byte 3 + .byte 162 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 156 + .byte 3 + .byte 19 + .byte 186 + .byte 3 + .byte 200 + .byte 8 + .byte 158 + .byte 3 + .byte 36 + .byte 158 + .byte 3 + .byte 22 + .byte 186 + .byte 3 + .byte 159 + .byte 3 + .byte 161 + .byte 3 + .byte 7 + .byte 159 + .byte 3 + .byte 15 + .byte 186 + .byte 3 + .byte 201 + .byte 8 + .byte 7 + .byte 6 + .byte 161 + .byte 3 + .byte 0 + .byte 186 + .byte 3 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 162 + .byte 3 + .byte 1 + .byte 186 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 163 + .byte 3 + .byte 0 + .byte 186 + .byte 3 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 164 + .byte 3 + .byte 19 + .byte 186 + .byte 3 + .byte 155 + .byte 3 + .byte 202 + .byte 8 + .byte 12 + .byte 166 + .byte 3 + .byte 0 + .byte 190 + .byte 3 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 168 + .byte 3 + .byte 19 + .byte 190 + .byte 3 + .byte 204 + .byte 8 + .byte 166 + .byte 3 + .byte 6 + .byte 171 + .byte 3 + .byte 46 + .byte 197 + .byte 3 + .byte 178 + .byte 7 + .byte 232 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 172 + .byte 3 + .byte 0 + .byte 204 + .byte 3 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 173 + .byte 3 + .byte 1 + .byte 204 + .byte 3 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 174 + .byte 3 + .byte 11 + .byte 204 + .byte 3 + .byte 0 + .byte 172 + .byte 3 + .byte 0 + .byte 173 + .byte 3 + .byte 80 + .byte 175 + .byte 3 + .byte 46 + .byte 254 + .byte 0 + .byte 229 + .byte 7 + .byte 230 + .byte 7 + .byte 6 + .byte 4 + .byte 6 + .byte 178 + .byte 3 + .byte 46 + .byte 197 + .byte 3 + .byte 205 + .byte 8 + .byte 206 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 181 + .byte 3 + .byte 46 + .byte 159 + .byte 3 + .byte 183 + .byte 3 + .byte 181 + .byte 8 + .byte 6 + .byte 2 + .byte 6 + .byte 183 + .byte 3 + .byte 0 + .byte 159 + .byte 3 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 184 + .byte 3 + .byte 46 + .byte 145 + .byte 3 + .byte 177 + .byte 8 + .byte 178 + .byte 8 + .byte 6 + .byte 4 + .byte 6 + .byte 177 + .byte 7 + .byte 0 + .byte 214 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 178 + .byte 7 + .byte 0 + .byte 136 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 179 + .byte 7 + .byte 0 + .byte 232 + .byte 1 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 204 + .byte 7 + .byte 1 + .byte 38 + .byte 4 + .byte 205 + .byte 7 + .byte 1 + .byte 38 + .byte 2 + .byte 206 + .byte 7 + .byte 1 + .byte 48 + .byte 6 + .byte 207 + .byte 7 + .byte 1 + .byte 46 + .byte 1 + .byte 208 + .byte 7 + .byte 1 + .byte 48 + .byte 1 + .byte 209 + .byte 7 + .byte 1 + .byte 54 + .byte 7 + .byte 210 + .byte 7 + .byte 1 + .byte 54 + .byte 1 + .byte 211 + .byte 7 + .byte 1 + .byte 60 + .byte 8 + .byte 212 + .byte 7 + .byte 1 + .byte 60 + .byte 1 + .byte 213 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 9 + .byte 214 + .byte 7 + .byte 1 + .byte 194 + .byte 0 + .byte 2 + .byte 215 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 10 + .byte 216 + .byte 7 + .byte 1 + .byte 200 + .byte 0 + .byte 2 + .byte 217 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 11 + .byte 218 + .byte 7 + .byte 1 + .byte 206 + .byte 0 + .byte 2 + .byte 219 + .byte 7 + .byte 1 + .byte 214 + .byte 0 + .byte 14 + .byte 220 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 221 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 9 + .byte 222 + .byte 7 + .byte 1 + .byte 227 + .byte 0 + .byte 14 + .byte 223 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 10 + .byte 224 + .byte 7 + .byte 1 + .byte 235 + .byte 0 + .byte 14 + .byte 225 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 11 + .byte 226 + .byte 7 + .byte 1 + .byte 243 + .byte 0 + .byte 14 + .byte 227 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 228 + .byte 7 + .byte 1 + .byte 247 + .byte 0 + .byte 14 + .byte 229 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 14 + .byte 230 + .byte 7 + .byte 1 + .byte 254 + .byte 0 + .byte 4 + .byte 231 + .byte 7 + .byte 1 + .byte 136 + .byte 1 + .byte 15 + .byte 232 + .byte 7 + .byte 1 + .byte 197 + .byte 3 + .byte 4 + .byte 233 + .byte 7 + .byte 1 + .byte 167 + .byte 1 + .byte 5 + .byte 234 + .byte 7 + .byte 1 + .byte 165 + .byte 1 + .byte 3 + .byte 235 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 15 + .byte 236 + .byte 7 + .byte 1 + .byte 163 + .byte 1 + .byte 3 + .byte 237 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 16 + .byte 238 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 3 + .byte 239 + .byte 7 + .byte 1 + .byte 175 + .byte 1 + .byte 15 + .byte 240 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 17 + .byte 241 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 2 + .byte 242 + .byte 7 + .byte 1 + .byte 181 + .byte 1 + .byte 15 + .byte 243 + .byte 7 + .byte 1 + .byte 190 + .byte 1 + .byte 18 + .byte 244 + .byte 7 + .byte 1 + .byte 190 + .byte 1 + .byte 2 + .byte 245 + .byte 7 + .byte 1 + .byte 190 + .byte 1 + .byte 15 + .byte 246 + .byte 7 + .byte 1 + .byte 199 + .byte 1 + .byte 19 + .byte 247 + .byte 7 + .byte 1 + .byte 199 + .byte 1 + .byte 2 + .byte 248 + .byte 7 + .byte 1 + .byte 199 + .byte 1 + .byte 15 + .byte 249 + .byte 7 + .byte 1 + .byte 206 + .byte 1 + .byte 20 + .byte 250 + .byte 7 + .byte 1 + .byte 210 + .byte 1 + .byte 21 + .byte 251 + .byte 7 + .byte 1 + .byte 214 + .byte 1 + .byte 22 + .byte 252 + .byte 7 + .byte 1 + .byte 220 + .byte 1 + .byte 23 + .byte 253 + .byte 7 + .byte 1 + .byte 232 + .byte 1 + .byte 24 + .byte 254 + .byte 7 + .byte 1 + .byte 145 + .byte 3 + .byte 16 + .byte 255 + .byte 7 + .byte 1 + .byte 129 + .byte 2 + .byte 25 + .byte 128 + .byte 8 + .byte 1 + .byte 129 + .byte 2 + .byte 5 + .byte 129 + .byte 8 + .byte 1 + .byte 129 + .byte 2 + .byte 24 + .byte 130 + .byte 8 + .byte 1 + .byte 137 + .byte 2 + .byte 26 + .byte 131 + .byte 8 + .byte 1 + .byte 137 + .byte 2 + .byte 17 + .byte 132 + .byte 8 + .byte 1 + .byte 137 + .byte 2 + .byte 2 + .byte 133 + .byte 8 + .byte 1 + .byte 137 + .byte 2 + .byte 25 + .byte 134 + .byte 8 + .byte 1 + .byte 148 + .byte 2 + .byte 27 + .byte 135 + .byte 8 + .byte 1 + .byte 148 + .byte 2 + .byte 18 + .byte 136 + .byte 8 + .byte 1 + .byte 148 + .byte 2 + .byte 2 + .byte 137 + .byte 8 + .byte 1 + .byte 148 + .byte 2 + .byte 25 + .byte 138 + .byte 8 + .byte 1 + .byte 159 + .byte 2 + .byte 28 + .byte 139 + .byte 8 + .byte 1 + .byte 159 + .byte 2 + .byte 19 + .byte 140 + .byte 8 + .byte 1 + .byte 159 + .byte 2 + .byte 2 + .byte 141 + .byte 8 + .byte 1 + .byte 159 + .byte 2 + .byte 25 + .byte 142 + .byte 8 + .byte 1 + .byte 178 + .byte 2 + .byte 29 + .byte 143 + .byte 8 + .byte 1 + .byte 170 + .byte 2 + .byte 26 + .byte 144 + .byte 8 + .byte 1 + .byte 170 + .byte 2 + .byte 26 + .byte 145 + .byte 8 + .byte 1 + .byte 174 + .byte 2 + .byte 27 + .byte 146 + .byte 8 + .byte 1 + .byte 174 + .byte 2 + .byte 27 + .byte 147 + .byte 8 + .byte 1 + .byte 178 + .byte 2 + .byte 28 + .byte 148 + .byte 8 + .byte 1 + .byte 178 + .byte 2 + .byte 28 + .byte 149 + .byte 8 + .byte 1 + .byte 131 + .byte 3 + .byte 29 + .byte 150 + .byte 8 + .byte 1 + .byte 131 + .byte 3 + .byte 6 + .byte 151 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 30 + .byte 152 + .byte 8 + .byte 1 + .byte 199 + .byte 2 + .byte 29 + .byte 153 + .byte 8 + .byte 1 + .byte 211 + .byte 2 + .byte 31 + .byte 154 + .byte 8 + .byte 1 + .byte 207 + .byte 2 + .byte 30 + .byte 155 + .byte 8 + .byte 1 + .byte 207 + .byte 2 + .byte 30 + .byte 156 + .byte 8 + .byte 1 + .byte 209 + .byte 2 + .byte 30 + .byte 157 + .byte 8 + .byte 1 + .byte 211 + .byte 2 + .byte 7 + .byte 158 + .byte 8 + .byte 1 + .byte 227 + .byte 2 + .byte 32 + .byte 159 + .byte 8 + .byte 1 + .byte 219 + .byte 2 + .byte 31 + .byte 160 + .byte 8 + .byte 1 + .byte 223 + .byte 2 + .byte 31 + .byte 161 + .byte 8 + .byte 1 + .byte 225 + .byte 2 + .byte 30 + .byte 162 + .byte 8 + .byte 1 + .byte 227 + .byte 2 + .byte 8 + .byte 163 + .byte 8 + .byte 1 + .byte 235 + .byte 2 + .byte 20 + .byte 164 + .byte 8 + .byte 1 + .byte 235 + .byte 2 + .byte 20 + .byte 165 + .byte 8 + .byte 1 + .byte 233 + .byte 2 + .byte 26 + .byte 166 + .byte 8 + .byte 1 + .byte 233 + .byte 2 + .byte 32 + .byte 167 + .byte 8 + .byte 1 + .byte 243 + .byte 2 + .byte 21 + .byte 168 + .byte 8 + .byte 1 + .byte 243 + .byte 2 + .byte 21 + .byte 169 + .byte 8 + .byte 1 + .byte 241 + .byte 2 + .byte 27 + .byte 170 + .byte 8 + .byte 1 + .byte 241 + .byte 2 + .byte 32 + .byte 171 + .byte 8 + .byte 1 + .byte 251 + .byte 2 + .byte 22 + .byte 172 + .byte 8 + .byte 1 + .byte 251 + .byte 2 + .byte 22 + .byte 173 + .byte 8 + .byte 1 + .byte 249 + .byte 2 + .byte 28 + .byte 174 + .byte 8 + .byte 1 + .byte 249 + .byte 2 + .byte 32 + .byte 175 + .byte 8 + .byte 1 + .byte 138 + .byte 3 + .byte 24 + .byte 176 + .byte 8 + .byte 1 + .byte 138 + .byte 3 + .byte 24 + .byte 177 + .byte 8 + .byte 1 + .byte 145 + .byte 3 + .byte 24 + .byte 178 + .byte 8 + .byte 1 + .byte 145 + .byte 3 + .byte 16 + .byte 179 + .byte 8 + .byte 1 + .byte 152 + .byte 3 + .byte 23 + .byte 180 + .byte 8 + .byte 1 + .byte 152 + .byte 3 + .byte 23 + .byte 181 + .byte 8 + .byte 1 + .byte 159 + .byte 3 + .byte 23 + .byte 182 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 20 + .byte 183 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 20 + .byte 184 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 21 + .byte 185 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 21 + .byte 186 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 22 + .byte 187 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 22 + .byte 188 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 9 + .byte 189 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 15 + .byte 190 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 9 + .byte 191 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 15 + .byte 192 + .byte 8 + .byte 1 + .byte 170 + .byte 3 + .byte 20 + .byte 193 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 10 + .byte 194 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 195 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 10 + .byte 196 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 15 + .byte 197 + .byte 8 + .byte 1 + .byte 178 + .byte 3 + .byte 21 + .byte 198 + .byte 8 + .byte 1 + .byte 186 + .byte 3 + .byte 11 + .byte 199 + .byte 8 + .byte 1 + .byte 186 + .byte 3 + .byte 15 + .byte 200 + .byte 8 + .byte 1 + .byte 186 + .byte 3 + .byte 11 + .byte 201 + .byte 8 + .byte 1 + .byte 186 + .byte 3 + .byte 15 + .byte 202 + .byte 8 + .byte 1 + .byte 186 + .byte 3 + .byte 22 + .byte 203 + .byte 8 + .byte 1 + .byte 190 + .byte 3 + .byte 15 + .byte 204 + .byte 8 + .byte 1 + .byte 190 + .byte 3 + .byte 15 + .byte 205 + .byte 8 + .byte 1 + .byte 197 + .byte 3 + .byte 15 + .byte 206 + .byte 8 + .byte 1 + .byte 197 + .byte 3 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 4 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 2 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 5 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 3 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 6 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 4 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 10 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 7 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 5 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 11 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 8 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 6 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 9 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 7 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 10 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 8 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 6 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 0 + .byte 2 + .byte 49 + .byte 0 + .byte 11 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 11 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 14 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 12 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 0 + .byte 4 + .byte 49 + .byte 95 + .byte 50 + .byte 0 + .byte 15 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 13 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 13 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 16 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 14 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 17 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 15 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 18 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 16 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 19 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 17 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 20 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 18 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 21 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 19 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 0 + .byte 6 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 0 + .byte 22 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 20 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 0 + .byte 8 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 23 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 21 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 0 + .byte 10 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 24 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 22 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 0 + .byte 5 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 25 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 23 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 26 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 24 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 27 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 25 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 8 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 28 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 26 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 0 + .byte 12 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 29 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 27 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 30 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 28 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 7 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 31 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 29 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 0 + .byte 9 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 0 + .byte 14 + .byte 49 + .byte 95 + .byte 50 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 95 + .byte 49 + .byte 0 + .byte 32 + .byte 0 + .byte 79 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 1 + .byte 0 + .byte 128 + .byte 128 + .byte 160 + .byte 150 + .byte 4 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 13 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 2 + .byte 12 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 16 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 95 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 0 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 14 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 0 + .byte 1 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 5 + .byte 14 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 0 + .byte 2 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 6 + .byte 18 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 53 + .byte 0 + .byte 3 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 14 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 54 + .byte 0 + .byte 4 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 15 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 55 + .byte 0 + .byte 5 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 9 + .byte 10 + .byte 102 + .byte 120 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 56 + .byte 0 + .byte 6 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 10 + .byte 10 + .byte 102 + .byte 121 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 57 + .byte 0 + .byte 7 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 11 + .byte 10 + .byte 102 + .byte 122 + .byte 46 + .byte 49 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 97 + .byte 0 + .byte 8 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 4 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 14 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 50 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 100 + .byte 0 + .byte 11 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 15 + .byte 10 + .byte 105 + .byte 46 + .byte 49 + .byte 52 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 101 + .byte 0 + .byte 12 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 16 + .byte 18 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 102 + .byte 0 + .byte 13 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 17 + .byte 13 + .byte 120 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 48 + .byte 0 + .byte 14 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 18 + .byte 13 + .byte 121 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 49 + .byte 0 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 19 + .byte 13 + .byte 122 + .byte 116 + .byte 109 + .byte 112 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 50 + .byte 0 + .byte 16 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 20 + .byte 12 + .byte 102 + .byte 105 + .byte 120 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 51 + .byte 0 + .byte 17 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 21 + .byte 12 + .byte 102 + .byte 105 + .byte 121 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 52 + .byte 0 + .byte 18 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 22 + .byte 12 + .byte 102 + .byte 105 + .byte 122 + .byte 46 + .byte 49 + .byte 53 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 53 + .byte 0 + .byte 19 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 23 + .byte 10 + .byte 110 + .byte 46 + .byte 49 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 98 + .byte 0 + .byte 20 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 24 + .byte 10 + .byte 107 + .byte 46 + .byte 49 + .byte 56 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 99 + .byte 0 + .byte 21 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 25 + .byte 10 + .byte 106 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 100 + .byte 0 + .byte 22 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 4 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 26 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 120 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 101 + .byte 0 + .byte 23 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 27 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 121 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 102 + .byte 0 + .byte 24 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 28 + .byte 13 + .byte 100 + .byte 101 + .byte 108 + .byte 122 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 48 + .byte 0 + .byte 25 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 29 + .byte 12 + .byte 114 + .byte 115 + .byte 113 + .byte 46 + .byte 49 + .byte 57 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 49 + .byte 0 + .byte 26 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 30 + .byte 12 + .byte 115 + .byte 114 + .byte 50 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 50 + .byte 0 + .byte 27 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 31 + .byte 12 + .byte 115 + .byte 114 + .byte 54 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 51 + .byte 0 + .byte 28 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 14 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 50 + .byte 49 + .byte 95 + .byte 86 + .byte 36 + .byte 52 + .byte 52 + .byte 0 + .byte 29 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 4 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 104 + .byte 23 + .byte 69 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 109 + .byte 54 + .byte 52 + .byte 116 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 114 + .byte 111 + .byte 117 + .byte 116 + .byte 105 + .byte 110 + .byte 101 + .byte 95 + .byte 112 + .byte 111 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 114 + .byte 95 + .byte 115 + .byte 105 + .byte 122 + .byte 101 + .byte 95 + .byte 54 + .byte 52 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 103 + .byte 110 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 95 + .byte 117 + .byte 115 + .byte 101 + .byte 100 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 103 + .byte 99 + .byte 99 + .byte 95 + .byte 118 + .byte 101 + .byte 114 + .byte 115 + .byte 105 + .byte 111 + .byte 110 + .byte 61 + .byte 55 + .byte 53 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 99 + .byte 120 + .byte 120 + .byte 95 + .byte 108 + .byte 105 + .byte 109 + .byte 105 + .byte 116 + .byte 101 + .byte 100 + .byte 95 + .byte 114 + .byte 97 + .byte 110 + .byte 103 + .byte 101 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 95 + .byte 112 + .byte 97 + .byte 114 + .byte 109 + .byte 115 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 117 + .byte 97 + .byte 114 + .byte 99 + .byte 104 + .byte 95 + .byte 116 + .byte 117 + .byte 110 + .byte 105 + .byte 110 + .byte 103 + .byte 61 + .byte 48 + .byte 120 + .byte 48 + .byte 32 + .byte 67 + .byte 71 + .byte 95 + .byte 98 + .byte 110 + .byte 108 + .byte 95 + .byte 109 + .byte 111 + .byte 118 + .byte 98 + .byte 101 + .byte 61 + .byte 84 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 101 + .byte 120 + .byte 116 + .byte 101 + .byte 110 + .byte 100 + .byte 101 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 115 + .byte 116 + .byte 114 + .byte 117 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 48 + .byte 120 + .byte 52 + .byte 48 + .byte 48 + .byte 48 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 97 + .byte 100 + .byte 118 + .byte 97 + .byte 110 + .byte 99 + .byte 101 + .byte 100 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 105 + .byte 109 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 115 + .byte 117 + .byte 98 + .byte 115 + .byte 95 + .byte 111 + .byte 117 + .byte 116 + .byte 95 + .byte 111 + .byte 102 + .byte 95 + .byte 98 + .byte 111 + .byte 117 + .byte 110 + .byte 100 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 98 + .byte 97 + .byte 115 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 61 + .byte 50 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 99 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 99 + .byte 104 + .byte 101 + .byte 99 + .byte 107 + .byte 101 + .byte 100 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 110 + .byte 115 + .byte 105 + .byte 95 + .byte 97 + .byte 108 + .byte 105 + .byte 97 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 105 + .byte 108 + .byte 48 + .byte 95 + .byte 97 + .byte 114 + .byte 114 + .byte 97 + .byte 121 + .byte 95 + .byte 115 + .byte 101 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 115 + .byte 61 + .byte 84 + .byte 82 + .byte 85 + .byte 69 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 102 + .byte 102 + .byte 108 + .byte 111 + .byte 97 + .byte 100 + .byte 95 + .byte 109 + .byte 111 + .byte 100 + .byte 101 + .byte 61 + .byte 49 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 111 + .byte 112 + .byte 116 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 95 + .byte 108 + .byte 101 + .byte 118 + .byte 101 + .byte 108 + .byte 61 + .byte 51 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 108 + .byte 111 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 114 + .byte 101 + .byte 115 + .byte 116 + .byte 114 + .byte 105 + .byte 99 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 102 + .byte 117 + .byte 110 + .byte 99 + .byte 116 + .byte 105 + .byte 111 + .byte 110 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 104 + .byte 112 + .byte 111 + .byte 95 + .byte 114 + .byte 116 + .byte 116 + .byte 95 + .byte 99 + .byte 111 + .byte 110 + .byte 116 + .byte 114 + .byte 111 + .byte 108 + .byte 61 + .byte 48 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 114 + .byte 103 + .byte 115 + .byte 95 + .byte 105 + .byte 110 + .byte 95 + .byte 114 + .byte 101 + .byte 103 + .byte 115 + .byte 61 + .byte 48 + .byte 32 + .byte 80 + .byte 50 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 100 + .byte 105 + .byte 115 + .byte 97 + .byte 109 + .byte 95 + .byte 97 + .byte 115 + .byte 115 + .byte 117 + .byte 109 + .byte 101 + .byte 95 + .byte 110 + .byte 111 + .byte 110 + .byte 115 + .byte 116 + .byte 100 + .byte 95 + .byte 105 + .byte 110 + .byte 116 + .byte 101 + .byte 110 + .byte 116 + .byte 95 + .byte 105 + .byte 110 + .byte 61 + .byte 70 + .byte 65 + .byte 76 + .byte 83 + .byte 69 + .byte 32 + .byte 73 + .byte 80 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 108 + .byte 116 + .byte 111 + .byte 95 + .byte 111 + .byte 98 + .byte 106 + .byte 101 + .byte 99 + .byte 116 + .byte 95 + .byte 101 + .byte 110 + .byte 97 + .byte 98 + .byte 108 + .byte 101 + .byte 100 + .byte 32 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 97 + .byte 115 + .byte 109 + .byte 95 + .byte 116 + .byte 97 + .byte 114 + .byte 103 + .byte 101 + .byte 116 + .byte 61 + .byte 80 + .byte 51 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 65 + .byte 83 + .byte 77 + .byte 95 + .byte 84 + .byte 65 + .byte 82 + .byte 71 + .byte 69 + .byte 84 + .byte 95 + .byte 71 + .byte 65 + .byte 83 + .byte 32 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 100 + .byte 105 + .byte 97 + .byte 108 + .byte 101 + .byte 99 + .byte 116 + .byte 61 + .byte 71 + .byte 76 + .byte 79 + .byte 66 + .byte 95 + .byte 83 + .byte 79 + .byte 85 + .byte 82 + .byte 67 + .byte 69 + .byte 95 + .byte 68 + .byte 73 + .byte 65 + .byte 76 + .byte 69 + .byte 67 + .byte 84 + .byte 95 + .byte 67 + .byte 32 + .byte 80 + .byte 49 + .byte 79 + .byte 80 + .byte 84 + .byte 95 + .byte 102 + .byte 117 + .byte 108 + .byte 108 + .byte 95 + .byte 115 + .byte 111 + .byte 117 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 102 + .byte 105 + .byte 108 + .byte 101 + .byte 95 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 61 + .byte 47 + .byte 104 + .byte 111 + .byte 109 + .byte 101 + .byte 47 + .byte 104 + .byte 112 + .byte 99 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 47 + .byte 105 + .byte 119 + .byte 105 + .byte 97 + .byte 48 + .byte 50 + .byte 49 + .byte 104 + .byte 47 + .byte 77 + .byte 68 + .byte 45 + .byte 66 + .byte 101 + .byte 110 + .byte 99 + .byte 104 + .byte 47 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 1 + .byte 1 + .byte 160 + .byte 1 + .byte 192 + .byte 0 + .byte 253 + .byte 0 + .byte 127 + .byte 85 + .byte 114 + .byte 99 + .byte 84 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 126 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 0 + .byte 123 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 0 + .byte 122 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 8 + .byte 121 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 1 + .byte 120 + .byte 76 + .byte 52 + .byte 99 + .byte 1 + .byte 65 + .byte 4 + .byte 119 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 3 + .byte 118 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 2 + .byte 117 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 248 + .byte 63 + .byte 116 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 164 + .byte 64 + .byte 115 + .byte 76 + .byte 55 + .byte 99 + .byte 1 + .byte 65 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 128 + .byte 240 + .byte 63 + .byte 114 + .byte 76 + .byte 50 + .byte 99 + .byte 1 + .byte 86 + .byte 232 + .byte 7 + .byte 127 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 126 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 125 + .byte 4 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 48 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 124 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 123 + .byte 4 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 49 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 122 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 121 + .byte 4 + .byte 0 + .byte 32 + .byte 0 + .byte 10 + .byte 57 + .byte 64 + .byte 0 + .byte 20 + .byte 85 + .byte 110 + .byte 110 + .byte 97 + .byte 109 + .byte 101 + .byte 100 + .byte 95 + .byte 98 + .byte 101 + .byte 95 + .byte 116 + .byte 121 + .byte 112 + .byte 101 + .byte 95 + .byte 50 + .byte 46 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 120 + .byte 3 + .byte 0 + .byte 4 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 119 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 118 + .byte 4 + .byte 0 + .byte 8 + .byte 0 + .byte 57 + .byte 64 + .byte 0 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 2 + .byte 48 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 0 + .byte 67 + .byte 70 + .byte 4 + .byte 68 + .byte 0 + .byte 1 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 85 + .byte 2 + .byte 0 + .byte 1 + .byte 1 + .byte 26 + .byte 3 + .byte 36 + .byte 8 + .byte 0 + .byte 145 + .byte 192 + .byte 129 + .byte 16 + .byte 13 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 0 + .byte 8 + .byte 1 + .byte 46 + .byte 99 + .byte 111 + .byte 109 + .byte 112 + .byte 117 + .byte 116 + .byte 101 + .byte 70 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 40 + .byte 80 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 65 + .byte 116 + .byte 111 + .byte 109 + .byte 32 + .byte 42 + .byte 44 + .byte 32 + .byte 78 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 32 + .byte 42 + .byte 41 + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 3 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 127 + .byte 4 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 12 + .byte 32 + .byte 126 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 136 + .byte 1 + .byte 0 + .byte 136 + .byte 1 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 232 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 125 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 48 + .byte 0 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 124 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 0 + .byte 0 + .byte 216 + .byte 0 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 245 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 123 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 0 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 122 + .byte 7 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 32 + .byte 0 + .byte 32 + .byte 0 + .byte 0 + .byte 65 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 213 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 32 + .byte 121 + .byte 11 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 95 + .byte 82 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 0 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 120 + .byte 5 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 6 + .byte 32 + .byte 119 + .byte 9 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 83 + .byte 73 + .byte 51 + .byte 50 + .byte 0 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 118 + .byte 8 + .byte 80 + .byte 54 + .byte 52 + .byte 46 + .byte 70 + .byte 54 + .byte 52 + .byte 0 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 0 + .byte 0 + .byte 36 + .byte 36 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 117 + .byte 11 + .byte 78 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 100 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 244 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 116 + .byte 11 + .byte 78 + .byte 108 + .byte 111 + .byte 99 + .byte 97 + .byte 108 + .byte 95 + .byte 86 + .byte 36 + .byte 101 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 243 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 115 + .byte 11 + .byte 78 + .byte 103 + .byte 104 + .byte 111 + .byte 115 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 102 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 8 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 242 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 114 + .byte 10 + .byte 78 + .byte 109 + .byte 97 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 48 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 12 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 241 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 113 + .byte 7 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 49 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 240 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 112 + .byte 7 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 50 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 239 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 111 + .byte 7 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 51 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 238 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 110 + .byte 8 + .byte 118 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 52 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 40 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 237 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 109 + .byte 8 + .byte 118 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 53 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 48 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 236 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 108 + .byte 8 + .byte 118 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 54 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 235 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 107 + .byte 8 + .byte 102 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 55 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 234 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 106 + .byte 8 + .byte 102 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 56 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 233 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 105 + .byte 8 + .byte 102 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 57 + .byte 0 + .byte 251 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 252 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 246 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 104 + .byte 13 + .byte 101 + .byte 112 + .byte 115 + .byte 105 + .byte 108 + .byte 111 + .byte 110 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 231 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 103 + .byte 12 + .byte 115 + .byte 105 + .byte 103 + .byte 109 + .byte 97 + .byte 54 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 230 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 102 + .byte 10 + .byte 116 + .byte 101 + .byte 109 + .byte 112 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 16 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 229 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 101 + .byte 9 + .byte 114 + .byte 104 + .byte 111 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 100 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 228 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 100 + .byte 10 + .byte 109 + .byte 97 + .byte 115 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 101 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 32 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 227 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 99 + .byte 12 + .byte 110 + .byte 116 + .byte 105 + .byte 109 + .byte 101 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 49 + .byte 102 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 40 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 226 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 98 + .byte 11 + .byte 110 + .byte 115 + .byte 116 + .byte 97 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 48 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 44 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 225 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 97 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 49 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 48 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 224 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 96 + .byte 8 + .byte 100 + .byte 116 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 50 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 56 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 223 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 95 + .byte 13 + .byte 100 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 51 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 192 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 222 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 94 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 52 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 200 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 221 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 93 + .byte 14 + .byte 99 + .byte 117 + .byte 116 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 53 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 208 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 220 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 92 + .byte 8 + .byte 110 + .byte 120 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 54 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 216 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 219 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 91 + .byte 8 + .byte 110 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 55 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 220 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 218 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 90 + .byte 8 + .byte 110 + .byte 122 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 56 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 224 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 217 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 89 + .byte 13 + .byte 108 + .byte 97 + .byte 116 + .byte 116 + .byte 105 + .byte 99 + .byte 101 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 57 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 232 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 216 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 88 + .byte 10 + .byte 120 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 97 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 240 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 215 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 87 + .byte 10 + .byte 121 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 98 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 248 + .byte 0 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 39 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 214 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 86 + .byte 10 + .byte 122 + .byte 112 + .byte 114 + .byte 100 + .byte 95 + .byte 86 + .byte 36 + .byte 50 + .byte 99 + .byte 0 + .byte 253 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 128 + .byte 1 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 12 + .byte 37 + .byte 254 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 85 + .byte 11 + .byte 101 + .byte 118 + .byte 101 + .byte 114 + .byte 121 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 54 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 0 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 212 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 84 + .byte 12 + .byte 110 + .byte 99 + .byte 97 + .byte 108 + .byte 108 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 55 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 4 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 211 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 83 + .byte 15 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 56 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 8 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 210 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 82 + .byte 15 + .byte 109 + .byte 97 + .byte 120 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 115 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 57 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 4 + .byte 16 + .byte 4 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 6 + .byte 39 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 209 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 248 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 81 + .byte 14 + .byte 110 + .byte 117 + .byte 109 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 95 + .byte 86 + .byte 36 + .byte 51 + .byte 97 + .byte 0 + .byte 249 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 8 + .byte 24 + .byte 8 + .byte 0 + .byte 0 + .byte 86 + .byte 110 + .byte 129 + .byte 136 + .byte 2 + .byte 0 + .byte 0 + .byte 36 + .byte 37 + .byte 250 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 247 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 7 + .byte 1 + .byte 0 + .byte 30 + .byte 8 + .byte 0 + .byte 9 + .byte 1 + .byte 0 + .byte 30 + .byte 71 + .byte 0 + .byte 38 + .byte 1 + .byte 0 + .byte 31 + .byte 18 + .byte 0 + .byte 46 + .byte 1 + .byte 0 + .byte 33 + .byte 27 + .byte 0 + .byte 48 + .byte 1 + .byte 0 + .byte 33 + .byte 45 + .byte 0 + .byte 54 + .byte 1 + .byte 0 + .byte 34 + .byte 23 + .byte 0 + .byte 60 + .byte 1 + .byte 0 + .byte 35 + .byte 24 + .byte 0 + .byte 194 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 20 + .byte 0 + .byte 200 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 45 + .byte 0 + .byte 206 + .byte 0 + .byte 1 + .byte 0 + .byte 36 + .byte 70 + .byte 0 + .byte 214 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 15 + .byte 0 + .byte 223 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 17 + .byte 0 + .byte 227 + .byte 0 + .byte 1 + .byte 0 + .byte 40 + .byte 9 + .byte 0 + .byte 231 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 17 + .byte 0 + .byte 235 + .byte 0 + .byte 1 + .byte 0 + .byte 41 + .byte 9 + .byte 0 + .byte 239 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 17 + .byte 0 + .byte 243 + .byte 0 + .byte 1 + .byte 0 + .byte 42 + .byte 9 + .byte 0 + .byte 247 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 32 + .byte 0 + .byte 254 + .byte 0 + .byte 1 + .byte 0 + .byte 39 + .byte 24 + .byte 0 + .byte 128 + .byte 1 + .byte 1 + .byte 0 + .byte 39 + .byte 5 + .byte 0 + .byte 136 + .byte 1 + .byte 1 + .byte 0 + .byte 46 + .byte 15 + .byte 0 + .byte 163 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 43 + .byte 0 + .byte 165 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 19 + .byte 0 + .byte 167 + .byte 1 + .byte 1 + .byte 0 + .byte 47 + .byte 9 + .byte 0 + .byte 175 + .byte 1 + .byte 1 + .byte 0 + .byte 48 + .byte 25 + .byte 0 + .byte 181 + .byte 1 + .byte 1 + .byte 0 + .byte 49 + .byte 25 + .byte 0 + .byte 190 + .byte 1 + .byte 1 + .byte 0 + .byte 50 + .byte 25 + .byte 0 + .byte 199 + .byte 1 + .byte 1 + .byte 0 + .byte 51 + .byte 25 + .byte 0 + .byte 206 + .byte 1 + .byte 1 + .byte 0 + .byte 52 + .byte 22 + .byte 0 + .byte 210 + .byte 1 + .byte 1 + .byte 0 + .byte 53 + .byte 22 + .byte 0 + .byte 214 + .byte 1 + .byte 1 + .byte 0 + .byte 54 + .byte 22 + .byte 0 + .byte 220 + .byte 1 + .byte 1 + .byte 0 + .byte 58 + .byte 19 + .byte 0 + .byte 232 + .byte 1 + .byte 1 + .byte 0 + .byte 59 + .byte 23 + .byte 0 + .byte 129 + .byte 2 + .byte 1 + .byte 0 + .byte 60 + .byte 25 + .byte 0 + .byte 137 + .byte 2 + .byte 1 + .byte 0 + .byte 61 + .byte 40 + .byte 0 + .byte 148 + .byte 2 + .byte 1 + .byte 0 + .byte 62 + .byte 40 + .byte 0 + .byte 159 + .byte 2 + .byte 1 + .byte 0 + .byte 63 + .byte 40 + .byte 0 + .byte 170 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 39 + .byte 0 + .byte 174 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 53 + .byte 0 + .byte 178 + .byte 2 + .byte 1 + .byte 0 + .byte 64 + .byte 67 + .byte 0 + .byte 197 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 36 + .byte 0 + .byte 199 + .byte 2 + .byte 1 + .byte 0 + .byte 67 + .byte 42 + .byte 0 + .byte 207 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 42 + .byte 0 + .byte 209 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 48 + .byte 0 + .byte 211 + .byte 2 + .byte 1 + .byte 0 + .byte 68 + .byte 54 + .byte 0 + .byte 217 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 38 + .byte 0 + .byte 219 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 45 + .byte 0 + .byte 223 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 58 + .byte 0 + .byte 225 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 65 + .byte 0 + .byte 227 + .byte 2 + .byte 1 + .byte 0 + .byte 69 + .byte 71 + .byte 0 + .byte 233 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 35 + .byte 0 + .byte 235 + .byte 2 + .byte 1 + .byte 0 + .byte 70 + .byte 21 + .byte 0 + .byte 241 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 35 + .byte 0 + .byte 243 + .byte 2 + .byte 1 + .byte 0 + .byte 71 + .byte 21 + .byte 0 + .byte 249 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 35 + .byte 0 + .byte 251 + .byte 2 + .byte 1 + .byte 0 + .byte 72 + .byte 21 + .byte 0 + .byte 131 + .byte 3 + .byte 1 + .byte 0 + .byte 66 + .byte 26 + .byte 0 + .byte 133 + .byte 3 + .byte 1 + .byte 0 + .byte 66 + .byte 17 + .byte 0 + .byte 138 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 43 + .byte 0 + .byte 145 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 32 + .byte 0 + .byte 147 + .byte 3 + .byte 1 + .byte 0 + .byte 59 + .byte 13 + .byte 0 + .byte 152 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 50 + .byte 0 + .byte 159 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 28 + .byte 0 + .byte 161 + .byte 3 + .byte 1 + .byte 0 + .byte 58 + .byte 9 + .byte 0 + .byte 170 + .byte 3 + .byte 1 + .byte 0 + .byte 77 + .byte 9 + .byte 0 + .byte 178 + .byte 3 + .byte 1 + .byte 0 + .byte 78 + .byte 9 + .byte 0 + .byte 186 + .byte 3 + .byte 1 + .byte 0 + .byte 79 + .byte 9 + .byte 0 + .byte 190 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 32 + .byte 0 + .byte 197 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 24 + .byte 0 + .byte 199 + .byte 3 + .byte 1 + .byte 0 + .byte 46 + .byte 5 + .byte 0 + .byte 204 + .byte 3 + .byte 1 + .byte 0 + .byte 82 + .byte 12 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 255 + .byte 255 + .byte 255 + .byte 255 + .byte 15 + .byte 203 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 99 + .byte 99 + .byte 14 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 102 + .byte 111 + .byte 114 + .byte 99 + .byte 101 + .byte 46 + .byte 99 + .byte 0 + .byte 2 + .byte 2 + .byte 1 + .byte 3 + .byte 1 + .byte 63 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 115 + .byte 115 + .byte 27 + .byte 47 + .byte 117 + .byte 115 + .byte 114 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 47 + .byte 115 + .byte 116 + .byte 100 + .byte 99 + .byte 45 + .byte 112 + .byte 114 + .byte 101 + .byte 100 + .byte 101 + .byte 102 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 3 + .byte 1 + .byte 4 + .byte 87 + .byte 128 + .byte 2 + .byte 0 + .byte 1 + .byte 23 + .byte 0 + .byte 115 + .byte 95 + .byte 31 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 108 + .byte 105 + .byte 107 + .byte 119 + .byte 105 + .byte 100 + .byte 45 + .byte 109 + .byte 97 + .byte 114 + .byte 107 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 4 + .byte 1 + .byte 5 + .byte 131 + .byte 2 + .byte 160 + .byte 2 + .byte 0 + .byte 1 + .byte 25 + .byte 0 + .byte 115 + .byte 95 + .byte 24 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 116 + .byte 105 + .byte 109 + .byte 105 + .byte 110 + .byte 103 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 5 + .byte 1 + .byte 8 + .byte 162 + .byte 2 + .byte 178 + .byte 3 + .byte 105 + .byte 1 + .byte 26 + .byte 0 + .byte 115 + .byte 95 + .byte 26 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 110 + .byte 101 + .byte 105 + .byte 103 + .byte 104 + .byte 98 + .byte 111 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 6 + .byte 6 + .byte 5 + .byte 0 + .byte 185 + .byte 2 + .byte 161 + .byte 3 + .byte 54 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 7 + .byte 7 + .byte 6 + .byte 0 + .byte 208 + .byte 2 + .byte 133 + .byte 3 + .byte 0 + .byte 1 + .byte 22 + .byte 0 + .byte 115 + .byte 95 + .byte 27 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 112 + .byte 97 + .byte 114 + .byte 97 + .byte 109 + .byte 101 + .byte 116 + .byte 101 + .byte 114 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .byte 8 + .byte 1 + .byte 0 + .byte 181 + .byte 3 + .byte 231 + .byte 3 + .byte 0 + .byte 1 + .byte 28 + .byte 0 + .byte 115 + .byte 95 + .byte 22 + .byte 46 + .byte 47 + .byte 115 + .byte 114 + .byte 99 + .byte 47 + .byte 105 + .byte 110 + .byte 99 + .byte 108 + .byte 117 + .byte 100 + .byte 101 + .byte 115 + .byte 47 + .byte 97 + .byte 116 + .byte 111 + .byte 109 + .byte 46 + .byte 104 + .byte 0 + .byte 0 + .text +..TXTST0: +.L_2__routine_start_computeForce_0: +# -- Begin computeForce + .text +# mark_begin; + .align 16,0x90 + .globl computeForce +# --- computeForce(Parameter *, Atom *, Neighbor *) +computeForce: +# parameter 1: %rdi +# parameter 2: %rsi +# parameter 3: %rdx +..B1.1: # Preds ..B1.0 + # Execution count [1.00e+00] + .cfi_startproc +..___tag_value_computeForce.1: +..L2: + #30.71 + pushq %rbp #30.71 + .cfi_def_cfa_offset 16 + movq %rsp, %rbp #30.71 + .cfi_def_cfa 6, 16 + .cfi_offset 6, -16 + andq $-32, %rsp #30.71 + pushq %r15 #30.71 + pushq %rbx #30.71 + subq $464, %rsp #30.71 + movq %rsi, %rcx #30.71 + vmovsd 72(%rdi), %xmm0 #33.27 + movq %rdx, %r8 #30.71 + vmovsd 8(%rdi), %xmm3 #34.23 + vmulsd %xmm0, %xmm0, %xmm4 #33.45 + movl 4(%rcx), %r9d #31.18 + vmovsd (%rdi), %xmm0 #35.24 + movq 64(%rcx), %rdi #36.20 + movq 72(%rcx), %rsi #36.45 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + movq 80(%rcx), %rbx #36.70 + testl %r9d, %r9d #39.24 + jle ..B1.38 # Prob 50% #39.24 + # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d xmm0 xmm3 xmm4 +..B1.2: # Preds ..B1.1 + # Execution count [1.00e+00] + movl %r9d, %r10d #39.5 + xorl %edx, %edx #39.5 + movl $1, %r11d #39.5 + xorl %eax, %eax #39.5 + shrl $1, %r10d #39.5 + je ..B1.6 # Prob 9% #39.5 + # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 +..B1.3: # Preds ..B1.2 + # Execution count [9.00e-01] + xorl %r15d, %r15d #39.5 + # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r15 r9d xmm0 xmm3 xmm4 +..B1.4: # Preds ..B1.4 ..B1.3 + # Execution count [2.50e+00] + incq %rdx #39.5 + lea (%rax,%rdi), %r11 #40.9 + movq %r15, (%r11) #40.9 + movq %r15, (%rax,%rsi) #41.9 + movq %r15, (%rax,%rbx) #42.9 + movq %r15, 8(%r11) #40.9 + movq %r15, 8(%rax,%rsi) #41.9 + movq %r15, 8(%rax,%rbx) #42.9 + addq $16, %rax #39.5 + cmpq %r10, %rdx #39.5 + jb ..B1.4 # Prob 63% #39.5 + # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r15 r9d xmm0 xmm3 xmm4 +..B1.5: # Preds ..B1.4 + # Execution count [9.00e-01] + lea 1(%rdx,%rdx), %r11d #40.9 + # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 +..B1.6: # Preds ..B1.2 ..B1.5 + # Execution count [1.00e+00] + lea -1(%r11), %eax #39.5 + cmpl %r9d, %eax #39.5 + jae ..B1.8 # Prob 9% #39.5 + # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 +..B1.7: # Preds ..B1.6 + # Execution count [9.00e-01] + movslq %r11d, %r11 #39.5 + xorl %eax, %eax #40.9 + movq %rax, -8(%rdi,%r11,8) #40.9 + movq %rax, -8(%rsi,%r11,8) #41.9 + movq %rax, -8(%rbx,%r11,8) #42.9 + # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d xmm0 xmm3 xmm4 +..B1.8: # Preds ..B1.6 ..B1.7 + # Execution count [9.00e-01] + vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 + xorl %eax, %eax #46.15 + vbroadcastsd %xmm4, %ymm7 #33.45 + vbroadcastsd %xmm6, %ymm8 #69.45 + vbroadcastsd %xmm3, %ymm2 #34.23 + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 + vmovupd %ymm7, 96(%rsp) #46.5[spill] + vmovupd %ymm2, 352(%rsp) #46.5[spill] + vmovupd %ymm8, 320(%rsp) #46.5[spill] + movslq 16(%r8), %r11 #47.43 + xorl %edx, %edx #46.5 + movq 8(%r8), %r10 #47.19 + movq 24(%r8), %r15 #48.25 + xorl %r8d, %r8d #46.5 + movslq %r9d, %r9 #46.5 + shlq $2, %r11 #47.9 + movq 16(%rcx), %rcx #49.25 + movq %r11, 32(%rsp) #46.5[spill] + movq %r9, 40(%rsp) #46.5[spill] + movq %r15, 48(%rsp) #46.5[spill] + movq %r10, 56(%rsp) #46.5[spill] + movq %r12, (%rsp) #46.5[spill] + movq %r13, 8(%rsp) #46.5[spill] + movq %r14, 16(%rsp) #46.5[spill] + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xfe, 0xff, 0xff, 0x22 + # LOE rax rdx rcx rbx rsi rdi r8 xmm0 xmm3 xmm4 xmm6 +..B1.9: # Preds ..B1.35 ..B1.8 + # Execution count [5.00e+00] + imulq 32(%rsp), %rax #47.43[spill] + addq 56(%rsp), %rax #47.9[spill] + vxorpd %xmm9, %xmm9, %xmm9 #52.22 + movq 48(%rsp), %r9 #48.25[spill] + movq %rax, %r11 #59.13 + vmovsd 8(%r8,%rcx), %xmm10 #50.25 + andq $31, %r11 #59.13 + vmovsd (%r8,%rcx), %xmm1 #49.25 + movl %r11d, %r15d #59.13 + vmovsd 16(%r8,%rcx), %xmm7 #51.25 + negl %r15d #59.13 + vbroadcastsd %xmm10, %ymm5 #50.25 + movl %r11d, %r13d #59.13 + vbroadcastsd %xmm1, %ymm11 #49.25 + vmovapd %xmm9, %xmm8 #53.22 + vbroadcastsd %xmm7, %ymm15 #51.25 + vmovapd %xmm8, %xmm2 #54.22 + vmovupd %ymm5, 160(%rsp) #51.25[spill] + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 + vmovupd %ymm15, 192(%rsp) #51.25[spill] + vmovupd %ymm11, 128(%rsp) #51.25[spill] + movslq (%r9,%rdx,4), %r9 #48.25 + movl %r9d, %r12d #59.13 + vxorpd %ymm14, %ymm14, %ymm14 #52.22 + movl %r12d, %r14d #59.13 + vmovdqa %ymm14, %ymm13 #53.22 + andl $-4, %r14d #59.13 + vmovdqa %ymm13, %ymm12 #54.22 + addl $32, %r15d #59.13 + movslq %r14d, %r14 #59.13 + xorl %r10d, %r10d #58.9 + shrl $2, %r15d #59.13 + andl $3, %r13d #59.13 + vmovupd %ymm12, 288(%rsp) #51.25[spill] + vmovupd %ymm13, 256(%rsp) #51.25[spill] + vmovupd %ymm14, 224(%rsp) #51.25[spill] + movq %r8, 24(%rsp) #51.25[spill] + movq %rdx, 64(%rsp) #51.25[spill] + movq %rbx, 72(%rsp) #51.25[spill] + movq %rsi, 80(%rsp) #51.25[spill] + movq %rdi, 88(%rsp) #51.25[spill] + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.10: # Preds ..B1.34 ..B1.9 + # Execution count [5.00e+03] + testq %r9, %r9 #59.32 + jle ..B1.34 # Prob 50% #59.32 + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.11: # Preds ..B1.10 + # Execution count [4.50e+03] + cmpq $4, %r9 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.12: # Preds ..B1.11 + # Execution count [4.50e+03] + cmpq $600, %r9 #59.13 + jl ..B1.41 # Prob 10% #59.13 + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.13: # Preds ..B1.12 + # Execution count [4.50e+03] + movl %r11d, %ebx #59.13 + testl %r11d, %r11d #59.13 + je ..B1.16 # Prob 50% #59.13 + # LOE rax rcx r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.14: # Preds ..B1.13 + # Execution count [4.50e+03] + testl %r13d, %r13d #59.13 + jne ..B1.39 # Prob 10% #59.13 + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.15: # Preds ..B1.14 + # Execution count [2.25e+03] + movl %r15d, %ebx #59.13 + # LOE rax rcx r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.16: # Preds ..B1.15 ..B1.13 + # Execution count [4.50e+03] + movl %ebx, %r8d #59.13 + lea 4(%r8), %rdx #59.13 + cmpq %rdx, %r9 #59.13 + jl ..B1.39 # Prob 10% #59.13 + # LOE rax rcx r8 r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.17: # Preds ..B1.16 + # Execution count [5.00e+03] + movl %r12d, %edi #59.13 + xorl %edx, %edx #59.13 + subl %ebx, %edi #59.13 + andl $3, %edi #59.13 + negl %edi #59.13 + addl %r12d, %edi #59.13 + movslq %edi, %rdi #59.13 + testl %ebx, %ebx #59.13 + jbe ..B1.23 # Prob 10% #59.13 + # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.19: # Preds ..B1.17 ..B1.21 + # Execution count [2.50e+04] + movl (%rax,%rdx,4), %ebx #60.25 + lea (%rbx,%rbx,2), %esi #61.40 + movslq %esi, %rsi #61.40 + vsubsd 8(%rcx,%rsi,8), %xmm10, %xmm13 #62.40 + vsubsd (%rcx,%rsi,8), %xmm1, %xmm12 #61.40 + vsubsd 16(%rcx,%rsi,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.21 # Prob 50% #66.26 + # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.20: # Preds ..B1.19 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.21: # Preds ..B1.20 ..B1.19 + # Execution count [2.50e+04] + incq %rdx #59.13 + cmpq %r8, %rdx #59.13 + jb ..B1.19 # Prob 82% #59.13 + # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.23: # Preds ..B1.21 ..B1.17 ..B1.41 + # Execution count [4.50e+03] + vmovsd %xmm9, 408(%rsp) #66.26[spill] + vmovsd %xmm10, 424(%rsp) #66.26[spill] + vmovsd %xmm1, 432(%rsp) #66.26[spill] + vmovsd %xmm6, 440(%rsp) #66.26[spill] + vmovsd %xmm3, 448(%rsp) #66.26[spill] + vmovsd %xmm4, 456(%rsp) #66.26[spill] + vmovsd %xmm2, 392(%rsp) #66.26[spill] + vmovsd %xmm8, 400(%rsp) #66.26[spill] + vmovsd %xmm7, 416(%rsp) #66.26[spill] + movq %r9, 384(%rsp) #66.26[spill] + vmovupd 192(%rsp), %ymm6 #66.26[spill] + vmovupd 160(%rsp), %ymm4 #66.26[spill] + vmovupd 128(%rsp), %ymm5 #66.26[spill] + vmovupd 288(%rsp), %ymm3 #66.26[spill] + vmovupd 256(%rsp), %ymm1 #66.26[spill] + vmovupd 224(%rsp), %ymm12 #66.26[spill] + vmovupd 96(%rsp), %ymm11 #66.26[spill] + vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #66.26 + vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #66.26 + # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.24: # Preds ..B1.26 ..B1.23 + # Execution count [2.50e+04] + movl $111,%ebx #IACA/OSACA START MARKER + .byte 100,103,144 #IACA/OSACA START MARKER + vmovdqu (%rax,%r8,4), %xmm2 #60.25 + vmovd %xmm2, %rdx #60.25 + vpunpckhqdq %xmm2, %xmm2, %xmm8 #60.25 + vmovd %xmm8, %r9 #60.25 + movl %edx, %ebx #60.25 + shrq $32, %rdx #60.25 + lea (%rdx,%rdx,2), %esi #61.40 + lea (%rbx,%rbx,2), %ebx #61.40 + movslq %ebx, %rdx #61.40 + movslq %esi, %rbx #61.40 + movl %r9d, %esi #60.25 + shrq $32, %r9 #60.25 + vmovups (%rcx,%rdx,8), %xmm13 #61.40 + vmovups (%rcx,%rbx,8), %xmm0 #61.40 + vmovq 16(%rcx,%rdx,8), %xmm14 #61.40 + lea (%rsi,%rsi,2), %esi #61.40 + movslq %esi, %rsi #61.40 + lea (%r9,%r9,2), %r9d #61.40 + movslq %r9d, %r9 #61.40 + vmovhpd 16(%rcx,%rbx,8), %xmm14, %xmm15 #61.40 + vinsertf128 $1, (%rcx,%rsi,8), %ymm13, %ymm7 #61.40 + vmovq 16(%rcx,%rsi,8), %xmm2 #61.40 + vinsertf128 $1, (%rcx,%r9,8), %ymm0, %ymm0 #61.40 + vmovhpd 16(%rcx,%r9,8), %xmm2, %xmm8 #61.40 + vunpcklpd %ymm0, %ymm7, %ymm14 #61.40 + vunpckhpd %ymm0, %ymm7, %ymm7 #61.40 + vsubpd %ymm14, %ymm5, %ymm0 #61.40 + vinsertf128 $1, %xmm8, %ymm15, %ymm13 #61.40 + vsubpd %ymm7, %ymm4, %ymm8 #62.40 + vsubpd %ymm13, %ymm6, %ymm2 #63.40 + vmulpd %ymm8, %ymm8, %ymm14 #64.53 + vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 + vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 + vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 + vpcmpeqd %ymm13, %ymm13, %ymm13 #66.26 + vptest %ymm13, %ymm7 #66.26 + je ..B1.26 # Prob 50% #66.26 + # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 +..B1.25: # Preds ..B1.24 + # Execution count [1.25e+04] + vdivpd %ymm14, %ymm10, %ymm13 #67.42 + vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] + vmulpd %ymm14, %ymm13, %ymm14 #68.48 + vmulpd %ymm14, %ymm13, %ymm15 #68.54 + vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 + vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] + vmulpd %ymm13, %ymm15, %ymm15 #69.65 + vmulpd %ymm14, %ymm15, %ymm13 #69.71 + vmulpd %ymm13, %ymm0, %ymm0 #70.35 + vmulpd %ymm13, %ymm8, %ymm8 #71.35 + vandpd %ymm0, %ymm7, %ymm0 #70.35 + vaddpd %ymm0, %ymm12, %ymm12 #70.21 + vmulpd %ymm13, %ymm2, %ymm0 #72.35 + vandpd %ymm8, %ymm7, %ymm2 #71.35 + vandpd %ymm0, %ymm7, %ymm7 #72.35 + vaddpd %ymm2, %ymm1, %ymm1 #71.21 + vaddpd %ymm7, %ymm3, %ymm3 #72.21 + # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.26: # Preds ..B1.25 ..B1.24 + # Execution count [2.50e+04] + addq $4, %r8 #59.13 + cmpq %rdi, %r8 #59.13 + jb ..B1.24 # Prob 82% #59.13 + movl $222,%ebx #IACA/OSACA END MARKER + .byte 100,103,144 #IACA/OSACA END MARKER + # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 +..B1.27: # Preds ..B1.26 + # Execution count [4.50e+03] + vmovupd %ymm3, 288(%rsp) #[spill] + vmovupd %ymm1, 256(%rsp) #[spill] + vmovsd 392(%rsp), %xmm2 #[spill] + vmovsd 400(%rsp), %xmm8 #[spill] + vmovsd 408(%rsp), %xmm9 #[spill] + vmovsd 416(%rsp), %xmm7 #[spill] + vmovsd 424(%rsp), %xmm10 #[spill] + vmovsd 432(%rsp), %xmm1 #[spill] + vmovsd 440(%rsp), %xmm6 #[spill] + vmovsd 448(%rsp), %xmm3 #[spill] + vmovsd 456(%rsp), %xmm4 #[spill] + movq 384(%rsp), %r9 #[spill] + vmovupd %ymm12, 224(%rsp) #[spill] + vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # + vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.28: # Preds ..B1.27 ..B1.39 + # Execution count [5.00e+03] + cmpq %r9, %rdi #59.13 + jae ..B1.34 # Prob 10% #59.13 + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.30: # Preds ..B1.28 ..B1.32 + # Execution count [2.50e+04] + movl (%rax,%rdi,4), %edx #60.25 + lea (%rdx,%rdx,2), %ebx #61.40 + movslq %ebx, %rbx #61.40 + vsubsd 8(%rcx,%rbx,8), %xmm10, %xmm13 #62.40 + vsubsd (%rcx,%rbx,8), %xmm1, %xmm12 #61.40 + vsubsd 16(%rcx,%rbx,8), %xmm7, %xmm11 #63.40 + vmulsd %xmm13, %xmm13, %xmm14 #64.53 + vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 + vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 + vcomisd %xmm14, %xmm4 #66.26 + jbe ..B1.32 # Prob 50% #66.26 + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 +..B1.31: # Preds ..B1.30 + # Execution count [1.25e+04] + vdivsd %xmm14, %xmm5, %xmm15 #67.42 + vmulsd %xmm15, %xmm3, %xmm14 #68.42 + vmulsd %xmm15, %xmm14, %xmm14 #68.48 + vmulsd %xmm15, %xmm14, %xmm14 #68.54 + vmulsd %xmm6, %xmm15, %xmm15 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.65 + vsubsd %xmm0, %xmm14, %xmm14 #69.58 + vmulsd %xmm14, %xmm15, %xmm15 #69.71 + vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 + vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 + vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.32: # Preds ..B1.31 ..B1.30 + # Execution count [2.50e+04] + incq %rdi #59.13 + cmpq %r9, %rdi #59.13 + jb ..B1.30 # Prob 82% #59.13 + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 + # Execution count [5.00e+03] + .byte 15 #58.9 + .byte 31 #58.9 + .byte 64 #58.9 + .byte 0 #58.9 + incl %r10d #58.9 + cmpl $1000, %r10d #58.9 + jb ..B1.10 # Prob 99% #58.9 + # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.35: # Preds ..B1.34 + # Execution count [5.00e+00] + vmovupd 288(%rsp), %ymm12 #[spill] + vmovupd 256(%rsp), %ymm13 #[spill] + vmovupd 224(%rsp), %ymm14 #[spill] + movq 64(%rsp), %rdx #[spill] + movq 88(%rsp), %rdi #[spill] + movq 80(%rsp), %rsi #[spill] + movq 72(%rsp), %rbx #[spill] + movslq %edx, %rax #46.32 + movq 24(%rsp), %r8 #[spill] + incq %rax #46.32 + addq $24, %r8 #46.5 + vextractf128 $1, %ymm12, %xmm1 #54.22 + vextractf128 $1, %ymm13, %xmm11 #53.22 + vaddpd %xmm1, %xmm12, %xmm5 #54.22 + vaddpd %xmm11, %xmm13, %xmm15 #53.22 + vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 + vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 + vaddsd %xmm7, %xmm5, %xmm10 #54.22 + vaddsd %xmm1, %xmm15, %xmm5 #53.22 + vaddsd %xmm2, %xmm10, %xmm2 #54.22 + vaddsd %xmm8, %xmm5, %xmm5 #53.22 + vextractf128 $1, %ymm14, %xmm8 #52.22 + vaddpd %xmm8, %xmm14, %xmm8 #52.22 + vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 + vaddsd %xmm14, %xmm8, %xmm1 #52.22 + vaddsd %xmm9, %xmm1, %xmm9 #52.22 + vaddsd (%rdi,%rdx,8), %xmm9, %xmm1 #77.9 + vmovsd %xmm1, (%rdi,%rdx,8) #77.9 + vaddsd (%rsi,%rdx,8), %xmm5, %xmm7 #78.9 + vmovsd %xmm7, (%rsi,%rdx,8) #78.9 + vaddsd (%rbx,%rdx,8), %xmm2, %xmm2 #79.9 + vmovsd %xmm2, (%rbx,%rdx,8) #79.9 + incq %rdx #46.5 + cmpq 40(%rsp), %rdx #46.5[spill] + jb ..B1.9 # Prob 82% #46.5 + # LOE rax rdx rcx rbx rsi rdi r8 xmm0 xmm3 xmm4 xmm6 +..B1.36: # Preds ..B1.35 + # Execution count [9.00e-01] + movq (%rsp), %r12 #[spill] + .cfi_restore 12 + movq 8(%rsp), %r13 #[spill] + .cfi_restore 13 + movq 16(%rsp), %r14 #[spill] + .cfi_restore 14 + # LOE r12 r13 r14 +..B1.38: # Preds ..B1.1 ..B1.36 + # Execution count [1.00e+00] + vzeroupper #82.12 + vxorpd %xmm0, %xmm0, %xmm0 #82.12 + addq $464, %rsp #82.12 + .cfi_restore 3 + popq %rbx #82.12 + .cfi_restore 15 + popq %r15 #82.12 + movq %rbp, %rsp #82.12 + popq %rbp #82.12 + .cfi_def_cfa 7, 8 + .cfi_restore 6 + ret #82.12 + .cfi_def_cfa 6, 16 + .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 + .cfi_offset 6, -16 + .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xfe, 0xff, 0xff, 0x22 + .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 + # LOE +..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 + # Execution count [4.50e+02]: Infreq + xorl %edi, %edi #59.13 + jmp ..B1.28 # Prob 100% #59.13 + # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 +..B1.41: # Preds ..B1.12 + # Execution count [4.50e+02]: Infreq + movq %r14, %rdi #59.13 + xorl %r8d, %r8d #59.13 + jmp ..B1.23 # Prob 100% #59.13 + .align 16,0x90 + # LOE rax rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 + .cfi_endproc +# mark_end; + .type computeForce,@function + .size computeForce,.-computeForce +..LNcomputeForce.0: + .data +# -- End computeForce + .section .rodata, "a" + .align 32 + .align 32 +.L_2il0floatpacket.2: + .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 + .type .L_2il0floatpacket.2,@object + .size .L_2il0floatpacket.2,32 + .align 32 +.L_2il0floatpacket.3: + .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 + .type .L_2il0floatpacket.3,@object + .size .L_2il0floatpacket.3,32 + .align 8 +.L_2il0floatpacket.0: + .long 0x00000000,0x40480000 + .type .L_2il0floatpacket.0,@object + .size .L_2il0floatpacket.0,8 + .align 8 +.L_2il0floatpacket.1: + .long 0x00000000,0x3fe00000 + .type .L_2il0floatpacket.1,@object + .size .L_2il0floatpacket.1,8 + .align 8 +.L_2il0floatpacket.4: + .long 0x00000000,0x3ff00000 + .type .L_2il0floatpacket.4,@object + .size .L_2il0floatpacket.4,8 + .data + .section .note.GNU-stack, "" +# End From 6704089f7d0fa86881dba7ae44b071b4040fb3d9 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Sun, 16 May 2021 23:52:59 +0200 Subject: [PATCH 23/32] Update .gitignore Signed-off-by: Rafael Ravedutti --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index c6127b3..52c86c7 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,9 @@ modules.order Module.symvers Mkfile.old dkms.conf + +# Build directories and executables +GCC/ +ICC/ +MDBench-GCC* +MDBench-ICC* From f7f7ae200293c56613c4a3983196773f1e989975 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Sun, 16 May 2021 23:58:52 +0200 Subject: [PATCH 24/32] Update soa_broadep2_iln1000 results Signed-off-by: Rafael Ravedutti --- scripts/results_soa_broadep2_iln1000.txt | 194 +++++++++++++---------- 1 file changed, 107 insertions(+), 87 deletions(-) diff --git a/scripts/results_soa_broadep2_iln1000.txt b/scripts/results_soa_broadep2_iln1000.txt index 0c0fae0..2a00aa4 100644 --- a/scripts/results_soa_broadep2_iln1000.txt +++ b/scripts/results_soa_broadep2_iln1000.txt @@ -1,87 +1,107 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,2.1360,23.9701,95.9944,13.7135 -200,4x4x4,8,512,43.0080,12.2880,18.4320,4.3167,23.7221,96.9983,13.8569 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,8.5194,24.0392,95.7186,13.6741 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,17.4337,23.4947,97.9370,13.9910 -200,4x8x2,8,512,43.0080,12.2880,18.4320,4.2566,24.0568,95.6488,13.6641 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,9.2081,22.2412,103.4567,14.7795 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,17.5763,23.3041,98.7380,14.1054 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,34.0899,24.0306,95.7531,13.6790 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,8.5118,24.0608,95.6326,13.6618 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,17.0260,24.0574,95.6463,13.6638 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,34.2228,23.9373,96.1263,13.7323 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,70.1974,23.3399,98.5865,14.0838 -200,8x4x2,8,512,43.0080,12.2880,18.4320,4.2777,23.9379,96.1236,13.7319 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,8.5118,24.0608,95.6328,13.6618 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,17.0249,24.0589,95.6404,13.6629 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,34.0480,24.0601,95.6354,13.6622 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,8.5123,24.0593,95.6388,13.6627 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,17.0434,24.0327,95.7445,13.6778 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,34.0453,24.0621,95.6277,13.6611 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,68.7834,23.8197,96.6007,13.8001 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,17.1665,23.8604,96.4357,13.7765 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,34.7349,23.5844,97.5647,13.9378 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,68.0974,24.0597,95.6373,13.6625 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,137.8436,-7.3864,-311.5186,-44.5027 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,8.5148,24.0524,95.6662,13.6666 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,17.0260,24.0573,95.6467,13.6638 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,34.0505,24.0584,95.6424,13.6632 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,69.0856,23.7155,97.0251,13.8607 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,17.4353,23.4925,97.9460,13.9923 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,34.0727,24.0427,95.7047,13.6721 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,69.3569,23.6227,97.4062,13.9152 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,137.4764,-7.4061,-310.6889,-44.3841 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,34.0576,24.0534,95.6622,13.6660 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,71.0575,23.0574,99.7945,14.2564 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,136.6013,-7.4536,-308.7110,-44.1016 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,274.6401,-7.4146,-310.3355,-44.3336 -200,4x4x2,16,512,59.3920,12.2880,34.8160,7.2058,14.2108,161.9192,10.7946 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,14.4343,14.1884,162.1750,10.8117 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,28.8264,14.2092,161.9376,10.7958 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,58.3994,14.0275,164.0345,10.9356 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,14.4088,14.2135,161.8880,10.7925 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,29.4276,13.9189,165.3146,11.0210 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,59.7154,13.7184,167.7309,11.1821 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,115.2898,14.2111,161.9152,10.7943 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,28.8249,14.2100,161.9287,10.7952 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,58.7774,13.9373,165.0962,11.0064 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,116.0715,14.1154,163.0130,10.8675 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,231.6558,-4.3952,-523.5290,-34.9019 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,14.4120,14.2104,161.9233,10.7949 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,28.8246,14.2101,161.9270,10.7951 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,58.9677,13.8924,165.6307,11.0420 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,117.3380,13.9631,164.7917,10.9861 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,29.2781,13.9900,164.4749,10.9650 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,59.7120,13.7192,167.7213,11.1814 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,116.6388,14.0468,163.8097,10.9206 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,235.1777,-4.3294,-531.4882,-35.4325 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,57.6495,14.2100,161.9280,10.7952 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,116.3551,14.0810,163.4112,10.8941 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,230.6178,-4.4150,-521.1831,-34.7455 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,475.6845,-4.2809,-537.5100,-35.8340 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,28.8208,14.2120,161.9058,10.7937 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,57.6418,14.2119,161.9066,10.7938 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,117.6560,13.9253,165.2383,11.0159 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,239.2523,-4.2556,-540.6966,-36.0464 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,58.7259,13.9495,164.9516,10.9968 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,118.8258,13.7883,166.8811,11.1254 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,231.1737,-4.4043,-522.4394,-34.8293 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,472.1670,-4.3127,-533.5352,-35.5690 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,116.7953,14.0280,164.0296,10.9353 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,230.5746,-4.4158,-521.0854,-34.7390 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,464.7158,-4.3819,-525.1156,-35.0077 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,925.1097,0.2403,9575.7780,638.3852 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,26.0030,7.8760,292.1528,9.4243 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,51.8944,7.8930,291.5258,9.4041 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,107.3953,7.6279,301.6561,9.7308 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,213.9949,7.6563,300.5385,9.6948 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,51.8926,7.8932,291.5157,9.4037 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,104.0172,7.8756,292.1675,9.4248 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,209.5100,7.8202,294.2398,9.4916 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,429.5337,-2.3704,-970.7216,-31.3136 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,103.7967,7.8923,291.5482,9.4048 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,211.2654,7.7552,296.7051,9.5711 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,422.9005,-2.4076,-955.7310,-30.8300 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,833.3645,-2.4435,-941.6781,-30.3767 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,52.0055,7.8761,292.1499,9.4242 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,106.8542,7.6665,300.1363,9.6818 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,209.6327,7.8156,294.4121,9.4972 +200,4x4x2,8,256,21.5040,6.1440,9.2160,2.1353,23.9782,95.9620,13.7089 +200,4x4x4,8,512,43.0080,12.2880,18.4320,4.3181,23.7144,97.0298,13.8614 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,8.5109,24.0632,95.6231,13.6604 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,17.0205,24.0651,95.6158,13.6594 +200,4x8x2,8,512,43.0080,12.2880,18.4320,4.2564,24.0579,95.6442,13.6635 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,8.6350,23.7174,97.0173,13.8596 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,17.0207,24.0649,95.6166,13.6595 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,34.6027,23.6744,97.1935,13.8848 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,8.5135,24.0559,95.6524,13.6646 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,17.0300,24.0517,95.6689,13.6670 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,34.4582,23.7737,96.7876,13.8268 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,68.3538,23.9694,95.9974,13.7139 +200,8x4x2,8,512,43.0080,12.2880,18.4320,4.2576,24.0512,95.6708,13.6673 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,8.5643,23.9133,96.2224,13.7461 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,17.0216,24.0636,95.6216,13.6602 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,34.3277,23.8641,96.4210,13.7744 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,8.5150,24.0516,95.6693,13.6670 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,17.0235,24.0608,95.6327,13.6618 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,34.0518,24.0575,95.6459,13.6637 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,68.0984,24.0593,95.6386,13.6627 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,17.0230,24.0616,95.6297,13.6614 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,34.0451,24.0622,95.6273,13.6610 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,68.1014,24.0583,95.6428,13.6633 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,136.4647,24.0121,95.8268,13.6895 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,8.6901,23.5671,97.6360,13.9480 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,17.4044,23.5343,97.7723,13.9675 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,34.0569,24.0539,95.6603,13.6658 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,68.7236,23.8404,96.5168,13.7881 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,17.1338,23.9059,96.2523,13.7503 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,34.2669,23.9064,96.2502,13.7500 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,70.0776,23.3798,98.4182,14.0597 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,136.2386,24.0519,95.6680,13.6669 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,34.0482,24.0600,95.6358,13.6623 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,68.6491,23.8663,96.4121,13.7732 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,137.8710,23.7671,96.8144,13.8306 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,277.3699,23.6277,97.3859,13.9123 +200,4x4x2,16,512,59.3920,12.2880,34.8160,7.3151,13.9984,164.3763,10.9584 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,14.4104,14.2120,161.9059,10.7937 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,29.7442,13.7708,167.0931,11.1395 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,57.9628,14.1332,162.8081,10.8539 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,14.4086,14.2137,161.8861,10.7924 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,29.2763,13.9908,164.4650,10.9643 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,57.6454,14.2110,161.9167,10.7944 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,117.4588,13.9487,164.9614,10.9974 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,28.8261,14.2094,161.9356,10.7957 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,58.6978,13.9562,164.8725,10.9915 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,115.3036,14.2094,161.9346,10.7956 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,234.2918,13.9860,164.5219,10.9681 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,14.4086,14.2137,161.8855,10.7924 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,28.8230,14.2109,161.9184,10.7946 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,59.1780,13.8430,166.2214,11.0814 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,117.4585,13.9488,164.9609,10.9974 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,28.8173,14.2137,161.8863,10.7924 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,58.4082,14.0254,164.0591,10.9373 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,115.2800,14.2123,161.9015,10.7934 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,232.9699,14.0653,163.5937,10.9062 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,59.3376,13.8058,166.6696,11.1113 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,115.2970,14.2103,161.9253,10.7950 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,240.4558,13.6275,168.8503,11.2567 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,462.5401,14.1687,162.4000,10.8267 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,28.8184,14.2131,161.8927,10.7928 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,57.9551,14.1351,162.7864,10.8524 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,115.7986,14.1487,162.6298,10.8420 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,236.1090,13.8783,165.7980,11.0532 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,59.4157,13.7876,166.8891,11.1259 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,117.0833,13.9935,164.4339,10.9623 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,231.0443,14.1826,162.2415,10.8161 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,461.2008,14.2099,161.9298,10.7953 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,118.1060,13.8723,165.8703,11.0580 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,231.5209,14.1534,162.5762,10.8384 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,466.6747,14.0432,163.8517,10.9234 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,938.5839,13.9649,164.7706,10.9847 +200,4x4x2,32,1024,184.3200,24.5760,135.1680,27.1988,7.5298,305.5877,9.8577 +200,4x4x4,32,2048,368.6400,49.1520,270.3360,51.8929,7.8932,291.5174,9.4038 +200,4x4x8,32,4096,737.2800,98.3040,540.6720,104.9857,7.8030,294.8878,9.5125 +200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,210.0029,7.8018,294.9320,9.5139 +200,4x8x2,32,2048,368.6400,49.1520,270.3360,51.8941,7.8930,291.5240,9.4040 +200,4x8x4,32,4096,737.2800,98.3040,540.6720,104.9772,7.8036,294.8640,9.5117 +200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,212.3359,7.7161,298.2085,9.6196 +200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,415.1714,7.8926,291.5373,9.4044 +200,4x16x2,32,4096,737.2800,98.3040,540.6720,107.1892,7.6426,301.0771,9.7122 +200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,213.7067,7.6666,300.1338,9.6817 +200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,429.5336,7.6287,301.6226,9.7298 +200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,835.8309,7.8408,293.4642,9.4666 +200,8x4x2,32,2048,368.6400,49.1520,270.3360,53.2960,7.6854,299.3996,9.6581 +200,8x4x4,32,4096,737.2800,98.3040,540.6720,106.0529,7.7244,297.8853,9.6092 +200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,213.3924,7.6779,299.6924,9.6675 +200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,416.1584,7.8739,292.2304,9.4268 +200,8x8x2,32,4096,737.2800,98.3040,540.6720,104.1101,7.8686,292.4283,9.4332 +200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,211.0920,7.7615,296.4616,9.5633 +200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,421.6304,7.7717,296.0729,9.5507 +200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,837.8503,7.8219,294.1732,9.4895 +200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,208.5033,7.8579,292.8260,9.4460 +200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,420.4673,7.7932,295.2561,9.5244 +200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,840.7054,7.7954,295.1757,9.5218 +200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1661.9291,7.8867,291.7556,9.4115 +200,16x4x2,32,4096,737.2800,98.3040,540.6720,105.6303,7.7554,296.6983,9.5709 +200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,207.5775,7.8930,291.5258,9.4041 +200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,420.5695,7.7913,295.3279,9.5267 +200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,833.0888,7.8666,292.5014,9.4355 +200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,210.1080,7.7979,295.0796,9.5187 +200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,428.5183,7.6468,300.9096,9.7068 +200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,845.6674,7.7496,296.9178,9.5780 +200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1706.5013,7.6807,299.5803,9.6639 +200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,416.8327,7.8612,292.7039,9.4421 +200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,844.7536,7.7580,296.5970,9.5676 +200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1706.9248,7.6788,299.6547,9.6663 From 4496e911258056274ecc9e1de25970dc80cef123 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 19 May 2021 23:51:02 +0200 Subject: [PATCH 25/32] Add version with explicit types for atoms Signed-off-by: Rafael Ravedutti --- src/atom.c | 29 +++++++++++++++++++++++++++++ src/force.c | 27 +++++++++++++++++++-------- src/includes/atom.h | 8 ++++++++ src/includes/parameter.h | 1 + src/main-stub.c | 23 ++++++++++++++++++++--- src/main.c | 7 ++++--- src/neighbor.c | 12 ++++++++++-- 7 files changed, 91 insertions(+), 16 deletions(-) diff --git a/src/atom.c b/src/atom.c index 687de55..4e28d7a 100644 --- a/src/atom.c +++ b/src/atom.c @@ -41,6 +41,14 @@ void initAtom(Atom *atom) atom->Nlocal = 0; atom->Nghost = 0; atom->Nmax = 0; + #ifdef EXPLICIT_TYPES + atom->type = NULL; + atom->ntypes = 0; + atom->epsilon = NULL; + atom->sigma6 = NULL; + atom->cutforcesq = NULL; + atom->cutneighsq = NULL; + #endif } void createAtom(Atom *atom, Parameter *param) @@ -50,6 +58,21 @@ void createAtom(Atom *atom, Parameter *param) MD_FLOAT zlo = 0.0; MD_FLOAT zhi = param->zprd; atom->Natoms = 4 * param->nx * param->ny * param->nz; atom->Nlocal = 0; + + #ifdef EXPLICIT_TYPES + atom->ntypes = param->ntypes; + atom->epsilon = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->sigma6 = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->cutforcesq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->cutneighsq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + for(int i = 0; i < atom->ntypes * atom->ntypes; i++) { + atom->epsilon[i] = param->epsilon; + atom->sigma6[i] = param->sigma6; + atom->cutneighsq[i] = param->cutneigh * param->cutneigh; + atom->cutforcesq[i] = param->cutforce * param->cutforce; + } + #endif + MD_FLOAT alat = pow((4.0 / param->rho), (1.0 / 3.0)); int ilo = (int) (xlo / (0.5 * alat) - 1); int ihi = (int) (xhi / (0.5 * alat) + 1); @@ -119,6 +142,9 @@ void createAtom(Atom *atom, Parameter *param) atom->vx[atom->Nlocal] = vxtmp; atom->vy[atom->Nlocal] = vytmp; atom->vz[atom->Nlocal] = vztmp; + #ifdef EXPLICIT_TYPES + atom->type[atom->Nlocal] = rand() % atom->ntypes; + #endif atom->Nlocal++; } } @@ -151,6 +177,9 @@ void growAtom(Atom *atom) atom->fx = (MD_FLOAT*) reallocate(atom->fx, ALIGNMENT, atom->Nmax * sizeof(MD_FLOAT), nold * sizeof(MD_FLOAT)); atom->fy = (MD_FLOAT*) reallocate(atom->fy, ALIGNMENT, atom->Nmax * sizeof(MD_FLOAT), nold * sizeof(MD_FLOAT)); atom->fz = (MD_FLOAT*) reallocate(atom->fz, ALIGNMENT, atom->Nmax * sizeof(MD_FLOAT), nold * sizeof(MD_FLOAT)); + #ifdef EXPLICIT_TYPES + atom->type = (int *) reallocate(atom->type, ALIGNMENT, atom->Nmax * sizeof(int), nold * sizeof(int)); + #endif } diff --git a/src/force.c b/src/force.c index bd471c2..d1dda58 100644 --- a/src/force.c +++ b/src/force.c @@ -27,14 +27,16 @@ #include #include -double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { +double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor, int ntimes) { + double S = getTimeStamp(); int Nlocal = atom->Nlocal; int* neighs; + MD_FLOAT* fx = atom->fx; MD_FLOAT* fy = atom->fy; MD_FLOAT* fz = atom->fz; + #ifndef EXPLICIT_TYPES MD_FLOAT cutforcesq = param->cutforce * param->cutforce; MD_FLOAT sigma6 = param->sigma6; MD_FLOAT epsilon = param->epsilon; - MD_FLOAT* fx = atom->fx; MD_FLOAT* fy = atom->fy; MD_FLOAT* fz = atom->fz; - double S, E; + #endif for(int i = 0; i < Nlocal; i++) { fx[i] = 0.0; @@ -42,7 +44,7 @@ double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { fz[i] = 0.0; } -#pragma omp parallel for + #pragma omp parallel for for(int i = 0; i < Nlocal; i++) { neighs = &neighbor->neighbors[i * neighbor->maxneighs]; int numneighs = neighbor->numneigh[i]; @@ -52,16 +54,24 @@ double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { MD_FLOAT fix = 0; MD_FLOAT fiy = 0; MD_FLOAT fiz = 0; + #ifdef EXPLICIT_TYPES + const int type_i = atom->type[i]; + #endif -// printf("%d: %d\n", i, numneighs); - - for(int n = 0; n < INTERNAL_LOOP_NTIMES; n++) { + for(int n = 0; n < ntimes; n++) { for(int k = 0; k < numneighs; k++) { int j = neighs[k]; MD_FLOAT delx = xtmp - atom_x(j); MD_FLOAT dely = ytmp - atom_y(j); MD_FLOAT delz = ztmp - atom_z(j); MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; + #ifdef EXPLICIT_TYPES + const int type_j = atom->type[j]; + const int type_ij = type_i * atom->ntypes + type_j; + const MD_FLOAT cutforcesq = atom->cutforcesq[type_ij]; + const MD_FLOAT sigma6 = atom->sigma6[type_ij]; + const MD_FLOAT epsilon = atom->epsilon[type_ij]; + #endif if(rsq < cutforcesq) { MD_FLOAT sr2 = 1.0 / rsq; @@ -79,5 +89,6 @@ double computeForce(Parameter *param, Atom *atom, Neighbor *neighbor) { fz[i] += fiz; } - return 0.0; + double E = getTimeStamp(); + return E-S; } diff --git a/src/includes/atom.h b/src/includes/atom.h index e090936..ed1a0f9 100644 --- a/src/includes/atom.h +++ b/src/includes/atom.h @@ -30,6 +30,14 @@ typedef struct { MD_FLOAT *x, *y, *z; MD_FLOAT *vx, *vy, *vz; MD_FLOAT *fx, *fy, *fz; + #ifdef EXPLICIT_TYPES + int *type; + int ntypes; + MD_FLOAT *epsilon; + MD_FLOAT *sigma6; + MD_FLOAT *cutforcesq; + MD_FLOAT *cutneighsq; + #endif } Atom; extern void initAtom(Atom*); diff --git a/src/includes/parameter.h b/src/includes/parameter.h index 9d51b12..0ddec95 100644 --- a/src/includes/parameter.h +++ b/src/includes/parameter.h @@ -40,6 +40,7 @@ typedef struct { MD_FLOAT temp; MD_FLOAT rho; MD_FLOAT mass; + int ntypes; int ntimes; int nstat; int every; diff --git a/src/main-stub.c b/src/main-stub.c index ad2e580..a0973f1 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -16,12 +16,13 @@ #define LATTICE_DISTANCE 10.0 #define NEIGH_DISTANCE 1.0 -extern double computeForce( Parameter*, Atom*, Neighbor*); +extern double computeForce( Parameter*, Atom*, Neighbor*, int); void init(Parameter *param) { param->epsilon = 1.0; param->sigma6 = 1.0; param->rho = 0.8442; + param->ntypes = 4; param->ntimes = 200; param->nx = 4; param->ny = 4; @@ -49,6 +50,7 @@ void init(Parameter *param) { atom->vx[atom->Nlocal] = vy; \ atom->vy[atom->Nlocal] = vy; \ atom->vz[atom->Nlocal] = vz; \ + atom->type[atom->Nlocal] = rand() % atom->ntypes; \ atom->Nlocal++ int main(int argc, const char *argv[]) { @@ -123,6 +125,20 @@ int main(int argc, const char *argv[]) { DEBUG("Initializing atoms...\n"); initAtom(atom); + #ifdef EXPLICIT_TYPES + atom->ntypes = param->ntypes; + atom->epsilon = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->sigma6 = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->cutforcesq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + atom->cutneighsq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); + for(int i = 0; i < atom->ntypes * atom->ntypes; i++) { + atom->epsilon[i] = param->epsilon; + atom->sigma6[i] = param->sigma6; + atom->cutneighsq[i] = param->cutneigh * param->cutneigh; + atom->cutforcesq[i] = param->cutforce * param->cutforce; + } + #endif + DEBUG("Creating atoms...\n"); for(int i = 0; i < param.nx; ++i) { for(int j = 0; j < param.ny; ++j) { @@ -173,6 +189,7 @@ int main(int argc, const char *argv[]) { if(!csv) { printf("Number of timesteps: %d\n", param.ntimes); + printf("Number of times to compute the most internal loop: %d\n", INTERNAL_LOOP_NTIMES); printf("System size (unit cells): %dx%dx%d\n", param.nx, param.ny, param.nz); printf("Atoms per unit cell: %d\n", atoms_per_unit_cell); printf("Total number of atoms: %d\n", atom->Nlocal); @@ -188,13 +205,13 @@ int main(int argc, const char *argv[]) { DEBUG("Building neighbor lists...\n"); buildNeighbor(atom, &neighbor); DEBUG("Computing forces...\n"); - computeForce(¶m, atom, &neighbor); + computeForce(¶m, atom, &neighbor, 1); double S, E; S = getTimeStamp(); LIKWID_MARKER_START("force"); for(int i = 0; i < param.ntimes; i++) { - computeForce(¶m, atom, &neighbor); + computeForce(¶m, atom, &neighbor, INTERNAL_LOOP_NTIMES); } LIKWID_MARKER_STOP("force"); E = getTimeStamp(); diff --git a/src/main.c b/src/main.c index 6b09c8e..061da97 100644 --- a/src/main.c +++ b/src/main.c @@ -47,13 +47,14 @@ typedef enum { NUMTIMER } timertype; -extern double computeForce( Parameter*, Atom*, Neighbor*); +extern double computeForce( Parameter*, Atom*, Neighbor*, int); void init(Parameter *param) { param->epsilon = 1.0; param->sigma6 = 1.0; param->rho = 0.8442; + param->ntypes = 4; param->ntimes = 200; param->dt = 0.005; param->nx = 32; @@ -205,7 +206,7 @@ int main (int argc, char** argv) setup(¶m, &atom, &neighbor); computeThermo(0, ¶m, &atom); - computeForce(¶m, &atom, &neighbor); + computeForce(¶m, &atom, &neighbor, 1); timer[FORCE] = 0.0; timer[NEIGH] = 0.0; @@ -221,7 +222,7 @@ int main (int argc, char** argv) timer[NEIGH] += reneighbour(¶m, &atom, &neighbor); } - timer[FORCE] += computeForce(¶m, &atom, &neighbor); + timer[FORCE] += computeForce(¶m, &atom, &neighbor, 1); finalIntegrate(¶m, &atom); if(!((n + 1) % param.nstat) && (n+1) < param.ntimes) { diff --git a/src/neighbor.c b/src/neighbor.c index 72a6ee1..91c7ab8 100644 --- a/src/neighbor.c +++ b/src/neighbor.c @@ -196,7 +196,9 @@ void buildNeighbor(Atom *atom, Neighbor *neighbor) MD_FLOAT ytmp = atom_y(i); MD_FLOAT ztmp = atom_z(i); int ibin = coord2bin(xtmp, ytmp, ztmp); - + #ifdef EXPLICIT_TYPES + int type_i = atom->type[i]; + #endif for(int k = 0; k < nstencil; k++) { int jbin = ibin + stencil[k]; int* loc_bin = &bins[jbin * atoms_per_bin]; @@ -213,7 +215,13 @@ void buildNeighbor(Atom *atom, Neighbor *neighbor) MD_FLOAT delz = ztmp - atom_z(j); MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; - if( rsq <= cutneighsq ) { + #ifdef EXPLICIT_TYPES + int type_j = atom->type[j]; + const MD_FLOAT cutoff = atom->cutneighsq[type_i * atom->ntypes + type_j]; + #else + const MD_FLOAT cutoff = cutneighsq; + #endif + if( rsq <= cutoff ) { neighptr[n++] = j; } } From 56ad09156bd8f350871289b0c0ca51798f6733aa Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 20 May 2021 00:08:10 +0200 Subject: [PATCH 26/32] Fix explicit types for stubbed version Signed-off-by: Rafael Ravedutti --- Makefile | 4 ++++ src/main-stub.c | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index e15e330..23b00ce 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,10 @@ ifneq ($(INTERNAL_LOOP_NTIMES),) DEFINES += -DINTERNAL_LOOP_NTIMES=$(INTERNAL_LOOP_NTIMES) endif +ifneq ($(EXPLICIT_TYPES),) + DEFINES += -DEXPLICIT_TYPES +endif + VPATH = $(SRC_DIR) ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) OBJ = $(filter-out $(BUILD_DIR)/main%,$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) diff --git a/src/main-stub.c b/src/main-stub.c index a0973f1..e7493b8 100644 --- a/src/main-stub.c +++ b/src/main-stub.c @@ -50,7 +50,6 @@ void init(Parameter *param) { atom->vx[atom->Nlocal] = vy; \ atom->vy[atom->Nlocal] = vy; \ atom->vz[atom->Nlocal] = vz; \ - atom->type[atom->Nlocal] = rand() % atom->ntypes; \ atom->Nlocal++ int main(int argc, const char *argv[]) { @@ -126,16 +125,16 @@ int main(int argc, const char *argv[]) { initAtom(atom); #ifdef EXPLICIT_TYPES - atom->ntypes = param->ntypes; + atom->ntypes = param.ntypes; atom->epsilon = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); atom->sigma6 = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); atom->cutforcesq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); atom->cutneighsq = allocate(ALIGNMENT, atom->ntypes * atom->ntypes * sizeof(MD_FLOAT)); for(int i = 0; i < atom->ntypes * atom->ntypes; i++) { - atom->epsilon[i] = param->epsilon; - atom->sigma6[i] = param->sigma6; - atom->cutneighsq[i] = param->cutneigh * param->cutneigh; - atom->cutforcesq[i] = param->cutforce * param->cutforce; + atom->epsilon[i] = param.epsilon; + atom->sigma6[i] = param.sigma6; + atom->cutneighsq[i] = param.cutneigh * param.cutneigh; + atom->cutforcesq[i] = param.cutforce * param.cutforce; } #endif @@ -173,6 +172,9 @@ int main(int argc, const char *argv[]) { for(int jj = 0; jj < fac_y; ++jj) { for(int kk = 0; kk < fac_z; ++kk) { if(added_atoms < atoms_per_unit_cell) { + #ifdef EXPLICIT_TYPES + atom->type[atom->Nlocal] = rand() % atom->ntypes; + #endif ADD_ATOM(ii * offset_x, jj * offset_y, kk * offset_z, vx, vy, vz); added_atoms++; } From f8e5415195388eb72ea467dce40fab1ca028d09d Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 20 May 2021 00:47:30 +0200 Subject: [PATCH 27/32] Add results for casclakesp2 and skylakesp2 with iln=100,1000 Signed-off-by: Rafael Ravedutti --- scripts/results_soa_casclakesp2_iln100.txt | 296 +++++++++++++++++++++ scripts/results_soa_skylakesp2_iln1000.txt | 110 ++++++++ 2 files changed, 406 insertions(+) create mode 100644 scripts/results_soa_casclakesp2_iln100.txt create mode 100644 scripts/results_soa_skylakesp2_iln1000.txt diff --git a/scripts/results_soa_casclakesp2_iln100.txt b/scripts/results_soa_casclakesp2_iln100.txt new file mode 100644 index 0000000..3fe9ff1 --- /dev/null +++ b/scripts/results_soa_casclakesp2_iln100.txt @@ -0,0 +1,296 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0724,70.7407,35.3403,5.0486 +200,4x4x4,8,512,43.0080,12.2880,18.4320,0.1449,70.6729,35.3742,5.0535 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.2903,70.5584,35.4316,5.0617 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.5804,70.5670,35.4273,5.0610 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,1.1651,70.3143,35.5546,5.0792 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,2.3287,70.3554,35.5339,5.0763 +200,4x8x2,8,512,43.0080,12.2880,18.4320,0.1451,70.5941,35.4137,5.0591 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.2900,70.6120,35.4047,5.0578 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.5800,70.6225,35.3995,5.0571 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,1.1606,70.5872,35.4172,5.0596 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,2.3285,70.3622,35.5305,5.0758 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,4.6577,70.3519,35.5356,5.0765 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.2900,70.6244,35.3985,5.0569 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.5802,70.5984,35.4116,5.0588 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,1.1645,70.3467,35.5383,5.0769 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,2.3288,70.3539,35.5346,5.0764 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,4.6600,70.3172,35.5532,5.0790 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,9.3183,70.3306,35.5464,5.0781 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.5801,70.6086,35.4065,5.0581 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,1.1606,70.5830,35.4193,5.0599 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,2.3294,70.3369,35.5432,5.0776 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,4.6553,70.3893,35.5168,5.0738 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,9.3281,70.2565,35.5839,5.0834 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,18.6943,70.1133,35.6566,5.0938 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,1.1606,70.5854,35.4181,5.0597 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,2.3293,70.3399,35.5417,5.0774 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,4.6605,70.3106,35.5565,5.0795 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,9.3203,70.3157,35.5539,5.0791 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,18.7065,70.0674,35.6799,5.0971 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,37.8230,69.3080,36.0709,5.1530 +200,8x4x2,8,512,43.0080,12.2880,18.4320,0.1450,70.6204,35.4005,5.0572 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.2904,70.5318,35.4450,5.0636 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.5842,70.1134,35.6565,5.0938 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,1.1659,70.2662,35.5790,5.0827 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,2.3293,70.3383,35.5425,5.0775 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,4.6570,70.3624,35.5303,5.0758 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.2902,70.5777,35.4219,5.0603 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.5806,70.5534,35.4342,5.0620 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,1.1619,70.5074,35.4573,5.0653 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,2.3311,70.2836,35.5702,5.0815 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,4.6565,70.3707,35.5261,5.0752 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,9.3263,70.2702,35.5770,5.0824 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.5807,70.5301,35.4459,5.0637 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,1.1617,70.5187,35.4516,5.0645 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,2.3301,70.3158,35.5539,5.0791 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,4.6612,70.2990,35.5624,5.0803 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,9.3193,70.3226,35.5504,5.0786 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,18.7155,70.0339,35.6970,5.0996 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,1.1650,70.3184,35.5525,5.0789 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,2.3298,70.3239,35.5498,5.0785 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,4.6583,70.3430,35.5401,5.0772 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,9.3185,70.3292,35.5471,5.0782 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,18.6322,70.3469,35.5382,5.0769 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,37.8024,69.3458,36.0512,5.1502 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,2.3291,70.3437,35.5398,5.0771 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,4.6581,70.3470,35.5381,5.0769 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,9.3259,70.2733,35.5754,5.0822 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,18.6892,70.1325,35.6468,5.0924 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,37.7789,69.3891,36.0287,5.1470 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,76.8891,68.1876,36.6636,5.2377 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.2901,70.6085,35.4065,5.0581 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.5798,70.6425,35.3895,5.0556 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,1.1648,70.3298,35.5468,5.0781 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,2.3279,70.3809,35.5210,5.0744 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,4.6856,69.9334,35.7483,5.1069 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,9.3227,70.2975,35.5631,5.0804 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.5802,70.5913,35.4151,5.0593 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,1.1611,70.5552,35.4332,5.0619 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,2.3278,70.3847,35.5191,5.0742 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,4.6602,70.3152,35.5542,5.0792 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,9.3197,70.3199,35.5518,5.0788 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,18.6500,70.2798,35.5721,5.0817 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,1.1600,70.6186,35.4014,5.0573 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,2.3273,70.3983,35.5122,5.0732 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,4.6616,70.2940,35.5649,5.0807 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,9.3175,70.3367,35.5433,5.0776 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,18.6637,70.2283,35.5982,5.0855 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,37.7619,69.4202,36.0126,5.1447 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,2.3295,70.3338,35.5448,5.0778 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,4.6611,70.3016,35.5611,5.0802 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,9.3429,70.1450,35.6405,5.0915 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,18.6794,70.1691,35.6282,5.0897 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,37.8122,69.3279,36.0605,5.1515 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,76.9227,68.1578,36.6796,5.2399 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,4.6548,70.3959,35.5134,5.0733 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,9.3245,70.2833,35.5703,5.0815 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,18.6449,70.2990,35.5624,5.0803 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,37.8426,69.2722,36.0895,5.1556 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,77.0980,68.0028,36.7632,5.2519 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,155.0182,67.6421,36.9592,5.2799 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.5831,70.2406,35.5919,5.0846 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,1.1612,70.5480,35.4368,5.0624 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,2.3289,70.3507,35.5362,5.0766 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,4.6557,70.3825,35.5202,5.0743 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,9.3166,70.3433,35.5400,5.0771 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,18.6629,70.2311,35.5967,5.0852 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,1.1615,70.5290,35.4464,5.0638 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,2.3308,70.2941,35.5649,5.0807 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,4.6586,70.3385,35.5424,5.0775 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,9.3158,70.3491,35.5371,5.0767 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,18.6605,70.2404,35.5921,5.0846 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,37.8379,69.2809,36.0850,5.1550 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,2.3253,70.4600,35.4811,5.0687 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,4.6573,70.3576,35.5328,5.0761 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,9.3170,70.3403,35.5415,5.0774 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,18.6424,70.3087,35.5575,5.0796 +200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,37.8021,69.3463,36.0509,5.1501 +200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,77.1611,67.9472,36.7933,5.2562 +200,32x32x2,8,16384,1376.2560,393.2160,589.8240,4.6552,70.3899,35.5165,5.0738 +200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,9.3462,70.1208,35.6528,5.0933 +200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,18.6614,70.2368,35.5939,5.0848 +200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,37.7842,69.3793,36.0338,5.1477 +200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,76.8843,68.1918,36.6613,5.2373 +200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,155.0573,67.6251,36.9685,5.2812 +200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,9.3212,70.3083,35.5577,5.0797 +200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,18.6546,70.2625,35.5808,5.0830 +200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,37.8010,69.3485,36.0498,5.1500 +200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,76.9422,68.1405,36.6889,5.2413 +200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,155.7954,67.3047,37.1445,5.3064 +200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,311.0378,67.4244,37.0786,5.2969 +200,64x4x2,8,4096,344.0640,98.3040,147.4560,1.1608,70.5721,35.4248,5.0607 +200,64x4x4,8,8192,688.1280,196.6080,294.9120,2.3302,70.3130,35.5553,5.0793 +200,64x4x8,8,16384,1376.2560,393.2160,589.8240,4.6540,70.4077,35.5075,5.0725 +200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,9.3333,70.2171,35.6039,5.0863 +200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,18.6453,70.2976,35.5631,5.0804 +200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,37.8258,69.3029,36.0735,5.1534 +200,64x8x2,8,8192,688.1280,196.6080,294.9120,2.3290,70.3481,35.5375,5.0768 +200,64x8x4,8,16384,1376.2560,393.2160,589.8240,4.6544,70.4028,35.5099,5.0728 +200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,9.3230,70.2951,35.5643,5.0806 +200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,18.6754,70.1844,35.6204,5.0886 +200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,37.7690,69.4072,36.0193,5.1456 +200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,76.9719,68.1142,36.7030,5.2433 +200,64x16x2,8,16384,1376.2560,393.2160,589.8240,4.6547,70.3970,35.5129,5.0733 +200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,9.3174,70.3375,35.5429,5.0776 +200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,18.6668,70.2166,35.6041,5.0863 +200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,37.7946,69.3602,36.0437,5.1491 +200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,76.8550,68.2178,36.6473,5.2353 +200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,155.0076,67.6467,36.9567,5.2795 +200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,9.3208,70.3114,35.5561,5.0794 +200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,18.6700,70.2048,35.6101,5.0872 +200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,37.7702,69.4050,36.0205,5.1458 +200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,76.9311,68.1503,36.6836,5.2405 +200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,155.0291,67.6374,36.9618,5.2803 +200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,311.1067,67.4094,37.0868,5.2981 +200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,18.6574,70.2521,35.5861,5.0837 +200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,37.7664,69.4120,36.0168,5.1453 +200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,76.8818,68.1940,36.6601,5.2372 +200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,155.6472,67.3688,37.1092,5.3013 +200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,311.2255,67.3837,37.1010,5.3001 +200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,622.2886,67.4013,37.0913,5.2988 +200,4x4x2,16,512,59.3920,12.2880,34.8160,0.2845,35.9949,69.4543,4.6303 +200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.5659,36.1878,69.0841,4.6056 +200,4x4x8,16,2048,237.5680,49.1520,139.2640,1.1282,36.3067,68.8579,4.5905 +200,4x4x16,16,4096,475.1360,98.3040,278.5280,2.2700,36.0884,69.2744,4.6183 +200,4x4x32,16,8192,950.2720,196.6080,557.0560,4.5076,36.3478,68.7800,4.5853 +200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,9.0420,36.2396,68.9854,4.5990 +200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.5647,36.2673,68.9326,4.5955 +200,4x8x4,16,2048,237.5680,49.1520,139.2640,1.1283,36.3018,68.8672,4.5911 +200,4x8x8,16,4096,475.1360,98.3040,278.5280,2.2682,36.1169,69.2197,4.6146 +200,4x8x16,16,8192,950.2720,196.6080,557.0560,4.5107,36.3223,68.8283,4.5886 +200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,9.0316,36.2814,68.9058,4.5937 +200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,18.1464,36.1151,69.2232,4.6149 +200,4x16x2,16,2048,237.5680,49.1520,139.2640,1.1343,36.1088,69.2352,4.6157 +200,4x16x4,16,4096,475.1360,98.3040,278.5280,2.2682,36.1174,69.2187,4.6146 +200,4x16x8,16,8192,950.2720,196.6080,557.0560,4.5095,36.3319,68.8100,4.5873 +200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,9.0313,36.2828,68.9031,4.5935 +200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,18.0596,36.2887,68.8921,4.5928 +200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,36.2157,36.1920,69.0760,4.6051 +200,4x32x2,16,4096,475.1360,98.3040,278.5280,2.2771,35.9759,69.4911,4.6327 +200,4x32x4,16,8192,950.2720,196.6080,557.0560,4.5199,36.2489,68.9676,4.5978 +200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,9.1423,35.8423,69.7501,4.6500 +200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,18.0634,36.2812,68.9063,4.5938 +200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,36.5631,35.8481,69.7386,4.6492 +200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,73.5555,35.6389,70.1480,4.6765 +200,4x64x2,16,8192,950.2720,196.6080,557.0560,4.5115,36.3160,68.8402,4.5893 +200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,9.0323,36.2786,68.9111,4.5941 +200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,18.0756,36.2566,68.9529,4.5969 +200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,36.2052,36.2025,69.0559,4.6037 +200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,73.4933,35.6691,70.0887,4.6726 +200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,148.5317,35.2981,70.8254,4.7217 +200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.5665,36.1522,69.1521,4.6101 +200,8x4x4,16,2048,237.5680,49.1520,139.2640,1.1390,35.9629,69.5161,4.6344 +200,8x4x8,16,4096,475.1360,98.3040,278.5280,2.2692,36.1002,69.2516,4.6168 +200,8x4x16,16,8192,950.2720,196.6080,557.0560,4.5118,36.3140,68.8439,4.5896 +200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,9.0309,36.2842,68.9004,4.5934 +200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,18.0565,36.2949,68.8802,4.5920 +200,8x8x2,16,2048,237.5680,49.1520,139.2640,1.1283,36.3024,68.8660,4.5911 +200,8x8x4,16,4096,475.1360,98.3040,278.5280,2.2735,36.0331,69.3807,4.6254 +200,8x8x8,16,8192,950.2720,196.6080,557.0560,4.5120,36.3122,68.8474,4.5898 +200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,9.0231,36.3155,68.8411,4.5894 +200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,18.0499,36.3082,68.8550,4.5903 +200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,36.1667,36.2410,68.9826,4.5988 +200,8x16x2,16,4096,475.1360,98.3040,278.5280,2.2698,36.0910,69.2694,4.6180 +200,8x16x4,16,8192,950.2720,196.6080,557.0560,4.5133,36.3020,68.8668,4.5911 +200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,9.0286,36.2934,68.8830,4.5922 +200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,18.0824,36.2429,68.9789,4.5986 +200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,36.1922,36.2156,69.0311,4.6021 +200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,73.6442,35.5960,70.2325,4.6822 +200,8x32x2,16,8192,950.2720,196.6080,557.0560,4.5166,36.2750,68.9179,4.5945 +200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,9.0241,36.3116,68.8485,4.5899 +200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,18.0582,36.2915,68.8867,4.5924 +200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,36.6601,35.7534,69.9235,4.6616 +200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,73.6473,35.5945,70.2356,4.6824 +200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,148.6287,35.2750,70.8717,4.7248 +200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,9.0336,36.2733,68.9212,4.5947 +200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,18.0749,36.2580,68.9503,4.5967 +200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,36.3902,36.0185,69.4088,4.6273 +200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,73.5268,35.6528,70.1206,4.6747 +200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,148.3429,35.3430,70.7354,4.7157 +200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,297.9615,35.1917,71.0396,4.7360 +200,16x4x2,16,2048,237.5680,49.1520,139.2640,1.1309,36.2181,69.0264,4.6018 +200,16x4x4,16,4096,475.1360,98.3040,278.5280,2.2770,35.9779,69.4871,4.6325 +200,16x4x8,16,8192,950.2720,196.6080,557.0560,4.5217,36.2345,68.9949,4.5997 +200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,9.0326,36.2776,68.9131,4.5942 +200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,18.0961,36.2155,69.0313,4.6021 +200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,36.2045,36.2032,69.0547,4.6036 +200,16x8x2,16,4096,475.1360,98.3040,278.5280,2.2714,36.0657,69.3179,4.6212 +200,16x8x4,16,8192,950.2720,196.6080,557.0560,4.5179,36.2648,68.9374,4.5958 +200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,9.0243,36.3109,68.8498,4.5900 +200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,18.0528,36.3024,68.8660,4.5911 +200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,36.1828,36.2250,69.0131,4.6009 +200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,73.5654,35.6341,70.1574,4.6772 +200,16x16x2,16,8192,950.2720,196.6080,557.0560,4.5168,36.2739,68.9201,4.5947 +200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,9.0385,36.2536,68.9586,4.5972 +200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,18.0888,36.2302,69.0032,4.6002 +200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,36.3237,36.0844,69.2819,4.6188 +200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,73.5941,35.6202,70.1848,4.6790 +200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,148.4666,35.3135,70.7944,4.7196 +200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,9.0241,36.3117,68.8482,4.5899 +200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,18.0509,36.3063,68.8585,4.5906 +200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,36.3694,36.0391,69.3692,4.6246 +200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,73.6294,35.6032,70.2185,4.6812 +200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,148.3355,35.3448,70.7319,4.7155 +200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,297.8748,35.2019,71.0189,4.7346 +200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,18.0701,36.2676,68.9320,4.5955 +200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,36.3114,36.0966,69.2585,4.6172 +200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,73.5786,35.6278,70.1700,4.6780 +200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,148.4242,35.3236,70.7742,4.7183 +200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,297.8513,35.2047,71.0133,4.7342 +200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,597.7505,35.0841,71.2574,4.7505 +200,32x4x2,16,4096,475.1360,98.3040,278.5280,2.2755,36.0003,69.4438,4.6296 +200,32x4x4,16,8192,950.2720,196.6080,557.0560,4.5120,36.3122,68.8474,4.5898 +200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,9.0302,36.2872,68.8948,4.5930 +200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,18.0486,36.3108,68.8499,4.5900 +200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,36.5587,35.8524,69.7302,4.6487 +200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,73.5152,35.6585,70.1096,4.6740 +200,32x8x2,16,8192,950.2720,196.6080,557.0560,4.5142,36.2943,68.8814,4.5921 +200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,9.0295,36.2901,68.8893,4.5926 +200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,18.0602,36.2875,68.8943,4.5930 +200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,36.1865,36.2213,69.0202,4.6013 +200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,73.5540,35.6397,70.1466,4.6764 +200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,148.6246,35.2760,70.8697,4.7246 +200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,9.0264,36.3024,68.8660,4.5911 +200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,18.1538,36.1004,69.2513,4.6168 +200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,36.1831,36.2247,69.0138,4.6009 +200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,73.5389,35.6470,70.1321,4.6755 +200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,148.3446,35.3426,70.7362,4.7157 +200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,297.8388,35.2062,71.0103,4.7340 +200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,18.0716,36.2646,68.9377,4.5958 +200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,36.1953,36.2124,69.0371,4.6025 +200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,73.6102,35.6124,70.2002,4.6800 +200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,148.5063,35.3041,70.8133,4.7209 +200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,297.8050,35.2102,71.0022,4.7335 +200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,597.1303,35.1205,71.1835,4.7456 +200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,36.2228,36.1850,69.0895,4.6060 +200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,73.5889,35.6228,70.1798,4.6787 +200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,148.2803,35.3579,70.7056,4.7137 +200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,298.5905,35.1175,71.1895,4.7460 +200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,596.9741,35.1297,71.1649,4.7443 +200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,1198.2872,35.0025,71.4235,4.7616 +200,64x4x2,16,8192,950.2720,196.6080,557.0560,4.5187,36.2584,68.9496,4.5966 +200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,9.0256,36.3056,68.8599,4.5907 +200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,18.0590,36.2898,68.8898,4.5927 +200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,36.1871,36.2207,69.0214,4.6014 +200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,73.5339,35.6494,70.1274,4.6752 +200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,148.3662,35.3374,70.7465,4.7164 +200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,9.1411,35.8467,69.7414,4.6494 +200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,18.2628,35.8849,69.6672,4.6445 +200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,36.2778,36.1301,69.1944,4.6130 +200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,73.8568,35.4935,70.4354,4.6957 +200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,148.6318,35.2743,70.8732,4.7249 +200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,297.9060,35.1982,71.0263,4.7351 +200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,18.0935,36.2208,69.0211,4.6014 +200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,36.2339,36.1739,69.1106,4.6074 +200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,73.5469,35.6431,70.1398,4.6760 +200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,148.6804,35.2628,70.8963,4.7264 +200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,298.4753,35.1311,71.1621,4.7441 +200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,596.9407,35.1317,71.1609,4.7441 +200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,36.1765,36.2312,69.0012,4.6001 +200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,73.5663,35.6337,70.1583,4.6772 +200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,148.5674,35.2896,70.8424,4.7228 +200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,297.8978,35.1992,71.0244,4.7350 +200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,597.0268,35.1266,71.1711,4.7447 +200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,1193.9364,35.1300,71.1642,4.7443 +200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,73.6033,35.6158,70.1935,4.6796 +200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,148.5687,35.2893,70.8431,4.7229 diff --git a/scripts/results_soa_skylakesp2_iln1000.txt b/scripts/results_soa_skylakesp2_iln1000.txt new file mode 100644 index 0000000..f496f97 --- /dev/null +++ b/scripts/results_soa_skylakesp2_iln1000.txt @@ -0,0 +1,110 @@ +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.8212,62.3493,38.5089,5.5013 +200,4x4x4,8,512,43.0080,12.2880,18.4320,1.6918,60.5255,39.6693,5.6670 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,3.3338,61.4308,39.0847,5.5835 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,6.7673,60.5267,39.6685,5.6669 +200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7389,69.2906,34.6511,4.9502 +200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4781,69.2763,34.6583,4.9512 +200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9563,69.2761,34.6584,4.9512 +200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9123,69.2798,34.6566,4.9509 +200,4x4x32,8,4096,344.0640,98.3040,147.4560,11.8247,69.2789,34.6570,4.9510 +200,4x4x64,8,8192,688.1280,196.6080,294.9120,23.6678,69.2247,34.6841,4.9549 +200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4780,69.2831,34.6549,4.9507 +200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9563,69.2756,34.6587,4.9512 +200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9131,69.2697,34.6616,4.9517 +200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8363,69.2107,34.6912,4.9559 +200,4x8x32,8,8192,688.1280,196.6080,294.9120,23.6674,69.2260,34.6835,4.9548 +200,4x8x64,8,16384,1376.2560,393.2160,589.8240,47.3354,69.2252,34.6839,4.9548 +200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9563,69.2749,34.6590,4.9513 +200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9120,69.2832,34.6549,4.9507 +200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8249,69.2774,34.6578,4.9511 +200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.6676,69.2255,34.6837,4.9548 +200,4x16x32,8,16384,1376.2560,393.2160,589.8240,47.3407,69.2174,34.6878,4.9554 +200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,94.6451,69.2439,34.6745,4.9535 +200,4x32x2,8,2048,172.0320,49.1520,73.7280,5.9164,69.2315,34.6807,4.9544 +200,4x32x4,8,4096,344.0640,98.3040,147.4560,11.8253,69.2752,34.6589,4.9513 +200,4x32x8,8,8192,688.1280,196.6080,294.9120,23.6684,69.2231,34.6850,4.9550 +200,4x32x16,8,16384,1376.2560,393.2160,589.8240,47.3354,69.2252,34.6839,4.9548 +200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,95.1617,68.8680,34.8638,4.9805 +200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,192.9801,67.9200,35.3504,5.0501 +200,4x64x2,8,4096,344.0640,98.3040,147.4560,11.8252,69.2760,34.6585,4.9512 +200,4x64x4,8,8192,688.1280,196.6080,294.9120,23.6676,69.2254,34.6838,4.9548 +200,4x64x8,8,16384,1376.2560,393.2160,589.8240,47.6913,68.7085,34.9447,4.9921 +200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,94.6478,69.2420,34.6755,4.9536 +200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,193.7782,67.6402,35.4966,5.0709 +200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,384.4290,68.1905,35.2102,5.0300 +200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4779,69.2853,34.6538,4.9505 +200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9567,69.2662,34.6634,4.9519 +200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9137,69.2624,34.6653,4.9522 +200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8243,69.2808,34.6561,4.9509 +200,8x4x32,8,8192,688.1280,196.6080,294.9120,23.6673,69.2263,34.6833,4.9548 +200,8x4x64,8,16384,1376.2560,393.2160,589.8240,48.1857,68.0036,35.3069,5.0438 +200,8x8x2,8,1024,86.0160,24.5760,36.8640,3.0384,67.4040,35.6211,5.0887 +200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9124,69.2776,34.6577,4.9511 +200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8272,69.2643,34.6643,4.9520 +200,8x8x16,8,8192,688.1280,196.6080,294.9120,24.0210,68.2070,35.2016,5.0288 +200,8x8x32,8,16384,1376.2560,393.2160,589.8240,48.3581,67.7612,35.4333,5.0619 +200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,95.4919,68.6299,34.9847,4.9978 +200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9123,69.2792,34.6569,4.9510 +200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8242,69.2818,34.6556,4.9508 +200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.6666,69.2284,34.6823,4.9546 +200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.3484,69.2062,34.6934,4.9562 +200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,94.6531,69.2381,34.6775,4.9539 +200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,189.5620,69.1447,34.7243,4.9606 +200,8x32x2,8,4096,344.0640,98.3040,147.4560,11.8244,69.2807,34.6561,4.9509 +200,8x32x4,8,8192,688.1280,196.6080,294.9120,23.6701,69.2182,34.6874,4.9553 +200,8x32x8,8,16384,1376.2560,393.2160,589.8240,47.3417,69.2159,34.6886,4.9555 +200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,94.6549,69.2368,34.6781,4.9540 +200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,193.0646,67.8902,35.3659,5.0523 +200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,385.1419,68.0643,35.2755,5.0394 +200,8x64x2,8,8192,688.1280,196.6080,294.9120,23.6709,69.2158,34.6886,4.9555 +200,8x64x4,8,16384,1376.2560,393.2160,589.8240,48.3610,67.7570,35.4354,5.0622 +200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,94.6743,69.2226,34.6852,4.9550 +200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,190.5796,68.7754,34.9107,4.9872 +200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,385.7335,67.9599,35.3297,5.0471 +200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,771.4760,67.9591,35.3301,5.0472 +200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9560,69.2828,34.6550,4.9507 +200,16x4x4,8,2048,172.0320,49.1520,73.7280,6.6205,61.8689,38.8079,5.5440 +200,16x4x8,8,4096,344.0640,98.3040,147.4560,12.3473,66.3466,36.1888,5.1698 +200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.6669,69.2274,34.6828,4.9547 +200,16x4x32,8,16384,1376.2560,393.2160,589.8240,47.3374,69.2223,34.6854,4.9551 +200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,95.5037,68.6214,34.9891,4.9984 +200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9119,69.2840,34.6545,4.9506 +200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8263,69.2694,34.6618,4.9517 +200,16x8x8,8,8192,688.1280,196.6080,294.9120,24.5150,66.8326,35.9256,5.1322 +200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.3509,69.2025,34.6953,4.9565 +200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,95.0141,68.9750,34.8097,4.9728 +200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,193.1030,67.8767,35.3730,5.0533 +200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8264,69.2689,34.6620,4.9517 +200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.6685,69.2228,34.6851,4.9550 +200,16x16x8,8,16384,1376.2560,393.2160,589.8240,48.5268,67.5256,35.5569,5.0796 +200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,95.7067,68.4759,35.0634,5.0091 +200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,192.0975,68.2320,35.1888,5.0270 +200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,383.9017,68.2841,35.1619,5.0231 +200,16x32x2,8,8192,688.1280,196.6080,294.9120,23.6651,69.2326,34.6802,4.9543 +200,16x32x4,8,16384,1376.2560,393.2160,589.8240,47.3449,69.2113,34.6909,4.9558 +200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,98.2238,66.7211,35.9856,5.1408 +200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,193.6725,67.6771,35.4773,5.0682 +200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,381.8818,68.6453,34.9769,4.9967 +200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,767.4085,68.3193,35.1438,5.0205 +200,16x64x2,8,16384,1376.2560,393.2160,589.8240,47.6878,68.7136,34.9421,4.9917 +200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,102.4829,63.9482,37.5460,5.3637 +200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,192.9239,67.9398,35.3401,5.0486 +200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,381.0739,68.7909,34.9029,4.9861 +200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,766.5159,68.3988,35.1029,5.0147 +200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,1541.4866,68.0237,35.2965,5.0424 +200,32x4x2,8,2048,172.0320,49.1520,73.7280,5.9127,69.2747,34.6591,4.9513 +200,32x4x4,8,4096,344.0640,98.3040,147.4560,11.8241,69.2825,34.6552,4.9507 +200,32x4x8,8,8192,688.1280,196.6080,294.9120,23.6679,69.2245,34.6842,4.9549 +200,32x4x16,8,16384,1376.2560,393.2160,589.8240,47.3350,69.2258,34.6836,4.9548 +200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,95.6797,68.4952,35.0535,5.0076 +200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,189.5597,69.1455,34.7239,4.9606 +200,32x8x2,8,4096,344.0640,98.3040,147.4560,11.8242,69.2816,34.6557,4.9508 +200,32x8x4,8,8192,688.1280,196.6080,294.9120,23.6709,69.2159,34.6886,4.9555 +200,32x8x8,8,16384,1376.2560,393.2160,589.8240,47.3351,69.2256,34.6837,4.9548 +200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,94.6586,69.2341,34.6794,4.9542 +200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,191.5835,68.4151,35.0946,5.0135 +200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,383.8995,68.2845,35.1617,5.0231 +200,32x16x2,8,8192,688.1280,196.6080,294.9120,24.3550,67.2715,35.6912,5.0987 +200,32x16x4,8,16384,1376.2560,393.2160,589.8240,48.0213,68.2364,35.1865,5.0266 +200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,97.0362,67.5377,35.5505,5.0786 +200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,193.7625,67.6457,35.4938,5.0705 From abc844947d527cf466f160194f58c870a9ca655f Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Thu, 20 May 2021 20:38:53 +0200 Subject: [PATCH 28/32] Add results with small number of unit cells and higher number of neighbors Signed-off-by: Rafael Ravedutti --- scripts/results_soa_casclakesp2_iln100.txt | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/scripts/results_soa_casclakesp2_iln100.txt b/scripts/results_soa_casclakesp2_iln100.txt index 3fe9ff1..1d293da 100644 --- a/scripts/results_soa_casclakesp2_iln100.txt +++ b/scripts/results_soa_casclakesp2_iln100.txt @@ -294,3 +294,70 @@ 200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,1193.9364,35.1300,71.1642,4.7443 200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,73.6033,35.6158,70.1935,4.6796 200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,148.5687,35.2893,70.8431,4.7229 +200,1x1x1,8,8,0.6720,0.1920,0.2880,0.0023,70.5477,35.4370,5.0624 +200,1x1x2,8,16,1.3440,0.3840,0.5760,0.0045,70.3495,35.5368,5.0767 +200,1x2x1,8,16,1.3440,0.3840,0.5760,0.0046,70.0866,35.6701,5.0957 +200,1x2x2,8,32,2.6880,0.7680,1.1520,0.0092,69.8415,35.7953,5.1136 +200,2x1x1,8,16,1.3440,0.3840,0.5760,0.0046,70.0568,35.6853,5.0979 +200,2x1x2,8,32,2.6880,0.7680,1.1520,0.0091,70.4164,35.5031,5.0719 +200,2x2x1,8,32,2.6880,0.7680,1.1520,0.0092,69.8992,35.7658,5.1094 +200,2x2x2,8,64,5.3760,1.5360,2.3040,0.0181,70.8343,35.2936,5.0419 +200,1x1x1,16,16,1.8560,0.3840,1.0880,0.0089,36.0799,69.2906,4.6194 +200,1x1x2,16,32,3.7120,0.7680,2.1760,0.0178,36.0316,69.3836,4.6256 +200,1x2x1,16,32,3.7120,0.7680,2.1760,0.0178,36.0079,69.4292,4.6286 +200,1x2x2,16,64,7.4240,1.5360,4.3520,0.0355,36.0231,69.4000,4.6267 +200,2x1x1,16,32,3.7120,0.7680,2.1760,0.0178,36.0312,69.3843,4.6256 +200,2x1x2,16,64,7.4240,1.5360,4.3520,0.0357,35.9018,69.6344,4.6423 +200,2x2x1,16,64,7.4240,1.5360,4.3520,0.0355,36.0121,69.4211,4.6281 +200,2x2x2,16,128,14.8480,3.0720,8.7040,0.0712,35.9431,69.5544,4.6370 +200,1x1x1,32,32,5.7600,0.7680,4.2240,0.0347,18.4608,135.4223,4.3685 +200,1x1x2,32,64,11.5200,1.5360,8.4480,0.0693,18.4827,135.2617,4.3633 +200,1x2x1,32,64,11.5200,1.5360,8.4480,0.0692,18.4850,135.2449,4.3627 +200,1x2x2,32,128,23.0400,3.0720,16.8960,0.1385,18.4893,135.2135,4.3617 +200,2x1x1,32,64,11.5200,1.5360,8.4480,0.0693,18.4790,135.2890,4.3642 +200,2x1x2,32,128,23.0400,3.0720,16.8960,0.1390,18.4216,135.7101,4.3777 +200,2x2x1,32,128,23.0400,3.0720,16.8960,0.1385,18.4819,135.2674,4.3635 +200,2x2x2,32,256,46.0800,6.1440,33.7920,0.2774,18.4575,135.4459,4.3692 +200,1x1x1,64,64,19.7120,1.5360,16.6400,0.1343,9.5315,262.2869,4.1633 +200,1x1x2,64,128,39.4240,3.0720,33.2800,0.2685,9.5328,262.2517,4.1627 +200,1x2x1,64,128,39.4240,3.0720,33.2800,0.2680,9.5529,261.7008,4.1540 +200,1x2x2,64,256,78.8480,6.1440,66.5600,0.5369,9.5358,262.1698,4.1614 +200,2x1x1,64,128,39.4240,3.0720,33.2800,0.2680,9.5531,261.6939,4.1539 +200,2x1x2,64,256,78.8480,6.1440,66.5600,0.5369,9.5354,262.1801,4.1616 +200,2x2x1,64,256,78.8480,6.1440,66.5600,0.5358,9.5553,261.6343,4.1529 +200,2x2x2,64,512,157.6960,12.2880,133.1200,1.0721,9.5509,261.7547,4.1548 +200,1x1x1,128,128,72.1920,3.0720,66.0480,0.5453,4.6950,532.4769,4.1927 +200,1x1x2,128,256,144.3840,6.1440,132.0960,1.0901,4.6966,532.2970,4.1913 +200,1x2x1,128,256,144.3840,6.1440,132.0960,1.0882,4.7051,531.3436,4.1838 +200,1x2x2,128,512,288.7680,12.2880,264.1920,2.1802,4.6968,532.2760,4.1911 +200,2x1x1,128,256,144.3840,6.1440,132.0960,1.0883,4.7046,531.3984,4.1842 +200,2x1x2,128,512,288.7680,12.2880,264.1920,2.1759,4.7061,531.2260,4.1829 +200,2x2x1,128,512,288.7680,12.2880,264.1920,2.1761,4.7057,531.2684,4.1832 +200,2x2x2,128,1024,577.5360,24.5760,528.3840,4.3527,4.7051,531.3391,4.1838 +200,1x1x1,256,256,275.4560,6.1440,263.1680,2.1305,2.4032,1040.2863,4.0796 +200,1x1x2,256,512,550.9120,12.2880,526.3360,4.2607,2.4034,1040.2135,4.0793 +200,1x2x1,256,512,550.9120,12.2880,526.3360,4.2612,2.4031,1040.3325,4.0797 +200,1x2x2,256,1024,1101.8240,24.5760,1052.6720,8.5423,2.3975,1042.7643,4.0893 +200,2x1x1,256,512,550.9120,12.2880,526.3360,4.2616,2.4029,1040.4180,4.0801 +200,2x1x2,256,1024,1101.8240,24.5760,1052.6720,8.5271,2.4018,1040.9040,4.0820 +200,2x2x1,256,1024,1101.8240,24.5760,1052.6720,8.5308,2.4007,1041.3556,4.0837 +200,2x2x2,256,2048,2203.6480,49.1520,2105.3440,17.0679,2.3998,1041.7399,4.0853 +200,1x1x1,512,512,1075.2000,12.2880,1050.6240,8.4481,1.2121,2062.5241,4.0363 +200,1x1x2,512,1024,2150.4000,24.5760,2101.2480,16.8998,1.2118,2062.9650,4.0371 +200,1x2x1,512,1024,2150.4000,24.5760,2101.2480,16.9053,1.2115,2063.6406,4.0384 +200,1x2x2,512,2048,4300.8000,49.1520,4202.4960,33.8109,1.2114,2063.6513,4.0385 +200,2x1x1,512,1024,2150.4000,24.5760,2101.2480,16.8985,1.2119,2062.8109,4.0368 +200,2x1x2,512,2048,4300.8000,49.1520,4202.4960,33.7934,1.2121,2062.5859,4.0364 +200,2x2x1,512,2048,4300.8000,49.1520,4202.4960,33.7967,1.2120,2062.7883,4.0368 +200,2x2x2,512,4096,8601.6000,98.3040,8404.9920,67.6227,1.2114,2063.6823,4.0385 +200,1x1x1,1024,1024,4247.5520,24.5760,4198.4000,33.6446,0.6087,4107.0054,4.0147 +200,1x1x2,1024,2048,8495.1040,49.1520,8396.8000,67.3630,0.6080,4111.5120,4.0191 +200,1x2x1,1024,2048,8495.1040,49.1520,8396.8000,67.3655,0.6080,4111.6644,4.0192 +200,1x2x2,1024,4096,16990.2080,98.3040,16793.6000,134.7595,0.6079,4112.5325,4.0201 +200,2x1x1,1024,2048,8495.1040,49.1520,8396.8000,67.3755,0.6079,4112.2737,4.0198 +200,2x1x2,1024,4096,16990.2080,98.3040,16793.6000,134.6290,0.6085,4108.5514,4.0162 +200,2x2x1,1024,4096,16990.2080,98.3040,16793.6000,134.7230,0.6081,4111.4207,4.0190 +200,2x2x2,1024,8192,33980.4160,196.6080,33587.2000,269.4353,0.6081,4111.2566,4.0188 +200,1x1x1,2048,2048,16883.7120,49.1520,16785.4080,137.8137,0.2972,8411.4836,4.1092 +200,1x1x1,4096,4096,67321.8560,98.3040,67125.2480,546.8174,0.1498,16687.5438,4.0751 +200,1x1x1,8192,8192,268861.4400,196.6080,268468.2240,2211.8457,0.0741,33750.0866,4.1204 From 0482e4f09a75926af85260190b4ef389e88bc239 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Sat, 22 May 2021 03:26:56 +0200 Subject: [PATCH 29/32] Avoid resize messages on run_stub output and build objects from assembly files Signed-off-by: Rafael Ravedutti --- Makefile | 3 ++- scripts/run_stub.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 23b00ce..2378bba 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,8 @@ ${TARGET}-%: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main-%.c asm: $(BUILD_DIR) $(ASM) -$(BUILD_DIR)/%.o: %.c +$(BUILD_DIR)/%.o: %.s +#$(BUILD_DIR)/%.o: %.c @echo "===> COMPILE $@" $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ $(Q)$(CC) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d diff --git a/scripts/run_stub.sh b/scripts/run_stub.sh index 9a90e89..5ceea52 100644 --- a/scripts/run_stub.sh +++ b/scripts/run_stub.sh @@ -33,7 +33,8 @@ for timesteps in ${TIMESTEPS}; do for nruns in ${NRUNS}; do output=$( ./${EXEC} -f ${FREQUENCY} -n ${timesteps} -na ${atoms_per_unit_cell} -nx ${nx} -ny ${ny} -nz ${nz} -csv | - grep -v steps + grep -v steps | + grep -iv resize ) perf=$(echo $output | cut -d',' -f8) if [ -z "$best_perf" ]; then From b8b364d26531d84ea4748d95dc6a53bc5a28c734 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Fri, 11 Jun 2021 02:16:10 +0200 Subject: [PATCH 30/32] Move analysis and result files to log directory Signed-off-by: Rafael Ravedutti --- .../avx2/force_aos_lt600_markers.txt | 90 - .../avx2/force_soa_lt600_markers.txt | 74 - .../avx512/iaca_force_aos_geq1200.txt | 79 - .../avx512/iaca_force_aos_lt1200.txt | 104 - arch_analysis/avx512/iaca_force_aos_lt8.txt | 82 - .../avx512/iaca_force_soa_geq1200.txt | 74 - .../avx512/iaca_force_soa_lt1200.txt | 72 - arch_analysis/avx512/iaca_force_soa_lt8.txt | 78 - .../avx512/osaca_force_aos_geq1200.txt | 80 - .../avx512/osaca_force_aos_lt1200.txt | 112 - arch_analysis/avx512/osaca_force_aos_lt8.txt | 91 - .../avx512/osaca_force_soa_geq1200.txt | 71 - .../avx512/osaca_force_soa_lt1200.txt | 69 - arch_analysis/avx512/osaca_force_soa_lt8.txt | 79 - .../avx512/osaca_force_soa_lt8_iln1000.txt | 70 - asm/avx2/force_aos_lt600_markers.s | 12817 ---------------- asm/avx2/force_soa_att.s | 12567 --------------- asm/avx2/force_soa_lt600_markers.s | 12571 --------------- asm/avx512/force_aos_geq1200_markers.s | 563 - asm/avx512/force_aos_intel.s | 976 -- asm/avx512/force_aos_lt1200_markers.s | 563 - asm/avx512/force_aos_lt8_markers.s | 565 - asm/avx512/force_soa_att.s | 12730 --------------- asm/avx512/force_soa_geq1200_markers.s | 475 - asm/avx512/force_soa_intel.s | 541 - asm/avx512/force_soa_lt1200_markers.s | 475 - asm/avx512/force_soa_lt8_markers.s | 475 - scripts/results_aos_casclakesp2.txt | 450 - scripts/results_aos_medusa.txt | 450 - scripts/results_aos_skylakesp2.txt | 900 -- scripts/results_soa_broadep2_iln1000.txt | 107 - scripts/results_soa_casclakesp2.txt | 450 - scripts/results_soa_casclakesp2_iln100.txt | 363 - scripts/results_soa_casclakesp2_iln1000.txt | 142 - scripts/results_soa_skylakesp2.txt | 450 - scripts/results_soa_skylakesp2_iln1000.txt | 110 - 36 files changed, 59965 deletions(-) delete mode 100644 arch_analysis/avx2/force_aos_lt600_markers.txt delete mode 100644 arch_analysis/avx2/force_soa_lt600_markers.txt delete mode 100644 arch_analysis/avx512/iaca_force_aos_geq1200.txt delete mode 100644 arch_analysis/avx512/iaca_force_aos_lt1200.txt delete mode 100644 arch_analysis/avx512/iaca_force_aos_lt8.txt delete mode 100644 arch_analysis/avx512/iaca_force_soa_geq1200.txt delete mode 100644 arch_analysis/avx512/iaca_force_soa_lt1200.txt delete mode 100644 arch_analysis/avx512/iaca_force_soa_lt8.txt delete mode 100644 arch_analysis/avx512/osaca_force_aos_geq1200.txt delete mode 100644 arch_analysis/avx512/osaca_force_aos_lt1200.txt delete mode 100644 arch_analysis/avx512/osaca_force_aos_lt8.txt delete mode 100644 arch_analysis/avx512/osaca_force_soa_geq1200.txt delete mode 100644 arch_analysis/avx512/osaca_force_soa_lt1200.txt delete mode 100644 arch_analysis/avx512/osaca_force_soa_lt8.txt delete mode 100644 arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt delete mode 100644 asm/avx2/force_aos_lt600_markers.s delete mode 100644 asm/avx2/force_soa_att.s delete mode 100644 asm/avx2/force_soa_lt600_markers.s delete mode 100644 asm/avx512/force_aos_geq1200_markers.s delete mode 100644 asm/avx512/force_aos_intel.s delete mode 100644 asm/avx512/force_aos_lt1200_markers.s delete mode 100644 asm/avx512/force_aos_lt8_markers.s delete mode 100644 asm/avx512/force_soa_att.s delete mode 100644 asm/avx512/force_soa_geq1200_markers.s delete mode 100644 asm/avx512/force_soa_intel.s delete mode 100644 asm/avx512/force_soa_lt1200_markers.s delete mode 100644 asm/avx512/force_soa_lt8_markers.s delete mode 100644 scripts/results_aos_casclakesp2.txt delete mode 100644 scripts/results_aos_medusa.txt delete mode 100644 scripts/results_aos_skylakesp2.txt delete mode 100644 scripts/results_soa_broadep2_iln1000.txt delete mode 100644 scripts/results_soa_casclakesp2.txt delete mode 100644 scripts/results_soa_casclakesp2_iln100.txt delete mode 100644 scripts/results_soa_casclakesp2_iln1000.txt delete mode 100644 scripts/results_soa_skylakesp2.txt delete mode 100644 scripts/results_soa_skylakesp2_iln1000.txt diff --git a/arch_analysis/avx2/force_aos_lt600_markers.txt b/arch_analysis/avx2/force_aos_lt600_markers.txt deleted file mode 100644 index b960e26..0000000 --- a/arch_analysis/avx2/force_aos_lt600_markers.txt +++ /dev/null @@ -1,90 +0,0 @@ -iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=BDW asm/avx2/force_aos_lt600_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: asm/avx2/force_aos_lt600_markers.s -Architecture: BDW -Timestamp: 2021-05-07 23:01:31 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | ----------------------------------------------------------------------------------------------------- -12567 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rax,%r8,4), %xmm2 #60.25 -12568 | 1.00 | | | | | | | || 1.0 | | vmovd %xmm2, %rdx #60.25 -12569 | | | | | | 1.00 | | || | | vpunpckhqdq %xmm2, %xmm2, %xmm8 #60.25 -12570 | 1.00 | | | | | | | || | | vmovd %xmm8, %r9 #60.25 -12571 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | movl %edx, %ebx #60.25 -12572 | 0.00 | | | | | | 1.00 | || | | shrq $32, %rdx #60.25 -12573 | | 0.50 | | | | 0.50 | | || | | lea (%rdx,%rdx,2), %esi #61.40 -12574 | | 0.50 | | | | 0.50 | | || 1.0 | | lea (%rbx,%rbx,2), %ebx #61.40 -12575 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | movslq %ebx, %rdx #61.40 -12576 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %esi, %rbx #61.40 -12577 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movl %r9d, %esi #60.25 -12578 | 0.00 | | | | | | 1.00 | || | | shrq $32, %r9 #60.25 -12579 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovups (%rcx,%rdx,8), %xmm13 #61.40 -12580 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovups (%rcx,%rbx,8), %xmm0 #61.40 -12581 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovq 16(%rcx,%rdx,8), %xmm14 #61.40 -12582 | | 0.00 | | | | 1.00 | | || | | lea (%rsi,%rsi,2), %esi #61.40 -12583 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %esi, %rsi #61.40 -12584 | | 0.00 | | | | 1.00 | | || | | lea (%r9,%r9,2), %r9d #61.40 -12585 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r9d, %r9 #61.40 -12586 | | | 0.50 0.50 | 0.50 0.50 | | 1.00 | | || | | vmovhpd 16(%rcx,%rbx,8), %xmm14, %xmm15 #61.40 -12587 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 1.0 | | vinsertf128 $1, (%rcx,%rsi,8), %ymm13, %ymm7 #61.40 -12588 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | vmovq 16(%rcx,%rsi,8), %xmm2 #61.40 -12589 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | | vinsertf128 $1, (%rcx,%r9,8), %ymm0, %ymm0 #61.40 -12590 | | | 0.50 0.50 | 0.50 0.50 | | 1.00 | | || | | vmovhpd 16(%rcx,%r9,8), %xmm2, %xmm8 #61.40 -12591 | | | | | | 1.00 | | || | | vunpcklpd %ymm0, %ymm7, %ymm14 #61.40 -12592 | | | | | | 1.00 | | || 1.0 | | vunpckhpd %ymm0, %ymm7, %ymm7 #61.40 -12593 | | 1.00 | | | | | | || | | vsubpd %ymm14, %ymm5, %ymm0 #61.40 -12594 | | | | | | 1.00 | | || | | vinsertf128 $1, %xmm8, %ymm15, %ymm13 #61.40 -12595 | | 1.00 | | | | | | || 3.0 | | vsubpd %ymm7, %ymm4, %ymm8 #62.40 -12596 | | 1.00 | | | | | | || | | vsubpd %ymm13, %ymm6, %ymm2 #63.40 -12597 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm8, %ymm8, %ymm14 #64.53 -12598 | 0.50 | 0.50 | | | | | | || 5.0 | | vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 -12599 | 0.25 | 0.75 | | | | | | || 5.0 | | vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 -12600 | | | | | | | | || | | X vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 -12601 | | 0.00 | | | | 1.00 | | || | | vpcmpeqd %ymm13, %ymm13, %ymm13 #66.26 -12602 | 1.00 | | | | | 1.00 | | || | | vptest %ymm13, %ymm7 #66.26 -12603 | | | | | | | | || | | X je ..B1.26 # Prob 50% #66.26 -12604 | | | | | | | | || | | # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 -12605 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 -12606 | | | | | | | | || | | # Execution count [1.25e+04] -12607 | 2.50 16.00 | 0.50 | | | | | | || 23.0 | | vdivpd %ymm14, %ymm10, %ymm13 #67.42 -12608 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 3.0 | | vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] -12609 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm14 #68.48 -12610 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm15 #68.54 -12611 | 0.50 | 0.50 | | | | | | || | | vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 -12612 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | | vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] -12613 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm15, %ymm15 #69.65 -12614 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm15, %ymm13 #69.71 -12615 | 0.75 | 0.25 | | | | | | || | | vmulpd %ymm13, %ymm0, %ymm0 #70.35 -12616 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm8, %ymm8 #71.35 -12617 | | | | | | 1.00 | | || | | vandpd %ymm0, %ymm7, %ymm0 #70.35 -12618 | | 1.00 | | | | | | || | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21 -12619 | 1.00 | 0.00 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm2, %ymm0 #72.35 -12620 | | | | | | 1.00 | | || | | vandpd %ymm8, %ymm7, %ymm2 #71.35 -12621 | | | | | | 1.00 | | || 1.0 | | vandpd %ymm0, %ymm7, %ymm7 #72.35 -12622 | | 1.00 | | | | | | || | | vaddpd %ymm2, %ymm1, %ymm1 #71.21 -12623 | | 1.00 | | | | | | || 3.0 | | vaddpd %ymm7, %ymm3, %ymm3 #72.21 -12624 | | | | | | | | || | | # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -12625 | | | | | | | | || | | ..B1.26: # Preds ..B1.25 ..B1.24 -12626 | | | | | | | | || | | # Execution count [2.50e+04] -12627 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $4, %r8 #59.13 -12628 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rdi, %r8 #59.13 -12629 | | | | | | | | || | | * jb ..B1.24 # Prob 82% #59.13 - - 14.0 16.00 14.0 5.50 5.50 5.50 5.50 14.0 10.0 75.0 3 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ -12618 | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21| [12618] -12622 | 3.0 | vaddpd %ymm2, %ymm1, %ymm1 #71.21| [12622] -12623 | 3.0 | vaddpd %ymm7, %ymm3, %ymm3 #72.21| [12623] -12627 | 1.0 | addq $4, %r8 #59.13| [12627] diff --git a/arch_analysis/avx2/force_soa_lt600_markers.txt b/arch_analysis/avx2/force_soa_lt600_markers.txt deleted file mode 100644 index 9090cce..0000000 --- a/arch_analysis/avx2/force_soa_lt600_markers.txt +++ /dev/null @@ -1,74 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm/avx2$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=BDW force_soa_lt600_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_lt600_markers.s -Architecture: BDW -Timestamp: 2021-05-06 15:40:52 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | ----------------------------------------------------------------------------------------------------- -12343 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovups (%rax,%rdx,4), %xmm2 #60.25 -12344 | | 1.00 | | | | 0.00 | | || | 1.0 | vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 -12345 | | | | | | 1.00 | | || | | vxorpd %ymm8, %ymm8, %ymm8 #61.40 -12346 | | | | | | | | || | | * vmovdqa %ymm13, %ymm0 #61.40 -12347 | | | | | | 1.00 | | || | | vxorpd %ymm14, %ymm14, %ymm14 #62.40 -12348 | | | | | | | | || | | * vmovdqa %ymm13, %ymm7 #62.40 -12349 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || | | vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 -12350 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || 5.0 | | vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 -12351 | | 1.00 | | | | | | || | | vsubpd %ymm8, %ymm5, %ymm0 #61.40 -12352 | | 1.00 | | | | | | || 3.0 | | vsubpd %ymm14, %ymm4, %ymm8 #62.40 -12353 | | | | | | 1.00 | | || | | vxorpd %ymm7, %ymm7, %ymm7 #63.40 -12354 | | | | | | | | || | 0.0 | * vmovdqa %ymm13, %ymm15 #63.40 -12355 | 0.00 | 0.00 | 2.00 | 2.00 | 1.00 | 3.00 | 1.00 | || | 5.0 | vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 -12356 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm8, %ymm8, %ymm14 #64.53 -12357 | | 1.00 | | | | | | || | 3.0 | vsubpd %ymm7, %ymm6, %ymm2 #63.40 -12358 | 0.50 | 0.50 | | | | | | || 5.0 | | vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 -12359 | 0.50 | 0.50 | | | | | | || 5.0 | 5.0 | vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 -12360 | | | | | | | | || | | X vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 -12361 | 1.00 | | | | | 1.00 | | || | | vptest %ymm13, %ymm7 #66.26 -12362 | | | | | | | | || | | X je ..B1.26 # Prob 50% #66.26 -12363 | | | | | | | | || | | # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 -12364 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 -12365 | | | | | | | | || | | # Execution count [1.25e+04] -12366 | 2.50 16.00 | 0.50 | | | | | | || 23.0 | 23.0 | vdivpd %ymm14, %ymm10, %ymm13 #67.42 -12367 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || 3.0 | | vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] -12368 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm14 #68.48 -12369 | 0.50 | 0.50 | | | | | | || 3.0 | | vmulpd %ymm14, %ymm13, %ymm15 #68.54 -12370 | 0.50 | 0.50 | | | | | | || | | vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 -12371 | 0.50 | 0.50 | 0.50 0.50 | 0.50 0.50 | | | | || | 3.0 | vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] -12372 | 0.50 | 0.50 | | | | | | || 3.0 | 3.0 | vmulpd %ymm13, %ymm15, %ymm15 #69.65 -12373 | 0.75 | 0.25 | | | | | | || 3.0 | 3.0 | vmulpd %ymm14, %ymm15, %ymm13 #69.71 -12374 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm0, %ymm0 #70.35 -12375 | 1.00 | 0.00 | | | | | | || | | vmulpd %ymm13, %ymm8, %ymm8 #71.35 -12376 | | | | | | 1.00 | | || | | vandpd %ymm0, %ymm7, %ymm0 #70.35 -12377 | | 1.00 | | | | | | || | | vaddpd %ymm0, %ymm12, %ymm12 #70.21 -12378 | 1.00 | 0.00 | | | | | | || 3.0 | | vmulpd %ymm13, %ymm2, %ymm0 #72.35 -12379 | | | | | | 1.00 | | || | | vandpd %ymm8, %ymm7, %ymm2 #71.35 -12380 | | | | | | 1.00 | | || 1.0 | | vandpd %ymm0, %ymm7, %ymm7 #72.35 -12381 | | 1.00 | | | | | | || | | vaddpd %ymm2, %ymm1, %ymm1 #71.21 -12382 | | 1.00 | | | | | | || 3.0 | | vaddpd %ymm7, %ymm3, %ymm3 #72.21 -12383 | | | | | | | | || | | # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -12384 | | | | | | | | || | | ..B1.26: # Preds ..B1.25 ..B1.24 -12385 | | | | | | | | || | | # Execution count [2.50e+04] -12386 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $4, %rdx #59.13 -12387 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %r14, %rdx #59.13 -12388 | | | | | | | | || | | * jb ..B1.24 # Prob 82% #59.13 - - 11.8 16.00 12.2 7.50 1.50 7.50 1.50 3.00 16.0 5.00 70 46 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ -12373 | 46.0 | vmulpd %ymm14, %ymm15, %ymm13 #69.71| [12344, 12354, 12355, 12357, 12359, 12366, 12371, 12372, 12373] -12377 | 3.0 | vaddpd %ymm0, %ymm12, %ymm12 #70.21| [12377] -12381 | 3.0 | vaddpd %ymm2, %ymm1, %ymm1 #71.21| [12381] -12382 | 3.0 | vaddpd %ymm7, %ymm3, %ymm3 #72.21| [12382] -12386 | 1.0 | addq $4, %rdx #59.13| [12386] diff --git a/arch_analysis/avx512/iaca_force_aos_geq1200.txt b/arch_analysis/avx512/iaca_force_aos_geq1200.txt deleted file mode 100644 index a10a778..0000000 --- a/arch_analysis/avx512/iaca_force_aos_geq1200.txt +++ /dev/null @@ -1,79 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_aos_geq1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_aos_geq1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 33.05 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 20.0 0.0 | 4.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 4.5 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm2, ymm3 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm17{k3}{z}, ymmword ptr [r15+r13*4] -| 1 | 1.0 | | | | | | | | kmovw r9d, k3 -| 1 | | 1.0 | | | | | | | vpaddd ymm18, ymm17, ymm17 -| 1 | | 1.0 | | | | | | | vpaddd ymm17, ymm17, ymm18 -| 1 | 1.0 | | | | | | | | kmovw k1, k3 -| 1 | 1.0 | | | | | | | | kmovw k2, k3 -| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 -| 1* | | | | | | | | | vpxord zmm19, zmm19, zmm19 -| 1* | | | | | | | | | vpxord zmm20, zmm20, zmm20 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k1, zmmword ptr [rdi+ymm17*8+0x10] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm19, k2, zmmword ptr [rdi+ymm17*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm20, k3, zmmword ptr [rdi+ymm17*8] -| 1 | | 0.5 | | | | | 0.5 | | add r13, 0x8 -| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm16 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm29, zmm4, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm27, zmm0, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm1, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm27, zmm27 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm26, zmm26 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm25, zmm29, zmm29 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm24, zmm25 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm25, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm24, 0x1e -| 1 | 1.0 | | | | | | | | kmovw edx, k2 -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1* | | | | | | | | | vmovaps zmm17, zmm25 -| 1 | | | | | | | 1.0 | | and r9d, edx -| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm17, zmm24, qword ptr [rip]{1to8} -| 1 | | | | | | 1.0 | | | kmovw k3, r9d -| 1 | 1.0 | | | | | | | | vmulpd zmm18, zmm17, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm17, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm24{k1}, zmm18, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm24, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm24, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm24, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm24, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm24, zmm22, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm23, zmm20, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm28, zmm23, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm28, zmm26 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm28, zmm27 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm28, zmm29 -| 1* | | | | | | | | | cmp r13, rbx -| 0*F | | | | | | | | | jb 0xfffffffffffffef7 -Total Num Of Uops: 60 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_aos_lt1200.txt b/arch_analysis/avx512/iaca_force_aos_lt1200.txt deleted file mode 100644 index 451061a..0000000 --- a/arch_analysis/avx512/iaca_force_aos_lt1200.txt +++ /dev/null @@ -1,104 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/ICC$ iaca -arch SKX force.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 36.70 Cycles Throughput Bottleneck: Backend -Loop Count: 23 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 17.5 0.0 | 11.0 | 20.5 17.0 | 20.5 17.0 | 7.0 | 20.5 | 7.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1* | | | | | | | | | mov r13, r8 -| 1 | | 1.0 | | | | | | | imul r13, rcx -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm6 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm1, xmm7 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm0, xmm12 -| 1 | | | | | | | 1.0 | | movsxd rbx, r12d -| 1 | | | | | | | 1.0 | | add r13, r10 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x40], rax -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x38], r8 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x30], r10 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x28], rsi -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x20], rcx -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x50], r9 -| 2^ | | | 0.5 | 0.5 | 1.0 | | | | mov qword ptr [rsp-0x48], rdx -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | vmovdqu ymm3, ymmword ptr [r13+rbx*4] -| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm3, ymm3 -| 1 | | 1.0 | | | | | | | vpaddd ymm3, ymm3, ymm4 -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r10d, dword ptr [r13+rbx*4] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r9d, dword ptr [r13+rbx*4+0x4] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r8d, dword ptr [r13+rbx*4+0x8] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov esi, dword ptr [r13+rbx*4+0xc] -| 1 | | 1.0 | | | | | | | lea r10d, ptr [r10+r10*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov ecx, dword ptr [r13+rbx*4+0x10] -| 1 | | 1.0 | | | | | | | lea r9d, ptr [r9+r9*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov edx, dword ptr [r13+rbx*4+0x14] -| 1 | | 1.0 | | | | | | | lea r8d, ptr [r8+r8*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov eax, dword ptr [r13+rbx*4+0x18] -| 1 | | 1.0 | | | | | | | lea esi, ptr [rsi+rsi*2] -| 1 | | | 0.5 0.5 | 0.5 0.5 | | | | | mov r15d, dword ptr [r13+rbx*4+0x1c] -| 1 | | 1.0 | | | | | | | lea ecx, ptr [rcx+rcx*2] -| 1 | | 1.0 | | | | | | | lea edx, ptr [rdx+rdx*2] -| 1 | | 1.0 | | | | | | | lea eax, ptr [rax+rax*2] -| 1 | | 1.0 | | | | | | | lea r15d, ptr [r15+r15*2] -| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 -| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 -| 1* | | | | | | | | | vpxord zmm17, zmm17, zmm17 -| 1* | | | | | | | | | vpxord zmm18, zmm18, zmm18 -| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdi+ymm3*8+0x10] -| 5^ | 1.5 | | 4.0 4.0 | 4.0 4.0 | | 0.5 | 1.0 | | vgatherdpd zmm17, k2, zmmword ptr [rdi+ymm3*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm18, k3, zmmword ptr [rdi+ymm3*8] -| 1 | | | | | | | 1.0 | | add r12d, 0x8 -| 1 | | | | | | | 1.0 | | add rbx, 0x8 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm26, zmm0, zmm4 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm24, zmm1, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm23, zmm2, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm24, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm23, zmm23 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm3, zmm26, zmm26 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm22, zmm3 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm3, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm22, 0x1e -| 2^ | 1.0 | | 0.5 0.5 | 0.5 0.5 | | | | | vfnmadd213pd zmm3, zmm22, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm4, zmm3, zmm3 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm3, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm22{k1}, zmm4, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm22, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm22, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm20, zmm22, zmm17 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm18, zmm22, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm22, zmm20, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm21, zmm18, zmm19 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm25, zmm21, zmm22 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k2}, zmm25, zmm23 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k2}, zmm25, zmm24 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k2}, zmm25, zmm26 -| 1* | | | | | | | | | cmp r12d, r14d -| 0*F | | | | | | | | | jb 0xfffffffffffffed3 -Total Num Of Uops: 91 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_aos_lt8.txt b/arch_analysis/avx512/iaca_force_aos_lt8.txt deleted file mode 100644 index 973db7c..0000000 --- a/arch_analysis/avx512/iaca_force_aos_lt8.txt +++ /dev/null @@ -1,82 +0,0 @@ -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_aos_lt8_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 69.79 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 21.0 0.0 | 5.5 | 13.0 13.0 | 13.0 13.0 | 0.0 | 21.0 | 5.5 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | 1.0 | | | | | | | imul rcx, r8 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm4, xmm6 -| 1 | | | | | | | 1.0 | | sub r11d, r14d -| 1 | | 0.5 | | | | | 0.5 | | add rcx, r10 -| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r11d -| 1 | | | | | | 1.0 | | | vpcmpgtd k3, ymm0, ymm15 -| 1 | | 0.5 | | | | | 0.5 | | movsxd r14, r14d -| 1 | 1.0 | | | | | | | | kmovw ebx, k3 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k3}{z}, ymmword ptr [rcx+r14*4] -| 1 | | 1.0 | | | | | | | vpaddd ymm2, ymm1, ymm1 -| 1 | | 1.0 | | | | | | | vpaddd ymm0, ymm1, ymm2 -| 1 | 1.0 | | | | | | | | kmovw k1, k3 -| 1 | 1.0 | | | | | | | | kmovw k2, k3 -| 1* | | | | | | | | | vpxord zmm1, zmm1, zmm1 -| 1* | | | | | | | | | vpxord zmm2, zmm2, zmm2 -| 1* | | | | | | | | | vpxord zmm3, zmm3, zmm3 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm1, k1, zmmword ptr [rdi+ymm0*8+0x10] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm2, k2, zmmword ptr [rdi+ymm0*8+0x8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k3, zmmword ptr [rdi+ymm0*8] -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm7, xmm7 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm12, xmm12 -| 1 | 1.0 | | | | | | | | vsubpd zmm23, zmm12, zmm1 -| 1 | 1.0 | | | | | | | | vsubpd zmm21, zmm7, zmm2 -| 1 | 0.5 | | | | | 0.5 | | | vsubpd zmm20, zmm4, zmm3 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm19, zmm21, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm20, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm19, zmm23, zmm23 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm18, zmm19 -| 1 | | | | | | 1.0 | | | vcmppd k2, zmm19, zmm14, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm18, 0x1e -| 1 | 1.0 | | | | | | | | kmovw ecx, k2 -| 1 | 1.0 | | | | | | | | knotw k1, k0 -| 1* | | | | | | | | | vmovaps zmm0, zmm19 -| 1 | | 0.5 | | | | | 0.5 | | and ebx, ecx -| 2^ | | | | 1.0 1.0 | | 1.0 | | | vfnmadd213pd zmm0, zmm18, qword ptr [rip]{1to8} -| 1 | | | | | | 1.0 | | | kmovw k3, ebx -| 1 | 1.0 | | | | | | | | vmulpd zmm1, zmm0, zmm0 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm0, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd213pd zmm18{k1}, zmm1, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm2, zmm18, zmm13 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm4, zmm18, zmm10 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm6, zmm18, zmm2 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm3, zmm18, zmm6 -| 1 | 0.5 | | | | | 0.5 | | | vfmsub213pd zmm18, zmm6, zmm5 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm17, zmm3, zmm4 -| 1 | 0.5 | | | | | 0.5 | | | vmulpd zmm22, zmm17, zmm18 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm9{k3}, zmm22, zmm20 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm8{k3}, zmm22, zmm21 -| 1 | 0.5 | | | | | 0.5 | | | vfmadd231pd zmm11{k3}, zmm22, zmm23 -Total Num Of Uops: 65 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_geq1200.txt b/arch_analysis/avx512/iaca_force_soa_geq1200.txt deleted file mode 100644 index 1deb2bc..0000000 --- a/arch_analysis/avx512/iaca_force_soa_geq1200.txt +++ /dev/null @@ -1,74 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_geq1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_geq1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 31.47 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 18.0 0.0 | 3.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 18.0 | 3.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm3, ymm4 -| 1 | | 1.0 | | | | | | | vpaddd ymm4, ymm4, ymm18 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm20{k5}{z}, ymmword ptr [rcx+r15*4] -| 1* | | | | | | | | | vmovaps zmm22, zmm19 -| 1 | | 1.0 | | | | | | | add r15, 0x8 -| 1 | 1.0 | | | | | | | | kmovw k2, k5 -| 1* | | | | | | | | | vmovaps zmm21, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k1, k5 -| 1* | | | | | | | | | vmovaps zmm23, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k3, k5 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm23, k3, zmmword ptr [rsi+ymm20*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm22, k2, zmmword ptr [rax+ymm20*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm21, k1, zmmword ptr [rdx+ymm20*8] -| 1 | | | | | | 1.0 | | | vsubpd zmm0, zmm5, zmm22 -| 1 | | | | | | 1.0 | | | vsubpd zmm1, zmm2, zmm21 -| 1 | | | | | | 1.0 | | | vsubpd zmm21, zmm6, zmm23 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm0, zmm0 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm1, zmm1 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm21, zmm21 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm31, zmm20 -| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm20, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm31, 0x1e -| 1* | | | | | | | | | vmovaps zmm24, zmm20 -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm24, zmm31, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm24, zmm24 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm31{k4}, zmm24, zmm31 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm31{k4}, zmm25, zmm31 -| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm31, zmm15 -| 1 | 1.0 | | | | | | | | vmulpd zmm28, zmm31, zmm14 -| 1 | | | | | | 1.0 | | | vmulpd zmm29, zmm31, zmm26 -| 1 | 1.0 | | | | | | | | vmulpd zmm27, zmm31, zmm29 -| 1 | | | | | | 1.0 | | | vfmsub213pd zmm31, zmm29, zmm7 -| 1 | 1.0 | | | | | | | | vmulpd zmm30, zmm27, zmm28 -| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm30, zmm31 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k6}, zmm24, zmm1 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k6}, zmm24, zmm0 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k6}, zmm24, zmm21 -| 1* | | | | | | | | | cmp r15, r14 -| 0*F | | | | | | | | | jb 0xffffffffffffff19 -Total Num Of Uops: 55 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_lt1200.txt b/arch_analysis/avx512/iaca_force_soa_lt1200.txt deleted file mode 100644 index 38f7014..0000000 --- a/arch_analysis/avx512/iaca_force_soa_lt1200.txt +++ /dev/null @@ -1,72 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt1200_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_lt1200_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 30.25 Cycles Throughput Bottleneck: Backend -Loop Count: 23 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 16.0 0.0 | 2.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 19.0 | 3.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | | | | | 1.0 | | | vpcmpeqb k2, xmm0, xmm0 -| 1 | | 1.0 | | | | | | | add r9d, 0x8 -| 1 | | | | | | 1.0 | | | vpcmpeqb k1, xmm0, xmm0 -| 1 | | | | | | 1.0 | | | vpcmpeqb k3, xmm0, xmm0 -| 1 | | | 1.0 1.0 | | | | | | vmovdqu ymm3, ymmword ptr [rcx+r14*4] -| 1 | | 1.0 | | | | | | | add r14, 0x8 -| 1* | | | | | | | | | vpxord zmm5, zmm5, zmm5 -| 1* | | | | | | | | | vpxord zmm4, zmm4, zmm4 -| 1* | | | | | | | | | vpxord zmm6, zmm6, zmm6 -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm5, k2, zmmword ptr [rax+ymm3*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k1, zmmword ptr [rdx+ymm3*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm6, k3, zmmword ptr [rsi+ymm3*8] -| 1 | | | | | | 1.0 | | | vsubpd zmm29, zmm1, zmm5 -| 1 | 1.0 | | | | | | | | vsubpd zmm28, zmm0, zmm4 -| 1 | | | | | | 1.0 | | | vsubpd zmm31, zmm2, zmm6 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm29, zmm29 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm20, zmm28, zmm28 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm20, zmm31, zmm31 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm27, zmm20 -| 1 | | | | | | 1.0 | | | vcmppd k5, zmm20, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm27, 0x1e -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm20, zmm27, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm20, zmm20 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm27{k4}, zmm20, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm27{k4}, zmm21, zmm27 -| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm27, zmm15 -| 1 | 1.0 | | | | | | | | vmulpd zmm24, zmm27, zmm14 -| 1 | | | | | | 1.0 | | | vmulpd zmm25, zmm27, zmm22 -| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm27, zmm25 -| 1 | | | | | | 1.0 | | | vfmsub213pd zmm27, zmm25, zmm7 -| 1 | 1.0 | | | | | | | | vmulpd zmm26, zmm23, zmm24 -| 1 | | | | | | 1.0 | | | vmulpd zmm30, zmm26, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm13{k5}, zmm30, zmm28 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm12{k5}, zmm30, zmm29 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm11{k5}, zmm30, zmm31 -| 1* | | | | | | | | | cmp r9d, ebx -| 0*F | | | | | | | | | jb 0xffffffffffffff22 -Total Num Of Uops: 52 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/iaca_force_soa_lt8.txt b/arch_analysis/avx512/iaca_force_soa_lt8.txt deleted file mode 100644 index c9782f9..0000000 --- a/arch_analysis/avx512/iaca_force_soa_lt8.txt +++ /dev/null @@ -1,78 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ iaca -arch SKX force_soa_lt8_markers.o -Intel(R) Architecture Code Analyzer Version - v3.0-28-g1ba2cbb build date: 2017-10-23;16:42:45 -Analyzed File - force_soa_lt8_markers.o -Binary Format - 64Bit -Architecture - SKX -Analysis Type - Throughput - -Throughput Analysis Report --------------------------- -Block Throughput: 35.00 Cycles Throughput Bottleneck: Backend -Loop Count: 22 -Port Binding In Cycles Per Iteration: --------------------------------------------------------------------------------------------------- -| Port | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | --------------------------------------------------------------------------------------------------- -| Cycles | 20.0 0.0 | 4.0 | 13.0 13.0 | 13.0 13.0 | 0.0 | 20.0 | 4.0 | 0.0 | --------------------------------------------------------------------------------------------------- - -DV - Divider pipe (on port 0) -D - Data fetch pipe (on ports 2 and 3) -F - Macro Fusion with the previous instruction occurred -* - instruction micro-ops not bound to a port -^ - Micro Fusion occurred -# - ESP Tracking sync uop was issued -@ - SSE instruction followed an AVX256/AVX512 instruction, dozens of cycles penalty is expected -X - instruction not supported, was not accounted in Analysis - -| Num Of | Ports pressure in cycles | | -| Uops | 0 - DV | 1 | 2 - D | 3 - D | 4 | 5 | 6 | 7 | ------------------------------------------------------------------------------------------ -| 1 | | 1.0 | | | | | | | imul r8, r12 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm9, xmm9 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm2, xmm8 -| 1 | | | | | | 1.0 | | | vbroadcastsd zmm10, xmm10 -| 1 | | 1.0 | | | | | | | sub r13d, ebx -| 1 | | 1.0 | | | | | | | add r8, r11 -| 1 | | | | | | 1.0 | | | vpbroadcastd ymm0, r13d -| 1 | | | | | | 1.0 | | | vpcmpgtd k5, ymm0, ymm17 -| 1 | | | | | | | 1.0 | | movsxd rbx, ebx -| 1* | | | | | | | | | vmovaps zmm4, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k2, k5 -| 1* | | | | | | | | | vmovaps zmm3, zmm19 -| 2 | | 1.0 | 1.0 1.0 | | | | | | vmovdqu32 ymm1{k5}{z}, ymmword ptr [r8+rbx*4] -| 1 | 1.0 | | | | | | | | kmovw k1, k5 -| 1* | | | | | | | | | vmovaps zmm5, zmm19 -| 1 | 1.0 | | | | | | | | kmovw k3, k5 -| 5^ | 2.0 | | 4.0 4.0 | 4.0 4.0 | | | 1.0 | | vgatherdpd zmm5, k3, zmmword ptr [rsi+ymm1*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm4, k2, zmmword ptr [rax+ymm1*8] -| 5^ | 1.0 | | 4.0 4.0 | 4.0 4.0 | | 1.0 | 1.0 | | vgatherdpd zmm3, k1, zmmword ptr [rdx+ymm1*8] -| 1 | 1.0 | | | | | | | | vsubpd zmm30, zmm10, zmm5 -| 1 | | | | | | 1.0 | | | vsubpd zmm28, zmm9, zmm4 -| 1 | 1.0 | | | | | | | | vsubpd zmm27, zmm2, zmm3 -| 1 | | | | | | 1.0 | | | vmulpd zmm26, zmm28, zmm28 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm26, zmm27, zmm27 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm26, zmm30, zmm30 -| 3 | 2.0 | | | | | 1.0 | | | vrcp14pd zmm25, zmm26 -| 1 | | | | | | 1.0 | | | vcmppd k6{k5}, zmm26, zmm16, 0x1 -| 1 | | | | | | 1.0 | | | vfpclasspd k0, zmm25, 0x1e -| 1* | | | | | | | | | vmovaps zmm6, zmm26 -| 2^ | 1.0 | | | 1.0 1.0 | | | | | vfnmadd213pd zmm6, zmm25, qword ptr [rip]{1to8} -| 1 | 1.0 | | | | | | | | knotw k4, k0 -| 1 | | | | | | 1.0 | | | vmulpd zmm8, zmm6, zmm6 -| 1 | 1.0 | | | | | | | | vfmadd213pd zmm25{k4}, zmm6, zmm25 -| 1 | | | | | | 1.0 | | | vfmadd213pd zmm25{k4}, zmm8, zmm25 -| 1 | 1.0 | | | | | | | | vmulpd zmm20, zmm25, zmm15 -| 1 | | | | | | 1.0 | | | vmulpd zmm22, zmm25, zmm14 -| 1 | 1.0 | | | | | | | | vmulpd zmm23, zmm25, zmm20 -| 1 | | | | | | 1.0 | | | vmulpd zmm21, zmm25, zmm23 -| 1 | 1.0 | | | | | | | | vfmsub213pd zmm25, zmm23, zmm7 -| 1 | | | | | | 1.0 | | | vmulpd zmm24, zmm21, zmm22 -| 1 | 1.0 | | | | | | | | vmulpd zmm29, zmm24, zmm25 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm13{k6}, zmm29, zmm27 -| 1 | 1.0 | | | | | | | | vfmadd231pd zmm12{k6}, zmm29, zmm28 -| 1 | | | | | | 1.0 | | | vfmadd231pd zmm11{k6}, zmm29, zmm30 -Total Num Of Uops: 60 -Analysis Notes: -Backend allocation was stalled due to unavailable allocation resources. -There were bubbles in the frontend. diff --git a/arch_analysis/avx512/osaca_force_aos_geq1200.txt b/arch_analysis/avx512/osaca_force_aos_geq1200.txt deleted file mode 100644 index 5e0907a..0000000 --- a/arch_analysis/avx512/osaca_force_aos_geq1200.txt +++ /dev/null @@ -1,80 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_geq1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_aos_geq1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:53:50 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 196 | | | | | | 1.00 | | || | | vpcmpgtd %ymm3, %ymm2, %k3 #67.9 - 197 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 - 198 | 1.00 | | | | | | | || | | kmovw %k3, %r9d #67.9 - 199 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm17, %ymm17, %ymm18 #69.36 - 200 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm18, %ymm17, %ymm17 #69.36 - 201 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 - 202 | | | | | | | | || | | ..B1.21: # Preds ..B1.18 - 203 | | | | | | | | || | | # Execution count [1.25e+01] - 204 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 - 205 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 - 206 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 - 207 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm19, %zmm19, %zmm19 #69.36 - 208 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm20, %zmm20, %zmm20 #69.36 - 209 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 - 210 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 - 211 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 - 212 | | | | | | | | || | | # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 - 213 | | | | | | | | || | | ..B1.22: # Preds ..B1.21 - 214 | | | | | | | | || | | # Execution count [2.50e+01] - 215 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | addq $8, %r13 #67.9 - 216 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm16, %ymm3, %ymm3 #67.9 - 217 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm4, %zmm29 #71.36 - 218 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm19, %zmm0, %zmm27 #70.36 - 219 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm20, %zmm1, %zmm26 #69.36 - 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm27, %zmm27, %zmm25 #72.49 - 221 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 - 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 - 223 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm25, %zmm24 #75.38 - 224 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm25, %k2 #74.22 - 225 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm24, %k0 #75.38 - 226 | 1.00 | | | | | | | || | | kmovw %k2, %edx #74.22 - 227 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 228 | | | | | | | | || | | * vmovaps %zmm25, %zmm17 #75.38 - 229 | 0.00 | 0.34 | | | | 0.00 | 0.66 | || | | andl %edx, %r9d #74.22 - 230 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 - 231 | 1.00 | | | | | | | || | | kmovw %r9d, %k3 #78.17 - 232 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm17, %zmm18 #75.38 - 233 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 - 234 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 - 235 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm24, %zmm19 #76.38 - 236 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm24, %zmm21 #77.54 - 237 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm19, %zmm24, %zmm22 #76.44 - 238 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm22, %zmm24, %zmm20 #76.50 - 239 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 - 240 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm21, %zmm20, %zmm23 #77.61 - 241 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm28 #77.67 - 242 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 - 243 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 - 244 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 - 245 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpq %rbx, %r13 #67.9 - 246 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 - - 20.5 6.00 13.0 2.50 13.0 2.50 20.5 4.00 70.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 215 | 1.0 | addq $8, %r13 #67.9| [215] - 216 | 1.0 | vpaddd %ymm16, %ymm3, %ymm3 #67.9| [216] - 244 | 4.0 | vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17| [244] - 243 | 4.0 | vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17| [243] - 242 | 4.0 | vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17| [242] - diff --git a/arch_analysis/avx512/osaca_force_aos_lt1200.txt b/arch_analysis/avx512/osaca_force_aos_lt1200.txt deleted file mode 100644 index a30919e..0000000 --- a/arch_analysis/avx512/osaca_force_aos_lt1200.txt +++ /dev/null @@ -1,112 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/ICC$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force.s -Architecture: CSX -Timestamp: 2021-04-26 22:33:06 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 261 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 - 262 | | | | | | | | || | | # Execution count [4.50e+00] - 263 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | movq %r8, %r13 #56.43 - 264 | | 1.00 | | | | | | || 3.0 | 3.0 | imulq %rcx, %r13 #56.43 - 265 | | | | | | 1.00 | | || | | vbroadcastsd %xmm6, %zmm2 #58.23 - 266 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm1 #59.23 - 267 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm0 #60.23 - 268 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r12d, %rbx #67.9 - 269 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | 1.0 | addq %r10, %r13 #37.5 - 270 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rax, -64(%rsp) #37.5[spill] - 271 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r8, -56(%rsp) #37.5[spill] - 272 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r10, -48(%rsp) #37.5[spill] - 273 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rsi, -40(%rsp) #37.5[spill] - 274 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rcx, -32(%rsp) #37.5[spill] - 275 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %r9, -80(%rsp) #37.5[spill] - 276 | | | 0.00 | 0.00 | 1.00 | | | 1.00 || | | movq %rdx, -72(%rsp) #37.5[spill] - 277 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 278 | | | | | | | | || | | ..B1.26: # Preds ..B1.30 ..B1.25 - 279 | | | | | | | | || | | # Execution count [2.50e+01] - 280 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%r13,%rbx,4), %ymm3 #68.21 - 281 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm3, %ymm3, %ymm4 #69.36 - 282 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm4, %ymm3, %ymm3 #69.36 - 283 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl (%r13,%rbx,4), %r10d #68.21 - 284 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 4(%r13,%rbx,4), %r9d #68.21 - 285 | | | 0.50 0.50 | 0.50 0.50 | | | | || | 4.0 | movl 8(%r13,%rbx,4), %r8d #68.21 - 286 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 12(%r13,%rbx,4), %esi #68.21 - 287 | | 1.00 | | | | 0.00 | | || | | lea (%r10,%r10,2), %r10d #69.36 - 288 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 16(%r13,%rbx,4), %ecx #68.21 - 289 | | 1.00 | | | | 0.00 | | || | | lea (%r9,%r9,2), %r9d #69.36 - 290 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 20(%r13,%rbx,4), %edx #68.21 - 291 | | 1.00 | | | | 0.00 | | || | 1.0 | lea (%r8,%r8,2), %r8d #69.36 - 292 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 24(%r13,%rbx,4), %eax #68.21 - 293 | | 1.00 | | | | 0.00 | | || | | lea (%rsi,%rsi,2), %esi #69.36 - 294 | | | 0.50 0.50 | 0.50 0.50 | | | | || | | movl 28(%r13,%rbx,4), %r15d #68.21 - 295 | | 1.00 | | | | 0.00 | | || | | lea (%rcx,%rcx,2), %ecx #69.36 - 296 | | 1.00 | | | | 0.00 | | || | | lea (%rdx,%rdx,2), %edx #69.36 - 297 | | 1.00 | | | | 0.00 | | || | | lea (%rax,%rax,2), %eax #69.36 - 298 | | 1.00 | | | | 0.00 | | || | | lea (%r15,%r15,2), %r15d #69.36 - 299 | | | | | | | | || | | # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 300 | | | | | | | | || | | ..B1.29: # Preds ..B1.26 - 301 | | | | | | | | || | | # Execution count [1.25e+01] - 302 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - 303 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #69.36 - 304 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #69.36 - 305 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 - 306 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm17, %zmm17, %zmm17 #69.36 - 307 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm18, %zmm18, %zmm18 #69.36 - 308 | 1.50 | 0.17 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.83 | || | | vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 - 309 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || 4.0 | | vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 - 310 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 - 311 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 - 312 | | | | | | | | || | | ..B1.30: # Preds ..B1.29 - 313 | | | | | | | | || | | # Execution count [2.50e+01] - 314 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addl $8, %r12d #67.9 - 315 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | addq $8, %rbx #67.9 - 316 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm26 #71.36 - 317 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm1, %zmm24 #70.36 - 318 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm2, %zmm23 #69.36 - 319 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm3 #72.49 - 320 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 - 321 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 - 322 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm3, %zmm22 #75.38 - 323 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm3, %k2 #74.22 - 324 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm22, %k0 #75.38 - 325 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 - 326 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm3, %zmm3, %zmm4 #75.38 - 328 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 - 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 - 330 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm22, %zmm17 #76.38 - 331 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm22, %zmm19 #77.54 - 332 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm17, %zmm22, %zmm20 #76.44 - 333 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm22, %zmm18 #76.50 - 334 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 - 335 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm18, %zmm21 #77.61 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm25 #77.67 - 337 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 - 338 | 1.00 | | | | | 0.00 | | || | | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 - 339 | 1.00 | | | | | 0.00 | | || 4.0 | | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 - 340 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | cmpl %r14d, %r12d #67.9 - 341 | | | | | | | | || | | * jb ..B1.26 # Prob 82% #67.9 - 342 | | | | | | | | || | | # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - - 21.0 11.2 17.0 6.50 17.0 6.50 7.00 17.0 8.83 7.00 75.0 10.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 287 | 6.0 | lea (%r10,%r10,2), %r10d #69.36| [269, 283, 287] - 291 | 10.0 | lea (%r8,%r8,2), %r8d #69.36| [263, 264, 269, 285, 291] - 295 | 9.0 | lea (%rcx,%rcx,2), %ecx #69.36| [264, 269, 288, 295] - 314 | 1.0 | addl $8, %r12d #67.9| [314] - 339 | 4.0 | vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17| [339] - 338 | 4.0 | vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17| [338] - 337 | 4.0 | vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17| [337] diff --git a/arch_analysis/avx512/osaca_force_aos_lt8.txt b/arch_analysis/avx512/osaca_force_aos_lt8.txt deleted file mode 100644 index 810dae9..0000000 --- a/arch_analysis/avx512/osaca_force_aos_lt8.txt +++ /dev/null @@ -1,91 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_aos_lt8_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_aos_lt8_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:49:27 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 358 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 359 | | | | | | | | || | | ..B1.33: # Preds ..B1.32 - 360 | | | | | | | | || | | # Execution count [2.50e+01] - 361 | | 1.00 | | | | | | || 3.0 | | imulq %r8, %rcx #56.43 - 362 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm6, %zmm4 #58.23 - 363 | | | | | | | | || | | X subl %r14d, %r11d #67.9 - 364 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || 1.0 | | addq %r10, %rcx #37.5 - 365 | | | | | | | | || | | X vpbroadcastd %r11d, %ymm0 #67.9 - 366 | | | | | | 1.00 | | || | | vpcmpgtd %ymm15, %ymm0, %k3 #67.9 - 367 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | movslq %r14d, %r14 #67.9 - 368 | 1.00 | | | | | | | || | | kmovw %k3, %ebx #67.9 - 369 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 - 370 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm1, %ymm1, %ymm2 #69.36 - 371 | 0.00 | 1.00 | | | | 0.00 | | || 1.0 | | vpaddd %ymm2, %ymm1, %ymm0 #69.36 - 372 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 - 373 | | | | | | | | || | | ..B1.36: # Preds ..B1.33 - 374 | | | | | | | | || | | # Execution count [1.25e+01] - 375 | 1.00 | | | | | | | || | | kmovw %k3, %k1 #69.36 - 376 | 1.00 | | | | | | | || | | kmovw %k3, %k2 #69.36 - 377 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm1, %zmm1, %zmm1 #69.36 - 378 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm2, %zmm2, %zmm2 #69.36 - 379 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm3, %zmm3, %zmm3 #69.36 - 380 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 - 381 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 - 382 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 - 383 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - 384 | | | | | | | | || | | ..B1.37: # Preds ..B1.36 - 385 | | | | | | | | || | | # Execution count [2.50e+01] - 386 | | | | | | 1.00 | | || | | vbroadcastsd %xmm7, %zmm7 #59.23 - 387 | | | | | | 1.00 | | || | | vbroadcastsd %xmm12, %zmm12 #60.23 - 388 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm1, %zmm12, %zmm23 #71.36 - 389 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm2, %zmm7, %zmm21 #70.36 - 390 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm4, %zmm20 #69.36 - 391 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm21, %zmm19 #72.49 - 392 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 - 393 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 - 394 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm19, %zmm18 #75.38 - 395 | | | | | | 1.00 | | || | | vcmppd $1, %zmm14, %zmm19, %k2 #74.22 - 396 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm18, %k0 #75.38 - 397 | 1.00 | | | | | | | || | | kmovw %k2, %ecx #74.22 - 398 | 1.00 | | | | | | | || | | knotw %k0, %k1 #75.38 - 399 | | | | | | | | || | | * vmovaps %zmm19, %zmm0 #75.38 - 400 | 0.00 | 0.00 | | | | 0.00 | 1.00 | || | | andl %ecx, %ebx #74.22 - 401 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 - 402 | 1.00 | | | | | | | || | | kmovw %ebx, %k3 #78.17 - 403 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm1 #75.38 - 404 | 0.50 | | | | | 0.50 | | || | 4.0 | vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 - 405 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 - 406 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm13, %zmm18, %zmm2 #76.38 - 407 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm10, %zmm18, %zmm4 #77.54 - 408 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44 - 409 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm6, %zmm18, %zmm3 #76.50 - 410 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 - 411 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm4, %zmm3, %zmm17 #77.61 - 412 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm18, %zmm17, %zmm22 #77.67 - 413 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 - 414 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 - 415 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 - - 22.0 5.00 13.0 2.50 13.0 2.50 22.0 5.00 70.0 35.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 363 | 0.0 | subl %r14d, %r11d #67.9| [363] - 367 | 1.0 | movslq %r14d, %r14 #67.9| [367] - 386 | 3.0 | vbroadcastsd %xmm7, %zmm7 #59.23| [386] - 387 | 3.0 | vbroadcastsd %xmm12, %zmm12 #60.23| [387] - 415 | 4.0 | vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17| [415] - 414 | 4.0 | vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17| [414] - 413 | 4.0 | vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17| [413] - 397 | 28.0 | kmovw %k2, %ecx #74.22| [361, 364, 369, 371, 382, 390, 392, 393, 395, 397] - 408 | 35.0 | vmulpd %zmm2, %zmm18, %zmm6 #76.44| [362, 390, 392, 393, 394, 404, 405, 408] - diff --git a/arch_analysis/avx512/osaca_force_soa_geq1200.txt b/arch_analysis/avx512/osaca_force_soa_geq1200.txt deleted file mode 100644 index a98d11b..0000000 --- a/arch_analysis/avx512/osaca_force_soa_geq1200.txt +++ /dev/null @@ -1,71 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_geq1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_geq1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:54:23 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 189 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 190 | | | | | | | | || | | ..B1.18: # Preds ..B1.18 ..B1.17 - 191 | | | | | | | | || | | # Execution count [2.50e+01] - 192 | | | | | | 1.00 | | || | | vpcmpgtd %ymm4, %ymm3, %k5 #67.9 - 193 | 0.00 | 1.00 | | | | 0.00 | | || | | vpaddd %ymm18, %ymm4, %ymm4 #67.9 - 194 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 - 195 | | | | | | | | || | | * vmovaps %zmm19, %zmm22 #70.36 - 196 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r15 #67.9 - 197 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 - 198 | | | | | | | | || | | * vmovaps %zmm19, %zmm21 #69.36 - 199 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 - 200 | | | | | | | | || | | * vmovaps %zmm19, %zmm23 #71.36 - 201 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 - 202 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 - 203 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 - 204 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 - 205 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm22, %zmm5, %zmm0 #70.36 - 206 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm21, %zmm2, %zmm1 #69.36 - 207 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm23, %zmm6, %zmm21 #71.36 - 208 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm0, %zmm0, %zmm20 #72.49 - 209 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 - 210 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 - 211 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm31 #75.38 - 212 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 - 213 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm31, %k0 #75.38 - 214 | | | | | | | | || | | * vmovaps %zmm20, %zmm24 #75.38 - 215 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 - 216 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 217 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm24, %zmm25 #75.38 - 218 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 - 219 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 - 220 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm31, %zmm26 #76.38 - 221 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm31, %zmm28 #77.54 - 222 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm26, %zmm31, %zmm29 #76.44 - 223 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm31, %zmm27 #76.50 - 224 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 - 225 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm28, %zmm27, %zmm30 #77.61 - 226 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm31, %zmm30, %zmm24 #77.67 - 227 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 - 228 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 - 229 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 - 230 | 0.00 | 0.17 | | | | 0.00 | 0.83 | || | | cmpq %r14, %r15 #67.9 - 231 | | | | | | | | || | | * jb ..B1.18 # Prob 82% #67.9 - - 18.0 4.17 13.0 2.50 13.0 2.50 18.0 2.83 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 193 | 1.0 | vpaddd %ymm18, %ymm4, %ymm4 #67.9| [193] - 196 | 1.0 | addq $8, %r15 #67.9| [196] - 228 | 4.0 | vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17| [228] - 227 | 4.0 | vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17| [227] - 229 | 4.0 | vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17| [229] diff --git a/arch_analysis/avx512/osaca_force_soa_lt1200.txt b/arch_analysis/avx512/osaca_force_soa_lt1200.txt deleted file mode 100644 index ded0878..0000000 --- a/arch_analysis/avx512/osaca_force_soa_lt1200.txt +++ /dev/null @@ -1,69 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt1200_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_lt1200_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:39:58 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 253 | | | | | | | | || | | # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 254 | | | | | | | | || | | ..B1.22: # Preds ..B1.22 ..B1.21 - 255 | | | | | | | | || | | # Execution count [2.50e+01] - 256 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k2 #70.36 - 257 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addl $8, %r9d #67.9 - 258 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - 259 | | | | | | | | || | | X vpcmpeqb %xmm0, %xmm0, %k3 #71.36 - 260 | | | 0.50 0.50 | 0.50 0.50 | | | | || 4.0 | | vmovdqu (%rcx,%r14,4), %ymm3 #68.21 - 261 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | addq $8, %r14 #67.9 - 262 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm5, %zmm5, %zmm5 #70.36 - 263 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm4, %zmm4, %zmm4 #69.36 - 264 | 0.50 | | | | | 0.50 | | || | | vpxord %zmm6, %zmm6, %zmm6 #71.36 - 265 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 - 266 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 - 267 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 - 268 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm5, %zmm1, %zmm29 #70.36 - 269 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm4, %zmm0, %zmm28 #69.36 - 270 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm6, %zmm2, %zmm31 #71.36 - 271 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm20 #72.49 - 272 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 - 273 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 - 274 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm20, %zmm27 #75.38 - 275 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm20, %k5 #74.22 - 276 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm27, %k0 #75.38 - 277 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 - 278 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 279 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm20, %zmm21 #75.38 - 280 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 - 281 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 - 282 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm27, %zmm22 #76.38 - 283 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm27, %zmm24 #77.54 - 284 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm27, %zmm25 #76.44 - 285 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm27, %zmm23 #76.50 - 286 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 - 287 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm23, %zmm26 #77.61 - 288 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm27, %zmm26, %zmm30 #77.67 - 289 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 - 290 | 0.00 | | | | | 1.00 | | || | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 - 291 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 - 292 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | cmpl %ebx, %r9d #67.9 - 293 | | | | | | | | || | | * jb ..B1.22 # Prob 82% #67.9 - - 17.5 3.00 13.0 2.50 13.0 2.50 17.5 3.00 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 257 | 1.0 | addl $8, %r9d #67.9| [257] - 261 | 1.0 | addq $8, %r14 #67.9| [261] - 290 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17| [290] - 289 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17| [289] - 291 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17| [291] diff --git a/arch_analysis/avx512/osaca_force_soa_lt8.txt b/arch_analysis/avx512/osaca_force_soa_lt8.txt deleted file mode 100644 index bf328fa..0000000 --- a/arch_analysis/avx512/osaca_force_soa_lt8.txt +++ /dev/null @@ -1,79 +0,0 @@ -iwia021h@testfront1:~/MD-Bench/asm$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX force_soa_lt8_markers.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: force_soa_lt8_markers.s -Architecture: CSX -Timestamp: 2021-04-29 15:52:48 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 300 | | | | | | | | || | | # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - 301 | | | | | | | | || | | ..B1.25: # Preds ..B1.24 - 302 | | | | | | | | || | | # Execution count [2.50e+01] - 303 | | 1.00 | | | | | | || 3.0 | | imulq %r12, %r8 #56.43 - 304 | | | | | | 1.00 | | || | | vbroadcastsd %xmm9, %zmm9 #59.23 - 305 | | | | | | 1.00 | | || | 3.0 | vbroadcastsd %xmm8, %zmm2 #58.23 - 306 | | | | | | 1.00 | | || | | vbroadcastsd %xmm10, %zmm10 #60.23 - 307 | | | | | | | | || | | X subl %ebx, %r13d #67.9 - 308 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || 1.0 | | addq %r11, %r8 #37.5 - 309 | | | | | | | | || | | X vpbroadcastd %r13d, %ymm0 #67.9 - 310 | | | | | | 1.00 | | || | | vpcmpgtd %ymm17, %ymm0, %k5 #67.9 - 311 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ebx, %rbx #67.9 - 312 | | | | | | | | || | | * vmovaps %zmm19, %zmm4 #70.36 - 313 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #70.36 - 314 | | | | | | | | || | | * vmovaps %zmm19, %zmm3 #69.36 - 315 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 0.0 | | vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 - 316 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #69.36 - 317 | | | | | | | | || | | * vmovaps %zmm19, %zmm5 #71.36 - 318 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #71.36 - 319 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 - 320 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || 4.0 | | vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 - 321 | 1.50 | 0.00 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 1.00 | || | | vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 - 322 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm5, %zmm10, %zmm30 #71.36 - 323 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm4, %zmm9, %zmm28 #70.36 - 324 | 0.50 | | | | | 0.50 | | || | 4.0 | vsubpd %zmm3, %zmm2, %zmm27 #69.36 - 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm28, %zmm28, %zmm26 #72.49 - 326 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 - 328 | 2.50 | | | | | 0.50 | | || 8.0 | 8.0 | vrcp14pd %zmm26, %zmm25 #75.38 - 329 | | | | | | 1.00 | | || | | vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 - 330 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm25, %k0 #75.38 - 331 | | | | | | | | || | | * vmovaps %zmm26, %zmm6 #75.38 - 332 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | 4.0 | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 - 333 | 1.00 | | | | | | | || | | knotw %k0, %k4 #75.38 - 334 | 0.50 | | | | | 0.50 | | || 4.0 | 4.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38 - 335 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 - 337 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm15, %zmm25, %zmm20 #76.38 - 338 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm14, %zmm25, %zmm22 #77.54 - 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm20, %zmm25, %zmm23 #76.44 - 340 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm23, %zmm25, %zmm21 #76.50 - 341 | 0.50 | | | | | 0.50 | | || | | vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 - 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm22, %zmm21, %zmm24 #77.61 - 343 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm25, %zmm24, %zmm29 #77.67 - 344 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 - 345 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 - 346 | 0.00 | | | | | 1.00 | | || 4.0 | | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 - - 19.5 3.50 13.0 2.50 13.0 2.50 19.5 3.50 68.0 31.0 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 308 | 4.0 | addq %r11, %r8 #37.5| [303, 308] - 304 | 3.0 | vbroadcastsd %xmm9, %zmm9 #59.23| [304] - 306 | 3.0 | vbroadcastsd %xmm10, %zmm10 #60.23| [306] - 307 | 0.0 | subl %ebx, %r13d #67.9| [307] - 311 | 1.0 | movslq %ebx, %rbx #67.9| [311] - 346 | 4.0 | vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17| [346] - 345 | 4.0 | vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17| [345] - 344 | 4.0 | vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17| [344] - 334 | 31.0 | vmulpd %zmm6, %zmm6, %zmm8 #75.38| [305, 324, 326, 327, 328, 332, 334] diff --git a/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt b/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt deleted file mode 100644 index 8ff88d5..0000000 --- a/arch_analysis/avx512/osaca_force_soa_lt8_iln1000.txt +++ /dev/null @@ -1,70 +0,0 @@ -iwia021h@testfront1:~/MD-Bench$ /home/hpc/iwia/iwia021h/.local/bin/osaca --ignore-unknown --arch=CSX ICC/force.s -Open Source Architecture Code Analyzer (OSACA) - 0.3.14 -Analyzed file: ICC/force.s -Architecture: CSX -Timestamp: 2021-04-30 16:08:44 - - - P - Throughput of LOAD operation can be hidden behind a past or future STORE instruction - * - Instruction micro-ops not bound to a port - X - No throughput/latency information for this instruction in data file - - -Combined Analysis Report ------------------------- - Port pressure in cycles - | 0 - 0DV | 1 | 2 - 2D | 3 - 3D | 4 | 5 | 6 | 7 || CP | LCD | -------------------------------------------------------------------------------------------------- - 306 | | | | | | | | || | | # LOE rbp rdi r8 r9 r10 edx ecx r11d r12d r13d r14d r15d ymm13 ymm14 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm15 - 307 | | | | | | | | || | | ..B1.29: # Preds ..B1.28 - 308 | | | | | | | | || | | # Execution count [2.50e+04] - 309 | 0.00 | 0.50 | | | | 0.00 | 0.50 | || | | movl %r14d, %eax #64.13 - 310 | | | | | | | | || | | X subl %ecx, %eax #64.13 - 311 | | | | | | | | || | | X vpbroadcastd %eax, %ymm0 #64.13 - 312 | | | | | | 1.00 | | || | | vpcmpgtd %ymm14, %ymm0, %k5 #64.13 - 313 | 0.00 | 0.16 | | | | 0.00 | 0.84 | || | | movslq %ecx, %rcx #64.13 - 314 | | | | | | | | || | | * vmovaps %zmm15, %zmm17 #67.40 - 315 | 1.00 | | | | | | | || | | kmovw %k5, %k2 #67.40 - 316 | | | | | | | | || | | * vmovaps %zmm15, %zmm16 #66.40 - 317 | 0.00 | 1.00 | 0.50 0.50 | 0.50 0.50 | | 0.00 | | || 4.0 | | vmovdqu32 (%rdi,%rcx,4), %ymm1{%k5}{z} #65.25 - 318 | 1.00 | | | | | | | || | | kmovw %k5, %k1 #66.40 - 319 | | | | | | | | || | | * vmovaps %zmm15, %zmm18 #68.40 - 320 | 1.00 | | | | | | | || | | kmovw %k5, %k3 #68.40 - 321 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || | | vgatherdpd (%r8,%ymm1,8), %zmm18{%k3} #68.40 - 322 | 1.50 | 0.50 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.50 | || 4.0 | | vgatherdpd (%r9,%ymm1,8), %zmm17{%k2} #67.40 - 323 | 1.50 | 0.34 | 4.00 0.50 | 4.00 0.50 | | 0.50 | 0.66 | || | | vgatherdpd (%r10,%ymm1,8), %zmm16{%k1} #66.40 - 324 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm18, %zmm3, %zmm31 #68.40 - 325 | 0.50 | | | | | 0.50 | | || 4.0 | | vsubpd %zmm17, %zmm2, %zmm29 #67.40 - 326 | 0.50 | | | | | 0.50 | | || | | vsubpd %zmm16, %zmm4, %zmm28 #66.40 - 327 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm29, %zmm29, %zmm27 #69.53 - 328 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm28, %zmm28, %zmm27 #69.53 - 329 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd231pd %zmm31, %zmm31, %zmm27 #69.67 - 330 | 2.50 | | | | | 0.50 | | || 8.0 | | vrcp14pd %zmm27, %zmm26 #72.42 - 331 | | | | | | 1.00 | | || | | vcmppd $1, %zmm12, %zmm27, %k6{%k5} #71.26 - 332 | | | | | | 1.00 | | || | | vfpclasspd $30, %zmm26, %k0 #72.42 - 333 | | | | | | | | || | | * vmovaps %zmm27, %zmm19 #72.42 - 334 | 0.50 | | 0.50 0.50 | 0.50 0.50 | | 0.50 | | || 4.0 | | vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm26, %zmm19 #72.42 - 335 | 1.00 | | | | | | | || | | knotw %k0, %k4 #72.42 - 336 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm19, %zmm19, %zmm20 #72.42 - 337 | 0.50 | | | | | 0.50 | | || | | vfmadd213pd %zmm26, %zmm19, %zmm26{%k4} #72.42 - 338 | 0.50 | | | | | 0.50 | | || 4.0 | | vfmadd213pd %zmm26, %zmm20, %zmm26{%k4} #72.42 - 339 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm11, %zmm26, %zmm21 #73.42 - 340 | 0.50 | | | | | 0.50 | | || | | vmulpd %zmm9, %zmm26, %zmm23 #74.58 - 341 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm21, %zmm26, %zmm24 #73.48 - 342 | 0.50 | | | | | 0.50 | | || 4.0 | | vmulpd %zmm24, %zmm26, %zmm22 #73.54 - 343 | 0.00 | | | | | 1.00 | | || | | vfmsub213pd %zmm10, %zmm24, %zmm26 #74.58 - 344 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm23, %zmm22, %zmm25 #74.65 - 345 | 0.00 | | | | | 1.00 | | || 4.0 | | vmulpd %zmm26, %zmm25, %zmm30 #74.71 - 346 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21 - 347 | 0.00 | | | | | 1.00 | | || | | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21 - 348 | 0.00 | | | | | 1.00 | | || 4.0 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21 - - 18.0 3.00 13.0 2.50 13.0 2.50 18.0 3.00 68.0 4 - - -Loop-Carried Dependencies Analysis Report ------------------------------------------ - 313 | 1.0 | movslq %ecx, %rcx #64.13| [313] - 348 | 4.0 | vfmadd231pd %zmm31, %zmm30, %zmm5{%k6} #77.21| [348] - 347 | 4.0 | vfmadd231pd %zmm29, %zmm30, %zmm6{%k6} #76.21| [347] - 346 | 4.0 | vfmadd231pd %zmm28, %zmm30, %zmm7{%k6} #75.21| [346] diff --git a/asm/avx2/force_aos_lt600_markers.s b/asm/avx2/force_aos_lt600_markers.s deleted file mode 100644 index 5ff73a6..0000000 --- a/asm/avx2/force_aos_lt600_markers.s +++ /dev/null @@ -1,12817 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -"; -# mark_description "fast -xCORE-AVX2 -o ICC/force.s"; - .file "force.c" - .section __ildata, "" - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 236 - .byte 213 - .byte 42 - .byte 66 - .byte 178 - .byte 52 - .byte 67 - .byte 28 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 161 - .byte 31 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 97 - .byte 16 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 250 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 204 - .byte 1 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 31 - .byte 0 - .byte 0 - .byte 80 - .byte 0 - .byte 0 - .byte 0 - .byte 82 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 157 - .byte 3 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 0 - .byte 0 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 78 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 29 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 18 - .byte 0 - .byte 1 - .byte 1 - .byte 52 - .byte 9 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 2 - .byte 186 - .byte 1 - .byte 186 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 3 - .byte 189 - .byte 1 - .byte 194 - .byte 0 - .byte 128 - .byte 1 - .byte 2 - .byte 4 - .byte 0 - .byte 2 - .byte 0 - .byte 2 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 4 - .byte 190 - .byte 1 - .byte 190 - .byte 1 - .byte 128 - .byte 1 - .byte 1 - .byte 3 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 5 - .byte 18 - .byte 61 - .byte 136 - .byte 1 - .byte 2 - .byte 3 - .byte 0 - .byte 1 - .byte 0 - .byte 2 - .byte 6 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 6 - .byte 187 - .byte 1 - .byte 187 - .byte 1 - .byte 0 - .byte 1 - .byte 5 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 7 - .byte 195 - .byte 1 - .byte 27 - .byte 199 - .byte 3 - .byte 2 - .byte 17 - .byte 0 - .byte 6 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 8 - .byte 193 - .byte 1 - .byte 55 - .byte 161 - .byte 3 - .byte 2 - .byte 15 - .byte 0 - .byte 7 - .byte 0 - .byte 2 - .byte 9 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 9 - .byte 188 - .byte 1 - .byte 188 - .byte 1 - .byte 0 - .byte 1 - .byte 8 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 10 - .byte 191 - .byte 1 - .byte 40 - .byte 147 - .byte 3 - .byte 2 - .byte 13 - .byte 0 - .byte 9 - .byte 0 - .byte 2 - .byte 11 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 1 - .byte 1 - .byte 11 - .byte 34 - .byte 39 - .byte 199 - .byte 2 - .byte 1 - .byte 10 - .byte 0 - .byte 1 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 12 - .byte 41 - .byte 206 - .byte 0 - .byte 138 - .byte 3 - .byte 2 - .byte 11 - .byte 0 - .byte 10 - .byte 0 - .byte 2 - .byte 13 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 13 - .byte 192 - .byte 1 - .byte 192 - .byte 1 - .byte 147 - .byte 3 - .byte 1 - .byte 12 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 14 - .byte 43 - .byte 202 - .byte 0 - .byte 152 - .byte 3 - .byte 2 - .byte 12 - .byte 0 - .byte 8 - .byte 0 - .byte 2 - .byte 15 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 16 - .byte 1 - .byte 128 - .byte 152 - .byte 179 - .byte 238 - .byte 3 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 15 - .byte 194 - .byte 1 - .byte 194 - .byte 1 - .byte 161 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 16 - .byte 185 - .byte 1 - .byte 198 - .byte 0 - .byte 170 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 2 - .byte 17 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 17 - .byte 196 - .byte 1 - .byte 196 - .byte 1 - .byte 199 - .byte 3 - .byte 1 - .byte 16 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 18 - .byte 50 - .byte 50 - .byte 204 - .byte 3 - .byte 2 - .byte 16 - .byte 0 - .byte 5 - .byte 0 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 76 - .byte 9 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 2 - .byte 0 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 11 - .byte 3 - .byte 12 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 2 - .byte 72 - .byte 38 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 204 - .byte 7 - .byte 18 - .byte 65 - .byte 67 - .byte 4 - .byte 72 - .byte 48 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 5 - .byte 2 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 206 - .byte 7 - .byte 35 - .byte 65 - .byte 67 - .byte 5 - .byte 72 - .byte 54 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 6 - .byte 4 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 209 - .byte 7 - .byte 41 - .byte 65 - .byte 67 - .byte 6 - .byte 72 - .byte 60 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 7 - .byte 5 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 211 - .byte 7 - .byte 48 - .byte 65 - .byte 67 - .byte 7 - .byte 72 - .byte 194 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 8 - .byte 6 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 213 - .byte 7 - .byte 55 - .byte 65 - .byte 67 - .byte 8 - .byte 72 - .byte 200 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 9 - .byte 7 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 215 - .byte 7 - .byte 62 - .byte 65 - .byte 67 - .byte 9 - .byte 72 - .byte 206 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 12 - .byte 8 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 217 - .byte 7 - .byte 197 - .byte 0 - .byte 65 - .byte 67 - .byte 12 - .byte 72 - .byte 214 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 52 - .byte 9 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 219 - .byte 7 - .byte 204 - .byte 0 - .byte 65 - .byte 67 - .byte 13 - .byte 72 - .byte 227 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 14 - .byte 189 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 214 - .byte 0 - .byte 205 - .byte 0 - .byte 65 - .byte 67 - .byte 14 - .byte 72 - .byte 235 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 15 - .byte 13 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 224 - .byte 0 - .byte 215 - .byte 0 - .byte 65 - .byte 67 - .byte 15 - .byte 72 - .byte 243 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 16 - .byte 14 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 234 - .byte 0 - .byte 225 - .byte 0 - .byte 65 - .byte 67 - .byte 16 - .byte 72 - .byte 247 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 194 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 227 - .byte 7 - .byte 238 - .byte 0 - .byte 65 - .byte 67 - .byte 18 - .byte 72 - .byte 136 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 61 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte 0 - .byte 231 - .byte 7 - .byte 243 - .byte 0 - .byte 65 - .byte 67 - .byte 19 - .byte 72 - .byte 167 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 20 - .byte 195 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 233 - .byte 7 - .byte 133 - .byte 1 - .byte 65 - .byte 67 - .byte 20 - .byte 72 - .byte 175 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 21 - .byte 19 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 237 - .byte 7 - .byte 149 - .byte 1 - .byte 65 - .byte 67 - .byte 21 - .byte 72 - .byte 181 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 22 - .byte 20 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 240 - .byte 7 - .byte 168 - .byte 1 - .byte 65 - .byte 67 - .byte 22 - .byte 72 - .byte 190 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 23 - .byte 21 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 243 - .byte 7 - .byte 187 - .byte 1 - .byte 65 - .byte 67 - .byte 23 - .byte 72 - .byte 199 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 24 - .byte 22 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 246 - .byte 7 - .byte 206 - .byte 1 - .byte 65 - .byte 67 - .byte 24 - .byte 72 - .byte 206 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 25 - .byte 23 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 249 - .byte 7 - .byte 208 - .byte 1 - .byte 65 - .byte 67 - .byte 25 - .byte 72 - .byte 210 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 26 - .byte 24 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 250 - .byte 7 - .byte 210 - .byte 1 - .byte 65 - .byte 67 - .byte 26 - .byte 72 - .byte 214 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 27 - .byte 25 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 251 - .byte 7 - .byte 212 - .byte 1 - .byte 65 - .byte 67 - .byte 27 - .byte 72 - .byte 220 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 193 - .byte 1 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 252 - .byte 7 - .byte 214 - .byte 1 - .byte 65 - .byte 67 - .byte 28 - .byte 72 - .byte 232 - .byte 1 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 55 - .byte 193 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 253 - .byte 7 - .byte 216 - .byte 1 - .byte 65 - .byte 67 - .byte 29 - .byte 72 - .byte 129 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 30 - .byte 191 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 255 - .byte 7 - .byte 226 - .byte 1 - .byte 65 - .byte 67 - .byte 30 - .byte 72 - .byte 137 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 31 - .byte 29 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 130 - .byte 8 - .byte 247 - .byte 1 - .byte 65 - .byte 67 - .byte 31 - .byte 72 - .byte 148 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 32 - .byte 30 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 134 - .byte 8 - .byte 140 - .byte 2 - .byte 65 - .byte 67 - .byte 32 - .byte 72 - .byte 159 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 33 - .byte 31 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 138 - .byte 8 - .byte 161 - .byte 2 - .byte 65 - .byte 67 - .byte 33 - .byte 72 - .byte 178 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 40 - .byte 32 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 142 - .byte 8 - .byte 173 - .byte 2 - .byte 65 - .byte 67 - .byte 34 - .byte 72 - .byte 199 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 35 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 151 - .byte 8 - .byte 177 - .byte 2 - .byte 65 - .byte 67 - .byte 35 - .byte 72 - .byte 211 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 36 - .byte 34 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 153 - .byte 8 - .byte 185 - .byte 2 - .byte 65 - .byte 67 - .byte 36 - .byte 72 - .byte 227 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 37 - .byte 35 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 158 - .byte 8 - .byte 197 - .byte 2 - .byte 65 - .byte 67 - .byte 37 - .byte 72 - .byte 235 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 38 - .byte 36 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 163 - .byte 8 - .byte 203 - .byte 2 - .byte 65 - .byte 67 - .byte 38 - .byte 72 - .byte 243 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 39 - .byte 37 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 167 - .byte 8 - .byte 209 - .byte 2 - .byte 65 - .byte 67 - .byte 39 - .byte 72 - .byte 251 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 0 - .byte 38 - .byte 0 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 171 - .byte 8 - .byte 215 - .byte 2 - .byte 65 - .byte 67 - .byte 40 - .byte 78 - .byte 133 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 41 - .byte 33 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 218 - .byte 2 - .byte 0 - .byte 34 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 41 - .byte 72 - .byte 138 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 206 - .byte 0 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 175 - .byte 8 - .byte 222 - .byte 2 - .byte 65 - .byte 67 - .byte 43 - .byte 72 - .byte 152 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 202 - .byte 0 - .byte 55 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 179 - .byte 8 - .byte 229 - .byte 2 - .byte 65 - .byte 67 - .byte 45 - .byte 72 - .byte 170 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 46 - .byte 183 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 242 - .byte 2 - .byte 252 - .byte 2 - .byte 65 - .byte 67 - .byte 46 - .byte 72 - .byte 178 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 47 - .byte 45 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 134 - .byte 3 - .byte 144 - .byte 3 - .byte 65 - .byte 67 - .byte 47 - .byte 72 - .byte 186 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 48 - .byte 46 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 154 - .byte 3 - .byte 164 - .byte 3 - .byte 65 - .byte 67 - .byte 48 - .byte 72 - .byte 190 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 198 - .byte 0 - .byte 47 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 203 - .byte 8 - .byte 168 - .byte 3 - .byte 65 - .byte 67 - .byte 50 - .byte 77 - .byte 204 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 0 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 174 - .byte 3 - .byte 67 - .byte 52 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 18 - .byte 12 - .byte 2 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 241 - .byte 0 - .byte 0 - .byte 186 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 55 - .byte 78 - .byte 147 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 43 - .byte 28 - .byte 2 - .byte 1 - .byte 0 - .byte 8 - .byte 0 - .byte 225 - .byte 2 - .byte 0 - .byte 188 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 61 - .byte 78 - .byte 199 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 50 - .byte 18 - .byte 2 - .byte 1 - .byte 0 - .byte 5 - .byte 0 - .byte 171 - .byte 3 - .byte 0 - .byte 187 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 194 - .byte 0 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 16 - .byte 2 - .byte 1 - .byte 0 - .byte 3 - .byte 0 - .byte 175 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 198 - .byte 0 - .byte 78 - .byte 199 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 48 - .byte 2 - .byte 1 - .byte 0 - .byte 16 - .byte 0 - .byte 178 - .byte 3 - .byte 0 - .byte 196 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 202 - .byte 0 - .byte 78 - .byte 161 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 185 - .byte 1 - .byte 43 - .byte 2 - .byte 1 - .byte 0 - .byte 14 - .byte 0 - .byte 181 - .byte 3 - .byte 0 - .byte 194 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 206 - .byte 0 - .byte 78 - .byte 147 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 0 - .byte 41 - .byte 2 - .byte 1 - .byte 0 - .byte 12 - .byte 0 - .byte 184 - .byte 3 - .byte 0 - .byte 192 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 183 - .byte 1 - .byte 72 - .byte 170 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 45 - .byte 184 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 186 - .byte 8 - .byte 187 - .byte 8 - .byte 65 - .byte 67 - .byte 184 - .byte 1 - .byte 72 - .byte 170 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 183 - .byte 1 - .byte 185 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 184 - .byte 8 - .byte 185 - .byte 8 - .byte 65 - .byte 67 - .byte 185 - .byte 1 - .byte 72 - .byte 170 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 184 - .byte 1 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 182 - .byte 8 - .byte 183 - .byte 8 - .byte 65 - .byte 67 - .byte 186 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 189 - .byte 1 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 187 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 195 - .byte 1 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 6 - .byte 0 - .byte 188 - .byte 1 - .byte 93 - .byte 0 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 191 - .byte 1 - .byte 55 - .byte 0 - .byte 0 - .byte 0 - .byte 9 - .byte 0 - .byte 189 - .byte 1 - .byte 93 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 13 - .byte 186 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 80 - .byte 128 - .byte 1 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 194 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 189 - .byte 1 - .byte 191 - .byte 1 - .byte 93 - .byte 147 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 29 - .byte 188 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 192 - .byte 1 - .byte 80 - .byte 147 - .byte 3 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 0 - .byte 206 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 13 - .byte 0 - .byte 191 - .byte 1 - .byte 193 - .byte 1 - .byte 93 - .byte 161 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 28 - .byte 27 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 194 - .byte 1 - .byte 80 - .byte 161 - .byte 3 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 0 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 15 - .byte 0 - .byte 193 - .byte 1 - .byte 195 - .byte 1 - .byte 93 - .byte 199 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 19 - .byte 187 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 196 - .byte 1 - .byte 80 - .byte 199 - .byte 3 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 198 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 195 - .byte 1 - .byte 1 - .byte 1 - .byte 7 - .byte 1 - .byte 2 - .byte 1 - .byte 7 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 11 - .byte 7 - .byte 6 - .byte 1 - .byte 0 - .byte 2 - .byte 80 - .byte 4 - .byte 1 - .byte 7 - .byte 2 - .byte 5 - .byte 1 - .byte 7 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 11 - .byte 7 - .byte 9 - .byte 4 - .byte 0 - .byte 5 - .byte 80 - .byte 7 - .byte 1 - .byte 7 - .byte 3 - .byte 8 - .byte 1 - .byte 7 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 11 - .byte 7 - .byte 0 - .byte 7 - .byte 0 - .byte 8 - .byte 80 - .byte 10 - .byte 1 - .byte 7 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 11 - .byte 7 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 80 - .byte 12 - .byte 0 - .byte 9 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 17 - .byte 0 - .byte 38 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 18 - .byte 8 - .byte 38 - .byte 205 - .byte 7 - .byte 19 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 19 - .byte 1 - .byte 38 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 46 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 27 - .byte 8 - .byte 46 - .byte 207 - .byte 7 - .byte 28 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 28 - .byte 1 - .byte 46 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 48 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 33 - .byte 8 - .byte 48 - .byte 208 - .byte 7 - .byte 34 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 34 - .byte 1 - .byte 48 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 35 - .byte 21 - .byte 48 - .byte 27 - .byte 33 - .byte 12 - .byte 40 - .byte 0 - .byte 54 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 41 - .byte 8 - .byte 54 - .byte 210 - .byte 7 - .byte 42 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 40 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 42 - .byte 1 - .byte 54 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 60 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 48 - .byte 8 - .byte 60 - .byte 212 - .byte 7 - .byte 49 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 49 - .byte 1 - .byte 60 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 194 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 55 - .byte 8 - .byte 194 - .byte 0 - .byte 214 - .byte 7 - .byte 56 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 56 - .byte 1 - .byte 194 - .byte 0 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 200 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 62 - .byte 8 - .byte 200 - .byte 0 - .byte 216 - .byte 7 - .byte 63 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 63 - .byte 1 - .byte 200 - .byte 0 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 206 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 197 - .byte 0 - .byte 8 - .byte 206 - .byte 0 - .byte 218 - .byte 7 - .byte 198 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 198 - .byte 0 - .byte 1 - .byte 206 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 204 - .byte 0 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 205 - .byte 0 - .byte 0 - .byte 223 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 208 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 0 - .byte 15 - .byte 227 - .byte 0 - .byte 222 - .byte 7 - .byte 7 - .byte 6 - .byte 210 - .byte 0 - .byte 22 - .byte 227 - .byte 0 - .byte 209 - .byte 0 - .byte 208 - .byte 0 - .byte 7 - .byte 211 - .byte 0 - .byte 19 - .byte 227 - .byte 0 - .byte 221 - .byte 7 - .byte 210 - .byte 0 - .byte 36 - .byte 212 - .byte 0 - .byte 1 - .byte 227 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 0 - .byte 8 - .byte 227 - .byte 0 - .byte 211 - .byte 0 - .byte 212 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 215 - .byte 0 - .byte 0 - .byte 231 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 218 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 219 - .byte 0 - .byte 15 - .byte 235 - .byte 0 - .byte 224 - .byte 7 - .byte 7 - .byte 6 - .byte 220 - .byte 0 - .byte 22 - .byte 235 - .byte 0 - .byte 219 - .byte 0 - .byte 218 - .byte 0 - .byte 7 - .byte 221 - .byte 0 - .byte 19 - .byte 235 - .byte 0 - .byte 223 - .byte 7 - .byte 220 - .byte 0 - .byte 36 - .byte 222 - .byte 0 - .byte 1 - .byte 235 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 224 - .byte 0 - .byte 8 - .byte 235 - .byte 0 - .byte 221 - .byte 0 - .byte 222 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 225 - .byte 0 - .byte 0 - .byte 239 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 228 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 229 - .byte 0 - .byte 15 - .byte 243 - .byte 0 - .byte 226 - .byte 7 - .byte 7 - .byte 6 - .byte 230 - .byte 0 - .byte 22 - .byte 243 - .byte 0 - .byte 229 - .byte 0 - .byte 228 - .byte 0 - .byte 7 - .byte 231 - .byte 0 - .byte 19 - .byte 243 - .byte 0 - .byte 225 - .byte 7 - .byte 230 - .byte 0 - .byte 36 - .byte 232 - .byte 0 - .byte 1 - .byte 243 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 234 - .byte 0 - .byte 8 - .byte 243 - .byte 0 - .byte 231 - .byte 0 - .byte 232 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 236 - .byte 0 - .byte 0 - .byte 247 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 0 - .byte 19 - .byte 247 - .byte 0 - .byte 228 - .byte 7 - .byte 236 - .byte 0 - .byte 6 - .byte 241 - .byte 0 - .byte 46 - .byte 254 - .byte 0 - .byte 177 - .byte 7 - .byte 220 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 243 - .byte 0 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 248 - .byte 0 - .byte 0 - .byte 163 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 249 - .byte 0 - .byte 8 - .byte 163 - .byte 1 - .byte 236 - .byte 7 - .byte 250 - .byte 0 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 250 - .byte 0 - .byte 1 - .byte 163 - .byte 1 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 0 - .byte 22 - .byte 163 - .byte 1 - .byte 235 - .byte 7 - .byte 249 - .byte 0 - .byte 6 - .byte 255 - .byte 0 - .byte 0 - .byte 165 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 128 - .byte 1 - .byte 8 - .byte 165 - .byte 1 - .byte 234 - .byte 7 - .byte 129 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 129 - .byte 1 - .byte 1 - .byte 165 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 1 - .byte 0 - .byte 165 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 1 - .byte 15 - .byte 165 - .byte 1 - .byte 251 - .byte 0 - .byte 7 - .byte 6 - .byte 132 - .byte 1 - .byte 22 - .byte 165 - .byte 1 - .byte 131 - .byte 1 - .byte 130 - .byte 1 - .byte 7 - .byte 133 - .byte 1 - .byte 19 - .byte 165 - .byte 1 - .byte 128 - .byte 1 - .byte 132 - .byte 1 - .byte 36 - .byte 140 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 141 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 238 - .byte 7 - .byte 142 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 140 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 142 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 143 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 1 - .byte 15 - .byte 175 - .byte 1 - .byte 239 - .byte 7 - .byte 7 - .byte 6 - .byte 145 - .byte 1 - .byte 22 - .byte 175 - .byte 1 - .byte 144 - .byte 1 - .byte 143 - .byte 1 - .byte 7 - .byte 146 - .byte 1 - .byte 19 - .byte 175 - .byte 1 - .byte 141 - .byte 1 - .byte 145 - .byte 1 - .byte 36 - .byte 147 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 146 - .byte 1 - .byte 147 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 152 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 153 - .byte 1 - .byte 22 - .byte 181 - .byte 1 - .byte 242 - .byte 7 - .byte 152 - .byte 1 - .byte 6 - .byte 159 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 160 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 241 - .byte 7 - .byte 161 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 159 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 161 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 162 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 163 - .byte 1 - .byte 15 - .byte 181 - .byte 1 - .byte 153 - .byte 1 - .byte 7 - .byte 6 - .byte 164 - .byte 1 - .byte 22 - .byte 181 - .byte 1 - .byte 163 - .byte 1 - .byte 162 - .byte 1 - .byte 7 - .byte 165 - .byte 1 - .byte 19 - .byte 181 - .byte 1 - .byte 160 - .byte 1 - .byte 164 - .byte 1 - .byte 36 - .byte 166 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 167 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 168 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 165 - .byte 1 - .byte 166 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 167 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 171 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 172 - .byte 1 - .byte 22 - .byte 190 - .byte 1 - .byte 245 - .byte 7 - .byte 171 - .byte 1 - .byte 6 - .byte 173 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 174 - .byte 1 - .byte 19 - .byte 190 - .byte 1 - .byte 172 - .byte 1 - .byte 173 - .byte 1 - .byte 6 - .byte 178 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 179 - .byte 1 - .byte 8 - .byte 190 - .byte 1 - .byte 244 - .byte 7 - .byte 180 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 180 - .byte 1 - .byte 1 - .byte 190 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 181 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 182 - .byte 1 - .byte 15 - .byte 190 - .byte 1 - .byte 174 - .byte 1 - .byte 7 - .byte 6 - .byte 183 - .byte 1 - .byte 22 - .byte 190 - .byte 1 - .byte 182 - .byte 1 - .byte 181 - .byte 1 - .byte 7 - .byte 184 - .byte 1 - .byte 19 - .byte 190 - .byte 1 - .byte 179 - .byte 1 - .byte 183 - .byte 1 - .byte 36 - .byte 185 - .byte 1 - .byte 1 - .byte 190 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 186 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 187 - .byte 1 - .byte 8 - .byte 190 - .byte 1 - .byte 184 - .byte 1 - .byte 185 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 186 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 190 - .byte 1 - .byte 0 - .byte 199 - .byte 1 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 191 - .byte 1 - .byte 22 - .byte 199 - .byte 1 - .byte 248 - .byte 7 - .byte 190 - .byte 1 - .byte 6 - .byte 192 - .byte 1 - .byte 0 - .byte 199 - .byte 1 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 193 - .byte 1 - .byte 19 - .byte 199 - .byte 1 - .byte 191 - .byte 1 - .byte 192 - .byte 1 - .byte 6 - .byte 197 - .byte 1 - .byte 0 - .byte 199 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 1 - .byte 8 - .byte 199 - .byte 1 - .byte 247 - .byte 7 - .byte 199 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 197 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 199 - .byte 1 - .byte 1 - .byte 199 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 200 - .byte 1 - .byte 0 - .byte 199 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 201 - .byte 1 - .byte 15 - .byte 199 - .byte 1 - .byte 193 - .byte 1 - .byte 7 - .byte 6 - .byte 202 - .byte 1 - .byte 22 - .byte 199 - .byte 1 - .byte 201 - .byte 1 - .byte 200 - .byte 1 - .byte 7 - .byte 203 - .byte 1 - .byte 19 - .byte 199 - .byte 1 - .byte 198 - .byte 1 - .byte 202 - .byte 1 - .byte 36 - .byte 204 - .byte 1 - .byte 1 - .byte 199 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 205 - .byte 1 - .byte 0 - .byte 199 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 206 - .byte 1 - .byte 8 - .byte 199 - .byte 1 - .byte 203 - .byte 1 - .byte 204 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 205 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 208 - .byte 1 - .byte 0 - .byte 206 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 210 - .byte 1 - .byte 0 - .byte 210 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 212 - .byte 1 - .byte 0 - .byte 214 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 1 - .byte 0 - .byte 220 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 216 - .byte 1 - .byte 0 - .byte 232 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 220 - .byte 1 - .byte 0 - .byte 129 - .byte 2 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 221 - .byte 1 - .byte 15 - .byte 129 - .byte 2 - .byte 129 - .byte 8 - .byte 7 - .byte 6 - .byte 222 - .byte 1 - .byte 22 - .byte 129 - .byte 2 - .byte 221 - .byte 1 - .byte 220 - .byte 1 - .byte 7 - .byte 223 - .byte 1 - .byte 19 - .byte 129 - .byte 2 - .byte 128 - .byte 8 - .byte 222 - .byte 1 - .byte 36 - .byte 224 - .byte 1 - .byte 1 - .byte 129 - .byte 2 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 1 - .byte 0 - .byte 129 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 226 - .byte 1 - .byte 8 - .byte 129 - .byte 2 - .byte 223 - .byte 1 - .byte 224 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 230 - .byte 1 - .byte 0 - .byte 137 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 231 - .byte 1 - .byte 22 - .byte 137 - .byte 2 - .byte 133 - .byte 8 - .byte 230 - .byte 1 - .byte 6 - .byte 237 - .byte 1 - .byte 0 - .byte 137 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 1 - .byte 8 - .byte 137 - .byte 2 - .byte 132 - .byte 8 - .byte 239 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 239 - .byte 1 - .byte 1 - .byte 137 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 240 - .byte 1 - .byte 0 - .byte 137 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 241 - .byte 1 - .byte 15 - .byte 137 - .byte 2 - .byte 231 - .byte 1 - .byte 7 - .byte 6 - .byte 242 - .byte 1 - .byte 22 - .byte 137 - .byte 2 - .byte 241 - .byte 1 - .byte 240 - .byte 1 - .byte 7 - .byte 243 - .byte 1 - .byte 19 - .byte 137 - .byte 2 - .byte 238 - .byte 1 - .byte 242 - .byte 1 - .byte 36 - .byte 244 - .byte 1 - .byte 1 - .byte 137 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 245 - .byte 1 - .byte 0 - .byte 137 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 246 - .byte 1 - .byte 8 - .byte 137 - .byte 2 - .byte 243 - .byte 1 - .byte 244 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 245 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 247 - .byte 1 - .byte 20 - .byte 137 - .byte 2 - .byte 131 - .byte 8 - .byte 246 - .byte 1 - .byte 12 - .byte 251 - .byte 1 - .byte 0 - .byte 148 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 252 - .byte 1 - .byte 22 - .byte 148 - .byte 2 - .byte 137 - .byte 8 - .byte 251 - .byte 1 - .byte 6 - .byte 253 - .byte 1 - .byte 0 - .byte 148 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 254 - .byte 1 - .byte 19 - .byte 148 - .byte 2 - .byte 252 - .byte 1 - .byte 253 - .byte 1 - .byte 6 - .byte 130 - .byte 2 - .byte 0 - .byte 148 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 2 - .byte 8 - .byte 148 - .byte 2 - .byte 136 - .byte 8 - .byte 132 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 132 - .byte 2 - .byte 1 - .byte 148 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 133 - .byte 2 - .byte 0 - .byte 148 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 134 - .byte 2 - .byte 15 - .byte 148 - .byte 2 - .byte 254 - .byte 1 - .byte 7 - .byte 6 - .byte 135 - .byte 2 - .byte 22 - .byte 148 - .byte 2 - .byte 134 - .byte 2 - .byte 133 - .byte 2 - .byte 7 - .byte 136 - .byte 2 - .byte 19 - .byte 148 - .byte 2 - .byte 131 - .byte 2 - .byte 135 - .byte 2 - .byte 36 - .byte 137 - .byte 2 - .byte 1 - .byte 148 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 138 - .byte 2 - .byte 0 - .byte 148 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 139 - .byte 2 - .byte 8 - .byte 148 - .byte 2 - .byte 136 - .byte 2 - .byte 137 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 138 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 140 - .byte 2 - .byte 20 - .byte 148 - .byte 2 - .byte 135 - .byte 8 - .byte 139 - .byte 2 - .byte 12 - .byte 144 - .byte 2 - .byte 0 - .byte 159 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 145 - .byte 2 - .byte 22 - .byte 159 - .byte 2 - .byte 141 - .byte 8 - .byte 144 - .byte 2 - .byte 6 - .byte 146 - .byte 2 - .byte 0 - .byte 159 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 147 - .byte 2 - .byte 19 - .byte 159 - .byte 2 - .byte 145 - .byte 2 - .byte 146 - .byte 2 - .byte 6 - .byte 151 - .byte 2 - .byte 0 - .byte 159 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 152 - .byte 2 - .byte 8 - .byte 159 - .byte 2 - .byte 140 - .byte 8 - .byte 153 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 151 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 153 - .byte 2 - .byte 1 - .byte 159 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 154 - .byte 2 - .byte 0 - .byte 159 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 155 - .byte 2 - .byte 15 - .byte 159 - .byte 2 - .byte 147 - .byte 2 - .byte 7 - .byte 6 - .byte 156 - .byte 2 - .byte 22 - .byte 159 - .byte 2 - .byte 155 - .byte 2 - .byte 154 - .byte 2 - .byte 7 - .byte 157 - .byte 2 - .byte 19 - .byte 159 - .byte 2 - .byte 152 - .byte 2 - .byte 156 - .byte 2 - .byte 36 - .byte 158 - .byte 2 - .byte 1 - .byte 159 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 159 - .byte 2 - .byte 0 - .byte 159 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 160 - .byte 2 - .byte 8 - .byte 159 - .byte 2 - .byte 157 - .byte 2 - .byte 158 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 159 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 161 - .byte 2 - .byte 20 - .byte 159 - .byte 2 - .byte 139 - .byte 8 - .byte 160 - .byte 2 - .byte 12 - .byte 165 - .byte 2 - .byte 21 - .byte 170 - .byte 2 - .byte 143 - .byte 8 - .byte 144 - .byte 8 - .byte 12 - .byte 168 - .byte 2 - .byte 21 - .byte 174 - .byte 2 - .byte 145 - .byte 8 - .byte 146 - .byte 8 - .byte 12 - .byte 169 - .byte 2 - .byte 19 - .byte 174 - .byte 2 - .byte 165 - .byte 2 - .byte 168 - .byte 2 - .byte 12 - .byte 172 - .byte 2 - .byte 21 - .byte 178 - .byte 2 - .byte 147 - .byte 8 - .byte 148 - .byte 8 - .byte 12 - .byte 173 - .byte 2 - .byte 19 - .byte 178 - .byte 2 - .byte 169 - .byte 2 - .byte 172 - .byte 2 - .byte 12 - .byte 175 - .byte 2 - .byte 0 - .byte 197 - .byte 2 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 177 - .byte 2 - .byte 37 - .byte 199 - .byte 2 - .byte 175 - .byte 2 - .byte 152 - .byte 8 - .byte 12 - .byte 1 - .byte 5 - .byte 10 - .byte 109 - .byte 97 - .byte 120 - .byte 45 - .byte 101 - .byte 114 - .byte 114 - .byte 111 - .byte 114 - .byte 0 - .byte 4 - .byte 52 - .byte 46 - .byte 48 - .byte 0 - .byte 17 - .byte 100 - .byte 111 - .byte 109 - .byte 97 - .byte 105 - .byte 110 - .byte 45 - .byte 101 - .byte 120 - .byte 99 - .byte 108 - .byte 117 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 0 - .byte 3 - .byte 49 - .byte 53 - .byte 0 - .byte 18 - .byte 118 - .byte 97 - .byte 108 - .byte 105 - .byte 100 - .byte 45 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 117 - .byte 115 - .byte 45 - .byte 98 - .byte 105 - .byte 116 - .byte 115 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 5 - .byte 102 - .byte 117 - .byte 115 - .byte 97 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 8 - .byte 122 - .byte 109 - .byte 109 - .byte 45 - .byte 108 - .byte 111 - .byte 119 - .byte 0 - .byte 5 - .byte 116 - .byte 114 - .byte 117 - .byte 101 - .byte 0 - .byte 181 - .byte 2 - .byte 21 - .byte 207 - .byte 2 - .byte 154 - .byte 8 - .byte 155 - .byte 8 - .byte 12 - .byte 183 - .byte 2 - .byte 21 - .byte 209 - .byte 2 - .byte 181 - .byte 2 - .byte 156 - .byte 8 - .byte 12 - .byte 185 - .byte 2 - .byte 21 - .byte 211 - .byte 2 - .byte 183 - .byte 2 - .byte 157 - .byte 8 - .byte 12 - .byte 187 - .byte 2 - .byte 0 - .byte 217 - .byte 2 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 189 - .byte 2 - .byte 21 - .byte 219 - .byte 2 - .byte 187 - .byte 2 - .byte 159 - .byte 8 - .byte 12 - .byte 191 - .byte 2 - .byte 0 - .byte 223 - .byte 2 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 192 - .byte 2 - .byte 20 - .byte 223 - .byte 2 - .byte 160 - .byte 8 - .byte 191 - .byte 2 - .byte 12 - .byte 193 - .byte 2 - .byte 21 - .byte 223 - .byte 2 - .byte 189 - .byte 2 - .byte 192 - .byte 2 - .byte 12 - .byte 195 - .byte 2 - .byte 21 - .byte 225 - .byte 2 - .byte 193 - .byte 2 - .byte 161 - .byte 8 - .byte 12 - .byte 197 - .byte 2 - .byte 21 - .byte 227 - .byte 2 - .byte 195 - .byte 2 - .byte 162 - .byte 8 - .byte 12 - .byte 200 - .byte 2 - .byte 21 - .byte 233 - .byte 2 - .byte 165 - .byte 8 - .byte 166 - .byte 8 - .byte 12 - .byte 203 - .byte 2 - .byte 19 - .byte 235 - .byte 2 - .byte 164 - .byte 8 - .byte 200 - .byte 2 - .byte 12 - .byte 206 - .byte 2 - .byte 21 - .byte 241 - .byte 2 - .byte 169 - .byte 8 - .byte 170 - .byte 8 - .byte 12 - .byte 209 - .byte 2 - .byte 19 - .byte 243 - .byte 2 - .byte 168 - .byte 8 - .byte 206 - .byte 2 - .byte 12 - .byte 212 - .byte 2 - .byte 21 - .byte 249 - .byte 2 - .byte 173 - .byte 8 - .byte 174 - .byte 8 - .byte 12 - .byte 215 - .byte 2 - .byte 19 - .byte 251 - .byte 2 - .byte 172 - .byte 8 - .byte 212 - .byte 2 - .byte 12 - .byte 218 - .byte 2 - .byte 46 - .byte 131 - .byte 3 - .byte 149 - .byte 8 - .byte 150 - .byte 8 - .byte 6 - .byte 4 - .byte 12 - .byte 220 - .byte 2 - .byte 0 - .byte 138 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 222 - .byte 2 - .byte 19 - .byte 138 - .byte 3 - .byte 176 - .byte 8 - .byte 220 - .byte 2 - .byte 6 - .byte 225 - .byte 2 - .byte 46 - .byte 145 - .byte 3 - .byte 179 - .byte 7 - .byte 254 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 227 - .byte 2 - .byte 0 - .byte 152 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 229 - .byte 2 - .byte 19 - .byte 152 - .byte 3 - .byte 180 - .byte 8 - .byte 227 - .byte 2 - .byte 6 - .byte 236 - .byte 2 - .byte 0 - .byte 170 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 237 - .byte 2 - .byte 15 - .byte 170 - .byte 3 - .byte 189 - .byte 8 - .byte 7 - .byte 6 - .byte 238 - .byte 2 - .byte 22 - .byte 170 - .byte 3 - .byte 237 - .byte 2 - .byte 236 - .byte 2 - .byte 7 - .byte 239 - .byte 2 - .byte 19 - .byte 170 - .byte 3 - .byte 188 - .byte 8 - .byte 238 - .byte 2 - .byte 36 - .byte 240 - .byte 2 - .byte 1 - .byte 170 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 2 - .byte 0 - .byte 170 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 242 - .byte 2 - .byte 8 - .byte 170 - .byte 3 - .byte 239 - .byte 2 - .byte 240 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 243 - .byte 2 - .byte 8 - .byte 170 - .byte 3 - .byte 244 - .byte 2 - .byte 250 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 244 - .byte 2 - .byte 19 - .byte 170 - .byte 3 - .byte 190 - .byte 8 - .byte 246 - .byte 2 - .byte 36 - .byte 246 - .byte 2 - .byte 22 - .byte 170 - .byte 3 - .byte 247 - .byte 2 - .byte 249 - .byte 2 - .byte 7 - .byte 247 - .byte 2 - .byte 15 - .byte 170 - .byte 3 - .byte 191 - .byte 8 - .byte 7 - .byte 6 - .byte 249 - .byte 2 - .byte 0 - .byte 170 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 250 - .byte 2 - .byte 1 - .byte 170 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 2 - .byte 0 - .byte 170 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 252 - .byte 2 - .byte 19 - .byte 170 - .byte 3 - .byte 243 - .byte 2 - .byte 192 - .byte 8 - .byte 12 - .byte 128 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 129 - .byte 3 - .byte 15 - .byte 178 - .byte 3 - .byte 194 - .byte 8 - .byte 7 - .byte 6 - .byte 130 - .byte 3 - .byte 22 - .byte 178 - .byte 3 - .byte 129 - .byte 3 - .byte 128 - .byte 3 - .byte 7 - .byte 131 - .byte 3 - .byte 19 - .byte 178 - .byte 3 - .byte 193 - .byte 8 - .byte 130 - .byte 3 - .byte 36 - .byte 132 - .byte 3 - .byte 1 - .byte 178 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 133 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 134 - .byte 3 - .byte 8 - .byte 178 - .byte 3 - .byte 131 - .byte 3 - .byte 132 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 133 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 135 - .byte 3 - .byte 8 - .byte 178 - .byte 3 - .byte 136 - .byte 3 - .byte 142 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 143 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 136 - .byte 3 - .byte 19 - .byte 178 - .byte 3 - .byte 195 - .byte 8 - .byte 138 - .byte 3 - .byte 36 - .byte 138 - .byte 3 - .byte 22 - .byte 178 - .byte 3 - .byte 139 - .byte 3 - .byte 141 - .byte 3 - .byte 7 - .byte 139 - .byte 3 - .byte 15 - .byte 178 - .byte 3 - .byte 196 - .byte 8 - .byte 7 - .byte 6 - .byte 141 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 142 - .byte 3 - .byte 1 - .byte 178 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 143 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 3 - .byte 19 - .byte 178 - .byte 3 - .byte 135 - .byte 3 - .byte 197 - .byte 8 - .byte 12 - .byte 148 - .byte 3 - .byte 0 - .byte 186 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 3 - .byte 15 - .byte 186 - .byte 3 - .byte 199 - .byte 8 - .byte 7 - .byte 6 - .byte 150 - .byte 3 - .byte 22 - .byte 186 - .byte 3 - .byte 149 - .byte 3 - .byte 148 - .byte 3 - .byte 7 - .byte 151 - .byte 3 - .byte 19 - .byte 186 - .byte 3 - .byte 198 - .byte 8 - .byte 150 - .byte 3 - .byte 36 - .byte 152 - .byte 3 - .byte 1 - .byte 186 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 153 - .byte 3 - .byte 0 - .byte 186 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 154 - .byte 3 - .byte 8 - .byte 186 - .byte 3 - .byte 151 - .byte 3 - .byte 152 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 153 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 155 - .byte 3 - .byte 8 - .byte 186 - .byte 3 - .byte 156 - .byte 3 - .byte 162 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 156 - .byte 3 - .byte 19 - .byte 186 - .byte 3 - .byte 200 - .byte 8 - .byte 158 - .byte 3 - .byte 36 - .byte 158 - .byte 3 - .byte 22 - .byte 186 - .byte 3 - .byte 159 - .byte 3 - .byte 161 - .byte 3 - .byte 7 - .byte 159 - .byte 3 - .byte 15 - .byte 186 - .byte 3 - .byte 201 - .byte 8 - .byte 7 - .byte 6 - .byte 161 - .byte 3 - .byte 0 - .byte 186 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 162 - .byte 3 - .byte 1 - .byte 186 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 3 - .byte 0 - .byte 186 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 3 - .byte 19 - .byte 186 - .byte 3 - .byte 155 - .byte 3 - .byte 202 - .byte 8 - .byte 12 - .byte 166 - .byte 3 - .byte 0 - .byte 190 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 168 - .byte 3 - .byte 19 - .byte 190 - .byte 3 - .byte 204 - .byte 8 - .byte 166 - .byte 3 - .byte 6 - .byte 171 - .byte 3 - .byte 46 - .byte 197 - .byte 3 - .byte 178 - .byte 7 - .byte 232 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 172 - .byte 3 - .byte 0 - .byte 204 - .byte 3 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 173 - .byte 3 - .byte 1 - .byte 204 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 174 - .byte 3 - .byte 11 - .byte 204 - .byte 3 - .byte 0 - .byte 172 - .byte 3 - .byte 0 - .byte 173 - .byte 3 - .byte 80 - .byte 175 - .byte 3 - .byte 46 - .byte 254 - .byte 0 - .byte 229 - .byte 7 - .byte 230 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 178 - .byte 3 - .byte 46 - .byte 197 - .byte 3 - .byte 205 - .byte 8 - .byte 206 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 181 - .byte 3 - .byte 46 - .byte 159 - .byte 3 - .byte 183 - .byte 3 - .byte 181 - .byte 8 - .byte 6 - .byte 2 - .byte 6 - .byte 183 - .byte 3 - .byte 0 - .byte 159 - .byte 3 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 184 - .byte 3 - .byte 46 - .byte 145 - .byte 3 - .byte 177 - .byte 8 - .byte 178 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 177 - .byte 7 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 178 - .byte 7 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 179 - .byte 7 - .byte 0 - .byte 232 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 204 - .byte 7 - .byte 1 - .byte 38 - .byte 4 - .byte 205 - .byte 7 - .byte 1 - .byte 38 - .byte 2 - .byte 206 - .byte 7 - .byte 1 - .byte 48 - .byte 6 - .byte 207 - .byte 7 - .byte 1 - .byte 46 - .byte 1 - .byte 208 - .byte 7 - .byte 1 - .byte 48 - .byte 1 - .byte 209 - .byte 7 - .byte 1 - .byte 54 - .byte 7 - .byte 210 - .byte 7 - .byte 1 - .byte 54 - .byte 1 - .byte 211 - .byte 7 - .byte 1 - .byte 60 - .byte 8 - .byte 212 - .byte 7 - .byte 1 - .byte 60 - .byte 1 - .byte 213 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 9 - .byte 214 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 2 - .byte 215 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 10 - .byte 216 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 2 - .byte 217 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 11 - .byte 218 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 2 - .byte 219 - .byte 7 - .byte 1 - .byte 214 - .byte 0 - .byte 14 - .byte 220 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 221 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 9 - .byte 222 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 14 - .byte 223 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 10 - .byte 224 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 14 - .byte 225 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 11 - .byte 226 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 14 - .byte 227 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 228 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 229 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 14 - .byte 230 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 231 - .byte 7 - .byte 1 - .byte 136 - .byte 1 - .byte 15 - .byte 232 - .byte 7 - .byte 1 - .byte 197 - .byte 3 - .byte 4 - .byte 233 - .byte 7 - .byte 1 - .byte 167 - .byte 1 - .byte 5 - .byte 234 - .byte 7 - .byte 1 - .byte 165 - .byte 1 - .byte 3 - .byte 235 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 15 - .byte 236 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 3 - .byte 237 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 16 - .byte 238 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 3 - .byte 239 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 15 - .byte 240 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 17 - .byte 241 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 2 - .byte 242 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 15 - .byte 243 - .byte 7 - .byte 1 - .byte 190 - .byte 1 - .byte 18 - .byte 244 - .byte 7 - .byte 1 - .byte 190 - .byte 1 - .byte 2 - .byte 245 - .byte 7 - .byte 1 - .byte 190 - .byte 1 - .byte 15 - .byte 246 - .byte 7 - .byte 1 - .byte 199 - .byte 1 - .byte 19 - .byte 247 - .byte 7 - .byte 1 - .byte 199 - .byte 1 - .byte 2 - .byte 248 - .byte 7 - .byte 1 - .byte 199 - .byte 1 - .byte 15 - .byte 249 - .byte 7 - .byte 1 - .byte 206 - .byte 1 - .byte 20 - .byte 250 - .byte 7 - .byte 1 - .byte 210 - .byte 1 - .byte 21 - .byte 251 - .byte 7 - .byte 1 - .byte 214 - .byte 1 - .byte 22 - .byte 252 - .byte 7 - .byte 1 - .byte 220 - .byte 1 - .byte 23 - .byte 253 - .byte 7 - .byte 1 - .byte 232 - .byte 1 - .byte 24 - .byte 254 - .byte 7 - .byte 1 - .byte 145 - .byte 3 - .byte 16 - .byte 255 - .byte 7 - .byte 1 - .byte 129 - .byte 2 - .byte 25 - .byte 128 - .byte 8 - .byte 1 - .byte 129 - .byte 2 - .byte 5 - .byte 129 - .byte 8 - .byte 1 - .byte 129 - .byte 2 - .byte 24 - .byte 130 - .byte 8 - .byte 1 - .byte 137 - .byte 2 - .byte 26 - .byte 131 - .byte 8 - .byte 1 - .byte 137 - .byte 2 - .byte 17 - .byte 132 - .byte 8 - .byte 1 - .byte 137 - .byte 2 - .byte 2 - .byte 133 - .byte 8 - .byte 1 - .byte 137 - .byte 2 - .byte 25 - .byte 134 - .byte 8 - .byte 1 - .byte 148 - .byte 2 - .byte 27 - .byte 135 - .byte 8 - .byte 1 - .byte 148 - .byte 2 - .byte 18 - .byte 136 - .byte 8 - .byte 1 - .byte 148 - .byte 2 - .byte 2 - .byte 137 - .byte 8 - .byte 1 - .byte 148 - .byte 2 - .byte 25 - .byte 138 - .byte 8 - .byte 1 - .byte 159 - .byte 2 - .byte 28 - .byte 139 - .byte 8 - .byte 1 - .byte 159 - .byte 2 - .byte 19 - .byte 140 - .byte 8 - .byte 1 - .byte 159 - .byte 2 - .byte 2 - .byte 141 - .byte 8 - .byte 1 - .byte 159 - .byte 2 - .byte 25 - .byte 142 - .byte 8 - .byte 1 - .byte 178 - .byte 2 - .byte 29 - .byte 143 - .byte 8 - .byte 1 - .byte 170 - .byte 2 - .byte 26 - .byte 144 - .byte 8 - .byte 1 - .byte 170 - .byte 2 - .byte 26 - .byte 145 - .byte 8 - .byte 1 - .byte 174 - .byte 2 - .byte 27 - .byte 146 - .byte 8 - .byte 1 - .byte 174 - .byte 2 - .byte 27 - .byte 147 - .byte 8 - .byte 1 - .byte 178 - .byte 2 - .byte 28 - .byte 148 - .byte 8 - .byte 1 - .byte 178 - .byte 2 - .byte 28 - .byte 149 - .byte 8 - .byte 1 - .byte 131 - .byte 3 - .byte 29 - .byte 150 - .byte 8 - .byte 1 - .byte 131 - .byte 3 - .byte 6 - .byte 151 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 30 - .byte 152 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 29 - .byte 153 - .byte 8 - .byte 1 - .byte 211 - .byte 2 - .byte 31 - .byte 154 - .byte 8 - .byte 1 - .byte 207 - .byte 2 - .byte 30 - .byte 155 - .byte 8 - .byte 1 - .byte 207 - .byte 2 - .byte 30 - .byte 156 - .byte 8 - .byte 1 - .byte 209 - .byte 2 - .byte 30 - .byte 157 - .byte 8 - .byte 1 - .byte 211 - .byte 2 - .byte 7 - .byte 158 - .byte 8 - .byte 1 - .byte 227 - .byte 2 - .byte 32 - .byte 159 - .byte 8 - .byte 1 - .byte 219 - .byte 2 - .byte 31 - .byte 160 - .byte 8 - .byte 1 - .byte 223 - .byte 2 - .byte 31 - .byte 161 - .byte 8 - .byte 1 - .byte 225 - .byte 2 - .byte 30 - .byte 162 - .byte 8 - .byte 1 - .byte 227 - .byte 2 - .byte 8 - .byte 163 - .byte 8 - .byte 1 - .byte 235 - .byte 2 - .byte 20 - .byte 164 - .byte 8 - .byte 1 - .byte 235 - .byte 2 - .byte 20 - .byte 165 - .byte 8 - .byte 1 - .byte 233 - .byte 2 - .byte 26 - .byte 166 - .byte 8 - .byte 1 - .byte 233 - .byte 2 - .byte 32 - .byte 167 - .byte 8 - .byte 1 - .byte 243 - .byte 2 - .byte 21 - .byte 168 - .byte 8 - .byte 1 - .byte 243 - .byte 2 - .byte 21 - .byte 169 - .byte 8 - .byte 1 - .byte 241 - .byte 2 - .byte 27 - .byte 170 - .byte 8 - .byte 1 - .byte 241 - .byte 2 - .byte 32 - .byte 171 - .byte 8 - .byte 1 - .byte 251 - .byte 2 - .byte 22 - .byte 172 - .byte 8 - .byte 1 - .byte 251 - .byte 2 - .byte 22 - .byte 173 - .byte 8 - .byte 1 - .byte 249 - .byte 2 - .byte 28 - .byte 174 - .byte 8 - .byte 1 - .byte 249 - .byte 2 - .byte 32 - .byte 175 - .byte 8 - .byte 1 - .byte 138 - .byte 3 - .byte 24 - .byte 176 - .byte 8 - .byte 1 - .byte 138 - .byte 3 - .byte 24 - .byte 177 - .byte 8 - .byte 1 - .byte 145 - .byte 3 - .byte 24 - .byte 178 - .byte 8 - .byte 1 - .byte 145 - .byte 3 - .byte 16 - .byte 179 - .byte 8 - .byte 1 - .byte 152 - .byte 3 - .byte 23 - .byte 180 - .byte 8 - .byte 1 - .byte 152 - .byte 3 - .byte 23 - .byte 181 - .byte 8 - .byte 1 - .byte 159 - .byte 3 - .byte 23 - .byte 182 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 20 - .byte 183 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 20 - .byte 184 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 21 - .byte 185 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 21 - .byte 186 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 22 - .byte 187 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 22 - .byte 188 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 9 - .byte 189 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 15 - .byte 190 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 9 - .byte 191 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 15 - .byte 192 - .byte 8 - .byte 1 - .byte 170 - .byte 3 - .byte 20 - .byte 193 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 10 - .byte 194 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 195 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 10 - .byte 196 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 197 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 21 - .byte 198 - .byte 8 - .byte 1 - .byte 186 - .byte 3 - .byte 11 - .byte 199 - .byte 8 - .byte 1 - .byte 186 - .byte 3 - .byte 15 - .byte 200 - .byte 8 - .byte 1 - .byte 186 - .byte 3 - .byte 11 - .byte 201 - .byte 8 - .byte 1 - .byte 186 - .byte 3 - .byte 15 - .byte 202 - .byte 8 - .byte 1 - .byte 186 - .byte 3 - .byte 22 - .byte 203 - .byte 8 - .byte 1 - .byte 190 - .byte 3 - .byte 15 - .byte 204 - .byte 8 - .byte 1 - .byte 190 - .byte 3 - .byte 15 - .byte 205 - .byte 8 - .byte 1 - .byte 197 - .byte 3 - .byte 15 - .byte 206 - .byte 8 - .byte 1 - .byte 197 - .byte 3 - .byte 4 - .byte 1 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 4 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 2 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 5 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 3 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 6 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 4 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 7 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 5 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 11 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 8 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 6 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 9 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 7 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 10 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 8 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 11 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 11 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 14 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 12 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 50 - .byte 0 - .byte 15 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 13 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 13 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 16 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 14 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 17 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 15 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 18 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 16 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 19 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 17 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 20 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 18 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 21 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 19 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 22 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 20 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 0 - .byte 8 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 23 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 21 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 0 - .byte 10 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 24 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 22 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 25 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 23 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 26 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 24 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 27 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 25 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 28 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 26 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 29 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 27 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 30 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 28 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 31 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 29 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 9 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 32 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 13 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 2 - .byte 12 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 16 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 14 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 0 - .byte 1 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 5 - .byte 14 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 0 - .byte 2 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 18 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 53 - .byte 0 - .byte 3 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 14 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 54 - .byte 0 - .byte 4 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 15 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 55 - .byte 0 - .byte 5 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 10 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 56 - .byte 0 - .byte 6 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 10 - .byte 10 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 57 - .byte 0 - .byte 7 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 10 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 97 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 14 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 100 - .byte 0 - .byte 11 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 15 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 101 - .byte 0 - .byte 12 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 16 - .byte 18 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 102 - .byte 0 - .byte 13 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 13 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 48 - .byte 0 - .byte 14 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 18 - .byte 13 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 49 - .byte 0 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 19 - .byte 13 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 50 - .byte 0 - .byte 16 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 20 - .byte 12 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 51 - .byte 0 - .byte 17 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 21 - .byte 12 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 52 - .byte 0 - .byte 18 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 22 - .byte 12 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 53 - .byte 0 - .byte 19 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 23 - .byte 10 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 98 - .byte 0 - .byte 20 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 24 - .byte 10 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 99 - .byte 0 - .byte 21 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 25 - .byte 10 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 100 - .byte 0 - .byte 22 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 101 - .byte 0 - .byte 23 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 27 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 102 - .byte 0 - .byte 24 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 28 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 48 - .byte 0 - .byte 25 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 12 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 49 - .byte 0 - .byte 26 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 30 - .byte 12 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 50 - .byte 0 - .byte 27 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 31 - .byte 12 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 51 - .byte 0 - .byte 28 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 14 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 52 - .byte 0 - .byte 29 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 104 - .byte 23 - .byte 69 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 109 - .byte 54 - .byte 52 - .byte 116 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 114 - .byte 111 - .byte 117 - .byte 116 - .byte 105 - .byte 110 - .byte 101 - .byte 95 - .byte 112 - .byte 111 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 114 - .byte 95 - .byte 115 - .byte 105 - .byte 122 - .byte 101 - .byte 95 - .byte 54 - .byte 52 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 103 - .byte 110 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 95 - .byte 117 - .byte 115 - .byte 101 - .byte 100 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 103 - .byte 99 - .byte 99 - .byte 95 - .byte 118 - .byte 101 - .byte 114 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 61 - .byte 55 - .byte 53 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 99 - .byte 120 - .byte 120 - .byte 95 - .byte 108 - .byte 105 - .byte 109 - .byte 105 - .byte 116 - .byte 101 - .byte 100 - .byte 95 - .byte 114 - .byte 97 - .byte 110 - .byte 103 - .byte 101 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 95 - .byte 112 - .byte 97 - .byte 114 - .byte 109 - .byte 115 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 117 - .byte 97 - .byte 114 - .byte 99 - .byte 104 - .byte 95 - .byte 116 - .byte 117 - .byte 110 - .byte 105 - .byte 110 - .byte 103 - .byte 61 - .byte 48 - .byte 120 - .byte 48 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 98 - .byte 110 - .byte 108 - .byte 95 - .byte 109 - .byte 111 - .byte 118 - .byte 98 - .byte 101 - .byte 61 - .byte 84 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 101 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 115 - .byte 116 - .byte 114 - .byte 117 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 48 - .byte 120 - .byte 52 - .byte 48 - .byte 48 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 97 - .byte 100 - .byte 118 - .byte 97 - .byte 110 - .byte 99 - .byte 101 - .byte 100 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 109 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 115 - .byte 117 - .byte 98 - .byte 115 - .byte 95 - .byte 111 - .byte 117 - .byte 116 - .byte 95 - .byte 111 - .byte 102 - .byte 95 - .byte 98 - .byte 111 - .byte 117 - .byte 110 - .byte 100 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 98 - .byte 97 - .byte 115 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 61 - .byte 50 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 99 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 99 - .byte 104 - .byte 101 - .byte 99 - .byte 107 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 97 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 105 - .byte 108 - .byte 48 - .byte 95 - .byte 97 - .byte 114 - .byte 114 - .byte 97 - .byte 121 - .byte 95 - .byte 115 - .byte 101 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 102 - .byte 102 - .byte 108 - .byte 111 - .byte 97 - .byte 100 - .byte 95 - .byte 109 - .byte 111 - .byte 100 - .byte 101 - .byte 61 - .byte 49 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 114 - .byte 101 - .byte 115 - .byte 116 - .byte 114 - .byte 105 - .byte 99 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 102 - .byte 117 - .byte 110 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 112 - .byte 111 - .byte 95 - .byte 114 - .byte 116 - .byte 116 - .byte 95 - .byte 99 - .byte 111 - .byte 110 - .byte 116 - .byte 114 - .byte 111 - .byte 108 - .byte 61 - .byte 48 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 114 - .byte 103 - .byte 115 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 114 - .byte 101 - .byte 103 - .byte 115 - .byte 61 - .byte 48 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 110 - .byte 111 - .byte 110 - .byte 115 - .byte 116 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 110 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 108 - .byte 116 - .byte 111 - .byte 95 - .byte 111 - .byte 98 - .byte 106 - .byte 101 - .byte 99 - .byte 116 - .byte 95 - .byte 101 - .byte 110 - .byte 97 - .byte 98 - .byte 108 - .byte 101 - .byte 100 - .byte 32 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 115 - .byte 109 - .byte 95 - .byte 116 - .byte 97 - .byte 114 - .byte 103 - .byte 101 - .byte 116 - .byte 61 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 65 - .byte 83 - .byte 77 - .byte 95 - .byte 84 - .byte 65 - .byte 82 - .byte 71 - .byte 69 - .byte 84 - .byte 95 - .byte 71 - .byte 65 - .byte 83 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 100 - .byte 105 - .byte 97 - .byte 108 - .byte 101 - .byte 99 - .byte 116 - .byte 61 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 83 - .byte 79 - .byte 85 - .byte 82 - .byte 67 - .byte 69 - .byte 95 - .byte 68 - .byte 73 - .byte 65 - .byte 76 - .byte 69 - .byte 67 - .byte 84 - .byte 95 - .byte 67 - .byte 32 - .byte 80 - .byte 49 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 102 - .byte 117 - .byte 108 - .byte 108 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 102 - .byte 105 - .byte 108 - .byte 101 - .byte 95 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 61 - .byte 47 - .byte 104 - .byte 111 - .byte 109 - .byte 101 - .byte 47 - .byte 104 - .byte 112 - .byte 99 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 48 - .byte 50 - .byte 49 - .byte 104 - .byte 47 - .byte 77 - .byte 68 - .byte 45 - .byte 66 - .byte 101 - .byte 110 - .byte 99 - .byte 104 - .byte 47 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 1 - .byte 1 - .byte 160 - .byte 1 - .byte 192 - .byte 0 - .byte 253 - .byte 0 - .byte 127 - .byte 85 - .byte 114 - .byte 99 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 126 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 0 - .byte 123 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 0 - .byte 122 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 8 - .byte 121 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 1 - .byte 120 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 4 - .byte 119 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 3 - .byte 118 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 2 - .byte 117 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 248 - .byte 63 - .byte 116 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 164 - .byte 64 - .byte 115 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 240 - .byte 63 - .byte 114 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 232 - .byte 7 - .byte 127 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 126 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 125 - .byte 4 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 124 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 123 - .byte 4 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 122 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 121 - .byte 4 - .byte 0 - .byte 32 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 120 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 119 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 118 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 1 - .byte 1 - .byte 26 - .byte 3 - .byte 36 - .byte 8 - .byte 0 - .byte 145 - .byte 192 - .byte 129 - .byte 16 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 8 - .byte 1 - .byte 46 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 40 - .byte 80 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 65 - .byte 116 - .byte 111 - .byte 109 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 78 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 32 - .byte 42 - .byte 41 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 127 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 32 - .byte 126 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 136 - .byte 1 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 125 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 124 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 0 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 123 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 122 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 213 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 121 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 120 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 32 - .byte 119 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 118 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 117 - .byte 11 - .byte 78 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 100 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 116 - .byte 11 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 95 - .byte 86 - .byte 36 - .byte 101 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 115 - .byte 11 - .byte 78 - .byte 103 - .byte 104 - .byte 111 - .byte 115 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 102 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 8 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 114 - .byte 10 - .byte 78 - .byte 109 - .byte 97 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 12 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 113 - .byte 7 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 112 - .byte 7 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 50 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 111 - .byte 7 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 51 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 110 - .byte 8 - .byte 118 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 52 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 40 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 109 - .byte 8 - .byte 118 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 53 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 48 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 236 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 108 - .byte 8 - .byte 118 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 54 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 107 - .byte 8 - .byte 102 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 55 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 106 - .byte 8 - .byte 102 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 56 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 105 - .byte 8 - .byte 102 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 57 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 104 - .byte 13 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 103 - .byte 12 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 230 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 102 - .byte 10 - .byte 116 - .byte 101 - .byte 109 - .byte 112 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 101 - .byte 9 - .byte 114 - .byte 104 - .byte 111 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 100 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 228 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 100 - .byte 10 - .byte 109 - .byte 97 - .byte 115 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 101 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 99 - .byte 12 - .byte 110 - .byte 116 - .byte 105 - .byte 109 - .byte 101 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 102 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 40 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 226 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 98 - .byte 11 - .byte 110 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 44 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 97 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 49 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 48 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 96 - .byte 8 - .byte 100 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 50 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 95 - .byte 13 - .byte 100 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 51 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 94 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 52 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 93 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 53 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 220 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 92 - .byte 8 - .byte 110 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 54 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 216 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 219 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 91 - .byte 8 - .byte 110 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 55 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 220 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 218 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 90 - .byte 8 - .byte 110 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 56 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 224 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 89 - .byte 13 - .byte 108 - .byte 97 - .byte 116 - .byte 116 - .byte 105 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 57 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 232 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 88 - .byte 10 - .byte 120 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 240 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 215 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 87 - .byte 10 - .byte 121 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 248 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 214 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 86 - .byte 10 - .byte 122 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 128 - .byte 1 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 37 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 85 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 54 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 212 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 84 - .byte 12 - .byte 110 - .byte 99 - .byte 97 - .byte 108 - .byte 108 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 55 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 83 - .byte 15 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 56 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 82 - .byte 15 - .byte 109 - .byte 97 - .byte 120 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 57 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 16 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 81 - .byte 14 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 97 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 1 - .byte 0 - .byte 30 - .byte 8 - .byte 0 - .byte 9 - .byte 1 - .byte 0 - .byte 30 - .byte 71 - .byte 0 - .byte 38 - .byte 1 - .byte 0 - .byte 31 - .byte 18 - .byte 0 - .byte 46 - .byte 1 - .byte 0 - .byte 33 - .byte 27 - .byte 0 - .byte 48 - .byte 1 - .byte 0 - .byte 33 - .byte 45 - .byte 0 - .byte 54 - .byte 1 - .byte 0 - .byte 34 - .byte 23 - .byte 0 - .byte 60 - .byte 1 - .byte 0 - .byte 35 - .byte 24 - .byte 0 - .byte 194 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 20 - .byte 0 - .byte 200 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 45 - .byte 0 - .byte 206 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 70 - .byte 0 - .byte 214 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 15 - .byte 0 - .byte 223 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 17 - .byte 0 - .byte 227 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 9 - .byte 0 - .byte 231 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 17 - .byte 0 - .byte 235 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 9 - .byte 0 - .byte 239 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 17 - .byte 0 - .byte 243 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 9 - .byte 0 - .byte 247 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 32 - .byte 0 - .byte 254 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 24 - .byte 0 - .byte 128 - .byte 1 - .byte 1 - .byte 0 - .byte 39 - .byte 5 - .byte 0 - .byte 136 - .byte 1 - .byte 1 - .byte 0 - .byte 46 - .byte 15 - .byte 0 - .byte 163 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 43 - .byte 0 - .byte 165 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 19 - .byte 0 - .byte 167 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 9 - .byte 0 - .byte 175 - .byte 1 - .byte 1 - .byte 0 - .byte 48 - .byte 25 - .byte 0 - .byte 181 - .byte 1 - .byte 1 - .byte 0 - .byte 49 - .byte 25 - .byte 0 - .byte 190 - .byte 1 - .byte 1 - .byte 0 - .byte 50 - .byte 25 - .byte 0 - .byte 199 - .byte 1 - .byte 1 - .byte 0 - .byte 51 - .byte 25 - .byte 0 - .byte 206 - .byte 1 - .byte 1 - .byte 0 - .byte 52 - .byte 22 - .byte 0 - .byte 210 - .byte 1 - .byte 1 - .byte 0 - .byte 53 - .byte 22 - .byte 0 - .byte 214 - .byte 1 - .byte 1 - .byte 0 - .byte 54 - .byte 22 - .byte 0 - .byte 220 - .byte 1 - .byte 1 - .byte 0 - .byte 58 - .byte 19 - .byte 0 - .byte 232 - .byte 1 - .byte 1 - .byte 0 - .byte 59 - .byte 23 - .byte 0 - .byte 129 - .byte 2 - .byte 1 - .byte 0 - .byte 60 - .byte 25 - .byte 0 - .byte 137 - .byte 2 - .byte 1 - .byte 0 - .byte 61 - .byte 40 - .byte 0 - .byte 148 - .byte 2 - .byte 1 - .byte 0 - .byte 62 - .byte 40 - .byte 0 - .byte 159 - .byte 2 - .byte 1 - .byte 0 - .byte 63 - .byte 40 - .byte 0 - .byte 170 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 39 - .byte 0 - .byte 174 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 53 - .byte 0 - .byte 178 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 67 - .byte 0 - .byte 197 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 36 - .byte 0 - .byte 199 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 42 - .byte 0 - .byte 207 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 42 - .byte 0 - .byte 209 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 48 - .byte 0 - .byte 211 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 54 - .byte 0 - .byte 217 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 38 - .byte 0 - .byte 219 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 45 - .byte 0 - .byte 223 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 58 - .byte 0 - .byte 225 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 65 - .byte 0 - .byte 227 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 71 - .byte 0 - .byte 233 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 35 - .byte 0 - .byte 235 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 21 - .byte 0 - .byte 241 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 35 - .byte 0 - .byte 243 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 21 - .byte 0 - .byte 249 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 35 - .byte 0 - .byte 251 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 21 - .byte 0 - .byte 131 - .byte 3 - .byte 1 - .byte 0 - .byte 66 - .byte 26 - .byte 0 - .byte 133 - .byte 3 - .byte 1 - .byte 0 - .byte 66 - .byte 17 - .byte 0 - .byte 138 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 43 - .byte 0 - .byte 145 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 32 - .byte 0 - .byte 147 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 13 - .byte 0 - .byte 152 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 50 - .byte 0 - .byte 159 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 28 - .byte 0 - .byte 161 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 9 - .byte 0 - .byte 170 - .byte 3 - .byte 1 - .byte 0 - .byte 77 - .byte 9 - .byte 0 - .byte 178 - .byte 3 - .byte 1 - .byte 0 - .byte 78 - .byte 9 - .byte 0 - .byte 186 - .byte 3 - .byte 1 - .byte 0 - .byte 79 - .byte 9 - .byte 0 - .byte 190 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 32 - .byte 0 - .byte 197 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 24 - .byte 0 - .byte 199 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 5 - .byte 0 - .byte 204 - .byte 3 - .byte 1 - .byte 0 - .byte 82 - .byte 12 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 203 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 99 - .byte 99 - .byte 14 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 3 - .byte 1 - .byte 63 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 115 - .byte 115 - .byte 27 - .byte 47 - .byte 117 - .byte 115 - .byte 114 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 47 - .byte 115 - .byte 116 - .byte 100 - .byte 99 - .byte 45 - .byte 112 - .byte 114 - .byte 101 - .byte 100 - .byte 101 - .byte 102 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 3 - .byte 1 - .byte 4 - .byte 87 - .byte 128 - .byte 2 - .byte 0 - .byte 1 - .byte 23 - .byte 0 - .byte 115 - .byte 95 - .byte 31 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 108 - .byte 105 - .byte 107 - .byte 119 - .byte 105 - .byte 100 - .byte 45 - .byte 109 - .byte 97 - .byte 114 - .byte 107 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 4 - .byte 1 - .byte 5 - .byte 131 - .byte 2 - .byte 160 - .byte 2 - .byte 0 - .byte 1 - .byte 25 - .byte 0 - .byte 115 - .byte 95 - .byte 24 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 116 - .byte 105 - .byte 109 - .byte 105 - .byte 110 - .byte 103 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 5 - .byte 1 - .byte 8 - .byte 162 - .byte 2 - .byte 178 - .byte 3 - .byte 105 - .byte 1 - .byte 26 - .byte 0 - .byte 115 - .byte 95 - .byte 26 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 6 - .byte 6 - .byte 5 - .byte 0 - .byte 185 - .byte 2 - .byte 161 - .byte 3 - .byte 54 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 7 - .byte 7 - .byte 6 - .byte 0 - .byte 208 - .byte 2 - .byte 133 - .byte 3 - .byte 0 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 27 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 8 - .byte 1 - .byte 0 - .byte 181 - .byte 3 - .byte 231 - .byte 3 - .byte 0 - .byte 1 - .byte 28 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #30.71 - pushq %rbp #30.71 - .cfi_def_cfa_offset 16 - movq %rsp, %rbp #30.71 - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-32, %rsp #30.71 - pushq %r15 #30.71 - pushq %rbx #30.71 - subq $464, %rsp #30.71 - movq %rsi, %rcx #30.71 - vmovsd 72(%rdi), %xmm0 #33.27 - movq %rdx, %r8 #30.71 - vmovsd 8(%rdi), %xmm3 #34.23 - vmulsd %xmm0, %xmm0, %xmm4 #33.45 - movl 4(%rcx), %r9d #31.18 - vmovsd (%rdi), %xmm0 #35.24 - movq 64(%rcx), %rdi #36.20 - movq 72(%rcx), %rsi #36.45 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - movq 80(%rcx), %rbx #36.70 - testl %r9d, %r9d #39.24 - jle ..B1.38 # Prob 50% #39.24 - # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d xmm0 xmm3 xmm4 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - movl %r9d, %r10d #39.5 - xorl %edx, %edx #39.5 - movl $1, %r11d #39.5 - xorl %eax, %eax #39.5 - shrl $1, %r10d #39.5 - je ..B1.6 # Prob 9% #39.5 - # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 -..B1.3: # Preds ..B1.2 - # Execution count [9.00e-01] - xorl %r15d, %r15d #39.5 - # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r15 r9d xmm0 xmm3 xmm4 -..B1.4: # Preds ..B1.4 ..B1.3 - # Execution count [2.50e+00] - incq %rdx #39.5 - lea (%rax,%rdi), %r11 #40.9 - movq %r15, (%r11) #40.9 - movq %r15, (%rax,%rsi) #41.9 - movq %r15, (%rax,%rbx) #42.9 - movq %r15, 8(%r11) #40.9 - movq %r15, 8(%rax,%rsi) #41.9 - movq %r15, 8(%rax,%rbx) #42.9 - addq $16, %rax #39.5 - cmpq %r10, %rdx #39.5 - jb ..B1.4 # Prob 63% #39.5 - # LOE rax rdx rcx rbx rsi rdi r8 r10 r12 r13 r14 r15 r9d xmm0 xmm3 xmm4 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rdx,%rdx), %r11d #40.9 - # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r11), %eax #39.5 - cmpl %r9d, %eax #39.5 - jae ..B1.8 # Prob 9% #39.5 - # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d r11d xmm0 xmm3 xmm4 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r11d, %r11 #39.5 - xorl %eax, %eax #40.9 - movq %rax, -8(%rdi,%r11,8) #40.9 - movq %rax, -8(%rsi,%r11,8) #41.9 - movq %rax, -8(%rbx,%r11,8) #42.9 - # LOE rcx rbx rsi rdi r8 r12 r13 r14 r9d xmm0 xmm3 xmm4 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 - xorl %eax, %eax #46.15 - vbroadcastsd %xmm4, %ymm7 #33.45 - vbroadcastsd %xmm6, %ymm8 #69.45 - vbroadcastsd %xmm3, %ymm2 #34.23 - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 - vmovupd %ymm7, 96(%rsp) #46.5[spill] - vmovupd %ymm2, 352(%rsp) #46.5[spill] - vmovupd %ymm8, 320(%rsp) #46.5[spill] - movslq 16(%r8), %r11 #47.43 - xorl %edx, %edx #46.5 - movq 8(%r8), %r10 #47.19 - movq 24(%r8), %r15 #48.25 - xorl %r8d, %r8d #46.5 - movslq %r9d, %r9 #46.5 - shlq $2, %r11 #47.9 - movq 16(%rcx), %rcx #49.25 - movq %r11, 32(%rsp) #46.5[spill] - movq %r9, 40(%rsp) #46.5[spill] - movq %r15, 48(%rsp) #46.5[spill] - movq %r10, 56(%rsp) #46.5[spill] - movq %r12, (%rsp) #46.5[spill] - movq %r13, 8(%rsp) #46.5[spill] - movq %r14, 16(%rsp) #46.5[spill] - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xfe, 0xff, 0xff, 0x22 - # LOE rax rdx rcx rbx rsi rdi r8 xmm0 xmm3 xmm4 xmm6 -..B1.9: # Preds ..B1.35 ..B1.8 - # Execution count [5.00e+00] - imulq 32(%rsp), %rax #47.43[spill] - addq 56(%rsp), %rax #47.9[spill] - vxorpd %xmm9, %xmm9, %xmm9 #52.22 - movq 48(%rsp), %r9 #48.25[spill] - movq %rax, %r11 #59.13 - vmovsd 8(%r8,%rcx), %xmm10 #50.25 - andq $31, %r11 #59.13 - vmovsd (%r8,%rcx), %xmm1 #49.25 - movl %r11d, %r15d #59.13 - vmovsd 16(%r8,%rcx), %xmm7 #51.25 - negl %r15d #59.13 - vbroadcastsd %xmm10, %ymm5 #50.25 - movl %r11d, %r13d #59.13 - vbroadcastsd %xmm1, %ymm11 #49.25 - vmovapd %xmm9, %xmm8 #53.22 - vbroadcastsd %xmm7, %ymm15 #51.25 - vmovapd %xmm8, %xmm2 #54.22 - vmovupd %ymm5, 160(%rsp) #51.25[spill] - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 - vmovupd %ymm15, 192(%rsp) #51.25[spill] - vmovupd %ymm11, 128(%rsp) #51.25[spill] - movslq (%r9,%rdx,4), %r9 #48.25 - movl %r9d, %r12d #59.13 - vxorpd %ymm14, %ymm14, %ymm14 #52.22 - movl %r12d, %r14d #59.13 - vmovdqa %ymm14, %ymm13 #53.22 - andl $-4, %r14d #59.13 - vmovdqa %ymm13, %ymm12 #54.22 - addl $32, %r15d #59.13 - movslq %r14d, %r14 #59.13 - xorl %r10d, %r10d #58.9 - shrl $2, %r15d #59.13 - andl $3, %r13d #59.13 - vmovupd %ymm12, 288(%rsp) #51.25[spill] - vmovupd %ymm13, 256(%rsp) #51.25[spill] - vmovupd %ymm14, 224(%rsp) #51.25[spill] - movq %r8, 24(%rsp) #51.25[spill] - movq %rdx, 64(%rsp) #51.25[spill] - movq %rbx, 72(%rsp) #51.25[spill] - movq %rsi, 80(%rsp) #51.25[spill] - movq %rdi, 88(%rsp) #51.25[spill] - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.10: # Preds ..B1.34 ..B1.9 - # Execution count [5.00e+03] - testq %r9, %r9 #59.32 - jle ..B1.34 # Prob 50% #59.32 - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+03] - cmpq $4, %r9 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+03] - cmpq $600, %r9 #59.13 - jl ..B1.41 # Prob 10% #59.13 - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.13: # Preds ..B1.12 - # Execution count [4.50e+03] - movl %r11d, %ebx #59.13 - testl %r11d, %r11d #59.13 - je ..B1.16 # Prob 50% #59.13 - # LOE rax rcx r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.14: # Preds ..B1.13 - # Execution count [4.50e+03] - testl %r13d, %r13d #59.13 - jne ..B1.39 # Prob 10% #59.13 - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.15: # Preds ..B1.14 - # Execution count [2.25e+03] - movl %r15d, %ebx #59.13 - # LOE rax rcx r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.16: # Preds ..B1.15 ..B1.13 - # Execution count [4.50e+03] - movl %ebx, %r8d #59.13 - lea 4(%r8), %rdx #59.13 - cmpq %rdx, %r9 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rcx r8 r9 r14 ebx r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.17: # Preds ..B1.16 - # Execution count [5.00e+03] - movl %r12d, %edi #59.13 - xorl %edx, %edx #59.13 - subl %ebx, %edi #59.13 - andl $3, %edi #59.13 - negl %edi #59.13 - addl %r12d, %edi #59.13 - movslq %edi, %rdi #59.13 - testl %ebx, %ebx #59.13 - jbe ..B1.23 # Prob 10% #59.13 - # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.19: # Preds ..B1.17 ..B1.21 - # Execution count [2.50e+04] - movl (%rax,%rdx,4), %ebx #60.25 - lea (%rbx,%rbx,2), %esi #61.40 - movslq %esi, %rsi #61.40 - vsubsd 8(%rcx,%rsi,8), %xmm10, %xmm13 #62.40 - vsubsd (%rcx,%rsi,8), %xmm1, %xmm12 #61.40 - vsubsd 16(%rcx,%rsi,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.21 # Prob 50% #66.26 - # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.20: # Preds ..B1.19 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.21: # Preds ..B1.20 ..B1.19 - # Execution count [2.50e+04] - incq %rdx #59.13 - cmpq %r8, %rdx #59.13 - jb ..B1.19 # Prob 82% #59.13 - # LOE rax rdx rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.23: # Preds ..B1.21 ..B1.17 ..B1.41 - # Execution count [4.50e+03] - vmovsd %xmm9, 408(%rsp) #66.26[spill] - vmovsd %xmm10, 424(%rsp) #66.26[spill] - vmovsd %xmm1, 432(%rsp) #66.26[spill] - vmovsd %xmm6, 440(%rsp) #66.26[spill] - vmovsd %xmm3, 448(%rsp) #66.26[spill] - vmovsd %xmm4, 456(%rsp) #66.26[spill] - vmovsd %xmm2, 392(%rsp) #66.26[spill] - vmovsd %xmm8, 400(%rsp) #66.26[spill] - vmovsd %xmm7, 416(%rsp) #66.26[spill] - movq %r9, 384(%rsp) #66.26[spill] - vmovupd 192(%rsp), %ymm6 #66.26[spill] - vmovupd 160(%rsp), %ymm4 #66.26[spill] - vmovupd 128(%rsp), %ymm5 #66.26[spill] - vmovupd 288(%rsp), %ymm3 #66.26[spill] - vmovupd 256(%rsp), %ymm1 #66.26[spill] - vmovupd 224(%rsp), %ymm12 #66.26[spill] - vmovupd 96(%rsp), %ymm11 #66.26[spill] - vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #66.26 - vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #66.26 - # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.24: # Preds ..B1.26 ..B1.23 - # Execution count [2.50e+04] - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - vmovdqu (%rax,%r8,4), %xmm2 #60.25 - vmovd %xmm2, %rdx #60.25 - vpunpckhqdq %xmm2, %xmm2, %xmm8 #60.25 - vmovd %xmm8, %r9 #60.25 - movl %edx, %ebx #60.25 - shrq $32, %rdx #60.25 - lea (%rdx,%rdx,2), %esi #61.40 - lea (%rbx,%rbx,2), %ebx #61.40 - movslq %ebx, %rdx #61.40 - movslq %esi, %rbx #61.40 - movl %r9d, %esi #60.25 - shrq $32, %r9 #60.25 - vmovups (%rcx,%rdx,8), %xmm13 #61.40 - vmovups (%rcx,%rbx,8), %xmm0 #61.40 - vmovq 16(%rcx,%rdx,8), %xmm14 #61.40 - lea (%rsi,%rsi,2), %esi #61.40 - movslq %esi, %rsi #61.40 - lea (%r9,%r9,2), %r9d #61.40 - movslq %r9d, %r9 #61.40 - vmovhpd 16(%rcx,%rbx,8), %xmm14, %xmm15 #61.40 - vinsertf128 $1, (%rcx,%rsi,8), %ymm13, %ymm7 #61.40 - vmovq 16(%rcx,%rsi,8), %xmm2 #61.40 - vinsertf128 $1, (%rcx,%r9,8), %ymm0, %ymm0 #61.40 - vmovhpd 16(%rcx,%r9,8), %xmm2, %xmm8 #61.40 - vunpcklpd %ymm0, %ymm7, %ymm14 #61.40 - vunpckhpd %ymm0, %ymm7, %ymm7 #61.40 - vsubpd %ymm14, %ymm5, %ymm0 #61.40 - vinsertf128 $1, %xmm8, %ymm15, %ymm13 #61.40 - vsubpd %ymm7, %ymm4, %ymm8 #62.40 - vsubpd %ymm13, %ymm6, %ymm2 #63.40 - vmulpd %ymm8, %ymm8, %ymm14 #64.53 - vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 - vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 - vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 - vpcmpeqd %ymm13, %ymm13, %ymm13 #66.26 - vptest %ymm13, %ymm7 #66.26 - je ..B1.26 # Prob 50% #66.26 - # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 -..B1.25: # Preds ..B1.24 - # Execution count [1.25e+04] - vdivpd %ymm14, %ymm10, %ymm13 #67.42 - vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] - vmulpd %ymm14, %ymm13, %ymm14 #68.48 - vmulpd %ymm14, %ymm13, %ymm15 #68.54 - vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 - vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] - vmulpd %ymm13, %ymm15, %ymm15 #69.65 - vmulpd %ymm14, %ymm15, %ymm13 #69.71 - vmulpd %ymm13, %ymm0, %ymm0 #70.35 - vmulpd %ymm13, %ymm8, %ymm8 #71.35 - vandpd %ymm0, %ymm7, %ymm0 #70.35 - vaddpd %ymm0, %ymm12, %ymm12 #70.21 - vmulpd %ymm13, %ymm2, %ymm0 #72.35 - vandpd %ymm8, %ymm7, %ymm2 #71.35 - vandpd %ymm0, %ymm7, %ymm7 #72.35 - vaddpd %ymm2, %ymm1, %ymm1 #71.21 - vaddpd %ymm7, %ymm3, %ymm3 #72.21 - # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.26: # Preds ..B1.25 ..B1.24 - # Execution count [2.50e+04] - addq $4, %r8 #59.13 - cmpq %rdi, %r8 #59.13 - jb ..B1.24 # Prob 82% #59.13 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rcx rdi r8 r14 r10d r11d r12d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.27: # Preds ..B1.26 - # Execution count [4.50e+03] - vmovupd %ymm3, 288(%rsp) #[spill] - vmovupd %ymm1, 256(%rsp) #[spill] - vmovsd 392(%rsp), %xmm2 #[spill] - vmovsd 400(%rsp), %xmm8 #[spill] - vmovsd 408(%rsp), %xmm9 #[spill] - vmovsd 416(%rsp), %xmm7 #[spill] - vmovsd 424(%rsp), %xmm10 #[spill] - vmovsd 432(%rsp), %xmm1 #[spill] - vmovsd 440(%rsp), %xmm6 #[spill] - vmovsd 448(%rsp), %xmm3 #[spill] - vmovsd 456(%rsp), %xmm4 #[spill] - movq 384(%rsp), %r9 #[spill] - vmovupd %ymm12, 224(%rsp) #[spill] - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.28: # Preds ..B1.27 ..B1.39 - # Execution count [5.00e+03] - cmpq %r9, %rdi #59.13 - jae ..B1.34 # Prob 10% #59.13 - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.30: # Preds ..B1.28 ..B1.32 - # Execution count [2.50e+04] - movl (%rax,%rdi,4), %edx #60.25 - lea (%rdx,%rdx,2), %ebx #61.40 - movslq %ebx, %rbx #61.40 - vsubsd 8(%rcx,%rbx,8), %xmm10, %xmm13 #62.40 - vsubsd (%rcx,%rbx,8), %xmm1, %xmm12 #61.40 - vsubsd 16(%rcx,%rbx,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.32 # Prob 50% #66.26 - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.31: # Preds ..B1.30 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.32: # Preds ..B1.31 ..B1.30 - # Execution count [2.50e+04] - incq %rdi #59.13 - cmpq %r9, %rdi #59.13 - jb ..B1.30 # Prob 82% #59.13 - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 - # Execution count [5.00e+03] - .byte 15 #58.9 - .byte 31 #58.9 - .byte 64 #58.9 - .byte 0 #58.9 - incl %r10d #58.9 - cmpl $1000, %r10d #58.9 - jb ..B1.10 # Prob 99% #58.9 - # LOE rax rcx r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.35: # Preds ..B1.34 - # Execution count [5.00e+00] - vmovupd 288(%rsp), %ymm12 #[spill] - vmovupd 256(%rsp), %ymm13 #[spill] - vmovupd 224(%rsp), %ymm14 #[spill] - movq 64(%rsp), %rdx #[spill] - movq 88(%rsp), %rdi #[spill] - movq 80(%rsp), %rsi #[spill] - movq 72(%rsp), %rbx #[spill] - movslq %edx, %rax #46.32 - movq 24(%rsp), %r8 #[spill] - incq %rax #46.32 - addq $24, %r8 #46.5 - vextractf128 $1, %ymm12, %xmm1 #54.22 - vextractf128 $1, %ymm13, %xmm11 #53.22 - vaddpd %xmm1, %xmm12, %xmm5 #54.22 - vaddpd %xmm11, %xmm13, %xmm15 #53.22 - vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 - vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 - vaddsd %xmm7, %xmm5, %xmm10 #54.22 - vaddsd %xmm1, %xmm15, %xmm5 #53.22 - vaddsd %xmm2, %xmm10, %xmm2 #54.22 - vaddsd %xmm8, %xmm5, %xmm5 #53.22 - vextractf128 $1, %ymm14, %xmm8 #52.22 - vaddpd %xmm8, %xmm14, %xmm8 #52.22 - vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 - vaddsd %xmm14, %xmm8, %xmm1 #52.22 - vaddsd %xmm9, %xmm1, %xmm9 #52.22 - vaddsd (%rdi,%rdx,8), %xmm9, %xmm1 #77.9 - vmovsd %xmm1, (%rdi,%rdx,8) #77.9 - vaddsd (%rsi,%rdx,8), %xmm5, %xmm7 #78.9 - vmovsd %xmm7, (%rsi,%rdx,8) #78.9 - vaddsd (%rbx,%rdx,8), %xmm2, %xmm2 #79.9 - vmovsd %xmm2, (%rbx,%rdx,8) #79.9 - incq %rdx #46.5 - cmpq 40(%rsp), %rdx #46.5[spill] - jb ..B1.9 # Prob 82% #46.5 - # LOE rax rdx rcx rbx rsi rdi r8 xmm0 xmm3 xmm4 xmm6 -..B1.36: # Preds ..B1.35 - # Execution count [9.00e-01] - movq (%rsp), %r12 #[spill] - .cfi_restore 12 - movq 8(%rsp), %r13 #[spill] - .cfi_restore 13 - movq 16(%rsp), %r14 #[spill] - .cfi_restore 14 - # LOE r12 r13 r14 -..B1.38: # Preds ..B1.1 ..B1.36 - # Execution count [1.00e+00] - vzeroupper #82.12 - vxorpd %xmm0, %xmm0, %xmm0 #82.12 - addq $464, %rsp #82.12 - .cfi_restore 3 - popq %rbx #82.12 - .cfi_restore 15 - popq %r15 #82.12 - movq %rbp, %rsp #82.12 - popq %rbp #82.12 - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret #82.12 - .cfi_def_cfa 6, 16 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - .cfi_offset 6, -16 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - # LOE -..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 - # Execution count [4.50e+02]: Infreq - xorl %edi, %edi #59.13 - jmp ..B1.28 # Prob 100% #59.13 - # LOE rax rcx rdi r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.41: # Preds ..B1.12 - # Execution count [4.50e+02]: Infreq - movq %r14, %rdi #59.13 - xorl %r8d, %r8d #59.13 - jmp ..B1.23 # Prob 100% #59.13 - .align 16,0x90 - # LOE rax rcx rdi r8 r9 r14 r10d r11d r12d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 32 - .align 32 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,32 - .align 32 -.L_2il0floatpacket.3: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,32 - .align 8 -.L_2il0floatpacket.0: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,8 - .align 8 -.L_2il0floatpacket.1: - .long 0x00000000,0x3fe00000 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,8 - .align 8 -.L_2il0floatpacket.4: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx2/force_soa_att.s b/asm/avx2/force_soa_att.s deleted file mode 100644 index ecf5e30..0000000 --- a/asm/avx2/force_soa_att.s +++ /dev/null @@ -1,12567 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -fast -"; -# mark_description "xCORE-AVX2 -o ICC/force.s"; - .file "force.c" - .section __ildata, "" - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 236 - .byte 213 - .byte 42 - .byte 66 - .byte 178 - .byte 52 - .byte 67 - .byte 28 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 207 - .byte 30 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 83 - .byte 16 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 250 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 192 - .byte 1 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 30 - .byte 0 - .byte 0 - .byte 80 - .byte 0 - .byte 0 - .byte 0 - .byte 82 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 157 - .byte 3 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 0 - .byte 0 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 54 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 29 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 18 - .byte 0 - .byte 1 - .byte 1 - .byte 52 - .byte 9 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 2 - .byte 186 - .byte 1 - .byte 186 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 3 - .byte 189 - .byte 1 - .byte 194 - .byte 0 - .byte 128 - .byte 1 - .byte 2 - .byte 4 - .byte 0 - .byte 2 - .byte 0 - .byte 2 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 4 - .byte 190 - .byte 1 - .byte 190 - .byte 1 - .byte 128 - .byte 1 - .byte 1 - .byte 3 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 5 - .byte 18 - .byte 61 - .byte 136 - .byte 1 - .byte 2 - .byte 3 - .byte 0 - .byte 1 - .byte 0 - .byte 2 - .byte 6 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 6 - .byte 187 - .byte 1 - .byte 187 - .byte 1 - .byte 0 - .byte 1 - .byte 5 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 7 - .byte 195 - .byte 1 - .byte 27 - .byte 187 - .byte 3 - .byte 2 - .byte 17 - .byte 0 - .byte 6 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 8 - .byte 193 - .byte 1 - .byte 55 - .byte 149 - .byte 3 - .byte 2 - .byte 15 - .byte 0 - .byte 7 - .byte 0 - .byte 2 - .byte 9 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 9 - .byte 188 - .byte 1 - .byte 188 - .byte 1 - .byte 0 - .byte 1 - .byte 8 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 10 - .byte 191 - .byte 1 - .byte 40 - .byte 135 - .byte 3 - .byte 2 - .byte 13 - .byte 0 - .byte 9 - .byte 0 - .byte 2 - .byte 11 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 1 - .byte 1 - .byte 11 - .byte 34 - .byte 39 - .byte 187 - .byte 2 - .byte 1 - .byte 10 - .byte 0 - .byte 1 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 12 - .byte 41 - .byte 206 - .byte 0 - .byte 254 - .byte 2 - .byte 2 - .byte 11 - .byte 0 - .byte 10 - .byte 0 - .byte 2 - .byte 13 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 13 - .byte 192 - .byte 1 - .byte 192 - .byte 1 - .byte 135 - .byte 3 - .byte 1 - .byte 12 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 14 - .byte 43 - .byte 202 - .byte 0 - .byte 140 - .byte 3 - .byte 2 - .byte 12 - .byte 0 - .byte 8 - .byte 0 - .byte 2 - .byte 15 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 16 - .byte 1 - .byte 128 - .byte 152 - .byte 179 - .byte 238 - .byte 3 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 15 - .byte 194 - .byte 1 - .byte 194 - .byte 1 - .byte 149 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 16 - .byte 185 - .byte 1 - .byte 198 - .byte 0 - .byte 158 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 2 - .byte 17 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 17 - .byte 196 - .byte 1 - .byte 196 - .byte 1 - .byte 187 - .byte 3 - .byte 1 - .byte 16 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 18 - .byte 50 - .byte 50 - .byte 192 - .byte 3 - .byte 2 - .byte 16 - .byte 0 - .byte 5 - .byte 0 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 76 - .byte 9 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 2 - .byte 0 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 11 - .byte 3 - .byte 12 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 2 - .byte 72 - .byte 38 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 180 - .byte 7 - .byte 18 - .byte 65 - .byte 67 - .byte 4 - .byte 72 - .byte 48 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 5 - .byte 2 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 182 - .byte 7 - .byte 35 - .byte 65 - .byte 67 - .byte 5 - .byte 72 - .byte 54 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 6 - .byte 4 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 185 - .byte 7 - .byte 41 - .byte 65 - .byte 67 - .byte 6 - .byte 72 - .byte 60 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 7 - .byte 5 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 187 - .byte 7 - .byte 48 - .byte 65 - .byte 67 - .byte 7 - .byte 72 - .byte 194 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 8 - .byte 6 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 189 - .byte 7 - .byte 55 - .byte 65 - .byte 67 - .byte 8 - .byte 72 - .byte 200 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 9 - .byte 7 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 191 - .byte 7 - .byte 62 - .byte 65 - .byte 67 - .byte 9 - .byte 72 - .byte 206 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 12 - .byte 8 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 193 - .byte 7 - .byte 197 - .byte 0 - .byte 65 - .byte 67 - .byte 12 - .byte 72 - .byte 214 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 52 - .byte 9 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 195 - .byte 7 - .byte 204 - .byte 0 - .byte 65 - .byte 67 - .byte 13 - .byte 72 - .byte 227 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 14 - .byte 189 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 214 - .byte 0 - .byte 205 - .byte 0 - .byte 65 - .byte 67 - .byte 14 - .byte 72 - .byte 235 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 15 - .byte 13 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 224 - .byte 0 - .byte 215 - .byte 0 - .byte 65 - .byte 67 - .byte 15 - .byte 72 - .byte 243 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 16 - .byte 14 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 234 - .byte 0 - .byte 225 - .byte 0 - .byte 65 - .byte 67 - .byte 16 - .byte 72 - .byte 247 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 194 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 203 - .byte 7 - .byte 238 - .byte 0 - .byte 65 - .byte 67 - .byte 18 - .byte 72 - .byte 136 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 61 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte 0 - .byte 207 - .byte 7 - .byte 243 - .byte 0 - .byte 65 - .byte 67 - .byte 19 - .byte 72 - .byte 167 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 20 - .byte 195 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 209 - .byte 7 - .byte 133 - .byte 1 - .byte 65 - .byte 67 - .byte 20 - .byte 72 - .byte 175 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 21 - .byte 19 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 213 - .byte 7 - .byte 149 - .byte 1 - .byte 65 - .byte 67 - .byte 21 - .byte 72 - .byte 181 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 22 - .byte 20 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 216 - .byte 7 - .byte 164 - .byte 1 - .byte 65 - .byte 67 - .byte 22 - .byte 72 - .byte 188 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 23 - .byte 21 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 219 - .byte 7 - .byte 179 - .byte 1 - .byte 65 - .byte 67 - .byte 23 - .byte 72 - .byte 195 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 24 - .byte 22 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 222 - .byte 7 - .byte 194 - .byte 1 - .byte 65 - .byte 67 - .byte 24 - .byte 72 - .byte 200 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 25 - .byte 23 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 225 - .byte 7 - .byte 196 - .byte 1 - .byte 65 - .byte 67 - .byte 25 - .byte 72 - .byte 204 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 26 - .byte 24 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 226 - .byte 7 - .byte 198 - .byte 1 - .byte 65 - .byte 67 - .byte 26 - .byte 72 - .byte 208 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 27 - .byte 25 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 227 - .byte 7 - .byte 200 - .byte 1 - .byte 65 - .byte 67 - .byte 27 - .byte 72 - .byte 214 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 193 - .byte 1 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 228 - .byte 7 - .byte 202 - .byte 1 - .byte 65 - .byte 67 - .byte 28 - .byte 72 - .byte 226 - .byte 1 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 55 - .byte 193 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 229 - .byte 7 - .byte 204 - .byte 1 - .byte 65 - .byte 67 - .byte 29 - .byte 72 - .byte 251 - .byte 1 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 30 - .byte 191 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 231 - .byte 7 - .byte 214 - .byte 1 - .byte 65 - .byte 67 - .byte 30 - .byte 72 - .byte 131 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 31 - .byte 29 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 234 - .byte 7 - .byte 231 - .byte 1 - .byte 65 - .byte 67 - .byte 31 - .byte 72 - .byte 140 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 32 - .byte 30 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 238 - .byte 7 - .byte 248 - .byte 1 - .byte 65 - .byte 67 - .byte 32 - .byte 72 - .byte 149 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 33 - .byte 31 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 242 - .byte 7 - .byte 137 - .byte 2 - .byte 65 - .byte 67 - .byte 33 - .byte 72 - .byte 166 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 40 - .byte 32 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 246 - .byte 7 - .byte 149 - .byte 2 - .byte 65 - .byte 67 - .byte 34 - .byte 72 - .byte 187 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 35 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 255 - .byte 7 - .byte 153 - .byte 2 - .byte 65 - .byte 67 - .byte 35 - .byte 72 - .byte 199 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 36 - .byte 34 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 129 - .byte 8 - .byte 161 - .byte 2 - .byte 65 - .byte 67 - .byte 36 - .byte 72 - .byte 215 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 37 - .byte 35 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 134 - .byte 8 - .byte 173 - .byte 2 - .byte 65 - .byte 67 - .byte 37 - .byte 72 - .byte 223 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 38 - .byte 36 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 139 - .byte 8 - .byte 179 - .byte 2 - .byte 65 - .byte 67 - .byte 38 - .byte 72 - .byte 231 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 39 - .byte 37 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 143 - .byte 8 - .byte 185 - .byte 2 - .byte 65 - .byte 67 - .byte 39 - .byte 72 - .byte 239 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 0 - .byte 38 - .byte 0 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 147 - .byte 8 - .byte 191 - .byte 2 - .byte 65 - .byte 67 - .byte 40 - .byte 78 - .byte 249 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 41 - .byte 33 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 194 - .byte 2 - .byte 0 - .byte 34 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 41 - .byte 72 - .byte 254 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 206 - .byte 0 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 151 - .byte 8 - .byte 198 - .byte 2 - .byte 65 - .byte 67 - .byte 43 - .byte 72 - .byte 140 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 202 - .byte 0 - .byte 55 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 155 - .byte 8 - .byte 205 - .byte 2 - .byte 65 - .byte 67 - .byte 45 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 46 - .byte 183 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 218 - .byte 2 - .byte 228 - .byte 2 - .byte 65 - .byte 67 - .byte 46 - .byte 72 - .byte 166 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 47 - .byte 45 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 238 - .byte 2 - .byte 248 - .byte 2 - .byte 65 - .byte 67 - .byte 47 - .byte 72 - .byte 174 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 48 - .byte 46 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 130 - .byte 3 - .byte 140 - .byte 3 - .byte 65 - .byte 67 - .byte 48 - .byte 72 - .byte 178 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 198 - .byte 0 - .byte 47 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 179 - .byte 8 - .byte 144 - .byte 3 - .byte 65 - .byte 67 - .byte 50 - .byte 77 - .byte 192 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 0 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 150 - .byte 3 - .byte 67 - .byte 52 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 18 - .byte 12 - .byte 2 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 241 - .byte 0 - .byte 0 - .byte 186 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 55 - .byte 78 - .byte 135 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 43 - .byte 28 - .byte 2 - .byte 1 - .byte 0 - .byte 8 - .byte 0 - .byte 201 - .byte 2 - .byte 0 - .byte 188 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 61 - .byte 78 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 50 - .byte 18 - .byte 2 - .byte 1 - .byte 0 - .byte 5 - .byte 0 - .byte 147 - .byte 3 - .byte 0 - .byte 187 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 194 - .byte 0 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 16 - .byte 2 - .byte 1 - .byte 0 - .byte 3 - .byte 0 - .byte 151 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 198 - .byte 0 - .byte 78 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 48 - .byte 2 - .byte 1 - .byte 0 - .byte 16 - .byte 0 - .byte 154 - .byte 3 - .byte 0 - .byte 196 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 202 - .byte 0 - .byte 78 - .byte 149 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 185 - .byte 1 - .byte 43 - .byte 2 - .byte 1 - .byte 0 - .byte 14 - .byte 0 - .byte 157 - .byte 3 - .byte 0 - .byte 194 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 206 - .byte 0 - .byte 78 - .byte 135 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 0 - .byte 41 - .byte 2 - .byte 1 - .byte 0 - .byte 12 - .byte 0 - .byte 160 - .byte 3 - .byte 0 - .byte 192 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 183 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 45 - .byte 184 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 162 - .byte 8 - .byte 163 - .byte 8 - .byte 65 - .byte 67 - .byte 184 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 183 - .byte 1 - .byte 185 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 160 - .byte 8 - .byte 161 - .byte 8 - .byte 65 - .byte 67 - .byte 185 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 184 - .byte 1 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 158 - .byte 8 - .byte 159 - .byte 8 - .byte 65 - .byte 67 - .byte 186 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 189 - .byte 1 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 187 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 195 - .byte 1 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 6 - .byte 0 - .byte 188 - .byte 1 - .byte 93 - .byte 0 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 191 - .byte 1 - .byte 55 - .byte 0 - .byte 0 - .byte 0 - .byte 9 - .byte 0 - .byte 189 - .byte 1 - .byte 93 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 13 - .byte 186 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 80 - .byte 128 - .byte 1 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 194 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 189 - .byte 1 - .byte 191 - .byte 1 - .byte 93 - .byte 135 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 29 - .byte 188 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 192 - .byte 1 - .byte 80 - .byte 135 - .byte 3 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 0 - .byte 206 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 13 - .byte 0 - .byte 191 - .byte 1 - .byte 193 - .byte 1 - .byte 93 - .byte 149 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 28 - .byte 27 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 194 - .byte 1 - .byte 80 - .byte 149 - .byte 3 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 0 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 15 - .byte 0 - .byte 193 - .byte 1 - .byte 195 - .byte 1 - .byte 93 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 19 - .byte 187 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 196 - .byte 1 - .byte 80 - .byte 187 - .byte 3 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 198 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 195 - .byte 1 - .byte 1 - .byte 1 - .byte 7 - .byte 1 - .byte 2 - .byte 1 - .byte 7 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 11 - .byte 7 - .byte 6 - .byte 1 - .byte 0 - .byte 2 - .byte 80 - .byte 4 - .byte 1 - .byte 7 - .byte 2 - .byte 5 - .byte 1 - .byte 7 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 11 - .byte 7 - .byte 9 - .byte 4 - .byte 0 - .byte 5 - .byte 80 - .byte 7 - .byte 1 - .byte 7 - .byte 3 - .byte 8 - .byte 1 - .byte 7 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 11 - .byte 7 - .byte 0 - .byte 7 - .byte 0 - .byte 8 - .byte 80 - .byte 10 - .byte 1 - .byte 7 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 11 - .byte 7 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 80 - .byte 12 - .byte 0 - .byte 9 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 17 - .byte 0 - .byte 38 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 18 - .byte 8 - .byte 38 - .byte 181 - .byte 7 - .byte 19 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 19 - .byte 1 - .byte 38 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 46 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 27 - .byte 8 - .byte 46 - .byte 183 - .byte 7 - .byte 28 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 28 - .byte 1 - .byte 46 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 48 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 33 - .byte 8 - .byte 48 - .byte 184 - .byte 7 - .byte 34 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 34 - .byte 1 - .byte 48 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 35 - .byte 21 - .byte 48 - .byte 27 - .byte 33 - .byte 12 - .byte 40 - .byte 0 - .byte 54 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 41 - .byte 8 - .byte 54 - .byte 186 - .byte 7 - .byte 42 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 40 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 42 - .byte 1 - .byte 54 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 60 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 48 - .byte 8 - .byte 60 - .byte 188 - .byte 7 - .byte 49 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 49 - .byte 1 - .byte 60 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 194 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 55 - .byte 8 - .byte 194 - .byte 0 - .byte 190 - .byte 7 - .byte 56 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 56 - .byte 1 - .byte 194 - .byte 0 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 200 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 62 - .byte 8 - .byte 200 - .byte 0 - .byte 192 - .byte 7 - .byte 63 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 63 - .byte 1 - .byte 200 - .byte 0 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 206 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 197 - .byte 0 - .byte 8 - .byte 206 - .byte 0 - .byte 194 - .byte 7 - .byte 198 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 198 - .byte 0 - .byte 1 - .byte 206 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 204 - .byte 0 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 205 - .byte 0 - .byte 0 - .byte 223 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 208 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 0 - .byte 15 - .byte 227 - .byte 0 - .byte 198 - .byte 7 - .byte 7 - .byte 6 - .byte 210 - .byte 0 - .byte 22 - .byte 227 - .byte 0 - .byte 209 - .byte 0 - .byte 208 - .byte 0 - .byte 7 - .byte 211 - .byte 0 - .byte 19 - .byte 227 - .byte 0 - .byte 197 - .byte 7 - .byte 210 - .byte 0 - .byte 36 - .byte 212 - .byte 0 - .byte 1 - .byte 227 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 0 - .byte 8 - .byte 227 - .byte 0 - .byte 211 - .byte 0 - .byte 212 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 215 - .byte 0 - .byte 0 - .byte 231 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 218 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 219 - .byte 0 - .byte 15 - .byte 235 - .byte 0 - .byte 200 - .byte 7 - .byte 7 - .byte 6 - .byte 220 - .byte 0 - .byte 22 - .byte 235 - .byte 0 - .byte 219 - .byte 0 - .byte 218 - .byte 0 - .byte 7 - .byte 221 - .byte 0 - .byte 19 - .byte 235 - .byte 0 - .byte 199 - .byte 7 - .byte 220 - .byte 0 - .byte 36 - .byte 222 - .byte 0 - .byte 1 - .byte 235 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 224 - .byte 0 - .byte 8 - .byte 235 - .byte 0 - .byte 221 - .byte 0 - .byte 222 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 225 - .byte 0 - .byte 0 - .byte 239 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 228 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 229 - .byte 0 - .byte 15 - .byte 243 - .byte 0 - .byte 202 - .byte 7 - .byte 7 - .byte 6 - .byte 230 - .byte 0 - .byte 22 - .byte 243 - .byte 0 - .byte 229 - .byte 0 - .byte 228 - .byte 0 - .byte 7 - .byte 231 - .byte 0 - .byte 19 - .byte 243 - .byte 0 - .byte 201 - .byte 7 - .byte 230 - .byte 0 - .byte 36 - .byte 232 - .byte 0 - .byte 1 - .byte 243 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 234 - .byte 0 - .byte 8 - .byte 243 - .byte 0 - .byte 231 - .byte 0 - .byte 232 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 236 - .byte 0 - .byte 0 - .byte 247 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 0 - .byte 19 - .byte 247 - .byte 0 - .byte 204 - .byte 7 - .byte 236 - .byte 0 - .byte 6 - .byte 241 - .byte 0 - .byte 46 - .byte 254 - .byte 0 - .byte 153 - .byte 7 - .byte 196 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 243 - .byte 0 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 248 - .byte 0 - .byte 0 - .byte 163 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 249 - .byte 0 - .byte 8 - .byte 163 - .byte 1 - .byte 212 - .byte 7 - .byte 250 - .byte 0 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 250 - .byte 0 - .byte 1 - .byte 163 - .byte 1 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 0 - .byte 22 - .byte 163 - .byte 1 - .byte 211 - .byte 7 - .byte 249 - .byte 0 - .byte 6 - .byte 255 - .byte 0 - .byte 0 - .byte 165 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 128 - .byte 1 - .byte 8 - .byte 165 - .byte 1 - .byte 210 - .byte 7 - .byte 129 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 129 - .byte 1 - .byte 1 - .byte 165 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 1 - .byte 0 - .byte 165 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 1 - .byte 15 - .byte 165 - .byte 1 - .byte 251 - .byte 0 - .byte 7 - .byte 6 - .byte 132 - .byte 1 - .byte 22 - .byte 165 - .byte 1 - .byte 131 - .byte 1 - .byte 130 - .byte 1 - .byte 7 - .byte 133 - .byte 1 - .byte 19 - .byte 165 - .byte 1 - .byte 128 - .byte 1 - .byte 132 - .byte 1 - .byte 36 - .byte 140 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 141 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 214 - .byte 7 - .byte 142 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 140 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 142 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 143 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 1 - .byte 15 - .byte 175 - .byte 1 - .byte 215 - .byte 7 - .byte 7 - .byte 6 - .byte 145 - .byte 1 - .byte 22 - .byte 175 - .byte 1 - .byte 144 - .byte 1 - .byte 143 - .byte 1 - .byte 7 - .byte 146 - .byte 1 - .byte 19 - .byte 175 - .byte 1 - .byte 141 - .byte 1 - .byte 145 - .byte 1 - .byte 36 - .byte 147 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 146 - .byte 1 - .byte 147 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 155 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 156 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 217 - .byte 7 - .byte 157 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 155 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 157 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 158 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 159 - .byte 1 - .byte 15 - .byte 181 - .byte 1 - .byte 218 - .byte 7 - .byte 7 - .byte 6 - .byte 160 - .byte 1 - .byte 22 - .byte 181 - .byte 1 - .byte 159 - .byte 1 - .byte 158 - .byte 1 - .byte 7 - .byte 161 - .byte 1 - .byte 19 - .byte 181 - .byte 1 - .byte 156 - .byte 1 - .byte 160 - .byte 1 - .byte 36 - .byte 162 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 161 - .byte 1 - .byte 162 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 170 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 171 - .byte 1 - .byte 8 - .byte 188 - .byte 1 - .byte 220 - .byte 7 - .byte 172 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 170 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 172 - .byte 1 - .byte 1 - .byte 188 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 173 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 174 - .byte 1 - .byte 15 - .byte 188 - .byte 1 - .byte 221 - .byte 7 - .byte 7 - .byte 6 - .byte 175 - .byte 1 - .byte 22 - .byte 188 - .byte 1 - .byte 174 - .byte 1 - .byte 173 - .byte 1 - .byte 7 - .byte 176 - .byte 1 - .byte 19 - .byte 188 - .byte 1 - .byte 171 - .byte 1 - .byte 175 - .byte 1 - .byte 36 - .byte 177 - .byte 1 - .byte 1 - .byte 188 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 179 - .byte 1 - .byte 8 - .byte 188 - .byte 1 - .byte 176 - .byte 1 - .byte 177 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 185 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 186 - .byte 1 - .byte 8 - .byte 195 - .byte 1 - .byte 223 - .byte 7 - .byte 187 - .byte 1 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 185 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 187 - .byte 1 - .byte 1 - .byte 195 - .byte 1 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 188 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 189 - .byte 1 - .byte 15 - .byte 195 - .byte 1 - .byte 224 - .byte 7 - .byte 7 - .byte 6 - .byte 190 - .byte 1 - .byte 22 - .byte 195 - .byte 1 - .byte 189 - .byte 1 - .byte 188 - .byte 1 - .byte 7 - .byte 191 - .byte 1 - .byte 19 - .byte 195 - .byte 1 - .byte 186 - .byte 1 - .byte 190 - .byte 1 - .byte 36 - .byte 192 - .byte 1 - .byte 1 - .byte 195 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 193 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 194 - .byte 1 - .byte 8 - .byte 195 - .byte 1 - .byte 191 - .byte 1 - .byte 192 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 193 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 196 - .byte 1 - .byte 0 - .byte 200 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 1 - .byte 0 - .byte 204 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 200 - .byte 1 - .byte 0 - .byte 208 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 202 - .byte 1 - .byte 0 - .byte 214 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 204 - .byte 1 - .byte 0 - .byte 226 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 208 - .byte 1 - .byte 0 - .byte 251 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 1 - .byte 15 - .byte 251 - .byte 1 - .byte 233 - .byte 7 - .byte 7 - .byte 6 - .byte 210 - .byte 1 - .byte 22 - .byte 251 - .byte 1 - .byte 209 - .byte 1 - .byte 208 - .byte 1 - .byte 7 - .byte 211 - .byte 1 - .byte 19 - .byte 251 - .byte 1 - .byte 232 - .byte 7 - .byte 210 - .byte 1 - .byte 36 - .byte 212 - .byte 1 - .byte 1 - .byte 251 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 1 - .byte 0 - .byte 251 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 1 - .byte 8 - .byte 251 - .byte 1 - .byte 211 - .byte 1 - .byte 212 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 221 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 222 - .byte 1 - .byte 8 - .byte 131 - .byte 2 - .byte 236 - .byte 7 - .byte 223 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 223 - .byte 1 - .byte 1 - .byte 131 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 225 - .byte 1 - .byte 15 - .byte 131 - .byte 2 - .byte 237 - .byte 7 - .byte 7 - .byte 6 - .byte 226 - .byte 1 - .byte 22 - .byte 131 - .byte 2 - .byte 225 - .byte 1 - .byte 224 - .byte 1 - .byte 7 - .byte 227 - .byte 1 - .byte 19 - .byte 131 - .byte 2 - .byte 222 - .byte 1 - .byte 226 - .byte 1 - .byte 36 - .byte 228 - .byte 1 - .byte 1 - .byte 131 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 230 - .byte 1 - .byte 8 - .byte 131 - .byte 2 - .byte 227 - .byte 1 - .byte 228 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 231 - .byte 1 - .byte 20 - .byte 131 - .byte 2 - .byte 235 - .byte 7 - .byte 230 - .byte 1 - .byte 12 - .byte 238 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 239 - .byte 1 - .byte 8 - .byte 140 - .byte 2 - .byte 240 - .byte 7 - .byte 240 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 240 - .byte 1 - .byte 1 - .byte 140 - .byte 2 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 242 - .byte 1 - .byte 15 - .byte 140 - .byte 2 - .byte 241 - .byte 7 - .byte 7 - .byte 6 - .byte 243 - .byte 1 - .byte 22 - .byte 140 - .byte 2 - .byte 242 - .byte 1 - .byte 241 - .byte 1 - .byte 7 - .byte 244 - .byte 1 - .byte 19 - .byte 140 - .byte 2 - .byte 239 - .byte 1 - .byte 243 - .byte 1 - .byte 36 - .byte 245 - .byte 1 - .byte 1 - .byte 140 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 247 - .byte 1 - .byte 8 - .byte 140 - .byte 2 - .byte 244 - .byte 1 - .byte 245 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 248 - .byte 1 - .byte 20 - .byte 140 - .byte 2 - .byte 239 - .byte 7 - .byte 247 - .byte 1 - .byte 12 - .byte 255 - .byte 1 - .byte 0 - .byte 149 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 128 - .byte 2 - .byte 8 - .byte 149 - .byte 2 - .byte 244 - .byte 7 - .byte 129 - .byte 2 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 129 - .byte 2 - .byte 1 - .byte 149 - .byte 2 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 2 - .byte 0 - .byte 149 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 2 - .byte 15 - .byte 149 - .byte 2 - .byte 245 - .byte 7 - .byte 7 - .byte 6 - .byte 132 - .byte 2 - .byte 22 - .byte 149 - .byte 2 - .byte 131 - .byte 2 - .byte 130 - .byte 2 - .byte 7 - .byte 133 - .byte 2 - .byte 19 - .byte 149 - .byte 2 - .byte 128 - .byte 2 - .byte 132 - .byte 2 - .byte 36 - .byte 134 - .byte 2 - .byte 1 - .byte 149 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 2 - .byte 0 - .byte 149 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 136 - .byte 2 - .byte 8 - .byte 149 - .byte 2 - .byte 133 - .byte 2 - .byte 134 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 137 - .byte 2 - .byte 20 - .byte 149 - .byte 2 - .byte 243 - .byte 7 - .byte 136 - .byte 2 - .byte 12 - .byte 141 - .byte 2 - .byte 21 - .byte 158 - .byte 2 - .byte 247 - .byte 7 - .byte 248 - .byte 7 - .byte 12 - .byte 144 - .byte 2 - .byte 21 - .byte 162 - .byte 2 - .byte 249 - .byte 7 - .byte 250 - .byte 7 - .byte 12 - .byte 145 - .byte 2 - .byte 19 - .byte 162 - .byte 2 - .byte 141 - .byte 2 - .byte 144 - .byte 2 - .byte 12 - .byte 148 - .byte 2 - .byte 21 - .byte 166 - .byte 2 - .byte 251 - .byte 7 - .byte 252 - .byte 7 - .byte 12 - .byte 149 - .byte 2 - .byte 19 - .byte 166 - .byte 2 - .byte 145 - .byte 2 - .byte 148 - .byte 2 - .byte 12 - .byte 151 - .byte 2 - .byte 0 - .byte 185 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 153 - .byte 2 - .byte 37 - .byte 187 - .byte 2 - .byte 151 - .byte 2 - .byte 128 - .byte 8 - .byte 12 - .byte 1 - .byte 5 - .byte 10 - .byte 109 - .byte 97 - .byte 120 - .byte 45 - .byte 101 - .byte 114 - .byte 114 - .byte 111 - .byte 114 - .byte 0 - .byte 4 - .byte 52 - .byte 46 - .byte 48 - .byte 0 - .byte 17 - .byte 100 - .byte 111 - .byte 109 - .byte 97 - .byte 105 - .byte 110 - .byte 45 - .byte 101 - .byte 120 - .byte 99 - .byte 108 - .byte 117 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 0 - .byte 3 - .byte 49 - .byte 53 - .byte 0 - .byte 18 - .byte 118 - .byte 97 - .byte 108 - .byte 105 - .byte 100 - .byte 45 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 117 - .byte 115 - .byte 45 - .byte 98 - .byte 105 - .byte 116 - .byte 115 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 5 - .byte 102 - .byte 117 - .byte 115 - .byte 97 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 8 - .byte 122 - .byte 109 - .byte 109 - .byte 45 - .byte 108 - .byte 111 - .byte 119 - .byte 0 - .byte 5 - .byte 116 - .byte 114 - .byte 117 - .byte 101 - .byte 0 - .byte 157 - .byte 2 - .byte 21 - .byte 195 - .byte 2 - .byte 130 - .byte 8 - .byte 131 - .byte 8 - .byte 12 - .byte 159 - .byte 2 - .byte 21 - .byte 197 - .byte 2 - .byte 157 - .byte 2 - .byte 132 - .byte 8 - .byte 12 - .byte 161 - .byte 2 - .byte 21 - .byte 199 - .byte 2 - .byte 159 - .byte 2 - .byte 133 - .byte 8 - .byte 12 - .byte 163 - .byte 2 - .byte 0 - .byte 205 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 165 - .byte 2 - .byte 21 - .byte 207 - .byte 2 - .byte 163 - .byte 2 - .byte 135 - .byte 8 - .byte 12 - .byte 167 - .byte 2 - .byte 0 - .byte 211 - .byte 2 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 168 - .byte 2 - .byte 20 - .byte 211 - .byte 2 - .byte 136 - .byte 8 - .byte 167 - .byte 2 - .byte 12 - .byte 169 - .byte 2 - .byte 21 - .byte 211 - .byte 2 - .byte 165 - .byte 2 - .byte 168 - .byte 2 - .byte 12 - .byte 171 - .byte 2 - .byte 21 - .byte 213 - .byte 2 - .byte 169 - .byte 2 - .byte 137 - .byte 8 - .byte 12 - .byte 173 - .byte 2 - .byte 21 - .byte 215 - .byte 2 - .byte 171 - .byte 2 - .byte 138 - .byte 8 - .byte 12 - .byte 176 - .byte 2 - .byte 21 - .byte 221 - .byte 2 - .byte 141 - .byte 8 - .byte 142 - .byte 8 - .byte 12 - .byte 179 - .byte 2 - .byte 19 - .byte 223 - .byte 2 - .byte 140 - .byte 8 - .byte 176 - .byte 2 - .byte 12 - .byte 182 - .byte 2 - .byte 21 - .byte 229 - .byte 2 - .byte 145 - .byte 8 - .byte 146 - .byte 8 - .byte 12 - .byte 185 - .byte 2 - .byte 19 - .byte 231 - .byte 2 - .byte 144 - .byte 8 - .byte 182 - .byte 2 - .byte 12 - .byte 188 - .byte 2 - .byte 21 - .byte 237 - .byte 2 - .byte 149 - .byte 8 - .byte 150 - .byte 8 - .byte 12 - .byte 191 - .byte 2 - .byte 19 - .byte 239 - .byte 2 - .byte 148 - .byte 8 - .byte 188 - .byte 2 - .byte 12 - .byte 194 - .byte 2 - .byte 46 - .byte 247 - .byte 2 - .byte 253 - .byte 7 - .byte 254 - .byte 7 - .byte 6 - .byte 4 - .byte 12 - .byte 196 - .byte 2 - .byte 0 - .byte 254 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 2 - .byte 19 - .byte 254 - .byte 2 - .byte 152 - .byte 8 - .byte 196 - .byte 2 - .byte 6 - .byte 201 - .byte 2 - .byte 46 - .byte 133 - .byte 3 - .byte 155 - .byte 7 - .byte 230 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 203 - .byte 2 - .byte 0 - .byte 140 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 205 - .byte 2 - .byte 19 - .byte 140 - .byte 3 - .byte 156 - .byte 8 - .byte 203 - .byte 2 - .byte 6 - .byte 212 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 213 - .byte 2 - .byte 15 - .byte 158 - .byte 3 - .byte 165 - .byte 8 - .byte 7 - .byte 6 - .byte 214 - .byte 2 - .byte 22 - .byte 158 - .byte 3 - .byte 213 - .byte 2 - .byte 212 - .byte 2 - .byte 7 - .byte 215 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 164 - .byte 8 - .byte 214 - .byte 2 - .byte 36 - .byte 216 - .byte 2 - .byte 1 - .byte 158 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 218 - .byte 2 - .byte 8 - .byte 158 - .byte 3 - .byte 215 - .byte 2 - .byte 216 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 219 - .byte 2 - .byte 8 - .byte 158 - .byte 3 - .byte 220 - .byte 2 - .byte 226 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 220 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 166 - .byte 8 - .byte 222 - .byte 2 - .byte 36 - .byte 222 - .byte 2 - .byte 22 - .byte 158 - .byte 3 - .byte 223 - .byte 2 - .byte 225 - .byte 2 - .byte 7 - .byte 223 - .byte 2 - .byte 15 - .byte 158 - .byte 3 - .byte 167 - .byte 8 - .byte 7 - .byte 6 - .byte 225 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 226 - .byte 2 - .byte 1 - .byte 158 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 228 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 219 - .byte 2 - .byte 168 - .byte 8 - .byte 12 - .byte 232 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 233 - .byte 2 - .byte 15 - .byte 166 - .byte 3 - .byte 170 - .byte 8 - .byte 7 - .byte 6 - .byte 234 - .byte 2 - .byte 22 - .byte 166 - .byte 3 - .byte 233 - .byte 2 - .byte 232 - .byte 2 - .byte 7 - .byte 235 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 169 - .byte 8 - .byte 234 - .byte 2 - .byte 36 - .byte 236 - .byte 2 - .byte 1 - .byte 166 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 2 - .byte 8 - .byte 166 - .byte 3 - .byte 235 - .byte 2 - .byte 236 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 239 - .byte 2 - .byte 8 - .byte 166 - .byte 3 - .byte 240 - .byte 2 - .byte 246 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 240 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 171 - .byte 8 - .byte 242 - .byte 2 - .byte 36 - .byte 242 - .byte 2 - .byte 22 - .byte 166 - .byte 3 - .byte 243 - .byte 2 - .byte 245 - .byte 2 - .byte 7 - .byte 243 - .byte 2 - .byte 15 - .byte 166 - .byte 3 - .byte 172 - .byte 8 - .byte 7 - .byte 6 - .byte 245 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 246 - .byte 2 - .byte 1 - .byte 166 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 248 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 239 - .byte 2 - .byte 173 - .byte 8 - .byte 12 - .byte 252 - .byte 2 - .byte 0 - .byte 174 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 253 - .byte 2 - .byte 15 - .byte 174 - .byte 3 - .byte 175 - .byte 8 - .byte 7 - .byte 6 - .byte 254 - .byte 2 - .byte 22 - .byte 174 - .byte 3 - .byte 253 - .byte 2 - .byte 252 - .byte 2 - .byte 7 - .byte 255 - .byte 2 - .byte 19 - .byte 174 - .byte 3 - .byte 174 - .byte 8 - .byte 254 - .byte 2 - .byte 36 - .byte 128 - .byte 3 - .byte 1 - .byte 174 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 129 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 130 - .byte 3 - .byte 8 - .byte 174 - .byte 3 - .byte 255 - .byte 2 - .byte 128 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 129 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 131 - .byte 3 - .byte 8 - .byte 174 - .byte 3 - .byte 132 - .byte 3 - .byte 138 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 139 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 132 - .byte 3 - .byte 19 - .byte 174 - .byte 3 - .byte 176 - .byte 8 - .byte 134 - .byte 3 - .byte 36 - .byte 134 - .byte 3 - .byte 22 - .byte 174 - .byte 3 - .byte 135 - .byte 3 - .byte 137 - .byte 3 - .byte 7 - .byte 135 - .byte 3 - .byte 15 - .byte 174 - .byte 3 - .byte 177 - .byte 8 - .byte 7 - .byte 6 - .byte 137 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 138 - .byte 3 - .byte 1 - .byte 174 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 139 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 140 - .byte 3 - .byte 19 - .byte 174 - .byte 3 - .byte 131 - .byte 3 - .byte 178 - .byte 8 - .byte 12 - .byte 142 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 3 - .byte 19 - .byte 178 - .byte 3 - .byte 180 - .byte 8 - .byte 142 - .byte 3 - .byte 6 - .byte 147 - .byte 3 - .byte 46 - .byte 185 - .byte 3 - .byte 154 - .byte 7 - .byte 208 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 148 - .byte 3 - .byte 0 - .byte 192 - .byte 3 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 3 - .byte 1 - .byte 192 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 150 - .byte 3 - .byte 11 - .byte 192 - .byte 3 - .byte 0 - .byte 148 - .byte 3 - .byte 0 - .byte 149 - .byte 3 - .byte 80 - .byte 151 - .byte 3 - .byte 46 - .byte 254 - .byte 0 - .byte 205 - .byte 7 - .byte 206 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 154 - .byte 3 - .byte 46 - .byte 185 - .byte 3 - .byte 181 - .byte 8 - .byte 182 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 157 - .byte 3 - .byte 46 - .byte 147 - .byte 3 - .byte 159 - .byte 3 - .byte 157 - .byte 8 - .byte 6 - .byte 2 - .byte 6 - .byte 159 - .byte 3 - .byte 0 - .byte 147 - .byte 3 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 160 - .byte 3 - .byte 46 - .byte 133 - .byte 3 - .byte 153 - .byte 8 - .byte 154 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 153 - .byte 7 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 154 - .byte 7 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 155 - .byte 7 - .byte 0 - .byte 226 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 180 - .byte 7 - .byte 1 - .byte 38 - .byte 4 - .byte 181 - .byte 7 - .byte 1 - .byte 38 - .byte 2 - .byte 182 - .byte 7 - .byte 1 - .byte 48 - .byte 6 - .byte 183 - .byte 7 - .byte 1 - .byte 46 - .byte 1 - .byte 184 - .byte 7 - .byte 1 - .byte 48 - .byte 1 - .byte 185 - .byte 7 - .byte 1 - .byte 54 - .byte 7 - .byte 186 - .byte 7 - .byte 1 - .byte 54 - .byte 1 - .byte 187 - .byte 7 - .byte 1 - .byte 60 - .byte 8 - .byte 188 - .byte 7 - .byte 1 - .byte 60 - .byte 1 - .byte 189 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 9 - .byte 190 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 2 - .byte 191 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 10 - .byte 192 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 2 - .byte 193 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 11 - .byte 194 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 2 - .byte 195 - .byte 7 - .byte 1 - .byte 214 - .byte 0 - .byte 14 - .byte 196 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 197 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 9 - .byte 198 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 14 - .byte 199 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 10 - .byte 200 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 14 - .byte 201 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 11 - .byte 202 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 14 - .byte 203 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 204 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 205 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 14 - .byte 206 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 207 - .byte 7 - .byte 1 - .byte 136 - .byte 1 - .byte 15 - .byte 208 - .byte 7 - .byte 1 - .byte 185 - .byte 3 - .byte 4 - .byte 209 - .byte 7 - .byte 1 - .byte 167 - .byte 1 - .byte 5 - .byte 210 - .byte 7 - .byte 1 - .byte 165 - .byte 1 - .byte 3 - .byte 211 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 15 - .byte 212 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 3 - .byte 213 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 16 - .byte 214 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 3 - .byte 215 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 15 - .byte 216 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 17 - .byte 217 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 2 - .byte 218 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 15 - .byte 219 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 18 - .byte 220 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 2 - .byte 221 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 15 - .byte 222 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 19 - .byte 223 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 2 - .byte 224 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 15 - .byte 225 - .byte 7 - .byte 1 - .byte 200 - .byte 1 - .byte 20 - .byte 226 - .byte 7 - .byte 1 - .byte 204 - .byte 1 - .byte 21 - .byte 227 - .byte 7 - .byte 1 - .byte 208 - .byte 1 - .byte 22 - .byte 228 - .byte 7 - .byte 1 - .byte 214 - .byte 1 - .byte 23 - .byte 229 - .byte 7 - .byte 1 - .byte 226 - .byte 1 - .byte 24 - .byte 230 - .byte 7 - .byte 1 - .byte 133 - .byte 3 - .byte 16 - .byte 231 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 25 - .byte 232 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 5 - .byte 233 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 24 - .byte 234 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 26 - .byte 235 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 17 - .byte 236 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 2 - .byte 237 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 25 - .byte 238 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 27 - .byte 239 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 18 - .byte 240 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 2 - .byte 241 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 25 - .byte 242 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 28 - .byte 243 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 19 - .byte 244 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 2 - .byte 245 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 25 - .byte 246 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 29 - .byte 247 - .byte 7 - .byte 1 - .byte 158 - .byte 2 - .byte 26 - .byte 248 - .byte 7 - .byte 1 - .byte 158 - .byte 2 - .byte 26 - .byte 249 - .byte 7 - .byte 1 - .byte 162 - .byte 2 - .byte 27 - .byte 250 - .byte 7 - .byte 1 - .byte 162 - .byte 2 - .byte 27 - .byte 251 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 28 - .byte 252 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 28 - .byte 253 - .byte 7 - .byte 1 - .byte 247 - .byte 2 - .byte 29 - .byte 254 - .byte 7 - .byte 1 - .byte 247 - .byte 2 - .byte 6 - .byte 255 - .byte 7 - .byte 1 - .byte 187 - .byte 2 - .byte 30 - .byte 128 - .byte 8 - .byte 1 - .byte 187 - .byte 2 - .byte 29 - .byte 129 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 31 - .byte 130 - .byte 8 - .byte 1 - .byte 195 - .byte 2 - .byte 30 - .byte 131 - .byte 8 - .byte 1 - .byte 195 - .byte 2 - .byte 30 - .byte 132 - .byte 8 - .byte 1 - .byte 197 - .byte 2 - .byte 30 - .byte 133 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 7 - .byte 134 - .byte 8 - .byte 1 - .byte 215 - .byte 2 - .byte 32 - .byte 135 - .byte 8 - .byte 1 - .byte 207 - .byte 2 - .byte 31 - .byte 136 - .byte 8 - .byte 1 - .byte 211 - .byte 2 - .byte 31 - .byte 137 - .byte 8 - .byte 1 - .byte 213 - .byte 2 - .byte 30 - .byte 138 - .byte 8 - .byte 1 - .byte 215 - .byte 2 - .byte 8 - .byte 139 - .byte 8 - .byte 1 - .byte 223 - .byte 2 - .byte 20 - .byte 140 - .byte 8 - .byte 1 - .byte 223 - .byte 2 - .byte 20 - .byte 141 - .byte 8 - .byte 1 - .byte 221 - .byte 2 - .byte 26 - .byte 142 - .byte 8 - .byte 1 - .byte 221 - .byte 2 - .byte 32 - .byte 143 - .byte 8 - .byte 1 - .byte 231 - .byte 2 - .byte 21 - .byte 144 - .byte 8 - .byte 1 - .byte 231 - .byte 2 - .byte 21 - .byte 145 - .byte 8 - .byte 1 - .byte 229 - .byte 2 - .byte 27 - .byte 146 - .byte 8 - .byte 1 - .byte 229 - .byte 2 - .byte 32 - .byte 147 - .byte 8 - .byte 1 - .byte 239 - .byte 2 - .byte 22 - .byte 148 - .byte 8 - .byte 1 - .byte 239 - .byte 2 - .byte 22 - .byte 149 - .byte 8 - .byte 1 - .byte 237 - .byte 2 - .byte 28 - .byte 150 - .byte 8 - .byte 1 - .byte 237 - .byte 2 - .byte 32 - .byte 151 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 24 - .byte 152 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 24 - .byte 153 - .byte 8 - .byte 1 - .byte 133 - .byte 3 - .byte 24 - .byte 154 - .byte 8 - .byte 1 - .byte 133 - .byte 3 - .byte 16 - .byte 155 - .byte 8 - .byte 1 - .byte 140 - .byte 3 - .byte 23 - .byte 156 - .byte 8 - .byte 1 - .byte 140 - .byte 3 - .byte 23 - .byte 157 - .byte 8 - .byte 1 - .byte 147 - .byte 3 - .byte 23 - .byte 158 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 159 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 160 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 21 - .byte 161 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 21 - .byte 162 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 22 - .byte 163 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 22 - .byte 164 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 9 - .byte 165 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 15 - .byte 166 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 9 - .byte 167 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 15 - .byte 168 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 169 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 10 - .byte 170 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 15 - .byte 171 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 10 - .byte 172 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 15 - .byte 173 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 21 - .byte 174 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 11 - .byte 175 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 15 - .byte 176 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 11 - .byte 177 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 15 - .byte 178 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 22 - .byte 179 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 180 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 181 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 15 - .byte 182 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 4 - .byte 1 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 4 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 2 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 5 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 3 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 6 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 4 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 7 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 5 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 11 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 8 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 6 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 9 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 7 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 10 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 8 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 11 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 11 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 14 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 12 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 50 - .byte 0 - .byte 15 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 13 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 13 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 16 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 14 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 17 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 15 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 18 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 16 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 19 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 17 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 20 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 18 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 21 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 19 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 22 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 20 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 0 - .byte 8 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 23 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 21 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 0 - .byte 10 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 24 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 22 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 25 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 23 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 26 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 24 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 27 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 25 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 28 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 26 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 29 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 27 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 30 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 28 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 31 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 29 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 9 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 32 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 13 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 2 - .byte 12 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 16 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 14 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 0 - .byte 1 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 5 - .byte 14 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 0 - .byte 2 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 18 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 53 - .byte 0 - .byte 3 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 14 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 54 - .byte 0 - .byte 4 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 15 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 55 - .byte 0 - .byte 5 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 10 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 56 - .byte 0 - .byte 6 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 10 - .byte 10 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 57 - .byte 0 - .byte 7 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 10 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 97 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 14 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 100 - .byte 0 - .byte 11 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 15 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 101 - .byte 0 - .byte 12 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 16 - .byte 18 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 102 - .byte 0 - .byte 13 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 13 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 48 - .byte 0 - .byte 14 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 18 - .byte 13 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 49 - .byte 0 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 19 - .byte 13 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 50 - .byte 0 - .byte 16 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 20 - .byte 12 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 51 - .byte 0 - .byte 17 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 21 - .byte 12 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 52 - .byte 0 - .byte 18 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 22 - .byte 12 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 53 - .byte 0 - .byte 19 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 23 - .byte 10 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 98 - .byte 0 - .byte 20 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 24 - .byte 10 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 99 - .byte 0 - .byte 21 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 25 - .byte 10 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 100 - .byte 0 - .byte 22 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 101 - .byte 0 - .byte 23 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 27 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 102 - .byte 0 - .byte 24 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 28 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 48 - .byte 0 - .byte 25 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 12 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 49 - .byte 0 - .byte 26 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 30 - .byte 12 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 50 - .byte 0 - .byte 27 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 31 - .byte 12 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 51 - .byte 0 - .byte 28 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 14 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 52 - .byte 0 - .byte 29 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 200 - .byte 81 - .byte 83 - .byte 5 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 109 - .byte 54 - .byte 52 - .byte 116 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 114 - .byte 111 - .byte 117 - .byte 116 - .byte 105 - .byte 110 - .byte 101 - .byte 95 - .byte 112 - .byte 111 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 114 - .byte 95 - .byte 115 - .byte 105 - .byte 122 - .byte 101 - .byte 95 - .byte 54 - .byte 52 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 103 - .byte 110 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 95 - .byte 117 - .byte 115 - .byte 101 - .byte 100 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 103 - .byte 99 - .byte 99 - .byte 95 - .byte 118 - .byte 101 - .byte 114 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 61 - .byte 55 - .byte 53 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 99 - .byte 120 - .byte 120 - .byte 95 - .byte 108 - .byte 105 - .byte 109 - .byte 105 - .byte 116 - .byte 101 - .byte 100 - .byte 95 - .byte 114 - .byte 97 - .byte 110 - .byte 103 - .byte 101 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 95 - .byte 112 - .byte 97 - .byte 114 - .byte 109 - .byte 115 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 117 - .byte 97 - .byte 114 - .byte 99 - .byte 104 - .byte 95 - .byte 116 - .byte 117 - .byte 110 - .byte 105 - .byte 110 - .byte 103 - .byte 61 - .byte 48 - .byte 120 - .byte 48 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 98 - .byte 110 - .byte 108 - .byte 95 - .byte 109 - .byte 111 - .byte 118 - .byte 98 - .byte 101 - .byte 61 - .byte 84 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 101 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 115 - .byte 116 - .byte 114 - .byte 117 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 48 - .byte 120 - .byte 52 - .byte 48 - .byte 48 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 97 - .byte 100 - .byte 118 - .byte 97 - .byte 110 - .byte 99 - .byte 101 - .byte 100 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 109 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 115 - .byte 117 - .byte 98 - .byte 115 - .byte 95 - .byte 111 - .byte 117 - .byte 116 - .byte 95 - .byte 111 - .byte 102 - .byte 95 - .byte 98 - .byte 111 - .byte 117 - .byte 110 - .byte 100 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 98 - .byte 97 - .byte 115 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 61 - .byte 50 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 99 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 99 - .byte 104 - .byte 101 - .byte 99 - .byte 107 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 97 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 105 - .byte 108 - .byte 48 - .byte 95 - .byte 97 - .byte 114 - .byte 114 - .byte 97 - .byte 121 - .byte 95 - .byte 115 - .byte 101 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 102 - .byte 102 - .byte 108 - .byte 111 - .byte 97 - .byte 100 - .byte 95 - .byte 109 - .byte 111 - .byte 100 - .byte 101 - .byte 61 - .byte 49 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 114 - .byte 101 - .byte 115 - .byte 116 - .byte 114 - .byte 105 - .byte 99 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 102 - .byte 117 - .byte 110 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 112 - .byte 111 - .byte 95 - .byte 114 - .byte 116 - .byte 116 - .byte 95 - .byte 99 - .byte 111 - .byte 110 - .byte 116 - .byte 114 - .byte 111 - .byte 108 - .byte 61 - .byte 48 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 114 - .byte 103 - .byte 115 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 114 - .byte 101 - .byte 103 - .byte 115 - .byte 61 - .byte 48 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 110 - .byte 111 - .byte 110 - .byte 115 - .byte 116 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 110 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 108 - .byte 116 - .byte 111 - .byte 95 - .byte 111 - .byte 98 - .byte 106 - .byte 101 - .byte 99 - .byte 116 - .byte 95 - .byte 101 - .byte 110 - .byte 97 - .byte 98 - .byte 108 - .byte 101 - .byte 100 - .byte 32 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 115 - .byte 109 - .byte 95 - .byte 116 - .byte 97 - .byte 114 - .byte 103 - .byte 101 - .byte 116 - .byte 61 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 65 - .byte 83 - .byte 77 - .byte 95 - .byte 84 - .byte 65 - .byte 82 - .byte 71 - .byte 69 - .byte 84 - .byte 95 - .byte 71 - .byte 65 - .byte 83 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 100 - .byte 105 - .byte 97 - .byte 108 - .byte 101 - .byte 99 - .byte 116 - .byte 61 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 83 - .byte 79 - .byte 85 - .byte 82 - .byte 67 - .byte 69 - .byte 95 - .byte 68 - .byte 73 - .byte 65 - .byte 76 - .byte 69 - .byte 67 - .byte 84 - .byte 95 - .byte 67 - .byte 32 - .byte 80 - .byte 49 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 102 - .byte 117 - .byte 108 - .byte 108 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 102 - .byte 105 - .byte 108 - .byte 101 - .byte 95 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 61 - .byte 47 - .byte 104 - .byte 111 - .byte 109 - .byte 101 - .byte 47 - .byte 104 - .byte 112 - .byte 99 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 48 - .byte 50 - .byte 49 - .byte 104 - .byte 47 - .byte 77 - .byte 68 - .byte 45 - .byte 66 - .byte 101 - .byte 110 - .byte 99 - .byte 104 - .byte 47 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 1 - .byte 1 - .byte 160 - .byte 1 - .byte 192 - .byte 0 - .byte 243 - .byte 0 - .byte 127 - .byte 85 - .byte 114 - .byte 99 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 126 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 0 - .byte 123 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 0 - .byte 122 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 8 - .byte 121 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 1 - .byte 120 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 4 - .byte 119 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 248 - .byte 63 - .byte 118 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 164 - .byte 64 - .byte 117 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 240 - .byte 63 - .byte 116 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 232 - .byte 7 - .byte 127 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 126 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 125 - .byte 4 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 124 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 123 - .byte 4 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 122 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 121 - .byte 4 - .byte 0 - .byte 32 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 120 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 119 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 118 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 1 - .byte 1 - .byte 26 - .byte 3 - .byte 36 - .byte 8 - .byte 0 - .byte 145 - .byte 192 - .byte 129 - .byte 16 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 8 - .byte 1 - .byte 46 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 40 - .byte 80 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 65 - .byte 116 - .byte 111 - .byte 109 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 78 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 32 - .byte 42 - .byte 41 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 127 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 32 - .byte 126 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 136 - .byte 1 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 125 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 124 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 0 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 123 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 122 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 213 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 121 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 120 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 32 - .byte 119 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 118 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 117 - .byte 11 - .byte 78 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 100 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 116 - .byte 11 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 95 - .byte 86 - .byte 36 - .byte 101 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 115 - .byte 11 - .byte 78 - .byte 103 - .byte 104 - .byte 111 - .byte 115 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 102 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 8 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 114 - .byte 10 - .byte 78 - .byte 109 - .byte 97 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 12 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 113 - .byte 7 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 112 - .byte 7 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 50 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 111 - .byte 7 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 51 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 110 - .byte 8 - .byte 118 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 52 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 40 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 109 - .byte 8 - .byte 118 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 53 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 48 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 236 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 108 - .byte 8 - .byte 118 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 54 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 107 - .byte 8 - .byte 102 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 55 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 106 - .byte 8 - .byte 102 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 56 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 105 - .byte 8 - .byte 102 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 57 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 104 - .byte 13 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 103 - .byte 12 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 230 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 102 - .byte 10 - .byte 116 - .byte 101 - .byte 109 - .byte 112 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 101 - .byte 9 - .byte 114 - .byte 104 - .byte 111 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 100 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 228 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 100 - .byte 10 - .byte 109 - .byte 97 - .byte 115 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 101 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 99 - .byte 12 - .byte 110 - .byte 116 - .byte 105 - .byte 109 - .byte 101 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 102 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 40 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 226 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 98 - .byte 11 - .byte 110 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 44 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 97 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 49 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 48 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 96 - .byte 8 - .byte 100 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 50 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 95 - .byte 13 - .byte 100 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 51 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 94 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 52 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 93 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 53 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 220 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 92 - .byte 8 - .byte 110 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 54 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 216 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 219 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 91 - .byte 8 - .byte 110 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 55 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 220 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 218 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 90 - .byte 8 - .byte 110 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 56 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 224 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 89 - .byte 13 - .byte 108 - .byte 97 - .byte 116 - .byte 116 - .byte 105 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 57 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 232 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 88 - .byte 10 - .byte 120 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 240 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 215 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 87 - .byte 10 - .byte 121 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 248 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 214 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 86 - .byte 10 - .byte 122 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 128 - .byte 1 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 37 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 85 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 54 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 212 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 84 - .byte 12 - .byte 110 - .byte 99 - .byte 97 - .byte 108 - .byte 108 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 55 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 83 - .byte 15 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 56 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 82 - .byte 15 - .byte 109 - .byte 97 - .byte 120 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 57 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 16 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 81 - .byte 14 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 97 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 1 - .byte 0 - .byte 30 - .byte 8 - .byte 0 - .byte 9 - .byte 1 - .byte 0 - .byte 30 - .byte 71 - .byte 0 - .byte 38 - .byte 1 - .byte 0 - .byte 31 - .byte 18 - .byte 0 - .byte 46 - .byte 1 - .byte 0 - .byte 33 - .byte 27 - .byte 0 - .byte 48 - .byte 1 - .byte 0 - .byte 33 - .byte 45 - .byte 0 - .byte 54 - .byte 1 - .byte 0 - .byte 34 - .byte 23 - .byte 0 - .byte 60 - .byte 1 - .byte 0 - .byte 35 - .byte 24 - .byte 0 - .byte 194 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 20 - .byte 0 - .byte 200 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 45 - .byte 0 - .byte 206 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 70 - .byte 0 - .byte 214 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 15 - .byte 0 - .byte 223 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 17 - .byte 0 - .byte 227 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 9 - .byte 0 - .byte 231 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 17 - .byte 0 - .byte 235 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 9 - .byte 0 - .byte 239 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 17 - .byte 0 - .byte 243 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 9 - .byte 0 - .byte 247 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 32 - .byte 0 - .byte 254 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 24 - .byte 0 - .byte 128 - .byte 1 - .byte 1 - .byte 0 - .byte 39 - .byte 5 - .byte 0 - .byte 136 - .byte 1 - .byte 1 - .byte 0 - .byte 46 - .byte 15 - .byte 0 - .byte 163 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 43 - .byte 0 - .byte 165 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 19 - .byte 0 - .byte 167 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 9 - .byte 0 - .byte 175 - .byte 1 - .byte 1 - .byte 0 - .byte 48 - .byte 25 - .byte 0 - .byte 181 - .byte 1 - .byte 1 - .byte 0 - .byte 49 - .byte 25 - .byte 0 - .byte 188 - .byte 1 - .byte 1 - .byte 0 - .byte 50 - .byte 25 - .byte 0 - .byte 195 - .byte 1 - .byte 1 - .byte 0 - .byte 51 - .byte 25 - .byte 0 - .byte 200 - .byte 1 - .byte 1 - .byte 0 - .byte 52 - .byte 22 - .byte 0 - .byte 204 - .byte 1 - .byte 1 - .byte 0 - .byte 53 - .byte 22 - .byte 0 - .byte 208 - .byte 1 - .byte 1 - .byte 0 - .byte 54 - .byte 22 - .byte 0 - .byte 214 - .byte 1 - .byte 1 - .byte 0 - .byte 58 - .byte 19 - .byte 0 - .byte 226 - .byte 1 - .byte 1 - .byte 0 - .byte 59 - .byte 23 - .byte 0 - .byte 251 - .byte 1 - .byte 1 - .byte 0 - .byte 60 - .byte 25 - .byte 0 - .byte 131 - .byte 2 - .byte 1 - .byte 0 - .byte 61 - .byte 40 - .byte 0 - .byte 140 - .byte 2 - .byte 1 - .byte 0 - .byte 62 - .byte 40 - .byte 0 - .byte 149 - .byte 2 - .byte 1 - .byte 0 - .byte 63 - .byte 40 - .byte 0 - .byte 158 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 39 - .byte 0 - .byte 162 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 53 - .byte 0 - .byte 166 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 67 - .byte 0 - .byte 185 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 36 - .byte 0 - .byte 187 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 42 - .byte 0 - .byte 195 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 42 - .byte 0 - .byte 197 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 48 - .byte 0 - .byte 199 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 54 - .byte 0 - .byte 205 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 38 - .byte 0 - .byte 207 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 45 - .byte 0 - .byte 211 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 58 - .byte 0 - .byte 213 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 65 - .byte 0 - .byte 215 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 71 - .byte 0 - .byte 221 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 35 - .byte 0 - .byte 223 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 21 - .byte 0 - .byte 229 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 35 - .byte 0 - .byte 231 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 21 - .byte 0 - .byte 237 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 35 - .byte 0 - .byte 239 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 21 - .byte 0 - .byte 247 - .byte 2 - .byte 1 - .byte 0 - .byte 66 - .byte 26 - .byte 0 - .byte 249 - .byte 2 - .byte 1 - .byte 0 - .byte 66 - .byte 17 - .byte 0 - .byte 254 - .byte 2 - .byte 1 - .byte 0 - .byte 59 - .byte 43 - .byte 0 - .byte 133 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 32 - .byte 0 - .byte 135 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 13 - .byte 0 - .byte 140 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 50 - .byte 0 - .byte 147 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 28 - .byte 0 - .byte 149 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 9 - .byte 0 - .byte 158 - .byte 3 - .byte 1 - .byte 0 - .byte 77 - .byte 9 - .byte 0 - .byte 166 - .byte 3 - .byte 1 - .byte 0 - .byte 78 - .byte 9 - .byte 0 - .byte 174 - .byte 3 - .byte 1 - .byte 0 - .byte 79 - .byte 9 - .byte 0 - .byte 178 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 32 - .byte 0 - .byte 185 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 24 - .byte 0 - .byte 187 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 5 - .byte 0 - .byte 192 - .byte 3 - .byte 1 - .byte 0 - .byte 82 - .byte 12 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 203 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 99 - .byte 99 - .byte 14 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 3 - .byte 1 - .byte 63 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 115 - .byte 115 - .byte 27 - .byte 47 - .byte 117 - .byte 115 - .byte 114 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 47 - .byte 115 - .byte 116 - .byte 100 - .byte 99 - .byte 45 - .byte 112 - .byte 114 - .byte 101 - .byte 100 - .byte 101 - .byte 102 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 3 - .byte 1 - .byte 4 - .byte 87 - .byte 128 - .byte 2 - .byte 0 - .byte 1 - .byte 23 - .byte 0 - .byte 115 - .byte 95 - .byte 31 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 108 - .byte 105 - .byte 107 - .byte 119 - .byte 105 - .byte 100 - .byte 45 - .byte 109 - .byte 97 - .byte 114 - .byte 107 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 4 - .byte 1 - .byte 5 - .byte 131 - .byte 2 - .byte 160 - .byte 2 - .byte 0 - .byte 1 - .byte 25 - .byte 0 - .byte 115 - .byte 95 - .byte 24 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 116 - .byte 105 - .byte 109 - .byte 105 - .byte 110 - .byte 103 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 5 - .byte 1 - .byte 8 - .byte 162 - .byte 2 - .byte 178 - .byte 3 - .byte 105 - .byte 1 - .byte 26 - .byte 0 - .byte 115 - .byte 95 - .byte 26 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 6 - .byte 6 - .byte 5 - .byte 0 - .byte 185 - .byte 2 - .byte 161 - .byte 3 - .byte 54 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 7 - .byte 7 - .byte 6 - .byte 0 - .byte 208 - .byte 2 - .byte 133 - .byte 3 - .byte 0 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 27 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 8 - .byte 1 - .byte 0 - .byte 181 - .byte 3 - .byte 231 - .byte 3 - .byte 0 - .byte 1 - .byte 28 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #30.71 - pushq %rbp #30.71 - .cfi_def_cfa_offset 16 - movq %rsp, %rbp #30.71 - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-32, %rsp #30.71 - pushq %r14 #30.71 - pushq %r15 #30.71 - pushq %rbx #30.71 - subq $456, %rsp #30.71 - movq %rdx, %r8 #30.71 - vmovsd 72(%rdi), %xmm0 #33.27 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - movl 4(%rsi), %ebx #31.18 - movq 64(%rsi), %r15 #36.20 - movq 72(%rsi), %r14 #36.45 - movq 80(%rsi), %rdx #36.70 - vmulsd %xmm0, %xmm0, %xmm4 #33.45 - vmovsd 8(%rdi), %xmm3 #34.23 - vmovsd (%rdi), %xmm0 #35.24 - testl %ebx, %ebx #39.24 - jle ..B1.38 # Prob 50% #39.24 - # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - xorl %ecx, %ecx #39.5 - movl %ebx, %r9d #39.5 - xorl %eax, %eax #39.5 - movl $1, %r10d #39.5 - xorl %edi, %edi #40.17 - shrl $1, %r9d #39.5 - je ..B1.6 # Prob 9% #39.5 - # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] - incq %rcx #39.5 - lea (%rax,%r15), %r10 #40.9 - movq %rdi, (%r10) #40.9 - movq %rdi, (%rax,%r14) #41.9 - movq %rdi, (%rax,%rdx) #42.9 - movq %rdi, 8(%r10) #40.9 - movq %rdi, 8(%rax,%r14) #41.9 - movq %rdi, 8(%rax,%rdx) #42.9 - addq $16, %rax #39.5 - cmpq %r9, %rcx #39.5 - jb ..B1.4 # Prob 63% #39.5 - # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rcx,%rcx), %r10d #40.9 - # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r10), %eax #39.5 - cmpl %ebx, %eax #39.5 - jae ..B1.8 # Prob 9% #39.5 - # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r10d, %r10 #39.5 - movq %rdi, -8(%r15,%r10,8) #40.9 - movq %rdi, -8(%r14,%r10,8) #41.9 - movq %rdi, -8(%rdx,%r10,8) #42.9 - # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 - xorl %eax, %eax #46.15 - vbroadcastsd %xmm4, %ymm7 #33.45 - vbroadcastsd %xmm6, %ymm8 #69.45 - vbroadcastsd %xmm3, %ymm2 #34.23 - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 - vmovupd %ymm7, 96(%rsp) #51.25[spill] - vmovupd %ymm2, 352(%rsp) #51.25[spill] - vmovupd %ymm8, 320(%rsp) #51.25[spill] - movslq 16(%r8), %rcx #47.43 - xorl %r11d, %r11d #46.5 - movq 8(%r8), %r10 #47.19 - movq 24(%r8), %r9 #48.25 - movslq %ebx, %rbx #46.5 - shlq $2, %rcx #47.9 - movq 16(%rsi), %r8 #49.25 - movq 24(%rsi), %rdi #50.25 - movq 32(%rsi), %rsi #51.25 - movq %rcx, 16(%rsp) #51.25[spill] - movq %rbx, 24(%rsp) #51.25[spill] - movq %r9, 32(%rsp) #51.25[spill] - movq %r10, 40(%rsp) #51.25[spill] - movq %r15, 72(%rsp) #51.25[spill] - movq %r12, (%rsp) #51.25[spill] - movq %r13, 8(%rsp) #51.25[spill] - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 -..B1.9: # Preds ..B1.35 ..B1.8 - # Execution count [5.00e+00] - imulq 16(%rsp), %rax #47.43[spill] - addq 40(%rsp), %rax #47.9[spill] - vxorpd %xmm9, %xmm9, %xmm9 #52.22 - movq 32(%rsp), %r12 #48.25[spill] - movq %rax, %rcx #59.13 - vmovsd (%rdi,%r11,8), %xmm10 #50.25 - andq $31, %rcx #59.13 - vmovsd (%r8,%r11,8), %xmm1 #49.25 - movl %ecx, %r15d #59.13 - vmovsd (%rsi,%r11,8), %xmm7 #51.25 - negl %r15d #59.13 - vbroadcastsd %xmm10, %ymm5 #50.25 - movl %ecx, %r10d #59.13 - vbroadcastsd %xmm1, %ymm11 #49.25 - vmovapd %xmm9, %xmm8 #53.22 - vbroadcastsd %xmm7, %ymm15 #51.25 - vmovapd %xmm8, %xmm2 #54.22 - vmovupd %ymm5, 160(%rsp) #51.25[spill] - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 - vmovupd %ymm15, 192(%rsp) #51.25[spill] - vmovupd %ymm11, 128(%rsp) #51.25[spill] - movslq (%r12,%r11,4), %r12 #48.25 - movl %r12d, %ebx #59.13 - vxorpd %ymm14, %ymm14, %ymm14 #52.22 - movl %ebx, %r9d #59.13 - vmovdqa %ymm14, %ymm13 #53.22 - andl $-4, %r9d #59.13 - vmovdqa %ymm13, %ymm12 #54.22 - addl $32, %r15d #59.13 - movslq %r9d, %r9 #59.13 - xorl %r13d, %r13d #58.9 - shrl $2, %r15d #59.13 - andl $3, %r10d #59.13 - vmovupd %ymm12, 288(%rsp) #51.25[spill] - vmovupd %ymm13, 256(%rsp) #51.25[spill] - vmovupd %ymm14, 224(%rsp) #51.25[spill] - movq %r11, 48(%rsp) #51.25[spill] - movq %rdx, 56(%rsp) #51.25[spill] - movq %r14, 64(%rsp) #51.25[spill] - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.10: # Preds ..B1.34 ..B1.9 - # Execution count [5.00e+03] - testq %r12, %r12 #59.32 - jle ..B1.34 # Prob 50% #59.32 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+03] - cmpq $4, %r12 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+03] - cmpq $600, %r12 #59.13 - jl ..B1.41 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.13: # Preds ..B1.12 - # Execution count [4.50e+03] - movl %ecx, %r11d #59.13 - testl %ecx, %ecx #59.13 - je ..B1.16 # Prob 50% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.14: # Preds ..B1.13 - # Execution count [4.50e+03] - testl %r10d, %r10d #59.13 - jne ..B1.39 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.15: # Preds ..B1.14 - # Execution count [2.25e+03] - movl %r15d, %r11d #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.16: # Preds ..B1.15 ..B1.13 - # Execution count [4.50e+03] - movl %r11d, %edx #59.13 - lea 4(%rdx), %r14 #59.13 - cmpq %r14, %r12 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rdx rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.17: # Preds ..B1.16 - # Execution count [5.00e+03] - movl %ebx, %r14d #59.13 - subl %r11d, %r14d #59.13 - andl $3, %r14d #59.13 - negl %r14d #59.13 - addl %ebx, %r14d #59.13 - movslq %r14d, %r14 #59.13 - testl %r11d, %r11d #59.13 - movl $0, %r11d #59.13 - jbe ..B1.23 # Prob 10% #59.13 - # LOE rax rdx rsi rdi r8 r9 r11 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.18: # Preds ..B1.17 - # Execution count [4.50e+03] - movq %r12, 80(%rsp) #[spill] - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.19: # Preds ..B1.21 ..B1.18 - # Execution count [2.50e+04] - movslq (%rax,%r11,4), %r12 #60.25 - vsubsd (%rdi,%r12,8), %xmm10, %xmm13 #62.40 - vsubsd (%r8,%r12,8), %xmm1, %xmm12 #61.40 - vsubsd (%rsi,%r12,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.21 # Prob 50% #66.26 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.20: # Preds ..B1.19 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.21: # Preds ..B1.20 ..B1.19 - # Execution count [2.50e+04] - incq %r11 #59.13 - cmpq %rdx, %r11 #59.13 - jb ..B1.19 # Prob 82% #59.13 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.22: # Preds ..B1.21 - # Execution count [4.50e+03] - movq 80(%rsp), %r12 #[spill] - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.23: # Preds ..B1.22 ..B1.17 ..B1.41 - # Execution count [4.50e+03] - vmovsd %xmm9, 392(%rsp) #61.40[spill] - vmovsd %xmm10, 408(%rsp) #61.40[spill] - vmovsd %xmm1, 416(%rsp) #61.40[spill] - vmovsd %xmm6, 424(%rsp) #61.40[spill] - vmovsd %xmm3, 432(%rsp) #61.40[spill] - vmovsd %xmm4, 440(%rsp) #61.40[spill] - vmovsd %xmm2, 88(%rsp) #61.40[spill] - vmovsd %xmm8, 384(%rsp) #61.40[spill] - vmovsd %xmm7, 400(%rsp) #61.40[spill] - vmovupd 192(%rsp), %ymm6 #61.40[spill] - vmovupd 160(%rsp), %ymm4 #61.40[spill] - vmovupd 128(%rsp), %ymm5 #61.40[spill] - vmovupd 288(%rsp), %ymm3 #61.40[spill] - vmovupd 256(%rsp), %ymm1 #61.40[spill] - vmovupd 224(%rsp), %ymm12 #61.40[spill] - vmovupd 96(%rsp), %ymm11 #61.40[spill] - vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #61.40 - vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #61.40 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.24: # Preds ..B1.26 ..B1.23 - # Execution count [2.50e+04] - vmovups (%rax,%rdx,4), %xmm2 #60.25 - vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 - vxorpd %ymm8, %ymm8, %ymm8 #61.40 - vmovdqa %ymm13, %ymm0 #61.40 - vxorpd %ymm14, %ymm14, %ymm14 #62.40 - vmovdqa %ymm13, %ymm7 #62.40 - vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 - vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 - vsubpd %ymm8, %ymm5, %ymm0 #61.40 - vsubpd %ymm14, %ymm4, %ymm8 #62.40 - vxorpd %ymm7, %ymm7, %ymm7 #63.40 - vmovdqa %ymm13, %ymm15 #63.40 - vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 - vmulpd %ymm8, %ymm8, %ymm14 #64.53 - vsubpd %ymm7, %ymm6, %ymm2 #63.40 - vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 - vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 - vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 - vptest %ymm13, %ymm7 #66.26 - je ..B1.26 # Prob 50% #66.26 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 -..B1.25: # Preds ..B1.24 - # Execution count [1.25e+04] - vdivpd %ymm14, %ymm10, %ymm13 #67.42 - vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] - vmulpd %ymm14, %ymm13, %ymm14 #68.48 - vmulpd %ymm14, %ymm13, %ymm15 #68.54 - vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 - vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] - vmulpd %ymm13, %ymm15, %ymm15 #69.65 - vmulpd %ymm14, %ymm15, %ymm13 #69.71 - vmulpd %ymm13, %ymm0, %ymm0 #70.35 - vmulpd %ymm13, %ymm8, %ymm8 #71.35 - vandpd %ymm0, %ymm7, %ymm0 #70.35 - vaddpd %ymm0, %ymm12, %ymm12 #70.21 - vmulpd %ymm13, %ymm2, %ymm0 #72.35 - vandpd %ymm8, %ymm7, %ymm2 #71.35 - vandpd %ymm0, %ymm7, %ymm7 #72.35 - vaddpd %ymm2, %ymm1, %ymm1 #71.21 - vaddpd %ymm7, %ymm3, %ymm3 #72.21 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.26: # Preds ..B1.25 ..B1.24 - # Execution count [2.50e+04] - addq $4, %rdx #59.13 - cmpq %r14, %rdx #59.13 - jb ..B1.24 # Prob 82% #59.13 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.27: # Preds ..B1.26 - # Execution count [4.50e+03] - vmovupd %ymm3, 288(%rsp) #[spill] - vmovupd %ymm1, 256(%rsp) #[spill] - vmovsd 88(%rsp), %xmm2 #[spill] - vmovsd 384(%rsp), %xmm8 #[spill] - vmovsd 392(%rsp), %xmm9 #[spill] - vmovsd 400(%rsp), %xmm7 #[spill] - vmovsd 408(%rsp), %xmm10 #[spill] - vmovsd 416(%rsp), %xmm1 #[spill] - vmovsd 424(%rsp), %xmm6 #[spill] - vmovsd 432(%rsp), %xmm3 #[spill] - vmovsd 440(%rsp), %xmm4 #[spill] - vmovupd %ymm12, 224(%rsp) #[spill] - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.28: # Preds ..B1.27 ..B1.39 - # Execution count [5.00e+03] - cmpq %r12, %r14 #59.13 - jae ..B1.34 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.30: # Preds ..B1.28 ..B1.32 - # Execution count [2.50e+04] - movslq (%rax,%r14,4), %rdx #60.25 - vsubsd (%rdi,%rdx,8), %xmm10, %xmm13 #62.40 - vsubsd (%r8,%rdx,8), %xmm1, %xmm12 #61.40 - vsubsd (%rsi,%rdx,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.32 # Prob 50% #66.26 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.31: # Preds ..B1.30 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.32: # Preds ..B1.31 ..B1.30 - # Execution count [2.50e+04] - incq %r14 #59.13 - cmpq %r12, %r14 #59.13 - jb ..B1.30 # Prob 82% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 - # Execution count [5.00e+03] - .byte 15 #58.9 - .byte 31 #58.9 - .byte 64 #58.9 - .byte 0 #58.9 - incl %r13d #58.9 - cmpl $1000, %r13d #58.9 - jb ..B1.10 # Prob 99% #58.9 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.35: # Preds ..B1.34 - # Execution count [5.00e+00] - vmovupd 288(%rsp), %ymm12 #[spill] - vmovupd 256(%rsp), %ymm13 #[spill] - vmovupd 224(%rsp), %ymm14 #[spill] - movq 72(%rsp), %rax #77.9[spill] - movq 48(%rsp), %r11 #[spill] - movq 64(%rsp), %r14 #[spill] - movq 56(%rsp), %rdx #[spill] - vextractf128 $1, %ymm12, %xmm1 #54.22 - vextractf128 $1, %ymm13, %xmm11 #53.22 - vaddpd %xmm1, %xmm12, %xmm5 #54.22 - vaddpd %xmm11, %xmm13, %xmm15 #53.22 - vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 - vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 - vaddsd %xmm7, %xmm5, %xmm10 #54.22 - vaddsd %xmm1, %xmm15, %xmm5 #53.22 - vaddsd %xmm2, %xmm10, %xmm2 #54.22 - vaddsd %xmm8, %xmm5, %xmm5 #53.22 - vextractf128 $1, %ymm14, %xmm8 #52.22 - vaddpd %xmm8, %xmm14, %xmm8 #52.22 - vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 - vaddsd %xmm14, %xmm8, %xmm1 #52.22 - vaddsd %xmm9, %xmm1, %xmm9 #52.22 - vaddsd (%rax,%r11,8), %xmm9, %xmm1 #77.9 - vmovsd %xmm1, (%rax,%r11,8) #77.9 - movslq %r11d, %rax #46.32 - vaddsd (%r14,%r11,8), %xmm5, %xmm7 #78.9 - vmovsd %xmm7, (%r14,%r11,8) #78.9 - incq %rax #46.32 - vaddsd (%rdx,%r11,8), %xmm2, %xmm2 #79.9 - vmovsd %xmm2, (%rdx,%r11,8) #79.9 - incq %r11 #46.5 - cmpq 24(%rsp), %r11 #46.5[spill] - jb ..B1.9 # Prob 82% #46.5 - # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 -..B1.36: # Preds ..B1.35 - # Execution count [9.00e-01] - movq (%rsp), %r12 #[spill] - .cfi_restore 12 - movq 8(%rsp), %r13 #[spill] - .cfi_restore 13 - # LOE r12 r13 -..B1.38: # Preds ..B1.1 ..B1.36 - # Execution count [1.00e+00] - vzeroupper #82.12 - vxorpd %xmm0, %xmm0, %xmm0 #82.12 - addq $456, %rsp #82.12 - .cfi_restore 3 - popq %rbx #82.12 - .cfi_restore 15 - popq %r15 #82.12 - .cfi_restore 14 - popq %r14 #82.12 - movq %rbp, %rsp #82.12 - popq %rbp #82.12 - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret #82.12 - .cfi_def_cfa 6, 16 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_offset 6, -16 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - # LOE -..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 - # Execution count [4.50e+02]: Infreq - xorl %r14d, %r14d #59.13 - jmp ..B1.28 # Prob 100% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.41: # Preds ..B1.12 - # Execution count [4.50e+02]: Infreq - movq %r9, %r14 #59.13 - xorl %edx, %edx #59.13 - jmp ..B1.23 # Prob 100% #59.13 - .align 16,0x90 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 32 - .align 32 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,32 - .align 32 -.L_2il0floatpacket.3: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,32 - .align 8 -.L_2il0floatpacket.0: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,8 - .align 8 -.L_2il0floatpacket.1: - .long 0x00000000,0x3fe00000 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,8 - .align 8 -.L_2il0floatpacket.4: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx2/force_soa_lt600_markers.s b/asm/avx2/force_soa_lt600_markers.s deleted file mode 100644 index b694716..0000000 --- a/asm/avx2/force_soa_lt600_markers.s +++ /dev/null @@ -1,12571 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DINTERNAL_LOOP_NTIMES=1000 -DALIGNMENT=64 -restrict -fast -"; -# mark_description "xCORE-AVX2 -o ICC/force.s"; - .file "force.c" - .section __ildata, "" - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 236 - .byte 213 - .byte 42 - .byte 66 - .byte 178 - .byte 52 - .byte 67 - .byte 28 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 207 - .byte 30 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 83 - .byte 16 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 250 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 192 - .byte 1 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 30 - .byte 0 - .byte 0 - .byte 80 - .byte 0 - .byte 0 - .byte 0 - .byte 82 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 157 - .byte 3 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 0 - .byte 0 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 54 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 29 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 18 - .byte 0 - .byte 1 - .byte 1 - .byte 52 - .byte 9 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 2 - .byte 186 - .byte 1 - .byte 186 - .byte 1 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 3 - .byte 189 - .byte 1 - .byte 194 - .byte 0 - .byte 128 - .byte 1 - .byte 2 - .byte 4 - .byte 0 - .byte 2 - .byte 0 - .byte 2 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 4 - .byte 190 - .byte 1 - .byte 190 - .byte 1 - .byte 128 - .byte 1 - .byte 1 - .byte 3 - .byte 0 - .byte 1 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 5 - .byte 18 - .byte 61 - .byte 136 - .byte 1 - .byte 2 - .byte 3 - .byte 0 - .byte 1 - .byte 0 - .byte 2 - .byte 6 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 6 - .byte 187 - .byte 1 - .byte 187 - .byte 1 - .byte 0 - .byte 1 - .byte 5 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 7 - .byte 195 - .byte 1 - .byte 27 - .byte 187 - .byte 3 - .byte 2 - .byte 17 - .byte 0 - .byte 6 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 8 - .byte 193 - .byte 1 - .byte 55 - .byte 149 - .byte 3 - .byte 2 - .byte 15 - .byte 0 - .byte 7 - .byte 0 - .byte 2 - .byte 9 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 9 - .byte 188 - .byte 1 - .byte 188 - .byte 1 - .byte 0 - .byte 1 - .byte 8 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 10 - .byte 191 - .byte 1 - .byte 40 - .byte 135 - .byte 3 - .byte 2 - .byte 13 - .byte 0 - .byte 9 - .byte 0 - .byte 2 - .byte 11 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 1 - .byte 1 - .byte 11 - .byte 34 - .byte 39 - .byte 187 - .byte 2 - .byte 1 - .byte 10 - .byte 0 - .byte 1 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 12 - .byte 41 - .byte 206 - .byte 0 - .byte 254 - .byte 2 - .byte 2 - .byte 11 - .byte 0 - .byte 10 - .byte 0 - .byte 2 - .byte 13 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 13 - .byte 192 - .byte 1 - .byte 192 - .byte 1 - .byte 135 - .byte 3 - .byte 1 - .byte 12 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 14 - .byte 43 - .byte 202 - .byte 0 - .byte 140 - .byte 3 - .byte 2 - .byte 12 - .byte 0 - .byte 8 - .byte 0 - .byte 2 - .byte 15 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 16 - .byte 1 - .byte 128 - .byte 152 - .byte 179 - .byte 238 - .byte 3 - .byte 15 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 15 - .byte 194 - .byte 1 - .byte 194 - .byte 1 - .byte 149 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 16 - .byte 185 - .byte 1 - .byte 198 - .byte 0 - .byte 158 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 2 - .byte 17 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 18 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 17 - .byte 196 - .byte 1 - .byte 196 - .byte 1 - .byte 187 - .byte 3 - .byte 1 - .byte 16 - .byte 0 - .byte 1 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 18 - .byte 50 - .byte 50 - .byte 192 - .byte 3 - .byte 2 - .byte 16 - .byte 0 - .byte 5 - .byte 0 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 76 - .byte 9 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 2 - .byte 0 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 11 - .byte 3 - .byte 12 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 2 - .byte 72 - .byte 38 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 180 - .byte 7 - .byte 18 - .byte 65 - .byte 67 - .byte 4 - .byte 72 - .byte 48 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 5 - .byte 2 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 182 - .byte 7 - .byte 35 - .byte 65 - .byte 67 - .byte 5 - .byte 72 - .byte 54 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 6 - .byte 4 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 185 - .byte 7 - .byte 41 - .byte 65 - .byte 67 - .byte 6 - .byte 72 - .byte 60 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 7 - .byte 5 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 187 - .byte 7 - .byte 48 - .byte 65 - .byte 67 - .byte 7 - .byte 72 - .byte 194 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 8 - .byte 6 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 189 - .byte 7 - .byte 55 - .byte 65 - .byte 67 - .byte 8 - .byte 72 - .byte 200 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 9 - .byte 7 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 191 - .byte 7 - .byte 62 - .byte 65 - .byte 67 - .byte 9 - .byte 72 - .byte 206 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 12 - .byte 8 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 193 - .byte 7 - .byte 197 - .byte 0 - .byte 65 - .byte 67 - .byte 12 - .byte 72 - .byte 214 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 52 - .byte 9 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 195 - .byte 7 - .byte 204 - .byte 0 - .byte 65 - .byte 67 - .byte 13 - .byte 72 - .byte 227 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 14 - .byte 189 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 214 - .byte 0 - .byte 205 - .byte 0 - .byte 65 - .byte 67 - .byte 14 - .byte 72 - .byte 235 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 15 - .byte 13 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 224 - .byte 0 - .byte 215 - .byte 0 - .byte 65 - .byte 67 - .byte 15 - .byte 72 - .byte 243 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 16 - .byte 14 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 234 - .byte 0 - .byte 225 - .byte 0 - .byte 65 - .byte 67 - .byte 16 - .byte 72 - .byte 247 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 194 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 203 - .byte 7 - .byte 238 - .byte 0 - .byte 65 - .byte 67 - .byte 18 - .byte 72 - .byte 136 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 61 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte 0 - .byte 207 - .byte 7 - .byte 243 - .byte 0 - .byte 65 - .byte 67 - .byte 19 - .byte 72 - .byte 167 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 20 - .byte 195 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 209 - .byte 7 - .byte 133 - .byte 1 - .byte 65 - .byte 67 - .byte 20 - .byte 72 - .byte 175 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 21 - .byte 19 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 213 - .byte 7 - .byte 149 - .byte 1 - .byte 65 - .byte 67 - .byte 21 - .byte 72 - .byte 181 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 22 - .byte 20 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 216 - .byte 7 - .byte 164 - .byte 1 - .byte 65 - .byte 67 - .byte 22 - .byte 72 - .byte 188 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 23 - .byte 21 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 219 - .byte 7 - .byte 179 - .byte 1 - .byte 65 - .byte 67 - .byte 23 - .byte 72 - .byte 195 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 24 - .byte 22 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 222 - .byte 7 - .byte 194 - .byte 1 - .byte 65 - .byte 67 - .byte 24 - .byte 72 - .byte 200 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 25 - .byte 23 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 225 - .byte 7 - .byte 196 - .byte 1 - .byte 65 - .byte 67 - .byte 25 - .byte 72 - .byte 204 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 26 - .byte 24 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 226 - .byte 7 - .byte 198 - .byte 1 - .byte 65 - .byte 67 - .byte 26 - .byte 72 - .byte 208 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 27 - .byte 25 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 227 - .byte 7 - .byte 200 - .byte 1 - .byte 65 - .byte 67 - .byte 27 - .byte 72 - .byte 214 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 193 - .byte 1 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 228 - .byte 7 - .byte 202 - .byte 1 - .byte 65 - .byte 67 - .byte 28 - .byte 72 - .byte 226 - .byte 1 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 55 - .byte 193 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 229 - .byte 7 - .byte 204 - .byte 1 - .byte 65 - .byte 67 - .byte 29 - .byte 72 - .byte 251 - .byte 1 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 30 - .byte 191 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 231 - .byte 7 - .byte 214 - .byte 1 - .byte 65 - .byte 67 - .byte 30 - .byte 72 - .byte 131 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 31 - .byte 29 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 234 - .byte 7 - .byte 231 - .byte 1 - .byte 65 - .byte 67 - .byte 31 - .byte 72 - .byte 140 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 32 - .byte 30 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 238 - .byte 7 - .byte 248 - .byte 1 - .byte 65 - .byte 67 - .byte 32 - .byte 72 - .byte 149 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 33 - .byte 31 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 242 - .byte 7 - .byte 137 - .byte 2 - .byte 65 - .byte 67 - .byte 33 - .byte 72 - .byte 166 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 40 - .byte 32 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 246 - .byte 7 - .byte 149 - .byte 2 - .byte 65 - .byte 67 - .byte 34 - .byte 72 - .byte 187 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 35 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 255 - .byte 7 - .byte 153 - .byte 2 - .byte 65 - .byte 67 - .byte 35 - .byte 72 - .byte 199 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 36 - .byte 34 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 129 - .byte 8 - .byte 161 - .byte 2 - .byte 65 - .byte 67 - .byte 36 - .byte 72 - .byte 215 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 37 - .byte 35 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 134 - .byte 8 - .byte 173 - .byte 2 - .byte 65 - .byte 67 - .byte 37 - .byte 72 - .byte 223 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 38 - .byte 36 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 139 - .byte 8 - .byte 179 - .byte 2 - .byte 65 - .byte 67 - .byte 38 - .byte 72 - .byte 231 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 39 - .byte 37 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 143 - .byte 8 - .byte 185 - .byte 2 - .byte 65 - .byte 67 - .byte 39 - .byte 72 - .byte 239 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 178 - .byte 4 - .byte 0 - .byte 38 - .byte 0 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 147 - .byte 8 - .byte 191 - .byte 2 - .byte 65 - .byte 67 - .byte 40 - .byte 78 - .byte 249 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 41 - .byte 33 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 194 - .byte 2 - .byte 0 - .byte 34 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 41 - .byte 72 - .byte 254 - .byte 2 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 206 - .byte 0 - .byte 40 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 151 - .byte 8 - .byte 198 - .byte 2 - .byte 65 - .byte 67 - .byte 43 - .byte 72 - .byte 140 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 202 - .byte 0 - .byte 55 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 155 - .byte 8 - .byte 205 - .byte 2 - .byte 65 - .byte 67 - .byte 45 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 46 - .byte 183 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 218 - .byte 2 - .byte 228 - .byte 2 - .byte 65 - .byte 67 - .byte 46 - .byte 72 - .byte 166 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 47 - .byte 45 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 238 - .byte 2 - .byte 248 - .byte 2 - .byte 65 - .byte 67 - .byte 47 - .byte 72 - .byte 174 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 48 - .byte 46 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 130 - .byte 3 - .byte 140 - .byte 3 - .byte 65 - .byte 67 - .byte 48 - .byte 72 - .byte 178 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 198 - .byte 0 - .byte 47 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 179 - .byte 8 - .byte 144 - .byte 3 - .byte 65 - .byte 67 - .byte 50 - .byte 77 - .byte 192 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 0 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 18 - .byte 0 - .byte 150 - .byte 3 - .byte 67 - .byte 52 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 18 - .byte 12 - .byte 2 - .byte 1 - .byte 0 - .byte 1 - .byte 0 - .byte 241 - .byte 0 - .byte 0 - .byte 186 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 55 - .byte 78 - .byte 135 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 43 - .byte 28 - .byte 2 - .byte 1 - .byte 0 - .byte 8 - .byte 0 - .byte 201 - .byte 2 - .byte 0 - .byte 188 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 61 - .byte 78 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 50 - .byte 18 - .byte 2 - .byte 1 - .byte 0 - .byte 5 - .byte 0 - .byte 147 - .byte 3 - .byte 0 - .byte 187 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 194 - .byte 0 - .byte 78 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 16 - .byte 2 - .byte 1 - .byte 0 - .byte 3 - .byte 0 - .byte 151 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 198 - .byte 0 - .byte 78 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 48 - .byte 2 - .byte 1 - .byte 0 - .byte 16 - .byte 0 - .byte 154 - .byte 3 - .byte 0 - .byte 196 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 202 - .byte 0 - .byte 78 - .byte 149 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 185 - .byte 1 - .byte 43 - .byte 2 - .byte 1 - .byte 0 - .byte 14 - .byte 0 - .byte 157 - .byte 3 - .byte 0 - .byte 194 - .byte 1 - .byte 205 - .byte 153 - .byte 159 - .byte 150 - .byte 4 - .byte 206 - .byte 0 - .byte 78 - .byte 135 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 0 - .byte 41 - .byte 2 - .byte 1 - .byte 0 - .byte 12 - .byte 0 - .byte 160 - .byte 3 - .byte 0 - .byte 192 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 183 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 45 - .byte 184 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 162 - .byte 8 - .byte 163 - .byte 8 - .byte 65 - .byte 67 - .byte 184 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 183 - .byte 1 - .byte 185 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 160 - .byte 8 - .byte 161 - .byte 8 - .byte 65 - .byte 67 - .byte 185 - .byte 1 - .byte 72 - .byte 158 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 184 - .byte 1 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 158 - .byte 8 - .byte 159 - .byte 8 - .byte 65 - .byte 67 - .byte 186 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 189 - .byte 1 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 187 - .byte 1 - .byte 93 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 195 - .byte 1 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 6 - .byte 0 - .byte 188 - .byte 1 - .byte 93 - .byte 0 - .byte 140 - .byte 193 - .byte 178 - .byte 172 - .byte 4 - .byte 191 - .byte 1 - .byte 55 - .byte 0 - .byte 0 - .byte 0 - .byte 9 - .byte 0 - .byte 189 - .byte 1 - .byte 93 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 13 - .byte 186 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 190 - .byte 1 - .byte 80 - .byte 128 - .byte 1 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 194 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 189 - .byte 1 - .byte 191 - .byte 1 - .byte 93 - .byte 135 - .byte 3 - .byte 195 - .byte 161 - .byte 141 - .byte 182 - .byte 4 - .byte 29 - .byte 188 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 192 - .byte 1 - .byte 80 - .byte 135 - .byte 3 - .byte 160 - .byte 209 - .byte 128 - .byte 181 - .byte 4 - .byte 0 - .byte 206 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 13 - .byte 0 - .byte 191 - .byte 1 - .byte 193 - .byte 1 - .byte 93 - .byte 149 - .byte 3 - .byte 156 - .byte 129 - .byte 241 - .byte 172 - .byte 4 - .byte 28 - .byte 27 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 194 - .byte 1 - .byte 80 - .byte 149 - .byte 3 - .byte 156 - .byte 177 - .byte 240 - .byte 172 - .byte 4 - .byte 0 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 15 - .byte 0 - .byte 193 - .byte 1 - .byte 195 - .byte 1 - .byte 93 - .byte 187 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 19 - .byte 187 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 196 - .byte 1 - .byte 80 - .byte 187 - .byte 3 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 198 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 195 - .byte 1 - .byte 1 - .byte 1 - .byte 7 - .byte 1 - .byte 2 - .byte 1 - .byte 7 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 11 - .byte 7 - .byte 6 - .byte 1 - .byte 0 - .byte 2 - .byte 80 - .byte 4 - .byte 1 - .byte 7 - .byte 2 - .byte 5 - .byte 1 - .byte 7 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 11 - .byte 7 - .byte 9 - .byte 4 - .byte 0 - .byte 5 - .byte 80 - .byte 7 - .byte 1 - .byte 7 - .byte 3 - .byte 8 - .byte 1 - .byte 7 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 11 - .byte 7 - .byte 0 - .byte 7 - .byte 0 - .byte 8 - .byte 80 - .byte 10 - .byte 1 - .byte 7 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 11 - .byte 7 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 80 - .byte 12 - .byte 0 - .byte 9 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 17 - .byte 0 - .byte 38 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 18 - .byte 8 - .byte 38 - .byte 181 - .byte 7 - .byte 19 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 19 - .byte 1 - .byte 38 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 46 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 27 - .byte 8 - .byte 46 - .byte 183 - .byte 7 - .byte 28 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 28 - .byte 1 - .byte 46 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 48 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 33 - .byte 8 - .byte 48 - .byte 184 - .byte 7 - .byte 34 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 34 - .byte 1 - .byte 48 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 35 - .byte 21 - .byte 48 - .byte 27 - .byte 33 - .byte 12 - .byte 40 - .byte 0 - .byte 54 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 41 - .byte 8 - .byte 54 - .byte 186 - .byte 7 - .byte 42 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 40 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 42 - .byte 1 - .byte 54 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 60 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 48 - .byte 8 - .byte 60 - .byte 188 - .byte 7 - .byte 49 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 49 - .byte 1 - .byte 60 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 194 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 55 - .byte 8 - .byte 194 - .byte 0 - .byte 190 - .byte 7 - .byte 56 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 54 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 56 - .byte 1 - .byte 194 - .byte 0 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 200 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 62 - .byte 8 - .byte 200 - .byte 0 - .byte 192 - .byte 7 - .byte 63 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 63 - .byte 1 - .byte 200 - .byte 0 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 206 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 197 - .byte 0 - .byte 8 - .byte 206 - .byte 0 - .byte 194 - .byte 7 - .byte 198 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 196 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 198 - .byte 0 - .byte 1 - .byte 206 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 204 - .byte 0 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 205 - .byte 0 - .byte 0 - .byte 223 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 208 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 0 - .byte 15 - .byte 227 - .byte 0 - .byte 198 - .byte 7 - .byte 7 - .byte 6 - .byte 210 - .byte 0 - .byte 22 - .byte 227 - .byte 0 - .byte 209 - .byte 0 - .byte 208 - .byte 0 - .byte 7 - .byte 211 - .byte 0 - .byte 19 - .byte 227 - .byte 0 - .byte 197 - .byte 7 - .byte 210 - .byte 0 - .byte 36 - .byte 212 - .byte 0 - .byte 1 - .byte 227 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 227 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 0 - .byte 8 - .byte 227 - .byte 0 - .byte 211 - .byte 0 - .byte 212 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 215 - .byte 0 - .byte 0 - .byte 231 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 218 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 219 - .byte 0 - .byte 15 - .byte 235 - .byte 0 - .byte 200 - .byte 7 - .byte 7 - .byte 6 - .byte 220 - .byte 0 - .byte 22 - .byte 235 - .byte 0 - .byte 219 - .byte 0 - .byte 218 - .byte 0 - .byte 7 - .byte 221 - .byte 0 - .byte 19 - .byte 235 - .byte 0 - .byte 199 - .byte 7 - .byte 220 - .byte 0 - .byte 36 - .byte 222 - .byte 0 - .byte 1 - .byte 235 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 235 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 224 - .byte 0 - .byte 8 - .byte 235 - .byte 0 - .byte 221 - .byte 0 - .byte 222 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 225 - .byte 0 - .byte 0 - .byte 239 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 228 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 229 - .byte 0 - .byte 15 - .byte 243 - .byte 0 - .byte 202 - .byte 7 - .byte 7 - .byte 6 - .byte 230 - .byte 0 - .byte 22 - .byte 243 - .byte 0 - .byte 229 - .byte 0 - .byte 228 - .byte 0 - .byte 7 - .byte 231 - .byte 0 - .byte 19 - .byte 243 - .byte 0 - .byte 201 - .byte 7 - .byte 230 - .byte 0 - .byte 36 - .byte 232 - .byte 0 - .byte 1 - .byte 243 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 243 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 234 - .byte 0 - .byte 8 - .byte 243 - .byte 0 - .byte 231 - .byte 0 - .byte 232 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 236 - .byte 0 - .byte 0 - .byte 247 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 0 - .byte 19 - .byte 247 - .byte 0 - .byte 204 - .byte 7 - .byte 236 - .byte 0 - .byte 6 - .byte 241 - .byte 0 - .byte 46 - .byte 254 - .byte 0 - .byte 153 - .byte 7 - .byte 196 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 243 - .byte 0 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 248 - .byte 0 - .byte 0 - .byte 163 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 249 - .byte 0 - .byte 8 - .byte 163 - .byte 1 - .byte 212 - .byte 7 - .byte 250 - .byte 0 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 250 - .byte 0 - .byte 1 - .byte 163 - .byte 1 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 0 - .byte 22 - .byte 163 - .byte 1 - .byte 211 - .byte 7 - .byte 249 - .byte 0 - .byte 6 - .byte 255 - .byte 0 - .byte 0 - .byte 165 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 128 - .byte 1 - .byte 8 - .byte 165 - .byte 1 - .byte 210 - .byte 7 - .byte 129 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 129 - .byte 1 - .byte 1 - .byte 165 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 1 - .byte 0 - .byte 165 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 1 - .byte 15 - .byte 165 - .byte 1 - .byte 251 - .byte 0 - .byte 7 - .byte 6 - .byte 132 - .byte 1 - .byte 22 - .byte 165 - .byte 1 - .byte 131 - .byte 1 - .byte 130 - .byte 1 - .byte 7 - .byte 133 - .byte 1 - .byte 19 - .byte 165 - .byte 1 - .byte 128 - .byte 1 - .byte 132 - .byte 1 - .byte 36 - .byte 140 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 141 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 214 - .byte 7 - .byte 142 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 140 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 142 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 143 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 1 - .byte 15 - .byte 175 - .byte 1 - .byte 215 - .byte 7 - .byte 7 - .byte 6 - .byte 145 - .byte 1 - .byte 22 - .byte 175 - .byte 1 - .byte 144 - .byte 1 - .byte 143 - .byte 1 - .byte 7 - .byte 146 - .byte 1 - .byte 19 - .byte 175 - .byte 1 - .byte 141 - .byte 1 - .byte 145 - .byte 1 - .byte 36 - .byte 147 - .byte 1 - .byte 1 - .byte 175 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 175 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 1 - .byte 8 - .byte 175 - .byte 1 - .byte 146 - .byte 1 - .byte 147 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 148 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 155 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 156 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 217 - .byte 7 - .byte 157 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 155 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 157 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 158 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 159 - .byte 1 - .byte 15 - .byte 181 - .byte 1 - .byte 218 - .byte 7 - .byte 7 - .byte 6 - .byte 160 - .byte 1 - .byte 22 - .byte 181 - .byte 1 - .byte 159 - .byte 1 - .byte 158 - .byte 1 - .byte 7 - .byte 161 - .byte 1 - .byte 19 - .byte 181 - .byte 1 - .byte 156 - .byte 1 - .byte 160 - .byte 1 - .byte 36 - .byte 162 - .byte 1 - .byte 1 - .byte 181 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 1 - .byte 0 - .byte 181 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 1 - .byte 8 - .byte 181 - .byte 1 - .byte 161 - .byte 1 - .byte 162 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 170 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 171 - .byte 1 - .byte 8 - .byte 188 - .byte 1 - .byte 220 - .byte 7 - .byte 172 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 170 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 172 - .byte 1 - .byte 1 - .byte 188 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 173 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 174 - .byte 1 - .byte 15 - .byte 188 - .byte 1 - .byte 221 - .byte 7 - .byte 7 - .byte 6 - .byte 175 - .byte 1 - .byte 22 - .byte 188 - .byte 1 - .byte 174 - .byte 1 - .byte 173 - .byte 1 - .byte 7 - .byte 176 - .byte 1 - .byte 19 - .byte 188 - .byte 1 - .byte 171 - .byte 1 - .byte 175 - .byte 1 - .byte 36 - .byte 177 - .byte 1 - .byte 1 - .byte 188 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 179 - .byte 1 - .byte 8 - .byte 188 - .byte 1 - .byte 176 - .byte 1 - .byte 177 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 185 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 186 - .byte 1 - .byte 8 - .byte 195 - .byte 1 - .byte 223 - .byte 7 - .byte 187 - .byte 1 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 185 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 187 - .byte 1 - .byte 1 - .byte 195 - .byte 1 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 188 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 189 - .byte 1 - .byte 15 - .byte 195 - .byte 1 - .byte 224 - .byte 7 - .byte 7 - .byte 6 - .byte 190 - .byte 1 - .byte 22 - .byte 195 - .byte 1 - .byte 189 - .byte 1 - .byte 188 - .byte 1 - .byte 7 - .byte 191 - .byte 1 - .byte 19 - .byte 195 - .byte 1 - .byte 186 - .byte 1 - .byte 190 - .byte 1 - .byte 36 - .byte 192 - .byte 1 - .byte 1 - .byte 195 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 193 - .byte 1 - .byte 0 - .byte 195 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 194 - .byte 1 - .byte 8 - .byte 195 - .byte 1 - .byte 191 - .byte 1 - .byte 192 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 193 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 196 - .byte 1 - .byte 0 - .byte 200 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 1 - .byte 0 - .byte 204 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 200 - .byte 1 - .byte 0 - .byte 208 - .byte 1 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 202 - .byte 1 - .byte 0 - .byte 214 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 204 - .byte 1 - .byte 0 - .byte 226 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 208 - .byte 1 - .byte 0 - .byte 251 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 1 - .byte 15 - .byte 251 - .byte 1 - .byte 233 - .byte 7 - .byte 7 - .byte 6 - .byte 210 - .byte 1 - .byte 22 - .byte 251 - .byte 1 - .byte 209 - .byte 1 - .byte 208 - .byte 1 - .byte 7 - .byte 211 - .byte 1 - .byte 19 - .byte 251 - .byte 1 - .byte 232 - .byte 7 - .byte 210 - .byte 1 - .byte 36 - .byte 212 - .byte 1 - .byte 1 - .byte 251 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 1 - .byte 0 - .byte 251 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 214 - .byte 1 - .byte 8 - .byte 251 - .byte 1 - .byte 211 - .byte 1 - .byte 212 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 213 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 221 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 222 - .byte 1 - .byte 8 - .byte 131 - .byte 2 - .byte 236 - .byte 7 - .byte 223 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 223 - .byte 1 - .byte 1 - .byte 131 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 225 - .byte 1 - .byte 15 - .byte 131 - .byte 2 - .byte 237 - .byte 7 - .byte 7 - .byte 6 - .byte 226 - .byte 1 - .byte 22 - .byte 131 - .byte 2 - .byte 225 - .byte 1 - .byte 224 - .byte 1 - .byte 7 - .byte 227 - .byte 1 - .byte 19 - .byte 131 - .byte 2 - .byte 222 - .byte 1 - .byte 226 - .byte 1 - .byte 36 - .byte 228 - .byte 1 - .byte 1 - .byte 131 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 1 - .byte 0 - .byte 131 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 230 - .byte 1 - .byte 8 - .byte 131 - .byte 2 - .byte 227 - .byte 1 - .byte 228 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 231 - .byte 1 - .byte 20 - .byte 131 - .byte 2 - .byte 235 - .byte 7 - .byte 230 - .byte 1 - .byte 12 - .byte 238 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 239 - .byte 1 - .byte 8 - .byte 140 - .byte 2 - .byte 240 - .byte 7 - .byte 240 - .byte 1 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 240 - .byte 1 - .byte 1 - .byte 140 - .byte 2 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 242 - .byte 1 - .byte 15 - .byte 140 - .byte 2 - .byte 241 - .byte 7 - .byte 7 - .byte 6 - .byte 243 - .byte 1 - .byte 22 - .byte 140 - .byte 2 - .byte 242 - .byte 1 - .byte 241 - .byte 1 - .byte 7 - .byte 244 - .byte 1 - .byte 19 - .byte 140 - .byte 2 - .byte 239 - .byte 1 - .byte 243 - .byte 1 - .byte 36 - .byte 245 - .byte 1 - .byte 1 - .byte 140 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 1 - .byte 0 - .byte 140 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 247 - .byte 1 - .byte 8 - .byte 140 - .byte 2 - .byte 244 - .byte 1 - .byte 245 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 248 - .byte 1 - .byte 20 - .byte 140 - .byte 2 - .byte 239 - .byte 7 - .byte 247 - .byte 1 - .byte 12 - .byte 255 - .byte 1 - .byte 0 - .byte 149 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 128 - .byte 2 - .byte 8 - .byte 149 - .byte 2 - .byte 244 - .byte 7 - .byte 129 - .byte 2 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 129 - .byte 2 - .byte 1 - .byte 149 - .byte 2 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 130 - .byte 2 - .byte 0 - .byte 149 - .byte 2 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 2 - .byte 15 - .byte 149 - .byte 2 - .byte 245 - .byte 7 - .byte 7 - .byte 6 - .byte 132 - .byte 2 - .byte 22 - .byte 149 - .byte 2 - .byte 131 - .byte 2 - .byte 130 - .byte 2 - .byte 7 - .byte 133 - .byte 2 - .byte 19 - .byte 149 - .byte 2 - .byte 128 - .byte 2 - .byte 132 - .byte 2 - .byte 36 - .byte 134 - .byte 2 - .byte 1 - .byte 149 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 2 - .byte 0 - .byte 149 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 136 - .byte 2 - .byte 8 - .byte 149 - .byte 2 - .byte 133 - .byte 2 - .byte 134 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 137 - .byte 2 - .byte 20 - .byte 149 - .byte 2 - .byte 243 - .byte 7 - .byte 136 - .byte 2 - .byte 12 - .byte 141 - .byte 2 - .byte 21 - .byte 158 - .byte 2 - .byte 247 - .byte 7 - .byte 248 - .byte 7 - .byte 12 - .byte 144 - .byte 2 - .byte 21 - .byte 162 - .byte 2 - .byte 249 - .byte 7 - .byte 250 - .byte 7 - .byte 12 - .byte 145 - .byte 2 - .byte 19 - .byte 162 - .byte 2 - .byte 141 - .byte 2 - .byte 144 - .byte 2 - .byte 12 - .byte 148 - .byte 2 - .byte 21 - .byte 166 - .byte 2 - .byte 251 - .byte 7 - .byte 252 - .byte 7 - .byte 12 - .byte 149 - .byte 2 - .byte 19 - .byte 166 - .byte 2 - .byte 145 - .byte 2 - .byte 148 - .byte 2 - .byte 12 - .byte 151 - .byte 2 - .byte 0 - .byte 185 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 153 - .byte 2 - .byte 37 - .byte 187 - .byte 2 - .byte 151 - .byte 2 - .byte 128 - .byte 8 - .byte 12 - .byte 1 - .byte 5 - .byte 10 - .byte 109 - .byte 97 - .byte 120 - .byte 45 - .byte 101 - .byte 114 - .byte 114 - .byte 111 - .byte 114 - .byte 0 - .byte 4 - .byte 52 - .byte 46 - .byte 48 - .byte 0 - .byte 17 - .byte 100 - .byte 111 - .byte 109 - .byte 97 - .byte 105 - .byte 110 - .byte 45 - .byte 101 - .byte 120 - .byte 99 - .byte 108 - .byte 117 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 0 - .byte 3 - .byte 49 - .byte 53 - .byte 0 - .byte 18 - .byte 118 - .byte 97 - .byte 108 - .byte 105 - .byte 100 - .byte 45 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 117 - .byte 115 - .byte 45 - .byte 98 - .byte 105 - .byte 116 - .byte 115 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 5 - .byte 102 - .byte 117 - .byte 115 - .byte 97 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 8 - .byte 122 - .byte 109 - .byte 109 - .byte 45 - .byte 108 - .byte 111 - .byte 119 - .byte 0 - .byte 5 - .byte 116 - .byte 114 - .byte 117 - .byte 101 - .byte 0 - .byte 157 - .byte 2 - .byte 21 - .byte 195 - .byte 2 - .byte 130 - .byte 8 - .byte 131 - .byte 8 - .byte 12 - .byte 159 - .byte 2 - .byte 21 - .byte 197 - .byte 2 - .byte 157 - .byte 2 - .byte 132 - .byte 8 - .byte 12 - .byte 161 - .byte 2 - .byte 21 - .byte 199 - .byte 2 - .byte 159 - .byte 2 - .byte 133 - .byte 8 - .byte 12 - .byte 163 - .byte 2 - .byte 0 - .byte 205 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 165 - .byte 2 - .byte 21 - .byte 207 - .byte 2 - .byte 163 - .byte 2 - .byte 135 - .byte 8 - .byte 12 - .byte 167 - .byte 2 - .byte 0 - .byte 211 - .byte 2 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 168 - .byte 2 - .byte 20 - .byte 211 - .byte 2 - .byte 136 - .byte 8 - .byte 167 - .byte 2 - .byte 12 - .byte 169 - .byte 2 - .byte 21 - .byte 211 - .byte 2 - .byte 165 - .byte 2 - .byte 168 - .byte 2 - .byte 12 - .byte 171 - .byte 2 - .byte 21 - .byte 213 - .byte 2 - .byte 169 - .byte 2 - .byte 137 - .byte 8 - .byte 12 - .byte 173 - .byte 2 - .byte 21 - .byte 215 - .byte 2 - .byte 171 - .byte 2 - .byte 138 - .byte 8 - .byte 12 - .byte 176 - .byte 2 - .byte 21 - .byte 221 - .byte 2 - .byte 141 - .byte 8 - .byte 142 - .byte 8 - .byte 12 - .byte 179 - .byte 2 - .byte 19 - .byte 223 - .byte 2 - .byte 140 - .byte 8 - .byte 176 - .byte 2 - .byte 12 - .byte 182 - .byte 2 - .byte 21 - .byte 229 - .byte 2 - .byte 145 - .byte 8 - .byte 146 - .byte 8 - .byte 12 - .byte 185 - .byte 2 - .byte 19 - .byte 231 - .byte 2 - .byte 144 - .byte 8 - .byte 182 - .byte 2 - .byte 12 - .byte 188 - .byte 2 - .byte 21 - .byte 237 - .byte 2 - .byte 149 - .byte 8 - .byte 150 - .byte 8 - .byte 12 - .byte 191 - .byte 2 - .byte 19 - .byte 239 - .byte 2 - .byte 148 - .byte 8 - .byte 188 - .byte 2 - .byte 12 - .byte 194 - .byte 2 - .byte 46 - .byte 247 - .byte 2 - .byte 253 - .byte 7 - .byte 254 - .byte 7 - .byte 6 - .byte 4 - .byte 12 - .byte 196 - .byte 2 - .byte 0 - .byte 254 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 2 - .byte 19 - .byte 254 - .byte 2 - .byte 152 - .byte 8 - .byte 196 - .byte 2 - .byte 6 - .byte 201 - .byte 2 - .byte 46 - .byte 133 - .byte 3 - .byte 155 - .byte 7 - .byte 230 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 203 - .byte 2 - .byte 0 - .byte 140 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 205 - .byte 2 - .byte 19 - .byte 140 - .byte 3 - .byte 156 - .byte 8 - .byte 203 - .byte 2 - .byte 6 - .byte 212 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 213 - .byte 2 - .byte 15 - .byte 158 - .byte 3 - .byte 165 - .byte 8 - .byte 7 - .byte 6 - .byte 214 - .byte 2 - .byte 22 - .byte 158 - .byte 3 - .byte 213 - .byte 2 - .byte 212 - .byte 2 - .byte 7 - .byte 215 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 164 - .byte 8 - .byte 214 - .byte 2 - .byte 36 - .byte 216 - .byte 2 - .byte 1 - .byte 158 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 218 - .byte 2 - .byte 8 - .byte 158 - .byte 3 - .byte 215 - .byte 2 - .byte 216 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 219 - .byte 2 - .byte 8 - .byte 158 - .byte 3 - .byte 220 - .byte 2 - .byte 226 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 220 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 166 - .byte 8 - .byte 222 - .byte 2 - .byte 36 - .byte 222 - .byte 2 - .byte 22 - .byte 158 - .byte 3 - .byte 223 - .byte 2 - .byte 225 - .byte 2 - .byte 7 - .byte 223 - .byte 2 - .byte 15 - .byte 158 - .byte 3 - .byte 167 - .byte 8 - .byte 7 - .byte 6 - .byte 225 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 226 - .byte 2 - .byte 1 - .byte 158 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 2 - .byte 0 - .byte 158 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 228 - .byte 2 - .byte 19 - .byte 158 - .byte 3 - .byte 219 - .byte 2 - .byte 168 - .byte 8 - .byte 12 - .byte 232 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 233 - .byte 2 - .byte 15 - .byte 166 - .byte 3 - .byte 170 - .byte 8 - .byte 7 - .byte 6 - .byte 234 - .byte 2 - .byte 22 - .byte 166 - .byte 3 - .byte 233 - .byte 2 - .byte 232 - .byte 2 - .byte 7 - .byte 235 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 169 - .byte 8 - .byte 234 - .byte 2 - .byte 36 - .byte 236 - .byte 2 - .byte 1 - .byte 166 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 238 - .byte 2 - .byte 8 - .byte 166 - .byte 3 - .byte 235 - .byte 2 - .byte 236 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 239 - .byte 2 - .byte 8 - .byte 166 - .byte 3 - .byte 240 - .byte 2 - .byte 246 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 240 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 171 - .byte 8 - .byte 242 - .byte 2 - .byte 36 - .byte 242 - .byte 2 - .byte 22 - .byte 166 - .byte 3 - .byte 243 - .byte 2 - .byte 245 - .byte 2 - .byte 7 - .byte 243 - .byte 2 - .byte 15 - .byte 166 - .byte 3 - .byte 172 - .byte 8 - .byte 7 - .byte 6 - .byte 245 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 246 - .byte 2 - .byte 1 - .byte 166 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 2 - .byte 0 - .byte 166 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 248 - .byte 2 - .byte 19 - .byte 166 - .byte 3 - .byte 239 - .byte 2 - .byte 173 - .byte 8 - .byte 12 - .byte 252 - .byte 2 - .byte 0 - .byte 174 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 253 - .byte 2 - .byte 15 - .byte 174 - .byte 3 - .byte 175 - .byte 8 - .byte 7 - .byte 6 - .byte 254 - .byte 2 - .byte 22 - .byte 174 - .byte 3 - .byte 253 - .byte 2 - .byte 252 - .byte 2 - .byte 7 - .byte 255 - .byte 2 - .byte 19 - .byte 174 - .byte 3 - .byte 174 - .byte 8 - .byte 254 - .byte 2 - .byte 36 - .byte 128 - .byte 3 - .byte 1 - .byte 174 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 129 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 130 - .byte 3 - .byte 8 - .byte 174 - .byte 3 - .byte 255 - .byte 2 - .byte 128 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 129 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 131 - .byte 3 - .byte 8 - .byte 174 - .byte 3 - .byte 132 - .byte 3 - .byte 138 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 139 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 132 - .byte 3 - .byte 19 - .byte 174 - .byte 3 - .byte 176 - .byte 8 - .byte 134 - .byte 3 - .byte 36 - .byte 134 - .byte 3 - .byte 22 - .byte 174 - .byte 3 - .byte 135 - .byte 3 - .byte 137 - .byte 3 - .byte 7 - .byte 135 - .byte 3 - .byte 15 - .byte 174 - .byte 3 - .byte 177 - .byte 8 - .byte 7 - .byte 6 - .byte 137 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 138 - .byte 3 - .byte 1 - .byte 174 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 139 - .byte 3 - .byte 0 - .byte 174 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 140 - .byte 3 - .byte 19 - .byte 174 - .byte 3 - .byte 131 - .byte 3 - .byte 178 - .byte 8 - .byte 12 - .byte 142 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 3 - .byte 19 - .byte 178 - .byte 3 - .byte 180 - .byte 8 - .byte 142 - .byte 3 - .byte 6 - .byte 147 - .byte 3 - .byte 46 - .byte 185 - .byte 3 - .byte 154 - .byte 7 - .byte 208 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 148 - .byte 3 - .byte 0 - .byte 192 - .byte 3 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 149 - .byte 3 - .byte 1 - .byte 192 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 150 - .byte 3 - .byte 11 - .byte 192 - .byte 3 - .byte 0 - .byte 148 - .byte 3 - .byte 0 - .byte 149 - .byte 3 - .byte 80 - .byte 151 - .byte 3 - .byte 46 - .byte 254 - .byte 0 - .byte 205 - .byte 7 - .byte 206 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 154 - .byte 3 - .byte 46 - .byte 185 - .byte 3 - .byte 181 - .byte 8 - .byte 182 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 157 - .byte 3 - .byte 46 - .byte 147 - .byte 3 - .byte 159 - .byte 3 - .byte 157 - .byte 8 - .byte 6 - .byte 2 - .byte 6 - .byte 159 - .byte 3 - .byte 0 - .byte 147 - .byte 3 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 160 - .byte 3 - .byte 46 - .byte 133 - .byte 3 - .byte 153 - .byte 8 - .byte 154 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 153 - .byte 7 - .byte 0 - .byte 214 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 154 - .byte 7 - .byte 0 - .byte 136 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 155 - .byte 7 - .byte 0 - .byte 226 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 180 - .byte 7 - .byte 1 - .byte 38 - .byte 4 - .byte 181 - .byte 7 - .byte 1 - .byte 38 - .byte 2 - .byte 182 - .byte 7 - .byte 1 - .byte 48 - .byte 6 - .byte 183 - .byte 7 - .byte 1 - .byte 46 - .byte 1 - .byte 184 - .byte 7 - .byte 1 - .byte 48 - .byte 1 - .byte 185 - .byte 7 - .byte 1 - .byte 54 - .byte 7 - .byte 186 - .byte 7 - .byte 1 - .byte 54 - .byte 1 - .byte 187 - .byte 7 - .byte 1 - .byte 60 - .byte 8 - .byte 188 - .byte 7 - .byte 1 - .byte 60 - .byte 1 - .byte 189 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 9 - .byte 190 - .byte 7 - .byte 1 - .byte 194 - .byte 0 - .byte 2 - .byte 191 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 10 - .byte 192 - .byte 7 - .byte 1 - .byte 200 - .byte 0 - .byte 2 - .byte 193 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 11 - .byte 194 - .byte 7 - .byte 1 - .byte 206 - .byte 0 - .byte 2 - .byte 195 - .byte 7 - .byte 1 - .byte 214 - .byte 0 - .byte 14 - .byte 196 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 197 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 9 - .byte 198 - .byte 7 - .byte 1 - .byte 227 - .byte 0 - .byte 14 - .byte 199 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 10 - .byte 200 - .byte 7 - .byte 1 - .byte 235 - .byte 0 - .byte 14 - .byte 201 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 11 - .byte 202 - .byte 7 - .byte 1 - .byte 243 - .byte 0 - .byte 14 - .byte 203 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 204 - .byte 7 - .byte 1 - .byte 247 - .byte 0 - .byte 14 - .byte 205 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 14 - .byte 206 - .byte 7 - .byte 1 - .byte 254 - .byte 0 - .byte 4 - .byte 207 - .byte 7 - .byte 1 - .byte 136 - .byte 1 - .byte 15 - .byte 208 - .byte 7 - .byte 1 - .byte 185 - .byte 3 - .byte 4 - .byte 209 - .byte 7 - .byte 1 - .byte 167 - .byte 1 - .byte 5 - .byte 210 - .byte 7 - .byte 1 - .byte 165 - .byte 1 - .byte 3 - .byte 211 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 15 - .byte 212 - .byte 7 - .byte 1 - .byte 163 - .byte 1 - .byte 3 - .byte 213 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 16 - .byte 214 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 3 - .byte 215 - .byte 7 - .byte 1 - .byte 175 - .byte 1 - .byte 15 - .byte 216 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 17 - .byte 217 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 2 - .byte 218 - .byte 7 - .byte 1 - .byte 181 - .byte 1 - .byte 15 - .byte 219 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 18 - .byte 220 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 2 - .byte 221 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 15 - .byte 222 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 19 - .byte 223 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 2 - .byte 224 - .byte 7 - .byte 1 - .byte 195 - .byte 1 - .byte 15 - .byte 225 - .byte 7 - .byte 1 - .byte 200 - .byte 1 - .byte 20 - .byte 226 - .byte 7 - .byte 1 - .byte 204 - .byte 1 - .byte 21 - .byte 227 - .byte 7 - .byte 1 - .byte 208 - .byte 1 - .byte 22 - .byte 228 - .byte 7 - .byte 1 - .byte 214 - .byte 1 - .byte 23 - .byte 229 - .byte 7 - .byte 1 - .byte 226 - .byte 1 - .byte 24 - .byte 230 - .byte 7 - .byte 1 - .byte 133 - .byte 3 - .byte 16 - .byte 231 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 25 - .byte 232 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 5 - .byte 233 - .byte 7 - .byte 1 - .byte 251 - .byte 1 - .byte 24 - .byte 234 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 26 - .byte 235 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 17 - .byte 236 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 2 - .byte 237 - .byte 7 - .byte 1 - .byte 131 - .byte 2 - .byte 25 - .byte 238 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 27 - .byte 239 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 18 - .byte 240 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 2 - .byte 241 - .byte 7 - .byte 1 - .byte 140 - .byte 2 - .byte 25 - .byte 242 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 28 - .byte 243 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 19 - .byte 244 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 2 - .byte 245 - .byte 7 - .byte 1 - .byte 149 - .byte 2 - .byte 25 - .byte 246 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 29 - .byte 247 - .byte 7 - .byte 1 - .byte 158 - .byte 2 - .byte 26 - .byte 248 - .byte 7 - .byte 1 - .byte 158 - .byte 2 - .byte 26 - .byte 249 - .byte 7 - .byte 1 - .byte 162 - .byte 2 - .byte 27 - .byte 250 - .byte 7 - .byte 1 - .byte 162 - .byte 2 - .byte 27 - .byte 251 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 28 - .byte 252 - .byte 7 - .byte 1 - .byte 166 - .byte 2 - .byte 28 - .byte 253 - .byte 7 - .byte 1 - .byte 247 - .byte 2 - .byte 29 - .byte 254 - .byte 7 - .byte 1 - .byte 247 - .byte 2 - .byte 6 - .byte 255 - .byte 7 - .byte 1 - .byte 187 - .byte 2 - .byte 30 - .byte 128 - .byte 8 - .byte 1 - .byte 187 - .byte 2 - .byte 29 - .byte 129 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 31 - .byte 130 - .byte 8 - .byte 1 - .byte 195 - .byte 2 - .byte 30 - .byte 131 - .byte 8 - .byte 1 - .byte 195 - .byte 2 - .byte 30 - .byte 132 - .byte 8 - .byte 1 - .byte 197 - .byte 2 - .byte 30 - .byte 133 - .byte 8 - .byte 1 - .byte 199 - .byte 2 - .byte 7 - .byte 134 - .byte 8 - .byte 1 - .byte 215 - .byte 2 - .byte 32 - .byte 135 - .byte 8 - .byte 1 - .byte 207 - .byte 2 - .byte 31 - .byte 136 - .byte 8 - .byte 1 - .byte 211 - .byte 2 - .byte 31 - .byte 137 - .byte 8 - .byte 1 - .byte 213 - .byte 2 - .byte 30 - .byte 138 - .byte 8 - .byte 1 - .byte 215 - .byte 2 - .byte 8 - .byte 139 - .byte 8 - .byte 1 - .byte 223 - .byte 2 - .byte 20 - .byte 140 - .byte 8 - .byte 1 - .byte 223 - .byte 2 - .byte 20 - .byte 141 - .byte 8 - .byte 1 - .byte 221 - .byte 2 - .byte 26 - .byte 142 - .byte 8 - .byte 1 - .byte 221 - .byte 2 - .byte 32 - .byte 143 - .byte 8 - .byte 1 - .byte 231 - .byte 2 - .byte 21 - .byte 144 - .byte 8 - .byte 1 - .byte 231 - .byte 2 - .byte 21 - .byte 145 - .byte 8 - .byte 1 - .byte 229 - .byte 2 - .byte 27 - .byte 146 - .byte 8 - .byte 1 - .byte 229 - .byte 2 - .byte 32 - .byte 147 - .byte 8 - .byte 1 - .byte 239 - .byte 2 - .byte 22 - .byte 148 - .byte 8 - .byte 1 - .byte 239 - .byte 2 - .byte 22 - .byte 149 - .byte 8 - .byte 1 - .byte 237 - .byte 2 - .byte 28 - .byte 150 - .byte 8 - .byte 1 - .byte 237 - .byte 2 - .byte 32 - .byte 151 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 24 - .byte 152 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 24 - .byte 153 - .byte 8 - .byte 1 - .byte 133 - .byte 3 - .byte 24 - .byte 154 - .byte 8 - .byte 1 - .byte 133 - .byte 3 - .byte 16 - .byte 155 - .byte 8 - .byte 1 - .byte 140 - .byte 3 - .byte 23 - .byte 156 - .byte 8 - .byte 1 - .byte 140 - .byte 3 - .byte 23 - .byte 157 - .byte 8 - .byte 1 - .byte 147 - .byte 3 - .byte 23 - .byte 158 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 159 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 160 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 21 - .byte 161 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 21 - .byte 162 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 22 - .byte 163 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 22 - .byte 164 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 9 - .byte 165 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 15 - .byte 166 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 9 - .byte 167 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 15 - .byte 168 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 20 - .byte 169 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 10 - .byte 170 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 15 - .byte 171 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 10 - .byte 172 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 15 - .byte 173 - .byte 8 - .byte 1 - .byte 166 - .byte 3 - .byte 21 - .byte 174 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 11 - .byte 175 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 15 - .byte 176 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 11 - .byte 177 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 15 - .byte 178 - .byte 8 - .byte 1 - .byte 174 - .byte 3 - .byte 22 - .byte 179 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 180 - .byte 8 - .byte 1 - .byte 178 - .byte 3 - .byte 15 - .byte 181 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 15 - .byte 182 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 4 - .byte 1 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 4 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 2 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 5 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 3 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 6 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 4 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 7 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 5 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 11 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 8 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 6 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 9 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 7 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 10 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 8 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 2 - .byte 49 - .byte 0 - .byte 11 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 11 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 14 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 12 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 0 - .byte 4 - .byte 49 - .byte 95 - .byte 50 - .byte 0 - .byte 15 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 13 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 13 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 16 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 14 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 17 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 15 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 18 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 16 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 19 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 17 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 20 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 18 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 21 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 19 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 0 - .byte 6 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 0 - .byte 22 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 20 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 0 - .byte 8 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 23 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 21 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 0 - .byte 10 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 24 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 22 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 25 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 23 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 26 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 24 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 27 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 25 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 28 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 26 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 12 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 29 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 27 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 30 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 28 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 31 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 29 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 9 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 14 - .byte 49 - .byte 95 - .byte 50 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 95 - .byte 49 - .byte 0 - .byte 32 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 13 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 2 - .byte 12 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 16 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 14 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 0 - .byte 1 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 5 - .byte 14 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 0 - .byte 2 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 18 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 53 - .byte 0 - .byte 3 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 14 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 54 - .byte 0 - .byte 4 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 15 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 55 - .byte 0 - .byte 5 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 10 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 56 - .byte 0 - .byte 6 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 10 - .byte 10 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 57 - .byte 0 - .byte 7 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 10 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 97 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 14 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 100 - .byte 0 - .byte 11 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 15 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 52 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 101 - .byte 0 - .byte 12 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 16 - .byte 18 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 102 - .byte 0 - .byte 13 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 13 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 48 - .byte 0 - .byte 14 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 18 - .byte 13 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 49 - .byte 0 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 19 - .byte 13 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 50 - .byte 0 - .byte 16 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 20 - .byte 12 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 51 - .byte 0 - .byte 17 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 21 - .byte 12 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 52 - .byte 0 - .byte 18 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 22 - .byte 12 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 53 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 53 - .byte 0 - .byte 19 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 23 - .byte 10 - .byte 110 - .byte 46 - .byte 49 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 98 - .byte 0 - .byte 20 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 24 - .byte 10 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 99 - .byte 0 - .byte 21 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 25 - .byte 10 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 100 - .byte 0 - .byte 22 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 101 - .byte 0 - .byte 23 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 27 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 102 - .byte 0 - .byte 24 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 28 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 48 - .byte 0 - .byte 25 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 12 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 49 - .byte 0 - .byte 26 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 30 - .byte 12 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 50 - .byte 0 - .byte 27 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 31 - .byte 12 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 51 - .byte 0 - .byte 28 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 14 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 52 - .byte 0 - .byte 29 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 200 - .byte 81 - .byte 83 - .byte 5 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 109 - .byte 54 - .byte 52 - .byte 116 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 114 - .byte 111 - .byte 117 - .byte 116 - .byte 105 - .byte 110 - .byte 101 - .byte 95 - .byte 112 - .byte 111 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 114 - .byte 95 - .byte 115 - .byte 105 - .byte 122 - .byte 101 - .byte 95 - .byte 54 - .byte 52 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 103 - .byte 110 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 95 - .byte 117 - .byte 115 - .byte 101 - .byte 100 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 103 - .byte 99 - .byte 99 - .byte 95 - .byte 118 - .byte 101 - .byte 114 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 61 - .byte 55 - .byte 53 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 99 - .byte 120 - .byte 120 - .byte 95 - .byte 108 - .byte 105 - .byte 109 - .byte 105 - .byte 116 - .byte 101 - .byte 100 - .byte 95 - .byte 114 - .byte 97 - .byte 110 - .byte 103 - .byte 101 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 95 - .byte 112 - .byte 97 - .byte 114 - .byte 109 - .byte 115 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 117 - .byte 97 - .byte 114 - .byte 99 - .byte 104 - .byte 95 - .byte 116 - .byte 117 - .byte 110 - .byte 105 - .byte 110 - .byte 103 - .byte 61 - .byte 48 - .byte 120 - .byte 48 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 98 - .byte 110 - .byte 108 - .byte 95 - .byte 109 - .byte 111 - .byte 118 - .byte 98 - .byte 101 - .byte 61 - .byte 84 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 101 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 115 - .byte 116 - .byte 114 - .byte 117 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 48 - .byte 120 - .byte 52 - .byte 48 - .byte 48 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 97 - .byte 100 - .byte 118 - .byte 97 - .byte 110 - .byte 99 - .byte 101 - .byte 100 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 109 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 115 - .byte 117 - .byte 98 - .byte 115 - .byte 95 - .byte 111 - .byte 117 - .byte 116 - .byte 95 - .byte 111 - .byte 102 - .byte 95 - .byte 98 - .byte 111 - .byte 117 - .byte 110 - .byte 100 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 98 - .byte 97 - .byte 115 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 61 - .byte 50 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 99 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 99 - .byte 104 - .byte 101 - .byte 99 - .byte 107 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 97 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 105 - .byte 108 - .byte 48 - .byte 95 - .byte 97 - .byte 114 - .byte 114 - .byte 97 - .byte 121 - .byte 95 - .byte 115 - .byte 101 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 102 - .byte 102 - .byte 108 - .byte 111 - .byte 97 - .byte 100 - .byte 95 - .byte 109 - .byte 111 - .byte 100 - .byte 101 - .byte 61 - .byte 49 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 114 - .byte 101 - .byte 115 - .byte 116 - .byte 114 - .byte 105 - .byte 99 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 102 - .byte 117 - .byte 110 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 112 - .byte 111 - .byte 95 - .byte 114 - .byte 116 - .byte 116 - .byte 95 - .byte 99 - .byte 111 - .byte 110 - .byte 116 - .byte 114 - .byte 111 - .byte 108 - .byte 61 - .byte 48 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 114 - .byte 103 - .byte 115 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 114 - .byte 101 - .byte 103 - .byte 115 - .byte 61 - .byte 48 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 110 - .byte 111 - .byte 110 - .byte 115 - .byte 116 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 110 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 108 - .byte 116 - .byte 111 - .byte 95 - .byte 111 - .byte 98 - .byte 106 - .byte 101 - .byte 99 - .byte 116 - .byte 95 - .byte 101 - .byte 110 - .byte 97 - .byte 98 - .byte 108 - .byte 101 - .byte 100 - .byte 32 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 115 - .byte 109 - .byte 95 - .byte 116 - .byte 97 - .byte 114 - .byte 103 - .byte 101 - .byte 116 - .byte 61 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 65 - .byte 83 - .byte 77 - .byte 95 - .byte 84 - .byte 65 - .byte 82 - .byte 71 - .byte 69 - .byte 84 - .byte 95 - .byte 71 - .byte 65 - .byte 83 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 100 - .byte 105 - .byte 97 - .byte 108 - .byte 101 - .byte 99 - .byte 116 - .byte 61 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 83 - .byte 79 - .byte 85 - .byte 82 - .byte 67 - .byte 69 - .byte 95 - .byte 68 - .byte 73 - .byte 65 - .byte 76 - .byte 69 - .byte 67 - .byte 84 - .byte 95 - .byte 67 - .byte 32 - .byte 80 - .byte 49 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 102 - .byte 117 - .byte 108 - .byte 108 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 102 - .byte 105 - .byte 108 - .byte 101 - .byte 95 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 61 - .byte 47 - .byte 104 - .byte 111 - .byte 109 - .byte 101 - .byte 47 - .byte 104 - .byte 112 - .byte 99 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 48 - .byte 50 - .byte 49 - .byte 104 - .byte 47 - .byte 77 - .byte 68 - .byte 45 - .byte 66 - .byte 101 - .byte 110 - .byte 99 - .byte 104 - .byte 47 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 1 - .byte 1 - .byte 160 - .byte 1 - .byte 192 - .byte 0 - .byte 243 - .byte 0 - .byte 127 - .byte 85 - .byte 114 - .byte 99 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 126 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 0 - .byte 123 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 0 - .byte 122 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 8 - .byte 121 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 1 - .byte 120 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 4 - .byte 119 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 248 - .byte 63 - .byte 118 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 164 - .byte 64 - .byte 117 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 240 - .byte 63 - .byte 116 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 232 - .byte 7 - .byte 127 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 126 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 125 - .byte 4 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 48 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 124 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 123 - .byte 4 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 49 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 122 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 121 - .byte 4 - .byte 0 - .byte 32 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 120 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 119 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 118 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 2 - .byte 48 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 1 - .byte 1 - .byte 26 - .byte 3 - .byte 36 - .byte 8 - .byte 0 - .byte 145 - .byte 192 - .byte 129 - .byte 16 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 8 - .byte 1 - .byte 46 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 40 - .byte 80 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 65 - .byte 116 - .byte 111 - .byte 109 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 78 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 32 - .byte 42 - .byte 41 - .byte 0 - .byte 1 - .byte 1 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 127 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 32 - .byte 126 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 136 - .byte 1 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 125 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 124 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 0 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 123 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 122 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 213 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 121 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 120 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 32 - .byte 119 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 118 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 117 - .byte 11 - .byte 78 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 100 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 116 - .byte 11 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 95 - .byte 86 - .byte 36 - .byte 101 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 115 - .byte 11 - .byte 78 - .byte 103 - .byte 104 - .byte 111 - .byte 115 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 102 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 8 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 114 - .byte 10 - .byte 78 - .byte 109 - .byte 97 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 12 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 113 - .byte 7 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 112 - .byte 7 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 50 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 111 - .byte 7 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 51 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 110 - .byte 8 - .byte 118 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 52 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 40 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 109 - .byte 8 - .byte 118 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 53 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 48 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 236 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 108 - .byte 8 - .byte 118 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 54 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 107 - .byte 8 - .byte 102 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 55 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 106 - .byte 8 - .byte 102 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 56 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 105 - .byte 8 - .byte 102 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 57 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 104 - .byte 13 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 103 - .byte 12 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 230 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 102 - .byte 10 - .byte 116 - .byte 101 - .byte 109 - .byte 112 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 101 - .byte 9 - .byte 114 - .byte 104 - .byte 111 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 100 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 228 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 100 - .byte 10 - .byte 109 - .byte 97 - .byte 115 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 101 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 99 - .byte 12 - .byte 110 - .byte 116 - .byte 105 - .byte 109 - .byte 101 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 102 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 40 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 226 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 98 - .byte 11 - .byte 110 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 44 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 97 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 49 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 48 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 96 - .byte 8 - .byte 100 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 50 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 95 - .byte 13 - .byte 100 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 51 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 94 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 52 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 93 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 53 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 220 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 92 - .byte 8 - .byte 110 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 54 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 216 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 219 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 91 - .byte 8 - .byte 110 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 55 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 220 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 218 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 90 - .byte 8 - .byte 110 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 56 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 224 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 89 - .byte 13 - .byte 108 - .byte 97 - .byte 116 - .byte 116 - .byte 105 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 57 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 232 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 88 - .byte 10 - .byte 120 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 240 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 215 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 87 - .byte 10 - .byte 121 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 248 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 214 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 86 - .byte 10 - .byte 122 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 128 - .byte 1 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 37 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 85 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 54 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 212 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 84 - .byte 12 - .byte 110 - .byte 99 - .byte 97 - .byte 108 - .byte 108 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 55 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 83 - .byte 15 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 56 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 82 - .byte 15 - .byte 109 - .byte 97 - .byte 120 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 57 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 16 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 81 - .byte 14 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 97 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 1 - .byte 0 - .byte 30 - .byte 8 - .byte 0 - .byte 9 - .byte 1 - .byte 0 - .byte 30 - .byte 71 - .byte 0 - .byte 38 - .byte 1 - .byte 0 - .byte 31 - .byte 18 - .byte 0 - .byte 46 - .byte 1 - .byte 0 - .byte 33 - .byte 27 - .byte 0 - .byte 48 - .byte 1 - .byte 0 - .byte 33 - .byte 45 - .byte 0 - .byte 54 - .byte 1 - .byte 0 - .byte 34 - .byte 23 - .byte 0 - .byte 60 - .byte 1 - .byte 0 - .byte 35 - .byte 24 - .byte 0 - .byte 194 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 20 - .byte 0 - .byte 200 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 45 - .byte 0 - .byte 206 - .byte 0 - .byte 1 - .byte 0 - .byte 36 - .byte 70 - .byte 0 - .byte 214 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 15 - .byte 0 - .byte 223 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 17 - .byte 0 - .byte 227 - .byte 0 - .byte 1 - .byte 0 - .byte 40 - .byte 9 - .byte 0 - .byte 231 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 17 - .byte 0 - .byte 235 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 9 - .byte 0 - .byte 239 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 17 - .byte 0 - .byte 243 - .byte 0 - .byte 1 - .byte 0 - .byte 42 - .byte 9 - .byte 0 - .byte 247 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 32 - .byte 0 - .byte 254 - .byte 0 - .byte 1 - .byte 0 - .byte 39 - .byte 24 - .byte 0 - .byte 128 - .byte 1 - .byte 1 - .byte 0 - .byte 39 - .byte 5 - .byte 0 - .byte 136 - .byte 1 - .byte 1 - .byte 0 - .byte 46 - .byte 15 - .byte 0 - .byte 163 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 43 - .byte 0 - .byte 165 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 19 - .byte 0 - .byte 167 - .byte 1 - .byte 1 - .byte 0 - .byte 47 - .byte 9 - .byte 0 - .byte 175 - .byte 1 - .byte 1 - .byte 0 - .byte 48 - .byte 25 - .byte 0 - .byte 181 - .byte 1 - .byte 1 - .byte 0 - .byte 49 - .byte 25 - .byte 0 - .byte 188 - .byte 1 - .byte 1 - .byte 0 - .byte 50 - .byte 25 - .byte 0 - .byte 195 - .byte 1 - .byte 1 - .byte 0 - .byte 51 - .byte 25 - .byte 0 - .byte 200 - .byte 1 - .byte 1 - .byte 0 - .byte 52 - .byte 22 - .byte 0 - .byte 204 - .byte 1 - .byte 1 - .byte 0 - .byte 53 - .byte 22 - .byte 0 - .byte 208 - .byte 1 - .byte 1 - .byte 0 - .byte 54 - .byte 22 - .byte 0 - .byte 214 - .byte 1 - .byte 1 - .byte 0 - .byte 58 - .byte 19 - .byte 0 - .byte 226 - .byte 1 - .byte 1 - .byte 0 - .byte 59 - .byte 23 - .byte 0 - .byte 251 - .byte 1 - .byte 1 - .byte 0 - .byte 60 - .byte 25 - .byte 0 - .byte 131 - .byte 2 - .byte 1 - .byte 0 - .byte 61 - .byte 40 - .byte 0 - .byte 140 - .byte 2 - .byte 1 - .byte 0 - .byte 62 - .byte 40 - .byte 0 - .byte 149 - .byte 2 - .byte 1 - .byte 0 - .byte 63 - .byte 40 - .byte 0 - .byte 158 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 39 - .byte 0 - .byte 162 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 53 - .byte 0 - .byte 166 - .byte 2 - .byte 1 - .byte 0 - .byte 64 - .byte 67 - .byte 0 - .byte 185 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 36 - .byte 0 - .byte 187 - .byte 2 - .byte 1 - .byte 0 - .byte 67 - .byte 42 - .byte 0 - .byte 195 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 42 - .byte 0 - .byte 197 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 48 - .byte 0 - .byte 199 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 54 - .byte 0 - .byte 205 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 38 - .byte 0 - .byte 207 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 45 - .byte 0 - .byte 211 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 58 - .byte 0 - .byte 213 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 65 - .byte 0 - .byte 215 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 71 - .byte 0 - .byte 221 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 35 - .byte 0 - .byte 223 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 21 - .byte 0 - .byte 229 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 35 - .byte 0 - .byte 231 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 21 - .byte 0 - .byte 237 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 35 - .byte 0 - .byte 239 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 21 - .byte 0 - .byte 247 - .byte 2 - .byte 1 - .byte 0 - .byte 66 - .byte 26 - .byte 0 - .byte 249 - .byte 2 - .byte 1 - .byte 0 - .byte 66 - .byte 17 - .byte 0 - .byte 254 - .byte 2 - .byte 1 - .byte 0 - .byte 59 - .byte 43 - .byte 0 - .byte 133 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 32 - .byte 0 - .byte 135 - .byte 3 - .byte 1 - .byte 0 - .byte 59 - .byte 13 - .byte 0 - .byte 140 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 50 - .byte 0 - .byte 147 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 28 - .byte 0 - .byte 149 - .byte 3 - .byte 1 - .byte 0 - .byte 58 - .byte 9 - .byte 0 - .byte 158 - .byte 3 - .byte 1 - .byte 0 - .byte 77 - .byte 9 - .byte 0 - .byte 166 - .byte 3 - .byte 1 - .byte 0 - .byte 78 - .byte 9 - .byte 0 - .byte 174 - .byte 3 - .byte 1 - .byte 0 - .byte 79 - .byte 9 - .byte 0 - .byte 178 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 32 - .byte 0 - .byte 185 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 24 - .byte 0 - .byte 187 - .byte 3 - .byte 1 - .byte 0 - .byte 46 - .byte 5 - .byte 0 - .byte 192 - .byte 3 - .byte 1 - .byte 0 - .byte 82 - .byte 12 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 203 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 99 - .byte 99 - .byte 14 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 3 - .byte 1 - .byte 63 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 115 - .byte 115 - .byte 27 - .byte 47 - .byte 117 - .byte 115 - .byte 114 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 47 - .byte 115 - .byte 116 - .byte 100 - .byte 99 - .byte 45 - .byte 112 - .byte 114 - .byte 101 - .byte 100 - .byte 101 - .byte 102 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 3 - .byte 1 - .byte 4 - .byte 87 - .byte 128 - .byte 2 - .byte 0 - .byte 1 - .byte 23 - .byte 0 - .byte 115 - .byte 95 - .byte 31 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 108 - .byte 105 - .byte 107 - .byte 119 - .byte 105 - .byte 100 - .byte 45 - .byte 109 - .byte 97 - .byte 114 - .byte 107 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 4 - .byte 1 - .byte 5 - .byte 131 - .byte 2 - .byte 160 - .byte 2 - .byte 0 - .byte 1 - .byte 25 - .byte 0 - .byte 115 - .byte 95 - .byte 24 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 116 - .byte 105 - .byte 109 - .byte 105 - .byte 110 - .byte 103 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 5 - .byte 1 - .byte 8 - .byte 162 - .byte 2 - .byte 178 - .byte 3 - .byte 105 - .byte 1 - .byte 26 - .byte 0 - .byte 115 - .byte 95 - .byte 26 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 6 - .byte 6 - .byte 5 - .byte 0 - .byte 185 - .byte 2 - .byte 161 - .byte 3 - .byte 54 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 7 - .byte 7 - .byte 6 - .byte 0 - .byte 208 - .byte 2 - .byte 133 - .byte 3 - .byte 0 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 27 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 8 - .byte 1 - .byte 0 - .byte 181 - .byte 3 - .byte 231 - .byte 3 - .byte 0 - .byte 1 - .byte 28 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #30.71 - pushq %rbp #30.71 - .cfi_def_cfa_offset 16 - movq %rsp, %rbp #30.71 - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-32, %rsp #30.71 - pushq %r14 #30.71 - pushq %r15 #30.71 - pushq %rbx #30.71 - subq $456, %rsp #30.71 - movq %rdx, %r8 #30.71 - vmovsd 72(%rdi), %xmm0 #33.27 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - movl 4(%rsi), %ebx #31.18 - movq 64(%rsi), %r15 #36.20 - movq 72(%rsi), %r14 #36.45 - movq 80(%rsi), %rdx #36.70 - vmulsd %xmm0, %xmm0, %xmm4 #33.45 - vmovsd 8(%rdi), %xmm3 #34.23 - vmovsd (%rdi), %xmm0 #35.24 - testl %ebx, %ebx #39.24 - jle ..B1.38 # Prob 50% #39.24 - # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - xorl %ecx, %ecx #39.5 - movl %ebx, %r9d #39.5 - xorl %eax, %eax #39.5 - movl $1, %r10d #39.5 - xorl %edi, %edi #40.17 - shrl $1, %r9d #39.5 - je ..B1.6 # Prob 9% #39.5 - # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] - incq %rcx #39.5 - lea (%rax,%r15), %r10 #40.9 - movq %rdi, (%r10) #40.9 - movq %rdi, (%rax,%r14) #41.9 - movq %rdi, (%rax,%rdx) #42.9 - movq %rdi, 8(%r10) #40.9 - movq %rdi, 8(%rax,%r14) #41.9 - movq %rdi, 8(%rax,%rdx) #42.9 - addq $16, %rax #39.5 - cmpq %r9, %rcx #39.5 - jb ..B1.4 # Prob 63% #39.5 - # LOE rax rdx rcx rsi rdi r8 r9 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rcx,%rcx), %r10d #40.9 - # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r10), %eax #39.5 - cmpl %ebx, %eax #39.5 - jae ..B1.8 # Prob 9% #39.5 - # LOE rdx rsi rdi r8 r12 r13 r14 r15 ebx r10d xmm0 xmm3 xmm4 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r10d, %r10 #39.5 - movq %rdi, -8(%r15,%r10,8) #40.9 - movq %rdi, -8(%r14,%r10,8) #41.9 - movq %rdi, -8(%rdx,%r10,8) #42.9 - # LOE rdx rsi r8 r12 r13 r14 r15 ebx xmm0 xmm3 xmm4 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm6 #69.45 - xorl %eax, %eax #46.15 - vbroadcastsd %xmm4, %ymm7 #33.45 - vbroadcastsd %xmm6, %ymm8 #69.45 - vbroadcastsd %xmm3, %ymm2 #34.23 - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 #69.58 - vmovupd %ymm7, 96(%rsp) #51.25[spill] - vmovupd %ymm2, 352(%rsp) #51.25[spill] - vmovupd %ymm8, 320(%rsp) #51.25[spill] - movslq 16(%r8), %rcx #47.43 - xorl %r11d, %r11d #46.5 - movq 8(%r8), %r10 #47.19 - movq 24(%r8), %r9 #48.25 - movslq %ebx, %rbx #46.5 - shlq $2, %rcx #47.9 - movq 16(%rsi), %r8 #49.25 - movq 24(%rsi), %rdi #50.25 - movq 32(%rsi), %rsi #51.25 - movq %rcx, 16(%rsp) #51.25[spill] - movq %rbx, 24(%rsp) #51.25[spill] - movq %r9, 32(%rsp) #51.25[spill] - movq %r10, 40(%rsp) #51.25[spill] - movq %r15, 72(%rsp) #51.25[spill] - movq %r12, (%rsp) #51.25[spill] - movq %r13, 8(%rsp) #51.25[spill] - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 -..B1.9: # Preds ..B1.35 ..B1.8 - # Execution count [5.00e+00] - imulq 16(%rsp), %rax #47.43[spill] - addq 40(%rsp), %rax #47.9[spill] - vxorpd %xmm9, %xmm9, %xmm9 #52.22 - movq 32(%rsp), %r12 #48.25[spill] - movq %rax, %rcx #59.13 - vmovsd (%rdi,%r11,8), %xmm10 #50.25 - andq $31, %rcx #59.13 - vmovsd (%r8,%r11,8), %xmm1 #49.25 - movl %ecx, %r15d #59.13 - vmovsd (%rsi,%r11,8), %xmm7 #51.25 - negl %r15d #59.13 - vbroadcastsd %xmm10, %ymm5 #50.25 - movl %ecx, %r10d #59.13 - vbroadcastsd %xmm1, %ymm11 #49.25 - vmovapd %xmm9, %xmm8 #53.22 - vbroadcastsd %xmm7, %ymm15 #51.25 - vmovapd %xmm8, %xmm2 #54.22 - vmovupd %ymm5, 160(%rsp) #51.25[spill] - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 #51.25 - vmovupd %ymm15, 192(%rsp) #51.25[spill] - vmovupd %ymm11, 128(%rsp) #51.25[spill] - movslq (%r12,%r11,4), %r12 #48.25 - movl %r12d, %ebx #59.13 - vxorpd %ymm14, %ymm14, %ymm14 #52.22 - movl %ebx, %r9d #59.13 - vmovdqa %ymm14, %ymm13 #53.22 - andl $-4, %r9d #59.13 - vmovdqa %ymm13, %ymm12 #54.22 - addl $32, %r15d #59.13 - movslq %r9d, %r9 #59.13 - xorl %r13d, %r13d #58.9 - shrl $2, %r15d #59.13 - andl $3, %r10d #59.13 - vmovupd %ymm12, 288(%rsp) #51.25[spill] - vmovupd %ymm13, 256(%rsp) #51.25[spill] - vmovupd %ymm14, 224(%rsp) #51.25[spill] - movq %r11, 48(%rsp) #51.25[spill] - movq %rdx, 56(%rsp) #51.25[spill] - movq %r14, 64(%rsp) #51.25[spill] - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.10: # Preds ..B1.34 ..B1.9 - # Execution count [5.00e+03] - testq %r12, %r12 #59.32 - jle ..B1.34 # Prob 50% #59.32 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+03] - cmpq $4, %r12 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+03] - cmpq $600, %r12 #59.13 - jl ..B1.41 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.13: # Preds ..B1.12 - # Execution count [4.50e+03] - movl %ecx, %r11d #59.13 - testl %ecx, %ecx #59.13 - je ..B1.16 # Prob 50% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.14: # Preds ..B1.13 - # Execution count [4.50e+03] - testl %r10d, %r10d #59.13 - jne ..B1.39 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.15: # Preds ..B1.14 - # Execution count [2.25e+03] - movl %r15d, %r11d #59.13 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.16: # Preds ..B1.15 ..B1.13 - # Execution count [4.50e+03] - movl %r11d, %edx #59.13 - lea 4(%rdx), %r14 #59.13 - cmpq %r14, %r12 #59.13 - jl ..B1.39 # Prob 10% #59.13 - # LOE rax rdx rsi rdi r8 r9 r12 ecx ebx r10d r11d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.17: # Preds ..B1.16 - # Execution count [5.00e+03] - movl %ebx, %r14d #59.13 - subl %r11d, %r14d #59.13 - andl $3, %r14d #59.13 - negl %r14d #59.13 - addl %ebx, %r14d #59.13 - movslq %r14d, %r14 #59.13 - testl %r11d, %r11d #59.13 - movl $0, %r11d #59.13 - jbe ..B1.23 # Prob 10% #59.13 - # LOE rax rdx rsi rdi r8 r9 r11 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.18: # Preds ..B1.17 - # Execution count [4.50e+03] - movq %r12, 80(%rsp) #[spill] - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.19: # Preds ..B1.21 ..B1.18 - # Execution count [2.50e+04] - movslq (%rax,%r11,4), %r12 #60.25 - vsubsd (%rdi,%r12,8), %xmm10, %xmm13 #62.40 - vsubsd (%r8,%r12,8), %xmm1, %xmm12 #61.40 - vsubsd (%rsi,%r12,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.21 # Prob 50% #66.26 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.20: # Preds ..B1.19 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.21: # Preds ..B1.20 ..B1.19 - # Execution count [2.50e+04] - incq %r11 #59.13 - cmpq %rdx, %r11 #59.13 - jb ..B1.19 # Prob 82% #59.13 - # LOE rax rdx rsi rdi r8 r9 r11 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.22: # Preds ..B1.21 - # Execution count [4.50e+03] - movq 80(%rsp), %r12 #[spill] - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.23: # Preds ..B1.22 ..B1.17 ..B1.41 - # Execution count [4.50e+03] - vmovsd %xmm9, 392(%rsp) #61.40[spill] - vmovsd %xmm10, 408(%rsp) #61.40[spill] - vmovsd %xmm1, 416(%rsp) #61.40[spill] - vmovsd %xmm6, 424(%rsp) #61.40[spill] - vmovsd %xmm3, 432(%rsp) #61.40[spill] - vmovsd %xmm4, 440(%rsp) #61.40[spill] - vmovsd %xmm2, 88(%rsp) #61.40[spill] - vmovsd %xmm8, 384(%rsp) #61.40[spill] - vmovsd %xmm7, 400(%rsp) #61.40[spill] - vmovupd 192(%rsp), %ymm6 #61.40[spill] - vmovupd 160(%rsp), %ymm4 #61.40[spill] - vmovupd 128(%rsp), %ymm5 #61.40[spill] - vmovupd 288(%rsp), %ymm3 #61.40[spill] - vmovupd 256(%rsp), %ymm1 #61.40[spill] - vmovupd 224(%rsp), %ymm12 #61.40[spill] - vmovupd 96(%rsp), %ymm11 #61.40[spill] - vmovupd .L_2il0floatpacket.3(%rip), %ymm9 #61.40 - vmovupd .L_2il0floatpacket.2(%rip), %ymm10 #61.40 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.24: # Preds ..B1.26 ..B1.23 - # Execution count [2.50e+04] - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - vmovups (%rax,%rdx,4), %xmm2 #60.25 - vpcmpeqd %ymm13, %ymm13, %ymm13 #61.40 - vxorpd %ymm8, %ymm8, %ymm8 #61.40 - vmovdqa %ymm13, %ymm0 #61.40 - vxorpd %ymm14, %ymm14, %ymm14 #62.40 - vmovdqa %ymm13, %ymm7 #62.40 - vgatherdpd %ymm0, (%r8,%xmm2,8), %ymm8 #61.40 - vgatherdpd %ymm7, (%rdi,%xmm2,8), %ymm14 #62.40 - vsubpd %ymm8, %ymm5, %ymm0 #61.40 - vsubpd %ymm14, %ymm4, %ymm8 #62.40 - vxorpd %ymm7, %ymm7, %ymm7 #63.40 - vmovdqa %ymm13, %ymm15 #63.40 - vgatherdpd %ymm15, (%rsi,%xmm2,8), %ymm7 #63.40 - vmulpd %ymm8, %ymm8, %ymm14 #64.53 - vsubpd %ymm7, %ymm6, %ymm2 #63.40 - vfmadd231pd %ymm0, %ymm0, %ymm14 #64.53 - vfmadd231pd %ymm2, %ymm2, %ymm14 #64.67 - vcmpltpd %ymm11, %ymm14, %ymm7 #66.26 - vptest %ymm13, %ymm7 #66.26 - je ..B1.26 # Prob 50% #66.26 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm14 -..B1.25: # Preds ..B1.24 - # Execution count [1.25e+04] - vdivpd %ymm14, %ymm10, %ymm13 #67.42 - vmulpd 352(%rsp), %ymm13, %ymm14 #68.42[spill] - vmulpd %ymm14, %ymm13, %ymm14 #68.48 - vmulpd %ymm14, %ymm13, %ymm15 #68.54 - vfmsub213pd %ymm9, %ymm13, %ymm14 #69.58 - vmulpd 320(%rsp), %ymm13, %ymm13 #69.58[spill] - vmulpd %ymm13, %ymm15, %ymm15 #69.65 - vmulpd %ymm14, %ymm15, %ymm13 #69.71 - vmulpd %ymm13, %ymm0, %ymm0 #70.35 - vmulpd %ymm13, %ymm8, %ymm8 #71.35 - vandpd %ymm0, %ymm7, %ymm0 #70.35 - vaddpd %ymm0, %ymm12, %ymm12 #70.21 - vmulpd %ymm13, %ymm2, %ymm0 #72.35 - vandpd %ymm8, %ymm7, %ymm2 #71.35 - vandpd %ymm0, %ymm7, %ymm7 #72.35 - vaddpd %ymm2, %ymm1, %ymm1 #71.21 - vaddpd %ymm7, %ymm3, %ymm3 #72.21 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.26: # Preds ..B1.25 ..B1.24 - # Execution count [2.50e+04] - addq $4, %rdx #59.13 - cmpq %r14, %rdx #59.13 - jb ..B1.24 # Prob 82% #59.13 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d ymm1 ymm3 ymm4 ymm5 ymm6 ymm9 ymm10 ymm11 ymm12 -..B1.27: # Preds ..B1.26 - # Execution count [4.50e+03] - vmovupd %ymm3, 288(%rsp) #[spill] - vmovupd %ymm1, 256(%rsp) #[spill] - vmovsd 88(%rsp), %xmm2 #[spill] - vmovsd 384(%rsp), %xmm8 #[spill] - vmovsd 392(%rsp), %xmm9 #[spill] - vmovsd 400(%rsp), %xmm7 #[spill] - vmovsd 408(%rsp), %xmm10 #[spill] - vmovsd 416(%rsp), %xmm1 #[spill] - vmovsd 424(%rsp), %xmm6 #[spill] - vmovsd 432(%rsp), %xmm3 #[spill] - vmovsd 440(%rsp), %xmm4 #[spill] - vmovupd %ymm12, 224(%rsp) #[spill] - vmovsd .L_2il0floatpacket.1(%rip), %xmm0 # - vmovsd .L_2il0floatpacket.4(%rip), %xmm5 # - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.28: # Preds ..B1.27 ..B1.39 - # Execution count [5.00e+03] - cmpq %r12, %r14 #59.13 - jae ..B1.34 # Prob 10% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.30: # Preds ..B1.28 ..B1.32 - # Execution count [2.50e+04] - movslq (%rax,%r14,4), %rdx #60.25 - vsubsd (%rdi,%rdx,8), %xmm10, %xmm13 #62.40 - vsubsd (%r8,%rdx,8), %xmm1, %xmm12 #61.40 - vsubsd (%rsi,%rdx,8), %xmm7, %xmm11 #63.40 - vmulsd %xmm13, %xmm13, %xmm14 #64.53 - vfmadd231sd %xmm12, %xmm12, %xmm14 #64.67 - vfmadd231sd %xmm11, %xmm11, %xmm14 #64.67 - vcomisd %xmm14, %xmm4 #66.26 - jbe ..B1.32 # Prob 50% #66.26 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 -..B1.31: # Preds ..B1.30 - # Execution count [1.25e+04] - vdivsd %xmm14, %xmm5, %xmm15 #67.42 - vmulsd %xmm15, %xmm3, %xmm14 #68.42 - vmulsd %xmm15, %xmm14, %xmm14 #68.48 - vmulsd %xmm15, %xmm14, %xmm14 #68.54 - vmulsd %xmm6, %xmm15, %xmm15 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.65 - vsubsd %xmm0, %xmm14, %xmm14 #69.58 - vmulsd %xmm14, %xmm15, %xmm15 #69.71 - vfmadd231sd %xmm12, %xmm15, %xmm9 #70.21 - vfmadd231sd %xmm15, %xmm13, %xmm8 #71.21 - vfmadd231sd %xmm15, %xmm11, %xmm2 #72.21 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.32: # Preds ..B1.31 ..B1.30 - # Execution count [2.50e+04] - incq %r14 #59.13 - cmpq %r12, %r14 #59.13 - jb ..B1.30 # Prob 82% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.34: # Preds ..B1.32 ..B1.28 ..B1.10 - # Execution count [5.00e+03] - .byte 15 #58.9 - .byte 31 #58.9 - .byte 64 #58.9 - .byte 0 #58.9 - incl %r13d #58.9 - cmpl $1000, %r13d #58.9 - jb ..B1.10 # Prob 99% #58.9 - # LOE rax rsi rdi r8 r9 r12 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.35: # Preds ..B1.34 - # Execution count [5.00e+00] - vmovupd 288(%rsp), %ymm12 #[spill] - vmovupd 256(%rsp), %ymm13 #[spill] - vmovupd 224(%rsp), %ymm14 #[spill] - movq 72(%rsp), %rax #77.9[spill] - movq 48(%rsp), %r11 #[spill] - movq 64(%rsp), %r14 #[spill] - movq 56(%rsp), %rdx #[spill] - vextractf128 $1, %ymm12, %xmm1 #54.22 - vextractf128 $1, %ymm13, %xmm11 #53.22 - vaddpd %xmm1, %xmm12, %xmm5 #54.22 - vaddpd %xmm11, %xmm13, %xmm15 #53.22 - vunpckhpd %xmm5, %xmm5, %xmm7 #54.22 - vunpckhpd %xmm15, %xmm15, %xmm1 #53.22 - vaddsd %xmm7, %xmm5, %xmm10 #54.22 - vaddsd %xmm1, %xmm15, %xmm5 #53.22 - vaddsd %xmm2, %xmm10, %xmm2 #54.22 - vaddsd %xmm8, %xmm5, %xmm5 #53.22 - vextractf128 $1, %ymm14, %xmm8 #52.22 - vaddpd %xmm8, %xmm14, %xmm8 #52.22 - vunpckhpd %xmm8, %xmm8, %xmm14 #52.22 - vaddsd %xmm14, %xmm8, %xmm1 #52.22 - vaddsd %xmm9, %xmm1, %xmm9 #52.22 - vaddsd (%rax,%r11,8), %xmm9, %xmm1 #77.9 - vmovsd %xmm1, (%rax,%r11,8) #77.9 - movslq %r11d, %rax #46.32 - vaddsd (%r14,%r11,8), %xmm5, %xmm7 #78.9 - vmovsd %xmm7, (%r14,%r11,8) #78.9 - incq %rax #46.32 - vaddsd (%rdx,%r11,8), %xmm2, %xmm2 #79.9 - vmovsd %xmm2, (%rdx,%r11,8) #79.9 - incq %r11 #46.5 - cmpq 24(%rsp), %r11 #46.5[spill] - jb ..B1.9 # Prob 82% #46.5 - # LOE rax rdx rsi rdi r8 r11 r14 xmm0 xmm3 xmm4 xmm6 -..B1.36: # Preds ..B1.35 - # Execution count [9.00e-01] - movq (%rsp), %r12 #[spill] - .cfi_restore 12 - movq 8(%rsp), %r13 #[spill] - .cfi_restore 13 - # LOE r12 r13 -..B1.38: # Preds ..B1.1 ..B1.36 - # Execution count [1.00e+00] - vzeroupper #82.12 - vxorpd %xmm0, %xmm0, %xmm0 #82.12 - addq $456, %rsp #82.12 - .cfi_restore 3 - popq %rbx #82.12 - .cfi_restore 15 - popq %r15 #82.12 - .cfi_restore 14 - popq %r14 #82.12 - movq %rbp, %rsp #82.12 - popq %rbp #82.12 - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret #82.12 - .cfi_def_cfa 6, 16 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_offset 6, -16 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x28, 0xfe, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - # LOE -..B1.39: # Preds ..B1.11 ..B1.14 ..B1.16 - # Execution count [4.50e+02]: Infreq - xorl %r14d, %r14d #59.13 - jmp ..B1.28 # Prob 100% #59.13 - # LOE rax rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 -..B1.41: # Preds ..B1.12 - # Execution count [4.50e+02]: Infreq - movq %r9, %r14 #59.13 - xorl %edx, %edx #59.13 - jmp ..B1.23 # Prob 100% #59.13 - .align 16,0x90 - # LOE rax rdx rsi rdi r8 r9 r12 r14 ecx ebx r10d r13d r15d xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 32 - .align 32 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,32 - .align 32 -.L_2il0floatpacket.3: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,32 - .align 8 -.L_2il0floatpacket.0: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,8 - .align 8 -.L_2il0floatpacket.1: - .long 0x00000000,0x3fe00000 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,8 - .align 8 -.L_2il0floatpacket.4: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_aos_geq1200_markers.s b/asm/avx512/force_aos_geq1200_markers.s deleted file mode 100644 index 0fd894e..0000000 --- a/asm/avx512/force_aos_geq1200_markers.s +++ /dev/null @@ -1,563 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; -# mark_description "m-usage=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - movq %rsi, %r8 #35.1 - vmovsd 72(%rdi), %xmm2 #38.27 - movq %rdx, %rax #35.1 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movl 4(%r8), %r12d #36.18 - movq 64(%r8), %r11 #41.20 - movq 72(%r8), %rdx #41.45 - movq 80(%r8), %r9 #41.70 - testl %r12d, %r12d #44.24 - jle ..B1.42 # Prob 50% #44.24 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - movl %r12d, %edi #44.5 - xorl %esi, %esi #44.5 - movl $1, %r10d #44.5 - xorl %ecx, %ecx #44.5 - shrl $1, %edi #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.3: # Preds ..B1.2 - # Execution count [9.00e-01] - xorl %r10d, %r10d #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.4 ..B1.3 - # Execution count [2.50e+00] - movq %r10, (%rcx,%r11) #45.9 - incq %rsi #44.5 - movq %r10, (%rcx,%rdx) #46.9 - movq %r10, (%rcx,%r9) #47.9 - movq %r10, 8(%rcx,%r11) #45.9 - movq %r10, 8(%rcx,%rdx) #46.9 - movq %r10, 8(%rcx,%r9) #47.9 - addq $16, %rcx #44.5 - cmpq %rdi, %rsi #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rsi,%rsi), %r10d #45.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r10), %ecx #44.5 - cmpl %r12d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r10d, %r10 #44.5 - xorl %ecx, %ecx #45.9 - movq %rcx, -8(%r11,%r10,8) #45.9 - movq %rcx, -8(%rdx,%r10,8) #46.9 - movq %rcx, -8(%r9,%r10,8) #47.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm13 #38.45 - xorl %ecx, %ecx #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 - vbroadcastsd %xmm13, %zmm14 #38.25 - vbroadcastsd %xmm1, %zmm13 #39.21 - vbroadcastsd %xmm0, %zmm10 #77.41 - movslq %r12d, %r12 #55.5 - xorl %esi, %esi #55.5 - movq 24(%rax), %r13 #57.25 - movq 16(%r8), %rdi #58.25 - movslq 16(%rax), %r8 #56.43 - movq 8(%rax), %r10 #56.19 - xorl %eax, %eax #55.5 - shlq $2, %r8 #37.5 - movq %r12, -24(%rsp) #55.5[spill] - movq %r13, -16(%rsp) #55.5[spill] - movq %r11, -8(%rsp) #55.5[spill] - movq %r14, -88(%rsp) #55.5[spill] - movq %r15, -96(%rsp) #55.5[spill] - movq %rbx, -104(%rsp) #55.5[spill] - .cfi_offset 3, -128 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.9: # Preds ..B1.39 ..B1.8 - # Execution count [5.00e+00] - movq -16(%rsp), %rbx #57.25[spill] - vxorpd %xmm24, %xmm24, %xmm24 #61.22 - vmovapd %xmm24, %xmm18 #62.22 - movl (%rbx,%rsi,4), %r11d #57.25 - vmovapd %xmm18, %xmm4 #63.22 - vmovsd (%rax,%rdi), %xmm6 #58.25 - vmovsd 8(%rax,%rdi), %xmm7 #59.25 - vmovsd 16(%rax,%rdi), %xmm12 #60.25 - testl %r11d, %r11d #67.28 - jle ..B1.39 # Prob 50% #67.28 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vpxord %zmm9, %zmm9, %zmm9 #61.22 - vmovaps %zmm9, %zmm8 #62.22 - vmovaps %zmm8, %zmm11 #63.22 - cmpl $8, %r11d #67.9 - jl ..B1.44 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r11d #67.9 - jl ..B1.43 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r8, %r15 #56.43 - imulq %rcx, %r15 #56.43 - addq %r10, %r15 #37.5 - movq %r15, %r12 #67.9 - andq $63, %r12 #67.9 - testl $3, %r12d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r12d, %r12d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r12d, %r12d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r12d #67.9 - addl $64, %r12d #67.9 - shrl $2, %r12d #67.9 - cmpl %r12d, %r11d #67.9 - cmovl %r11d, %r12d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r11d, %r14d #67.9 - subl %r12d, %r14d #67.9 - andl $7, %r14d #67.9 - negl %r14d #67.9 - addl %r11d, %r14d #67.9 - cmpl $1, %r12d #67.9 - jb ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa %ymm15, %ymm3 #67.9 - xorl %r13d, %r13d #67.9 - vpbroadcastd %r12d, %ymm2 #67.9 - vbroadcastsd %xmm6, %zmm1 #58.23 - vbroadcastsd %xmm7, %zmm0 #59.23 - vbroadcastsd %xmm12, %zmm4 #60.23 - movslq %r12d, %rbx #67.9 - movq %r9, -80(%rsp) #67.9[spill] - movq %rdx, -72(%rsp) #67.9[spill] - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.18: # Preds ..B1.22 ..B1.17 - # Execution count [2.50e+01] - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - vpcmpgtd %ymm3, %ymm2, %k3 #67.9 - vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 - kmovw %k3, %r9d #67.9 - vpaddd %ymm17, %ymm17, %ymm18 #69.36 - vpaddd %ymm18, %ymm17, %ymm17 #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.21: # Preds ..B1.18 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vpxord %zmm19, %zmm19, %zmm19 #69.36 - vpxord %zmm20, %zmm20, %zmm20 #69.36 - vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 - vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 -..B1.22: # Preds ..B1.21 - # Execution count [2.50e+01] - addq $8, %r13 #67.9 - vpaddd %ymm16, %ymm3, %ymm3 #67.9 - vsubpd %zmm18, %zmm4, %zmm29 #71.36 - vsubpd %zmm19, %zmm0, %zmm27 #70.36 - vsubpd %zmm20, %zmm1, %zmm26 #69.36 - vmulpd %zmm27, %zmm27, %zmm25 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 - vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 - vrcp14pd %zmm25, %zmm24 #75.38 - vcmppd $1, %zmm14, %zmm25, %k2 #74.22 - vfpclasspd $30, %zmm24, %k0 #75.38 - kmovw %k2, %edx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm25, %zmm17 #75.38 - andl %edx, %r9d #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 - kmovw %r9d, %k3 #78.17 - vmulpd %zmm17, %zmm17, %zmm18 #75.38 - vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 - vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 - vmulpd %zmm13, %zmm24, %zmm19 #76.38 - vmulpd %zmm10, %zmm24, %zmm21 #77.54 - vmulpd %zmm19, %zmm24, %zmm22 #76.44 - vmulpd %zmm22, %zmm24, %zmm20 #76.50 - vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 - vmulpd %zmm21, %zmm20, %zmm23 #77.61 - vmulpd %zmm24, %zmm23, %zmm28 #77.67 - vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 - vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 - vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 - cmpq %rbx, %r13 #67.9 - jb ..B1.18 # Prob 82% #67.9 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.23: # Preds ..B1.22 - # Execution count [4.50e+00] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - cmpl %r12d, %r11d #67.9 - je ..B1.38 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 - # Execution count [2.50e+01] - lea 8(%r12), %ebx #67.9 - cmpl %ebx, %r14d #67.9 - jl ..B1.32 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.25: # Preds ..B1.24 - # Execution count [4.50e+00] - movq %r8, %r13 #56.43 - imulq %rcx, %r13 #56.43 - vbroadcastsd %xmm6, %zmm2 #58.23 - vbroadcastsd %xmm7, %zmm1 #59.23 - vbroadcastsd %xmm12, %zmm0 #60.23 - movslq %r12d, %rbx #67.9 - addq %r10, %r13 #37.5 - movq %rax, -64(%rsp) #37.5[spill] - movq %r8, -56(%rsp) #37.5[spill] - movq %r10, -48(%rsp) #37.5[spill] - movq %rsi, -40(%rsp) #37.5[spill] - movq %rcx, -32(%rsp) #37.5[spill] - movq %r9, -80(%rsp) #37.5[spill] - movq %rdx, -72(%rsp) #37.5[spill] - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.26: # Preds ..B1.30 ..B1.25 - # Execution count [2.50e+01] - vmovdqu (%r13,%rbx,4), %ymm3 #68.21 - vpaddd %ymm3, %ymm3, %ymm4 #69.36 - vpaddd %ymm4, %ymm3, %ymm3 #69.36 - movl (%r13,%rbx,4), %r10d #68.21 - movl 4(%r13,%rbx,4), %r9d #68.21 - movl 8(%r13,%rbx,4), %r8d #68.21 - movl 12(%r13,%rbx,4), %esi #68.21 - lea (%r10,%r10,2), %r10d #69.36 - movl 16(%r13,%rbx,4), %ecx #68.21 - lea (%r9,%r9,2), %r9d #69.36 - movl 20(%r13,%rbx,4), %edx #68.21 - lea (%r8,%r8,2), %r8d #69.36 - movl 24(%r13,%rbx,4), %eax #68.21 - lea (%rsi,%rsi,2), %esi #69.36 - movl 28(%r13,%rbx,4), %r15d #68.21 - lea (%rcx,%rcx,2), %ecx #69.36 - lea (%rdx,%rdx,2), %edx #69.36 - lea (%rax,%rax,2), %eax #69.36 - lea (%r15,%r15,2), %r15d #69.36 - # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.29: # Preds ..B1.26 - # Execution count [1.25e+01] - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k2 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #69.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm17, %zmm17, %zmm17 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 - vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 -..B1.30: # Preds ..B1.29 - # Execution count [2.50e+01] - addl $8, %r12d #67.9 - addq $8, %rbx #67.9 - vsubpd %zmm4, %zmm0, %zmm26 #71.36 - vsubpd %zmm17, %zmm1, %zmm24 #70.36 - vsubpd %zmm18, %zmm2, %zmm23 #69.36 - vmulpd %zmm24, %zmm24, %zmm3 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 - vrcp14pd %zmm3, %zmm22 #75.38 - vcmppd $1, %zmm14, %zmm3, %k2 #74.22 - vfpclasspd $30, %zmm22, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 - knotw %k0, %k1 #75.38 - vmulpd %zmm3, %zmm3, %zmm4 #75.38 - vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 - vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 - vmulpd %zmm13, %zmm22, %zmm17 #76.38 - vmulpd %zmm10, %zmm22, %zmm19 #77.54 - vmulpd %zmm17, %zmm22, %zmm20 #76.44 - vmulpd %zmm20, %zmm22, %zmm18 #76.50 - vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 - vmulpd %zmm19, %zmm18, %zmm21 #77.61 - vmulpd %zmm22, %zmm21, %zmm25 #77.67 - vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 - vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 - vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 - cmpl %r14d, %r12d #67.9 - jb ..B1.26 # Prob 82% #67.9 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.31: # Preds ..B1.30 - # Execution count [4.50e+00] - movq -64(%rsp), %rax #[spill] - movq -56(%rsp), %r8 #[spill] - movq -48(%rsp), %r10 #[spill] - movq -40(%rsp), %rsi #[spill] - movq -32(%rsp), %rcx #[spill] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 - # Execution count [5.00e+00] - lea 1(%r14), %ebx #67.9 - cmpl %r11d, %ebx #67.9 - ja ..B1.38 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.33: # Preds ..B1.32 - # Execution count [2.50e+01] - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm6, %zmm4 #58.23 - subl %r14d, %r11d #67.9 - addq %r10, %rcx #37.5 - vpbroadcastd %r11d, %ymm0 #67.9 - vpcmpgtd %ymm15, %ymm0, %k3 #67.9 - movslq %r14d, %r14 #67.9 - kmovw %k3, %ebx #67.9 - vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 - vpaddd %ymm1, %ymm1, %ymm2 #69.36 - vpaddd %ymm2, %ymm1, %ymm0 #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.36: # Preds ..B1.33 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm1, %zmm1, %zmm1 #69.36 - vpxord %zmm2, %zmm2, %zmm2 #69.36 - vpxord %zmm3, %zmm3, %zmm3 #69.36 - vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 - vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.37: # Preds ..B1.36 - # Execution count [2.50e+01] - vbroadcastsd %xmm7, %zmm7 #59.23 - vbroadcastsd %xmm12, %zmm12 #60.23 - vsubpd %zmm1, %zmm12, %zmm23 #71.36 - vsubpd %zmm2, %zmm7, %zmm21 #70.36 - vsubpd %zmm3, %zmm4, %zmm20 #69.36 - vmulpd %zmm21, %zmm21, %zmm19 #72.49 - vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 - vrcp14pd %zmm19, %zmm18 #75.38 - vcmppd $1, %zmm14, %zmm19, %k2 #74.22 - vfpclasspd $30, %zmm18, %k0 #75.38 - kmovw %k2, %ecx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm19, %zmm0 #75.38 - andl %ecx, %ebx #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 - kmovw %ebx, %k3 #78.17 - vmulpd %zmm0, %zmm0, %zmm1 #75.38 - vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 - vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 - vmulpd %zmm13, %zmm18, %zmm2 #76.38 - vmulpd %zmm10, %zmm18, %zmm4 #77.54 - vmulpd %zmm2, %zmm18, %zmm6 #76.44 - vmulpd %zmm6, %zmm18, %zmm3 #76.50 - vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 - vmulpd %zmm4, %zmm3, %zmm17 #77.61 - vmulpd %zmm18, %zmm17, %zmm22 #77.67 - vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 - vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 - vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 - vpermd %zmm11, %zmm19, %zmm0 #63.22 - vpermd %zmm8, %zmm19, %zmm6 #62.22 - vpermd %zmm9, %zmm19, %zmm20 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm8, %zmm6, %zmm8 #62.22 - vaddpd %zmm9, %zmm20, %zmm9 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm8, %zmm7 #62.22 - vpermpd $78, %zmm9, %zmm21 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm7, %zmm8, %zmm12 #62.22 - vaddpd %zmm21, %zmm9, %zmm22 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm12, %zmm17 #62.22 - vpermpd $177, %zmm22, %zmm23 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm17, %zmm12, %zmm18 #62.22 - vaddpd %zmm23, %zmm22, %zmm24 #61.22 - # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.39: # Preds ..B1.38 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - addq $24, %rax #55.5 - vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%rsi,8) #84.9 - movslq %esi, %rcx #55.32 - vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 - vmovsd %xmm1, (%rdx,%rsi,8) #85.9 - incq %rcx #55.32 - vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%r9,%rsi,8) #86.9 - incq %rsi #55.5 - cmpq -24(%rsp), %rsi #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.40: # Preds ..B1.39 - # Execution count [9.00e-01] - movq -88(%rsp), %r14 #[spill] - .cfi_restore 14 - movq -96(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -104(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r14 r15 -..B1.42: # Preds ..B1.1 ..B1.40 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 24 - .cfi_offset 3, -128 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE -..B1.43: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r11d, %r14d #67.9 - xorl %r12d, %r12d #67.9 - andl $-8, %r14d #67.9 - jmp ..B1.24 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.44: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %r14d, %r14d #67.9 - jmp ..B1.32 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.5: - .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 64 -.L_2il0floatpacket.7: - .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 - .type .L_2il0floatpacket.7,@object - .size .L_2il0floatpacket.7,64 - .align 64 -.L_2il0floatpacket.8: - .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 - .type .L_2il0floatpacket.8,@object - .size .L_2il0floatpacket.8,64 - .align 64 -.L_2il0floatpacket.10: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.10,@object - .size .L_2il0floatpacket.10,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.9: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.9,@object - .size .L_2il0floatpacket.9,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_aos_intel.s b/asm/avx512/force_aos_intel.s deleted file mode 100644 index 4f1ef76..0000000 --- a/asm/avx512/force_aos_intel.s +++ /dev/null @@ -1,976 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -masm=intel -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX"; -# mark_description "512 -qopt-zmm-usage=high -o ICC/force.s"; - .intel_syntax noprefix - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: rdi -# parameter 2: rsi -# parameter 3: rdx -# parameter 4: ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - push r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - push r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 -# r8 <- atom - mov r8, rsi #35.1 -# xmm2 <- param->cutforce - vmovsd xmm2, QWORD PTR [72+rdi] #38.27 -# rax <- neighbors - mov rax, rdx #35.1 -# xmm1 <- param->sigma6 - vmovsd xmm1, QWORD PTR [8+rdi] #39.23 -# xmm0 <- param->epsilon - vmovsd xmm0, QWORD PTR [rdi] #40.24 -# r12d <- atom->Nlocal - mov r12d, DWORD PTR [4+r8] #36.18 -# r11 <- atom->fx - mov r11, QWORD PTR [64+r8] #41.20 -# rdx <- atom->fy - mov rdx, QWORD PTR [72+r8] #41.45 -# r9 <- atom->fz - mov r9, QWORD PTR [80+r8] #41.70 -# atom->Nlocal > 0 - test r12d, r12d #44.24 - jle ..B1.42 # Prob 50% #44.24 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] -# edi <- atom->Nlocal - mov edi, r12d #44.5 -# esi <- 0 - xor esi, esi #44.5 -# r10d <- 1 - mov r10d, 1 #44.5 -# ecx <- 0 - xor ecx, ecx #44.5 -# edi <- atom->Nlocal >> 1 - shr edi, 1 #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.3: # Preds ..B1.2 - # Execution count [9.00e-01] -# r10d <- 0 - xor r10d, r10d #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.4 ..B1.3 - # Execution count [2.50e+00] -# atom->fx[i] <- 0.0 - mov QWORD PTR [rcx+r11], r10 #45.9 -# i++ - inc rsi #44.5 -# atom->fy[i] <- 0.0 - mov QWORD PTR [rcx+rdx], r10 #46.9 -# atom->fz[i] <- 0.0 - mov QWORD PTR [rcx+r9], r10 #47.9 - mov QWORD PTR [8+rcx+r11], r10 #45.9 - mov QWORD PTR [8+rcx+rdx], r10 #46.9 - mov QWORD PTR [8+rcx+r9], r10 #47.9 - add rcx, 16 #44.5 - cmp rsi, rdi #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea r10d, DWORD PTR [1+rsi+rsi] #45.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea ecx, DWORD PTR [-1+r10] #44.5 - cmp ecx, r12d #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movsxd r10, r10d #44.5 - xor ecx, ecx #45.9 - mov QWORD PTR [-8+r11+r10*8], rcx #45.9 - mov QWORD PTR [-8+rdx+r10*8], rcx #46.9 - mov QWORD PTR [-8+r9+r10*8], rcx #47.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] -# xmm13 <- cutforcesq - vmulsd xmm13, xmm2, xmm2 #38.45 -# ecx <- i - xor ecx, ecx #55.15 -# ymm16 <- 8 (vector width / sizeof(double) ?) - vmovdqu32 ymm16, YMMWORD PTR .L_2il0floatpacket.0[rip] #67.9 -# xmm0 <- 48 * sr6 - vmulsd xmm0, xmm0, QWORD PTR .L_2il0floatpacket.3[rip] #77.41 -# ymm15 <- [0..7] - vmovdqu ymm15, YMMWORD PTR .L_2il0floatpacket.1[rip] #67.9 -# zmm5 <- 0.5 - vmovups zmm5, ZMMWORD PTR .L_2il0floatpacket.4[rip] #77.54 -# zmm14 <- cutforcesq - vbroadcastsd zmm14, xmm13 #38.25 -# zmm13 <- param->sigma6 - vbroadcastsd zmm13, xmm1 #39.21 -# zmm10 <- param->epsilon - vbroadcastsd zmm10, xmm0 #77.41 -# r12 <- atom->nlocal - movsxd r12, r12d #55.5 -# esi <- 0 (i) - xor esi, esi #55.5 -# r13 <- neighbor->numneighs - mov r13, QWORD PTR [24+rax] #57.25 -# rdi <- atom->x - mov rdi, QWORD PTR [16+r8] #58.25 -# r8 <- neighbor->maxneighs - movsxd r8, DWORD PTR [16+rax] #56.43 -# r10 <- neighbor->neighbors - mov r10, QWORD PTR [8+rax] #56.19 -# eax <- 0 (i * 3) - xor eax, eax #55.5 -# r8 <- neighbor->maxneighs << 2 - shl r8, 2 #37.5 -# [-24+rsp] <- atom->nlocal - mov QWORD PTR [-24+rsp], r12 #55.5[spill] -# [-16+rsp] <- neighbor->numneigh - mov QWORD PTR [-16+rsp], r13 #55.5[spill] -# [-8+rsp] <- atom->fx - mov QWORD PTR [-8+rsp], r11 #55.5[spill] -# [-88+rsp] <- r14 (unused so far) - mov QWORD PTR [-88+rsp], r14 #55.5[spill] -# [-96+rsp] <- r15 (unused so far) - mov QWORD PTR [-96+rsp], r15 #55.5[spill] -# [-104+rsp] <- rbx (unused so far) - mov QWORD PTR [-104+rsp], rbx #55.5[spill] - .cfi_offset 3, -128 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.9: # Preds ..B1.39 ..B1.8 - # Execution count [5.00e+00] -# rbx <- neighbor->numneigh - mov rbx, QWORD PTR [-16+rsp] #57.25[spill] -# xmm24 <- 0 (fix) - vxorpd xmm24, xmm24, xmm24 #61.22 -# xmm18 <- 0 (fiy) - vmovapd xmm18, xmm24 #62.22 -# r11d <- neighbor->numneigh[i] - mov r11d, DWORD PTR [rbx+rsi*4] #57.25 -# xmm4 <- 0 (fiz) - vmovapd xmm4, xmm18 #63.22 -# xmm6 <- atom->x[i * 3] - vmovsd xmm6, QWORD PTR [rax+rdi] #58.25 -# xmm6 <- atom->x[i * 3 + 1] - vmovsd xmm7, QWORD PTR [8+rax+rdi] #59.25 -# xmm6 <- atom->x[i * 3 + 2] - vmovsd xmm12, QWORD PTR [16+rax+rdi] #60.25 -# neighbor->numneigh[i] > 0 - test r11d, r11d #67.28 - jle ..B1.39 # Prob 50% #67.28 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] -# zmm9 <- 0 (fix) - vpxord zmm9, zmm9, zmm9 #61.22 -# zmm8 <- 0 (fiy) - vmovaps zmm8, zmm9 #62.22 -# zmm11 <- 0 (fiz) - vmovaps zmm11, zmm8 #63.22 -# neighbor->numneigh[i] < 8 - cmp r11d, 8 #67.9 - jl ..B1.44 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] -# neighbor->numneigh[i] < 1200 -# L1? 1200 * 3 * 8 = 28800 = 28.8kB - cmp r11d, 1200 #67.9 - jl ..B1.43 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] -# r15 <- neighbor->maxneighs - mov r15, r8 #56.43 -# r15 <- neighbor->maxneighs * i - imul r15, rcx #56.43 -# r15 <- neighbor->neighbors + neighbor->maxneighs * i - add r15, r10 #37.5 -# r12 <- neighbor->neighbors + neighbor->maxneighs * i - mov r12, r15 #67.9 -# r12 <- (neighbor->neighbors + neighbor->maxneighs * i) & 63 -- 0b00111111 - and r12, 63 #67.9 -# (neighbor->neighbors + neighbor->maxneighs * i) & 63 == 3 -- 0b00000011 - test r12d, 3 #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] -# r12d <- 0 - xor r12d, r12d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] -# r12d == 0 - test r12d, r12d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] -# r12d <- ~r12d + 1 - neg r12d #67.9 -# r12d <- (~r12d + 1) + 64 - add r12d, 64 #67.9 -# r12d <- ((~r12d + 1) + 64) >> 2 - shr r12d, 2 #67.9 -# neighbor->numneigh[i] < r12d - cmp r11d, r12d #67.9 -# r12d <- min(r12d, neighbor->numneigh[i]) - cmovl r12d, r11d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] -# r14d <- neighbor->numneigh[i] - mov r14d, r11d #67.9 -# r14d <- neighbor->numneigh[i] - r12d - sub r14d, r12d #67.9 -# r14d <- (neighbor->numneigh[i] - r12d) & 7 (0b0111) - and r14d, 7 #67.9 -# r14d <- ~r14d + 1 - neg r14d #67.9 -# r14d <- r14d + neighbor->numneigh[i] - add r14d, r11d #67.9 -# r12d < 1 - cmp r12d, 1 #67.9 - jb ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] -# ymm3 <- [0..7] - vmovdqa ymm3, ymm15 #67.9 -# r13d <- 0 - xor r13d, r13d #67.9 -# ymm2 <- r12d (k? amount of neighs?) - vpbroadcastd ymm2, r12d #67.9 -# zmm1 <- atom->x[i * 3] - vbroadcastsd zmm1, xmm6 #58.23 -# zmm0 <- atom->x[i * 3 + 1] - vbroadcastsd zmm0, xmm7 #59.23 -# zmm4 <- atom->x[i * 3 + 2] - vbroadcastsd zmm4, xmm12 #60.23 -# rbx <- r12d (k? amount of neighs?) - movsxd rbx, r12d #67.9 -# [-80+rsp] <- atom->fz - mov QWORD PTR [-80+rsp], r9 #67.9[spill] -# [-72+rdx] <- atom->fy - mov QWORD PTR [-72+rsp], rdx #67.9[spill] - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.18: # Preds ..B1.22 ..B1.17 - # Execution count [2.50e+01] -# k3 <- [x when amount_of_neighs < [0..7](x)] (i.e. mask of available neighbors) - vpcmpgtd k3, ymm2, ymm3 #67.9 -# ymm17 <- neighs[k] - vmovdqu32 ymm17{k3}{z}, YMMWORD PTR [r15+r13*4] #68.21 -# r9d <- k3 - kmovw r9d, k3 #67.9 -# ymm18 <- neighs[k] * 2 - vpaddd ymm18, ymm17, ymm17 #69.36 -# ymm17 <- neighs[k] * 3 - vpaddd ymm17, ymm17, ymm18 #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.21: # Preds ..B1.18 - # Execution count [1.25e+01] -# k1 <- k3 - kmovw k1, k3 #69.36 -# k2 <- k3 - kmovw k2, k3 #69.36 -# zmm18 <- 0.0 - vpxord zmm18, zmm18, zmm18 #69.36 -# zmm19 <- 0.0 - vpxord zmm19, zmm19, zmm19 #69.36 -# zmm20 <- 0.0 - vpxord zmm20, zmm20, zmm20 #69.36 -# zmm18 <- atom->x[j * 3 + 2] - vgatherdpd zmm18{k1}, QWORD PTR [16+rdi+ymm17*8] #69.36 -# zmm19 <- atom->x[j * 3 + 1] - vgatherdpd zmm19{k2}, QWORD PTR [8+rdi+ymm17*8] #69.36 -# zmm20 <- atom->x[j * 3] - vgatherdpd zmm20{k3}, QWORD PTR [rdi+ymm17*8] #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 -..B1.22: # Preds ..B1.21 - # Execution count [2.50e+01] -# k++ (+= 8) - add r13, 8 #67.9 -# ymm3 <- [0..7] + 8 - vpaddd ymm3, ymm3, ymm16 #67.9 -# zmm29 <- atom->x[i * 3 + 2] - atom->x[j * 3 + 2] - vsubpd zmm29, zmm4, zmm18 #71.36 -# zmm27 <- atom->x[i * 3 + 1] - atom->x[j * 3 + 1] - vsubpd zmm27, zmm0, zmm19 #70.36 -# zmm26 <- atom->x[i * 3] - atom->x[j * 3] - vsubpd zmm26, zmm1, zmm20 #69.36 -# zmm25 <- dely * dely - vmulpd zmm25, zmm27, zmm27 #72.49 -# zmm25 <- delx * delx + dely * dely - vfmadd231pd zmm25, zmm26, zmm26 #72.49 -# zmm25 <- rsq (delz * delz + delx * delx + dely * dely) - vfmadd231pd zmm25, zmm29, zmm29 #72.63 -# zmm24 <- sr2 (1.0 / rsq -- compute reciprocal) - vrcp14pd zmm24, zmm25 #75.38 -# k2 <- [rsq < cutforcesq] - vcmppd k2, zmm25, zmm14, 1 #74.22 -# k0 <- [true when +0, Neg. 0, +inf, -inf] - vfpclasspd k0, zmm24, 30 #75.38 -# edx <- k2 - kmovw edx, k2 #74.22 -# k1 <- [false when +0, Neg. 0, +inf, -inf] - knotw k1, k0 #75.38 -# zmm17 <- rsq - vmovaps zmm17, zmm25 #75.38 -# r9d <- [true if k < numneighs and rsq < cutforcesq] - and r9d, edx #74.22 -# zmm17 <- [-(rsq * sr2) + 1.0] -- check if 1.0 / rsq is valid! -- call it error? - vfnmadd213pd zmm17, zmm24, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 -# k3 <- [true if k < numneighs and rsq < cutforcesq] - kmovw k3, r9d #78.17 -# zmm18 <- [(-rsq * sr2 + 1.0) * (-rsq * sr2 + 1.0)] -- errorsq - vmulpd zmm18, zmm17, zmm17 #75.38 -# zmm24 <- [sr2 * error + sr2] - vfmadd213pd zmm24{k1}, zmm17, zmm24 #75.38 -# zmm24 <- [(sr2 * error + sr2) * errorsq + (sr2 * error + sr2)] - vfmadd213pd zmm24{k1}, zmm18, zmm24 #75.38 -# zmm19 <- sr2 * sigma6 - vmulpd zmm19, zmm24, zmm13 #76.38 -# zmm21 <- sr2 * epsilon - vmulpd zmm21, zmm24, zmm10 #77.54 -# zmm22 <- sr2 * sr2 * sigma6 - vmulpd zmm22, zmm24, zmm19 #76.44 -# zmm20 <- sr6 (sr2 * sr2 * sr2 * sigma6) - vmulpd zmm20, zmm24, zmm22 #76.50 -# zmm24 <- sr2 * (sr2 * sr2 * sigma) - 0.5 (why not vsubpd zmm24, zmm20, zmm5 ?) - vfmsub213pd zmm24, zmm22, zmm5 #77.54 -# zmm23 <- (sr6) * (sr2 * epsilon) - vmulpd zmm23, zmm20, zmm21 #77.61 -# zmm28 <- force -- (sr6 * sr2 * epsilon) * (sr6 - 0.5) - vmulpd zmm28, zmm23, zmm24 #77.67 -# zmm9 <- force * delx + fix - vfmadd231pd zmm9{k3}, zmm28, zmm26 #78.17 -# zmm8 <- force * dely + fiy - vfmadd231pd zmm8{k3}, zmm28, zmm27 #79.17 -# zmm11 <- force * delz + fiz - vfmadd231pd zmm11{k3}, zmm28, zmm29 #80.17 -# k < numneighs - cmp r13, rbx #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.23: # Preds ..B1.22 - # Execution count [4.50e+00] -# r9 <- atom->fz - mov r9, QWORD PTR [-80+rsp] #[spill] -# rdx <- atom->fy - mov rdx, QWORD PTR [-72+rsp] #[spill] -# numneighs == amount_of_neighs - cmp r11d, r12d #67.9 - je ..B1.38 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 - # Execution count [2.50e+01] -# COND: neighbor->numneigh[i] < 1200 -# ebx <- k + 8 - lea ebx, DWORD PTR [8+r12] #67.9 -# k - (k % 8) < k + 8 TODO: this may be wrong, but probably checks if the number of remaining neighbors is less than 8 - cmp r14d, ebx #67.9 - jl ..B1.32 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.25: # Preds ..B1.24 - # Execution count [4.50e+00] -# r13 <- neighbor->maxneighs << 2 - mov r13, r8 #56.43 -# r13 <- neighbor->maxneighs * 4 * i - imul r13, rcx #56.43 -# zmm2 <- atom->x[i * 3] - vbroadcastsd zmm2, xmm6 #58.23 -# zmm1 <- atom->x[i * 3 + 1] - vbroadcastsd zmm1, xmm7 #59.23 -# zmm0 <- atom->x[i * 3 + 2] - vbroadcastsd zmm0, xmm12 #60.23 -# rbx <- r12d (k? amount of neighs?) - movsxd rbx, r12d #67.9 -# r13 <- neighs (neighbor->neighbors + neighbor->maxneighs * 4 * i) - add r13, r10 #37.5 - mov QWORD PTR [-64+rsp], rax #37.5[spill] - mov QWORD PTR [-56+rsp], r8 #37.5[spill] - mov QWORD PTR [-48+rsp], r10 #37.5[spill] - mov QWORD PTR [-40+rsp], rsi #37.5[spill] - mov QWORD PTR [-32+rsp], rcx #37.5[spill] - mov QWORD PTR [-80+rsp], r9 #37.5[spill] - mov QWORD PTR [-72+rsp], rdx #37.5[spill] - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.26: # Preds ..B1.30 ..B1.25 - # Execution count [2.50e+01] -# ymm3 <- neighs[k] - vmovdqu ymm3, YMMWORD PTR [r13+rbx*4] #68.21 -# ymm4 <- neighs[k] * 2 - vpaddd ymm4, ymm3, ymm3 #69.36 -# ymm3 <- neighs[k] * 3 - vpaddd ymm3, ymm3, ymm4 #69.36 - -# Prefetching Instructions???????????? -# r10d <- neighs[k] - mov r10d, DWORD PTR [r13+rbx*4] #68.21 -# r9d <- neighs[k + 1] - mov r9d, DWORD PTR [4+r13+rbx*4] #68.21 -# r8d <- neighs[k + 2] - mov r8d, DWORD PTR [8+r13+rbx*4] #68.21 -# esi <- neighs[k + 3] - mov esi, DWORD PTR [12+r13+rbx*4] #68.21 -# r10d <- neighs[k] * 3 - lea r10d, DWORD PTR [r10+r10*2] #69.36 -# ecx <- neighs[k + 4] - mov ecx, DWORD PTR [16+r13+rbx*4] #68.21 -# r9d <- neighs[k + 1] * 3 - lea r9d, DWORD PTR [r9+r9*2] #69.36 -# edx <- neighs[k + 5] - mov edx, DWORD PTR [20+r13+rbx*4] #68.21 -# r8d <- neighs[k + 2] * 3 - lea r8d, DWORD PTR [r8+r8*2] #69.36 -# edx <- neighs[k + 6] - mov eax, DWORD PTR [24+r13+rbx*4] #68.21 -# esi <- neighs[k + 3] * 3 - lea esi, DWORD PTR [rsi+rsi*2] #69.36 -# edx <- neighs[k + 7] - mov r15d, DWORD PTR [28+r13+rbx*4] #68.21 -# ecx <- neighs[k + 4] * 3 - lea ecx, DWORD PTR [rcx+rcx*2] #69.36 -# ecx <- neighs[k + 5] * 3 - lea edx, DWORD PTR [rdx+rdx*2] #69.36 -# ecx <- neighs[k + 6] * 3 - lea eax, DWORD PTR [rax+rax*2] #69.36 -# ecx <- neighs[k + 7] * 3 - lea r15d, DWORD PTR [r15+r15*2] #69.36 - # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.29: # Preds ..B1.26 - # Execution count [1.25e+01] -# k1 <- [true for all elements] - vpcmpeqb k1, xmm0, xmm0 #69.36 -# k2 <- [true for all elements] - vpcmpeqb k2, xmm0, xmm0 #69.36 -# k3 <- [true for all elements] - vpcmpeqb k3, xmm0, xmm0 #69.36 -# zmm4 <- 0.0 - vpxord zmm4, zmm4, zmm4 #69.36 -# zmm17 <- 0.0 - vpxord zmm17, zmm17, zmm17 #69.36 -# zmm18 <- 0.0 - vpxord zmm18, zmm18, zmm18 #69.36 -# zmm4 <- atom->x[j * 3 + 2] - vgatherdpd zmm4{k1}, QWORD PTR [16+rdi+ymm3*8] #69.36 -# zmm17 <- atom->x[j * 3 + 1] - vgatherdpd zmm17{k2}, QWORD PTR [8+rdi+ymm3*8] #69.36 -# zmm18 <- atom->x[j * 3] - vgatherdpd zmm18{k3}, QWORD PTR [rdi+ymm3*8] #69.36 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 -..B1.30: # Preds ..B1.29 - # Execution count [2.50e+01] -# k++ - add r12d, 8 #67.9 -# k++ - add rbx, 8 #67.9 -# zmm26 <- atom->x[i * 3 + 2] - atom->x[j * 3 + 2] - vsubpd zmm26, zmm0, zmm4 #71.36 -# zmm24 <- atom->x[i * 3 + 1] - atom->x[j * 3 + 1] - vsubpd zmm24, zmm1, zmm17 #70.36 -# zmm23 <- atom->x[i * 3] - atom->x[j * 3] - vsubpd zmm23, zmm2, zmm18 #69.36 -# zmm3 <- dely * dely - vmulpd zmm3, zmm24, zmm24 #72.49 -# zmm3 <- delx * delx + dely * dely - vfmadd231pd zmm3, zmm23, zmm23 #72.49 -# zmm3 <- rsq (delz * delz + delx * delx + dely * dely) - vfmadd231pd zmm3, zmm26, zmm26 #72.63 -# zmm22 <- sr2 (1.0 / rsq -- compute reciprocal) - vrcp14pd zmm22, zmm3 #75.38 -# k2 <- [rsq < cutforcesq] - vcmppd k2, zmm3, zmm14, 1 #74.22 -# k0 <- [true when +0, Neg. 0, +inf, -inf] - vfpclasspd k0, zmm22, 30 #75.38 -# zmm3 <- [-(rsq * sr2) + 1.0] -- check if 1.0 / rsq is valid! -- call it error? - vfnmadd213pd zmm3, zmm22, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 -# k1 <- [false when +0, Neg. 0, +inf, -inf] - knotw k1, k0 #75.38 -# zmm4 <- [(-rsq * sr2 + 1.0) * (-rsq * sr2 + 1.0)] -- errorsq - vmulpd zmm4, zmm3, zmm3 #75.38 -# zmm22 <- [sr2 * error + sr2] - vfmadd213pd zmm22{k1}, zmm3, zmm22 #75.38 -# zmm22 <- [(sr2 * error + sr2) * errorsq + (sr2 * error + sr2)] - vfmadd213pd zmm22{k1}, zmm4, zmm22 #75.38 - vmulpd zmm17, zmm22, zmm13 #76.38 - vmulpd zmm19, zmm22, zmm10 #77.54 - vmulpd zmm20, zmm22, zmm17 #76.44 - vmulpd zmm18, zmm22, zmm20 #76.50 - vfmsub213pd zmm22, zmm20, zmm5 #77.54 - vmulpd zmm21, zmm18, zmm19 #77.61 - vmulpd zmm25, zmm21, zmm22 #77.67 - vfmadd231pd zmm9{k2}, zmm25, zmm23 #78.17 - vfmadd231pd zmm8{k2}, zmm25, zmm24 #79.17 - vfmadd231pd zmm11{k2}, zmm25, zmm26 #80.17 -# k < numneighs - cmp r12d, r14d #67.9 - jb ..B1.26 # Prob 82% #67.9 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.31: # Preds ..B1.30 - # Execution count [4.50e+00] - mov rax, QWORD PTR [-64+rsp] #[spill] - mov r8, QWORD PTR [-56+rsp] #[spill] - mov r10, QWORD PTR [-48+rsp] #[spill] - mov rsi, QWORD PTR [-40+rsp] #[spill] - mov rcx, QWORD PTR [-32+rsp] #[spill] - mov r9, QWORD PTR [-80+rsp] #[spill] - mov rdx, QWORD PTR [-72+rsp] #[spill] - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 - # Execution count [5.00e+00] -# COND: neighbor->numneigh[i] < 8 - lea ebx, DWORD PTR [1+r14] #67.9 - cmp ebx, r11d #67.9 - ja ..B1.38 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.33: # Preds ..B1.32 - # Execution count [2.50e+01] - imul rcx, r8 #56.43 - vbroadcastsd zmm4, xmm6 #58.23 - sub r11d, r14d #67.9 - add rcx, r10 #37.5 - vpbroadcastd ymm0, r11d #67.9 - vpcmpgtd k3, ymm0, ymm15 #67.9 - movsxd r14, r14d #67.9 - kmovw ebx, k3 #67.9 - vmovdqu32 ymm1{k3}{z}, YMMWORD PTR [rcx+r14*4] #68.21 - vpaddd ymm2, ymm1, ymm1 #69.36 - vpaddd ymm0, ymm1, ymm2 #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.36: # Preds ..B1.33 - # Execution count [1.25e+01] - kmovw k1, k3 #69.36 - kmovw k2, k3 #69.36 - vpxord zmm1, zmm1, zmm1 #69.36 - vpxord zmm2, zmm2, zmm2 #69.36 - vpxord zmm3, zmm3, zmm3 #69.36 - vgatherdpd zmm1{k1}, QWORD PTR [16+rdi+ymm0*8] #69.36 - vgatherdpd zmm2{k2}, QWORD PTR [8+rdi+ymm0*8] #69.36 - vgatherdpd zmm3{k3}, QWORD PTR [rdi+ymm0*8] #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.37: # Preds ..B1.36 - # Execution count [2.50e+01] - vbroadcastsd zmm7, xmm7 #59.23 - vbroadcastsd zmm12, xmm12 #60.23 - vsubpd zmm23, zmm12, zmm1 #71.36 - vsubpd zmm21, zmm7, zmm2 #70.36 - vsubpd zmm20, zmm4, zmm3 #69.36 - vmulpd zmm19, zmm21, zmm21 #72.49 - vfmadd231pd zmm19, zmm20, zmm20 #72.49 - vfmadd231pd zmm19, zmm23, zmm23 #72.63 - vrcp14pd zmm18, zmm19 #75.38 - vcmppd k2, zmm19, zmm14, 1 #74.22 - vfpclasspd k0, zmm18, 30 #75.38 - kmovw ecx, k2 #74.22 - knotw k1, k0 #75.38 - vmovaps zmm0, zmm19 #75.38 - and ebx, ecx #74.22 - vfnmadd213pd zmm0, zmm18, QWORD BCST .L_2il0floatpacket.9[rip] #75.38 - kmovw k3, ebx #78.17 - vmulpd zmm1, zmm0, zmm0 #75.38 - vfmadd213pd zmm18{k1}, zmm0, zmm18 #75.38 - vfmadd213pd zmm18{k1}, zmm1, zmm18 #75.38 - vmulpd zmm2, zmm18, zmm13 #76.38 - vmulpd zmm4, zmm18, zmm10 #77.54 - vmulpd zmm6, zmm18, zmm2 #76.44 - vmulpd zmm3, zmm18, zmm6 #76.50 - vfmsub213pd zmm18, zmm6, zmm5 #77.54 - vmulpd zmm17, zmm3, zmm4 #77.61 - vmulpd zmm22, zmm17, zmm18 #77.67 - vfmadd231pd zmm9{k3}, zmm22, zmm20 #78.17 - vfmadd231pd zmm8{k3}, zmm22, zmm21 #79.17 - vfmadd231pd zmm11{k3}, zmm22, zmm23 #80.17 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 - # Execution count [4.50e+00] - vmovups zmm19, ZMMWORD PTR .L_2il0floatpacket.10[rip] #63.22 - vpermd zmm0, zmm19, zmm11 #63.22 - vpermd zmm6, zmm19, zmm8 #62.22 - vpermd zmm20, zmm19, zmm9 #61.22 - vaddpd zmm11, zmm0, zmm11 #63.22 - vaddpd zmm8, zmm6, zmm8 #62.22 - vaddpd zmm9, zmm20, zmm9 #61.22 - vpermpd zmm1, zmm11, 78 #63.22 - vpermpd zmm7, zmm8, 78 #62.22 - vpermpd zmm21, zmm9, 78 #61.22 - vaddpd zmm2, zmm11, zmm1 #63.22 - vaddpd zmm12, zmm8, zmm7 #62.22 - vaddpd zmm22, zmm9, zmm21 #61.22 - vpermpd zmm3, zmm2, 177 #63.22 - vpermpd zmm17, zmm12, 177 #62.22 - vpermpd zmm23, zmm22, 177 #61.22 - vaddpd zmm4, zmm2, zmm3 #63.22 - vaddpd zmm18, zmm12, zmm17 #62.22 - vaddpd zmm24, zmm22, zmm23 #61.22 - # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.39: # Preds ..B1.38 ..B1.9 - # Execution count [5.00e+00] - mov rcx, QWORD PTR [-8+rsp] #84.9[spill] - add rax, 24 #55.5 - vaddsd xmm0, xmm24, QWORD PTR [rcx+rsi*8] #84.9 - vmovsd QWORD PTR [rcx+rsi*8], xmm0 #84.9 - movsxd rcx, esi #55.32 - vaddsd xmm1, xmm18, QWORD PTR [rdx+rsi*8] #85.9 - vmovsd QWORD PTR [rdx+rsi*8], xmm1 #85.9 - inc rcx #55.32 - vaddsd xmm2, xmm4, QWORD PTR [r9+rsi*8] #86.9 - vmovsd QWORD PTR [r9+rsi*8], xmm2 #86.9 - inc rsi #55.5 - cmp rsi, QWORD PTR [-24+rsp] #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.40: # Preds ..B1.39 - # Execution count [9.00e-01] - mov r14, QWORD PTR [-88+rsp] #[spill] - .cfi_restore 14 - mov r15, QWORD PTR [-96+rsp] #[spill] - .cfi_restore 15 - mov rbx, QWORD PTR [-104+rsp] #[spill] - .cfi_restore 3 - # LOE rbx rbp r14 r15 -..B1.42: # Preds ..B1.1 ..B1.40 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd xmm0, xmm0, xmm0 #93.12 - .cfi_restore 13 - pop r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - pop r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 24 - .cfi_offset 3, -128 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE -..B1.43: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq -# COND: neighbor->numneigh[i] < 1200 -# r14d <- numneighs - mov r14d, r11d #67.9 -# r12d <- 0 (k) - xor r12d, r12d #67.9 -# r14d <- numneighs & -8 (0b1111...111000), 32bits -- k - (k % 8) - and r14d, -8 #67.9 - jmp ..B1.24 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.44: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq -# COND: neighbor->numneigh[i] < 8 - xor r14d, r14d #67.9 - jmp ..B1.32 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.5: - .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 64 -.L_2il0floatpacket.7: - .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 - .type .L_2il0floatpacket.7,@object - .size .L_2il0floatpacket.7,64 - .align 64 -.L_2il0floatpacket.8: - .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 - .type .L_2il0floatpacket.8,@object - .size .L_2il0floatpacket.8,64 - .align 64 -.L_2il0floatpacket.10: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.10,@object - .size .L_2il0floatpacket.10,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.9: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.9,@object - .size .L_2il0floatpacket.9,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_aos_lt1200_markers.s b/asm/avx512/force_aos_lt1200_markers.s deleted file mode 100644 index 7022772..0000000 --- a/asm/avx512/force_aos_lt1200_markers.s +++ /dev/null @@ -1,563 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; -# mark_description "m-usage=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - movq %rsi, %r8 #35.1 - vmovsd 72(%rdi), %xmm2 #38.27 - movq %rdx, %rax #35.1 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movl 4(%r8), %r12d #36.18 - movq 64(%r8), %r11 #41.20 - movq 72(%r8), %rdx #41.45 - movq 80(%r8), %r9 #41.70 - testl %r12d, %r12d #44.24 - jle ..B1.42 # Prob 50% #44.24 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - movl %r12d, %edi #44.5 - xorl %esi, %esi #44.5 - movl $1, %r10d #44.5 - xorl %ecx, %ecx #44.5 - shrl $1, %edi #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.3: # Preds ..B1.2 - # Execution count [9.00e-01] - xorl %r10d, %r10d #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.4 ..B1.3 - # Execution count [2.50e+00] - movq %r10, (%rcx,%r11) #45.9 - incq %rsi #44.5 - movq %r10, (%rcx,%rdx) #46.9 - movq %r10, (%rcx,%r9) #47.9 - movq %r10, 8(%rcx,%r11) #45.9 - movq %r10, 8(%rcx,%rdx) #46.9 - movq %r10, 8(%rcx,%r9) #47.9 - addq $16, %rcx #44.5 - cmpq %rdi, %rsi #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rsi,%rsi), %r10d #45.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r10), %ecx #44.5 - cmpl %r12d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r10d, %r10 #44.5 - xorl %ecx, %ecx #45.9 - movq %rcx, -8(%r11,%r10,8) #45.9 - movq %rcx, -8(%rdx,%r10,8) #46.9 - movq %rcx, -8(%r9,%r10,8) #47.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm13 #38.45 - xorl %ecx, %ecx #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 - vbroadcastsd %xmm13, %zmm14 #38.25 - vbroadcastsd %xmm1, %zmm13 #39.21 - vbroadcastsd %xmm0, %zmm10 #77.41 - movslq %r12d, %r12 #55.5 - xorl %esi, %esi #55.5 - movq 24(%rax), %r13 #57.25 - movq 16(%r8), %rdi #58.25 - movslq 16(%rax), %r8 #56.43 - movq 8(%rax), %r10 #56.19 - xorl %eax, %eax #55.5 - shlq $2, %r8 #37.5 - movq %r12, -24(%rsp) #55.5[spill] - movq %r13, -16(%rsp) #55.5[spill] - movq %r11, -8(%rsp) #55.5[spill] - movq %r14, -88(%rsp) #55.5[spill] - movq %r15, -96(%rsp) #55.5[spill] - movq %rbx, -104(%rsp) #55.5[spill] - .cfi_offset 3, -128 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.9: # Preds ..B1.39 ..B1.8 - # Execution count [5.00e+00] - movq -16(%rsp), %rbx #57.25[spill] - vxorpd %xmm24, %xmm24, %xmm24 #61.22 - vmovapd %xmm24, %xmm18 #62.22 - movl (%rbx,%rsi,4), %r11d #57.25 - vmovapd %xmm18, %xmm4 #63.22 - vmovsd (%rax,%rdi), %xmm6 #58.25 - vmovsd 8(%rax,%rdi), %xmm7 #59.25 - vmovsd 16(%rax,%rdi), %xmm12 #60.25 - testl %r11d, %r11d #67.28 - jle ..B1.39 # Prob 50% #67.28 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vpxord %zmm9, %zmm9, %zmm9 #61.22 - vmovaps %zmm9, %zmm8 #62.22 - vmovaps %zmm8, %zmm11 #63.22 - cmpl $8, %r11d #67.9 - jl ..B1.44 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r11d #67.9 - jl ..B1.43 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r8, %r15 #56.43 - imulq %rcx, %r15 #56.43 - addq %r10, %r15 #37.5 - movq %r15, %r12 #67.9 - andq $63, %r12 #67.9 - testl $3, %r12d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r12d, %r12d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r12d, %r12d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r12d #67.9 - addl $64, %r12d #67.9 - shrl $2, %r12d #67.9 - cmpl %r12d, %r11d #67.9 - cmovl %r11d, %r12d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r11d, %r14d #67.9 - subl %r12d, %r14d #67.9 - andl $7, %r14d #67.9 - negl %r14d #67.9 - addl %r11d, %r14d #67.9 - cmpl $1, %r12d #67.9 - jb ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa %ymm15, %ymm3 #67.9 - xorl %r13d, %r13d #67.9 - vpbroadcastd %r12d, %ymm2 #67.9 - vbroadcastsd %xmm6, %zmm1 #58.23 - vbroadcastsd %xmm7, %zmm0 #59.23 - vbroadcastsd %xmm12, %zmm4 #60.23 - movslq %r12d, %rbx #67.9 - movq %r9, -80(%rsp) #67.9[spill] - movq %rdx, -72(%rsp) #67.9[spill] - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.18: # Preds ..B1.22 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd %ymm3, %ymm2, %k3 #67.9 - vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 - kmovw %k3, %r9d #67.9 - vpaddd %ymm17, %ymm17, %ymm18 #69.36 - vpaddd %ymm18, %ymm17, %ymm17 #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.21: # Preds ..B1.18 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vpxord %zmm19, %zmm19, %zmm19 #69.36 - vpxord %zmm20, %zmm20, %zmm20 #69.36 - vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 - vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 -..B1.22: # Preds ..B1.21 - # Execution count [2.50e+01] - addq $8, %r13 #67.9 - vpaddd %ymm16, %ymm3, %ymm3 #67.9 - vsubpd %zmm18, %zmm4, %zmm29 #71.36 - vsubpd %zmm19, %zmm0, %zmm27 #70.36 - vsubpd %zmm20, %zmm1, %zmm26 #69.36 - vmulpd %zmm27, %zmm27, %zmm25 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 - vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 - vrcp14pd %zmm25, %zmm24 #75.38 - vcmppd $1, %zmm14, %zmm25, %k2 #74.22 - vfpclasspd $30, %zmm24, %k0 #75.38 - kmovw %k2, %edx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm25, %zmm17 #75.38 - andl %edx, %r9d #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 - kmovw %r9d, %k3 #78.17 - vmulpd %zmm17, %zmm17, %zmm18 #75.38 - vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 - vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 - vmulpd %zmm13, %zmm24, %zmm19 #76.38 - vmulpd %zmm10, %zmm24, %zmm21 #77.54 - vmulpd %zmm19, %zmm24, %zmm22 #76.44 - vmulpd %zmm22, %zmm24, %zmm20 #76.50 - vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 - vmulpd %zmm21, %zmm20, %zmm23 #77.61 - vmulpd %zmm24, %zmm23, %zmm28 #77.67 - vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 - vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 - vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 - cmpq %rbx, %r13 #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.23: # Preds ..B1.22 - # Execution count [4.50e+00] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - cmpl %r12d, %r11d #67.9 - je ..B1.38 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 - # Execution count [2.50e+01] - lea 8(%r12), %ebx #67.9 - cmpl %ebx, %r14d #67.9 - jl ..B1.32 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER -..B1.25: # Preds ..B1.24 - # Execution count [4.50e+00] - movq %r8, %r13 #56.43 - imulq %rcx, %r13 #56.43 - vbroadcastsd %xmm6, %zmm2 #58.23 - vbroadcastsd %xmm7, %zmm1 #59.23 - vbroadcastsd %xmm12, %zmm0 #60.23 - movslq %r12d, %rbx #67.9 - addq %r10, %r13 #37.5 - movq %rax, -64(%rsp) #37.5[spill] - movq %r8, -56(%rsp) #37.5[spill] - movq %r10, -48(%rsp) #37.5[spill] - movq %rsi, -40(%rsp) #37.5[spill] - movq %rcx, -32(%rsp) #37.5[spill] - movq %r9, -80(%rsp) #37.5[spill] - movq %rdx, -72(%rsp) #37.5[spill] - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.26: # Preds ..B1.30 ..B1.25 - # Execution count [2.50e+01] - vmovdqu (%r13,%rbx,4), %ymm3 #68.21 - vpaddd %ymm3, %ymm3, %ymm4 #69.36 - vpaddd %ymm4, %ymm3, %ymm3 #69.36 - movl (%r13,%rbx,4), %r10d #68.21 - movl 4(%r13,%rbx,4), %r9d #68.21 - movl 8(%r13,%rbx,4), %r8d #68.21 - movl 12(%r13,%rbx,4), %esi #68.21 - lea (%r10,%r10,2), %r10d #69.36 - movl 16(%r13,%rbx,4), %ecx #68.21 - lea (%r9,%r9,2), %r9d #69.36 - movl 20(%r13,%rbx,4), %edx #68.21 - lea (%r8,%r8,2), %r8d #69.36 - movl 24(%r13,%rbx,4), %eax #68.21 - lea (%rsi,%rsi,2), %esi #69.36 - movl 28(%r13,%rbx,4), %r15d #68.21 - lea (%rcx,%rcx,2), %ecx #69.36 - lea (%rdx,%rdx,2), %edx #69.36 - lea (%rax,%rax,2), %eax #69.36 - lea (%r15,%r15,2), %r15d #69.36 - # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.29: # Preds ..B1.26 - # Execution count [1.25e+01] - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k2 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #69.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm17, %zmm17, %zmm17 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 - vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 -..B1.30: # Preds ..B1.29 - # Execution count [2.50e+01] - addl $8, %r12d #67.9 - addq $8, %rbx #67.9 - vsubpd %zmm4, %zmm0, %zmm26 #71.36 - vsubpd %zmm17, %zmm1, %zmm24 #70.36 - vsubpd %zmm18, %zmm2, %zmm23 #69.36 - vmulpd %zmm24, %zmm24, %zmm3 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 - vrcp14pd %zmm3, %zmm22 #75.38 - vcmppd $1, %zmm14, %zmm3, %k2 #74.22 - vfpclasspd $30, %zmm22, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 - knotw %k0, %k1 #75.38 - vmulpd %zmm3, %zmm3, %zmm4 #75.38 - vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 - vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 - vmulpd %zmm13, %zmm22, %zmm17 #76.38 - vmulpd %zmm10, %zmm22, %zmm19 #77.54 - vmulpd %zmm17, %zmm22, %zmm20 #76.44 - vmulpd %zmm20, %zmm22, %zmm18 #76.50 - vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 - vmulpd %zmm19, %zmm18, %zmm21 #77.61 - vmulpd %zmm22, %zmm21, %zmm25 #77.67 - vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 - vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 - vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 - cmpl %r14d, %r12d #67.9 - jb ..B1.26 # Prob 82% #67.9 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER -..B1.31: # Preds ..B1.30 - # Execution count [4.50e+00] - movq -64(%rsp), %rax #[spill] - movq -56(%rsp), %r8 #[spill] - movq -48(%rsp), %r10 #[spill] - movq -40(%rsp), %rsi #[spill] - movq -32(%rsp), %rcx #[spill] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 - # Execution count [5.00e+00] - lea 1(%r14), %ebx #67.9 - cmpl %r11d, %ebx #67.9 - ja ..B1.38 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.33: # Preds ..B1.32 - # Execution count [2.50e+01] - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm6, %zmm4 #58.23 - subl %r14d, %r11d #67.9 - addq %r10, %rcx #37.5 - vpbroadcastd %r11d, %ymm0 #67.9 - vpcmpgtd %ymm15, %ymm0, %k3 #67.9 - movslq %r14d, %r14 #67.9 - kmovw %k3, %ebx #67.9 - vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 - vpaddd %ymm1, %ymm1, %ymm2 #69.36 - vpaddd %ymm2, %ymm1, %ymm0 #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.36: # Preds ..B1.33 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm1, %zmm1, %zmm1 #69.36 - vpxord %zmm2, %zmm2, %zmm2 #69.36 - vpxord %zmm3, %zmm3, %zmm3 #69.36 - vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 - vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.37: # Preds ..B1.36 - # Execution count [2.50e+01] - vbroadcastsd %xmm7, %zmm7 #59.23 - vbroadcastsd %xmm12, %zmm12 #60.23 - vsubpd %zmm1, %zmm12, %zmm23 #71.36 - vsubpd %zmm2, %zmm7, %zmm21 #70.36 - vsubpd %zmm3, %zmm4, %zmm20 #69.36 - vmulpd %zmm21, %zmm21, %zmm19 #72.49 - vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 - vrcp14pd %zmm19, %zmm18 #75.38 - vcmppd $1, %zmm14, %zmm19, %k2 #74.22 - vfpclasspd $30, %zmm18, %k0 #75.38 - kmovw %k2, %ecx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm19, %zmm0 #75.38 - andl %ecx, %ebx #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 - kmovw %ebx, %k3 #78.17 - vmulpd %zmm0, %zmm0, %zmm1 #75.38 - vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 - vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 - vmulpd %zmm13, %zmm18, %zmm2 #76.38 - vmulpd %zmm10, %zmm18, %zmm4 #77.54 - vmulpd %zmm2, %zmm18, %zmm6 #76.44 - vmulpd %zmm6, %zmm18, %zmm3 #76.50 - vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 - vmulpd %zmm4, %zmm3, %zmm17 #77.61 - vmulpd %zmm18, %zmm17, %zmm22 #77.67 - vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 - vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 - vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 - vpermd %zmm11, %zmm19, %zmm0 #63.22 - vpermd %zmm8, %zmm19, %zmm6 #62.22 - vpermd %zmm9, %zmm19, %zmm20 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm8, %zmm6, %zmm8 #62.22 - vaddpd %zmm9, %zmm20, %zmm9 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm8, %zmm7 #62.22 - vpermpd $78, %zmm9, %zmm21 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm7, %zmm8, %zmm12 #62.22 - vaddpd %zmm21, %zmm9, %zmm22 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm12, %zmm17 #62.22 - vpermpd $177, %zmm22, %zmm23 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm17, %zmm12, %zmm18 #62.22 - vaddpd %zmm23, %zmm22, %zmm24 #61.22 - # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.39: # Preds ..B1.38 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - addq $24, %rax #55.5 - vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%rsi,8) #84.9 - movslq %esi, %rcx #55.32 - vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 - vmovsd %xmm1, (%rdx,%rsi,8) #85.9 - incq %rcx #55.32 - vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%r9,%rsi,8) #86.9 - incq %rsi #55.5 - cmpq -24(%rsp), %rsi #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.40: # Preds ..B1.39 - # Execution count [9.00e-01] - movq -88(%rsp), %r14 #[spill] - .cfi_restore 14 - movq -96(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -104(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r14 r15 -..B1.42: # Preds ..B1.1 ..B1.40 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 24 - .cfi_offset 3, -128 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE -..B1.43: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r11d, %r14d #67.9 - xorl %r12d, %r12d #67.9 - andl $-8, %r14d #67.9 - jmp ..B1.24 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.44: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %r14d, %r14d #67.9 - jmp ..B1.32 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.5: - .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 64 -.L_2il0floatpacket.7: - .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 - .type .L_2il0floatpacket.7,@object - .size .L_2il0floatpacket.7,64 - .align 64 -.L_2il0floatpacket.8: - .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 - .type .L_2il0floatpacket.8,@object - .size .L_2il0floatpacket.8,64 - .align 64 -.L_2il0floatpacket.10: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.10,@object - .size .L_2il0floatpacket.10,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.9: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.9,@object - .size .L_2il0floatpacket.9,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_aos_lt8_markers.s b/asm/avx512/force_aos_lt8_markers.s deleted file mode 100644 index 1c8e3ef..0000000 --- a/asm/avx512/force_aos_lt8_markers.s +++ /dev/null @@ -1,565 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DAOS -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zm"; -# mark_description "m-usage=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - movq %rsi, %r8 #35.1 - vmovsd 72(%rdi), %xmm2 #38.27 - movq %rdx, %rax #35.1 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movl 4(%r8), %r12d #36.18 - movq 64(%r8), %r11 #41.20 - movq 72(%r8), %rdx #41.45 - movq 80(%r8), %r9 #41.70 - testl %r12d, %r12d #44.24 - jle ..B1.42 # Prob 50% #44.24 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - movl %r12d, %edi #44.5 - xorl %esi, %esi #44.5 - movl $1, %r10d #44.5 - xorl %ecx, %ecx #44.5 - shrl $1, %edi #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.3: # Preds ..B1.2 - # Execution count [9.00e-01] - xorl %r10d, %r10d #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.4 ..B1.3 - # Execution count [2.50e+00] - movq %r10, (%rcx,%r11) #45.9 - incq %rsi #44.5 - movq %r10, (%rcx,%rdx) #46.9 - movq %r10, (%rcx,%r9) #47.9 - movq %r10, 8(%rcx,%r11) #45.9 - movq %r10, 8(%rcx,%rdx) #46.9 - movq %r10, 8(%rcx,%r9) #47.9 - addq $16, %rcx #44.5 - cmpq %rdi, %rsi #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r9 r10 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%rsi,%rsi), %r10d #45.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r10), %ecx #44.5 - cmpl %r12d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r10d r12d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r10d, %r10 #44.5 - xorl %ecx, %ecx #45.9 - movq %rcx, -8(%r11,%r10,8) #45.9 - movq %rcx, -8(%rdx,%r10,8) #46.9 - movq %rcx, -8(%r9,%r10,8) #47.9 - # LOE rax rdx rbx rbp r8 r9 r11 r14 r15 r12d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm13 #38.45 - xorl %ecx, %ecx #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm16 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu .L_2il0floatpacket.1(%rip), %ymm15 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm5 #77.54 - vbroadcastsd %xmm13, %zmm14 #38.25 - vbroadcastsd %xmm1, %zmm13 #39.21 - vbroadcastsd %xmm0, %zmm10 #77.41 - movslq %r12d, %r12 #55.5 - xorl %esi, %esi #55.5 - movq 24(%rax), %r13 #57.25 - movq 16(%r8), %rdi #58.25 - movslq 16(%rax), %r8 #56.43 - movq 8(%rax), %r10 #56.19 - xorl %eax, %eax #55.5 - shlq $2, %r8 #37.5 - movq %r12, -24(%rsp) #55.5[spill] - movq %r13, -16(%rsp) #55.5[spill] - movq %r11, -8(%rsp) #55.5[spill] - movq %r14, -88(%rsp) #55.5[spill] - movq %r15, -96(%rsp) #55.5[spill] - movq %rbx, -104(%rsp) #55.5[spill] - .cfi_offset 3, -128 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.9: # Preds ..B1.39 ..B1.8 - # Execution count [5.00e+00] - movq -16(%rsp), %rbx #57.25[spill] - vxorpd %xmm24, %xmm24, %xmm24 #61.22 - vmovapd %xmm24, %xmm18 #62.22 - movl (%rbx,%rsi,4), %r11d #57.25 - vmovapd %xmm18, %xmm4 #63.22 - vmovsd (%rax,%rdi), %xmm6 #58.25 - vmovsd 8(%rax,%rdi), %xmm7 #59.25 - vmovsd 16(%rax,%rdi), %xmm12 #60.25 - testl %r11d, %r11d #67.28 - jle ..B1.39 # Prob 50% #67.28 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm4 xmm6 xmm7 xmm12 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vpxord %zmm9, %zmm9, %zmm9 #61.22 - vmovaps %zmm9, %zmm8 #62.22 - vmovaps %zmm8, %zmm11 #63.22 - cmpl $8, %r11d #67.9 - jl ..B1.44 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r11d #67.9 - jl ..B1.43 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r8, %r15 #56.43 - imulq %rcx, %r15 #56.43 - addq %r10, %r15 #37.5 - movq %r15, %r12 #67.9 - andq $63, %r12 #67.9 - testl $3, %r12d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r12d, %r12d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r12d, %r12d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r12d #67.9 - addl $64, %r12d #67.9 - shrl $2, %r12d #67.9 - cmpl %r12d, %r11d #67.9 - cmovl %r11d, %r12d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r11d, %r14d #67.9 - subl %r12d, %r14d #67.9 - andl $7, %r14d #67.9 - negl %r14d #67.9 - addl %r11d, %r14d #67.9 - cmpl $1, %r12d #67.9 - jb ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa %ymm15, %ymm3 #67.9 - xorl %r13d, %r13d #67.9 - vpbroadcastd %r12d, %ymm2 #67.9 - vbroadcastsd %xmm6, %zmm1 #58.23 - vbroadcastsd %xmm7, %zmm0 #59.23 - vbroadcastsd %xmm12, %zmm4 #60.23 - movslq %r12d, %rbx #67.9 - movq %r9, -80(%rsp) #67.9[spill] - movq %rdx, -72(%rsp) #67.9[spill] - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.18: # Preds ..B1.22 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd %ymm3, %ymm2, %k3 #67.9 - vmovdqu32 (%r15,%r13,4), %ymm17{%k3}{z} #68.21 - kmovw %k3, %r9d #67.9 - vpaddd %ymm17, %ymm17, %ymm18 #69.36 - vpaddd %ymm18, %ymm17, %ymm17 #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 ymm17 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.21: # Preds ..B1.18 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vpxord %zmm19, %zmm19, %zmm19 #69.36 - vpxord %zmm20, %zmm20, %zmm20 #69.36 - vgatherdpd 16(%rdi,%ymm17,8), %zmm18{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm17,8), %zmm19{%k2} #69.36 - vgatherdpd (%rdi,%ymm17,8), %zmm20{%k3} #69.36 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r9d r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm18 zmm19 zmm20 -..B1.22: # Preds ..B1.21 - # Execution count [2.50e+01] - addq $8, %r13 #67.9 - vpaddd %ymm16, %ymm3, %ymm3 #67.9 - vsubpd %zmm18, %zmm4, %zmm29 #71.36 - vsubpd %zmm19, %zmm0, %zmm27 #70.36 - vsubpd %zmm20, %zmm1, %zmm26 #69.36 - vmulpd %zmm27, %zmm27, %zmm25 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm25 #72.49 - vfmadd231pd %zmm29, %zmm29, %zmm25 #72.63 - vrcp14pd %zmm25, %zmm24 #75.38 - vcmppd $1, %zmm14, %zmm25, %k2 #74.22 - vfpclasspd $30, %zmm24, %k0 #75.38 - kmovw %k2, %edx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm25, %zmm17 #75.38 - andl %edx, %r9d #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm24, %zmm17 #75.38 - kmovw %r9d, %k3 #78.17 - vmulpd %zmm17, %zmm17, %zmm18 #75.38 - vfmadd213pd %zmm24, %zmm17, %zmm24{%k1} #75.38 - vfmadd213pd %zmm24, %zmm18, %zmm24{%k1} #75.38 - vmulpd %zmm13, %zmm24, %zmm19 #76.38 - vmulpd %zmm10, %zmm24, %zmm21 #77.54 - vmulpd %zmm19, %zmm24, %zmm22 #76.44 - vmulpd %zmm22, %zmm24, %zmm20 #76.50 - vfmsub213pd %zmm5, %zmm22, %zmm24 #77.54 - vmulpd %zmm21, %zmm20, %zmm23 #77.61 - vmulpd %zmm24, %zmm23, %zmm28 #77.67 - vfmadd231pd %zmm26, %zmm28, %zmm9{%k3} #78.17 - vfmadd231pd %zmm27, %zmm28, %zmm8{%k3} #79.17 - vfmadd231pd %zmm29, %zmm28, %zmm11{%k3} #80.17 - cmpq %rbx, %r13 #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rcx rbx rbp rsi rdi r8 r10 r13 r15 r11d r12d r14d xmm6 xmm7 xmm12 ymm2 ymm3 ymm15 ymm16 zmm0 zmm1 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.23: # Preds ..B1.22 - # Execution count [4.50e+00] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - cmpl %r12d, %r11d #67.9 - je ..B1.38 # Prob 10% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.24: # Preds ..B1.23 ..B1.16 ..B1.43 - # Execution count [2.50e+01] - lea 8(%r12), %ebx #67.9 - cmpl %ebx, %r14d #67.9 - jl ..B1.32 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.25: # Preds ..B1.24 - # Execution count [4.50e+00] - movq %r8, %r13 #56.43 - imulq %rcx, %r13 #56.43 - vbroadcastsd %xmm6, %zmm2 #58.23 - vbroadcastsd %xmm7, %zmm1 #59.23 - vbroadcastsd %xmm12, %zmm0 #60.23 - movslq %r12d, %rbx #67.9 - addq %r10, %r13 #37.5 - movq %rax, -64(%rsp) #37.5[spill] - movq %r8, -56(%rsp) #37.5[spill] - movq %r10, -48(%rsp) #37.5[spill] - movq %rsi, -40(%rsp) #37.5[spill] - movq %rcx, -32(%rsp) #37.5[spill] - movq %r9, -80(%rsp) #37.5[spill] - movq %rdx, -72(%rsp) #37.5[spill] - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.26: # Preds ..B1.30 ..B1.25 - # Execution count [2.50e+01] - vmovdqu (%r13,%rbx,4), %ymm3 #68.21 - vpaddd %ymm3, %ymm3, %ymm4 #69.36 - vpaddd %ymm4, %ymm3, %ymm3 #69.36 - movl (%r13,%rbx,4), %r10d #68.21 - movl 4(%r13,%rbx,4), %r9d #68.21 - movl 8(%r13,%rbx,4), %r8d #68.21 - movl 12(%r13,%rbx,4), %esi #68.21 - lea (%r10,%r10,2), %r10d #69.36 - movl 16(%r13,%rbx,4), %ecx #68.21 - lea (%r9,%r9,2), %r9d #69.36 - movl 20(%r13,%rbx,4), %edx #68.21 - lea (%r8,%r8,2), %r8d #69.36 - movl 24(%r13,%rbx,4), %eax #68.21 - lea (%rsi,%rsi,2), %esi #69.36 - movl 28(%r13,%rbx,4), %r15d #68.21 - lea (%rcx,%rcx,2), %ecx #69.36 - lea (%rdx,%rdx,2), %edx #69.36 - lea (%rax,%rax,2), %eax #69.36 - lea (%r15,%r15,2), %r15d #69.36 - # LOE rbx rbp rdi r13 eax edx ecx esi r8d r9d r10d r11d r12d r14d r15d xmm6 xmm7 xmm12 ymm3 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.29: # Preds ..B1.26 - # Execution count [1.25e+01] - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k2 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #69.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm17, %zmm17, %zmm17 #69.36 - vpxord %zmm18, %zmm18, %zmm18 #69.36 - vgatherdpd 16(%rdi,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm3,8), %zmm17{%k2} #69.36 - vgatherdpd (%rdi,%ymm3,8), %zmm18{%k3} #69.36 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 zmm17 zmm18 -..B1.30: # Preds ..B1.29 - # Execution count [2.50e+01] - addl $8, %r12d #67.9 - addq $8, %rbx #67.9 - vsubpd %zmm4, %zmm0, %zmm26 #71.36 - vsubpd %zmm17, %zmm1, %zmm24 #70.36 - vsubpd %zmm18, %zmm2, %zmm23 #69.36 - vmulpd %zmm24, %zmm24, %zmm3 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm3 #72.49 - vfmadd231pd %zmm26, %zmm26, %zmm3 #72.63 - vrcp14pd %zmm3, %zmm22 #75.38 - vcmppd $1, %zmm14, %zmm3, %k2 #74.22 - vfpclasspd $30, %zmm22, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm22, %zmm3 #75.38 - knotw %k0, %k1 #75.38 - vmulpd %zmm3, %zmm3, %zmm4 #75.38 - vfmadd213pd %zmm22, %zmm3, %zmm22{%k1} #75.38 - vfmadd213pd %zmm22, %zmm4, %zmm22{%k1} #75.38 - vmulpd %zmm13, %zmm22, %zmm17 #76.38 - vmulpd %zmm10, %zmm22, %zmm19 #77.54 - vmulpd %zmm17, %zmm22, %zmm20 #76.44 - vmulpd %zmm20, %zmm22, %zmm18 #76.50 - vfmsub213pd %zmm5, %zmm20, %zmm22 #77.54 - vmulpd %zmm19, %zmm18, %zmm21 #77.61 - vmulpd %zmm22, %zmm21, %zmm25 #77.67 - vfmadd231pd %zmm23, %zmm25, %zmm9{%k2} #78.17 - vfmadd231pd %zmm24, %zmm25, %zmm8{%k2} #79.17 - vfmadd231pd %zmm26, %zmm25, %zmm11{%k2} #80.17 - cmpl %r14d, %r12d #67.9 - jb ..B1.26 # Prob 82% #67.9 - # LOE rbx rbp rdi r13 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm0 zmm1 zmm2 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.31: # Preds ..B1.30 - # Execution count [4.50e+00] - movq -64(%rsp), %rax #[spill] - movq -56(%rsp), %r8 #[spill] - movq -48(%rsp), %r10 #[spill] - movq -40(%rsp), %rsi #[spill] - movq -32(%rsp), %rcx #[spill] - movq -80(%rsp), %r9 #[spill] - movq -72(%rsp), %rdx #[spill] - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.32: # Preds ..B1.31 ..B1.24 ..B1.44 - # Execution count [5.00e+00] - lea 1(%r14), %ebx #67.9 - cmpl %r11d, %ebx #67.9 - ja ..B1.38 # Prob 50% #67.9 - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - # LLVM-MCA-BEGIN - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.33: # Preds ..B1.32 - # Execution count [2.50e+01] - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm6, %zmm4 #58.23 - subl %r14d, %r11d #67.9 - addq %r10, %rcx #37.5 - vpbroadcastd %r11d, %ymm0 #67.9 - vpcmpgtd %ymm15, %ymm0, %k3 #67.9 - movslq %r14d, %r14 #67.9 - kmovw %k3, %ebx #67.9 - vmovdqu32 (%rcx,%r14,4), %ymm1{%k3}{z} #68.21 - vpaddd %ymm1, %ymm1, %ymm2 #69.36 - vpaddd %ymm2, %ymm1, %ymm0 #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm0 ymm15 ymm16 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 k3 -..B1.36: # Preds ..B1.33 - # Execution count [1.25e+01] - kmovw %k3, %k1 #69.36 - kmovw %k3, %k2 #69.36 - vpxord %zmm1, %zmm1, %zmm1 #69.36 - vpxord %zmm2, %zmm2, %zmm2 #69.36 - vpxord %zmm3, %zmm3, %zmm3 #69.36 - vgatherdpd 16(%rdi,%ymm0,8), %zmm1{%k1} #69.36 - vgatherdpd 8(%rdi,%ymm0,8), %zmm2{%k2} #69.36 - vgatherdpd (%rdi,%ymm0,8), %zmm3{%k3} #69.36 - # LOE rax rdx rbp rsi rdi r8 r9 r10 ebx xmm7 xmm12 ymm15 ymm16 zmm1 zmm2 zmm3 zmm4 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.37: # Preds ..B1.36 - # Execution count [2.50e+01] - vbroadcastsd %xmm7, %zmm7 #59.23 - vbroadcastsd %xmm12, %zmm12 #60.23 - vsubpd %zmm1, %zmm12, %zmm23 #71.36 - vsubpd %zmm2, %zmm7, %zmm21 #70.36 - vsubpd %zmm3, %zmm4, %zmm20 #69.36 - vmulpd %zmm21, %zmm21, %zmm19 #72.49 - vfmadd231pd %zmm20, %zmm20, %zmm19 #72.49 - vfmadd231pd %zmm23, %zmm23, %zmm19 #72.63 - vrcp14pd %zmm19, %zmm18 #75.38 - vcmppd $1, %zmm14, %zmm19, %k2 #74.22 - vfpclasspd $30, %zmm18, %k0 #75.38 - kmovw %k2, %ecx #74.22 - knotw %k0, %k1 #75.38 - vmovaps %zmm19, %zmm0 #75.38 - andl %ecx, %ebx #74.22 - vfnmadd213pd .L_2il0floatpacket.9(%rip){1to8}, %zmm18, %zmm0 #75.38 - kmovw %ebx, %k3 #78.17 - vmulpd %zmm0, %zmm0, %zmm1 #75.38 - vfmadd213pd %zmm18, %zmm0, %zmm18{%k1} #75.38 - vfmadd213pd %zmm18, %zmm1, %zmm18{%k1} #75.38 - vmulpd %zmm13, %zmm18, %zmm2 #76.38 - vmulpd %zmm10, %zmm18, %zmm4 #77.54 - vmulpd %zmm2, %zmm18, %zmm6 #76.44 - vmulpd %zmm6, %zmm18, %zmm3 #76.50 - vfmsub213pd %zmm5, %zmm6, %zmm18 #77.54 - vmulpd %zmm4, %zmm3, %zmm17 #77.61 - vmulpd %zmm18, %zmm17, %zmm22 #77.67 - vfmadd231pd %zmm20, %zmm22, %zmm9{%k3} #78.17 - vfmadd231pd %zmm21, %zmm22, %zmm8{%k3} #79.17 - vfmadd231pd %zmm23, %zmm22, %zmm11{%k3} #80.17 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LLVM-MCA-END - # LOE rax rdx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.38: # Preds ..B1.23 ..B1.37 ..B1.32 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.10(%rip), %zmm19 #63.22 - vpermd %zmm11, %zmm19, %zmm0 #63.22 - vpermd %zmm8, %zmm19, %zmm6 #62.22 - vpermd %zmm9, %zmm19, %zmm20 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm8, %zmm6, %zmm8 #62.22 - vaddpd %zmm9, %zmm20, %zmm9 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm8, %zmm7 #62.22 - vpermpd $78, %zmm9, %zmm21 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm7, %zmm8, %zmm12 #62.22 - vaddpd %zmm21, %zmm9, %zmm22 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm12, %zmm17 #62.22 - vpermpd $177, %zmm22, %zmm23 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm17, %zmm12, %zmm18 #62.22 - vaddpd %zmm23, %zmm22, %zmm24 #61.22 - # LOE rax rdx rbp rsi rdi r8 r9 r10 xmm4 xmm18 xmm24 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.39: # Preds ..B1.38 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - addq $24, %rax #55.5 - vaddsd (%rcx,%rsi,8), %xmm24, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%rsi,8) #84.9 - movslq %esi, %rcx #55.32 - vaddsd (%rdx,%rsi,8), %xmm18, %xmm1 #85.9 - vmovsd %xmm1, (%rdx,%rsi,8) #85.9 - incq %rcx #55.32 - vaddsd (%r9,%rsi,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%r9,%rsi,8) #86.9 - incq %rsi #55.5 - cmpq -24(%rsp), %rsi #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 ymm15 ymm16 zmm5 zmm10 zmm13 zmm14 -..B1.40: # Preds ..B1.39 - # Execution count [9.00e-01] - movq -88(%rsp), %r14 #[spill] - .cfi_restore 14 - movq -96(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -104(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r14 r15 -..B1.42: # Preds ..B1.1 ..B1.40 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 24 - .cfi_offset 3, -128 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -112 - .cfi_offset 15, -120 - # LOE -..B1.43: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r11d, %r14d #67.9 - xorl %r12d, %r12d #67.9 - andl $-8, %r14d #67.9 - jmp ..B1.24 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r12d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 -..B1.44: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %r14d, %r14d #67.9 - jmp ..B1.32 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rcx rbp rsi rdi r8 r9 r10 r11d r14d xmm6 xmm7 xmm12 ymm15 ymm16 zmm5 zmm8 zmm9 zmm10 zmm11 zmm13 zmm14 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.5: - .long 0x02010101,0x04040202,0x08080804,0x20101010,0x40402020,0x80808040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 64 -.L_2il0floatpacket.7: - .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 - .type .L_2il0floatpacket.7,@object - .size .L_2il0floatpacket.7,64 - .align 64 -.L_2il0floatpacket.8: - .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 - .type .L_2il0floatpacket.8,@object - .size .L_2il0floatpacket.8,64 - .align 64 -.L_2il0floatpacket.10: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.10,@object - .size .L_2il0floatpacket.10,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.9: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.9,@object - .size .L_2il0floatpacket.9,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_soa_att.s b/asm/avx512/force_soa_att.s deleted file mode 100644 index 77cf14f..0000000 --- a/asm/avx512/force_soa_att.s +++ /dev/null @@ -1,12730 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 17.0.5.239 Build 20170817"; -# mark_description "-I./src/includes -c -D_GNU_SOURCE -DALIGNMENT=64 -DAOS -restrict -fast -xCORE-AVX512 -qopt-zmm-usage=high -S"; -# mark_description " -fsource-asm"; - .file "force.c" - .section __ildata, "" - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 115 - .byte 128 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 158 - .byte 30 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 0 - .byte 86 - .byte 16 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 44 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 47 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 228 - .byte 1 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 254 - .byte 29 - .byte 0 - .byte 0 - .byte 80 - .byte 0 - .byte 0 - .byte 0 - .byte 82 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 157 - .byte 3 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 0 - .byte 0 - .byte 159 - .byte 0 - .byte 0 - .byte 0 - .byte 54 - .byte 4 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 28 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 17 - .byte 0 - .byte 1 - .byte 1 - .byte 12 - .byte 11 - .byte 0 - .byte 1 - .byte 2 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 2 - .byte 13 - .byte 55 - .byte 217 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 2 - .byte 3 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 6 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 3 - .byte 151 - .byte 1 - .byte 151 - .byte 1 - .byte 0 - .byte 1 - .byte 2 - .byte 0 - .byte 1 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 4 - .byte 154 - .byte 1 - .byte 194 - .byte 0 - .byte 137 - .byte 1 - .byte 2 - .byte 5 - .byte 0 - .byte 3 - .byte 0 - .byte 2 - .byte 5 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 6 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 5 - .byte 155 - .byte 1 - .byte 155 - .byte 1 - .byte 137 - .byte 1 - .byte 1 - .byte 4 - .byte 0 - .byte 1 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 6 - .byte 21 - .byte 61 - .byte 161 - .byte 1 - .byte 2 - .byte 4 - .byte 0 - .byte 2 - .byte 0 - .byte 2 - .byte 7 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 16 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 7 - .byte 152 - .byte 1 - .byte 152 - .byte 1 - .byte 0 - .byte 1 - .byte 6 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 8 - .byte 158 - .byte 1 - .byte 58 - .byte 198 - .byte 3 - .byte 2 - .byte 15 - .byte 0 - .byte 7 - .byte 0 - .byte 2 - .byte 9 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 137 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 9 - .byte 153 - .byte 1 - .byte 153 - .byte 1 - .byte 0 - .byte 1 - .byte 8 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 192 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 10 - .byte 156 - .byte 1 - .byte 42 - .byte 160 - .byte 3 - .byte 2 - .byte 13 - .byte 0 - .byte 9 - .byte 0 - .byte 2 - .byte 11 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 1 - .byte 1 - .byte 11 - .byte 36 - .byte 41 - .byte 212 - .byte 2 - .byte 1 - .byte 10 - .byte 0 - .byte 1 - .byte 12 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 12 - .byte 43 - .byte 202 - .byte 0 - .byte 151 - .byte 3 - .byte 2 - .byte 11 - .byte 0 - .byte 10 - .byte 0 - .byte 2 - .byte 13 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 14 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 13 - .byte 157 - .byte 1 - .byte 157 - .byte 1 - .byte 160 - .byte 3 - .byte 1 - .byte 12 - .byte 0 - .byte 1 - .byte 10 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 144 - .byte 141 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 14 - .byte 45 - .byte 198 - .byte 0 - .byte 169 - .byte 3 - .byte 2 - .byte 12 - .byte 0 - .byte 8 - .byte 0 - .byte 2 - .byte 15 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 16 - .byte 1 - .byte 128 - .byte 128 - .byte 192 - .byte 140 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 1 - .byte 1 - .byte 15 - .byte 159 - .byte 1 - .byte 159 - .byte 1 - .byte 198 - .byte 3 - .byte 1 - .byte 14 - .byte 0 - .byte 1 - .byte 8 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 16 - .byte 51 - .byte 51 - .byte 219 - .byte 3 - .byte 2 - .byte 14 - .byte 0 - .byte 6 - .byte 0 - .byte 1 - .byte 17 - .byte 1 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 17 - .byte 52 - .byte 53 - .byte 222 - .byte 3 - .byte 1 - .byte 16 - .byte 0 - .byte 0 - .byte 15 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 1 - .byte 1 - .byte 78 - .byte 11 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 2 - .byte 0 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 14 - .byte 3 - .byte 15 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 2 - .byte 74 - .byte 40 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 4 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 186 - .byte 7 - .byte 21 - .byte 65 - .byte 67 - .byte 4 - .byte 74 - .byte 50 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 5 - .byte 2 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 188 - .byte 7 - .byte 38 - .byte 65 - .byte 67 - .byte 5 - .byte 74 - .byte 56 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 6 - .byte 4 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 191 - .byte 7 - .byte 44 - .byte 65 - .byte 67 - .byte 6 - .byte 74 - .byte 62 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 7 - .byte 5 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 193 - .byte 7 - .byte 51 - .byte 65 - .byte 67 - .byte 7 - .byte 74 - .byte 196 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 8 - .byte 6 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 195 - .byte 7 - .byte 58 - .byte 65 - .byte 67 - .byte 8 - .byte 74 - .byte 202 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 9 - .byte 7 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 197 - .byte 7 - .byte 193 - .byte 0 - .byte 65 - .byte 67 - .byte 9 - .byte 74 - .byte 208 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 12 - .byte 8 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 199 - .byte 7 - .byte 200 - .byte 0 - .byte 65 - .byte 67 - .byte 12 - .byte 77 - .byte 214 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 13 - .byte 9 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 209 - .byte 0 - .byte 0 - .byte 206 - .byte 0 - .byte 0 - .byte 0 - .byte 85 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 13 - .byte 74 - .byte 217 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 14 - .byte 12 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 201 - .byte 7 - .byte 207 - .byte 0 - .byte 65 - .byte 67 - .byte 14 - .byte 74 - .byte 223 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 55 - .byte 13 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 0 - .byte 202 - .byte 7 - .byte 212 - .byte 0 - .byte 65 - .byte 67 - .byte 15 - .byte 74 - .byte 236 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 16 - .byte 154 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 222 - .byte 0 - .byte 213 - .byte 0 - .byte 65 - .byte 67 - .byte 16 - .byte 74 - .byte 244 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 17 - .byte 15 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 232 - .byte 0 - .byte 223 - .byte 0 - .byte 65 - .byte 67 - .byte 17 - .byte 74 - .byte 252 - .byte 0 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 18 - .byte 16 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 242 - .byte 0 - .byte 233 - .byte 0 - .byte 65 - .byte 67 - .byte 18 - .byte 74 - .byte 128 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 194 - .byte 0 - .byte 17 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 210 - .byte 7 - .byte 246 - .byte 0 - .byte 65 - .byte 67 - .byte 21 - .byte 74 - .byte 161 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 61 - .byte 55 - .byte 0 - .byte 0 - .byte 0 - .byte 6 - .byte 0 - .byte 214 - .byte 7 - .byte 254 - .byte 0 - .byte 65 - .byte 67 - .byte 22 - .byte 74 - .byte 192 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 23 - .byte 158 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 216 - .byte 7 - .byte 144 - .byte 1 - .byte 65 - .byte 67 - .byte 23 - .byte 74 - .byte 200 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 24 - .byte 22 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 220 - .byte 7 - .byte 160 - .byte 1 - .byte 65 - .byte 67 - .byte 24 - .byte 74 - .byte 206 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 25 - .byte 23 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 223 - .byte 7 - .byte 179 - .byte 1 - .byte 65 - .byte 67 - .byte 25 - .byte 74 - .byte 215 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 26 - .byte 24 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 226 - .byte 7 - .byte 198 - .byte 1 - .byte 65 - .byte 67 - .byte 26 - .byte 74 - .byte 224 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 27 - .byte 25 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 229 - .byte 7 - .byte 217 - .byte 1 - .byte 65 - .byte 67 - .byte 27 - .byte 74 - .byte 231 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 28 - .byte 26 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 232 - .byte 7 - .byte 219 - .byte 1 - .byte 65 - .byte 67 - .byte 28 - .byte 74 - .byte 235 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 29 - .byte 27 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 233 - .byte 7 - .byte 221 - .byte 1 - .byte 65 - .byte 67 - .byte 29 - .byte 74 - .byte 239 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 30 - .byte 28 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 234 - .byte 7 - .byte 223 - .byte 1 - .byte 65 - .byte 67 - .byte 30 - .byte 74 - .byte 245 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 58 - .byte 29 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 235 - .byte 7 - .byte 225 - .byte 1 - .byte 65 - .byte 67 - .byte 31 - .byte 74 - .byte 142 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 32 - .byte 156 - .byte 1 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 237 - .byte 7 - .byte 235 - .byte 1 - .byte 65 - .byte 67 - .byte 32 - .byte 74 - .byte 150 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 33 - .byte 31 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 240 - .byte 7 - .byte 128 - .byte 2 - .byte 65 - .byte 67 - .byte 33 - .byte 74 - .byte 161 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 34 - .byte 32 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 244 - .byte 7 - .byte 149 - .byte 2 - .byte 65 - .byte 67 - .byte 34 - .byte 74 - .byte 172 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 35 - .byte 33 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 248 - .byte 7 - .byte 170 - .byte 2 - .byte 65 - .byte 67 - .byte 35 - .byte 74 - .byte 191 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 42 - .byte 34 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 252 - .byte 7 - .byte 182 - .byte 2 - .byte 65 - .byte 67 - .byte 36 - .byte 74 - .byte 212 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 37 - .byte 42 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 133 - .byte 8 - .byte 186 - .byte 2 - .byte 65 - .byte 67 - .byte 37 - .byte 74 - .byte 224 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 38 - .byte 36 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 135 - .byte 8 - .byte 194 - .byte 2 - .byte 65 - .byte 67 - .byte 38 - .byte 74 - .byte 240 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 39 - .byte 37 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 140 - .byte 8 - .byte 206 - .byte 2 - .byte 65 - .byte 67 - .byte 39 - .byte 74 - .byte 248 - .byte 2 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 40 - .byte 38 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 145 - .byte 8 - .byte 212 - .byte 2 - .byte 65 - .byte 67 - .byte 40 - .byte 74 - .byte 128 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 41 - .byte 39 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 149 - .byte 8 - .byte 218 - .byte 2 - .byte 65 - .byte 67 - .byte 41 - .byte 74 - .byte 136 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 138 - .byte 4 - .byte 0 - .byte 40 - .byte 0 - .byte 0 - .byte 0 - .byte 11 - .byte 0 - .byte 153 - .byte 8 - .byte 224 - .byte 2 - .byte 65 - .byte 67 - .byte 42 - .byte 80 - .byte 146 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 43 - .byte 35 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 227 - .byte 2 - .byte 0 - .byte 36 - .byte 128 - .byte 128 - .byte 160 - .byte 146 - .byte 4 - .byte 43 - .byte 74 - .byte 151 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 202 - .byte 0 - .byte 42 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 0 - .byte 157 - .byte 8 - .byte 231 - .byte 2 - .byte 65 - .byte 67 - .byte 45 - .byte 74 - .byte 169 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 46 - .byte 58 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 244 - .byte 2 - .byte 254 - .byte 2 - .byte 65 - .byte 67 - .byte 46 - .byte 74 - .byte 177 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 47 - .byte 45 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 136 - .byte 3 - .byte 146 - .byte 3 - .byte 65 - .byte 67 - .byte 47 - .byte 74 - .byte 185 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 48 - .byte 46 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 156 - .byte 3 - .byte 166 - .byte 3 - .byte 65 - .byte 67 - .byte 48 - .byte 74 - .byte 189 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 198 - .byte 0 - .byte 47 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 14 - .byte 0 - .byte 176 - .byte 8 - .byte 170 - .byte 3 - .byte 65 - .byte 67 - .byte 51 - .byte 77 - .byte 219 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 52 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 16 - .byte 0 - .byte 180 - .byte 3 - .byte 0 - .byte 177 - .byte 3 - .byte 0 - .byte 0 - .byte 85 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 52 - .byte 74 - .byte 222 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 53 - .byte 51 - .byte 128 - .byte 128 - .byte 2 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 180 - .byte 8 - .byte 178 - .byte 3 - .byte 65 - .byte 67 - .byte 53 - .byte 79 - .byte 228 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 0 - .byte 52 - .byte 0 - .byte 0 - .byte 0 - .byte 17 - .byte 0 - .byte 186 - .byte 3 - .byte 67 - .byte 55 - .byte 80 - .byte 137 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 21 - .byte 14 - .byte 2 - .byte 1 - .byte 0 - .byte 2 - .byte 0 - .byte 249 - .byte 0 - .byte 0 - .byte 151 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 58 - .byte 80 - .byte 160 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 45 - .byte 30 - .byte 2 - .byte 1 - .byte 0 - .byte 8 - .byte 0 - .byte 234 - .byte 2 - .byte 0 - .byte 153 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 61 - .byte 80 - .byte 198 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 252 - .byte 3 - .byte 51 - .byte 21 - .byte 2 - .byte 1 - .byte 0 - .byte 6 - .byte 0 - .byte 173 - .byte 3 - .byte 0 - .byte 152 - .byte 1 - .byte 128 - .byte 128 - .byte 208 - .byte 149 - .byte 4 - .byte 194 - .byte 0 - .byte 80 - .byte 137 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 18 - .byte 2 - .byte 1 - .byte 0 - .byte 4 - .byte 0 - .byte 189 - .byte 3 - .byte 0 - .byte 155 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 198 - .byte 0 - .byte 80 - .byte 198 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 0 - .byte 48 - .byte 2 - .byte 1 - .byte 0 - .byte 14 - .byte 0 - .byte 192 - .byte 3 - .byte 0 - .byte 159 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 202 - .byte 0 - .byte 80 - .byte 160 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 0 - .byte 43 - .byte 2 - .byte 1 - .byte 0 - .byte 12 - .byte 0 - .byte 195 - .byte 3 - .byte 0 - .byte 157 - .byte 1 - .byte 128 - .byte 128 - .byte 144 - .byte 149 - .byte 4 - .byte 151 - .byte 1 - .byte 95 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 154 - .byte 1 - .byte 55 - .byte 0 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 152 - .byte 1 - .byte 95 - .byte 0 - .byte 230 - .byte 204 - .byte 153 - .byte 251 - .byte 3 - .byte 158 - .byte 1 - .byte 61 - .byte 0 - .byte 0 - .byte 0 - .byte 7 - .byte 0 - .byte 153 - .byte 1 - .byte 95 - .byte 0 - .byte 128 - .byte 128 - .byte 192 - .byte 132 - .byte 4 - .byte 156 - .byte 1 - .byte 58 - .byte 0 - .byte 0 - .byte 0 - .byte 9 - .byte 0 - .byte 154 - .byte 1 - .byte 95 - .byte 137 - .byte 1 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 15 - .byte 151 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 155 - .byte 1 - .byte 82 - .byte 137 - .byte 1 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 194 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte 0 - .byte 154 - .byte 1 - .byte 156 - .byte 1 - .byte 95 - .byte 160 - .byte 3 - .byte 128 - .byte 128 - .byte 160 - .byte 142 - .byte 4 - .byte 31 - .byte 153 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 10 - .byte 0 - .byte 157 - .byte 1 - .byte 82 - .byte 160 - .byte 3 - .byte 128 - .byte 128 - .byte 144 - .byte 141 - .byte 4 - .byte 0 - .byte 202 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 13 - .byte 0 - .byte 156 - .byte 1 - .byte 158 - .byte 1 - .byte 95 - .byte 198 - .byte 3 - .byte 128 - .byte 128 - .byte 128 - .byte 133 - .byte 4 - .byte 22 - .byte 152 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 159 - .byte 1 - .byte 82 - .byte 198 - .byte 3 - .byte 179 - .byte 230 - .byte 140 - .byte 132 - .byte 4 - .byte 0 - .byte 198 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 15 - .byte 0 - .byte 158 - .byte 1 - .byte 1 - .byte 1 - .byte 9 - .byte 1 - .byte 2 - .byte 1 - .byte 9 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 11 - .byte 9 - .byte 6 - .byte 1 - .byte 0 - .byte 2 - .byte 80 - .byte 4 - .byte 1 - .byte 9 - .byte 2 - .byte 5 - .byte 1 - .byte 9 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 11 - .byte 9 - .byte 9 - .byte 4 - .byte 0 - .byte 5 - .byte 80 - .byte 7 - .byte 1 - .byte 9 - .byte 3 - .byte 8 - .byte 1 - .byte 9 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 11 - .byte 9 - .byte 12 - .byte 7 - .byte 0 - .byte 8 - .byte 80 - .byte 10 - .byte 1 - .byte 9 - .byte 4 - .byte 11 - .byte 1 - .byte 9 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 12 - .byte 11 - .byte 9 - .byte 0 - .byte 10 - .byte 0 - .byte 11 - .byte 80 - .byte 13 - .byte 1 - .byte 9 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 14 - .byte 11 - .byte 9 - .byte 0 - .byte 13 - .byte 0 - .byte 0 - .byte 80 - .byte 15 - .byte 0 - .byte 11 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 20 - .byte 0 - .byte 40 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 21 - .byte 8 - .byte 40 - .byte 187 - .byte 7 - .byte 22 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 20 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 22 - .byte 1 - .byte 40 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 0 - .byte 48 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 30 - .byte 8 - .byte 48 - .byte 189 - .byte 7 - .byte 31 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 31 - .byte 1 - .byte 48 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 35 - .byte 0 - .byte 50 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 36 - .byte 8 - .byte 50 - .byte 190 - .byte 7 - .byte 37 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 35 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 37 - .byte 1 - .byte 50 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 38 - .byte 22 - .byte 50 - .byte 30 - .byte 36 - .byte 12 - .byte 43 - .byte 0 - .byte 56 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 44 - .byte 8 - .byte 56 - .byte 192 - .byte 7 - .byte 45 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 43 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 45 - .byte 1 - .byte 56 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 50 - .byte 0 - .byte 62 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 51 - .byte 8 - .byte 62 - .byte 194 - .byte 7 - .byte 52 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 50 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 52 - .byte 1 - .byte 62 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 57 - .byte 0 - .byte 196 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 58 - .byte 8 - .byte 196 - .byte 0 - .byte 196 - .byte 7 - .byte 59 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 57 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 59 - .byte 1 - .byte 196 - .byte 0 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 192 - .byte 0 - .byte 0 - .byte 202 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 193 - .byte 0 - .byte 8 - .byte 202 - .byte 0 - .byte 198 - .byte 7 - .byte 194 - .byte 0 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 192 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 194 - .byte 0 - .byte 1 - .byte 202 - .byte 0 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 199 - .byte 0 - .byte 0 - .byte 208 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 200 - .byte 0 - .byte 8 - .byte 208 - .byte 0 - .byte 200 - .byte 7 - .byte 201 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 199 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 201 - .byte 0 - .byte 1 - .byte 208 - .byte 0 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 206 - .byte 0 - .byte 0 - .byte 214 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 207 - .byte 0 - .byte 0 - .byte 214 - .byte 0 - .byte 1 - .byte 0 - .byte 208 - .byte 0 - .byte 1 - .byte 214 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 209 - .byte 0 - .byte 11 - .byte 214 - .byte 0 - .byte 0 - .byte 207 - .byte 0 - .byte 0 - .byte 208 - .byte 0 - .byte 80 - .byte 212 - .byte 0 - .byte 0 - .byte 223 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 213 - .byte 0 - .byte 0 - .byte 232 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 236 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 217 - .byte 0 - .byte 15 - .byte 236 - .byte 0 - .byte 205 - .byte 7 - .byte 7 - .byte 6 - .byte 218 - .byte 0 - .byte 23 - .byte 236 - .byte 0 - .byte 217 - .byte 0 - .byte 216 - .byte 0 - .byte 7 - .byte 219 - .byte 0 - .byte 20 - .byte 236 - .byte 0 - .byte 204 - .byte 7 - .byte 218 - .byte 0 - .byte 36 - .byte 220 - .byte 0 - .byte 1 - .byte 236 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 0 - .byte 0 - .byte 236 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 222 - .byte 0 - .byte 8 - .byte 236 - .byte 0 - .byte 219 - .byte 0 - .byte 220 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 223 - .byte 0 - .byte 0 - .byte 240 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 226 - .byte 0 - .byte 0 - .byte 244 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 227 - .byte 0 - .byte 15 - .byte 244 - .byte 0 - .byte 207 - .byte 7 - .byte 7 - .byte 6 - .byte 228 - .byte 0 - .byte 23 - .byte 244 - .byte 0 - .byte 227 - .byte 0 - .byte 226 - .byte 0 - .byte 7 - .byte 229 - .byte 0 - .byte 20 - .byte 244 - .byte 0 - .byte 206 - .byte 7 - .byte 228 - .byte 0 - .byte 36 - .byte 230 - .byte 0 - .byte 1 - .byte 244 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 0 - .byte 0 - .byte 244 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 232 - .byte 0 - .byte 8 - .byte 244 - .byte 0 - .byte 229 - .byte 0 - .byte 230 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 233 - .byte 0 - .byte 0 - .byte 248 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 236 - .byte 0 - .byte 0 - .byte 252 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 237 - .byte 0 - .byte 15 - .byte 252 - .byte 0 - .byte 209 - .byte 7 - .byte 7 - .byte 6 - .byte 238 - .byte 0 - .byte 23 - .byte 252 - .byte 0 - .byte 237 - .byte 0 - .byte 236 - .byte 0 - .byte 7 - .byte 239 - .byte 0 - .byte 20 - .byte 252 - .byte 0 - .byte 208 - .byte 7 - .byte 238 - .byte 0 - .byte 36 - .byte 240 - .byte 0 - .byte 1 - .byte 252 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 0 - .byte 0 - .byte 252 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 242 - .byte 0 - .byte 8 - .byte 252 - .byte 0 - .byte 239 - .byte 0 - .byte 240 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 244 - .byte 0 - .byte 0 - .byte 128 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 246 - .byte 0 - .byte 20 - .byte 128 - .byte 1 - .byte 211 - .byte 7 - .byte 244 - .byte 0 - .byte 6 - .byte 249 - .byte 0 - .byte 48 - .byte 135 - .byte 1 - .byte 165 - .byte 7 - .byte 203 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 254 - .byte 0 - .byte 0 - .byte 161 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 1 - .byte 0 - .byte 188 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 132 - .byte 1 - .byte 8 - .byte 188 - .byte 1 - .byte 219 - .byte 7 - .byte 133 - .byte 1 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 131 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 133 - .byte 1 - .byte 1 - .byte 188 - .byte 1 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 134 - .byte 1 - .byte 23 - .byte 188 - .byte 1 - .byte 218 - .byte 7 - .byte 132 - .byte 1 - .byte 6 - .byte 138 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 139 - .byte 1 - .byte 8 - .byte 190 - .byte 1 - .byte 217 - .byte 7 - .byte 140 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 138 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 140 - .byte 1 - .byte 1 - .byte 190 - .byte 1 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 141 - .byte 1 - .byte 0 - .byte 190 - .byte 1 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 142 - .byte 1 - .byte 15 - .byte 190 - .byte 1 - .byte 134 - .byte 1 - .byte 7 - .byte 6 - .byte 143 - .byte 1 - .byte 23 - .byte 190 - .byte 1 - .byte 142 - .byte 1 - .byte 141 - .byte 1 - .byte 7 - .byte 144 - .byte 1 - .byte 20 - .byte 190 - .byte 1 - .byte 139 - .byte 1 - .byte 143 - .byte 1 - .byte 36 - .byte 151 - .byte 1 - .byte 0 - .byte 200 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 152 - .byte 1 - .byte 8 - .byte 200 - .byte 1 - .byte 221 - .byte 7 - .byte 153 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 151 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 153 - .byte 1 - .byte 1 - .byte 200 - .byte 1 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 154 - .byte 1 - .byte 0 - .byte 200 - .byte 1 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 155 - .byte 1 - .byte 15 - .byte 200 - .byte 1 - .byte 222 - .byte 7 - .byte 7 - .byte 6 - .byte 156 - .byte 1 - .byte 23 - .byte 200 - .byte 1 - .byte 155 - .byte 1 - .byte 154 - .byte 1 - .byte 7 - .byte 157 - .byte 1 - .byte 20 - .byte 200 - .byte 1 - .byte 152 - .byte 1 - .byte 156 - .byte 1 - .byte 36 - .byte 158 - .byte 1 - .byte 1 - .byte 200 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 159 - .byte 1 - .byte 0 - .byte 200 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 160 - .byte 1 - .byte 8 - .byte 200 - .byte 1 - .byte 157 - .byte 1 - .byte 158 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 159 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 163 - .byte 1 - .byte 0 - .byte 206 - .byte 1 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 1 - .byte 23 - .byte 206 - .byte 1 - .byte 225 - .byte 7 - .byte 163 - .byte 1 - .byte 6 - .byte 170 - .byte 1 - .byte 0 - .byte 206 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 171 - .byte 1 - .byte 8 - .byte 206 - .byte 1 - .byte 224 - .byte 7 - .byte 172 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 170 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 172 - .byte 1 - .byte 1 - .byte 206 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 173 - .byte 1 - .byte 0 - .byte 206 - .byte 1 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 174 - .byte 1 - .byte 15 - .byte 206 - .byte 1 - .byte 164 - .byte 1 - .byte 7 - .byte 6 - .byte 175 - .byte 1 - .byte 23 - .byte 206 - .byte 1 - .byte 174 - .byte 1 - .byte 173 - .byte 1 - .byte 7 - .byte 176 - .byte 1 - .byte 20 - .byte 206 - .byte 1 - .byte 171 - .byte 1 - .byte 175 - .byte 1 - .byte 36 - .byte 177 - .byte 1 - .byte 1 - .byte 206 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 206 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 179 - .byte 1 - .byte 8 - .byte 206 - .byte 1 - .byte 176 - .byte 1 - .byte 177 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 178 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 182 - .byte 1 - .byte 0 - .byte 215 - .byte 1 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 183 - .byte 1 - .byte 23 - .byte 215 - .byte 1 - .byte 228 - .byte 7 - .byte 182 - .byte 1 - .byte 6 - .byte 184 - .byte 1 - .byte 0 - .byte 215 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 185 - .byte 1 - .byte 20 - .byte 215 - .byte 1 - .byte 183 - .byte 1 - .byte 184 - .byte 1 - .byte 6 - .byte 189 - .byte 1 - .byte 0 - .byte 215 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 190 - .byte 1 - .byte 8 - .byte 215 - .byte 1 - .byte 227 - .byte 7 - .byte 191 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 189 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 191 - .byte 1 - .byte 1 - .byte 215 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 192 - .byte 1 - .byte 0 - .byte 215 - .byte 1 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 193 - .byte 1 - .byte 15 - .byte 215 - .byte 1 - .byte 185 - .byte 1 - .byte 7 - .byte 6 - .byte 194 - .byte 1 - .byte 23 - .byte 215 - .byte 1 - .byte 193 - .byte 1 - .byte 192 - .byte 1 - .byte 7 - .byte 195 - .byte 1 - .byte 20 - .byte 215 - .byte 1 - .byte 190 - .byte 1 - .byte 194 - .byte 1 - .byte 36 - .byte 196 - .byte 1 - .byte 1 - .byte 215 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 197 - .byte 1 - .byte 0 - .byte 215 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 1 - .byte 8 - .byte 215 - .byte 1 - .byte 195 - .byte 1 - .byte 196 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 197 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 201 - .byte 1 - .byte 0 - .byte 224 - .byte 1 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 202 - .byte 1 - .byte 23 - .byte 224 - .byte 1 - .byte 231 - .byte 7 - .byte 201 - .byte 1 - .byte 6 - .byte 203 - .byte 1 - .byte 0 - .byte 224 - .byte 1 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 204 - .byte 1 - .byte 20 - .byte 224 - .byte 1 - .byte 202 - .byte 1 - .byte 203 - .byte 1 - .byte 6 - .byte 208 - .byte 1 - .byte 0 - .byte 224 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 209 - .byte 1 - .byte 8 - .byte 224 - .byte 1 - .byte 230 - .byte 7 - .byte 210 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 208 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 210 - .byte 1 - .byte 1 - .byte 224 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 211 - .byte 1 - .byte 0 - .byte 224 - .byte 1 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 212 - .byte 1 - .byte 15 - .byte 224 - .byte 1 - .byte 204 - .byte 1 - .byte 7 - .byte 6 - .byte 213 - .byte 1 - .byte 23 - .byte 224 - .byte 1 - .byte 212 - .byte 1 - .byte 211 - .byte 1 - .byte 7 - .byte 214 - .byte 1 - .byte 20 - .byte 224 - .byte 1 - .byte 209 - .byte 1 - .byte 213 - .byte 1 - .byte 36 - .byte 215 - .byte 1 - .byte 1 - .byte 224 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 1 - .byte 0 - .byte 224 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 217 - .byte 1 - .byte 8 - .byte 224 - .byte 1 - .byte 214 - .byte 1 - .byte 215 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 219 - .byte 1 - .byte 0 - .byte 231 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 221 - .byte 1 - .byte 0 - .byte 235 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 223 - .byte 1 - .byte 0 - .byte 239 - .byte 1 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 225 - .byte 1 - .byte 0 - .byte 245 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 229 - .byte 1 - .byte 0 - .byte 142 - .byte 2 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 230 - .byte 1 - .byte 15 - .byte 142 - .byte 2 - .byte 239 - .byte 7 - .byte 7 - .byte 6 - .byte 231 - .byte 1 - .byte 23 - .byte 142 - .byte 2 - .byte 230 - .byte 1 - .byte 229 - .byte 1 - .byte 7 - .byte 232 - .byte 1 - .byte 20 - .byte 142 - .byte 2 - .byte 238 - .byte 7 - .byte 231 - .byte 1 - .byte 36 - .byte 233 - .byte 1 - .byte 1 - .byte 142 - .byte 2 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 1 - .byte 0 - .byte 142 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 235 - .byte 1 - .byte 8 - .byte 142 - .byte 2 - .byte 232 - .byte 1 - .byte 233 - .byte 1 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 239 - .byte 1 - .byte 0 - .byte 150 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 240 - .byte 1 - .byte 23 - .byte 150 - .byte 2 - .byte 243 - .byte 7 - .byte 239 - .byte 1 - .byte 6 - .byte 246 - .byte 1 - .byte 0 - .byte 150 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 247 - .byte 1 - .byte 8 - .byte 150 - .byte 2 - .byte 242 - .byte 7 - .byte 248 - .byte 1 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 248 - .byte 1 - .byte 1 - .byte 150 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 249 - .byte 1 - .byte 0 - .byte 150 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 250 - .byte 1 - .byte 15 - .byte 150 - .byte 2 - .byte 240 - .byte 1 - .byte 7 - .byte 6 - .byte 251 - .byte 1 - .byte 23 - .byte 150 - .byte 2 - .byte 250 - .byte 1 - .byte 249 - .byte 1 - .byte 7 - .byte 252 - .byte 1 - .byte 20 - .byte 150 - .byte 2 - .byte 247 - .byte 1 - .byte 251 - .byte 1 - .byte 36 - .byte 253 - .byte 1 - .byte 1 - .byte 150 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 254 - .byte 1 - .byte 0 - .byte 150 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 255 - .byte 1 - .byte 8 - .byte 150 - .byte 2 - .byte 252 - .byte 1 - .byte 253 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 254 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 128 - .byte 2 - .byte 21 - .byte 150 - .byte 2 - .byte 241 - .byte 7 - .byte 255 - .byte 1 - .byte 12 - .byte 132 - .byte 2 - .byte 0 - .byte 161 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 133 - .byte 2 - .byte 23 - .byte 161 - .byte 2 - .byte 247 - .byte 7 - .byte 132 - .byte 2 - .byte 6 - .byte 134 - .byte 2 - .byte 0 - .byte 161 - .byte 2 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 135 - .byte 2 - .byte 20 - .byte 161 - .byte 2 - .byte 133 - .byte 2 - .byte 134 - .byte 2 - .byte 6 - .byte 139 - .byte 2 - .byte 0 - .byte 161 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 140 - .byte 2 - .byte 8 - .byte 161 - .byte 2 - .byte 246 - .byte 7 - .byte 141 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 139 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 141 - .byte 2 - .byte 1 - .byte 161 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 142 - .byte 2 - .byte 0 - .byte 161 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 143 - .byte 2 - .byte 15 - .byte 161 - .byte 2 - .byte 135 - .byte 2 - .byte 7 - .byte 6 - .byte 144 - .byte 2 - .byte 23 - .byte 161 - .byte 2 - .byte 143 - .byte 2 - .byte 142 - .byte 2 - .byte 7 - .byte 145 - .byte 2 - .byte 20 - .byte 161 - .byte 2 - .byte 140 - .byte 2 - .byte 144 - .byte 2 - .byte 36 - .byte 146 - .byte 2 - .byte 1 - .byte 161 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 147 - .byte 2 - .byte 0 - .byte 161 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 148 - .byte 2 - .byte 8 - .byte 161 - .byte 2 - .byte 145 - .byte 2 - .byte 146 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 147 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 149 - .byte 2 - .byte 21 - .byte 161 - .byte 2 - .byte 245 - .byte 7 - .byte 148 - .byte 2 - .byte 12 - .byte 153 - .byte 2 - .byte 0 - .byte 172 - .byte 2 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 154 - .byte 2 - .byte 23 - .byte 172 - .byte 2 - .byte 251 - .byte 7 - .byte 153 - .byte 2 - .byte 6 - .byte 155 - .byte 2 - .byte 0 - .byte 172 - .byte 2 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 156 - .byte 2 - .byte 20 - .byte 172 - .byte 2 - .byte 154 - .byte 2 - .byte 155 - .byte 2 - .byte 6 - .byte 160 - .byte 2 - .byte 0 - .byte 172 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 161 - .byte 2 - .byte 8 - .byte 172 - .byte 2 - .byte 250 - .byte 7 - .byte 162 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 160 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 162 - .byte 2 - .byte 1 - .byte 172 - .byte 2 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 163 - .byte 2 - .byte 0 - .byte 172 - .byte 2 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 2 - .byte 15 - .byte 172 - .byte 2 - .byte 156 - .byte 2 - .byte 7 - .byte 6 - .byte 165 - .byte 2 - .byte 23 - .byte 172 - .byte 2 - .byte 164 - .byte 2 - .byte 163 - .byte 2 - .byte 7 - .byte 166 - .byte 2 - .byte 20 - .byte 172 - .byte 2 - .byte 161 - .byte 2 - .byte 165 - .byte 2 - .byte 36 - .byte 167 - .byte 2 - .byte 1 - .byte 172 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 168 - .byte 2 - .byte 0 - .byte 172 - .byte 2 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 169 - .byte 2 - .byte 8 - .byte 172 - .byte 2 - .byte 166 - .byte 2 - .byte 167 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 168 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 170 - .byte 2 - .byte 21 - .byte 172 - .byte 2 - .byte 249 - .byte 7 - .byte 169 - .byte 2 - .byte 12 - .byte 174 - .byte 2 - .byte 22 - .byte 183 - .byte 2 - .byte 253 - .byte 7 - .byte 254 - .byte 7 - .byte 12 - .byte 177 - .byte 2 - .byte 22 - .byte 187 - .byte 2 - .byte 255 - .byte 7 - .byte 128 - .byte 8 - .byte 12 - .byte 178 - .byte 2 - .byte 20 - .byte 187 - .byte 2 - .byte 174 - .byte 2 - .byte 177 - .byte 2 - .byte 12 - .byte 181 - .byte 2 - .byte 22 - .byte 191 - .byte 2 - .byte 129 - .byte 8 - .byte 130 - .byte 8 - .byte 12 - .byte 182 - .byte 2 - .byte 20 - .byte 191 - .byte 2 - .byte 178 - .byte 2 - .byte 181 - .byte 2 - .byte 12 - .byte 184 - .byte 2 - .byte 0 - .byte 210 - .byte 2 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 186 - .byte 2 - .byte 39 - .byte 212 - .byte 2 - .byte 184 - .byte 2 - .byte 134 - .byte 8 - .byte 12 - .byte 1 - .byte 3 - .byte 10 - .byte 109 - .byte 97 - .byte 120 - .byte 45 - .byte 101 - .byte 114 - .byte 114 - .byte 111 - .byte 114 - .byte 0 - .byte 4 - .byte 52 - .byte 46 - .byte 48 - .byte 0 - .byte 17 - .byte 100 - .byte 111 - .byte 109 - .byte 97 - .byte 105 - .byte 110 - .byte 45 - .byte 101 - .byte 120 - .byte 99 - .byte 108 - .byte 117 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 0 - .byte 3 - .byte 49 - .byte 53 - .byte 0 - .byte 18 - .byte 118 - .byte 97 - .byte 108 - .byte 105 - .byte 100 - .byte 45 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 117 - .byte 115 - .byte 45 - .byte 98 - .byte 105 - .byte 116 - .byte 115 - .byte 0 - .byte 6 - .byte 102 - .byte 97 - .byte 108 - .byte 115 - .byte 101 - .byte 0 - .byte 190 - .byte 2 - .byte 22 - .byte 220 - .byte 2 - .byte 136 - .byte 8 - .byte 137 - .byte 8 - .byte 12 - .byte 192 - .byte 2 - .byte 22 - .byte 222 - .byte 2 - .byte 190 - .byte 2 - .byte 138 - .byte 8 - .byte 12 - .byte 194 - .byte 2 - .byte 22 - .byte 224 - .byte 2 - .byte 192 - .byte 2 - .byte 139 - .byte 8 - .byte 12 - .byte 196 - .byte 2 - .byte 0 - .byte 230 - .byte 2 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 198 - .byte 2 - .byte 22 - .byte 232 - .byte 2 - .byte 196 - .byte 2 - .byte 141 - .byte 8 - .byte 12 - .byte 200 - .byte 2 - .byte 0 - .byte 236 - .byte 2 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 201 - .byte 2 - .byte 21 - .byte 236 - .byte 2 - .byte 142 - .byte 8 - .byte 200 - .byte 2 - .byte 12 - .byte 202 - .byte 2 - .byte 22 - .byte 236 - .byte 2 - .byte 198 - .byte 2 - .byte 201 - .byte 2 - .byte 12 - .byte 204 - .byte 2 - .byte 22 - .byte 238 - .byte 2 - .byte 202 - .byte 2 - .byte 143 - .byte 8 - .byte 12 - .byte 206 - .byte 2 - .byte 22 - .byte 240 - .byte 2 - .byte 204 - .byte 2 - .byte 144 - .byte 8 - .byte 12 - .byte 209 - .byte 2 - .byte 22 - .byte 246 - .byte 2 - .byte 147 - .byte 8 - .byte 148 - .byte 8 - .byte 12 - .byte 212 - .byte 2 - .byte 20 - .byte 248 - .byte 2 - .byte 146 - .byte 8 - .byte 209 - .byte 2 - .byte 12 - .byte 215 - .byte 2 - .byte 22 - .byte 254 - .byte 2 - .byte 151 - .byte 8 - .byte 152 - .byte 8 - .byte 12 - .byte 218 - .byte 2 - .byte 20 - .byte 128 - .byte 3 - .byte 150 - .byte 8 - .byte 215 - .byte 2 - .byte 12 - .byte 221 - .byte 2 - .byte 22 - .byte 134 - .byte 3 - .byte 155 - .byte 8 - .byte 156 - .byte 8 - .byte 12 - .byte 224 - .byte 2 - .byte 20 - .byte 136 - .byte 3 - .byte 154 - .byte 8 - .byte 221 - .byte 2 - .byte 12 - .byte 227 - .byte 2 - .byte 48 - .byte 144 - .byte 3 - .byte 131 - .byte 8 - .byte 132 - .byte 8 - .byte 6 - .byte 4 - .byte 12 - .byte 229 - .byte 2 - .byte 0 - .byte 151 - .byte 3 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 231 - .byte 2 - .byte 20 - .byte 151 - .byte 3 - .byte 158 - .byte 8 - .byte 229 - .byte 2 - .byte 6 - .byte 234 - .byte 2 - .byte 48 - .byte 158 - .byte 3 - .byte 167 - .byte 7 - .byte 236 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 238 - .byte 2 - .byte 0 - .byte 169 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 239 - .byte 2 - .byte 15 - .byte 169 - .byte 3 - .byte 162 - .byte 8 - .byte 7 - .byte 6 - .byte 240 - .byte 2 - .byte 23 - .byte 169 - .byte 3 - .byte 239 - .byte 2 - .byte 238 - .byte 2 - .byte 7 - .byte 241 - .byte 2 - .byte 20 - .byte 169 - .byte 3 - .byte 161 - .byte 8 - .byte 240 - .byte 2 - .byte 36 - .byte 242 - .byte 2 - .byte 1 - .byte 169 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 2 - .byte 0 - .byte 169 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 244 - .byte 2 - .byte 8 - .byte 169 - .byte 3 - .byte 241 - .byte 2 - .byte 242 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 245 - .byte 2 - .byte 8 - .byte 169 - .byte 3 - .byte 246 - .byte 2 - .byte 252 - .byte 2 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 253 - .byte 2 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 246 - .byte 2 - .byte 20 - .byte 169 - .byte 3 - .byte 163 - .byte 8 - .byte 248 - .byte 2 - .byte 36 - .byte 248 - .byte 2 - .byte 23 - .byte 169 - .byte 3 - .byte 249 - .byte 2 - .byte 251 - .byte 2 - .byte 7 - .byte 249 - .byte 2 - .byte 15 - .byte 169 - .byte 3 - .byte 164 - .byte 8 - .byte 7 - .byte 6 - .byte 251 - .byte 2 - .byte 0 - .byte 169 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 252 - .byte 2 - .byte 1 - .byte 169 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 253 - .byte 2 - .byte 0 - .byte 169 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 254 - .byte 2 - .byte 20 - .byte 169 - .byte 3 - .byte 245 - .byte 2 - .byte 165 - .byte 8 - .byte 12 - .byte 130 - .byte 3 - .byte 0 - .byte 177 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 131 - .byte 3 - .byte 15 - .byte 177 - .byte 3 - .byte 167 - .byte 8 - .byte 7 - .byte 6 - .byte 132 - .byte 3 - .byte 23 - .byte 177 - .byte 3 - .byte 131 - .byte 3 - .byte 130 - .byte 3 - .byte 7 - .byte 133 - .byte 3 - .byte 20 - .byte 177 - .byte 3 - .byte 166 - .byte 8 - .byte 132 - .byte 3 - .byte 36 - .byte 134 - .byte 3 - .byte 1 - .byte 177 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 3 - .byte 0 - .byte 177 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 136 - .byte 3 - .byte 8 - .byte 177 - .byte 3 - .byte 133 - .byte 3 - .byte 134 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 137 - .byte 3 - .byte 8 - .byte 177 - .byte 3 - .byte 138 - .byte 3 - .byte 144 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 145 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 138 - .byte 3 - .byte 20 - .byte 177 - .byte 3 - .byte 168 - .byte 8 - .byte 140 - .byte 3 - .byte 36 - .byte 140 - .byte 3 - .byte 23 - .byte 177 - .byte 3 - .byte 141 - .byte 3 - .byte 143 - .byte 3 - .byte 7 - .byte 141 - .byte 3 - .byte 15 - .byte 177 - .byte 3 - .byte 169 - .byte 8 - .byte 7 - .byte 6 - .byte 143 - .byte 3 - .byte 0 - .byte 177 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 144 - .byte 3 - .byte 1 - .byte 177 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 145 - .byte 3 - .byte 0 - .byte 177 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 146 - .byte 3 - .byte 20 - .byte 177 - .byte 3 - .byte 137 - .byte 3 - .byte 170 - .byte 8 - .byte 12 - .byte 150 - .byte 3 - .byte 0 - .byte 185 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 151 - .byte 3 - .byte 15 - .byte 185 - .byte 3 - .byte 172 - .byte 8 - .byte 7 - .byte 6 - .byte 152 - .byte 3 - .byte 23 - .byte 185 - .byte 3 - .byte 151 - .byte 3 - .byte 150 - .byte 3 - .byte 7 - .byte 153 - .byte 3 - .byte 20 - .byte 185 - .byte 3 - .byte 171 - .byte 8 - .byte 152 - .byte 3 - .byte 36 - .byte 154 - .byte 3 - .byte 1 - .byte 185 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 155 - .byte 3 - .byte 0 - .byte 185 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 156 - .byte 3 - .byte 8 - .byte 185 - .byte 3 - .byte 153 - .byte 3 - .byte 154 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 155 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 157 - .byte 3 - .byte 8 - .byte 185 - .byte 3 - .byte 158 - .byte 3 - .byte 164 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 165 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 158 - .byte 3 - .byte 20 - .byte 185 - .byte 3 - .byte 173 - .byte 8 - .byte 160 - .byte 3 - .byte 36 - .byte 160 - .byte 3 - .byte 23 - .byte 185 - .byte 3 - .byte 161 - .byte 3 - .byte 163 - .byte 3 - .byte 7 - .byte 161 - .byte 3 - .byte 15 - .byte 185 - .byte 3 - .byte 174 - .byte 8 - .byte 7 - .byte 6 - .byte 163 - .byte 3 - .byte 0 - .byte 185 - .byte 3 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 164 - .byte 3 - .byte 1 - .byte 185 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 165 - .byte 3 - .byte 0 - .byte 185 - .byte 3 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 166 - .byte 3 - .byte 20 - .byte 185 - .byte 3 - .byte 157 - .byte 3 - .byte 175 - .byte 8 - .byte 12 - .byte 168 - .byte 3 - .byte 0 - .byte 189 - .byte 3 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 170 - .byte 3 - .byte 20 - .byte 189 - .byte 3 - .byte 177 - .byte 8 - .byte 168 - .byte 3 - .byte 6 - .byte 173 - .byte 3 - .byte 48 - .byte 196 - .byte 3 - .byte 166 - .byte 7 - .byte 215 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 177 - .byte 3 - .byte 0 - .byte 219 - .byte 3 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 178 - .byte 3 - .byte 0 - .byte 219 - .byte 3 - .byte 2 - .byte 0 - .byte 179 - .byte 3 - .byte 1 - .byte 219 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 180 - .byte 3 - .byte 11 - .byte 219 - .byte 3 - .byte 0 - .byte 178 - .byte 3 - .byte 0 - .byte 179 - .byte 3 - .byte 80 - .byte 184 - .byte 3 - .byte 21 - .byte 228 - .byte 3 - .byte 181 - .byte 8 - .byte 182 - .byte 8 - .byte 12 - .byte 185 - .byte 3 - .byte 1 - .byte 228 - .byte 3 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 186 - .byte 3 - .byte 11 - .byte 228 - .byte 3 - .byte 0 - .byte 184 - .byte 3 - .byte 0 - .byte 185 - .byte 3 - .byte 80 - .byte 189 - .byte 3 - .byte 48 - .byte 135 - .byte 1 - .byte 212 - .byte 7 - .byte 213 - .byte 7 - .byte 6 - .byte 4 - .byte 6 - .byte 192 - .byte 3 - .byte 48 - .byte 196 - .byte 3 - .byte 178 - .byte 8 - .byte 179 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 195 - .byte 3 - .byte 48 - .byte 158 - .byte 3 - .byte 159 - .byte 8 - .byte 160 - .byte 8 - .byte 6 - .byte 4 - .byte 6 - .byte 165 - .byte 7 - .byte 0 - .byte 223 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 166 - .byte 7 - .byte 0 - .byte 161 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 167 - .byte 7 - .byte 0 - .byte 245 - .byte 1 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 186 - .byte 7 - .byte 1 - .byte 40 - .byte 5 - .byte 187 - .byte 7 - .byte 1 - .byte 40 - .byte 2 - .byte 188 - .byte 7 - .byte 1 - .byte 50 - .byte 7 - .byte 189 - .byte 7 - .byte 1 - .byte 48 - .byte 1 - .byte 190 - .byte 7 - .byte 1 - .byte 50 - .byte 1 - .byte 191 - .byte 7 - .byte 1 - .byte 56 - .byte 8 - .byte 192 - .byte 7 - .byte 1 - .byte 56 - .byte 1 - .byte 193 - .byte 7 - .byte 1 - .byte 62 - .byte 9 - .byte 194 - .byte 7 - .byte 1 - .byte 62 - .byte 1 - .byte 195 - .byte 7 - .byte 1 - .byte 196 - .byte 0 - .byte 10 - .byte 196 - .byte 7 - .byte 1 - .byte 196 - .byte 0 - .byte 2 - .byte 197 - .byte 7 - .byte 1 - .byte 202 - .byte 0 - .byte 11 - .byte 198 - .byte 7 - .byte 1 - .byte 202 - .byte 0 - .byte 2 - .byte 199 - .byte 7 - .byte 1 - .byte 208 - .byte 0 - .byte 12 - .byte 200 - .byte 7 - .byte 1 - .byte 208 - .byte 0 - .byte 2 - .byte 201 - .byte 7 - .byte 1 - .byte 217 - .byte 0 - .byte 13 - .byte 202 - .byte 7 - .byte 1 - .byte 223 - .byte 0 - .byte 15 - .byte 203 - .byte 7 - .byte 1 - .byte 135 - .byte 1 - .byte 5 - .byte 204 - .byte 7 - .byte 1 - .byte 236 - .byte 0 - .byte 10 - .byte 205 - .byte 7 - .byte 1 - .byte 236 - .byte 0 - .byte 15 - .byte 206 - .byte 7 - .byte 1 - .byte 244 - .byte 0 - .byte 11 - .byte 207 - .byte 7 - .byte 1 - .byte 244 - .byte 0 - .byte 15 - .byte 208 - .byte 7 - .byte 1 - .byte 252 - .byte 0 - .byte 12 - .byte 209 - .byte 7 - .byte 1 - .byte 252 - .byte 0 - .byte 15 - .byte 210 - .byte 7 - .byte 1 - .byte 128 - .byte 1 - .byte 15 - .byte 211 - .byte 7 - .byte 1 - .byte 128 - .byte 1 - .byte 15 - .byte 212 - .byte 7 - .byte 1 - .byte 135 - .byte 1 - .byte 15 - .byte 213 - .byte 7 - .byte 1 - .byte 135 - .byte 1 - .byte 5 - .byte 214 - .byte 7 - .byte 1 - .byte 161 - .byte 1 - .byte 16 - .byte 215 - .byte 7 - .byte 1 - .byte 196 - .byte 3 - .byte 5 - .byte 216 - .byte 7 - .byte 1 - .byte 192 - .byte 1 - .byte 6 - .byte 217 - .byte 7 - .byte 1 - .byte 190 - .byte 1 - .byte 3 - .byte 218 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 16 - .byte 219 - .byte 7 - .byte 1 - .byte 188 - .byte 1 - .byte 3 - .byte 220 - .byte 7 - .byte 1 - .byte 200 - .byte 1 - .byte 17 - .byte 221 - .byte 7 - .byte 1 - .byte 200 - .byte 1 - .byte 3 - .byte 222 - .byte 7 - .byte 1 - .byte 200 - .byte 1 - .byte 16 - .byte 223 - .byte 7 - .byte 1 - .byte 206 - .byte 1 - .byte 18 - .byte 224 - .byte 7 - .byte 1 - .byte 206 - .byte 1 - .byte 2 - .byte 225 - .byte 7 - .byte 1 - .byte 206 - .byte 1 - .byte 16 - .byte 226 - .byte 7 - .byte 1 - .byte 215 - .byte 1 - .byte 19 - .byte 227 - .byte 7 - .byte 1 - .byte 215 - .byte 1 - .byte 2 - .byte 228 - .byte 7 - .byte 1 - .byte 215 - .byte 1 - .byte 16 - .byte 229 - .byte 7 - .byte 1 - .byte 224 - .byte 1 - .byte 20 - .byte 230 - .byte 7 - .byte 1 - .byte 224 - .byte 1 - .byte 2 - .byte 231 - .byte 7 - .byte 1 - .byte 224 - .byte 1 - .byte 16 - .byte 232 - .byte 7 - .byte 1 - .byte 231 - .byte 1 - .byte 21 - .byte 233 - .byte 7 - .byte 1 - .byte 235 - .byte 1 - .byte 22 - .byte 234 - .byte 7 - .byte 1 - .byte 239 - .byte 1 - .byte 23 - .byte 235 - .byte 7 - .byte 1 - .byte 245 - .byte 1 - .byte 24 - .byte 236 - .byte 7 - .byte 1 - .byte 158 - .byte 3 - .byte 17 - .byte 237 - .byte 7 - .byte 1 - .byte 142 - .byte 2 - .byte 25 - .byte 238 - .byte 7 - .byte 1 - .byte 142 - .byte 2 - .byte 6 - .byte 239 - .byte 7 - .byte 1 - .byte 142 - .byte 2 - .byte 24 - .byte 240 - .byte 7 - .byte 1 - .byte 150 - .byte 2 - .byte 26 - .byte 241 - .byte 7 - .byte 1 - .byte 150 - .byte 2 - .byte 18 - .byte 242 - .byte 7 - .byte 1 - .byte 150 - .byte 2 - .byte 2 - .byte 243 - .byte 7 - .byte 1 - .byte 150 - .byte 2 - .byte 25 - .byte 244 - .byte 7 - .byte 1 - .byte 161 - .byte 2 - .byte 27 - .byte 245 - .byte 7 - .byte 1 - .byte 161 - .byte 2 - .byte 19 - .byte 246 - .byte 7 - .byte 1 - .byte 161 - .byte 2 - .byte 2 - .byte 247 - .byte 7 - .byte 1 - .byte 161 - .byte 2 - .byte 25 - .byte 248 - .byte 7 - .byte 1 - .byte 172 - .byte 2 - .byte 28 - .byte 249 - .byte 7 - .byte 1 - .byte 172 - .byte 2 - .byte 20 - .byte 250 - .byte 7 - .byte 1 - .byte 172 - .byte 2 - .byte 2 - .byte 251 - .byte 7 - .byte 1 - .byte 172 - .byte 2 - .byte 25 - .byte 252 - .byte 7 - .byte 1 - .byte 191 - .byte 2 - .byte 29 - .byte 253 - .byte 7 - .byte 1 - .byte 183 - .byte 2 - .byte 26 - .byte 254 - .byte 7 - .byte 1 - .byte 183 - .byte 2 - .byte 26 - .byte 255 - .byte 7 - .byte 1 - .byte 187 - .byte 2 - .byte 27 - .byte 128 - .byte 8 - .byte 1 - .byte 187 - .byte 2 - .byte 27 - .byte 129 - .byte 8 - .byte 1 - .byte 191 - .byte 2 - .byte 28 - .byte 130 - .byte 8 - .byte 1 - .byte 191 - .byte 2 - .byte 28 - .byte 131 - .byte 8 - .byte 1 - .byte 144 - .byte 3 - .byte 29 - .byte 132 - .byte 8 - .byte 1 - .byte 144 - .byte 3 - .byte 7 - .byte 133 - .byte 8 - .byte 1 - .byte 212 - .byte 2 - .byte 30 - .byte 134 - .byte 8 - .byte 1 - .byte 212 - .byte 2 - .byte 29 - .byte 135 - .byte 8 - .byte 1 - .byte 224 - .byte 2 - .byte 31 - .byte 136 - .byte 8 - .byte 1 - .byte 220 - .byte 2 - .byte 30 - .byte 137 - .byte 8 - .byte 1 - .byte 220 - .byte 2 - .byte 30 - .byte 138 - .byte 8 - .byte 1 - .byte 222 - .byte 2 - .byte 30 - .byte 139 - .byte 8 - .byte 1 - .byte 224 - .byte 2 - .byte 8 - .byte 140 - .byte 8 - .byte 1 - .byte 240 - .byte 2 - .byte 32 - .byte 141 - .byte 8 - .byte 1 - .byte 232 - .byte 2 - .byte 31 - .byte 142 - .byte 8 - .byte 1 - .byte 236 - .byte 2 - .byte 31 - .byte 143 - .byte 8 - .byte 1 - .byte 238 - .byte 2 - .byte 30 - .byte 144 - .byte 8 - .byte 1 - .byte 240 - .byte 2 - .byte 9 - .byte 145 - .byte 8 - .byte 1 - .byte 248 - .byte 2 - .byte 21 - .byte 146 - .byte 8 - .byte 1 - .byte 248 - .byte 2 - .byte 21 - .byte 147 - .byte 8 - .byte 1 - .byte 246 - .byte 2 - .byte 26 - .byte 148 - .byte 8 - .byte 1 - .byte 246 - .byte 2 - .byte 32 - .byte 149 - .byte 8 - .byte 1 - .byte 128 - .byte 3 - .byte 22 - .byte 150 - .byte 8 - .byte 1 - .byte 128 - .byte 3 - .byte 22 - .byte 151 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 27 - .byte 152 - .byte 8 - .byte 1 - .byte 254 - .byte 2 - .byte 32 - .byte 153 - .byte 8 - .byte 1 - .byte 136 - .byte 3 - .byte 23 - .byte 154 - .byte 8 - .byte 1 - .byte 136 - .byte 3 - .byte 23 - .byte 155 - .byte 8 - .byte 1 - .byte 134 - .byte 3 - .byte 28 - .byte 156 - .byte 8 - .byte 1 - .byte 134 - .byte 3 - .byte 32 - .byte 157 - .byte 8 - .byte 1 - .byte 151 - .byte 3 - .byte 24 - .byte 158 - .byte 8 - .byte 1 - .byte 151 - .byte 3 - .byte 24 - .byte 159 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 24 - .byte 160 - .byte 8 - .byte 1 - .byte 158 - .byte 3 - .byte 17 - .byte 161 - .byte 8 - .byte 1 - .byte 169 - .byte 3 - .byte 10 - .byte 162 - .byte 8 - .byte 1 - .byte 169 - .byte 3 - .byte 16 - .byte 163 - .byte 8 - .byte 1 - .byte 169 - .byte 3 - .byte 10 - .byte 164 - .byte 8 - .byte 1 - .byte 169 - .byte 3 - .byte 16 - .byte 165 - .byte 8 - .byte 1 - .byte 169 - .byte 3 - .byte 21 - .byte 166 - .byte 8 - .byte 1 - .byte 177 - .byte 3 - .byte 11 - .byte 167 - .byte 8 - .byte 1 - .byte 177 - .byte 3 - .byte 16 - .byte 168 - .byte 8 - .byte 1 - .byte 177 - .byte 3 - .byte 11 - .byte 169 - .byte 8 - .byte 1 - .byte 177 - .byte 3 - .byte 16 - .byte 170 - .byte 8 - .byte 1 - .byte 177 - .byte 3 - .byte 22 - .byte 171 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 12 - .byte 172 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 16 - .byte 173 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 12 - .byte 174 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 16 - .byte 175 - .byte 8 - .byte 1 - .byte 185 - .byte 3 - .byte 23 - .byte 176 - .byte 8 - .byte 1 - .byte 189 - .byte 3 - .byte 16 - .byte 177 - .byte 8 - .byte 1 - .byte 189 - .byte 3 - .byte 16 - .byte 178 - .byte 8 - .byte 1 - .byte 196 - .byte 3 - .byte 16 - .byte 179 - .byte 8 - .byte 1 - .byte 196 - .byte 3 - .byte 5 - .byte 180 - .byte 8 - .byte 1 - .byte 222 - .byte 3 - .byte 14 - .byte 181 - .byte 8 - .byte 1 - .byte 228 - .byte 3 - .byte 14 - .byte 182 - .byte 8 - .byte 1 - .byte 228 - .byte 3 - .byte 13 - .byte 1 - .byte 65 - .byte 55 - .byte 99 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 65 - .byte 55 - .byte 99 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 5 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 2 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 6 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 3 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 7 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 4 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 10 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 8 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 5 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 11 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 9 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 6 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 10 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 7 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 11 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 8 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 6 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 12 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 9 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 83 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 13 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 10 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 69 - .byte 46 - .byte 49 - .byte 49 - .byte 0 - .byte 14 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 11 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 0 - .byte 15 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 12 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 105 - .byte 46 - .byte 49 - .byte 54 - .byte 0 - .byte 16 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 13 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 13 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 17 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 14 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 18 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 15 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 19 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 16 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 20 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 17 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 21 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 18 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 22 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 19 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 55 - .byte 0 - .byte 23 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 20 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 0 - .byte 24 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 21 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 0 - .byte 5 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 25 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 22 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 26 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 23 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 27 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 24 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 8 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 28 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 25 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 0 - .byte 29 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 26 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 30 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 27 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 7 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 31 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 28 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 0 - .byte 9 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 0 - .byte 32 - .byte 0 - .byte 79 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 1 - .byte 0 - .byte 128 - .byte 128 - .byte 160 - .byte 150 - .byte 4 - .byte 1 - .byte 0 - .byte 0 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 13 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 2 - .byte 12 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 3 - .byte 16 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 0 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 15 - .byte 112 - .byte 114 - .byte 111 - .byte 102 - .byte 105 - .byte 108 - .byte 101 - .byte 95 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 0 - .byte 0 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 5 - .byte 14 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 0 - .byte 1 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 6 - .byte 14 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 53 - .byte 0 - .byte 2 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 7 - .byte 18 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 54 - .byte 0 - .byte 3 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 14 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 55 - .byte 0 - .byte 4 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 15 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 56 - .byte 0 - .byte 5 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 10 - .byte 10 - .byte 102 - .byte 120 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 57 - .byte 0 - .byte 6 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 11 - .byte 10 - .byte 102 - .byte 121 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 97 - .byte 0 - .byte 7 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 12 - .byte 10 - .byte 102 - .byte 122 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 98 - .byte 0 - .byte 8 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 4 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 13 - .byte 9 - .byte 83 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 99 - .byte 0 - .byte 9 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 14 - .byte 9 - .byte 69 - .byte 46 - .byte 49 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 100 - .byte 0 - .byte 10 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 15 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 50 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 101 - .byte 0 - .byte 11 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 16 - .byte 10 - .byte 105 - .byte 46 - .byte 49 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 102 - .byte 0 - .byte 12 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 17 - .byte 18 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 48 - .byte 0 - .byte 13 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 18 - .byte 13 - .byte 120 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 49 - .byte 0 - .byte 14 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 19 - .byte 13 - .byte 121 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 50 - .byte 0 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 20 - .byte 13 - .byte 122 - .byte 116 - .byte 109 - .byte 112 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 51 - .byte 0 - .byte 16 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 21 - .byte 12 - .byte 102 - .byte 105 - .byte 120 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 52 - .byte 0 - .byte 17 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 22 - .byte 12 - .byte 102 - .byte 105 - .byte 121 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 53 - .byte 0 - .byte 18 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 23 - .byte 12 - .byte 102 - .byte 105 - .byte 122 - .byte 46 - .byte 49 - .byte 55 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 54 - .byte 0 - .byte 19 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 24 - .byte 10 - .byte 107 - .byte 46 - .byte 49 - .byte 56 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 99 - .byte 0 - .byte 20 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 25 - .byte 10 - .byte 106 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 100 - .byte 0 - .byte 21 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 4 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 26 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 120 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 101 - .byte 0 - .byte 22 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 27 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 121 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 102 - .byte 0 - .byte 23 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 28 - .byte 13 - .byte 100 - .byte 101 - .byte 108 - .byte 122 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 48 - .byte 0 - .byte 24 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 29 - .byte 12 - .byte 114 - .byte 115 - .byte 113 - .byte 46 - .byte 49 - .byte 57 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 49 - .byte 0 - .byte 25 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 30 - .byte 12 - .byte 115 - .byte 114 - .byte 50 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 50 - .byte 0 - .byte 26 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 31 - .byte 12 - .byte 115 - .byte 114 - .byte 54 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 51 - .byte 0 - .byte 27 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 14 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 50 - .byte 49 - .byte 95 - .byte 86 - .byte 36 - .byte 52 - .byte 52 - .byte 0 - .byte 28 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 4 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 56 - .byte 91 - .byte 8 - .byte 5 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 109 - .byte 54 - .byte 52 - .byte 116 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 114 - .byte 111 - .byte 117 - .byte 116 - .byte 105 - .byte 110 - .byte 101 - .byte 95 - .byte 112 - .byte 111 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 114 - .byte 95 - .byte 115 - .byte 105 - .byte 122 - .byte 101 - .byte 95 - .byte 54 - .byte 52 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 103 - .byte 110 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 95 - .byte 117 - .byte 115 - .byte 101 - .byte 100 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 103 - .byte 99 - .byte 99 - .byte 95 - .byte 118 - .byte 101 - .byte 114 - .byte 115 - .byte 105 - .byte 111 - .byte 110 - .byte 61 - .byte 55 - .byte 48 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 99 - .byte 120 - .byte 120 - .byte 95 - .byte 108 - .byte 105 - .byte 109 - .byte 105 - .byte 116 - .byte 101 - .byte 100 - .byte 95 - .byte 114 - .byte 97 - .byte 110 - .byte 103 - .byte 101 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 95 - .byte 112 - .byte 97 - .byte 114 - .byte 109 - .byte 115 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 105 - .byte 110 - .byte 115 - .byte 116 - .byte 114 - .byte 117 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 95 - .byte 116 - .byte 117 - .byte 110 - .byte 105 - .byte 110 - .byte 103 - .byte 61 - .byte 48 - .byte 120 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 117 - .byte 97 - .byte 114 - .byte 99 - .byte 104 - .byte 95 - .byte 116 - .byte 117 - .byte 110 - .byte 105 - .byte 110 - .byte 103 - .byte 61 - .byte 48 - .byte 120 - .byte 48 - .byte 32 - .byte 67 - .byte 71 - .byte 95 - .byte 98 - .byte 110 - .byte 108 - .byte 95 - .byte 109 - .byte 111 - .byte 118 - .byte 98 - .byte 101 - .byte 61 - .byte 84 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 101 - .byte 120 - .byte 116 - .byte 101 - .byte 110 - .byte 100 - .byte 101 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 115 - .byte 116 - .byte 114 - .byte 117 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 48 - .byte 120 - .byte 56 - .byte 48 - .byte 48 - .byte 48 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 97 - .byte 100 - .byte 118 - .byte 97 - .byte 110 - .byte 99 - .byte 101 - .byte 100 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 105 - .byte 109 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 115 - .byte 117 - .byte 98 - .byte 115 - .byte 95 - .byte 111 - .byte 117 - .byte 116 - .byte 95 - .byte 111 - .byte 102 - .byte 95 - .byte 98 - .byte 111 - .byte 117 - .byte 110 - .byte 100 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 98 - .byte 97 - .byte 115 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 61 - .byte 50 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 99 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 99 - .byte 104 - .byte 101 - .byte 99 - .byte 107 - .byte 101 - .byte 100 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 110 - .byte 115 - .byte 105 - .byte 95 - .byte 97 - .byte 108 - .byte 105 - .byte 97 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 105 - .byte 108 - .byte 48 - .byte 95 - .byte 97 - .byte 114 - .byte 114 - .byte 97 - .byte 121 - .byte 95 - .byte 115 - .byte 101 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 115 - .byte 61 - .byte 84 - .byte 82 - .byte 85 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 102 - .byte 102 - .byte 108 - .byte 111 - .byte 97 - .byte 100 - .byte 95 - .byte 109 - .byte 111 - .byte 100 - .byte 101 - .byte 61 - .byte 49 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 111 - .byte 112 - .byte 116 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 95 - .byte 108 - .byte 101 - .byte 118 - .byte 101 - .byte 108 - .byte 61 - .byte 51 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 108 - .byte 111 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 114 - .byte 101 - .byte 115 - .byte 116 - .byte 114 - .byte 105 - .byte 99 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 102 - .byte 117 - .byte 110 - .byte 99 - .byte 116 - .byte 105 - .byte 111 - .byte 110 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 104 - .byte 112 - .byte 111 - .byte 95 - .byte 114 - .byte 116 - .byte 116 - .byte 95 - .byte 99 - .byte 111 - .byte 110 - .byte 116 - .byte 114 - .byte 111 - .byte 108 - .byte 61 - .byte 48 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 114 - .byte 103 - .byte 115 - .byte 95 - .byte 105 - .byte 110 - .byte 95 - .byte 114 - .byte 101 - .byte 103 - .byte 115 - .byte 61 - .byte 48 - .byte 32 - .byte 80 - .byte 50 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 100 - .byte 105 - .byte 115 - .byte 97 - .byte 109 - .byte 95 - .byte 97 - .byte 115 - .byte 115 - .byte 117 - .byte 109 - .byte 101 - .byte 95 - .byte 110 - .byte 111 - .byte 110 - .byte 115 - .byte 116 - .byte 100 - .byte 95 - .byte 105 - .byte 110 - .byte 116 - .byte 101 - .byte 110 - .byte 116 - .byte 95 - .byte 105 - .byte 110 - .byte 61 - .byte 70 - .byte 65 - .byte 76 - .byte 83 - .byte 69 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 122 - .byte 109 - .byte 109 - .byte 95 - .byte 117 - .byte 115 - .byte 97 - .byte 103 - .byte 101 - .byte 61 - .byte 52 - .byte 32 - .byte 73 - .byte 80 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 108 - .byte 116 - .byte 111 - .byte 95 - .byte 111 - .byte 98 - .byte 106 - .byte 101 - .byte 99 - .byte 116 - .byte 95 - .byte 101 - .byte 110 - .byte 97 - .byte 98 - .byte 108 - .byte 101 - .byte 100 - .byte 32 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 97 - .byte 115 - .byte 109 - .byte 95 - .byte 116 - .byte 97 - .byte 114 - .byte 103 - .byte 101 - .byte 116 - .byte 61 - .byte 80 - .byte 51 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 65 - .byte 83 - .byte 77 - .byte 95 - .byte 84 - .byte 65 - .byte 82 - .byte 71 - .byte 69 - .byte 84 - .byte 95 - .byte 71 - .byte 65 - .byte 83 - .byte 32 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 100 - .byte 105 - .byte 97 - .byte 108 - .byte 101 - .byte 99 - .byte 116 - .byte 61 - .byte 71 - .byte 76 - .byte 79 - .byte 66 - .byte 95 - .byte 83 - .byte 79 - .byte 85 - .byte 82 - .byte 67 - .byte 69 - .byte 95 - .byte 68 - .byte 73 - .byte 65 - .byte 76 - .byte 69 - .byte 67 - .byte 84 - .byte 95 - .byte 67 - .byte 32 - .byte 80 - .byte 49 - .byte 79 - .byte 80 - .byte 84 - .byte 95 - .byte 102 - .byte 117 - .byte 108 - .byte 108 - .byte 95 - .byte 115 - .byte 111 - .byte 117 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 102 - .byte 105 - .byte 108 - .byte 101 - .byte 95 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 61 - .byte 47 - .byte 104 - .byte 111 - .byte 109 - .byte 101 - .byte 47 - .byte 104 - .byte 112 - .byte 99 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 47 - .byte 105 - .byte 119 - .byte 105 - .byte 97 - .byte 48 - .byte 50 - .byte 49 - .byte 104 - .byte 47 - .byte 77 - .byte 68 - .byte 45 - .byte 66 - .byte 101 - .byte 110 - .byte 99 - .byte 104 - .byte 47 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 99 - .byte 111 - .byte 114 - .byte 101 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 1 - .byte 2 - .byte 160 - .byte 1 - .byte 60 - .byte 255 - .byte 0 - .byte 127 - .byte 85 - .byte 114 - .byte 99 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 2 - .byte 126 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 0 - .byte 123 - .byte 85 - .byte 114 - .byte 99 - .byte 84 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 122 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 0 - .byte 121 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 8 - .byte 120 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 1 - .byte 119 - .byte 76 - .byte 52 - .byte 99 - .byte 1 - .byte 65 - .byte 4 - .byte 118 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 3 - .byte 117 - .byte 76 - .byte 50 - .byte 99 - .byte 1 - .byte 86 - .byte 2 - .byte 116 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 248 - .byte 63 - .byte 115 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 164 - .byte 64 - .byte 114 - .byte 76 - .byte 55 - .byte 99 - .byte 1 - .byte 65 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 128 - .byte 240 - .byte 63 - .byte 127 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 126 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 125 - .byte 4 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 124 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 123 - .byte 4 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 49 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 122 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 121 - .byte 4 - .byte 0 - .byte 32 - .byte 0 - .byte 10 - .byte 57 - .byte 64 - .byte 0 - .byte 20 - .byte 85 - .byte 110 - .byte 110 - .byte 97 - .byte 109 - .byte 101 - .byte 100 - .byte 95 - .byte 98 - .byte 101 - .byte 95 - .byte 116 - .byte 121 - .byte 112 - .byte 101 - .byte 95 - .byte 50 - .byte 46 - .byte 50 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 120 - .byte 3 - .byte 0 - .byte 4 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 119 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 118 - .byte 4 - .byte 0 - .byte 8 - .byte 0 - .byte 57 - .byte 64 - .byte 0 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 67 - .byte 70 - .byte 4 - .byte 68 - .byte 0 - .byte 1 - .byte 13 - .byte 103 - .byte 101 - .byte 116 - .byte 84 - .byte 105 - .byte 109 - .byte 101 - .byte 83 - .byte 116 - .byte 97 - .byte 109 - .byte 112 - .byte 0 - .byte 85 - .byte 0 - .byte 0 - .byte 3 - .byte 0 - .byte 145 - .byte 128 - .byte 128 - .byte 16 - .byte 13 - .byte 103 - .byte 101 - .byte 116 - .byte 84 - .byte 105 - .byte 109 - .byte 101 - .byte 83 - .byte 116 - .byte 97 - .byte 109 - .byte 112 - .byte 0 - .byte 15 - .byte 103 - .byte 101 - .byte 116 - .byte 84 - .byte 105 - .byte 109 - .byte 101 - .byte 83 - .byte 116 - .byte 97 - .byte 109 - .byte 112 - .byte 40 - .byte 41 - .byte 0 - .byte 1 - .byte 2 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 85 - .byte 2 - .byte 0 - .byte 1 - .byte 1 - .byte 26 - .byte 3 - .byte 8 - .byte 0 - .byte 145 - .byte 192 - .byte 129 - .byte 16 - .byte 13 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 0 - .byte 8 - .byte 1 - .byte 51 - .byte 99 - .byte 111 - .byte 109 - .byte 112 - .byte 117 - .byte 116 - .byte 101 - .byte 70 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 40 - .byte 80 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 65 - .byte 116 - .byte 111 - .byte 109 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 78 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 32 - .byte 42 - .byte 44 - .byte 32 - .byte 105 - .byte 110 - .byte 116 - .byte 41 - .byte 0 - .byte 2 - .byte 1 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 0 - .byte 2 - .byte 1 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 127 - .byte 4 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 12 - .byte 32 - .byte 126 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 136 - .byte 1 - .byte 0 - .byte 136 - .byte 1 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 232 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 125 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 48 - .byte 0 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 124 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 0 - .byte 0 - .byte 216 - .byte 0 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 245 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 123 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 0 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 122 - .byte 7 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 32 - .byte 0 - .byte 32 - .byte 0 - .byte 0 - .byte 65 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 213 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 32 - .byte 121 - .byte 11 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 95 - .byte 82 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 0 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 120 - .byte 5 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 6 - .byte 32 - .byte 119 - .byte 9 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 83 - .byte 73 - .byte 51 - .byte 50 - .byte 0 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 118 - .byte 8 - .byte 80 - .byte 54 - .byte 52 - .byte 46 - .byte 70 - .byte 54 - .byte 52 - .byte 0 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 0 - .byte 0 - .byte 36 - .byte 36 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 117 - .byte 11 - .byte 78 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 101 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 244 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 116 - .byte 11 - .byte 78 - .byte 108 - .byte 111 - .byte 99 - .byte 97 - .byte 108 - .byte 95 - .byte 86 - .byte 36 - .byte 102 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 243 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 115 - .byte 12 - .byte 78 - .byte 103 - .byte 104 - .byte 111 - .byte 115 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 48 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 8 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 242 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 114 - .byte 10 - .byte 78 - .byte 109 - .byte 97 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 49 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 12 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 241 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 113 - .byte 7 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 50 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 240 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 112 - .byte 7 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 51 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 239 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 111 - .byte 7 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 52 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 238 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 110 - .byte 8 - .byte 118 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 53 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 40 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 237 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 109 - .byte 8 - .byte 118 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 54 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 48 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 236 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 108 - .byte 8 - .byte 118 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 55 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 235 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 107 - .byte 8 - .byte 102 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 56 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 234 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 106 - .byte 8 - .byte 102 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 57 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 233 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 105 - .byte 8 - .byte 102 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 97 - .byte 0 - .byte 251 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 252 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 246 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 104 - .byte 13 - .byte 101 - .byte 112 - .byte 115 - .byte 105 - .byte 108 - .byte 111 - .byte 110 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 231 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 103 - .byte 12 - .byte 115 - .byte 105 - .byte 103 - .byte 109 - .byte 97 - .byte 54 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 230 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 102 - .byte 10 - .byte 116 - .byte 101 - .byte 109 - .byte 112 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 100 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 16 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 229 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 101 - .byte 9 - .byte 114 - .byte 104 - .byte 111 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 101 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 228 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 100 - .byte 10 - .byte 109 - .byte 97 - .byte 115 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 49 - .byte 102 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 32 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 227 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 99 - .byte 12 - .byte 110 - .byte 116 - .byte 105 - .byte 109 - .byte 101 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 48 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 40 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 226 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 98 - .byte 11 - .byte 110 - .byte 115 - .byte 116 - .byte 97 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 49 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 44 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 225 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 97 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 50 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 48 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 224 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 96 - .byte 8 - .byte 100 - .byte 116 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 51 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 56 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 223 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 95 - .byte 13 - .byte 100 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 52 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 192 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 222 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 94 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 53 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 200 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 221 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 93 - .byte 14 - .byte 99 - .byte 117 - .byte 116 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 54 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 208 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 220 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 92 - .byte 8 - .byte 110 - .byte 120 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 55 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 216 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 219 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 91 - .byte 8 - .byte 110 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 56 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 220 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 218 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 90 - .byte 8 - .byte 110 - .byte 122 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 57 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 224 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 217 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 89 - .byte 13 - .byte 108 - .byte 97 - .byte 116 - .byte 116 - .byte 105 - .byte 99 - .byte 101 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 97 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 232 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 216 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 88 - .byte 10 - .byte 120 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 98 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 240 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 215 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 87 - .byte 10 - .byte 121 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 99 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 248 - .byte 0 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 39 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 214 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 86 - .byte 10 - .byte 122 - .byte 112 - .byte 114 - .byte 100 - .byte 95 - .byte 86 - .byte 36 - .byte 50 - .byte 100 - .byte 0 - .byte 253 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 128 - .byte 1 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 12 - .byte 37 - .byte 254 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 85 - .byte 11 - .byte 101 - .byte 118 - .byte 101 - .byte 114 - .byte 121 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 55 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 0 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 212 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 84 - .byte 12 - .byte 110 - .byte 99 - .byte 97 - .byte 108 - .byte 108 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 56 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 4 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 211 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 83 - .byte 15 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 57 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 8 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 210 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 82 - .byte 15 - .byte 109 - .byte 97 - .byte 120 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 115 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 97 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 4 - .byte 16 - .byte 4 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 6 - .byte 39 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 209 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 248 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 81 - .byte 14 - .byte 110 - .byte 117 - .byte 109 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 95 - .byte 86 - .byte 36 - .byte 51 - .byte 98 - .byte 0 - .byte 249 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 8 - .byte 24 - .byte 8 - .byte 0 - .byte 0 - .byte 86 - .byte 110 - .byte 129 - .byte 136 - .byte 2 - .byte 0 - .byte 0 - .byte 36 - .byte 37 - .byte 250 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 247 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 9 - .byte 1 - .byte 0 - .byte 30 - .byte 8 - .byte 11 - .byte 1 - .byte 0 - .byte 35 - .byte 1 - .byte 40 - .byte 1 - .byte 0 - .byte 36 - .byte 18 - .byte 48 - .byte 1 - .byte 0 - .byte 38 - .byte 27 - .byte 50 - .byte 1 - .byte 0 - .byte 38 - .byte 45 - .byte 56 - .byte 1 - .byte 0 - .byte 39 - .byte 23 - .byte 62 - .byte 1 - .byte 0 - .byte 40 - .byte 24 - .byte 196 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 20 - .byte 202 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 45 - .byte 208 - .byte 0 - .byte 1 - .byte 0 - .byte 41 - .byte 70 - .byte 214 - .byte 0 - .byte 1 - .byte 0 - .byte 44 - .byte 9 - .byte 217 - .byte 0 - .byte 1 - .byte 0 - .byte 44 - .byte 5 - .byte 223 - .byte 0 - .byte 1 - .byte 0 - .byte 45 - .byte 15 - .byte 232 - .byte 0 - .byte 1 - .byte 0 - .byte 46 - .byte 17 - .byte 236 - .byte 0 - .byte 1 - .byte 0 - .byte 46 - .byte 9 - .byte 240 - .byte 0 - .byte 1 - .byte 0 - .byte 47 - .byte 17 - .byte 244 - .byte 0 - .byte 1 - .byte 0 - .byte 47 - .byte 9 - .byte 248 - .byte 0 - .byte 1 - .byte 0 - .byte 48 - .byte 17 - .byte 252 - .byte 0 - .byte 1 - .byte 0 - .byte 48 - .byte 9 - .byte 128 - .byte 1 - .byte 1 - .byte 0 - .byte 45 - .byte 32 - .byte 135 - .byte 1 - .byte 1 - .byte 0 - .byte 45 - .byte 24 - .byte 137 - .byte 1 - .byte 1 - .byte 0 - .byte 45 - .byte 5 - .byte 161 - .byte 1 - .byte 1 - .byte 0 - .byte 56 - .byte 15 - .byte 188 - .byte 1 - .byte 1 - .byte 0 - .byte 57 - .byte 43 - .byte 190 - .byte 1 - .byte 1 - .byte 0 - .byte 57 - .byte 19 - .byte 192 - .byte 1 - .byte 1 - .byte 0 - .byte 57 - .byte 9 - .byte 200 - .byte 1 - .byte 1 - .byte 0 - .byte 58 - .byte 25 - .byte 206 - .byte 1 - .byte 1 - .byte 0 - .byte 59 - .byte 25 - .byte 215 - .byte 1 - .byte 1 - .byte 0 - .byte 60 - .byte 25 - .byte 224 - .byte 1 - .byte 1 - .byte 0 - .byte 61 - .byte 25 - .byte 231 - .byte 1 - .byte 1 - .byte 0 - .byte 63 - .byte 22 - .byte 235 - .byte 1 - .byte 1 - .byte 0 - .byte 64 - .byte 22 - .byte 239 - .byte 1 - .byte 1 - .byte 0 - .byte 65 - .byte 22 - .byte 245 - .byte 1 - .byte 1 - .byte 0 - .byte 67 - .byte 19 - .byte 142 - .byte 2 - .byte 1 - .byte 0 - .byte 68 - .byte 21 - .byte 150 - .byte 2 - .byte 1 - .byte 0 - .byte 69 - .byte 36 - .byte 161 - .byte 2 - .byte 1 - .byte 0 - .byte 70 - .byte 36 - .byte 172 - .byte 2 - .byte 1 - .byte 0 - .byte 71 - .byte 36 - .byte 183 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 35 - .byte 187 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 49 - .byte 191 - .byte 2 - .byte 1 - .byte 0 - .byte 72 - .byte 63 - .byte 210 - .byte 2 - .byte 1 - .byte 0 - .byte 75 - .byte 32 - .byte 212 - .byte 2 - .byte 1 - .byte 0 - .byte 75 - .byte 38 - .byte 220 - .byte 2 - .byte 1 - .byte 0 - .byte 76 - .byte 38 - .byte 222 - .byte 2 - .byte 1 - .byte 0 - .byte 76 - .byte 44 - .byte 224 - .byte 2 - .byte 1 - .byte 0 - .byte 76 - .byte 50 - .byte 230 - .byte 2 - .byte 1 - .byte 0 - .byte 77 - .byte 34 - .byte 232 - .byte 2 - .byte 1 - .byte 0 - .byte 77 - .byte 41 - .byte 236 - .byte 2 - .byte 1 - .byte 0 - .byte 77 - .byte 54 - .byte 238 - .byte 2 - .byte 1 - .byte 0 - .byte 77 - .byte 61 - .byte 240 - .byte 2 - .byte 1 - .byte 0 - .byte 77 - .byte 67 - .byte 246 - .byte 2 - .byte 1 - .byte 0 - .byte 78 - .byte 31 - .byte 248 - .byte 2 - .byte 1 - .byte 0 - .byte 78 - .byte 17 - .byte 254 - .byte 2 - .byte 1 - .byte 0 - .byte 79 - .byte 31 - .byte 128 - .byte 3 - .byte 1 - .byte 0 - .byte 79 - .byte 17 - .byte 134 - .byte 3 - .byte 1 - .byte 0 - .byte 80 - .byte 31 - .byte 136 - .byte 3 - .byte 1 - .byte 0 - .byte 80 - .byte 17 - .byte 144 - .byte 3 - .byte 1 - .byte 0 - .byte 74 - .byte 22 - .byte 146 - .byte 3 - .byte 1 - .byte 0 - .byte 74 - .byte 13 - .byte 151 - .byte 3 - .byte 1 - .byte 0 - .byte 67 - .byte 39 - .byte 158 - .byte 3 - .byte 1 - .byte 0 - .byte 67 - .byte 28 - .byte 160 - .byte 3 - .byte 1 - .byte 0 - .byte 67 - .byte 9 - .byte 169 - .byte 3 - .byte 1 - .byte 0 - .byte 84 - .byte 9 - .byte 177 - .byte 3 - .byte 1 - .byte 0 - .byte 85 - .byte 9 - .byte 185 - .byte 3 - .byte 1 - .byte 0 - .byte 86 - .byte 9 - .byte 189 - .byte 3 - .byte 1 - .byte 0 - .byte 56 - .byte 32 - .byte 196 - .byte 3 - .byte 1 - .byte 0 - .byte 56 - .byte 24 - .byte 198 - .byte 3 - .byte 1 - .byte 0 - .byte 56 - .byte 5 - .byte 219 - .byte 3 - .byte 1 - .byte 0 - .byte 93 - .byte 9 - .byte 222 - .byte 3 - .byte 1 - .byte 0 - .byte 93 - .byte 5 - .byte 228 - .byte 3 - .byte 1 - .byte 0 - .byte 94 - .byte 14 - .byte 1 - .byte 0 - .byte 0 - .byte 0 - .byte 255 - .byte 255 - .byte 255 - .byte 255 - .byte 15 - .byte 135 - .byte 3 - .byte 0 - .byte 0 - .byte 0 - .byte 99 - .byte 99 - .byte 19 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 99 - .byte 111 - .byte 114 - .byte 101 - .byte 47 - .byte 102 - .byte 111 - .byte 114 - .byte 99 - .byte 101 - .byte 46 - .byte 99 - .byte 0 - .byte 2 - .byte 2 - .byte 1 - .byte 3 - .byte 24 - .byte 193 - .byte 1 - .byte 0 - .byte 1 - .byte 23 - .byte 0 - .byte 115 - .byte 95 - .byte 31 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 108 - .byte 105 - .byte 107 - .byte 119 - .byte 105 - .byte 100 - .byte 45 - .byte 109 - .byte 97 - .byte 114 - .byte 107 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 3 - .byte 1 - .byte 4 - .byte 196 - .byte 1 - .byte 225 - .byte 1 - .byte 0 - .byte 1 - .byte 25 - .byte 0 - .byte 115 - .byte 95 - .byte 24 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 116 - .byte 105 - .byte 109 - .byte 105 - .byte 110 - .byte 103 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 4 - .byte 1 - .byte 7 - .byte 227 - .byte 1 - .byte 238 - .byte 2 - .byte 100 - .byte 1 - .byte 26 - .byte 0 - .byte 115 - .byte 95 - .byte 26 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 110 - .byte 101 - .byte 105 - .byte 103 - .byte 104 - .byte 98 - .byte 111 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 5 - .byte 5 - .byte 4 - .byte 0 - .byte 250 - .byte 1 - .byte 221 - .byte 2 - .byte 49 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 6 - .byte 6 - .byte 5 - .byte 0 - .byte 145 - .byte 2 - .byte 193 - .byte 2 - .byte 0 - .byte 1 - .byte 22 - .byte 0 - .byte 115 - .byte 95 - .byte 27 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 112 - .byte 97 - .byte 114 - .byte 97 - .byte 109 - .byte 101 - .byte 116 - .byte 101 - .byte 114 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .byte 7 - .byte 1 - .byte 0 - .byte 241 - .byte 2 - .byte 163 - .byte 3 - .byte 0 - .byte 1 - .byte 28 - .byte 0 - .byte 115 - .byte 95 - .byte 22 - .byte 46 - .byte 47 - .byte 115 - .byte 114 - .byte 99 - .byte 47 - .byte 105 - .byte 110 - .byte 99 - .byte 108 - .byte 117 - .byte 100 - .byte 101 - .byte 115 - .byte 47 - .byte 97 - .byte 116 - .byte 111 - .byte 109 - .byte 46 - .byte 104 - .byte 0 - .byte 0 - .text -..TXTST0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - -### { - - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %rbp #35.1 - .cfi_def_cfa_offset 16 - movq %rsp, %rbp #35.1 - .cfi_def_cfa 6, 16 - .cfi_offset 6, -16 - andq $-64, %rsp #35.1 - pushq %r12 #35.1 - pushq %r13 #35.1 - pushq %r14 #35.1 - pushq %r15 #35.1 - pushq %rbx #35.1 - subq $152, %rsp #35.1 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22 - movq %rsi, %r12 #35.1 - -### int Nlocal = atom->Nlocal; -### int* neighs; -### MD_FLOAT cutforcesq = param->cutforce * param->cutforce; - - vmovsd 72(%rdi), %xmm16 #38.27 - -### MD_FLOAT sigma6 = param->sigma6; -### MD_FLOAT epsilon = param->epsilon; -### MD_FLOAT* fx = atom->fx; MD_FLOAT* fy = atom->fy; MD_FLOAT* fz = atom->fz; -### MD_FLOAT S, E; -### -### S = getTimeStamp(); - - xorl %eax, %eax #44.9 - vmulsd %xmm16, %xmm16, %xmm0 #38.45 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm2 #40.24 - vmovsd %xmm0, 8(%rsp) #38.45[spill] - vmovsd %xmm1, 32(%rsp) #39.23[spill] - vmovsd %xmm2, 16(%rsp) #40.24[spill] - movq %rdx, 24(%rsp) #35.1[spill] - movl 4(%r12), %r15d #36.18 - movq 64(%r12), %r14 #41.20 - movq 72(%r12), %r13 #41.45 - movq 80(%r12), %rbx #41.70 -..___tag_value_computeForce.11: -# getTimeStamp() - call getTimeStamp #44.9 -..___tag_value_computeForce.12: - # LOE rbx r12 r13 r14 r15d xmm0 -..B1.41: # Preds ..B1.1 - # Execution count [1.00e+00] - vmovsd %xmm0, (%rsp) #44.9[spill] - # LOE rbx r12 r13 r14 r15d -..B1.2: # Preds ..B1.41 - # Execution count [1.00e+00] - -### for(int i = 0; i < Nlocal; i++) { - - testl %r15d, %r15d #45.24 - jle ..B1.34 # Prob 50% #45.24 - # LOE rbx r12 r13 r14 r15d -..B1.3: # Preds ..B1.2 - # Execution count [1.00e+00] - movl %r15d, %eax #45.5 - movl $1, %ecx #45.5 - shrl $31, %eax #45.5 - xorl %edx, %edx #45.5 - addl %r15d, %eax #36.18 - -### fx[i] = 0.0; - - vxorpd %xmm26, %xmm26, %xmm26 #46.17 - sarl $1, %eax #36.18 - testl %eax, %eax #45.5 - jbe ..B1.7 # Prob 9% #45.5 - # LOE rbx r12 r13 r14 eax edx ecx r15d xmm26 -..B1.5: # Preds ..B1.3 ..B1.5 - # Execution count [2.50e+00] - lea (%rdx,%rdx), %ecx #46.9 - incl %edx #45.5 - movslq %ecx, %rcx #46.9 - vmovsd %xmm26, (%r14,%rcx,8) #46.9 - -### fy[i] = 0.0; - - vmovsd %xmm26, (%r13,%rcx,8) #47.9 - -### fz[i] = 0.0; - - vmovsd %xmm26, (%rbx,%rcx,8) #48.9 - vmovsd %xmm26, 8(%r14,%rcx,8) #46.9 - vmovsd %xmm26, 8(%r13,%rcx,8) #47.9 - vmovsd %xmm26, 8(%rbx,%rcx,8) #48.9 - cmpl %eax, %edx #45.5 - jb ..B1.5 # Prob 63% #45.5 - # LOE rbx r12 r13 r14 eax edx r15d xmm26 -..B1.6: # Preds ..B1.5 - # Execution count [9.00e-01] - lea 1(%rdx,%rdx), %ecx #46.9 - # LOE rbx r12 r13 r14 ecx r15d xmm26 -..B1.7: # Preds ..B1.3 ..B1.6 - # Execution count [1.00e+00] - lea -1(%rcx), %eax #45.5 - cmpl %r15d, %eax #45.5 - jae ..B1.9 # Prob 9% #45.5 - # LOE rbx r12 r13 r14 ecx r15d xmm26 -..B1.8: # Preds ..B1.7 - # Execution count [9.00e-01] - movslq %ecx, %rcx #46.9 - vmovsd %xmm26, -8(%r14,%rcx,8) #46.9 - vmovsd %xmm26, -8(%r13,%rcx,8) #47.9 - vmovsd %xmm26, -8(%rbx,%rcx,8) #48.9 - # LOE rbx r12 r13 r14 r15d xmm26 -..B1.9: # Preds ..B1.7 ..B1.8 - # Execution count [9.00e-01] - -### } -### -### if(profile) { -### LIKWID_MARKER_START("force"); -### } -### -### #pragma omp parallel for -### for(int i = 0; i < Nlocal; i++) { -### neighs = &neighbor->neighbors[i * neighbor->maxneighs]; -### int numneighs = neighbor->numneigh[i]; -### MD_FLOAT xtmp = atom_x(i); -### MD_FLOAT ytmp = atom_y(i); -### MD_FLOAT ztmp = atom_z(i); -### -### MD_FLOAT fix = 0; -### MD_FLOAT fiy = 0; -### MD_FLOAT fiz = 0; -### -### for(int k = 0; k < numneighs; k++) { -### int j = neighs[k]; -### MD_FLOAT delx = xtmp - atom_x(j); -### MD_FLOAT dely = ytmp - atom_y(j); -### MD_FLOAT delz = ztmp - atom_z(j); -### MD_FLOAT rsq = delx * delx + dely * dely + delz * delz; -### -### if(rsq < cutforcesq) { -### MD_FLOAT sr2 = 1.0 / rsq; -### MD_FLOAT sr6 = sr2 * sr2 * sr2 * sigma6; -### MD_FLOAT force = 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon; -# xmm0 <- epsilon - vmovsd 16(%rsp), %xmm0 #77.41[spill] - xorl %edx, %edx #56.15 - vmulsd .L_2il0floatpacket.0(%rip), %xmm0, %xmm12 #77.41 - xorl %eax, %eax #56.5 - vmovups .L_2il0floatpacket.2(%rip), %zmm13 #75.32 - vmovups .L_2il0floatpacket.3(%rip), %zmm10 #77.54 - vmovsd .L_2il0floatpacket.8(%rip), %xmm11 #75.32 - vmovsd .L_2il0floatpacket.1(%rip), %xmm22 #77.54 -# rcx <- neighbor - movq 24(%rsp), %rcx #57.19[spill] - movslq %r15d, %r15 #56.5 -# xmm25 <- sigma6 - vmovsd 32(%rsp), %xmm25 #58.25[spill] -# esi <- neighbor->maxneighs - movl 16(%rcx), %esi #57.43 -# rdi <- neighbor->neighbors - movq 8(%rcx), %rdi #57.19 -# r10 <- neighbor->numneigh - movq 24(%rcx), %r10 #58.25 -# r12 <- atom->x - movq 16(%r12), %r12 #59.25 -# zmm23 <- 48.0 * sr2 - vbroadcastsd %xmm12, %zmm23 #77.41 -# xmm1 <- cutforcesq - vmovsd 8(%rsp), %xmm1 #58.25[spill] -# zmm20 <- cutforcesq - vbroadcastsd 8(%rsp), %zmm20 #38.45[spill] -# zmm14 <- sigma6 - vbroadcastsd 32(%rsp), %zmm14 #39.23[spill] - movq %r15, 48(%rsp) #58.25[spill] - movl %esi, 40(%rsp) #58.25[spill] - vpxorq %zmm21, %zmm21, %zmm21 #63.22 - # LOE rax rbx rdi r10 r12 r13 r14 edx xmm1 xmm11 xmm12 xmm22 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.10: # Preds ..B1.32 ..B1.9 - # Execution count [5.00e+00] -# r11d <- 0 - movl %eax, %r11d #59.25 -# xmm19 <- 0.0 - vmovapd %xmm26, %xmm19 #64.22 -# r9 <- neighbor->num_neigh[i] - movslq (%r10,%rax,4), %r9 #58.25 -# xmm24 <- 0 - vxorpd %xmm24, %xmm24, %xmm24 #63.22 -# xmm18 <- 0.0 - vmovapd %xmm26, %xmm18 #65.22 -# ecx <- ptr r11*3 - lea (%r11,%r11,2), %ecx #59.25 -# rcx <- r11*3 - movslq %ecx, %rcx #59.25 -# xmm15 <- atom->x[i] - vmovsd (%r12,%rcx,8), %xmm15 #59.25 -# xmm16 <- atom->y[i] - vmovsd 8(%r12,%rcx,8), %xmm16 #60.25 -# xmm17 <- atom->z[i] - vmovsd 16(%r12,%rcx,8), %xmm17 #61.25 - testq %r9, %r9 #67.28 - jle ..B1.32 # Prob 50% #67.28 - # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] -# 8 < num_neigh[k] - cmpq $8, %r9 #67.9 - jl ..B1.36 # Prob 10% #67.9 - # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] -# ecx <- neighbor->maxneighs - movl 40(%rsp), %ecx #57.43[spill] -# ecx <- i * neighbor->maxneighs - imull %edx, %ecx #57.43 -# rcx <- signal_extended(ecx) - movslq %ecx, %rcx #57.19 -# rsi <- neighbor->neighbors[i * neighbor->maxneighs] - lea (%rdi,%rcx,4), %rsi #57.9 -# 1200 < num_neigh[k] - cmpq $1200, %r9 #67.9 - jl ..B1.37 # Prob 10% #67.9 - # LOE rax rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.13: # Preds ..B1.12 - # Execution count [4.50e+00] -# rcx <- i * neighbor->maxneighs - movq %rsi, %rcx #67.9 -# rcx <- rcx & 111111b - andq $63, %rcx #67.9 -# 3 == (i * neighbor->maxneighs) & 11111111b - testb $3, %cl #67.9 - je ..B1.15 # Prob 50% #67.9 - # LOE rax rbx rsi rdi r9 r10 r12 r13 r14 edx ecx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.14: # Preds ..B1.13 - # Execution count [2.25e+00] -# ecx <- 0 - xorl %ecx, %ecx #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.15: # Preds ..B1.13 - # Execution count [2.25e+00] -# r8d <- (i * neighbor->maxneighs) & 111111b - movl %ecx, %r8d #67.9 -# r8d <- -((i * neighbor->maxneighs) & 111111b) - negl %r8d #67.9 -# r8d <- -((i * neighbor->maxneighs) & 111111b) + 64 - addl $64, %r8d #67.9 -# r8d <- (-((i * neighbor->maxneighs) & 111111b) + 64) >> 2 - shrl $2, %r8d #67.9 - testl %ecx, %ecx #67.9 - cmovne %r8d, %ecx #67.9 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.16: # Preds ..B1.14 ..B1.15 - # Execution count [4.50e+00] - lea 8(%rcx), %r8d #67.9 -# k < numneighs - cmpq %r8, %r9 #67.9 - jl ..B1.36 # Prob 10% #67.9 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.17: # Preds ..B1.16 - # Execution count [5.00e+00] -# r8d <- numneighs - movl %r9d, %r8d #67.9 -# r15d <- numneighs - movl %r8d, %r15d #67.9 -# r15d <- numneighs - k - subl %ecx, %r15d #67.9 -# r15d <- (numneighs - k) & 111b - andl $7, %r15d #67.9 -# r8d <- numneighs - ((numneighs - k) & 111b) - subl %r15d, %r8d #67.9 -# r15d <- 0 - xorl %r15d, %r15d #67.9 -# 1 < k - cmpl $1, %ecx #67.9 - jb ..B1.23 # Prob 10% #67.9 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.18: # Preds ..B1.17 - # Execution count [4.50e+00] -# 8(rsp) <- atom->fx - movq %r14, 8(%rsp) #[spill] - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.19: # Preds ..B1.18 ..B1.21 - # Execution count [2.50e+01] -# r14d <- neighs[k] - movl (%rsi,%r15,4), %r14d #68.21 -# r14 <- r14 * 3 - lea (%r14,%r14,2), %r14d #69.36 - movslq %r14d, %r14 #69.36 -# xmm9 <- ytmp - atom_y(j) - vsubsd 8(%r12,%r14,8), %xmm16, %xmm9 #70.36 -# xmm8 <- xtmp - atom_x(j) - vsubsd (%r12,%r14,8), %xmm15, %xmm8 #69.36 -# xmm28 <- ztmp - atom_z(j) - vsubsd 16(%r12,%r14,8), %xmm17, %xmm28 #71.36 - vmulsd %xmm9, %xmm9, %xmm0 #72.49 - vfmadd231sd %xmm8, %xmm8, %xmm0 #72.63 - vfmadd231sd %xmm28, %xmm28, %xmm0 #72.63 -# cutforcesq <= rsq - vcomisd %xmm0, %xmm1 #74.22 - jbe ..B1.21 # Prob 50% #74.22 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm0 xmm1 xmm8 xmm9 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 xmm28 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.20: # Preds ..B1.19 - # Execution count [1.25e+01] - vdivsd %xmm0, %xmm11, %xmm3 #75.38 - vmulsd %xmm3, %xmm25, %xmm0 #76.38 - vmulsd %xmm12, %xmm3, %xmm4 #77.54 - vmulsd %xmm3, %xmm0, %xmm2 #76.44 - vmulsd %xmm3, %xmm2, %xmm5 #76.50 - vmulsd %xmm5, %xmm4, %xmm6 #77.61 - vsubsd %xmm22, %xmm5, %xmm7 #77.54 - vmulsd %xmm7, %xmm6, %xmm27 #77.67 - -### fix += delx * force; - - vfmadd231sd %xmm8, %xmm27, %xmm24 #78.17 - -### fiy += dely * force; - - vfmadd231sd %xmm9, %xmm27, %xmm19 #79.17 - -### fiz += delz * force; - - vfmadd231sd %xmm28, %xmm27, %xmm18 #80.17 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.21: # Preds ..B1.20 ..B1.19 - # Execution count [2.50e+01] -# k++ - incq %r15 #67.9 -# k < numneighs - cmpq %rcx, %r15 #67.9 - jb ..B1.19 # Prob 82% #67.9 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.22: # Preds ..B1.21 - # Execution count [4.50e+00] - movq 8(%rsp), %r14 #[spill] - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.23: # Preds ..B1.17 ..B1.22 ..B1.37 - # Execution count [4.50e+00] -# r15d <- 63 - movl $63, %r15d #69.36 -# k2 <- 63 (111111b) - kmovw %r15d, %k2 #69.36 -# r15d < 240 - movl $240, %r15d #69.36 -# k1 <- 240 (11110000b) - kmovw %r15d, %k1 #69.36 - vmovdqu32 .L_2il0floatpacket.4(%rip), %zmm0 #69.36 - vmovdqu32 .L_2il0floatpacket.5(%rip), %zmm5 #69.36 - vmovdqu32 .L_2il0floatpacket.6(%rip), %zmm6 #69.36 -# zmm4 <- atom_x(i) - vbroadcastsd %xmm15, %zmm4 #59.25 -# zmm3 <- atom_y(i) - vbroadcastsd %xmm16, %zmm3 #60.25 -# zmm2 <- atom_z(i) - vbroadcastsd %xmm17, %zmm2 #61.25 -# zmm9 <- 0.0 - vmovaps %zmm21, %zmm9 #63.22 -# zmm8 <- 0.0 - vmovaps %zmm21, %zmm8 #64.22 -# zmm7 <- 0.0 - vmovaps %zmm21, %zmm7 #65.22 - movslq %r8d, %r15 #67.9 -# 16(rsp) <- atom->fx - movq %rbx, 16(%rsp) #67.9[spill] -# 24(rsp) <- atom->fy - movq %r13, 24(%rsp) #67.9[spill] -# 8(rsp) <- atom->fz - movq %r14, 8(%rsp) #67.9[spill] - # LOE rax rcx rsi rdi r9 r10 r12 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 zmm0 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 k1 k2 -..B1.24: # Preds ..B1.24 ..B1.23 - # Execution count [2.50e+01] -# ymm27 <- neighbors[k] - vmovdqu32 (%rsi,%rcx,4), %ymm27 #68.21 -# k++ (+= 8) - addq $8, %rcx #67.9 -# ymm25 <- neighbors[k] * 2 - vpaddd %ymm27, %ymm27, %ymm25 #69.36 -# ymm26 <- neighbors[k] * 3 - vpaddd %ymm25, %ymm27, %ymm26 #69.36 -# 64(rsp) <- neighbors[k] * 3 - vmovdqu32 %ymm26, 64(%rsp) #69.36 -# rbx <- neighbors[0] * 3 - movslq 64(%rsp), %rbx #69.36 -# r13 <- neighbors[1] * 3 - movslq 68(%rsp), %r13 #69.36 -# r14 <- neighbors[2] * 3 - movslq 72(%rsp), %r14 #69.36 -# zmm31 <- atom->x[neighbors[0] * 3] - vmovdqu32 (%r12,%rbx,8), %zmm31{%k2}{z} #69.36 -# zmm29 <- atom->x[neighbors[1] * 3] - vmovdqu32 (%r12,%r13,8), %zmm29{%k2}{z} #69.36 -# zmm27 <- atom->x[neighbors[2] * 3] - vmovdqu32 (%r12,%r14,8), %zmm27{%k2}{z} #69.36 -# rbx <- neighbors[3] * 3 - movslq 76(%rsp), %rbx #69.36 -# r13 <- neighbors[4] * 3 - movslq 80(%rsp), %r13 #69.36 -# r14 <- neighbors[5] * 3 - movslq 84(%rsp), %r14 #69.36 -# zmm28 <- atom->x[neighbors[3] * 3] - vmovdqu32 (%r12,%rbx,8), %zmm28{%k2}{z} #69.36 -# zmm26 <- atom->x[neighbors[5] * 3] - vmovdqu32 (%r12,%r14,8), %zmm26{%k2}{z} #69.36 -# rbx <- neighbors[6] * 3 - movslq 88(%rsp), %rbx #69.36 -# zmm30 <- neigh0|neigh1 - vinserti64x4 $1, %ymm29, %zmm31, %zmm30 #69.36 -# zmm31 <- atom->x[neighbors[4] * 3] - vmovdqu32 (%r12,%r13,8), %zmm31{%k2}{z} #69.36 -# r13 <- neighbors[7] * 3 - movslq 92(%rsp), %r13 #69.36 - vmovaps %zmm5, %zmm29 #69.36 -# zmm25 <- neigh2|neigh3 - vinserti64x4 $1, %ymm28, %zmm27, %zmm25 #69.36 -# zmm27 <- atom->x[neighbors[7] * 3] - vmovdqu32 (%r12,%r13,8), %zmm27{%k2}{z} #69.36 - vmovaps %zmm0, %zmm28 #69.36 -# zmm28 <- neigh0|neigh1|neigh2|neigh3 - vpermi2q %zmm25, %zmm30, %zmm28 #69.36 -# zmm25 <- neigh2|neigh3|neigh0|neigh1 - vpermt2q %zmm25, %zmm6, %zmm30 #69.36 -# zmm25 <- atom->x[neighbors[6] * 3] - vmovdqu32 (%r12,%rbx,8), %zmm25{%k2}{z} #69.36 -# zmm31 <- neigh4|neigh5 - vinserti64x4 $1, %ymm26, %zmm31, %zmm31 #69.36 -# zmm25 <- neigh6|neigh7 - vinserti64x4 $1, %ymm27, %zmm25, %zmm25 #69.36 - vpermi2q %zmm25, %zmm31, %zmm29 #69.36 - vpermt2q %zmm25, %zmm6, %zmm31 #69.36 - vpblendmq %zmm31, %zmm30, %zmm30{%k1} #69.36 - vpblendmq %zmm29, %zmm28, %zmm31{%k1} #69.36 - valignd $8, %zmm28, %zmm29, %zmm29 #69.36 - vsubpd %zmm30, %zmm2, %zmm30 #71.36 - vsubpd %zmm31, %zmm4, %zmm28 #69.36 - vsubpd %zmm29, %zmm3, %zmm27 #70.36 - vmulpd %zmm27, %zmm27, %zmm25 #72.49 - vfmadd231pd %zmm28, %zmm28, %zmm25 #72.49 - vfmadd231pd %zmm30, %zmm30, %zmm25 #72.63 - vdivpd %zmm25, %zmm13, %zmm26 #75.38 - vcmppd $1, %zmm20, %zmm25, %k3 #74.22 - vmulpd %zmm26, %zmm14, %zmm25 #76.38 - vmulpd %zmm23, %zmm26, %zmm31 #77.54 - vmulpd %zmm25, %zmm26, %zmm29 #76.44 - vmulpd %zmm29, %zmm26, %zmm29 #76.50 - vmulpd %zmm26, %zmm26, %zmm26 #77.54 - vmulpd %zmm29, %zmm31, %zmm31 #77.61 - vfmsub213pd %zmm10, %zmm26, %zmm25 #77.54 - vmulpd %zmm25, %zmm31, %zmm25 #77.67 - vfmadd231pd %zmm28, %zmm25, %zmm9{%k3} #78.17 - vfmadd231pd %zmm27, %zmm25, %zmm8{%k3} #79.17 - vfmadd231pd %zmm30, %zmm25, %zmm7{%k3} #80.17 - cmpq %r15, %rcx #67.9 - jb ..B1.24 # Prob 82% #67.9 - # LOE rax rcx rsi rdi r9 r10 r12 r15 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 zmm0 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 k1 k2 -..B1.25: # Preds ..B1.24 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.7(%rip), %zmm0 #63.22 - vmovsd 32(%rsp), %xmm25 #[spill] - vxorpd %xmm26, %xmm26, %xmm26 # - vpermd %zmm9, %zmm0, %zmm2 #63.22 - vpermd %zmm8, %zmm0, %zmm27 #64.22 - vpermd %zmm7, %zmm0, %zmm0 #65.22 - vaddpd %zmm9, %zmm2, %zmm3 #63.22 - vaddpd %zmm8, %zmm27, %zmm8 #64.22 - vaddpd %zmm7, %zmm0, %zmm7 #65.22 - vpermpd $78, %zmm3, %zmm4 #63.22 - vpermpd $78, %zmm8, %zmm28 #64.22 - vpermpd $78, %zmm7, %zmm0 #65.22 - vaddpd %zmm4, %zmm3, %zmm5 #63.22 - vaddpd %zmm28, %zmm8, %zmm29 #64.22 - vaddpd %zmm0, %zmm7, %zmm2 #65.22 - vpermpd $177, %zmm5, %zmm6 #63.22 - vpermpd $177, %zmm29, %zmm30 #64.22 - vpermpd $177, %zmm2, %zmm3 #65.22 - vaddpd %zmm6, %zmm5, %zmm9 #63.22 - vaddpd %zmm30, %zmm29, %zmm31 #64.22 - vaddpd %zmm3, %zmm2, %zmm4 #65.22 - movq 16(%rsp), %rbx #[spill] - movq 24(%rsp), %r13 #[spill] - movq 8(%rsp), %r14 #[spill] - vaddsd %xmm24, %xmm9, %xmm24 #63.22 - vaddsd %xmm19, %xmm31, %xmm19 #64.22 - vaddsd %xmm18, %xmm4, %xmm18 #65.22 - # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.26: # Preds ..B1.25 ..B1.36 - # Execution count [5.00e+00] - xorl %ecx, %ecx #67.9 - lea 1(%r8), %esi #67.9 - movslq %esi, %rsi #67.9 - cmpq %r9, %rsi #67.9 - ja ..B1.32 # Prob 10% #67.9 - # LOE rax rcx rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.27: # Preds ..B1.26 - # Execution count [4.50e+00] - imull 40(%rsp), %edx #57.43[spill] - movslq %r8d, %r8 #67.9 - movslq %edx, %rdx #57.19 - subq %r8, %r9 #67.9 - addq %r8, %rdx #68.21 - lea (%rdi,%rdx,4), %rdx #68.21 - # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.28: # Preds ..B1.30 ..B1.27 - # Execution count [2.50e+01] - movl (%rdx,%rcx,4), %esi #68.21 - lea (%rsi,%rsi,2), %r8d #69.36 - movslq %r8d, %r8 #69.36 - vsubsd 8(%r12,%r8,8), %xmm16, %xmm9 #70.36 - vsubsd (%r12,%r8,8), %xmm15, %xmm8 #69.36 - vsubsd 16(%r12,%r8,8), %xmm17, %xmm28 #71.36 - vmulsd %xmm9, %xmm9, %xmm0 #72.49 - vfmadd231sd %xmm8, %xmm8, %xmm0 #72.63 - vfmadd231sd %xmm28, %xmm28, %xmm0 #72.63 - vcomisd %xmm0, %xmm1 #74.22 - jbe ..B1.30 # Prob 50% #74.22 - # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm0 xmm1 xmm8 xmm9 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 xmm28 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.29: # Preds ..B1.28 - # Execution count [1.25e+01] - vdivsd %xmm0, %xmm11, %xmm3 #75.38 - vmulsd %xmm3, %xmm25, %xmm0 #76.38 - vmulsd %xmm12, %xmm3, %xmm4 #77.54 - vmulsd %xmm3, %xmm0, %xmm2 #76.44 - vmulsd %xmm3, %xmm2, %xmm5 #76.50 - vmulsd %xmm5, %xmm4, %xmm6 #77.61 - vsubsd %xmm22, %xmm5, %xmm7 #77.54 - vmulsd %xmm7, %xmm6, %xmm27 #77.67 - vfmadd231sd %xmm8, %xmm27, %xmm24 #78.17 - vfmadd231sd %xmm9, %xmm27, %xmm19 #79.17 - vfmadd231sd %xmm28, %xmm27, %xmm18 #80.17 - # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.30: # Preds ..B1.29 ..B1.28 - # Execution count [2.50e+01] - incq %rcx #67.9 - cmpq %r9, %rcx #67.9 - jb ..B1.28 # Prob 82% #67.9 - # LOE rax rdx rcx rbx rdi r9 r10 r12 r13 r14 r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.32: # Preds ..B1.30 ..B1.26 ..B1.10 - # Execution count [5.00e+00] - -### } -### } -### -### fx[i] += fix; - - vaddsd (%r14,%rax,8), %xmm24, %xmm0 #84.9 - vmovsd %xmm0, (%r14,%rax,8) #84.9 - lea 1(%r11), %edx #56.32 - -### fy[i] += fiy; - - vaddsd (%r13,%rax,8), %xmm19, %xmm2 #85.9 - vmovsd %xmm2, (%r13,%rax,8) #85.9 - -### fz[i] += fiz; - - vaddsd (%rbx,%rax,8), %xmm18, %xmm3 #86.9 - vmovsd %xmm3, (%rbx,%rax,8) #86.9 - incq %rax #56.5 - cmpq 48(%rsp), %rax #56.5[spill] - jb ..B1.10 # Prob 82% #56.5 - # LOE rax rbx rdi r10 r12 r13 r14 edx xmm1 xmm11 xmm12 xmm22 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.34: # Preds ..B1.32 ..B1.2 - # Execution count [1.00e+00] - -### } -### -### if(profile) { -### LIKWID_MARKER_STOP("force"); -### } -### -### E = getTimeStamp(); - - xorl %eax, %eax #93.9 - vzeroupper #93.9 -..___tag_value_computeForce.13: -# getTimeStamp() - call getTimeStamp #93.9 -..___tag_value_computeForce.14: - # LOE xmm0 -..B1.35: # Preds ..B1.34 - # Execution count [1.00e+00] - -### return E-S; - - vsubsd (%rsp), %xmm0, %xmm0 #94.14[spill] - addq $152, %rsp #94.14 - .cfi_restore 3 - popq %rbx #94.14 - .cfi_restore 15 - popq %r15 #94.14 - .cfi_restore 14 - popq %r14 #94.14 - .cfi_restore 13 - popq %r13 #94.14 - .cfi_restore 12 - popq %r12 #94.14 - movq %rbp, %rsp #94.14 - popq %rbp #94.14 - .cfi_def_cfa 7, 8 - .cfi_restore 6 - ret #94.14 - .cfi_def_cfa 6, 16 - .cfi_escape 0x10, 0x03, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xd8, 0xff, 0xff, 0xff, 0x22 - .cfi_offset 6, -16 - .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xf0, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe8, 0xff, 0xff, 0xff, 0x22 - .cfi_escape 0x10, 0x0f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xff, 0xff, 0xff, 0x22 - # LOE -..B1.36: # Preds ..B1.11 ..B1.16 - # Execution count [4.50e-01]: Infreq - xorl %r8d, %r8d #67.9 - jmp ..B1.26 # Prob 100% #67.9 - # LOE rax rbx rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 -..B1.37: # Preds ..B1.12 - # Execution count [4.50e-01]: Infreq - movl %r9d, %r8d #67.9 - xorl %ecx, %ecx #67.9 - andl $-8, %r8d #67.9 - jmp ..B1.23 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rcx rbx rsi rdi r9 r10 r12 r13 r14 edx r8d r11d xmm1 xmm11 xmm12 xmm15 xmm16 xmm17 xmm18 xmm19 xmm22 xmm24 xmm25 xmm26 zmm10 zmm13 zmm14 zmm20 zmm21 zmm23 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.3: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000,0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.5: - .long 0x00000001,0x00000000,0x00000005,0x00000000,0x00000009,0x00000000,0x0000000d,0x00000000,0x00000000,0x00000000,0x00000004,0x00000000,0x00000008,0x00000000,0x0000000c,0x00000000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000,0x00000002,0x00000000,0x00000006,0x00000000,0x0000000a,0x00000000,0x0000000e,0x00000000 - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 64 -.L_2il0floatpacket.7: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.7,@object - .size .L_2il0floatpacket.7,64 - .align 8 -.L_2il0floatpacket.0: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,8 - .align 8 -.L_2il0floatpacket.1: - .long 0x00000000,0x3fe00000 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,8 - .align 8 -.L_2il0floatpacket.8: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.8,@object - .size .L_2il0floatpacket.8,8 - .data - .section .note.GNU-stack, "" -// -- Begin DWARF2 SEGMENT .eh_frame - .section .eh_frame,"a",@progbits -.eh_frame_seg: - .align 8 -# End diff --git a/asm/avx512/force_soa_geq1200_markers.s b/asm/avx512/force_soa_geq1200_markers.s deleted file mode 100644 index 09b5aba..0000000 --- a/asm/avx512/force_soa_geq1200_markers.s +++ /dev/null @@ -1,475 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; -# mark_description "e=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - pushq %r14 #35.1 - .cfi_def_cfa_offset 32 - .cfi_offset 14, -32 - movl 4(%rsi), %r9d #36.18 - vmovsd 72(%rdi), %xmm2 #38.27 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movq 64(%rsi), %r13 #41.20 - movq 72(%rsi), %r14 #41.45 - movq 80(%rsi), %rdi #41.70 - testl %r9d, %r9d #44.24 - jle ..B1.30 # Prob 50% #44.24 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - xorl %r10d, %r10d #44.5 - movl %r9d, %ecx #44.5 - xorl %r8d, %r8d #44.5 - movl $1, %r11d #44.5 - xorl %eax, %eax #45.17 - shrl $1, %ecx #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] - movq %rax, (%r8,%r13) #45.9 - incq %r10 #44.5 - movq %rax, (%r8,%r14) #46.9 - movq %rax, (%r8,%rdi) #47.9 - movq %rax, 8(%r8,%r13) #45.9 - movq %rax, 8(%r8,%r14) #46.9 - movq %rax, 8(%r8,%rdi) #47.9 - addq $16, %r8 #44.5 - cmpq %rcx, %r10 #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%r10,%r10), %r11d #45.9 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r11), %ecx #44.5 - cmpl %r9d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r11d, %r11 #44.5 - movq %rax, -8(%r13,%r11,8) #45.9 - movq %rax, -8(%r14,%r11,8) #46.9 - movq %rax, -8(%rdi,%r11,8) #47.9 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm15 #38.45 - xorl %r8d, %r8d #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 - vbroadcastsd %xmm15, %zmm16 #38.25 - vbroadcastsd %xmm1, %zmm15 #39.21 - vbroadcastsd %xmm0, %zmm14 #77.41 - movslq %r9d, %r9 #55.5 - xorl %r10d, %r10d #55.5 - movq 24(%rdx), %rcx #57.25 - movq 8(%rdx), %r11 #56.19 - movslq 16(%rdx), %r12 #56.43 - movq 16(%rsi), %rdx #58.25 - movq 24(%rsi), %rax #59.25 - movq 32(%rsi), %rsi #60.25 - shlq $2, %r12 #37.5 - movq %r9, -32(%rsp) #60.25[spill] - movq %rcx, -24(%rsp) #60.25[spill] - movq %r14, -16(%rsp) #60.25[spill] - movq %r13, -8(%rsp) #60.25[spill] - movq %r15, -40(%rsp) #60.25[spill] - movq %rbx, -48(%rsp) #60.25[spill] - vpxord %zmm19, %zmm19, %zmm19 #61.22 - .cfi_offset 3, -80 - .cfi_offset 15, -72 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.9: # Preds ..B1.27 ..B1.8 - # Execution count [5.00e+00] - movq -24(%rsp), %rcx #57.25[spill] - vxorpd %xmm25, %xmm25, %xmm25 #61.22 - vmovapd %xmm25, %xmm20 #62.22 - movl (%rcx,%r10,4), %r13d #57.25 - vmovapd %xmm20, %xmm4 #63.22 - vmovsd (%rdx,%r10,8), %xmm8 #58.25 - vmovsd (%rax,%r10,8), %xmm9 #59.25 - vmovsd (%rsi,%r10,8), %xmm10 #60.25 - testl %r13d, %r13d #67.28 - jle ..B1.27 # Prob 50% #67.28 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vmovaps %zmm19, %zmm13 #61.22 - vmovaps %zmm13, %zmm12 #62.22 - vmovaps %zmm12, %zmm11 #63.22 - cmpl $8, %r13d #67.9 - jl ..B1.32 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r13d #67.9 - jl ..B1.31 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - addq %r11, %rcx #37.5 - movq %rcx, %r9 #67.9 - andq $63, %r9 #67.9 - testl $3, %r9d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r9d, %r9d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r9d, %r9d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r9d #67.9 - addl $64, %r9d #67.9 - shrl $2, %r9d #67.9 - cmpl %r9d, %r13d #67.9 - cmovl %r13d, %r9d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r13d, %ebx #67.9 - subl %r9d, %ebx #67.9 - andl $7, %ebx #67.9 - negl %ebx #67.9 - addl %r13d, %ebx #67.9 - cmpl $1, %r9d #67.9 - jb ..B1.20 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa32 %ymm17, %ymm4 #67.9 - xorl %r15d, %r15d #67.9 - vpbroadcastd %r9d, %ymm3 #67.9 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm9, %zmm5 #59.23 - vbroadcastsd %xmm10, %zmm6 #60.23 - movslq %r9d, %r14 #67.9 - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.18: # Preds ..B1.18 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd %ymm4, %ymm3, %k5 #67.9 - vpaddd %ymm18, %ymm4, %ymm4 #67.9 - vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 - vmovaps %zmm19, %zmm22 #70.36 - addq $8, %r15 #67.9 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm21 #69.36 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm23 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 - vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 - vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 - vsubpd %zmm22, %zmm5, %zmm0 #70.36 - vsubpd %zmm21, %zmm2, %zmm1 #69.36 - vsubpd %zmm23, %zmm6, %zmm21 #71.36 - vmulpd %zmm0, %zmm0, %zmm20 #72.49 - vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 - vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm31 #75.38 - vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 - vfpclasspd $30, %zmm31, %k0 #75.38 - vmovaps %zmm20, %zmm24 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm24, %zmm24, %zmm25 #75.38 - vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 - vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 - vmulpd %zmm15, %zmm31, %zmm26 #76.38 - vmulpd %zmm14, %zmm31, %zmm28 #77.54 - vmulpd %zmm26, %zmm31, %zmm29 #76.44 - vmulpd %zmm29, %zmm31, %zmm27 #76.50 - vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 - vmulpd %zmm28, %zmm27, %zmm30 #77.61 - vmulpd %zmm31, %zmm30, %zmm24 #77.67 - vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 - vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 - vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 - cmpq %r14, %r15 #67.9 - jb ..B1.18 # Prob 82% #67.9 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.19: # Preds ..B1.18 - # Execution count [4.50e+00] - cmpl %r9d, %r13d #67.9 - je ..B1.26 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 - # Execution count [2.50e+01] - lea 8(%r9), %ecx #67.9 - cmpl %ecx, %ebx #67.9 - jl ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.21: # Preds ..B1.20 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm8, %zmm0 #58.23 - vbroadcastsd %xmm9, %zmm1 #59.23 - vbroadcastsd %xmm10, %zmm2 #60.23 - movslq %r9d, %r14 #67.9 - addq %r11, %rcx #37.5 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.22: # Preds ..B1.22 ..B1.21 - # Execution count [2.50e+01] - vpcmpeqb %xmm0, %xmm0, %k2 #70.36 - addl $8, %r9d #67.9 - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #71.36 - vmovdqu (%rcx,%r14,4), %ymm3 #68.21 - addq $8, %r14 #67.9 - vpxord %zmm5, %zmm5, %zmm5 #70.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm6, %zmm6, %zmm6 #71.36 - vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 - vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 - vsubpd %zmm5, %zmm1, %zmm29 #70.36 - vsubpd %zmm4, %zmm0, %zmm28 #69.36 - vsubpd %zmm6, %zmm2, %zmm31 #71.36 - vmulpd %zmm29, %zmm29, %zmm20 #72.49 - vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 - vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm27 #75.38 - vcmppd $1, %zmm16, %zmm20, %k5 #74.22 - vfpclasspd $30, %zmm27, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm20, %zmm20, %zmm21 #75.38 - vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 - vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 - vmulpd %zmm15, %zmm27, %zmm22 #76.38 - vmulpd %zmm14, %zmm27, %zmm24 #77.54 - vmulpd %zmm22, %zmm27, %zmm25 #76.44 - vmulpd %zmm25, %zmm27, %zmm23 #76.50 - vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 - vmulpd %zmm24, %zmm23, %zmm26 #77.61 - vmulpd %zmm27, %zmm26, %zmm30 #77.67 - vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 - vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 - vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 - cmpl %ebx, %r9d #67.9 - jb ..B1.22 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 - # Execution count [5.00e+00] - lea 1(%rbx), %ecx #67.9 - cmpl %r13d, %ecx #67.9 - ja ..B1.26 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.25: # Preds ..B1.24 - # Execution count [2.50e+01] - imulq %r12, %r8 #56.43 - vbroadcastsd %xmm9, %zmm9 #59.23 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm10, %zmm10 #60.23 - subl %ebx, %r13d #67.9 - addq %r11, %r8 #37.5 - vpbroadcastd %r13d, %ymm0 #67.9 - vpcmpgtd %ymm17, %ymm0, %k5 #67.9 - movslq %ebx, %rbx #67.9 - vmovaps %zmm19, %zmm4 #70.36 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm3 #69.36 - vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm5 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 - vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 - vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 - vsubpd %zmm5, %zmm10, %zmm30 #71.36 - vsubpd %zmm4, %zmm9, %zmm28 #70.36 - vsubpd %zmm3, %zmm2, %zmm27 #69.36 - vmulpd %zmm28, %zmm28, %zmm26 #72.49 - vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 - vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 - vrcp14pd %zmm26, %zmm25 #75.38 - vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 - vfpclasspd $30, %zmm25, %k0 #75.38 - vmovaps %zmm26, %zmm6 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm6, %zmm6, %zmm8 #75.38 - vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 - vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 - vmulpd %zmm15, %zmm25, %zmm20 #76.38 - vmulpd %zmm14, %zmm25, %zmm22 #77.54 - vmulpd %zmm20, %zmm25, %zmm23 #76.44 - vmulpd %zmm23, %zmm25, %zmm21 #76.50 - vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 - vmulpd %zmm22, %zmm21, %zmm24 #77.61 - vmulpd %zmm25, %zmm24, %zmm29 #77.67 - vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 - vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 - vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 - # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 - vpermd %zmm11, %zmm10, %zmm0 #63.22 - vpermd %zmm12, %zmm10, %zmm5 #62.22 - vpermd %zmm13, %zmm10, %zmm21 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm12, %zmm5, %zmm12 #62.22 - vaddpd %zmm13, %zmm21, %zmm13 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm12, %zmm6 #62.22 - vpermpd $78, %zmm13, %zmm22 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm6, %zmm12, %zmm8 #62.22 - vaddpd %zmm22, %zmm13, %zmm23 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm8, %zmm9 #62.22 - vpermpd $177, %zmm23, %zmm24 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm9, %zmm8, %zmm20 #62.22 - vaddpd %zmm24, %zmm23, %zmm25 #61.22 - # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.27: # Preds ..B1.26 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - movq -16(%rsp), %rbx #85.9[spill] - movslq %r10d, %r8 #55.32 - incq %r8 #55.32 - vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%r10,8) #84.9 - vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 - vmovsd %xmm1, (%rbx,%r10,8) #85.9 - vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%rdi,%r10,8) #86.9 - incq %r10 #55.5 - cmpq -32(%rsp), %r10 #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.28: # Preds ..B1.27 - # Execution count [9.00e-01] - movq -40(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -48(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r15 -..B1.30: # Preds ..B1.1 ..B1.28 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 14 - popq %r14 #93.12 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 32 - .cfi_offset 3, -80 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -32 - .cfi_offset 15, -72 - # LOE -..B1.31: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r13d, %ebx #67.9 - xorl %r9d, %r9d #67.9 - andl $-8, %ebx #67.9 - jmp ..B1.20 # Prob 100% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.32: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %ebx, %ebx #67.9 - jmp ..B1.24 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.5: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_soa_intel.s b/asm/avx512/force_soa_intel.s deleted file mode 100644 index de4a250..0000000 --- a/asm/avx512/force_soa_intel.s +++ /dev/null @@ -1,541 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -masm=intel -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -q"; -# mark_description "opt-zmm-usage=high -o ICC/force.s"; - .intel_syntax noprefix - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: rdi -# parameter 2: rsi -# parameter 3: rdx -# parameter 4: ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - push r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - push r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - push r14 #35.1 - .cfi_def_cfa_offset 32 - .cfi_offset 14, -32 -# r9d <- atom->Nlocal - mov r9d, DWORD PTR [4+rsi] #36.18 -# xmm2 <- param->cutforce - vmovsd xmm2, QWORD PTR [72+rdi] #38.27 -# xmm1 <- param->sigma6 - vmovsd xmm1, QWORD PTR [8+rdi] #39.23 -# xmm0 <- param->epsilon - vmovsd xmm0, QWORD PTR [rdi] #40.24 -# r13 <- atom->fx - mov r13, QWORD PTR [64+rsi] #41.20 -# r14 <- atom->fy - mov r14, QWORD PTR [72+rsi] #41.45 -# rdi <- atom->fz - mov rdi, QWORD PTR [80+rsi] #41.70 -# atom->Nlocal <= 0 - test r9d, r9d #44.24 - jle ..B1.30 # Prob 50% #44.24 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] -# r10d <- 0 - xor r10d, r10d #44.5 -# ecx <- atom->Nlocal - mov ecx, r9d #44.5 -# r8d <- 0 - xor r8d, r8d #44.5 -# r11d <- 1 - mov r11d, 1 #44.5 -# eax <- 0 - xor eax, eax #45.17 -# ecx <- atom->Nlocal >> 1 - shr ecx, 1 #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] -# fx[i] <- 0 - mov QWORD PTR [r8+r13], rax #45.9 -# i++ - inc r10 #44.5 -# fy[i] <- 0 - mov QWORD PTR [r8+r14], rax #46.9 -# fz[i] <- 0 - mov QWORD PTR [r8+rdi], rax #47.9 -# fx[i] <- 0 - mov QWORD PTR [8+r8+r13], rax #45.9 -# fy[i] <- 0 - mov QWORD PTR [8+r8+r14], rax #46.9 -# fz[i] <- 0 - mov QWORD PTR [8+r8+rdi], rax #47.9 -# i++ - add r8, 16 #44.5 -# i < Nlocal - cmp r10, rcx #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] -# r11d <- i * 2 + 1 - lea r11d, DWORD PTR [1+r10+r10] #45.9 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] -# r11d <- i * 2 - lea ecx, DWORD PTR [-1+r11] #44.5 -# i < Nlocal - cmp ecx, r9d #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] -# r11 <- i * 2 - movsxd r11, r11d #44.5 -# fx[i] <- 0 - mov QWORD PTR [-8+r13+r11*8], rax #45.9 -# fy[i] <- 0 - mov QWORD PTR [-8+r14+r11*8], rax #46.9 -# fz[i] <- 0 - mov QWORD PTR [-8+rdi+r11*8], rax #47.9 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] -# xmm15 <- cutforcesq - vmulsd xmm15, xmm2, xmm2 #38.45 -# r8d <- 0 - xor r8d, r8d #55.15 -# ymm18 <- 8 - vmovdqu32 ymm18, YMMWORD PTR .L_2il0floatpacket.0[rip] #67.9 -# xmm0 <- 48 * sr6 * epsilon - vmulsd xmm0, xmm0, QWORD PTR .L_2il0floatpacket.3[rip] #77.41 -# ymm17 <- [0..7] - vmovdqu32 ymm17, YMMWORD PTR .L_2il0floatpacket.1[rip] #67.9 -# zmm7 <- 0.5 - vmovups zmm7, ZMMWORD PTR .L_2il0floatpacket.4[rip] #77.54 -# zmm16 <- cutforcesq - vbroadcastsd zmm16, xmm15 #38.25 -# zmm15 <- param->sigma6 - vbroadcastsd zmm15, xmm1 #39.21 -# zmm16 <- 48 * sr6 * epsilon - vbroadcastsd zmm14, xmm0 #77.41 -# r9 <- atom->Nlocal - movsxd r9, r9d #55.5 -# r10d <- 0 (i) - xor r10d, r10d #55.5 -# rcx <- neighbor->numneigh - mov rcx, QWORD PTR [24+rdx] #57.25 -# r11 <- neighbor->neighbors - mov r11, QWORD PTR [8+rdx] #56.19 -# r12 <- neighbor->maxneighs - movsxd r12, DWORD PTR [16+rdx] #56.43 -# rdx <- atom->x - mov rdx, QWORD PTR [16+rsi] #58.25 -# rax <- atom->y - mov rax, QWORD PTR [24+rsi] #59.25 -# rsi <- atom->z - mov rsi, QWORD PTR [32+rsi] #60.25 -# r12 <- neighbor->maxneighs * 4 - shl r12, 2 #37.5 -# [-32+rsp] <- atom->Nlocal - mov QWORD PTR [-32+rsp], r9 #60.25[spill] -# [-24+rsp] <- neighbor->numneigh - mov QWORD PTR [-24+rsp], rcx #60.25[spill] -# [-16+rsp] <- atom->fy - mov QWORD PTR [-16+rsp], r14 #60.25[spill] -# [-8+rsp] <- atom->fx - mov QWORD PTR [-8+rsp], r13 #60.25[spill] -# [-40+rsp] <- r15 - mov QWORD PTR [-40+rsp], r15 #60.25[spill] -# [-48+rsp] <- rbx - mov QWORD PTR [-48+rsp], rbx #60.25[spill] -# zmm19 <- 0 - vpxord zmm19, zmm19, zmm19 #61.22 - .cfi_offset 3, -80 - .cfi_offset 15, -72 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.9: # Preds ..B1.27 ..B1.8 - # Execution count [5.00e+00] -# rcx <- neighbor->numneigh - mov rcx, QWORD PTR [-24+rsp] #57.25[spill] -# xmm25 <- 0 - vxorpd xmm25, xmm25, xmm25 #61.22 -# xmm20 <- 0 - vmovapd xmm20, xmm25 #62.22 -# r13d <- neighbor->numneigh[i] (numneighs) - mov r13d, DWORD PTR [rcx+r10*4] #57.25 -# xmm4 <- 0 - vmovapd xmm4, xmm20 #63.22 -# xmm8 <- atom->x[i] - vmovsd xmm8, QWORD PTR [rdx+r10*8] #58.25 -# xmm9 <- atom->y[i] - vmovsd xmm9, QWORD PTR [rax+r10*8] #59.25 -# xmm9 <- atom->z[i] - vmovsd xmm10, QWORD PTR [rsi+r10*8] #60.25 -# numneighs <= 0 - test r13d, r13d #67.28 - jle ..B1.27 # Prob 50% #67.28 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] -# zmm13 <- 0 - vmovaps zmm13, zmm19 #61.22 -# zmm12 <- 0 - vmovaps zmm12, zmm13 #62.22 -# zmm11 <- 0 - vmovaps zmm11, zmm12 #63.22 -# numneighs < 8 - cmp r13d, 8 #67.9 - jl ..B1.32 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] -# numneighs < 1200 - cmp r13d, 1200 #67.9 - jl ..B1.31 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - mov rcx, r12 #56.43 - imul rcx, r8 #56.43 - add rcx, r11 #37.5 - mov r9, rcx #67.9 - and r9, 63 #67.9 - test r9d, 3 #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xor r9d, r9d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - test r9d, r9d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - neg r9d #67.9 - add r9d, 64 #67.9 - shr r9d, 2 #67.9 - cmp r13d, r9d #67.9 - cmovl r9d, r13d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - mov ebx, r13d #67.9 - sub ebx, r9d #67.9 - and ebx, 7 #67.9 - neg ebx #67.9 - add ebx, r13d #67.9 - cmp r9d, 1 #67.9 - jb ..B1.20 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa32 ymm4, ymm17 #67.9 - xor r15d, r15d #67.9 - vpbroadcastd ymm3, r9d #67.9 - vbroadcastsd zmm2, xmm8 #58.23 - vbroadcastsd zmm5, xmm9 #59.23 - vbroadcastsd zmm6, xmm10 #60.23 - movsxd r14, r9d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.18: # Preds ..B1.18 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd k5, ymm3, ymm4 #67.9 - vpaddd ymm4, ymm4, ymm18 #67.9 - vmovdqu32 ymm20{k5}{z}, YMMWORD PTR [rcx+r15*4] #68.21 - vmovaps zmm22, zmm19 #70.36 - add r15, 8 #67.9 - kmovw k2, k5 #70.36 - vmovaps zmm21, zmm19 #69.36 - kmovw k1, k5 #69.36 - vmovaps zmm23, zmm19 #71.36 - kmovw k3, k5 #71.36 - vgatherdpd zmm23{k3}, QWORD PTR [rsi+ymm20*8] #71.36 - vgatherdpd zmm22{k2}, QWORD PTR [rax+ymm20*8] #70.36 - vgatherdpd zmm21{k1}, QWORD PTR [rdx+ymm20*8] #69.36 - vsubpd zmm0, zmm5, zmm22 #70.36 - vsubpd zmm1, zmm2, zmm21 #69.36 - vsubpd zmm21, zmm6, zmm23 #71.36 - vmulpd zmm20, zmm0, zmm0 #72.49 - vfmadd231pd zmm20, zmm1, zmm1 #72.49 - vfmadd231pd zmm20, zmm21, zmm21 #72.63 - vrcp14pd zmm31, zmm20 #75.38 - vcmppd k6{k5}, zmm20, zmm16, 1 #74.22 - vfpclasspd k0, zmm31, 30 #75.38 - vmovaps zmm24, zmm20 #75.38 - vfnmadd213pd zmm24, zmm31, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 - knotw k4, k0 #75.38 - vmulpd zmm25, zmm24, zmm24 #75.38 - vfmadd213pd zmm31{k4}, zmm24, zmm31 #75.38 - vfmadd213pd zmm31{k4}, zmm25, zmm31 #75.38 - vmulpd zmm26, zmm31, zmm15 #76.38 - vmulpd zmm28, zmm31, zmm14 #77.54 - vmulpd zmm29, zmm31, zmm26 #76.44 - vmulpd zmm27, zmm31, zmm29 #76.50 - vfmsub213pd zmm31, zmm29, zmm7 #77.54 - vmulpd zmm30, zmm27, zmm28 #77.61 - vmulpd zmm24, zmm30, zmm31 #77.67 - vfmadd231pd zmm13{k6}, zmm24, zmm1 #78.17 - vfmadd231pd zmm12{k6}, zmm24, zmm0 #79.17 - vfmadd231pd zmm11{k6}, zmm24, zmm21 #80.17 - cmp r15, r14 #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.19: # Preds ..B1.18 - # Execution count [4.50e+00] - cmp r13d, r9d #67.9 - je ..B1.26 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 - # Execution count [2.50e+01] - lea ecx, DWORD PTR [8+r9] #67.9 - cmp ebx, ecx #67.9 - jl ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.21: # Preds ..B1.20 - # Execution count [4.50e+00] - mov rcx, r12 #56.43 - imul rcx, r8 #56.43 - vbroadcastsd zmm0, xmm8 #58.23 - vbroadcastsd zmm1, xmm9 #59.23 - vbroadcastsd zmm2, xmm10 #60.23 - movsxd r14, r9d #67.9 - add rcx, r11 #37.5 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.22: # Preds ..B1.22 ..B1.21 - # Execution count [2.50e+01] - vpcmpeqb k2, xmm0, xmm0 #70.36 - add r9d, 8 #67.9 - vpcmpeqb k1, xmm0, xmm0 #69.36 - vpcmpeqb k3, xmm0, xmm0 #71.36 - vmovdqu ymm3, YMMWORD PTR [rcx+r14*4] #68.21 - add r14, 8 #67.9 - vpxord zmm5, zmm5, zmm5 #70.36 - vpxord zmm4, zmm4, zmm4 #69.36 - vpxord zmm6, zmm6, zmm6 #71.36 - vgatherdpd zmm5{k2}, QWORD PTR [rax+ymm3*8] #70.36 - vgatherdpd zmm4{k1}, QWORD PTR [rdx+ymm3*8] #69.36 - vgatherdpd zmm6{k3}, QWORD PTR [rsi+ymm3*8] #71.36 - vsubpd zmm29, zmm1, zmm5 #70.36 - vsubpd zmm28, zmm0, zmm4 #69.36 - vsubpd zmm31, zmm2, zmm6 #71.36 - vmulpd zmm20, zmm29, zmm29 #72.49 - vfmadd231pd zmm20, zmm28, zmm28 #72.49 - vfmadd231pd zmm20, zmm31, zmm31 #72.63 - vrcp14pd zmm27, zmm20 #75.38 - vcmppd k5, zmm20, zmm16, 1 #74.22 - vfpclasspd k0, zmm27, 30 #75.38 - vfnmadd213pd zmm20, zmm27, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 - knotw k4, k0 #75.38 - vmulpd zmm21, zmm20, zmm20 #75.38 - vfmadd213pd zmm27{k4}, zmm20, zmm27 #75.38 - vfmadd213pd zmm27{k4}, zmm21, zmm27 #75.38 - vmulpd zmm22, zmm27, zmm15 #76.38 - vmulpd zmm24, zmm27, zmm14 #77.54 - vmulpd zmm25, zmm27, zmm22 #76.44 - vmulpd zmm23, zmm27, zmm25 #76.50 - vfmsub213pd zmm27, zmm25, zmm7 #77.54 - vmulpd zmm26, zmm23, zmm24 #77.61 - vmulpd zmm30, zmm26, zmm27 #77.67 - vfmadd231pd zmm13{k5}, zmm30, zmm28 #78.17 - vfmadd231pd zmm12{k5}, zmm30, zmm29 #79.17 - vfmadd231pd zmm11{k5}, zmm30, zmm31 #80.17 - cmp r9d, ebx #67.9 - jb ..B1.22 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 - # Execution count [5.00e+00] - lea ecx, DWORD PTR [1+rbx] #67.9 - cmp ecx, r13d #67.9 - ja ..B1.26 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.25: # Preds ..B1.24 - # Execution count [2.50e+01] - imul r8, r12 #56.43 - vbroadcastsd zmm9, xmm9 #59.23 - vbroadcastsd zmm2, xmm8 #58.23 - vbroadcastsd zmm10, xmm10 #60.23 - sub r13d, ebx #67.9 - add r8, r11 #37.5 - vpbroadcastd ymm0, r13d #67.9 - vpcmpgtd k5, ymm0, ymm17 #67.9 - movsxd rbx, ebx #67.9 - vmovaps zmm4, zmm19 #70.36 - kmovw k2, k5 #70.36 - vmovaps zmm3, zmm19 #69.36 - vmovdqu32 ymm1{k5}{z}, YMMWORD PTR [r8+rbx*4] #68.21 - kmovw k1, k5 #69.36 - vmovaps zmm5, zmm19 #71.36 - kmovw k3, k5 #71.36 - vgatherdpd zmm5{k3}, QWORD PTR [rsi+ymm1*8] #71.36 - vgatherdpd zmm4{k2}, QWORD PTR [rax+ymm1*8] #70.36 - vgatherdpd zmm3{k1}, QWORD PTR [rdx+ymm1*8] #69.36 - vsubpd zmm30, zmm10, zmm5 #71.36 - vsubpd zmm28, zmm9, zmm4 #70.36 - vsubpd zmm27, zmm2, zmm3 #69.36 - vmulpd zmm26, zmm28, zmm28 #72.49 - vfmadd231pd zmm26, zmm27, zmm27 #72.49 - vfmadd231pd zmm26, zmm30, zmm30 #72.63 - vrcp14pd zmm25, zmm26 #75.38 - vcmppd k6{k5}, zmm26, zmm16, 1 #74.22 - vfpclasspd k0, zmm25, 30 #75.38 - vmovaps zmm6, zmm26 #75.38 - vfnmadd213pd zmm6, zmm25, QWORD BCST .L_2il0floatpacket.5[rip] #75.38 - knotw k4, k0 #75.38 - vmulpd zmm8, zmm6, zmm6 #75.38 - vfmadd213pd zmm25{k4}, zmm6, zmm25 #75.38 - vfmadd213pd zmm25{k4}, zmm8, zmm25 #75.38 - vmulpd zmm20, zmm25, zmm15 #76.38 - vmulpd zmm22, zmm25, zmm14 #77.54 - vmulpd zmm23, zmm25, zmm20 #76.44 - vmulpd zmm21, zmm25, zmm23 #76.50 - vfmsub213pd zmm25, zmm23, zmm7 #77.54 - vmulpd zmm24, zmm21, zmm22 #77.61 - vmulpd zmm29, zmm24, zmm25 #77.67 - vfmadd231pd zmm13{k6}, zmm29, zmm27 #78.17 - vfmadd231pd zmm12{k6}, zmm29, zmm28 #79.17 - vfmadd231pd zmm11{k6}, zmm29, zmm30 #80.17 - # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 - # Execution count [4.50e+00] - vmovups zmm10, ZMMWORD PTR .L_2il0floatpacket.6[rip] #63.22 - vpermd zmm0, zmm10, zmm11 #63.22 - vpermd zmm5, zmm10, zmm12 #62.22 - vpermd zmm21, zmm10, zmm13 #61.22 - vaddpd zmm11, zmm0, zmm11 #63.22 - vaddpd zmm12, zmm5, zmm12 #62.22 - vaddpd zmm13, zmm21, zmm13 #61.22 - vpermpd zmm1, zmm11, 78 #63.22 - vpermpd zmm6, zmm12, 78 #62.22 - vpermpd zmm22, zmm13, 78 #61.22 - vaddpd zmm2, zmm11, zmm1 #63.22 - vaddpd zmm8, zmm12, zmm6 #62.22 - vaddpd zmm23, zmm13, zmm22 #61.22 - vpermpd zmm3, zmm2, 177 #63.22 - vpermpd zmm9, zmm8, 177 #62.22 - vpermpd zmm24, zmm23, 177 #61.22 - vaddpd zmm4, zmm2, zmm3 #63.22 - vaddpd zmm20, zmm8, zmm9 #62.22 - vaddpd zmm25, zmm23, zmm24 #61.22 - # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.27: # Preds ..B1.26 ..B1.9 - # Execution count [5.00e+00] - mov rcx, QWORD PTR [-8+rsp] #84.9[spill] - mov rbx, QWORD PTR [-16+rsp] #85.9[spill] - movsxd r8, r10d #55.32 - inc r8 #55.32 - vaddsd xmm0, xmm25, QWORD PTR [rcx+r10*8] #84.9 - vmovsd QWORD PTR [rcx+r10*8], xmm0 #84.9 - vaddsd xmm1, xmm20, QWORD PTR [rbx+r10*8] #85.9 - vmovsd QWORD PTR [rbx+r10*8], xmm1 #85.9 - vaddsd xmm2, xmm4, QWORD PTR [rdi+r10*8] #86.9 - vmovsd QWORD PTR [rdi+r10*8], xmm2 #86.9 - inc r10 #55.5 - cmp r10, QWORD PTR [-32+rsp] #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.28: # Preds ..B1.27 - # Execution count [9.00e-01] - mov r15, QWORD PTR [-40+rsp] #[spill] - .cfi_restore 15 - mov rbx, QWORD PTR [-48+rsp] #[spill] - .cfi_restore 3 - # LOE rbx rbp r15 -..B1.30: # Preds ..B1.1 ..B1.28 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd xmm0, xmm0, xmm0 #93.12 - .cfi_restore 14 - pop r14 #93.12 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - pop r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - pop r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 32 - .cfi_offset 3, -80 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -32 - .cfi_offset 15, -72 - # LOE -..B1.31: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - mov ebx, r13d #67.9 - xor r9d, r9d #67.9 - and ebx, -8 #67.9 - jmp ..B1.20 # Prob 100% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.32: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xor ebx, ebx #67.9 - jmp ..B1.24 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.5: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_soa_lt1200_markers.s b/asm/avx512/force_soa_lt1200_markers.s deleted file mode 100644 index d4c6367..0000000 --- a/asm/avx512/force_soa_lt1200_markers.s +++ /dev/null @@ -1,475 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; -# mark_description "e=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - pushq %r14 #35.1 - .cfi_def_cfa_offset 32 - .cfi_offset 14, -32 - movl 4(%rsi), %r9d #36.18 - vmovsd 72(%rdi), %xmm2 #38.27 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movq 64(%rsi), %r13 #41.20 - movq 72(%rsi), %r14 #41.45 - movq 80(%rsi), %rdi #41.70 - testl %r9d, %r9d #44.24 - jle ..B1.30 # Prob 50% #44.24 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - xorl %r10d, %r10d #44.5 - movl %r9d, %ecx #44.5 - xorl %r8d, %r8d #44.5 - movl $1, %r11d #44.5 - xorl %eax, %eax #45.17 - shrl $1, %ecx #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] - movq %rax, (%r8,%r13) #45.9 - incq %r10 #44.5 - movq %rax, (%r8,%r14) #46.9 - movq %rax, (%r8,%rdi) #47.9 - movq %rax, 8(%r8,%r13) #45.9 - movq %rax, 8(%r8,%r14) #46.9 - movq %rax, 8(%r8,%rdi) #47.9 - addq $16, %r8 #44.5 - cmpq %rcx, %r10 #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%r10,%r10), %r11d #45.9 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r11), %ecx #44.5 - cmpl %r9d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r11d, %r11 #44.5 - movq %rax, -8(%r13,%r11,8) #45.9 - movq %rax, -8(%r14,%r11,8) #46.9 - movq %rax, -8(%rdi,%r11,8) #47.9 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm15 #38.45 - xorl %r8d, %r8d #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 - vbroadcastsd %xmm15, %zmm16 #38.25 - vbroadcastsd %xmm1, %zmm15 #39.21 - vbroadcastsd %xmm0, %zmm14 #77.41 - movslq %r9d, %r9 #55.5 - xorl %r10d, %r10d #55.5 - movq 24(%rdx), %rcx #57.25 - movq 8(%rdx), %r11 #56.19 - movslq 16(%rdx), %r12 #56.43 - movq 16(%rsi), %rdx #58.25 - movq 24(%rsi), %rax #59.25 - movq 32(%rsi), %rsi #60.25 - shlq $2, %r12 #37.5 - movq %r9, -32(%rsp) #60.25[spill] - movq %rcx, -24(%rsp) #60.25[spill] - movq %r14, -16(%rsp) #60.25[spill] - movq %r13, -8(%rsp) #60.25[spill] - movq %r15, -40(%rsp) #60.25[spill] - movq %rbx, -48(%rsp) #60.25[spill] - vpxord %zmm19, %zmm19, %zmm19 #61.22 - .cfi_offset 3, -80 - .cfi_offset 15, -72 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.9: # Preds ..B1.27 ..B1.8 - # Execution count [5.00e+00] - movq -24(%rsp), %rcx #57.25[spill] - vxorpd %xmm25, %xmm25, %xmm25 #61.22 - vmovapd %xmm25, %xmm20 #62.22 - movl (%rcx,%r10,4), %r13d #57.25 - vmovapd %xmm20, %xmm4 #63.22 - vmovsd (%rdx,%r10,8), %xmm8 #58.25 - vmovsd (%rax,%r10,8), %xmm9 #59.25 - vmovsd (%rsi,%r10,8), %xmm10 #60.25 - testl %r13d, %r13d #67.28 - jle ..B1.27 # Prob 50% #67.28 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vmovaps %zmm19, %zmm13 #61.22 - vmovaps %zmm13, %zmm12 #62.22 - vmovaps %zmm12, %zmm11 #63.22 - cmpl $8, %r13d #67.9 - jl ..B1.32 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r13d #67.9 - jl ..B1.31 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - addq %r11, %rcx #37.5 - movq %rcx, %r9 #67.9 - andq $63, %r9 #67.9 - testl $3, %r9d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r9d, %r9d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r9d, %r9d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r9d #67.9 - addl $64, %r9d #67.9 - shrl $2, %r9d #67.9 - cmpl %r9d, %r13d #67.9 - cmovl %r13d, %r9d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r13d, %ebx #67.9 - subl %r9d, %ebx #67.9 - andl $7, %ebx #67.9 - negl %ebx #67.9 - addl %r13d, %ebx #67.9 - cmpl $1, %r9d #67.9 - jb ..B1.20 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa32 %ymm17, %ymm4 #67.9 - xorl %r15d, %r15d #67.9 - vpbroadcastd %r9d, %ymm3 #67.9 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm9, %zmm5 #59.23 - vbroadcastsd %xmm10, %zmm6 #60.23 - movslq %r9d, %r14 #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.18: # Preds ..B1.18 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd %ymm4, %ymm3, %k5 #67.9 - vpaddd %ymm18, %ymm4, %ymm4 #67.9 - vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 - vmovaps %zmm19, %zmm22 #70.36 - addq $8, %r15 #67.9 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm21 #69.36 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm23 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 - vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 - vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 - vsubpd %zmm22, %zmm5, %zmm0 #70.36 - vsubpd %zmm21, %zmm2, %zmm1 #69.36 - vsubpd %zmm23, %zmm6, %zmm21 #71.36 - vmulpd %zmm0, %zmm0, %zmm20 #72.49 - vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 - vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm31 #75.38 - vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 - vfpclasspd $30, %zmm31, %k0 #75.38 - vmovaps %zmm20, %zmm24 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm24, %zmm24, %zmm25 #75.38 - vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 - vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 - vmulpd %zmm15, %zmm31, %zmm26 #76.38 - vmulpd %zmm14, %zmm31, %zmm28 #77.54 - vmulpd %zmm26, %zmm31, %zmm29 #76.44 - vmulpd %zmm29, %zmm31, %zmm27 #76.50 - vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 - vmulpd %zmm28, %zmm27, %zmm30 #77.61 - vmulpd %zmm31, %zmm30, %zmm24 #77.67 - vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 - vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 - vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 - cmpq %r14, %r15 #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.19: # Preds ..B1.18 - # Execution count [4.50e+00] - cmpl %r9d, %r13d #67.9 - je ..B1.26 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 - # Execution count [2.50e+01] - lea 8(%r9), %ecx #67.9 - cmpl %ecx, %ebx #67.9 - jl ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.21: # Preds ..B1.20 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm8, %zmm0 #58.23 - vbroadcastsd %xmm9, %zmm1 #59.23 - vbroadcastsd %xmm10, %zmm2 #60.23 - movslq %r9d, %r14 #67.9 - addq %r11, %rcx #37.5 - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.22: # Preds ..B1.22 ..B1.21 - # Execution count [2.50e+01] - vpcmpeqb %xmm0, %xmm0, %k2 #70.36 - addl $8, %r9d #67.9 - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #71.36 - vmovdqu (%rcx,%r14,4), %ymm3 #68.21 - addq $8, %r14 #67.9 - vpxord %zmm5, %zmm5, %zmm5 #70.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm6, %zmm6, %zmm6 #71.36 - vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 - vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 - vsubpd %zmm5, %zmm1, %zmm29 #70.36 - vsubpd %zmm4, %zmm0, %zmm28 #69.36 - vsubpd %zmm6, %zmm2, %zmm31 #71.36 - vmulpd %zmm29, %zmm29, %zmm20 #72.49 - vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 - vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm27 #75.38 - vcmppd $1, %zmm16, %zmm20, %k5 #74.22 - vfpclasspd $30, %zmm27, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm20, %zmm20, %zmm21 #75.38 - vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 - vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 - vmulpd %zmm15, %zmm27, %zmm22 #76.38 - vmulpd %zmm14, %zmm27, %zmm24 #77.54 - vmulpd %zmm22, %zmm27, %zmm25 #76.44 - vmulpd %zmm25, %zmm27, %zmm23 #76.50 - vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 - vmulpd %zmm24, %zmm23, %zmm26 #77.61 - vmulpd %zmm27, %zmm26, %zmm30 #77.67 - vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 - vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 - vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 - cmpl %ebx, %r9d #67.9 - jb ..B1.22 # Prob 82% #67.9 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 - # Execution count [5.00e+00] - lea 1(%rbx), %ecx #67.9 - cmpl %r13d, %ecx #67.9 - ja ..B1.26 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.25: # Preds ..B1.24 - # Execution count [2.50e+01] - imulq %r12, %r8 #56.43 - vbroadcastsd %xmm9, %zmm9 #59.23 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm10, %zmm10 #60.23 - subl %ebx, %r13d #67.9 - addq %r11, %r8 #37.5 - vpbroadcastd %r13d, %ymm0 #67.9 - vpcmpgtd %ymm17, %ymm0, %k5 #67.9 - movslq %ebx, %rbx #67.9 - vmovaps %zmm19, %zmm4 #70.36 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm3 #69.36 - vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm5 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 - vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 - vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 - vsubpd %zmm5, %zmm10, %zmm30 #71.36 - vsubpd %zmm4, %zmm9, %zmm28 #70.36 - vsubpd %zmm3, %zmm2, %zmm27 #69.36 - vmulpd %zmm28, %zmm28, %zmm26 #72.49 - vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 - vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 - vrcp14pd %zmm26, %zmm25 #75.38 - vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 - vfpclasspd $30, %zmm25, %k0 #75.38 - vmovaps %zmm26, %zmm6 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm6, %zmm6, %zmm8 #75.38 - vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 - vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 - vmulpd %zmm15, %zmm25, %zmm20 #76.38 - vmulpd %zmm14, %zmm25, %zmm22 #77.54 - vmulpd %zmm20, %zmm25, %zmm23 #76.44 - vmulpd %zmm23, %zmm25, %zmm21 #76.50 - vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 - vmulpd %zmm22, %zmm21, %zmm24 #77.61 - vmulpd %zmm25, %zmm24, %zmm29 #77.67 - vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 - vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 - vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 - # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 - vpermd %zmm11, %zmm10, %zmm0 #63.22 - vpermd %zmm12, %zmm10, %zmm5 #62.22 - vpermd %zmm13, %zmm10, %zmm21 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm12, %zmm5, %zmm12 #62.22 - vaddpd %zmm13, %zmm21, %zmm13 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm12, %zmm6 #62.22 - vpermpd $78, %zmm13, %zmm22 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm6, %zmm12, %zmm8 #62.22 - vaddpd %zmm22, %zmm13, %zmm23 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm8, %zmm9 #62.22 - vpermpd $177, %zmm23, %zmm24 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm9, %zmm8, %zmm20 #62.22 - vaddpd %zmm24, %zmm23, %zmm25 #61.22 - # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.27: # Preds ..B1.26 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - movq -16(%rsp), %rbx #85.9[spill] - movslq %r10d, %r8 #55.32 - incq %r8 #55.32 - vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%r10,8) #84.9 - vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 - vmovsd %xmm1, (%rbx,%r10,8) #85.9 - vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%rdi,%r10,8) #86.9 - incq %r10 #55.5 - cmpq -32(%rsp), %r10 #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.28: # Preds ..B1.27 - # Execution count [9.00e-01] - movq -40(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -48(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r15 -..B1.30: # Preds ..B1.1 ..B1.28 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 14 - popq %r14 #93.12 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 32 - .cfi_offset 3, -80 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -32 - .cfi_offset 15, -72 - # LOE -..B1.31: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r13d, %ebx #67.9 - xorl %r9d, %r9d #67.9 - andl $-8, %ebx #67.9 - jmp ..B1.20 # Prob 100% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.32: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %ebx, %ebx #67.9 - jmp ..B1.24 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.5: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/asm/avx512/force_soa_lt8_markers.s b/asm/avx512/force_soa_lt8_markers.s deleted file mode 100644 index e3cdc87..0000000 --- a/asm/avx512/force_soa_lt8_markers.s +++ /dev/null @@ -1,475 +0,0 @@ -# mark_description "Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.0.5.281 Build 20190815"; -# mark_description "-I./src/includes -S -D_GNU_SOURCE -DPRECISION=2 -DALIGNMENT=64 -restrict -Ofast -xCORE-AVX512 -qopt-zmm-usag"; -# mark_description "e=high -o ICC/force.s"; - .file "force.c" - .text -..TXTST0: -.L_2__routine_start_computeForce_0: -# -- Begin computeForce - .text -# mark_begin; - .align 16,0x90 - .globl computeForce -# --- computeForce(Parameter *, Atom *, Neighbor *, int) -computeForce: -# parameter 1: %rdi -# parameter 2: %rsi -# parameter 3: %rdx -# parameter 4: %ecx -..B1.1: # Preds ..B1.0 - # Execution count [1.00e+00] - .cfi_startproc -..___tag_value_computeForce.1: -..L2: - #35.1 - pushq %r12 #35.1 - .cfi_def_cfa_offset 16 - .cfi_offset 12, -16 - pushq %r13 #35.1 - .cfi_def_cfa_offset 24 - .cfi_offset 13, -24 - pushq %r14 #35.1 - .cfi_def_cfa_offset 32 - .cfi_offset 14, -32 - movl 4(%rsi), %r9d #36.18 - vmovsd 72(%rdi), %xmm2 #38.27 - vmovsd 8(%rdi), %xmm1 #39.23 - vmovsd (%rdi), %xmm0 #40.24 - movq 64(%rsi), %r13 #41.20 - movq 72(%rsi), %r14 #41.45 - movq 80(%rsi), %rdi #41.70 - testl %r9d, %r9d #44.24 - jle ..B1.30 # Prob 50% #44.24 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.2: # Preds ..B1.1 - # Execution count [1.00e+00] - xorl %r10d, %r10d #44.5 - movl %r9d, %ecx #44.5 - xorl %r8d, %r8d #44.5 - movl $1, %r11d #44.5 - xorl %eax, %eax #45.17 - shrl $1, %ecx #44.5 - je ..B1.6 # Prob 9% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.4: # Preds ..B1.2 ..B1.4 - # Execution count [2.50e+00] - movq %rax, (%r8,%r13) #45.9 - incq %r10 #44.5 - movq %rax, (%r8,%r14) #46.9 - movq %rax, (%r8,%rdi) #47.9 - movq %rax, 8(%r8,%r13) #45.9 - movq %rax, 8(%r8,%r14) #46.9 - movq %rax, 8(%r8,%rdi) #47.9 - addq $16, %r8 #44.5 - cmpq %rcx, %r10 #44.5 - jb ..B1.4 # Prob 63% #44.5 - # LOE rax rdx rcx rbx rbp rsi rdi r8 r10 r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.5: # Preds ..B1.4 - # Execution count [9.00e-01] - lea 1(%r10,%r10), %r11d #45.9 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.6: # Preds ..B1.2 ..B1.5 - # Execution count [1.00e+00] - lea -1(%r11), %ecx #44.5 - cmpl %r9d, %ecx #44.5 - jae ..B1.8 # Prob 9% #44.5 - # LOE rax rdx rbx rbp rsi rdi r13 r14 r15 r9d r11d xmm0 xmm1 xmm2 -..B1.7: # Preds ..B1.6 - # Execution count [9.00e-01] - movslq %r11d, %r11 #44.5 - movq %rax, -8(%r13,%r11,8) #45.9 - movq %rax, -8(%r14,%r11,8) #46.9 - movq %rax, -8(%rdi,%r11,8) #47.9 - # LOE rdx rbx rbp rsi rdi r13 r14 r15 r9d xmm0 xmm1 xmm2 -..B1.8: # Preds ..B1.6 ..B1.7 - # Execution count [9.00e-01] - vmulsd %xmm2, %xmm2, %xmm15 #38.45 - xorl %r8d, %r8d #55.15 - vmovdqu32 .L_2il0floatpacket.0(%rip), %ymm18 #67.9 - vmulsd .L_2il0floatpacket.3(%rip), %xmm0, %xmm0 #77.41 - vmovdqu32 .L_2il0floatpacket.1(%rip), %ymm17 #67.9 - vmovups .L_2il0floatpacket.4(%rip), %zmm7 #77.54 - vbroadcastsd %xmm15, %zmm16 #38.25 - vbroadcastsd %xmm1, %zmm15 #39.21 - vbroadcastsd %xmm0, %zmm14 #77.41 - movslq %r9d, %r9 #55.5 - xorl %r10d, %r10d #55.5 - movq 24(%rdx), %rcx #57.25 - movq 8(%rdx), %r11 #56.19 - movslq 16(%rdx), %r12 #56.43 - movq 16(%rsi), %rdx #58.25 - movq 24(%rsi), %rax #59.25 - movq 32(%rsi), %rsi #60.25 - shlq $2, %r12 #37.5 - movq %r9, -32(%rsp) #60.25[spill] - movq %rcx, -24(%rsp) #60.25[spill] - movq %r14, -16(%rsp) #60.25[spill] - movq %r13, -8(%rsp) #60.25[spill] - movq %r15, -40(%rsp) #60.25[spill] - movq %rbx, -48(%rsp) #60.25[spill] - vpxord %zmm19, %zmm19, %zmm19 #61.22 - .cfi_offset 3, -80 - .cfi_offset 15, -72 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.9: # Preds ..B1.27 ..B1.8 - # Execution count [5.00e+00] - movq -24(%rsp), %rcx #57.25[spill] - vxorpd %xmm25, %xmm25, %xmm25 #61.22 - vmovapd %xmm25, %xmm20 #62.22 - movl (%rcx,%r10,4), %r13d #57.25 - vmovapd %xmm20, %xmm4 #63.22 - vmovsd (%rdx,%r10,8), %xmm8 #58.25 - vmovsd (%rax,%r10,8), %xmm9 #59.25 - vmovsd (%rsi,%r10,8), %xmm10 #60.25 - testl %r13d, %r13d #67.28 - jle ..B1.27 # Prob 50% #67.28 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm4 xmm8 xmm9 xmm10 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.10: # Preds ..B1.9 - # Execution count [4.50e+00] - vmovaps %zmm19, %zmm13 #61.22 - vmovaps %zmm13, %zmm12 #62.22 - vmovaps %zmm12, %zmm11 #63.22 - cmpl $8, %r13d #67.9 - jl ..B1.32 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.11: # Preds ..B1.10 - # Execution count [4.50e+00] - cmpl $1200, %r13d #67.9 - jl ..B1.31 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.12: # Preds ..B1.11 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - addq %r11, %rcx #37.5 - movq %rcx, %r9 #67.9 - andq $63, %r9 #67.9 - testl $3, %r9d #67.9 - je ..B1.14 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.13: # Preds ..B1.12 - # Execution count [2.25e+00] - xorl %r9d, %r9d #67.9 - jmp ..B1.16 # Prob 100% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.14: # Preds ..B1.12 - # Execution count [2.25e+00] - testl %r9d, %r9d #67.9 - je ..B1.16 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.15: # Preds ..B1.14 - # Execution count [2.50e+01] - negl %r9d #67.9 - addl $64, %r9d #67.9 - shrl $2, %r9d #67.9 - cmpl %r9d, %r13d #67.9 - cmovl %r13d, %r9d #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.16: # Preds ..B1.13 ..B1.15 ..B1.14 - # Execution count [5.00e+00] - movl %r13d, %ebx #67.9 - subl %r9d, %ebx #67.9 - andl $7, %ebx #67.9 - negl %ebx #67.9 - addl %r13d, %ebx #67.9 - cmpl $1, %r9d #67.9 - jb ..B1.20 # Prob 50% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.17: # Preds ..B1.16 - # Execution count [4.50e+00] - vmovdqa32 %ymm17, %ymm4 #67.9 - xorl %r15d, %r15d #67.9 - vpbroadcastd %r9d, %ymm3 #67.9 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm9, %zmm5 #59.23 - vbroadcastsd %xmm10, %zmm6 #60.23 - movslq %r9d, %r14 #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.18: # Preds ..B1.18 ..B1.17 - # Execution count [2.50e+01] - vpcmpgtd %ymm4, %ymm3, %k5 #67.9 - vpaddd %ymm18, %ymm4, %ymm4 #67.9 - vmovdqu32 (%rcx,%r15,4), %ymm20{%k5}{z} #68.21 - vmovaps %zmm19, %zmm22 #70.36 - addq $8, %r15 #67.9 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm21 #69.36 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm23 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm20,8), %zmm23{%k3} #71.36 - vgatherdpd (%rax,%ymm20,8), %zmm22{%k2} #70.36 - vgatherdpd (%rdx,%ymm20,8), %zmm21{%k1} #69.36 - vsubpd %zmm22, %zmm5, %zmm0 #70.36 - vsubpd %zmm21, %zmm2, %zmm1 #69.36 - vsubpd %zmm23, %zmm6, %zmm21 #71.36 - vmulpd %zmm0, %zmm0, %zmm20 #72.49 - vfmadd231pd %zmm1, %zmm1, %zmm20 #72.49 - vfmadd231pd %zmm21, %zmm21, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm31 #75.38 - vcmppd $1, %zmm16, %zmm20, %k6{%k5} #74.22 - vfpclasspd $30, %zmm31, %k0 #75.38 - vmovaps %zmm20, %zmm24 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm31, %zmm24 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm24, %zmm24, %zmm25 #75.38 - vfmadd213pd %zmm31, %zmm24, %zmm31{%k4} #75.38 - vfmadd213pd %zmm31, %zmm25, %zmm31{%k4} #75.38 - vmulpd %zmm15, %zmm31, %zmm26 #76.38 - vmulpd %zmm14, %zmm31, %zmm28 #77.54 - vmulpd %zmm26, %zmm31, %zmm29 #76.44 - vmulpd %zmm29, %zmm31, %zmm27 #76.50 - vfmsub213pd %zmm7, %zmm29, %zmm31 #77.54 - vmulpd %zmm28, %zmm27, %zmm30 #77.61 - vmulpd %zmm31, %zmm30, %zmm24 #77.67 - vfmadd231pd %zmm1, %zmm24, %zmm13{%k6} #78.17 - vfmadd231pd %zmm0, %zmm24, %zmm12{%k6} #79.17 - vfmadd231pd %zmm21, %zmm24, %zmm11{%k6} #80.17 - cmpq %r14, %r15 #67.9 - jb ..B1.18 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 r15 ebx r9d r13d xmm8 xmm9 xmm10 ymm3 ymm4 ymm17 ymm18 zmm2 zmm5 zmm6 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.19: # Preds ..B1.18 - # Execution count [4.50e+00] - cmpl %r9d, %r13d #67.9 - je ..B1.26 # Prob 10% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.20: # Preds ..B1.19 ..B1.16 ..B1.31 - # Execution count [2.50e+01] - lea 8(%r9), %ecx #67.9 - cmpl %ecx, %ebx #67.9 - jl ..B1.24 # Prob 50% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.21: # Preds ..B1.20 - # Execution count [4.50e+00] - movq %r12, %rcx #56.43 - imulq %r8, %rcx #56.43 - vbroadcastsd %xmm8, %zmm0 #58.23 - vbroadcastsd %xmm9, %zmm1 #59.23 - vbroadcastsd %xmm10, %zmm2 #60.23 - movslq %r9d, %r14 #67.9 - addq %r11, %rcx #37.5 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.22: # Preds ..B1.22 ..B1.21 - # Execution count [2.50e+01] - vpcmpeqb %xmm0, %xmm0, %k2 #70.36 - addl $8, %r9d #67.9 - vpcmpeqb %xmm0, %xmm0, %k1 #69.36 - vpcmpeqb %xmm0, %xmm0, %k3 #71.36 - vmovdqu (%rcx,%r14,4), %ymm3 #68.21 - addq $8, %r14 #67.9 - vpxord %zmm5, %zmm5, %zmm5 #70.36 - vpxord %zmm4, %zmm4, %zmm4 #69.36 - vpxord %zmm6, %zmm6, %zmm6 #71.36 - vgatherdpd (%rax,%ymm3,8), %zmm5{%k2} #70.36 - vgatherdpd (%rdx,%ymm3,8), %zmm4{%k1} #69.36 - vgatherdpd (%rsi,%ymm3,8), %zmm6{%k3} #71.36 - vsubpd %zmm5, %zmm1, %zmm29 #70.36 - vsubpd %zmm4, %zmm0, %zmm28 #69.36 - vsubpd %zmm6, %zmm2, %zmm31 #71.36 - vmulpd %zmm29, %zmm29, %zmm20 #72.49 - vfmadd231pd %zmm28, %zmm28, %zmm20 #72.49 - vfmadd231pd %zmm31, %zmm31, %zmm20 #72.63 - vrcp14pd %zmm20, %zmm27 #75.38 - vcmppd $1, %zmm16, %zmm20, %k5 #74.22 - vfpclasspd $30, %zmm27, %k0 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm27, %zmm20 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm20, %zmm20, %zmm21 #75.38 - vfmadd213pd %zmm27, %zmm20, %zmm27{%k4} #75.38 - vfmadd213pd %zmm27, %zmm21, %zmm27{%k4} #75.38 - vmulpd %zmm15, %zmm27, %zmm22 #76.38 - vmulpd %zmm14, %zmm27, %zmm24 #77.54 - vmulpd %zmm22, %zmm27, %zmm25 #76.44 - vmulpd %zmm25, %zmm27, %zmm23 #76.50 - vfmsub213pd %zmm7, %zmm25, %zmm27 #77.54 - vmulpd %zmm24, %zmm23, %zmm26 #77.61 - vmulpd %zmm27, %zmm26, %zmm30 #77.67 - vfmadd231pd %zmm28, %zmm30, %zmm13{%k5} #78.17 - vfmadd231pd %zmm29, %zmm30, %zmm12{%k5} #79.17 - vfmadd231pd %zmm31, %zmm30, %zmm11{%k5} #80.17 - cmpl %ebx, %r9d #67.9 - jb ..B1.22 # Prob 82% #67.9 - # LOE rax rdx rcx rbp rsi rdi r8 r10 r11 r12 r14 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm0 zmm1 zmm2 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.24: # Preds ..B1.22 ..B1.20 ..B1.32 - # Execution count [5.00e+00] - lea 1(%rbx), %ecx #67.9 - cmpl %r13d, %ecx #67.9 - ja ..B1.26 # Prob 50% #67.9 - movl $111,%ebx #IACA/OSACA START MARKER - .byte 100,103,144 #IACA/OSACA START MARKER - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.25: # Preds ..B1.24 - # Execution count [2.50e+01] - imulq %r12, %r8 #56.43 - vbroadcastsd %xmm9, %zmm9 #59.23 - vbroadcastsd %xmm8, %zmm2 #58.23 - vbroadcastsd %xmm10, %zmm10 #60.23 - subl %ebx, %r13d #67.9 - addq %r11, %r8 #37.5 - vpbroadcastd %r13d, %ymm0 #67.9 - vpcmpgtd %ymm17, %ymm0, %k5 #67.9 - movslq %ebx, %rbx #67.9 - vmovaps %zmm19, %zmm4 #70.36 - kmovw %k5, %k2 #70.36 - vmovaps %zmm19, %zmm3 #69.36 - vmovdqu32 (%r8,%rbx,4), %ymm1{%k5}{z} #68.21 - kmovw %k5, %k1 #69.36 - vmovaps %zmm19, %zmm5 #71.36 - kmovw %k5, %k3 #71.36 - vgatherdpd (%rsi,%ymm1,8), %zmm5{%k3} #71.36 - vgatherdpd (%rax,%ymm1,8), %zmm4{%k2} #70.36 - vgatherdpd (%rdx,%ymm1,8), %zmm3{%k1} #69.36 - vsubpd %zmm5, %zmm10, %zmm30 #71.36 - vsubpd %zmm4, %zmm9, %zmm28 #70.36 - vsubpd %zmm3, %zmm2, %zmm27 #69.36 - vmulpd %zmm28, %zmm28, %zmm26 #72.49 - vfmadd231pd %zmm27, %zmm27, %zmm26 #72.49 - vfmadd231pd %zmm30, %zmm30, %zmm26 #72.63 - vrcp14pd %zmm26, %zmm25 #75.38 - vcmppd $1, %zmm16, %zmm26, %k6{%k5} #74.22 - vfpclasspd $30, %zmm25, %k0 #75.38 - vmovaps %zmm26, %zmm6 #75.38 - vfnmadd213pd .L_2il0floatpacket.5(%rip){1to8}, %zmm25, %zmm6 #75.38 - knotw %k0, %k4 #75.38 - vmulpd %zmm6, %zmm6, %zmm8 #75.38 - vfmadd213pd %zmm25, %zmm6, %zmm25{%k4} #75.38 - vfmadd213pd %zmm25, %zmm8, %zmm25{%k4} #75.38 - vmulpd %zmm15, %zmm25, %zmm20 #76.38 - vmulpd %zmm14, %zmm25, %zmm22 #77.54 - vmulpd %zmm20, %zmm25, %zmm23 #76.44 - vmulpd %zmm23, %zmm25, %zmm21 #76.50 - vfmsub213pd %zmm7, %zmm23, %zmm25 #77.54 - vmulpd %zmm22, %zmm21, %zmm24 #77.61 - vmulpd %zmm25, %zmm24, %zmm29 #77.67 - vfmadd231pd %zmm27, %zmm29, %zmm13{%k6} #78.17 - vfmadd231pd %zmm28, %zmm29, %zmm12{%k6} #79.17 - vfmadd231pd %zmm30, %zmm29, %zmm11{%k6} #80.17 - movl $222,%ebx #IACA/OSACA END MARKER - .byte 100,103,144 #IACA/OSACA END MARKER - # LOE rax rdx rbp rsi rdi r10 r11 r12 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.26: # Preds ..B1.19 ..B1.25 ..B1.24 - # Execution count [4.50e+00] - vmovups .L_2il0floatpacket.6(%rip), %zmm10 #63.22 - vpermd %zmm11, %zmm10, %zmm0 #63.22 - vpermd %zmm12, %zmm10, %zmm5 #62.22 - vpermd %zmm13, %zmm10, %zmm21 #61.22 - vaddpd %zmm11, %zmm0, %zmm11 #63.22 - vaddpd %zmm12, %zmm5, %zmm12 #62.22 - vaddpd %zmm13, %zmm21, %zmm13 #61.22 - vpermpd $78, %zmm11, %zmm1 #63.22 - vpermpd $78, %zmm12, %zmm6 #62.22 - vpermpd $78, %zmm13, %zmm22 #61.22 - vaddpd %zmm1, %zmm11, %zmm2 #63.22 - vaddpd %zmm6, %zmm12, %zmm8 #62.22 - vaddpd %zmm22, %zmm13, %zmm23 #61.22 - vpermpd $177, %zmm2, %zmm3 #63.22 - vpermpd $177, %zmm8, %zmm9 #62.22 - vpermpd $177, %zmm23, %zmm24 #61.22 - vaddpd %zmm3, %zmm2, %zmm4 #63.22 - vaddpd %zmm9, %zmm8, %zmm20 #62.22 - vaddpd %zmm24, %zmm23, %zmm25 #61.22 - # LOE rax rdx rbp rsi rdi r10 r11 r12 xmm4 xmm20 xmm25 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.27: # Preds ..B1.26 ..B1.9 - # Execution count [5.00e+00] - movq -8(%rsp), %rcx #84.9[spill] - movq -16(%rsp), %rbx #85.9[spill] - movslq %r10d, %r8 #55.32 - incq %r8 #55.32 - vaddsd (%rcx,%r10,8), %xmm25, %xmm0 #84.9 - vmovsd %xmm0, (%rcx,%r10,8) #84.9 - vaddsd (%rbx,%r10,8), %xmm20, %xmm1 #85.9 - vmovsd %xmm1, (%rbx,%r10,8) #85.9 - vaddsd (%rdi,%r10,8), %xmm4, %xmm2 #86.9 - vmovsd %xmm2, (%rdi,%r10,8) #86.9 - incq %r10 #55.5 - cmpq -32(%rsp), %r10 #55.5[spill] - jb ..B1.9 # Prob 82% #55.5 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ymm17 ymm18 zmm7 zmm14 zmm15 zmm16 zmm19 -..B1.28: # Preds ..B1.27 - # Execution count [9.00e-01] - movq -40(%rsp), %r15 #[spill] - .cfi_restore 15 - movq -48(%rsp), %rbx #[spill] - .cfi_restore 3 - # LOE rbx rbp r15 -..B1.30: # Preds ..B1.1 ..B1.28 - # Execution count [1.00e+00] - vzeroupper #93.12 - vxorpd %xmm0, %xmm0, %xmm0 #93.12 - .cfi_restore 14 - popq %r14 #93.12 - .cfi_def_cfa_offset 24 - .cfi_restore 13 - popq %r13 #93.12 - .cfi_def_cfa_offset 16 - .cfi_restore 12 - popq %r12 #93.12 - .cfi_def_cfa_offset 8 - ret #93.12 - .cfi_def_cfa_offset 32 - .cfi_offset 3, -80 - .cfi_offset 12, -16 - .cfi_offset 13, -24 - .cfi_offset 14, -32 - .cfi_offset 15, -72 - # LOE -..B1.31: # Preds ..B1.11 - # Execution count [4.50e-01]: Infreq - movl %r13d, %ebx #67.9 - xorl %r9d, %r9d #67.9 - andl $-8, %ebx #67.9 - jmp ..B1.20 # Prob 100% #67.9 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r9d r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 -..B1.32: # Preds ..B1.10 - # Execution count [4.50e-01]: Infreq - xorl %ebx, %ebx #67.9 - jmp ..B1.24 # Prob 100% #67.9 - .align 16,0x90 - # LOE rax rdx rbp rsi rdi r8 r10 r11 r12 ebx r13d xmm8 xmm9 xmm10 ymm17 ymm18 zmm7 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm19 - .cfi_endproc -# mark_end; - .type computeForce,@function - .size computeForce,.-computeForce -..LNcomputeForce.0: - .data -# -- End computeForce - .section .rodata, "a" - .align 64 - .align 64 -.L_2il0floatpacket.2: - .long 0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000,0x00000000,0x3ff00000 - .type .L_2il0floatpacket.2,@object - .size .L_2il0floatpacket.2,64 - .align 64 -.L_2il0floatpacket.4: - .long 0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000,0x00000000,0x3fe00000 - .type .L_2il0floatpacket.4,@object - .size .L_2il0floatpacket.4,64 - .align 64 -.L_2il0floatpacket.6: - .long 0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f,0x00000008,0x00000009,0x0000000a,0x0000000b,0x0000000c,0x0000000d,0x0000000e,0x0000000f - .type .L_2il0floatpacket.6,@object - .size .L_2il0floatpacket.6,64 - .align 32 -.L_2il0floatpacket.0: - .long 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008 - .type .L_2il0floatpacket.0,@object - .size .L_2il0floatpacket.0,32 - .align 32 -.L_2il0floatpacket.1: - .long 0x00000000,0x00000001,0x00000002,0x00000003,0x00000004,0x00000005,0x00000006,0x00000007 - .type .L_2il0floatpacket.1,@object - .size .L_2il0floatpacket.1,32 - .align 8 -.L_2il0floatpacket.3: - .long 0x00000000,0x40480000 - .type .L_2il0floatpacket.3,@object - .size .L_2il0floatpacket.3,8 - .align 8 -.L_2il0floatpacket.5: - .long 0x00000000,0x3ff00000 - .type .L_2il0floatpacket.5,@object - .size .L_2il0floatpacket.5,8 - .data - .section .note.GNU-stack, "" -# End diff --git a/scripts/results_aos_casclakesp2.txt b/scripts/results_aos_casclakesp2.txt deleted file mode 100644 index a73b262..0000000 --- a/scripts/results_aos_casclakesp2.txt +++ /dev/null @@ -1,450 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0016,31.3286,76.6074,10.9439 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0034,30.5402,78.5851,11.2264 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0068,30.2173,79.4248,11.3464 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0137,30.0069,79.9815,11.4259 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0272,30.1585,79.5795,11.3685 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0570,28.7247,83.5518,11.9360 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0034,30.4999,78.6887,11.2412 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0069,29.8712,80.3449,11.4778 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0136,30.2043,79.4588,11.3513 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0270,30.2881,79.2391,11.3199 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0573,28.5762,83.9861,11.9980 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1153,28.4258,84.4303,12.0615 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0066,31.0076,77.4004,11.0572 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0132,30.9218,77.6152,11.0879 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0272,30.1032,79.7258,11.3894 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0567,28.9101,83.0160,11.8594 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3389,84.6893,12.0985 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2277,28.7869,83.3713,11.9102 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0136,30.2157,79.4289,11.3470 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0275,29.7785,80.5951,11.5136 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0566,28.9500,82.9015,11.8431 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1167,28.0786,85.4744,12.2106 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2276,28.7961,83.3446,11.9064 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.4624,28.3432,84.6765,12.0966 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0272,30.1718,79.5444,11.3635 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0574,28.5211,84.1482,12.0212 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6206,83.8558,11.9794 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2235,29.3180,81.8611,11.6944 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.4677,28.0274,85.6305,12.2329 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.2438,21.0760,113.8738,16.2677 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0034,30.3789,79.0023,11.2860 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0068,30.0176,79.9532,11.4219 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0136,30.2149,79.4309,11.3473 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0269,30.5030,78.6807,11.2401 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0581,28.1906,85.1349,12.1621 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1151,28.4795,84.2712,12.0387 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0068,30.1697,79.5501,11.3643 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0137,29.9307,80.1853,11.4550 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0267,30.6941,78.1910,11.1701 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0579,28.3008,84.8033,12.1148 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1165,28.1230,85.3395,12.1914 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2284,28.6881,83.6583,11.9512 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0137,29.9813,80.0498,11.4357 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0274,29.9487,80.1369,11.4481 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0569,28.7964,83.3438,11.9063 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1150,28.5022,84.2039,12.0291 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2281,28.7316,83.5316,11.9331 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.4686,27.9702,85.8055,12.2579 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0268,30.6043,78.4204,11.2029 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0562,29.1740,82.2649,11.7521 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1158,28.2999,84.8059,12.1151 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8054,83.3178,11.9025 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.4667,28.0853,85.4540,12.2077 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.2352,21.2224,113.0883,16.1555 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0581,28.2059,85.0885,12.1555 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1165,28.1387,85.2918,12.1845 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9194,82.9892,11.8556 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.4618,28.3802,84.5661,12.0809 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.2085,21.6913,110.6434,15.8062 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.2471,16.1463,148.6409,21.2344 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0068,30.3205,79.1543,11.3078 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0136,30.2035,79.4611,11.3516 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0273,30.0167,79.9555,11.4222 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0571,28.7024,83.6168,11.9453 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1154,28.4058,84.4899,12.0700 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2190,29.9276,80.1934,11.4562 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.7709,80.6158,11.5165 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0273,30.0582,79.8451,11.4064 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0577,28.3944,84.5238,12.0748 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1113,29.4382,81.5267,11.6467 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2247,29.1619,82.2992,11.7570 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.4572,28.6660,83.7229,11.9604 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0269,30.4826,78.7334,11.2476 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0575,28.5172,84.1597,12.0228 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6233,83.8476,11.9782 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2246,29.1736,82.2660,11.7523 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.4568,28.6941,83.6410,11.9487 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.2084,21.6932,110.6338,15.8048 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0575,28.4700,84.2994,12.0428 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1143,28.6568,83.7497,11.9642 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2298,28.5246,84.1378,12.0197 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.4589,28.5652,84.0182,12.0026 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.2003,21.8406,109.8869,15.6981 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.1864,16.4538,145.8629,20.8376 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1155,28.3812,84.5629,12.0804 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9186,82.9915,11.8559 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.4500,29.1273,82.3969,11.7710 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.2058,21.7407,110.3920,15.7703 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.2580,16.0921,149.1411,21.3059 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,7.0624,14.8472,161.6462,23.0923 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0136,30.2024,79.4640,11.3520 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0272,30.1067,79.7165,11.3881 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0558,29.3475,81.7786,11.6827 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1131,28.9697,82.8452,11.8350 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9188,82.9910,11.8559 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.4571,28.6719,83.7058,11.9580 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0267,30.6548,78.2913,11.1845 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0565,28.9951,82.7725,11.8246 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2313,85.0119,12.1446 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2236,29.3134,81.8739,11.6963 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.4577,28.6354,83.8122,11.9732 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.2065,21.7269,110.4620,15.7803 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0564,29.0619,82.5825,11.7975 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1149,28.5307,84.1199,12.0171 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2242,29.2341,82.0959,11.7280 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.4530,28.9334,82.9492,11.8499 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.2210,21.4702,111.7830,15.9690 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.2488,16.1378,148.7188,21.2455 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1138,28.8006,83.3317,11.9045 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2283,28.7093,83.5966,11.9424 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.4490,29.1907,82.2179,11.7454 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.2358,21.2121,113.1431,16.1633 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.2416,16.1738,148.3884,21.1983 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,7.0780,14.8145,162.0034,23.1433 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2284,28.6984,83.6283,11.9469 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.4556,28.7686,83.4243,11.9178 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.2309,21.2978,112.6880,16.0983 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.2217,16.2735,147.4793,21.0685 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,7.1806,14.6029,164.3510,23.4787 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,14.3679,14.5961,164.4279,23.4897 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0273,30.0281,79.9251,11.4179 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0570,28.7561,83.4607,11.9230 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6263,83.8391,11.9770 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2273,28.8273,83.2544,11.8935 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4798,27.3181,87.8537,12.5505 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.2127,21.6162,111.0279,15.8611 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0565,28.9784,82.8203,11.8315 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1131,28.9691,82.8468,11.8353 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2251,29.1085,82.4501,11.7786 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4546,28.8315,83.2422,11.8917 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.2090,21.6824,110.6888,15.8127 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.2163,16.3010,147.2298,21.0328 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4384,84.3931,12.0562 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2273,28.8373,83.2257,11.8894 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.4812,27.2382,88.1115,12.5874 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.2232,21.4307,111.9891,15.9984 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.1955,16.4069,146.2800,20.8971 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,7.1952,14.5732,164.6858,23.5265 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2265,28.9330,82.9502,11.8500 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5024,26.0894,91.9913,13.1416 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.2188,21.5088,111.5821,15.9403 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.2184,16.2901,147.3285,21.0469 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,7.0597,14.8529,161.5841,23.0834 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,14.5806,14.3832,166.8613,23.8373 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.4546,28.8336,83.2361,11.8909 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.2400,21.1414,113.5215,16.2174 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.2102,16.3320,146.9510,20.9930 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,7.1222,14.7227,163.0139,23.2877 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,14.4043,14.5593,164.8437,23.5491 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,28.8310,14.5479,164.9724,23.5675 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0055,18.7721,127.8494,8.5233 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0108,18.8919,127.0386,8.4692 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0217,18.8390,127.3953,8.4930 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0438,18.7125,128.2565,8.5504 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0894,18.3265,130.9576,8.7305 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1766,18.5508,129.3744,8.6250 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0108,18.9210,126.8434,8.4562 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0217,18.9109,126.9106,8.4607 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0441,18.5708,129.2352,8.6157 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0883,18.5564,129.3351,8.6223 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1758,18.6440,128.7276,8.5818 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3520,18.6169,128.9148,8.5943 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0218,18.8228,127.5050,8.5003 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0437,18.7451,128.0334,8.5356 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0892,18.3753,130.6102,8.7073 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1773,18.4770,129.8910,8.6594 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3472,18.8739,127.1597,8.4773 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.7188,18.2342,131.6211,8.7747 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0432,18.9414,126.7065,8.4471 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0887,18.4681,129.9539,8.6636 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1779,18.4177,130.3097,8.6873 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3515,18.6457,128.7157,8.5810 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.7172,18.2746,131.3300,8.7553 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7695,14.8150,161.9980,10.7999 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0878,18.6524,128.6696,8.5780 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1791,18.2972,131.1673,8.7445 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3522,18.6056,128.9933,8.5996 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.7149,18.3332,130.9103,8.7274 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7628,14.8711,161.3873,10.7592 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,4.0027,13.0982,183.2306,12.2154 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0107,19.1269,125.4779,8.3652 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0216,18.9319,126.7701,8.4513 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0433,18.9287,126.7916,8.4528 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0888,18.4489,130.0893,8.6726 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1747,18.7517,127.9884,8.5326 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3523,18.6023,129.0163,8.6011 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0216,18.9696,126.5184,8.4346 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0436,18.7761,127.8222,8.5215 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0889,18.4242,130.2632,8.6842 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1783,18.3747,130.6141,8.7076 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3517,18.6356,128.7861,8.5857 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.7266,18.0382,133.0508,8.8701 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0439,18.6448,128.7220,8.5815 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0902,18.1590,132.1657,8.8110 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1773,18.4786,129.8799,8.6587 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3516,18.6372,128.7747,8.5850 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.7154,18.3217,130.9920,8.7328 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7763,14.7579,162.6247,10.8416 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0881,18.6023,129.0164,8.6011 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1782,18.3872,130.5254,8.7017 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3524,18.5996,129.0351,8.6023 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.7284,17.9940,133.3779,8.8919 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7605,14.8904,161.1771,10.7451 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,4.0180,13.0484,183.9300,12.2620 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1789,18.3191,131.0111,8.7341 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3529,18.5730,129.2201,8.6147 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.7318,17.9113,133.9936,8.9329 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7637,14.8629,161.4761,10.7651 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.9553,13.2553,181.0596,12.0706 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,8.4619,12.3918,193.6766,12.9118 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0217,18.8926,127.0335,8.4689 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0435,18.8480,127.3345,8.4890 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0873,18.7736,127.8388,8.5226 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1762,18.6018,129.0198,8.6013 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3528,18.5762,129.1979,8.6132 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.7303,17.9482,133.7180,8.9145 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0438,18.7211,128.1975,8.5465 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0895,18.3125,131.0580,8.7372 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1794,18.2652,131.3976,8.7598 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3518,18.6292,128.8299,8.5887 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.7323,17.8998,134.0798,8.9387 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7832,14.7006,163.2583,10.8839 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0876,18.7029,128.3222,8.5548 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1778,18.4260,130.2506,8.6834 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3532,18.5531,129.3583,8.6239 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.7349,17.8365,134.5554,8.9704 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7469,15.0064,159.9322,10.6621 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.9916,13.1349,182.7194,12.1813 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1752,18.7055,128.3043,8.5536 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3481,18.8292,127.4617,8.4974 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.7822,16.7564,143.2289,9.5486 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7702,14.8089,162.0652,10.8043 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,4.0154,13.0569,183.8103,12.2540 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,8.4181,12.4562,192.6749,12.8450 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3513,18.6578,128.6324,8.5755 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.7349,17.8363,134.5568,8.9705 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7682,14.8256,161.8822,10.7921 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.9491,13.2760,180.7771,12.0518 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,8.4483,12.4117,193.3659,12.8911 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,16.9824,12.3490,194.3483,12.9566 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0432,18.9428,126.6975,8.4465 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0892,18.3690,130.6548,8.7103 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1791,18.2945,131.1872,8.7458 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3513,18.6530,128.6659,8.5777 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.7125,18.3966,130.4586,8.6972 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7588,14.9051,161.0192,10.7346 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0873,18.7703,127.8618,8.5241 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1779,18.4195,130.2968,8.6865 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3521,18.6148,128.9296,8.5953 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.7187,18.2386,131.5892,8.7726 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7793,14.7330,162.8995,10.8600 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,4.0073,13.0833,183.4398,12.2293 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1772,18.4919,129.7865,8.6524 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3529,18.5716,129.2299,8.6153 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.7414,17.6795,135.7505,9.0500 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7616,14.8806,161.2834,10.7522 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.9904,13.1388,182.6649,12.1777 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,8.4067,12.4731,192.4144,12.8276 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3511,18.6636,128.5925,8.5728 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.7480,17.5225,136.9670,9.1311 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7637,14.8634,161.4702,10.7647 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.9943,13.1260,182.8430,12.1895 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,8.4761,12.3709,194.0033,12.9336 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,17.1450,12.2318,196.2091,13.0806 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.7103,18.4529,130.0611,8.6707 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7754,14.7651,162.5455,10.8364 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.9735,13.1946,181.8919,12.1261 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,8.3487,12.5597,191.0876,12.7392 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,17.1582,12.2224,196.3605,13.0907 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,34.0888,12.3040,195.0579,13.0039 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0891,18.3835,130.5519,8.7035 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1777,18.4426,130.1336,8.6756 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3487,18.7918,127.7156,8.5144 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.7352,17.8288,134.6140,8.9743 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7606,14.8899,161.1832,10.7455 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.9950,13.1237,182.8747,12.1916 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1780,18.4140,130.3357,8.6890 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3542,18.5019,129.7162,8.6477 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.7467,17.5530,136.7290,9.1153 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7498,14.9809,160.2035,10.6802 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.9909,13.1372,182.6874,12.1792 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,8.3531,12.5531,191.1874,12.7458 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3518,18.6265,128.8490,8.5899 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.7085,18.5008,129.7240,8.6483 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7465,15.0097,159.8963,10.6598 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.9689,13.2098,181.6827,12.1122 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,8.3589,12.5444,191.3201,12.7547 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,17.0777,12.2800,195.4392,13.0293 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.7205,18.1912,131.9318,8.7955 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7700,14.8100,162.0526,10.8035 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,4.0141,13.0612,183.7507,12.2500 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,8.3834,12.5077,191.8811,12.7921 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,17.0771,12.2805,195.4318,13.0288 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,34.2614,12.2421,196.0452,13.0697 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7763,14.7575,162.6287,10.8419 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.9779,13.1802,182.0917,12.1394 -200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,8.4382,12.4266,193.1347,12.8756 -200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,16.9325,12.3853,193.7776,12.9185 -200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,33.9828,12.3424,194.4513,12.9634 -200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,68.5011,12.2459,195.9834,13.0656 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0174,11.7952,203.4727,6.5636 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0353,11.6039,206.8273,6.6718 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0708,11.5768,207.3121,6.6875 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1432,11.4416,209.7618,6.7665 -200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2832,11.5706,207.4224,6.6910 -200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5676,11.5465,207.8548,6.7050 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0348,11.7767,203.7917,6.5739 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0719,11.4004,210.5186,6.7909 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1435,11.4208,210.1434,6.7788 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2865,11.4374,209.8376,6.7690 -200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5630,11.6406,206.1756,6.6508 -200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.1707,11.1959,214.3643,6.9150 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0711,11.5250,208.2427,6.7175 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1421,11.5337,208.0852,6.7124 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2871,11.4149,210.2514,6.7823 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5671,11.5565,207.6753,6.6992 -200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.1876,11.0367,217.4561,7.0147 -200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6114,10.0384,239.0823,7.7123 -200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1424,11.5080,208.5502,6.7274 -200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2859,11.4602,209.4209,6.7555 -200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5648,11.6029,206.8443,6.6724 -200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.1923,10.9931,218.3185,7.0425 -200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6085,10.0497,238.8139,7.7037 -200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.5256,9.4883,252.9427,8.1594 -200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2875,11.3992,210.5419,6.7917 -200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5719,11.4588,209.4459,6.7563 -200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.1988,10.9339,219.5006,7.0807 -200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6122,10.0354,239.1525,7.7146 -200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.4710,9.5830,250.4447,8.0789 -200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,11.2159,9.3491,256.7105,8.2810 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0353,11.5927,207.0267,6.6783 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0720,11.3755,210.9803,6.8058 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1429,11.4632,209.3662,6.7537 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2858,11.4667,209.3019,6.7517 -200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5713,11.4723,209.1999,6.7484 -200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.1912,11.0032,218.1182,7.0361 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0712,11.5041,208.6211,6.7297 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1432,11.4410,209.7719,6.7668 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2860,11.4576,209.4685,6.7570 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5698,11.5010,208.6770,6.7315 -200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.1786,11.1205,215.8170,6.9618 -200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6113,10.0388,239.0718,7.7120 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1433,11.4328,209.9230,6.7717 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2864,11.4420,209.7532,6.7662 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5645,11.6087,206.7407,6.6691 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.1612,11.2876,212.6224,6.8588 -200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6158,10.0214,239.4873,7.7254 -200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.5078,9.5191,252.1257,8.1331 -200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2867,11.4279,210.0125,6.7746 -200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5686,11.5263,208.2201,6.7168 -200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.1619,11.2809,212.7493,6.8629 -200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6084,10.0499,238.8074,7.7035 -200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.5168,9.5035,252.5382,8.1464 -200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,11.2449,9.3249,257.3764,8.3025 -200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5702,11.4941,208.8035,6.7356 -200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.1710,11.1933,214.4132,6.9166 -200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6195,10.0076,239.8179,7.7361 -200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.4891,9.5514,251.2729,8.1056 -200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,11.2059,9.3574,256.4817,8.2736 -200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7045,9.2367,259.8329,8.3817 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0714,11.4723,209.2005,6.7484 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1413,11.5911,207.0553,6.6792 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2868,11.4257,210.0525,6.7759 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5702,11.4944,208.7970,6.7354 -200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.1638,11.2621,213.1049,6.8744 -200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6182,10.0125,239.6999,7.7323 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1429,11.4679,209.2805,6.7510 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2874,11.4027,210.4763,6.7896 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5699,11.4998,208.6998,6.7323 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.1751,11.1544,215.1621,6.9407 -200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6103,10.0427,238.9795,7.7090 -200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.5152,9.5062,252.4679,8.1441 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2872,11.4108,210.3278,6.7848 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5607,11.6888,205.3246,6.6234 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.1865,11.0473,217.2482,7.0080 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6115,10.0381,239.0898,7.7126 -200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.4684,9.5876,250.3234,8.0749 -200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,11.2851,9.2917,258.2944,8.3321 -200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5698,11.5016,208.6667,6.7312 -200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.1800,11.1079,216.0618,6.9697 -200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6096,10.0455,238.9130,7.7069 -200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.4894,9.5510,251.2829,8.1059 -200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,11.2821,9.2941,258.2271,8.3299 -200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7474,9.2193,260.3233,8.3975 -200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.1741,11.1639,214.9782,6.9348 -200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6114,10.0384,239.0820,7.7123 -200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.5263,9.4872,252.9729,8.1604 -200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,11.3133,9.2686,258.9398,8.3529 -200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,22.8068,9.1953,261.0030,8.4195 -200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,45.4358,9.2313,259.9857,8.3866 -200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1441,11.3732,211.0217,6.8072 -200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2867,11.4281,210.0080,6.7745 -200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5704,11.4899,208.8797,6.7381 -200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.1706,11.1972,214.3391,6.9142 -200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6585,9.8606,243.3935,7.8514 -200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.5104,9.5145,252.2460,8.1370 -200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2863,11.4448,209.7019,6.7646 -200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5707,11.4842,208.9832,6.7414 -200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.1623,11.2773,212.8178,6.8651 -200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6152,10.0240,239.4244,7.7234 -200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.4955,9.5403,251.5632,8.1149 -200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,11.1827,9.3768,255.9510,8.2565 -200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5703,11.4915,208.8507,6.7371 -200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.1691,11.2114,214.0682,6.9054 -200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6149,10.0251,239.3981,7.7225 -200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.5122,9.5114,252.3295,8.1397 -200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,11.2002,9.3621,256.3522,8.2694 -200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,22.8756,9.1676,261.7905,8.4449 -200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.1770,11.1358,215.5214,6.9523 -200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6142,10.0275,239.3407,7.7207 -200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.5252,9.4890,252.9249,8.1589 -200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,11.2002,9.3621,256.3532,8.2695 -200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,22.6890,9.2430,259.6552,8.3760 -200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,45.7402,9.1698,261.7278,8.4428 -200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6267,9.9801,240.4777,7.7573 -200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.5090,9.5170,252.1814,8.1349 -200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,11.3300,9.2549,259.3221,8.3652 -200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,22.7104,9.2343,259.9002,8.3839 -200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,45.6291,9.1922,261.0918,8.4223 -200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,90.8981,9.2286,260.0616,8.3891 -200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2861,11.4553,209.5105,6.7584 -200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5686,11.5252,208.2389,6.7174 -200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.1681,11.2211,213.8826,6.8994 -200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.5998,10.0834,238.0152,7.6779 -200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.5037,9.5261,251.9403,8.1271 -200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,11.2344,9.3336,257.1346,8.2947 -200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5687,11.5235,208.2693,6.7184 -200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.1901,11.0134,217.9169,7.0296 -200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6161,10.0205,239.5079,7.7261 -200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.4939,9.5431,251.4914,8.1126 -200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,11.2474,9.3229,257.4317,8.3042 -200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,22.7123,9.2336,259.9214,8.3846 -200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.1692,11.2105,214.0853,6.9060 -200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0147,239.6479,7.7306 -200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.5163,9.5043,252.5162,8.1457 -200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,11.2024,9.3603,256.4033,8.2711 -200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,22.7399,9.2224,260.2373,8.3948 -200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,45.6910,9.1797,261.4461,8.4337 -200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6132,10.0314,239.2490,7.7177 -200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.4943,9.5423,251.5104,8.1132 -200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,11.2644,9.3088,257.8213,8.3168 -200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,22.6715,9.2502,259.4542,8.3695 -200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,45.5770,9.2027,260.7935,8.4127 -200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,91.1329,9.2048,260.7334,8.4108 -200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.4815,9.5647,250.9236,8.0943 -200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,11.2564,9.3154,257.6377,8.3109 -200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,22.5064,9.3180,257.5657,8.3086 -200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,45.3069,9.2575,259.2479,8.3628 -200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,90.8428,9.2342,259.9032,8.3840 -200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,185.4831,9.0451,265.3357,8.5592 diff --git a/scripts/results_aos_medusa.txt b/scripts/results_aos_medusa.txt deleted file mode 100644 index 884af93..0000000 --- a/scripts/results_aos_medusa.txt +++ /dev/null @@ -1,450 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0012,41.1057,80.3051,11.4722 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0025,40.3647,81.7793,11.6828 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0051,39.8752,82.7833,11.8262 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0101,40.6017,81.3020,11.6146 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0204,40.2231,82.0673,11.7239 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0472,34.6834,95.1752,13.5965 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0025,40.4194,81.6686,11.6669 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0052,39.3566,83.8740,11.9820 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0102,39.9745,82.5777,11.7968 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0204,40.1524,82.2118,11.7445 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0466,35.1455,93.9238,13.4177 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.0929,35.2833,93.5569,13.3653 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0052,39.5220,83.5232,11.9319 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0102,40.0184,82.4871,11.7839 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0207,39.5628,83.4369,11.9196 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0468,35.0227,94.2531,13.4647 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.0952,34.4175,95.9105,13.7015 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.1878,34.8933,94.6026,13.5147 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0102,40.0417,82.4391,11.7770 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0205,39.8714,82.7911,11.8273 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0458,35.8069,92.1889,13.1698 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.0955,34.3126,96.2037,13.7434 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.1895,34.5920,95.4266,13.6324 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.3960,33.1002,99.7276,14.2468 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0203,40.4125,81.6827,11.6690 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0456,35.9633,91.7881,13.1126 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.0934,35.0939,94.0620,13.4374 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.1896,34.5699,95.4876,13.6411 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.3912,33.5037,98.5264,14.0752 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.1277,23.2467,141.9985,20.2855 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0026,40.0831,82.3538,11.7648 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0052,39.7363,83.0727,11.8675 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0103,39.8957,82.7408,11.8201 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0209,39.2829,84.0314,12.0045 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0458,35.7476,92.3419,13.1917 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.0946,34.6359,95.3057,13.6151 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0051,40.0148,82.4944,11.7849 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0103,39.6144,83.3284,11.9041 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0205,39.8786,82.7763,11.8252 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0464,35.3339,93.4229,13.3461 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.0954,34.3429,96.1188,13.7313 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.1857,35.2944,93.5275,13.3611 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0103,39.6254,83.3052,11.9007 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0210,39.0435,84.5466,12.0781 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0464,35.3417,93.4023,13.3432 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.0952,34.4276,95.8824,13.6975 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.1901,34.4669,95.7730,13.6819 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.3949,33.1919,99.4520,14.2074 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0207,39.5242,83.5184,11.9312 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0453,36.1420,91.3341,13.0477 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.0943,34.7606,94.9638,13.5663 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5562,95.5256,13.6465 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.3924,33.4054,98.8165,14.1166 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.1113,23.5885,139.9413,19.9916 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0464,35.3179,93.4654,13.3522 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.0954,34.3379,96.1328,13.7333 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.1836,35.6978,92.4708,13.2101 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.3942,33.2522,99.2717,14.1817 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.1300,23.1979,142.2975,20.3282 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,2.7875,18.8084,175.5068,25.0724 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0051,39.8587,82.8175,11.8311 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0102,40.2620,81.9879,11.7126 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0205,39.9633,82.6008,11.8001 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0467,35.0947,94.0599,13.4371 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.0951,34.4516,95.8156,13.6879 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.1862,35.1990,93.7812,13.3973 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0103,39.7484,83.0474,11.8639 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0208,39.2926,84.0107,12.0015 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0457,35.8223,92.1492,13.1642 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.0955,34.3243,96.1708,13.7387 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.1852,35.3809,93.2990,13.3284 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.3926,33.3876,98.8690,14.1241 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0206,39.8296,82.8780,11.8397 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0465,35.2205,93.7237,13.3891 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.0950,34.4971,95.6893,13.6699 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.1854,35.3446,93.3949,13.3421 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.3933,33.3269,99.0492,14.1499 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.1221,23.3617,141.2995,20.1856 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0465,35.2689,93.5953,13.3708 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.0933,35.1150,94.0053,13.4293 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.1890,34.6767,95.1937,13.5991 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.3917,33.4612,98.6515,14.0931 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.1154,23.5026,140.4528,20.0647 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,2.8702,18.2666,180.7123,25.8160 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.0935,35.0393,94.2084,13.4583 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.1859,35.2627,93.6118,13.3731 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.3860,33.9565,97.2126,13.8875 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.1278,23.2434,142.0187,20.2884 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,2.7969,18.7451,176.0992,25.1570 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.0921,17.2122,191.7829,27.3976 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0104,39.5116,83.5452,11.9350 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0210,39.0648,84.5007,12.0715 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0466,35.1938,93.7948,13.3993 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.0943,34.7486,94.9965,13.5709 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.1895,34.5862,95.4426,13.6347 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.3987,32.8783,100.4005,14.3429 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0205,39.8861,82.7606,11.8229 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0461,35.5303,92.9066,13.2724 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.0945,34.6607,95.2374,13.6053 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.1869,35.0584,94.1573,13.4510 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.3925,33.3962,98.8436,14.1205 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.1238,23.3268,141.5113,20.2159 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0457,35.8343,92.1184,13.1598 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.0964,33.9864,97.1271,13.8753 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.1880,34.8516,94.7160,13.5309 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.3958,33.1143,99.6850,14.2407 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.1231,23.3408,141.4262,20.2037 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,2.8733,18.2471,180.9059,25.8437 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.0956,34.2772,96.3030,13.7576 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5447,95.5574,13.6511 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.3997,32.7961,100.6523,14.3789 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.1139,23.5333,140.2696,20.0385 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,2.8750,18.2358,181.0173,25.8596 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.0705,17.2733,191.1044,27.3006 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.1856,35.3144,93.4747,13.3535 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.3870,33.8709,97.4582,13.9226 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.1255,23.2919,141.7230,20.2461 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,2.8226,18.5745,177.7170,25.3881 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.1089,17.1648,192.3122,27.4732 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.4440,16.8527,195.8737,27.9820 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0206,39.8061,82.9270,11.8467 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0468,35.0209,94.2580,13.4654 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.0953,34.3759,96.0265,13.7181 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.1905,34.3953,95.9725,13.7104 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4040,32.4474,101.7340,14.5334 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.1196,23.4137,140.9856,20.1408 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0469,34.9211,94.5273,13.5039 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.0931,35.1895,93.8065,13.4009 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.1876,34.9341,94.4921,13.4989 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4015,32.6446,101.1194,14.4456 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.1355,23.0863,142.9852,20.4265 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,2.7960,18.7514,176.0401,25.1486 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.0947,34.6156,95.3617,13.6231 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.1877,34.9064,94.5672,13.5096 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.3966,33.0458,99.8916,14.2702 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.1021,23.7865,138.7759,19.8251 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,2.7874,18.8091,175.5005,25.0715 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.1138,17.1511,192.4663,27.4952 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.1897,34.5455,95.5553,13.6508 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.3956,33.1363,99.6189,14.2313 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.1204,23.3981,141.0800,20.1543 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,2.8010,18.7181,176.3538,25.1934 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.1574,17.0296,193.8395,27.6914 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.3240,17.0169,193.9841,27.7120 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.3888,33.7099,97.9237,13.9891 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.1338,23.1208,142.7720,20.3960 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,2.8212,18.5837,177.6291,25.3756 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.1008,17.1875,192.0577,27.4368 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.4366,16.8628,195.7566,27.9652 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.4410,16.4864,200.2254,-61.7980 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0041,24.7324,133.4689,8.8979 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0083,24.6887,133.7047,8.9136 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0163,25.0903,131.5646,8.7710 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0329,24.8829,132.6616,8.8441 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0680,24.0966,136.9905,9.1327 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1371,23.8973,138.1328,9.2089 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0082,25.0360,131.8501,8.7900 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0164,24.9590,132.2571,8.8171 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0335,24.4561,134.9764,8.9984 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0685,23.9268,137.9623,9.1975 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1375,23.8339,138.5001,9.2333 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9222,137.9890,9.1993 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0165,24.8840,132.6557,8.8437 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0331,24.7245,133.5111,8.9007 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0635,137.1784,9.1452 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1379,23.7594,138.9344,9.2623 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.2743,23.8917,138.1649,9.2110 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.5828,22.4908,146.7711,9.7847 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0332,24.6499,133.9152,8.9277 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0691,23.7219,139.1539,9.2769 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1368,23.9567,137.7903,9.1860 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.2735,23.9648,137.7438,9.1829 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.5886,22.2698,148.2277,9.8818 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.4720,17.8088,185.3577,12.3572 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0682,24.0084,137.4936,9.1662 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1372,23.8862,138.1971,9.2131 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9051,138.0878,9.2059 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.5849,22.4077,147.3151,9.8210 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.4458,18.1316,182.0577,12.1372 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.1137,16.8378,196.0465,13.0698 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0083,24.7704,133.2639,8.8843 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0164,24.9790,132.1512,8.8101 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0327,25.0873,131.5805,8.7720 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0683,23.9916,137.5897,9.1726 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1374,23.8546,138.3798,9.2253 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.8990,138.1229,9.2082 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0163,25.1862,131.0636,8.7376 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0333,24.6350,133.9965,8.9331 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0493,137.2596,9.1506 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1373,23.8580,138.3605,9.2240 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.2736,23.9502,137.8279,9.1885 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.5870,22.3294,147.8318,9.8555 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0331,24.7333,133.4638,8.8976 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0686,23.8895,138.1779,9.2119 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1371,23.8939,138.1526,9.2102 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9045,138.0909,9.2061 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.5851,22.4035,147.3428,9.8229 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.4449,18.1431,181.9423,12.1295 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0685,23.9332,137.9258,9.1951 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1354,24.1941,136.4383,9.0959 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.9018,138.1068,9.2071 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.5858,22.3747,147.5327,9.8355 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.4728,17.7993,185.4566,12.3638 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.1009,16.9075,195.2388,13.0159 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1362,24.0517,137.2460,9.1497 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.2729,24.0178,137.4398,9.1627 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.5883,22.2787,148.1687,9.8779 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.4518,18.0563,182.8169,12.1878 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.1235,16.7852,196.6615,13.1108 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,6.4154,16.3447,201.9617,13.4641 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0164,25.0188,131.9407,8.7960 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0327,25.0635,131.7055,8.7804 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0681,24.0625,137.1844,9.1456 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1353,24.2172,136.3079,9.0872 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.2736,23.9531,137.8109,9.1874 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.5894,22.2374,148.4434,9.8962 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0331,24.7414,133.4200,8.8947 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0681,24.0635,137.1789,9.1453 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7946,138.7287,9.2486 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.2731,23.9998,137.5431,9.1695 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.5872,22.3223,147.8793,9.8586 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.4703,17.8294,185.1437,12.3429 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0687,23.8416,138.4552,9.2303 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1375,23.8375,138.4791,9.2319 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.2727,24.0302,137.3686,9.1579 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.5883,22.2792,148.1652,9.8777 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.4533,18.0375,183.0080,12.2005 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.1294,16.7536,197.0325,13.1355 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1378,23.7792,138.8186,9.2546 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.2724,24.0554,137.2249,9.1483 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.5840,22.4451,147.0702,9.8047 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.4553,18.0128,183.2583,12.2172 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.1316,16.7421,197.1674,13.1445 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,6.5036,16.1231,204.7372,13.6491 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.2731,23.9947,137.5723,9.1715 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.5852,22.3992,147.3712,9.8247 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.4516,18.0592,182.7882,12.1859 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.1097,16.8599,195.7903,13.0527 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,6.5056,16.1181,204.8003,13.6534 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,13.1053,16.0023,206.2823,-37.6428 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0328,24.9512,132.2984,8.8199 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0682,24.0216,137.4177,9.1612 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7965,138.7181,9.2479 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.2730,24.0046,137.5155,9.1677 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.5829,22.4881,146.7890,9.7859 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.4484,18.0992,182.3833,12.1589 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0677,24.1845,136.4923,9.0995 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1374,23.8416,138.4555,9.2304 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.2738,23.9371,137.9030,9.1935 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.5882,22.2849,148.1270,9.8751 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.4562,18.0018,183.3708,12.2247 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.0955,16.9373,194.8949,12.9930 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1377,23.7916,138.7464,9.2498 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.2742,23.8984,138.1263,9.2084 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.5860,22.3662,147.5890,9.8393 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.4521,18.0527,182.8531,12.1902 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.1149,16.8315,196.1201,13.0747 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,6.4845,16.1705,204.1378,13.6092 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9190,138.0077,9.2005 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.5801,22.5958,146.0891,9.7393 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.4427,18.1702,181.6708,12.1114 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.1059,16.8805,195.5508,13.0367 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,6.5648,15.9727,206.6647,13.7776 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,13.4465,15.5962,211.6535,-38.6229 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.5794,22.6212,145.9248,9.7283 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.4597,17.9582,183.8159,12.2544 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.1126,16.8442,195.9724,13.0648 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,6.5076,16.1131,204.8649,13.6577 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,13.2052,15.8813,207.8550,-37.9298 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,26.5533,15.7958,208.9801,43.9034 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0676,24.2458,136.1475,9.0765 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1387,23.6314,139.6870,9.3125 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.2728,24.0216,137.4180,9.1612 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.5876,22.3071,147.9798,9.8653 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.4662,17.8796,184.6236,12.3082 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.1136,16.8386,196.0381,13.0692 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1372,23.8911,138.1686,9.2112 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.2738,23.9316,137.9348,9.1957 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.5872,22.3233,147.8722,9.8581 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.4458,18.1310,182.0638,12.1376 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.1368,16.7141,197.4976,13.1665 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,6.4162,16.3427,201.9857,13.4657 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.2740,23.9176,138.0158,9.2011 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.5800,22.5988,146.0695,9.7380 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.4595,17.9611,183.7857,12.2524 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.0984,16.9211,195.0822,13.0055 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,6.4903,16.1561,204.3191,13.6213 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,13.1687,15.9252,207.2811,-37.8250 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.5855,22.3859,147.4589,9.8306 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.4746,17.7769,185.6908,12.3794 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.1073,16.8730,195.6382,13.0425 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,6.4985,16.1356,204.5791,13.6386 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,13.3353,15.7263,209.9025,-38.3034 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,26.9030,15.5905,211.7316,44.4814 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.4540,18.0290,183.0936,12.2062 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.1314,16.7431,197.1556,13.1437 -200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,6.4141,16.3480,201.9211,13.4614 -200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,13.2231,15.8597,208.1375,-37.9813 -200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,26.2168,15.9985,206.3317,43.3470 -200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,53.6958,15.6225,211.2984,-586.9401 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0134,15.2346,216.6777,6.9896 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0266,15.4085,214.2323,6.9107 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0545,15.0233,219.7251,7.0879 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1093,14.9944,220.1483,7.1016 -200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2193,14.9437,220.8951,7.1256 -200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.4379,14.9647,220.5860,7.1157 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0267,15.3207,215.4599,6.9503 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0546,15.0008,220.0543,7.0985 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1094,14.9822,220.3278,7.1073 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9583,220.6805,7.1187 -200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9848,220.2903,7.1061 -200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,0.9374,13.9828,236.0765,7.6154 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0541,15.1494,217.8961,7.0289 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1089,15.0502,219.3323,7.0752 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2189,14.9698,220.5113,7.1133 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9443,220.8864,7.1254 -200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,0.9337,14.0372,235.1611,7.5858 -200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.0220,12.9647,254.6154,8.2134 -200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1087,15.0688,219.0623,7.0665 -200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9847,220.2915,7.1062 -200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.4346,15.0800,218.8995,7.0613 -200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,0.9384,13.9682,236.3232,7.6233 -200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.0175,12.9935,254.0510,8.1952 -200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,4.1609,12.6004,261.9751,8.4508 -200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9811,220.3445,7.1079 -200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9470,220.8474,7.1241 -200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,0.9425,13.9075,237.3533,7.6566 -200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.0193,12.9817,254.2807,8.2026 -200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,4.1060,12.7687,258.5221,8.3394 -200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,8.5023,12.3329,267.6588,-26.8734 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0269,15.2501,216.4575,6.9825 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0546,15.0017,220.0414,7.0981 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1090,15.0299,219.6287,7.0848 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2186,14.9877,220.2466,7.1047 -200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.4382,14.9568,220.7025,7.1194 -200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,0.9368,13.9922,235.9171,7.6102 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0542,15.1196,218.3266,7.0428 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1092,15.0007,220.0570,7.0986 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2159,15.1799,217.4583,7.0148 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9815,220.3387,7.1077 -200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,0.9386,13.9650,236.3773,7.6251 -200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.0236,12.9544,254.8161,8.2199 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1093,14.9932,220.1666,7.1021 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2187,14.9802,220.3572,7.1083 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.4388,14.9344,221.0333,7.1301 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,0.9327,14.0529,234.8988,7.5774 -200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.0367,12.8711,256.4670,8.2731 -200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,4.1018,12.7819,258.2559,8.3308 -200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2188,14.9790,220.3750,7.1089 -200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.4386,14.9426,220.9122,7.1262 -200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,0.9360,14.0039,235.7196,7.6039 -200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.0310,12.9071,255.7514,8.2500 -200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,4.1461,12.6452,261.0469,8.4209 -200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,8.3325,12.5842,262.3128,-26.3366 -200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.4385,14.9469,220.8478,7.1241 -200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,0.9403,13.9390,236.8176,7.6393 -200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.0259,12.9397,255.1062,8.2292 -200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,4.1068,12.7662,258.5733,8.3411 -200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,8.4559,12.4005,266.1989,-26.7268 -200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,17.0485,12.3011,268.3504,-26.9428 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0545,15.0353,219.5506,7.0823 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1083,15.1228,218.2803,7.0413 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2193,14.9435,220.8982,7.1257 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.4371,14.9928,220.1717,7.1023 -200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,0.9377,13.9786,236.1473,7.6177 -200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.0308,12.9084,255.7246,8.2492 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1092,14.9993,220.0768,7.0993 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2156,15.2008,217.1597,7.0052 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.4348,15.0713,219.0254,7.0653 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,0.9381,13.9724,236.2512,7.6210 -200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.0138,13.0174,253.5827,8.1801 -200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,4.1049,12.7722,258.4526,8.3372 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2196,14.9241,221.1865,7.1350 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9833,220.3117,7.1068 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,0.9391,13.9572,236.5088,7.6293 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.0364,12.8726,256.4356,8.2721 -200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,4.1083,12.7618,258.6626,8.3440 -200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,8.5071,12.3259,267.8100,-26.8886 -200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.4374,14.9829,220.3184,7.1070 -200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,0.9337,14.0376,235.1549,7.5856 -200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.0285,12.9228,255.4397,8.2400 -200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,4.1517,12.6282,261.3994,8.4322 -200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,8.3354,12.5797,262.4065,-26.3460 -200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,17.1852,12.2033,270.5016,-27.1588 -200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,0.9372,13.9857,236.0275,7.6138 -200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.0181,12.9897,254.1243,8.1976 -200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,4.1102,12.7557,258.7871,8.3480 -200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,8.5143,12.3155,268.0368,-26.9113 -200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,16.7462,12.5231,263.5925,-26.4651 -200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,34.3474,12.2114,270.3206,965.4307 -200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1091,15.0122,219.8883,7.0932 -200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9554,220.7223,7.1201 -200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.4372,14.9912,220.1951,7.1031 -200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,0.9347,14.0224,235.4083,7.5938 -200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.0181,12.9898,254.1230,8.1975 -200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,4.0964,12.7986,257.9188,8.3200 -200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2191,14.9549,220.7300,7.1203 -200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.4380,14.9628,220.6131,7.1166 -200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,0.9370,13.9889,235.9727,7.6120 -200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.0005,13.1036,251.9156,8.1263 -200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,4.1569,12.6125,261.7241,8.4427 -200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,8.4536,12.4039,266.1250,-26.7194 -200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.4376,14.9762,220.4158,7.1102 -200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,0.9325,14.0565,234.8381,7.5754 -200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.0189,12.9848,254.2212,8.2007 -200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,4.1342,12.6818,260.2952,8.3966 -200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,8.4425,12.4201,265.7779,-26.6845 -200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,16.8367,12.4558,265.0161,-26.6080 -200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,0.9372,13.9857,236.0276,7.6138 -200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.0228,12.9595,254.7174,8.2167 -200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,4.1124,12.7491,258.9207,8.3523 -200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,8.5060,12.3275,267.7762,-26.8852 -200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,17.1890,12.2005,270.5622,-27.1649 -200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,33.5418,12.5047,263.9803,942.7868 -200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.1203,12.3637,266.9921,8.6126 -200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,4.1809,12.5402,263.2341,8.4914 -200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,8.3133,12.6132,261.7105,-26.2762 -200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,16.6965,12.5605,262.8088,-26.3864 -200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,33.7448,12.4295,265.5785,948.4946 -200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,68.5976,12.2287,269.9385,964.0660 -200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2194,14.9371,220.9935,7.1288 -200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.4381,14.9604,220.6498,7.1177 -200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,0.9245,14.1782,232.8227,7.5104 -200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.0184,12.9880,254.1572,8.1986 -200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,4.1707,12.5708,262.5927,8.4707 -200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,8.2933,12.6437,261.0782,-26.2127 -200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.4371,14.9927,220.1744,7.1024 -200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,0.9394,13.9534,236.5739,7.6314 -200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.0204,12.9749,254.4147,8.2069 -200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,4.1678,12.5794,262.4123,8.4649 -200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,8.3336,12.5825,262.3480,-26.3402 -200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,17.0020,12.3347,267.6182,-26.8693 -200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,0.9336,14.0390,235.1313,7.5849 -200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.0218,12.9657,254.5951,8.2127 -200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,4.1207,12.7233,259.4454,8.3692 -200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,8.3560,12.5488,263.0527,-26.4109 -200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,16.7676,12.5072,263.9284,-26.4988 -200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,33.4795,12.5280,263.4900,941.0357 -200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.0220,12.9643,254.6225,8.2136 -200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,4.0872,12.8275,257.3383,8.3012 -200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,8.4447,12.4169,265.8471,-26.6915 -200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,17.0434,12.3048,268.2701,-26.9347 -200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,33.4924,12.5231,263.5920,941.3999 -200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,68.4806,12.2496,269.4779,962.4209 -200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,4.1498,12.6341,261.2772,8.4283 -200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,8.4875,12.3543,267.1943,-26.8267 -200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,16.7591,12.5135,263.7955,-26.4855 -200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,33.6675,12.4580,264.9700,946.3215 -200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,68.4488,12.2553,269.3528,961.9742 -200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,136.3839,12.3015,268.3420,958.3643 diff --git a/scripts/results_aos_skylakesp2.txt b/scripts/results_aos_skylakesp2.txt deleted file mode 100644 index 631b187..0000000 --- a/scripts/results_aos_skylakesp2.txt +++ /dev/null @@ -1,900 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0017,30.3465,108.7769,15.5396 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0035,29.4117,112.2341,16.0334 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0068,29.9117,110.3582,15.7655 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0140,29.2747,112.7597,16.1085 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0277,29.6271,111.4183,15.9169 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0588,27.8858,118.3758,16.9108 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0035,29.2900,112.7006,16.1001 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0071,28.8960,114.2372,16.3196 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0138,29.7567,110.9330,15.8476 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9645,113.9670,16.2810 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0589,27.8278,118.6226,16.9461 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2126,117.0045,16.7149 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.1692,113.1674,16.1668 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0138,29.7129,111.0967,15.8710 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1939,113.0715,16.1531 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0575,28.5109,115.7801,16.5400 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7097,119.1278,17.0183 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.9053,118.2930,16.8990 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0143,28.6695,115.1397,16.4485 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8051,114.5978,16.3711 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0586,27.9695,118.0216,16.8602 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7722,118.8600,16.9800 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2282,28.7202,114.9367,16.4195 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5880,22.2904,148.0906,21.1558 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0281,29.1687,113.1693,16.1670 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0587,27.9318,118.1807,16.8830 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1181,27.7405,118.9959,16.9994 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2362,27.7451,118.9758,16.9965 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.5785,22.6560,145.7012,20.8145 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.4375,18.2361,181.0141,25.8592 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0035,29.3622,112.4235,16.0605 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0068,29.9101,110.3639,15.7663 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0141,29.0417,113.6642,16.2377 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0281,29.1617,113.1963,16.1709 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0585,28.0111,117.8460,16.8351 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7088,119.1318,17.0188 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0069,29.8459,110.6015,15.8002 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0139,29.4463,112.1024,16.0146 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0277,29.5525,111.6996,15.9571 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0579,28.3017,116.6362,16.6623 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1145,28.6203,115.3378,16.4768 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2280,28.7474,114.8278,16.4040 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0140,29.3212,112.5807,16.0830 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0277,29.5887,111.5627,15.9375 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0572,28.6587,115.1831,16.4547 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1178,27.8274,118.6242,16.9463 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2344,27.9549,118.0829,16.8690 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.5755,22.7750,144.9394,20.7056 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0283,28.9347,114.0844,16.2978 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0586,27.9741,118.0018,16.8574 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3512,116.4326,16.6332 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2286,28.6691,115.1416,16.4488 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.5765,22.7365,145.1848,20.7407 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.4350,18.2676,180.7024,25.8146 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0584,28.0706,117.5963,16.7995 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1148,28.5532,115.6087,16.5155 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2361,27.7596,118.9138,16.9877 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.5871,22.3246,147.8639,21.1234 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.4440,18.1544,181.8290,25.9756 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.0284,17.3122,190.6752,27.2393 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.1585,113.2087,16.1727 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0138,29.6911,111.1780,15.8826 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0283,28.9797,113.9074,16.2725 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0587,27.9252,118.2088,16.8870 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7026,119.1586,17.0227 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2341,27.9895,117.9373,16.8482 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.7942,114.6411,16.3773 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9327,114.0924,16.2989 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0570,28.7438,114.8422,16.4060 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1146,28.5861,115.4759,16.4966 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2326,28.1699,117.1817,16.7402 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.5820,22.5202,146.5794,20.9399 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6319,115.2912,16.4702 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0577,28.4037,116.2174,16.6025 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1157,28.3232,116.5474,16.6496 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2272,28.8476,114.4289,16.3470 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5853,22.3948,147.4001,21.0572 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.4359,18.2569,180.8082,25.8297 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0592,27.6563,119.3580,17.0511 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1175,27.8953,118.3353,16.9050 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2339,28.0208,117.8051,16.8293 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.5877,22.3036,148.0030,21.1433 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.4163,18.5085,178.3503,25.4786 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.0250,17.3321,190.4557,27.2080 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1184,27.6850,119.2343,17.0335 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2318,28.2692,116.7704,16.6815 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.5828,22.4888,146.7843,20.9692 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.4080,18.6177,177.3041,25.3292 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.0668,17.0956,193.0906,27.5844 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.2702,16.7233,197.3894,28.1985 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.7469,110.9697,15.8528 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0280,29.2260,112.9475,16.1354 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0592,27.6594,119.3447,17.0492 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1176,27.8590,118.4893,16.9270 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2335,28.0716,117.5922,16.7989 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.5712,22.9486,143.8433,20.5490 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.4205,112.2006,16.0287 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1302,117.3473,16.7639 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1179,27.8007,118.7378,16.9625 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2297,28.5347,115.6839,16.5263 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.5933,22.0925,149.4173,21.3453 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.4077,18.6223,177.2608,25.3230 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0584,28.0354,117.7439,16.8206 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1151,28.4770,115.9181,16.5597 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2362,27.7498,118.9559,16.9937 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.5820,22.5213,146.5721,20.9389 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.4174,18.4944,178.4868,25.4981 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.0733,17.0595,193.4992,27.6427 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4535,116.0140,16.5734 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2266,28.9244,114.1250,16.3036 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.5804,22.5825,146.1755,20.8822 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.4367,18.2460,180.9162,25.8452 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.0375,17.2607,191.2436,27.3205 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.2335,16.8215,196.2366,28.0338 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2302,28.4738,115.9312,16.5616 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.5861,22.3652,147.5953,21.0850 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.4180,18.4875,178.5533,25.5076 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.0346,17.2770,191.0631,27.2947 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.3025,16.6376,198.4062,28.3437 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.7814,16.4079,201.1838,28.7405 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0283,28.9709,113.9419,16.2774 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1578,117.2320,16.7474 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1183,27.7027,119.1582,17.0226 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2278,28.7749,114.7179,16.3883 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3280,147.8415,21.1202 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.4253,18.3927,179.4738,25.6391 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0583,28.1031,117.4602,16.7800 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1160,28.2362,116.9066,16.7009 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2346,27.9345,118.1694,16.8813 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.5759,22.7579,145.0484,20.7212 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.4412,18.1889,181.4842,25.9263 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.0304,17.3007,190.8014,27.2573 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4352,116.0884,16.5841 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2329,28.1400,117.3061,16.7580 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5882,22.2847,148.1284,21.1612 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.4200,18.4609,178.8099,25.5443 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.0645,17.1084,192.9467,27.5638 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.2823,16.6910,197.7714,28.2531 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2325,28.1827,117.1285,16.7326 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5814,22.5459,146.4124,20.9161 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.4327,18.2977,180.4052,25.7722 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.0435,17.2262,191.6265,27.3752 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.2562,16.7606,196.9494,28.1356 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.8218,16.3562,201.8198,28.8314 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.5803,22.5887,146.1352,20.8765 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.4161,18.5111,178.3255,25.4751 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.0288,17.3098,190.7007,27.2430 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.2470,16.7853,196.6601,28.0943 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.7711,16.4211,201.0219,28.7174 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.5759,16.3994,201.2874,-62.1257 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.4446,178.9684,11.9312 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0112,18.2150,181.2240,12.0816 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0224,18.3113,180.2714,12.0181 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0447,18.3455,179.9354,11.9957 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0905,18.1055,182.3198,12.1547 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1819,18.0138,183.2489,12.2166 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0111,18.4483,178.9328,11.9289 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0222,18.4121,179.2842,11.9523 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1169,182.2060,12.1471 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0921,17.7870,185.5850,12.3723 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1818,18.0274,183.1101,12.2073 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3687,17.7742,185.7186,12.3812 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0224,18.3173,180.2120,12.0141 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0459,17.8317,185.1201,12.3413 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0907,18.0668,182.7105,12.1807 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1836,17.8502,184.9274,12.3285 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3632,18.0417,182.9653,12.1977 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.8405,15.5939,211.6859,14.1124 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.1000,182.3761,12.1584 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0906,18.0813,182.5645,12.1710 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8212,185.2292,12.3486 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3639,18.0100,183.2872,12.2191 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.8393,15.6170,211.3718,14.0915 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7298,15.1546,217.8222,14.5215 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9284,184.1209,12.2747 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1847,17.7401,186.0756,12.4050 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9308,184.0962,12.2731 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6689,210.6717,14.0448 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7282,15.1685,217.6226,14.5082 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.4849,15.0444,219.4168,14.6278 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0111,18.4278,179.1319,11.9421 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0226,18.1638,181.7354,12.1157 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0453,18.0726,182.6524,12.1768 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0920,17.8152,185.2914,12.3528 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1823,17.9748,183.6461,12.2431 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3658,17.9157,184.2522,12.2835 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0222,18.4192,179.2152,11.9477 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0444,18.4360,179.0522,11.9368 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0916,17.8863,184.5548,12.3037 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8220,185.2203,12.3480 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3664,17.8863,184.5542,12.3036 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.8380,15.6408,211.0501,14.0700 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.0660,182.7192,12.1813 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0919,17.8192,185.2493,12.3500 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8059,185.3877,12.3592 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3670,17.8573,184.8539,12.3236 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.8359,15.6812,210.5074,14.0338 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7319,15.1360,218.0891,14.5393 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0904,18.1311,182.0625,12.1375 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9638,183.7583,12.2506 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3648,17.9625,183.7718,12.2515 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8361,15.6759,210.5784,14.0386 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7322,15.1336,218.1245,14.5416 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.4793,15.0688,219.0625,14.6042 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1843,17.7795,185.6637,12.3776 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3625,18.0764,182.6137,12.1742 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.8262,15.8645,208.0749,13.8717 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1748,217.5316,14.5021 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.4846,15.0457,219.3977,14.6265 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,7.0206,14.9356,221.0153,14.7344 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0226,18.1117,182.2579,12.1505 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0449,18.2408,180.9682,12.0645 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0919,17.8350,185.0856,12.3390 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0462,182.9196,12.1946 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3678,17.8165,185.2778,12.3519 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.8404,15.5960,211.6567,14.1104 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0450,18.2228,181.1466,12.0764 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0908,18.0431,182.9508,12.1967 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1820,18.0031,183.3572,12.2238 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7458,186.0162,12.4011 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.8347,15.7034,210.2096,14.0140 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7291,15.1608,217.7328,14.5155 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0909,18.0184,183.2018,12.2135 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9630,183.7665,12.2511 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3699,17.7162,186.3271,12.4218 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.8338,15.7207,209.9783,13.9986 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7287,15.1644,217.6807,14.5120 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.4878,15.0321,219.5966,14.6398 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8096,185.3495,12.3566 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0034,183.3538,12.2236 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.8352,15.6942,210.3329,14.0222 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1744,217.5369,14.5025 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.4834,15.0510,219.3216,14.6214 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,7.0276,14.9209,221.2334,14.7489 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3636,18.0229,183.1558,12.2104 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.8278,15.8337,208.4795,13.8986 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7258,15.1897,217.3186,14.4879 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.4981,14.9878,220.2464,14.6831 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,7.0395,14.8955,221.6102,14.7740 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1277,14.8442,222.3762,-40.5796 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0454,18.0286,183.0981,12.2065 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7984,185.4660,12.3644 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1820,18.0071,183.3167,12.2211 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3688,17.7722,185.7397,12.3826 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.8394,15.6154,211.3937,14.0929 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7272,15.1777,217.4896,14.4993 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0922,17.7751,185.7089,12.3806 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1847,17.7401,186.0755,12.4050 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3650,17.9548,183.8507,12.2567 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.8342,15.7128,210.0837,14.0056 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7343,15.1151,218.3913,14.5594 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.4881,15.0309,219.6142,14.6409 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1842,17.7899,185.5548,12.3703 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3635,18.0279,183.1051,12.2070 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.8402,15.5994,211.6101,14.1073 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7321,15.1345,218.1105,14.5407 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.4956,14.9983,220.0914,14.6728 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,7.0035,14.9722,220.4748,14.6983 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3676,17.8286,185.1519,12.3435 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.8358,15.6819,210.4980,14.0332 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7292,15.1599,217.7456,14.5164 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.4836,15.0501,219.3342,14.6223 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,7.0147,14.9483,220.8277,14.7218 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1095,14.8634,222.0885,-40.5271 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.8323,15.7487,209.6045,13.9736 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7337,15.1204,218.3147,14.5543 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.4854,15.0424,219.4469,14.6298 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,6.9997,14.9803,220.3564,14.6904 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,14.1000,14.8734,221.9396,-40.4999 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,28.5006,14.7165,224.3054,47.1230 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0928,17.6461,187.0664,12.4711 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1819,18.0106,183.2808,12.2187 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3692,17.7502,185.9693,12.3980 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.8337,15.7213,209.9699,13.9980 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7324,15.1317,218.1512,14.5434 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.4837,15.0497,219.3394,14.6226 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8183,185.2592,12.3506 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3694,17.7413,186.0627,12.4042 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.8317,15.7603,209.4500,13.9633 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7289,15.1629,217.7025,14.5135 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.4803,15.0645,219.1241,14.6083 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,7.0112,14.9557,220.7180,14.7145 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3702,17.7021,186.4753,12.4317 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.8310,15.7727,209.2857,13.9524 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7311,15.1428,217.9918,14.5328 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.4783,15.0730,219.0016,14.6001 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,7.1692,14.6261,225.6924,15.0462 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0752,14.8996,221.5499,-40.4288 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8301,15.7907,209.0467,13.9364 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7349,15.1099,218.4658,14.5644 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.4954,14.9994,220.0760,14.6717 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,7.0085,14.9614,220.6340,14.7089 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0931,14.8807,221.8305,-40.4800 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,28.3617,14.7886,223.2118,46.8932 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7273,15.1768,217.5037,14.5002 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.4938,15.0061,219.9772,14.6651 -200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,7.0357,14.9037,221.4885,14.7659 -200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,14.1410,14.8303,222.5848,-40.6177 -200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,28.4706,14.7320,224.0696,47.0734 -200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,56.5696,14.8288,222.6070,-618.3528 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1141,297.0107,9.5810 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0363,11.2779,292.6971,9.4418 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0742,11.0449,298.8711,9.6410 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1481,11.0605,298.4503,9.6274 -200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2949,11.1106,297.1028,9.5840 -200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5983,10.9532,301.3734,9.7217 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1204,296.8413,9.5755 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0742,11.0352,299.1326,9.6494 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0465,298.8270,9.6396 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2961,11.0655,298.3154,9.6231 -200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5986,10.9475,301.5306,9.7268 -200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2720,10.3045,320.3467,10.3338 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0743,11.0186,299.5856,9.6641 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1484,11.0422,298.9442,9.6434 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2966,11.0488,298.7648,9.6376 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5989,10.9436,301.6379,9.7303 -200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2770,10.2640,321.6110,10.3745 -200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6173,10.0157,329.5828,10.6317 -200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1488,11.0087,299.8546,9.6727 -200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0310,299.2466,9.6531 -200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5925,11.0611,298.4334,9.6269 -200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2776,10.2593,321.7576,10.3793 -200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6138,10.0294,329.1324,10.6172 -200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.2766,9.9362,332.2209,10.7168 -200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2965,11.0517,298.6869,9.6351 -200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5938,11.0371,299.0820,9.6478 -200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2778,10.2578,321.8033,10.3808 -200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6155,10.0229,329.3472,10.6241 -200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.2779,9.9336,332.3065,10.7196 -200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,10.6334,9.8612,334.7478,-33.6092 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0367,11.1554,295.9115,9.5455 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0740,11.0655,298.3153,9.6231 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1486,11.0227,299.4742,9.6605 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0293,299.2935,9.6546 -200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9192,302.3105,9.7520 -200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2766,10.2675,321.4994,10.3709 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0741,11.0621,298.4065,9.6260 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1473,11.1195,296.8666,9.5763 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2977,11.0065,299.9133,9.6746 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5911,11.0872,297.7294,9.6042 -200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2751,10.2790,321.1408,10.3594 -200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6235,9.9923,330.3550,10.6566 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0789,297.9548,9.6114 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2968,11.0408,298.9830,9.6446 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5965,10.9874,300.4339,9.6914 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2750,10.2803,321.0997,10.3581 -200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6219,9.9984,330.1535,10.6501 -200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.2861,9.9183,332.8200,10.7361 -200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2988,10.9680,300.9674,9.7086 -200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.6009,10.9058,302.6840,9.7640 -200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2771,10.2631,321.6368,10.3754 -200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6137,10.0297,329.1236,10.6169 -200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.2858,9.9188,332.8016,10.7355 -200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,10.6487,9.8470,335.2298,-33.6576 -200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5968,10.9820,300.5841,9.6963 -200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2733,321.3197,10.3652 -200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0147,329.6169,10.6328 -200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.2745,9.9401,332.0889,10.7125 -200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,10.6213,9.8724,334.3654,-33.5708 -200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3695,9.8138,336.3646,-33.7715 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0735,11.1455,296.1731,9.5540 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0346,299.1487,9.6500 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2974,11.0192,299.5679,9.6635 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5902,11.1047,297.2608,9.5891 -200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2747,10.2823,321.0372,10.3560 -200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6211,10.0014,330.0542,10.6469 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1464,11.1916,294.9529,9.5146 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2968,11.0406,298.9861,9.6447 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5997,10.9280,302.0694,9.7442 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2908,320.7705,10.3474 -200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0146,329.6179,10.6328 -200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.2740,9.9410,332.0605,10.7116 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2980,10.9960,300.1990,9.6838 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5998,10.9255,302.1364,9.7463 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2795,10.2436,322.2487,10.3951 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6165,10.0187,329.4831,10.6285 -200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.2867,9.9172,332.8567,10.7373 -200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,10.6383,9.8566,334.9024,-33.6247 -200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5986,10.9484,301.5060,9.7260 -200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2760,10.2722,321.3535,10.3662 -200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6148,10.0254,329.2634,10.6214 -200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.2901,9.9108,333.0721,10.7443 -200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,10.6227,9.8711,334.4096,-33.5753 -200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3623,9.8171,336.2509,-33.7601 -200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2790,10.2483,322.1007,10.3903 -200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6180,10.0131,329.6669,10.6344 -200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.2855,9.9195,332.7805,10.7349 -200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,10.6399,9.8552,334.9509,-33.6296 -200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3698,9.8136,336.3697,-33.7721 -200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,43.1537,9.7195,339.6280,1212.9573 -200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1487,11.0146,299.6924,9.6675 -200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0283,299.3212,9.6555 -200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.6031,10.8658,303.7984,9.7999 -200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2738,10.2897,320.8047,10.3485 -200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6164,10.0192,329.4670,10.6280 -200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.2957,9.9002,333.4274,10.7557 -200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2961,11.0654,298.3166,9.6231 -200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5972,10.9736,300.8139,9.7037 -200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2758,10.2741,321.2934,10.3643 -200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6237,9.9914,330.3840,10.6575 -200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.2833,9.9235,332.6437,10.7304 -200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,10.6768,9.8211,336.1128,-33.7463 -200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9182,302.3380,9.7528 -200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2746,10.2830,321.0152,10.3553 -200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6157,10.0219,329.3779,10.6251 -200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.2852,9.9200,332.7618,10.7343 -200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,10.6337,9.8609,334.7568,-33.6101 -200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3454,9.8248,335.9852,-33.7335 -200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2752,10.2788,321.1461,10.3596 -200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6087,10.0488,328.4974,10.5967 -200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.2916,9.9080,333.1646,10.7472 -200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,10.6600,9.8365,335.5854,-33.6933 -200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,21.2981,9.8467,335.2408,-33.6587 -200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,44.2297,9.4830,348.0965,1243.2018 -200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6099,10.0444,328.6422,10.6014 -200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.2859,9.9185,332.8113,10.7358 -200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,10.6227,9.8711,334.4097,-33.5753 -200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3381,9.8282,335.8697,-33.7219 -200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,43.4748,9.6477,342.1553,1221.9831 -200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,85.5724,9.8029,336.7359,1202.6281 -200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2976,11.0103,299.8114,9.6713 -200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5956,11.0036,299.9923,9.6772 -200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2751,10.2796,321.1224,10.3588 -200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.6173,10.0158,329.5782,10.6316 -200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.2761,9.9371,332.1908,10.7158 -200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,10.6702,9.8271,335.9071,-33.7256 -200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5979,10.9603,301.1766,9.7154 -200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2730,10.2965,320.5931,10.3417 -200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6162,10.0199,329.4430,10.6272 -200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.2847,9.9208,332.7343,10.7334 -200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,10.6461,9.8494,335.1478,-33.6494 -200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,21.2812,9.8545,334.9748,-33.6320 -200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2672,10.3434,319.1396,10.2948 -200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6178,10.0139,329.6408,10.6336 -200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.2912,9.9087,333.1431,10.7466 -200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,10.6585,9.8379,335.5386,-33.6886 -200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3308,9.8316,335.7558,-33.7104 -200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,42.6895,9.8252,335.9745,1199.9088 -200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6194,10.0078,329.8425,10.6401 -200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.2909,9.9093,333.1209,10.7458 -200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,10.6534,9.8426,335.3774,-33.6724 -200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3611,9.8176,336.2327,-33.7583 -200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,43.1672,9.7164,339.7341,1213.3361 -200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,86.3298,9.7169,339.7161,1213.2719 -200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.2673,9.9537,331.6370,10.6980 -200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,10.6459,9.8496,335.1422,-33.6488 -200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,21.2973,9.8471,335.2271,-33.6573 -200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,42.8531,9.7876,337.2623,1204.5083 -200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,85.7954,9.7775,337.6135,1205.7624 -200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,175.9705,9.5341,346.2307,1236.5383 -1000,4x4x2,8,256,21.5040,6.1440,9.2160,0.0083,30.9670,77.5342,11.0763 -1000,4x4x4,8,512,43.0080,12.2880,18.4320,0.0174,29.3700,81.7501,11.6786 -1000,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0343,29.8299,80.4898,11.4985 -1000,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0691,29.6372,81.0130,11.5733 -1000,4x4x32,8,4096,344.0640,98.3040,147.4560,0.1401,29.2325,82.1345,11.7335 -1000,4x4x64,8,8192,688.1280,196.6080,294.9120,0.2881,28.4384,84.4280,12.0611 -1000,4x8x2,8,512,43.0080,12.2880,18.4320,0.0170,30.1311,79.6851,11.3836 -1000,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0348,29.4583,81.5050,11.6436 -1000,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0689,29.7161,80.7979,11.5426 -1000,4x8x16,8,4096,344.0640,98.3040,147.4560,0.1404,29.1689,82.3138,11.7591 -1000,4x8x32,8,8192,688.1280,196.6080,294.9120,0.2892,28.3229,84.7724,12.1103 -1000,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.5720,28.6452,83.8185,11.9741 -1000,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0356,28.7810,83.4231,11.9176 -1000,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0688,29.7735,80.6421,11.5203 -1000,4x16x8,8,4096,344.0640,98.3040,147.4560,0.1422,28.8142,83.3269,11.9038 -1000,4x16x16,8,8192,688.1280,196.6080,294.9120,0.2883,28.4145,84.4992,12.0713 -1000,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.5915,27.6978,86.6857,12.3837 -1000,4x16x64,8,32768,2752.5120,786.4320,1179.6480,1.1573,28.3139,84.7992,12.1142 -1000,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0694,29.5152,81.3478,11.6211 -1000,4x32x4,8,4096,344.0640,98.3040,147.4560,0.1408,29.0865,82.5470,11.7924 -1000,4x32x8,8,8192,688.1280,196.6080,294.9120,0.2926,27.9986,85.7544,12.2506 -1000,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.5922,27.6675,86.7806,12.3972 -1000,4x32x32,8,32768,2752.5120,786.4320,1179.6480,1.1478,28.5484,84.1027,12.0147 -1000,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,2.9154,22.4796,106.8080,15.2583 -1000,4x64x2,8,4096,344.0640,98.3040,147.4560,0.1386,29.5472,81.2597,11.6085 -1000,4x64x4,8,8192,688.1280,196.6080,294.9120,0.2868,28.5604,84.0673,12.0096 -1000,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.5812,28.1914,85.1677,12.1668 -1000,4x64x16,8,32768,2752.5120,786.4320,1179.6480,1.1536,28.4058,84.5250,12.0750 -1000,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,2.9057,22.5544,106.4539,15.2077 -1000,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,7.0310,18.6421,128.7947,18.3992 -1000,8x4x2,8,512,43.0080,12.2880,18.4320,0.0170,30.0859,79.8048,11.4007 -1000,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0343,29.8537,80.4257,11.4894 -1000,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0697,29.3996,81.6679,11.6668 -1000,8x4x16,8,4096,344.0640,98.3040,147.4560,0.1376,29.7726,80.6447,11.5207 -1000,8x4x32,8,8192,688.1280,196.6080,294.9120,0.2908,28.1687,85.2363,12.1766 -1000,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.5743,28.5301,84.1566,12.0224 -1000,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0349,29.3367,81.8430,11.6919 -1000,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0694,29.5090,81.3651,11.6236 -1000,8x8x8,8,4096,344.0640,98.3040,147.4560,0.1426,28.7195,83.6016,11.9431 -1000,8x8x16,8,8192,688.1280,196.6080,294.9120,0.2867,28.5694,84.0408,12.0058 -1000,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.5736,28.5656,84.0520,12.0074 -1000,8x8x64,8,32768,2752.5120,786.4320,1179.6480,1.1689,28.0333,85.6482,12.2355 -1000,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0711,28.7897,83.3979,11.9140 -1000,8x16x4,8,4096,344.0640,98.3040,147.4560,0.1372,29.8442,80.4512,11.4930 -1000,8x16x8,8,8192,688.1280,196.6080,294.9120,0.2941,27.8531,86.2021,12.3146 -1000,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.5863,27.9445,85.9205,12.2744 -1000,8x16x32,8,32768,2752.5120,786.4320,1179.6480,1.1456,28.6026,83.9434,11.9919 -1000,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,2.8886,22.6878,105.8276,15.1182 -1000,8x32x2,8,4096,344.0640,98.3040,147.4560,0.1396,29.3343,81.8496,11.6928 -1000,8x32x4,8,8192,688.1280,196.6080,294.9120,0.2935,27.9113,86.0226,12.2889 -1000,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.5721,28.6397,83.8346,11.9764 -1000,8x32x16,8,32768,2752.5120,786.4320,1179.6480,1.1710,27.9820,85.8051,12.2579 -1000,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,2.8921,22.6607,105.9545,15.1364 -1000,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,7.1243,18.3979,130.5043,18.6435 -1000,8x64x2,8,8192,688.1280,196.6080,294.9120,0.2906,28.1914,85.1678,12.1668 -1000,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.5911,27.7178,86.6230,12.3747 -1000,8x64x8,8,32768,2752.5120,786.4320,1179.6480,1.1648,28.1307,85.3515,12.1931 -1000,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,2.9356,22.3249,107.5479,15.3640 -1000,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,7.1261,18.3933,130.5367,18.6481 -1000,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,15.3614,17.0651,140.6965,20.0995 -1000,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0358,28.6355,83.8469,11.9781 -1000,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0695,29.4591,81.5028,11.6433 -1000,16x4x8,8,4096,344.0640,98.3040,147.4560,0.1411,29.0285,82.7118,11.8160 -1000,16x4x16,8,8192,688.1280,196.6080,294.9120,0.2947,27.8009,86.3642,12.3377 -1000,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.5916,27.6949,86.6947,12.3850 -1000,16x4x64,8,32768,2752.5120,786.4320,1179.6480,1.1713,27.9752,85.8260,12.2609 -1000,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0690,29.7017,80.8372,11.5482 -1000,16x8x4,8,4096,344.0640,98.3040,147.4560,0.1416,28.9211,83.0191,11.8599 -1000,16x8x8,8,8192,688.1280,196.6080,294.9120,0.2923,28.0278,85.6651,12.2379 -1000,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.5905,27.7469,86.5321,12.3617 -1000,16x8x32,8,32768,2752.5120,786.4320,1179.6480,1.1391,28.7668,83.4641,11.9234 -1000,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,2.9559,22.1712,108.2939,15.4706 -1000,16x16x2,8,4096,344.0640,98.3040,147.4560,0.1393,29.4145,81.6263,11.6609 -1000,16x16x4,8,8192,688.1280,196.6080,294.9120,0.2840,28.8456,83.2363,11.8909 -1000,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.5932,27.6181,86.9358,12.4194 -1000,16x16x16,8,32768,2752.5120,786.4320,1179.6480,1.1747,27.8951,86.0725,12.2961 -1000,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,2.8668,22.8603,105.0292,15.0042 -1000,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,7.1309,18.3808,130.6257,18.6608 -1000,16x32x2,8,8192,688.1280,196.6080,294.9120,0.2898,28.2676,84.9383,12.1340 -1000,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.5868,27.9203,85.9949,12.2850 -1000,16x32x8,8,32768,2752.5120,786.4320,1179.6480,1.1752,27.8833,86.1089,12.3013 -1000,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,2.9443,22.2585,107.8690,15.4099 -1000,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,7.0845,18.5011,129.7760,18.5394 -1000,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,15.2361,17.2054,139.5488,19.9355 -1000,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.5867,27.9261,85.9769,12.2824 -1000,16x64x4,8,32768,2752.5120,786.4320,1179.6480,1.1651,28.1240,85.3720,12.1960 -1000,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,2.8820,22.7399,105.5853,15.0836 -1000,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,7.1805,18.2538,131.5341,18.7906 -1000,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,15.0906,17.3714,138.2160,19.7451 -1000,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,31.9739,16.3974,146.4258,20.9180 -1000,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0689,29.7095,80.8160,11.5451 -1000,32x4x4,8,4096,344.0640,98.3040,147.4560,0.1378,29.7248,80.7743,11.5392 -1000,32x4x8,8,8192,688.1280,196.6080,294.9120,0.2894,28.3078,84.8177,12.1168 -1000,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.5759,28.4518,84.3883,12.0555 -1000,32x4x32,8,32768,2752.5120,786.4320,1179.6480,1.1651,28.1237,85.3730,12.1961 -1000,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,2.8862,22.7065,105.7406,15.1058 -1000,32x8x2,8,4096,344.0640,98.3040,147.4560,0.1368,29.9362,80.2040,11.4577 -1000,32x8x4,8,8192,688.1280,196.6080,294.9120,0.2835,28.8986,83.0837,11.8691 -1000,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.5787,28.3102,84.8104,12.1158 -1000,32x8x16,8,32768,2752.5120,786.4320,1179.6480,1.1465,28.5810,84.0069,12.0010 -1000,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,2.8498,22.9967,104.4064,14.9152 -1000,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,7.0561,18.5757,129.2547,18.4650 -1000,32x16x2,8,8192,688.1280,196.6080,294.9120,0.2852,28.7235,83.5902,11.9415 -1000,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.5837,28.0686,85.5404,12.2201 -1000,32x16x8,8,32768,2752.5120,786.4320,1179.6480,1.1504,28.4845,84.2913,12.0416 -1000,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,2.8993,22.6042,106.2193,15.1742 -1000,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,7.0918,18.4823,129.9079,18.5583 -1000,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,15.4199,17.0004,141.2322,20.1760 -1000,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.5807,28.2129,85.1028,12.1575 -1000,32x32x4,8,32768,2752.5120,786.4320,1179.6480,1.1824,27.7128,86.6386,12.3769 -1000,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,2.8990,22.6067,106.2074,15.1725 -1000,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,7.0475,18.5983,129.0979,18.4426 -1000,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,15.3367,17.0926,140.4703,20.0672 -1000,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,31.7109,16.5334,145.2215,20.7459 -1000,32x64x2,8,32768,2752.5120,786.4320,1179.6480,1.1432,28.6634,83.7653,11.9665 -1000,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,2.8859,22.7092,105.7282,15.1040 -1000,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,7.0480,18.5970,129.1068,18.4438 -1000,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,15.1667,17.2842,138.9128,19.8447 -1000,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,31.3721,16.7119,143.6699,20.5243 -1000,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,64.7684,16.1896,148.3048,21.1864 -1000,64x4x2,8,4096,344.0640,98.3040,147.4560,0.1401,29.2284,82.1462,11.7352 -1000,64x4x4,8,8192,688.1280,196.6080,294.9120,0.2859,28.6484,83.8092,11.9727 -1000,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.5852,27.9971,85.7588,12.2513 -1000,64x4x16,8,32768,2752.5120,786.4320,1179.6480,1.1721,27.9556,85.8862,12.2695 -1000,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,2.9070,22.5442,106.5020,15.2146 -1000,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,7.0141,18.6868,128.4864,18.3552 -1000,64x8x2,8,8192,688.1280,196.6080,294.9120,0.2957,27.7067,86.6578,12.3797 -1000,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.5773,28.3785,84.6063,12.0866 -1000,64x8x8,8,32768,2752.5120,786.4320,1179.6480,1.1553,28.3623,84.6545,12.0935 -1000,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,2.9517,22.2026,108.1404,15.4486 -1000,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,7.3935,17.7279,135.4359,19.3480 -1000,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,15.1413,17.3132,138.6802,19.8115 -1000,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.5724,28.6252,83.8772,11.9825 -1000,64x16x4,8,32768,2752.5120,786.4320,1179.6480,1.1533,28.4121,84.5064,12.0723 -1000,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,2.9298,22.3690,107.3362,15.3337 -1000,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,7.0712,18.5361,129.5313,18.5045 -1000,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,15.2023,17.2437,139.2391,19.8913 -1000,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,31.2550,16.7745,143.1337,20.4477 -1000,64x32x2,8,32768,2752.5120,786.4320,1179.6480,1.1872,27.6006,86.9909,12.4273 -1000,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,2.9028,22.5766,106.3489,15.1927 -1000,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,7.0732,18.5308,129.5680,18.5097 -1000,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,15.3410,17.0878,140.5094,20.0728 -1000,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,31.6923,16.5431,145.1361,20.7337 -1000,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,64.2230,16.3271,147.0560,21.0080 -1000,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,2.8779,22.7720,105.4365,15.0624 -1000,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,7.0810,18.5103,129.7112,18.5302 -1000,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,15.1939,17.2532,139.1623,19.8803 -1000,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,31.4185,16.6872,143.8826,20.5547 -1000,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,63.5853,16.4909,145.5959,20.7994 -1000,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,125.9547,16.6500,144.2038,20.6005 -1000,4x4x2,16,512,59.3920,12.2880,34.8160,0.0280,18.2876,131.2913,8.7528 -1000,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0601,17.0372,140.9266,9.3951 -1000,4x4x8,16,2048,237.5680,49.1520,139.2640,0.1130,18.1276,132.4500,8.8300 -1000,4x4x16,16,4096,475.1360,98.3040,278.5280,0.2272,18.0306,133.1625,8.8775 -1000,4x4x32,16,8192,950.2720,196.6080,557.0560,0.4596,17.8244,134.7032,8.9802 -1000,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0747,132.8377,8.8558 -1000,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0562,18.2071,131.8715,8.7914 -1000,4x8x4,16,2048,237.5680,49.1520,139.2640,0.1116,18.3563,130.7997,8.7200 -1000,4x8x8,16,4096,475.1360,98.3040,278.5280,0.2282,17.9456,133.7934,8.9196 -1000,4x8x16,16,8192,950.2720,196.6080,557.0560,0.4603,17.7979,134.9035,8.9936 -1000,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.9207,17.7954,134.9228,8.9949 -1000,4x8x64,16,32768,3801.0880,786.4320,2228.2240,1.8206,17.9982,133.4024,8.8935 -1000,4x16x2,16,2048,237.5680,49.1520,139.2640,0.1129,18.1431,132.3366,8.8224 -1000,4x16x4,16,4096,475.1360,98.3040,278.5280,0.2266,18.0738,132.8439,8.8563 -1000,4x16x8,16,8192,950.2720,196.6080,557.0560,0.4606,17.7846,135.0044,9.0003 -1000,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0746,132.8387,8.8559 -1000,4x16x32,16,32768,3801.0880,786.4320,2228.2240,1.8156,18.0480,133.0340,8.8689 -1000,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,4.1961,15.6185,153.7282,10.2485 -1000,4x32x2,16,4096,475.1360,98.3040,278.5280,0.2227,18.3938,130.5333,8.7022 -1000,4x32x4,16,8192,950.2720,196.6080,557.0560,0.4560,17.9654,133.6456,8.9097 -1000,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.9065,18.0730,132.8501,8.8567 -1000,4x32x16,16,32768,3801.0880,786.4320,2228.2240,1.8438,17.7718,135.1017,9.0068 -1000,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,4.1937,15.6272,153.6423,10.2428 -1000,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,8.6363,15.1770,158.2004,10.5467 -1000,4x64x2,16,8192,950.2720,196.6080,557.0560,0.4594,17.8324,134.6428,8.9762 -1000,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.9249,17.7138,135.5442,9.0363 -1000,4x64x8,16,32768,3801.0880,786.4320,2228.2240,1.8450,17.7609,135.1846,9.0123 -1000,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,4.1901,15.6405,153.5118,10.2341 -1000,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,8.6339,15.1811,158.1575,10.5438 -1000,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,17.4726,15.0031,160.0333,10.6689 -1000,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0556,18.4242,130.3179,8.6879 -1000,8x4x4,16,2048,237.5680,49.1520,139.2640,0.1115,18.3608,130.7676,8.7178 -1000,8x4x8,16,4096,475.1360,98.3040,278.5280,0.2238,18.3034,131.1781,8.7452 -1000,8x4x16,16,8192,950.2720,196.6080,557.0560,0.4585,17.8671,134.3814,8.9588 -1000,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.9209,17.7921,134.9472,8.9965 -1000,8x4x64,16,32768,3801.0880,786.4320,2228.2240,1.8148,18.0560,132.9752,8.8650 -1000,8x8x2,16,2048,237.5680,49.1520,139.2640,0.1129,18.1326,132.4138,8.8276 -1000,8x8x4,16,4096,475.1360,98.3040,278.5280,0.2261,18.1147,132.5445,8.8363 -1000,8x8x8,16,8192,950.2720,196.6080,557.0560,0.4553,17.9909,133.4562,8.8971 -1000,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.9142,17.9220,133.9695,8.9313 -1000,8x8x32,16,32768,3801.0880,786.4320,2228.2240,1.8324,17.8830,134.2618,8.9508 -1000,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,4.1905,15.6392,153.5243,10.2350 -1000,8x16x2,16,4096,475.1360,98.3040,278.5280,0.2247,18.2328,131.6857,8.7790 -1000,8x16x4,16,8192,950.2720,196.6080,557.0560,0.4584,17.8694,134.3637,8.9576 -1000,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.9115,17.9756,133.5702,8.9047 -1000,8x16x16,16,32768,3801.0880,786.4320,2228.2240,1.8386,17.8221,134.7201,8.9813 -1000,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,4.1788,15.6830,153.0953,10.2064 -1000,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,8.6652,15.1262,158.7312,10.5821 -1000,8x32x2,16,8192,950.2720,196.6080,557.0560,0.4603,17.7970,134.9102,8.9940 -1000,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.9139,17.9273,133.9299,8.9287 -1000,8x32x8,16,32768,3801.0880,786.4320,2228.2240,1.8440,17.7700,135.1152,9.0077 -1000,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,4.8293,13.5705,176.9282,11.7952 -1000,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,8.6609,15.1338,158.6510,10.5767 -1000,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,17.4388,15.0322,159.7238,10.6483 -1000,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.9137,17.9323,133.8928,8.9262 -1000,8x64x4,16,32768,3801.0880,786.4320,2228.2240,1.8088,18.1163,132.5328,8.8355 -1000,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,4.1850,15.6597,153.3232,10.2215 -1000,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,8.6250,15.1968,157.9938,10.5329 -1000,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,17.4081,15.0587,159.4423,10.6295 -1000,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,35.3398,14.8356,161.8402,10.7893 -1000,16x4x2,16,2048,237.5680,49.1520,139.2640,0.1124,18.2263,131.7324,8.7822 -1000,16x4x4,16,4096,475.1360,98.3040,278.5280,0.2265,18.0842,132.7675,8.8512 -1000,16x4x8,16,8192,950.2720,196.6080,557.0560,0.4601,17.8055,134.8461,8.9897 -1000,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.9200,17.8089,134.8199,8.9880 -1000,16x4x32,16,32768,3801.0880,786.4320,2228.2240,1.8303,17.9035,134.1081,8.9405 -1000,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,4.1983,15.6100,153.8118,10.2541 -1000,16x8x2,16,4096,475.1360,98.3040,278.5280,0.2231,18.3580,130.7878,8.7192 -1000,16x8x4,16,8192,950.2720,196.6080,557.0560,0.4627,17.7039,135.6196,9.0413 -1000,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.9071,18.0624,132.9284,8.8619 -1000,16x8x16,16,32768,3801.0880,786.4320,2228.2240,1.8383,17.8252,134.6967,8.9798 -1000,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,4.1920,15.6337,153.5790,10.2386 -1000,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,8.6293,15.1892,158.0725,10.5382 -1000,16x16x2,16,8192,950.2720,196.6080,557.0560,0.4582,17.8769,134.3077,8.9538 -1000,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.9178,17.8520,134.4944,8.9663 -1000,16x16x8,16,32768,3801.0880,786.4320,2228.2240,1.8323,17.8835,134.2578,8.9505 -1000,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,4.1813,15.6735,153.1887,10.2126 -1000,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,8.6485,15.1555,158.4247,10.5616 -1000,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,17.3921,15.0726,159.2954,10.6197 -1000,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.9191,17.8264,134.6879,8.9792 -1000,16x32x4,16,32768,3801.0880,786.4320,2228.2240,1.8266,17.9393,133.8401,8.9227 -1000,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,4.1715,15.7105,152.8278,10.1885 -1000,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,8.6513,15.1506,158.4756,10.5650 -1000,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,17.5022,14.9778,160.3039,10.6869 -1000,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,35.1069,14.9340,160.7738,10.7183 -1000,16x64x2,16,32768,3801.0880,786.4320,2228.2240,1.8369,17.8391,134.5922,8.9728 -1000,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,4.1644,15.7371,152.5693,10.1713 -1000,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,8.6170,15.2109,157.8476,10.5232 -1000,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,17.4472,15.0250,159.8003,10.6534 -1000,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,35.0089,14.9758,160.3249,10.6883 -1000,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,72.1388,14.5355,165.1814,11.0121 -1000,32x4x2,16,4096,475.1360,98.3040,278.5280,0.2250,18.2023,131.9062,8.7937 -1000,32x4x4,16,8192,950.2720,196.6080,557.0560,0.4598,17.8161,134.7657,8.9844 -1000,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.9061,18.0816,132.7866,8.8524 -1000,32x4x16,16,32768,3801.0880,786.4320,2228.2240,1.8442,17.7680,135.1302,9.0087 -1000,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,4.2043,15.5878,154.0308,10.2687 -1000,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,8.6253,15.1962,158.0005,10.5334 -1000,32x8x2,16,8192,950.2720,196.6080,557.0560,0.4542,18.0361,133.1217,8.8748 -1000,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.9193,17.8219,134.7221,8.9815 -1000,32x8x8,16,32768,3801.0880,786.4320,2228.2240,1.8215,17.9900,133.4632,8.8975 -1000,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,4.1587,15.7590,152.3578,10.1572 -1000,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,8.6452,15.1613,158.3642,10.5576 -1000,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,17.4339,15.0365,159.6785,10.6452 -1000,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.9196,17.8166,134.7621,8.9841 -1000,32x16x4,16,32768,3801.0880,786.4320,2228.2240,1.8172,18.0323,133.1500,8.8767 -1000,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,4.1820,15.6710,153.2125,10.2142 -1000,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,8.6406,15.1693,158.2806,10.5520 -1000,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,17.4204,15.0481,159.5547,10.6370 -1000,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,35.0026,14.9786,160.2959,10.6864 -1000,32x32x2,16,32768,3801.0880,786.4320,2228.2240,1.8324,17.8826,134.2647,8.9510 -1000,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,4.1733,15.7036,152.8946,10.1930 -1000,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,8.6484,15.1556,158.4234,10.5616 -1000,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,17.4350,15.0355,159.6888,10.6459 -1000,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,35.0854,14.9432,160.6750,10.7117 -1000,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,70.6692,14.8378,161.8165,10.7878 -1000,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,4.1885,15.6465,153.4529,10.2302 -1000,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,8.6618,15.1321,158.6692,10.5779 -1000,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,17.4122,15.0552,159.4796,10.6320 -1000,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,34.9968,14.9810,160.2693,10.6846 -1000,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,71.3457,14.6971,163.3653,10.8910 -1000,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,142.7880,14.6872,163.4760,10.8984 -1000,64x4x2,16,8192,950.2720,196.6080,557.0560,0.4560,17.9634,133.6604,8.9107 -1000,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.9158,17.8900,134.2094,8.9473 -1000,64x4x8,16,32768,3801.0880,786.4320,2228.2240,1.8438,17.7723,135.0980,9.0065 -1000,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,4.1660,15.7313,152.6255,10.1750 -1000,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,8.6348,15.1795,158.1737,10.5449 -1000,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,17.5210,14.9617,160.4760,10.6984 -1000,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.9088,18.0283,133.1792,8.8786 -1000,64x8x4,16,32768,3801.0880,786.4320,2228.2240,1.8309,17.8973,134.1545,8.9436 -1000,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,4.2025,15.5945,153.9650,10.2643 -1000,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,8.6268,15.1937,158.0264,10.5351 -1000,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,17.4245,15.0446,159.5921,10.6395 -1000,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,35.3317,14.8390,161.8029,10.7869 -1000,64x16x2,16,32768,3801.0880,786.4320,2228.2240,1.8250,17.9552,133.7218,8.9148 -1000,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,4.1726,15.7062,152.8698,10.1913 -1000,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,8.6631,15.1299,158.6928,10.5795 -1000,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,17.3823,15.0811,159.2060,10.6137 -1000,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,34.9747,14.9905,160.1681,10.6779 -1000,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,70.8759,14.7945,162.2896,10.8193 -1000,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,4.2008,15.6010,153.9008,10.2601 -1000,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,8.6586,15.1378,158.6100,10.5740 -1000,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,17.4436,15.0281,159.7671,10.6511 -1000,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,35.1817,14.9023,161.1163,10.7411 -1000,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,71.6125,14.6424,163.9763,10.9318 -1000,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,143.0502,14.6603,163.7762,10.9184 -1000,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,8.6345,15.1801,158.1676,10.5445 -1000,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,17.5245,14.9587,160.5082,10.7005 -1000,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,35.1115,14.9321,160.7948,10.7197 -1000,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,71.1214,14.7435,162.8518,10.8568 -1000,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,143.4827,14.6161,164.2713,10.9514 -1000,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,283.9210,-0.3545,-6772.0256,-451.4684 -1000,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0902,11.3486,211.5671,6.8247 -1000,4x4x4,32,2048,368.6400,49.1520,270.3360,0.1812,11.3004,212.4704,6.8539 -1000,4x4x8,32,4096,737.2800,98.3040,540.6720,0.3681,11.1280,215.7622,6.9601 -1000,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.7372,11.1121,216.0702,6.9700 -1000,4x4x32,32,16384,2949.1200,393.2160,2162.6880,1.4782,11.0841,216.6173,6.9877 -1000,4x4x64,32,32768,5898.2400,786.4320,4325.3760,2.9977,10.9311,219.6483,7.0854 -1000,4x8x2,32,2048,368.6400,49.1520,270.3360,0.1831,11.1830,214.7001,6.9258 -1000,4x8x4,32,4096,737.2800,98.3040,540.6720,0.3708,11.0452,217.3798,7.0123 -1000,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.7423,11.0353,217.5744,7.0185 -1000,4x8x16,32,16384,2949.1200,393.2160,2162.6880,1.4850,11.0329,217.6212,7.0200 -1000,4x8x32,32,32768,5898.2400,786.4320,4325.3760,2.9915,10.9538,219.1933,7.0708 -1000,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,6.3738,10.2822,233.5111,7.5326 -1000,4x16x2,32,4096,737.2800,98.3040,540.6720,0.3720,11.0106,218.0628,7.0343 -1000,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.7425,11.0324,217.6320,7.0204 -1000,4x16x8,32,16384,2949.1200,393.2160,2162.6880,1.4858,11.0268,217.7423,7.0239 -1000,4x16x16,32,32768,5898.2400,786.4320,4325.3760,2.9797,10.9969,218.3335,7.0430 -1000,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,6.3757,10.2791,233.5812,7.5349 -1000,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,13.1968,9.9321,241.7404,7.7981 -1000,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.7442,11.0081,218.1128,7.0359 -1000,4x32x4,32,16384,2949.1200,393.2160,2162.6880,1.4890,11.0032,218.2089,7.0390 -1000,4x32x8,32,32768,5898.2400,786.4320,4325.3760,2.9839,10.9815,218.6413,7.0529 -1000,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,6.3759,10.2787,233.5892,7.5351 -1000,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,13.0549,10.0401,239.1414,7.7142 -1000,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,26.5356,9.8790,243.0420,7.8401 -1000,4x64x2,32,16384,2949.1200,393.2160,2162.6880,1.4778,11.0870,216.5590,6.9858 -1000,4x64x4,32,32768,5898.2400,786.4320,4325.3760,2.9831,10.9847,218.5774,7.0509 -1000,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,6.3862,10.2621,233.9666,7.5473 -1000,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,13.1334,9.9800,240.5807,7.7607 -1000,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,26.4259,9.9200,242.0371,7.8076 -1000,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,53.8714,9.7322,246.7066,7.9583 -1000,8x4x2,32,2048,368.6400,49.1520,270.3360,0.1834,11.1683,214.9841,6.9350 -1000,8x4x4,32,4096,737.2800,98.3040,540.6720,0.3706,11.0535,217.2172,7.0070 -1000,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.7387,11.0895,216.5115,6.9842 -1000,8x4x16,32,16384,2949.1200,393.2160,2162.6880,1.4829,11.0488,217.3094,7.0100 -1000,8x4x32,32,32768,5898.2400,786.4320,4325.3760,2.9946,10.9422,219.4260,7.0783 -1000,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,6.3676,10.2921,233.2858,7.5253 -1000,8x8x2,32,4096,737.2800,98.3040,540.6720,0.3697,11.0802,216.6930,6.9901 -1000,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.7463,10.9762,218.7468,7.0563 -1000,8x8x8,32,16384,2949.1200,393.2160,2162.6880,1.4900,10.9957,218.3571,7.0438 -1000,8x8x16,32,32768,5898.2400,786.4320,4325.3760,2.9865,10.9722,218.8253,7.0589 -1000,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,6.3751,10.2800,233.5598,7.5342 -1000,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,13.0598,10.0363,239.2326,7.7172 -1000,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.7391,11.0836,216.6270,6.9880 -1000,8x16x4,32,16384,2949.1200,393.2160,2162.6880,1.4744,11.1125,216.0630,6.9698 -1000,8x16x8,32,32768,5898.2400,786.4320,4325.3760,2.9826,10.9866,218.5399,7.0497 -1000,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,6.3835,10.2665,233.8681,7.5441 -1000,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,13.0897,10.0134,239.7787,7.7348 -1000,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,26.4301,9.9184,242.0754,7.8089 -1000,8x32x2,32,16384,2949.1200,393.2160,2162.6880,1.4847,11.0349,217.5818,7.0188 -1000,8x32x4,32,32768,5898.2400,786.4320,4325.3760,2.9873,10.9692,218.8857,7.0608 -1000,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,6.3839,10.2658,233.8828,7.5446 -1000,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,13.0760,10.0239,239.5278,7.7267 -1000,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,26.4446,9.9130,242.2084,7.8132 -1000,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,53.2448,9.8468,243.8367,7.8657 -1000,8x64x2,32,32768,5898.2400,786.4320,4325.3760,2.9830,10.9850,218.5698,7.0506 -1000,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,6.3740,10.2818,233.5201,7.5329 -1000,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,13.0821,10.0192,239.6396,7.7303 -1000,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,26.4722,9.9026,242.4609,7.8213 -1000,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,53.9286,9.7219,246.9686,7.9667 -1000,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,108.0731,9.7025,247.4627,7.9827 -1000,16x4x2,32,4096,737.2800,98.3040,540.6720,0.3691,11.0977,216.3506,6.9791 -1000,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.7398,11.0733,216.8286,6.9945 -1000,16x4x8,32,16384,2949.1200,393.2160,2162.6880,1.4866,11.0209,217.8594,7.0277 -1000,16x4x16,32,32768,5898.2400,786.4320,4325.3760,2.9906,10.9569,219.1318,7.0688 -1000,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,6.3724,10.2844,233.4603,7.5310 -1000,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,13.0838,10.0178,239.6722,7.7314 -1000,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.7357,11.1354,215.6189,6.9554 -1000,16x8x4,32,16384,2949.1200,393.2160,2162.6880,1.4879,11.0118,218.0381,7.0335 -1000,16x8x8,32,32768,5898.2400,786.4320,4325.3760,2.9957,10.9384,219.5020,7.0807 -1000,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,6.3740,10.2818,233.5198,7.5329 -1000,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,13.0834,10.0182,239.6639,7.7311 -1000,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,26.4693,9.9037,242.4344,7.8205 -1000,16x16x2,32,16384,2949.1200,393.2160,2162.6880,1.4863,11.0236,217.8045,7.0260 -1000,16x16x4,32,32768,5898.2400,786.4320,4325.3760,2.9977,10.9310,219.6508,7.0855 -1000,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,6.3658,10.2951,233.2189,7.5232 -1000,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,13.0569,10.0385,239.1787,7.7154 -1000,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,26.4757,9.9013,242.4937,7.8224 -1000,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,53.2599,9.8439,243.9062,7.8679 -1000,16x32x2,32,32768,5898.2400,786.4320,4325.3760,2.9927,10.9495,219.2798,7.0735 -1000,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,6.3878,10.2596,234.0254,7.5492 -1000,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,13.0650,10.0323,239.3277,7.7202 -1000,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,26.4047,9.9279,241.8432,7.8014 -1000,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,53.7802,9.7487,246.2890,7.9448 -1000,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,107.4784,9.7562,246.1009,7.9387 -1000,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,6.3794,10.2731,233.7173,7.5393 -1000,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,13.0662,10.0314,239.3486,7.7209 -1000,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,26.7841,9.7873,245.3178,7.9135 -1000,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,53.3277,9.8314,244.2168,7.8780 -1000,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,107.9683,9.7119,247.2227,7.9749 -1000,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,214.3031,9.7859,245.3527,7.9146 -1000,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.7426,11.0309,217.6612,7.0213 -1000,32x4x4,32,16384,2949.1200,393.2160,2162.6880,1.4894,11.0005,218.2626,7.0407 -1000,32x4x8,32,32768,5898.2400,786.4320,4325.3760,2.9852,10.9767,218.7364,7.0560 -1000,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,6.3911,10.2542,234.1482,7.5532 -1000,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,13.0791,10.0215,239.5854,7.7286 -1000,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,26.4275,9.9194,242.0518,7.8081 -1000,32x8x2,32,16384,2949.1200,393.2160,2162.6880,1.4820,11.0557,217.1738,7.0056 -1000,32x8x4,32,32768,5898.2400,786.4320,4325.3760,2.9772,11.0063,218.1474,7.0370 -1000,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,6.3678,10.2917,233.2947,7.5256 -1000,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,13.0689,10.0293,239.3989,7.7225 -1000,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,26.4323,9.9176,242.0958,7.8095 -1000,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,53.2360,9.8484,243.7967,7.8644 -1000,32x16x2,32,32768,5898.2400,786.4320,4325.3760,2.9766,11.0085,218.1046,7.0356 -1000,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,6.3747,10.2807,233.5454,7.5337 -1000,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,13.4372,9.7544,246.1454,7.9402 -1000,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,26.4996,9.8924,242.7121,7.8294 -1000,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,54.7582,9.5746,250.7676,8.0893 -1000,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,108.2222,9.6891,247.8041,7.9937 -1000,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,6.3767,10.2773,233.6206,7.5361 -1000,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,13.7663,9.5212,252.1739,8.1346 -1000,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,26.4448,9.9129,242.2106,7.8132 -1000,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,53.3462,9.8280,244.3011,7.8807 -1000,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,108.0679,9.7029,247.4509,7.9823 -1000,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,215.9838,9.7098,247.2768,7.9767 -1000,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,13.0597,10.0364,239.2292,7.7171 -1000,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,26.3953,9.9315,241.7572,7.7986 -1000,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,53.1987,9.8553,243.6259,7.8589 -1000,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,106.6929,9.8280,244.3024,7.8807 -1000,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,214.7515,9.7655,245.8660,7.9312 -1000,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,431.4337,-0.2333,-10290.4677,-331.9506 -1000,64x4x2,32,16384,2949.1200,393.2160,2162.6880,1.4879,11.0118,218.0398,7.0335 -1000,64x4x4,32,32768,5898.2400,786.4320,4325.3760,2.9847,10.9788,218.6950,7.0547 -1000,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,6.3789,10.2739,233.6995,7.5387 -1000,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,13.0762,10.0237,239.5328,7.7269 -1000,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,26.4055,9.9276,241.8499,7.8016 -1000,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,53.9779,9.7130,247.1940,7.9740 -1000,64x8x2,32,32768,5898.2400,786.4320,4325.3760,2.9891,10.9623,219.0227,7.0652 -1000,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,6.3605,10.3036,233.0252,7.5169 -1000,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,13.0487,10.0449,239.0275,7.7106 -1000,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,26.4589,9.9076,242.3398,7.8174 -1000,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,53.3738,9.8229,244.4278,7.8848 -1000,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,106.7776,9.8202,244.4963,7.8870 -1000,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,6.3749,10.2803,233.5543,7.5340 -1000,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,13.1027,10.0035,240.0170,7.7425 -1000,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,26.4519,9.9102,242.2757,7.8153 -1000,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,53.8700,9.7325,246.7002,7.9581 -1000,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,107.7415,9.7323,246.7034,7.9582 -1000,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,213.3675,9.8288,244.2815,7.8800 -1000,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,13.0621,10.0345,239.2736,7.7185 -1000,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,26.3724,9.9401,241.5467,7.7918 -1000,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,53.1027,9.8731,243.1863,7.8447 -1000,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,106.7040,9.8270,244.3278,7.8815 -1000,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,213.9692,9.8012,244.9703,7.9023 -1000,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,428.8920,-0.2347,-10229.8417,-329.9949 -1000,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,27.0668,9.6851,247.9069,7.9970 -1000,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,54.7363,9.5784,250.6672,8.0860 -1000,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,108.3671,9.6762,248.1359,8.0044 -1000,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,216.9378,9.6671,248.3690,8.0119 -1000,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,433.8169,-0.2320,-10347.3116,-333.7842 -1000,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,878.1040,-0.2293,-10472.1773,-337.8122 diff --git a/scripts/results_soa_broadep2_iln1000.txt b/scripts/results_soa_broadep2_iln1000.txt deleted file mode 100644 index 2a00aa4..0000000 --- a/scripts/results_soa_broadep2_iln1000.txt +++ /dev/null @@ -1,107 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,2.1353,23.9782,95.9620,13.7089 -200,4x4x4,8,512,43.0080,12.2880,18.4320,4.3181,23.7144,97.0298,13.8614 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,8.5109,24.0632,95.6231,13.6604 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,17.0205,24.0651,95.6158,13.6594 -200,4x8x2,8,512,43.0080,12.2880,18.4320,4.2564,24.0579,95.6442,13.6635 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,8.6350,23.7174,97.0173,13.8596 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,17.0207,24.0649,95.6166,13.6595 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,34.6027,23.6744,97.1935,13.8848 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,8.5135,24.0559,95.6524,13.6646 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,17.0300,24.0517,95.6689,13.6670 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,34.4582,23.7737,96.7876,13.8268 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,68.3538,23.9694,95.9974,13.7139 -200,8x4x2,8,512,43.0080,12.2880,18.4320,4.2576,24.0512,95.6708,13.6673 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,8.5643,23.9133,96.2224,13.7461 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,17.0216,24.0636,95.6216,13.6602 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,34.3277,23.8641,96.4210,13.7744 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,8.5150,24.0516,95.6693,13.6670 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,17.0235,24.0608,95.6327,13.6618 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,34.0518,24.0575,95.6459,13.6637 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,68.0984,24.0593,95.6386,13.6627 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,17.0230,24.0616,95.6297,13.6614 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,34.0451,24.0622,95.6273,13.6610 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,68.1014,24.0583,95.6428,13.6633 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,136.4647,24.0121,95.8268,13.6895 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,8.6901,23.5671,97.6360,13.9480 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,17.4044,23.5343,97.7723,13.9675 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,34.0569,24.0539,95.6603,13.6658 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,68.7236,23.8404,96.5168,13.7881 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,17.1338,23.9059,96.2523,13.7503 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,34.2669,23.9064,96.2502,13.7500 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,70.0776,23.3798,98.4182,14.0597 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,136.2386,24.0519,95.6680,13.6669 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,34.0482,24.0600,95.6358,13.6623 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,68.6491,23.8663,96.4121,13.7732 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,137.8710,23.7671,96.8144,13.8306 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,277.3699,23.6277,97.3859,13.9123 -200,4x4x2,16,512,59.3920,12.2880,34.8160,7.3151,13.9984,164.3763,10.9584 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,14.4104,14.2120,161.9059,10.7937 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,29.7442,13.7708,167.0931,11.1395 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,57.9628,14.1332,162.8081,10.8539 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,14.4086,14.2137,161.8861,10.7924 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,29.2763,13.9908,164.4650,10.9643 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,57.6454,14.2110,161.9167,10.7944 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,117.4588,13.9487,164.9614,10.9974 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,28.8261,14.2094,161.9356,10.7957 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,58.6978,13.9562,164.8725,10.9915 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,115.3036,14.2094,161.9346,10.7956 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,234.2918,13.9860,164.5219,10.9681 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,14.4086,14.2137,161.8855,10.7924 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,28.8230,14.2109,161.9184,10.7946 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,59.1780,13.8430,166.2214,11.0814 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,117.4585,13.9488,164.9609,10.9974 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,28.8173,14.2137,161.8863,10.7924 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,58.4082,14.0254,164.0591,10.9373 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,115.2800,14.2123,161.9015,10.7934 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,232.9699,14.0653,163.5937,10.9062 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,59.3376,13.8058,166.6696,11.1113 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,115.2970,14.2103,161.9253,10.7950 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,240.4558,13.6275,168.8503,11.2567 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,462.5401,14.1687,162.4000,10.8267 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,28.8184,14.2131,161.8927,10.7928 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,57.9551,14.1351,162.7864,10.8524 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,115.7986,14.1487,162.6298,10.8420 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,236.1090,13.8783,165.7980,11.0532 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,59.4157,13.7876,166.8891,11.1259 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,117.0833,13.9935,164.4339,10.9623 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,231.0443,14.1826,162.2415,10.8161 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,461.2008,14.2099,161.9298,10.7953 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,118.1060,13.8723,165.8703,11.0580 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,231.5209,14.1534,162.5762,10.8384 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,466.6747,14.0432,163.8517,10.9234 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,938.5839,13.9649,164.7706,10.9847 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,27.1988,7.5298,305.5877,9.8577 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,51.8929,7.8932,291.5174,9.4038 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,104.9857,7.8030,294.8878,9.5125 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,210.0029,7.8018,294.9320,9.5139 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,51.8941,7.8930,291.5240,9.4040 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,104.9772,7.8036,294.8640,9.5117 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,212.3359,7.7161,298.2085,9.6196 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,415.1714,7.8926,291.5373,9.4044 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,107.1892,7.6426,301.0771,9.7122 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,213.7067,7.6666,300.1338,9.6817 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,429.5336,7.6287,301.6226,9.7298 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,835.8309,7.8408,293.4642,9.4666 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,53.2960,7.6854,299.3996,9.6581 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,106.0529,7.7244,297.8853,9.6092 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,213.3924,7.6779,299.6924,9.6675 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,416.1584,7.8739,292.2304,9.4268 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,104.1101,7.8686,292.4283,9.4332 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,211.0920,7.7615,296.4616,9.5633 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,421.6304,7.7717,296.0729,9.5507 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,837.8503,7.8219,294.1732,9.4895 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,208.5033,7.8579,292.8260,9.4460 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,420.4673,7.7932,295.2561,9.5244 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,840.7054,7.7954,295.1757,9.5218 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1661.9291,7.8867,291.7556,9.4115 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,105.6303,7.7554,296.6983,9.5709 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,207.5775,7.8930,291.5258,9.4041 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,420.5695,7.7913,295.3279,9.5267 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,833.0888,7.8666,292.5014,9.4355 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,210.1080,7.7979,295.0796,9.5187 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,428.5183,7.6468,300.9096,9.7068 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,845.6674,7.7496,296.9178,9.5780 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1706.5013,7.6807,299.5803,9.6639 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,416.8327,7.8612,292.7039,9.4421 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,844.7536,7.7580,296.5970,9.5676 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1706.9248,7.6788,299.6547,9.6663 diff --git a/scripts/results_soa_casclakesp2.txt b/scripts/results_soa_casclakesp2.txt deleted file mode 100644 index 4106da5..0000000 --- a/scripts/results_soa_casclakesp2.txt +++ /dev/null @@ -1,450 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0017,30.1968,79.4787,11.3541 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0034,30.0857,79.7722,11.3960 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0071,29.0411,82.6414,11.8059 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0142,28.9227,82.9799,11.8543 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0281,29.1749,82.2624,11.7518 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0587,27.9148,85.9760,12.2823 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0035,29.3791,81.6907,11.6701 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0073,28.1253,85.3324,12.1903 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0142,28.9410,82.9273,11.8468 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0287,28.5778,83.9811,11.9973 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0587,27.9348,85.9143,12.2735 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1193,27.4757,87.3498,12.4785 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0069,29.6841,80.8515,11.5502 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0140,29.1786,82.2521,11.7503 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1882,82.2250,11.7464 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0601,27.2622,88.0339,12.5763 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1194,27.4458,87.4450,12.4921 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2367,27.6917,86.6685,12.3812 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0144,28.4002,84.5065,12.0724 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0281,29.2045,82.1792,11.7399 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0578,28.3343,84.7028,12.1004 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1187,27.6149,86.9095,12.4156 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2353,27.8557,86.1585,12.3084 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5017,26.1265,91.8606,13.1229 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6918,83.6476,11.9497 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0583,28.1218,85.3430,12.1919 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1196,27.3912,87.6195,12.5171 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2342,27.9881,85.7507,12.2501 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.4861,26.9639,89.0080,12.7154 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.2546,20.8949,114.8605,16.4086 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0035,29.1498,82.3334,11.7619 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.0834,82.5213,11.7888 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0139,29.4496,81.4952,11.6422 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0281,29.1828,82.2403,11.7486 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0593,27.6198,86.8941,12.4134 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1177,27.8367,86.2171,12.3167 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0072,28.5962,83.9274,11.9896 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0048,82.7449,11.8207 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0282,29.1001,82.4738,11.7820 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0588,27.8416,86.2020,12.3146 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1175,27.8776,86.0907,12.2987 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2373,27.6184,86.8985,12.4141 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.6202,81.0259,11.5751 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0282,29.0022,82.7524,11.8218 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0590,27.7595,86.4568,12.3510 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1195,27.4101,87.5590,12.5084 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9510,85.8646,12.2664 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.4899,26.7532,89.7089,12.8156 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0281,29.1831,82.2394,11.7485 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0591,27.7320,86.5425,12.3632 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5256,87.1916,12.4559 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2357,27.8106,86.2980,12.3283 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.4782,27.4087,87.5635,12.5091 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.2611,20.7865,115.4596,16.4942 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0598,27.4201,87.5270,12.5039 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1188,27.5857,87.0017,12.4288 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2378,27.5646,87.0682,12.4383 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.4982,26.3088,91.2243,13.0320 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.2420,21.1071,113.7059,16.2437 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.2871,15.9501,150.4694,21.4956 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0071,28.9960,82.7700,11.8243 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0035,82.7486,11.8212 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1943,82.2077,11.7440 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0580,28.2245,85.0324,12.1475 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5459,87.1274,12.4468 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2315,28.3093,84.7778,12.1111 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.6944,80.8234,11.5462 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9408,82.9278,11.8468 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0588,27.8805,86.0817,12.2974 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1164,28.1587,85.2312,12.1759 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2351,27.8775,86.0909,12.2987 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.4827,27.1555,88.3799,12.6257 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.5090,81.3312,11.6187 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0582,28.1319,85.3123,12.1875 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9783,85.7808,12.2544 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2342,27.9800,85.7755,12.2536 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5129,25.5535,93.9207,13.4172 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.2518,20.9419,114.6028,16.3718 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0598,27.3917,87.6179,12.5168 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1198,27.3519,87.7454,12.5351 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2359,27.7824,86.3856,12.3408 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.4728,27.7198,86.5806,12.3687 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.2741,20.5744,116.6497,16.6642 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.2988,15.8931,151.0087,21.5727 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1198,27.3624,87.7117,12.5302 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9526,85.8595,12.2656 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.4795,27.3355,87.7979,12.5426 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.2697,20.6461,116.2446,16.6064 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.2978,15.8981,150.9610,21.5659 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,7.2019,14.5598,164.8376,23.5482 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0143,28.7329,83.5278,11.9325 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8290,83.2496,11.8928 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0581,28.2211,85.0427,12.1490 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9499,85.8678,12.2668 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2343,27.9743,85.7930,12.2561 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.4899,26.7521,89.7124,12.8161 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6625,83.7332,11.9619 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0578,28.3611,84.6231,12.0890 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1186,27.6276,86.8697,12.4100 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2345,27.9497,85.8684,12.2669 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.4789,27.3714,87.6827,12.5261 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.2396,21.1468,113.4925,16.2132 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0587,27.9346,85.9149,12.2736 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1190,27.5368,87.1562,12.4509 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.9022,86.0146,12.2878 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.4823,27.1772,88.3092,12.6156 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.2440,21.0724,113.8929,16.2704 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.2937,15.9178,150.7744,21.5392 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7590,86.4583,12.3512 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2350,27.8876,86.0597,12.2942 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.4704,27.8658,86.1270,12.3039 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.2534,20.9146,114.7524,16.3932 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.2411,16.1762,148.3658,21.1951 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,7.2101,14.5431,165.0270,23.5753 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2339,28.0142,85.6710,12.2387 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.4701,27.8800,86.0834,12.2976 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.2565,20.8636,115.0326,16.4332 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.3016,15.8796,151.1373,21.5910 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,7.1664,14.6318,164.0262,23.4323 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,14.7563,14.2119,168.8722,24.1246 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0284,28.8520,83.1830,11.8833 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0599,27.3595,87.7210,12.5316 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1155,28.3599,84.6266,12.0895 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2271,28.8639,83.1489,11.8784 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.4784,27.3953,87.6063,12.5152 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.2466,21.0279,114.1338,16.3048 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0595,27.5465,87.1256,12.4465 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1201,27.2917,87.9388,12.5627 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2349,27.8954,86.0358,12.2908 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.4647,28.2078,85.0829,12.1547 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.2417,21.1119,113.6802,16.2400 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.2842,15.9640,150.3379,21.4768 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1161,28.2349,85.0010,12.1430 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2347,27.9189,85.9634,12.2805 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5039,26.0132,92.2608,13.1801 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.2615,20.7799,115.4963,16.4995 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.2610,16.0774,149.2775,21.3254 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,7.1767,14.6108,164.2617,23.4660 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2356,27.8138,86.2881,12.3269 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.4749,27.5997,86.9576,12.4225 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.2495,20.9806,114.3916,16.3417 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.2536,16.1139,148.9395,21.2771 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,7.2381,14.4870,165.6663,23.6666 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,14.6710,14.2945,167.8963,23.9852 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.4799,27.3151,87.8633,12.5519 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.2605,20.7972,115.3999,16.4857 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.2808,15.9804,150.1841,21.4549 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,7.1934,14.5769,164.6442,23.5206 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,14.6673,14.2981,167.8542,23.9792 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,29.2180,14.3552,167.1865,23.8838 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.2455,131.5393,8.7693 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0113,18.1440,132.2754,8.8184 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0227,18.0297,133.1133,8.8742 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0448,18.2657,131.3938,8.7596 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0911,17.9803,133.4791,8.8986 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1844,17.7724,135.0411,9.0027 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0113,18.1733,132.0615,8.8041 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2026,131.8491,8.7899 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0456,17.9674,133.5754,8.9050 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0923,17.7468,135.2353,9.0157 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1850,17.7143,135.4836,9.0322 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3665,17.8797,134.2308,8.9487 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0233,17.5763,136.5478,9.1032 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0450,18.2126,131.7769,8.7851 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0911,17.9818,133.4684,8.8979 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1868,17.5420,136.8145,9.1210 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3681,17.8024,134.8134,8.9876 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.7630,17.1780,139.7133,9.3142 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0456,17.9525,133.6859,8.9124 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0938,17.4605,137.4528,9.1635 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1827,17.9368,133.8034,8.9202 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9395,133.7829,8.9189 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.7845,16.7085,143.6395,9.5760 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.8176,14.4226,166.4053,11.0937 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0918,17.8519,134.4391,8.9626 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1855,17.6617,135.8875,9.0592 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3674,17.8396,134.5323,8.9688 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.7768,16.8730,142.2392,9.4826 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.8113,14.4725,165.8318,11.0555 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,4.0660,12.8944,186.1278,12.4085 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0113,18.1771,132.0345,8.8023 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0223,18.3984,130.4461,8.6964 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1085,132.5347,8.8356 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0923,17.7436,135.2601,9.0173 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7047,135.5574,9.0372 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3667,17.8705,134.2992,8.9533 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0227,18.0258,133.1425,8.8762 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0454,18.0636,132.8640,8.8576 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0916,17.8941,134.1221,8.9415 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7060,135.5472,9.0365 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3608,18.1644,132.1268,8.8085 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.7464,17.5607,136.6689,9.1113 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0454,18.0396,133.0408,8.8694 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0912,17.9607,133.6254,8.9084 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9620,133.6156,8.9077 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3660,17.9062,134.0320,8.9355 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.7780,16.8469,142.4592,9.4973 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.8134,14.4562,166.0193,11.0680 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9222,133.9118,8.9275 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1850,17.7102,135.5155,9.0344 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3659,17.9109,133.9967,8.9331 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8239,15.9087,150.8613,10.0574 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.8117,14.4692,165.8694,11.0580 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,4.0171,13.0514,183.8886,12.2592 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1860,17.6194,136.2134,9.0809 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3671,17.8511,134.4456,8.9630 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.7499,17.4789,137.3082,9.1539 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.8146,14.4464,166.1315,11.0754 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,4.0309,13.0066,184.5212,12.3014 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,8.5774,12.2249,196.3206,13.0880 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0225,18.1741,132.0560,8.8037 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0457,17.9366,133.8046,8.9203 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0930,17.6142,136.2538,9.0836 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1846,17.7515,135.1995,9.0133 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9405,133.7757,8.9184 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.7407,17.6949,135.6324,9.0422 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0455,18.0129,133.2379,8.8825 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0923,17.7417,135.2748,9.0183 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1829,17.9163,133.9561,8.9304 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3665,17.8840,134.1982,8.9465 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.7461,17.5671,136.6192,9.1079 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.8047,14.5254,165.2281,11.0152 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0923,17.7442,135.2553,9.0170 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7021,135.5774,9.0385 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8925,134.1344,8.9423 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.7613,17.2167,139.3996,9.2933 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.8171,14.4263,166.3633,11.0909 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,4.0583,12.9189,185.7738,12.3849 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1846,17.7495,135.2148,9.0143 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8904,134.1501,8.9433 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.7477,17.5298,136.9097,9.1273 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.8009,14.5562,164.8782,10.9919 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,4.0799,12.8505,186.7638,12.4509 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,8.5664,12.2405,196.0700,13.0713 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3630,18.0539,132.9349,8.8623 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.7584,17.2830,138.8645,9.2576 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.8135,14.4554,166.0274,11.0685 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,4.0762,12.8621,186.5942,12.4396 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,8.5873,12.2108,196.5473,13.1032 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,17.2827,12.1344,197.7849,13.1857 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0456,17.9516,133.6928,8.9129 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0939,17.4453,137.5727,9.1715 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1851,17.7068,135.5413,9.0361 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3663,17.8912,134.1438,8.9429 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.7391,17.7335,135.3367,9.0224 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7899,14.6456,163.8720,10.9248 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0920,17.8125,134.7366,8.9824 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1853,17.6791,135.7533,9.0502 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3653,17.9421,133.7634,8.9176 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.7749,16.9148,141.8872,9.4591 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.8102,14.4812,165.7323,11.0488 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,4.0739,12.8695,186.4867,12.4324 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1844,17.7741,135.0281,9.0019 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3635,18.0300,133.1117,8.8741 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.7638,17.1596,139.8630,9.3242 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.8171,14.4267,166.3587,11.0906 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,4.0640,12.9008,186.0355,12.4024 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,8.5080,12.3246,194.7333,12.9822 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3675,17.8332,134.5804,8.9720 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.7585,17.2815,138.8771,9.2585 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.8147,14.4452,166.1447,11.0763 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,4.0587,12.9176,185.7936,12.3862 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,8.6098,12.1788,197.0638,13.1376 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,17.3969,12.0547,199.0917,13.2728 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.7403,17.7044,135.5592,9.0373 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.8081,14.4986,165.5333,11.0356 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,4.0864,12.8300,187.0616,12.4708 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,8.5361,12.2840,195.3760,13.0251 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,17.3914,12.0585,199.0291,13.2686 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,35.0665,11.9610,200.6520,13.3768 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9340,133.8241,8.9216 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1833,17.8749,134.2662,8.9511 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3669,17.8618,134.3650,8.9577 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.7622,17.1955,139.5710,9.3047 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.8131,14.4585,165.9924,11.0662 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,4.0475,12.9534,185.2790,12.3519 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1831,17.8992,134.0843,8.9390 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3669,17.8643,134.3464,8.9564 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.7450,17.5925,136.4221,9.0948 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.8160,14.4350,166.2626,11.0842 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,4.0604,12.9123,185.8690,12.3913 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,8.5079,12.3248,194.7298,12.9820 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9308,133.8476,8.9232 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.7456,17.5799,136.5194,9.1013 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.8031,14.5389,165.0747,11.0050 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,4.0631,12.9035,185.9954,12.3997 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,8.5217,12.3048,195.0458,13.0031 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,17.4178,12.0403,199.3308,13.2887 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8037,16.3093,147.1549,9.8103 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.8168,14.4292,166.3290,11.0886 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,4.0649,12.8978,186.0779,12.4052 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,8.5959,12.1986,196.7439,13.1163 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,17.3318,12.1000,198.3464,13.2231 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,35.1403,11.9359,201.0746,13.4050 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.8047,14.5253,165.2288,11.0153 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,4.0375,12.9854,184.8230,12.3215 -200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,8.5280,12.2957,195.1895,13.0126 -200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,17.2131,12.1835,196.9883,13.1326 -200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,34.7267,12.0780,198.7080,13.2472 -200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,69.9977,11.9841,200.2649,13.3510 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1445,215.3526,6.9469 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0367,11.1484,215.2784,6.9445 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0749,10.9335,219.5084,7.0809 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1489,11.0031,218.1212,7.0362 -200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2979,10.9983,218.2151,7.0392 -200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5936,11.0407,217.3782,7.0122 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1377,215.4848,6.9511 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0747,10.9650,218.8788,7.0606 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1491,10.9856,218.4685,7.0474 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2987,10.9688,218.8018,7.0581 -200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5901,11.1053,216.1135,6.9714 -200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2135,10.8010,222.2016,7.1678 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0746,10.9759,218.6605,7.0536 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1495,10.9556,219.0657,7.0666 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2986,10.9744,218.6898,7.0545 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5924,11.0635,216.9289,6.9977 -200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2140,10.7970,222.2843,7.1705 -200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6870,9.7559,246.0042,7.9356 -200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0780,216.6453,6.9886 -200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2975,11.0133,217.9181,7.0296 -200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5923,11.0647,216.9061,6.9970 -200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2194,10.7489,223.2783,7.2025 -200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6961,9.7231,246.8337,7.9624 -200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.6436,9.2899,258.3444,8.3337 -200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2979,10.9978,218.2247,7.0395 -200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.5905,11.0991,216.2334,6.9753 -200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2377,10.5903,226.6227,7.3104 -200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.7026,9.6995,247.4349,7.9818 -200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.6421,9.2925,258.2736,8.3314 -200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,11.5057,9.1135,263.3446,8.4950 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0366,11.1998,214.2904,6.9126 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0742,11.0403,217.3856,7.0124 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1492,10.9849,218.4817,7.0478 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2991,10.9560,219.0584,7.0664 -200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5907,11.0940,216.3330,6.9785 -200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2175,10.7656,222.9332,7.1914 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0743,11.0187,217.8120,7.0262 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1495,10.9595,218.9885,7.0641 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2999,10.9274,219.6313,7.0849 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5869,11.1662,214.9339,6.9334 -200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2165,10.7745,222.7480,7.1854 -200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.7471,9.5424,251.5081,8.1132 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1490,10.9992,218.1970,7.0386 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2983,10.9837,218.5056,7.0486 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5901,11.1053,216.1125,6.9714 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2063,10.8653,220.8859,7.1254 -200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6882,9.7516,246.1127,7.9391 -200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.6302,9.3121,257.7289,8.3138 -200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2976,11.0089,218.0051,7.0324 -200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5926,11.0594,217.0096,7.0003 -200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2088,10.8433,221.3346,7.1398 -200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.7010,9.7055,247.2829,7.9769 -200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.6443,9.2887,258.3778,8.3348 -200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,11.4754,9.1376,262.6509,8.4726 -200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5909,11.0900,216.4113,6.9810 -200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2180,10.7614,223.0192,7.1942 -200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6995,9.7110,247.1430,7.9724 -200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.6213,9.3268,257.3236,8.3008 -200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,11.5317,9.0930,263.9393,8.5142 -200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,23.0906,9.0823,264.2507,8.5242 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0734,11.1635,214.9868,6.9351 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1493,10.9774,218.6311,7.0526 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2981,10.9922,218.3376,7.0431 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.5933,11.0465,217.2627,7.0085 -200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2348,10.6149,226.0980,7.2935 -200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6964,9.7218,246.8669,7.9634 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1470,11.1473,215.2982,6.9451 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2982,10.9872,218.4350,7.0463 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.5910,11.0884,216.4431,6.9820 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2354,10.6093,226.2169,7.2973 -200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6843,9.7659,245.7535,7.9275 -200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.6402,9.2956,258.1872,8.3286 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2986,10.9722,218.7351,7.0560 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5930,11.0511,217.1736,7.0056 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2187,10.7551,223.1490,7.1984 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6955,9.7253,246.7789,7.9606 -200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.6300,9.3124,257.7221,8.3136 -200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,11.4678,9.1436,262.4776,8.4670 -200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5932,11.0481,217.2322,7.0075 -200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2189,10.7536,223.1802,7.1994 -200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6839,9.7675,245.7140,7.9263 -200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.6155,9.3364,257.0593,8.2922 -200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,11.5181,9.1037,263.6285,8.5041 -200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,23.2101,9.0355,265.6190,8.5684 -200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2148,10.7894,222.4400,7.1755 -200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.7171,9.6480,248.7573,8.0244 -200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.6323,9.3086,257.8258,8.3170 -200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,11.4916,9.1247,263.0214,8.4846 -200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,23.1721,9.0503,265.1837,8.5543 -200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,46.4225,9.0351,265.6319,8.5688 -200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1491,10.9908,218.3644,7.0440 -200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2980,10.9973,218.2357,7.0399 -200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5923,11.0640,216.9201,6.9974 -200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2190,10.7526,223.2011,7.2000 -200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6910,9.7414,246.3719,7.9475 -200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.6597,9.2635,259.0816,8.3575 -200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2994,10.9438,219.3016,7.0742 -200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5909,11.0911,216.3901,6.9803 -200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2158,10.7807,222.6192,7.1813 -200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6899,9.7456,246.2645,7.9440 -200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.6445,9.2884,258.3855,8.3350 -200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,11.4730,9.1395,262.5972,8.4709 -200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5929,11.0536,217.1243,7.0040 -200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2112,10.8220,221.7706,7.1539 -200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6860,9.7596,245.9114,7.9326 -200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.6322,9.3087,257.8220,8.3168 -200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,11.5069,9.1126,263.3713,8.4958 -200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,23.1910,9.0429,265.4001,8.5613 -200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2062,10.8663,220.8666,7.1247 -200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6866,9.7575,245.9652,7.9344 -200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.6328,9.3077,257.8506,8.3178 -200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,11.4603,9.1496,262.3058,8.4615 -200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,23.2151,9.0336,265.6754,8.5702 -200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,46.3930,9.0408,265.4628,8.5633 -200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6934,9.7330,246.5840,7.9543 -200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.6297,9.3129,257.7073,8.3131 -200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,11.4733,9.1393,262.6034,8.4711 -200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,23.1572,9.0562,265.0131,8.5488 -200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,46.4403,9.0316,265.7335,8.5720 -200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,93.1158,9.0088,266.4065,8.5938 -200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2983,10.9862,218.4566,7.0470 -200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5919,11.0721,216.7605,6.9923 -200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2059,10.8690,220.8113,7.1229 -200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.7223,9.6296,249.2308,8.0397 -200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.6259,9.3192,257.5338,8.3075 -200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,11.5348,9.0905,264.0113,8.5165 -200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5919,11.0719,216.7642,6.9924 -200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2060,10.8686,220.8192,7.1232 -200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6973,9.7187,246.9454,7.9660 -200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.6342,9.3055,257.9115,8.3197 -200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,11.4968,9.1206,263.1412,8.4884 -200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,23.1210,9.0703,264.5987,8.5354 -200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2136,10.8004,222.2134,7.1682 -200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6854,9.7618,245.8551,7.9308 -200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.6319,9.3092,257.8084,8.3164 -200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,11.4978,9.1198,263.1639,8.4892 -200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,23.1832,9.0460,265.3105,8.5584 -200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,46.4555,9.0287,265.8204,8.5749 -200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6859,9.7600,245.9017,7.9323 -200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.6275,9.3166,257.6054,8.3099 -200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,11.4766,9.1367,262.6781,8.4735 -200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,23.1329,9.0657,264.7348,8.5398 -200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,46.5382,9.0126,266.2938,8.5901 -200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,92.7335,9.0459,265.3127,8.5585 -200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.6284,9.3150,257.6485,8.3112 -200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,11.4938,9.1230,263.0719,8.4862 -200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,23.1701,9.0511,265.1611,8.5536 -200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,46.5385,9.0125,266.2957,8.5902 -200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,93.0355,9.0166,266.1767,8.5863 -200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,187.8248,8.9324,268.6855,8.6673 diff --git a/scripts/results_soa_casclakesp2_iln100.txt b/scripts/results_soa_casclakesp2_iln100.txt deleted file mode 100644 index 1d293da..0000000 --- a/scripts/results_soa_casclakesp2_iln100.txt +++ /dev/null @@ -1,363 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0724,70.7407,35.3403,5.0486 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.1449,70.6729,35.3742,5.0535 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.2903,70.5584,35.4316,5.0617 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.5804,70.5670,35.4273,5.0610 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,1.1651,70.3143,35.5546,5.0792 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,2.3287,70.3554,35.5339,5.0763 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.1451,70.5941,35.4137,5.0591 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.2900,70.6120,35.4047,5.0578 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.5800,70.6225,35.3995,5.0571 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,1.1606,70.5872,35.4172,5.0596 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,2.3285,70.3622,35.5305,5.0758 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,4.6577,70.3519,35.5356,5.0765 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.2900,70.6244,35.3985,5.0569 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.5802,70.5984,35.4116,5.0588 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,1.1645,70.3467,35.5383,5.0769 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,2.3288,70.3539,35.5346,5.0764 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,4.6600,70.3172,35.5532,5.0790 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,9.3183,70.3306,35.5464,5.0781 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.5801,70.6086,35.4065,5.0581 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,1.1606,70.5830,35.4193,5.0599 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,2.3294,70.3369,35.5432,5.0776 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,4.6553,70.3893,35.5168,5.0738 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,9.3281,70.2565,35.5839,5.0834 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,18.6943,70.1133,35.6566,5.0938 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,1.1606,70.5854,35.4181,5.0597 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,2.3293,70.3399,35.5417,5.0774 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,4.6605,70.3106,35.5565,5.0795 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,9.3203,70.3157,35.5539,5.0791 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,18.7065,70.0674,35.6799,5.0971 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,37.8230,69.3080,36.0709,5.1530 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.1450,70.6204,35.4005,5.0572 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.2904,70.5318,35.4450,5.0636 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.5842,70.1134,35.6565,5.0938 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,1.1659,70.2662,35.5790,5.0827 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,2.3293,70.3383,35.5425,5.0775 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,4.6570,70.3624,35.5303,5.0758 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.2902,70.5777,35.4219,5.0603 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.5806,70.5534,35.4342,5.0620 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,1.1619,70.5074,35.4573,5.0653 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,2.3311,70.2836,35.5702,5.0815 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,4.6565,70.3707,35.5261,5.0752 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,9.3263,70.2702,35.5770,5.0824 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.5807,70.5301,35.4459,5.0637 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,1.1617,70.5187,35.4516,5.0645 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,2.3301,70.3158,35.5539,5.0791 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,4.6612,70.2990,35.5624,5.0803 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,9.3193,70.3226,35.5504,5.0786 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,18.7155,70.0339,35.6970,5.0996 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,1.1650,70.3184,35.5525,5.0789 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,2.3298,70.3239,35.5498,5.0785 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,4.6583,70.3430,35.5401,5.0772 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,9.3185,70.3292,35.5471,5.0782 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,18.6322,70.3469,35.5382,5.0769 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,37.8024,69.3458,36.0512,5.1502 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,2.3291,70.3437,35.5398,5.0771 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,4.6581,70.3470,35.5381,5.0769 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,9.3259,70.2733,35.5754,5.0822 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,18.6892,70.1325,35.6468,5.0924 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,37.7789,69.3891,36.0287,5.1470 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,76.8891,68.1876,36.6636,5.2377 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.2901,70.6085,35.4065,5.0581 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.5798,70.6425,35.3895,5.0556 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,1.1648,70.3298,35.5468,5.0781 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,2.3279,70.3809,35.5210,5.0744 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,4.6856,69.9334,35.7483,5.1069 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,9.3227,70.2975,35.5631,5.0804 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.5802,70.5913,35.4151,5.0593 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,1.1611,70.5552,35.4332,5.0619 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,2.3278,70.3847,35.5191,5.0742 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,4.6602,70.3152,35.5542,5.0792 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,9.3197,70.3199,35.5518,5.0788 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,18.6500,70.2798,35.5721,5.0817 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,1.1600,70.6186,35.4014,5.0573 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,2.3273,70.3983,35.5122,5.0732 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,4.6616,70.2940,35.5649,5.0807 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,9.3175,70.3367,35.5433,5.0776 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,18.6637,70.2283,35.5982,5.0855 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,37.7619,69.4202,36.0126,5.1447 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,2.3295,70.3338,35.5448,5.0778 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,4.6611,70.3016,35.5611,5.0802 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,9.3429,70.1450,35.6405,5.0915 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,18.6794,70.1691,35.6282,5.0897 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,37.8122,69.3279,36.0605,5.1515 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,76.9227,68.1578,36.6796,5.2399 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,4.6548,70.3959,35.5134,5.0733 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,9.3245,70.2833,35.5703,5.0815 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,18.6449,70.2990,35.5624,5.0803 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,37.8426,69.2722,36.0895,5.1556 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,77.0980,68.0028,36.7632,5.2519 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,155.0182,67.6421,36.9592,5.2799 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.5831,70.2406,35.5919,5.0846 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,1.1612,70.5480,35.4368,5.0624 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,2.3289,70.3507,35.5362,5.0766 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,4.6557,70.3825,35.5202,5.0743 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,9.3166,70.3433,35.5400,5.0771 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,18.6629,70.2311,35.5967,5.0852 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,1.1615,70.5290,35.4464,5.0638 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,2.3308,70.2941,35.5649,5.0807 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,4.6586,70.3385,35.5424,5.0775 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,9.3158,70.3491,35.5371,5.0767 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,18.6605,70.2404,35.5921,5.0846 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,37.8379,69.2809,36.0850,5.1550 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,2.3253,70.4600,35.4811,5.0687 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,4.6573,70.3576,35.5328,5.0761 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,9.3170,70.3403,35.5415,5.0774 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,18.6424,70.3087,35.5575,5.0796 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,37.8021,69.3463,36.0509,5.1501 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,77.1611,67.9472,36.7933,5.2562 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,4.6552,70.3899,35.5165,5.0738 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,9.3462,70.1208,35.6528,5.0933 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,18.6614,70.2368,35.5939,5.0848 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,37.7842,69.3793,36.0338,5.1477 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,76.8843,68.1918,36.6613,5.2373 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,155.0573,67.6251,36.9685,5.2812 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,9.3212,70.3083,35.5577,5.0797 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,18.6546,70.2625,35.5808,5.0830 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,37.8010,69.3485,36.0498,5.1500 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,76.9422,68.1405,36.6889,5.2413 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,155.7954,67.3047,37.1445,5.3064 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,311.0378,67.4244,37.0786,5.2969 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,1.1608,70.5721,35.4248,5.0607 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,2.3302,70.3130,35.5553,5.0793 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,4.6540,70.4077,35.5075,5.0725 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,9.3333,70.2171,35.6039,5.0863 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,18.6453,70.2976,35.5631,5.0804 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,37.8258,69.3029,36.0735,5.1534 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,2.3290,70.3481,35.5375,5.0768 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,4.6544,70.4028,35.5099,5.0728 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,9.3230,70.2951,35.5643,5.0806 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,18.6754,70.1844,35.6204,5.0886 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,37.7690,69.4072,36.0193,5.1456 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,76.9719,68.1142,36.7030,5.2433 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,4.6547,70.3970,35.5129,5.0733 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,9.3174,70.3375,35.5429,5.0776 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,18.6668,70.2166,35.6041,5.0863 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,37.7946,69.3602,36.0437,5.1491 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,76.8550,68.2178,36.6473,5.2353 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,155.0076,67.6467,36.9567,5.2795 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,9.3208,70.3114,35.5561,5.0794 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,18.6700,70.2048,35.6101,5.0872 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,37.7702,69.4050,36.0205,5.1458 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,76.9311,68.1503,36.6836,5.2405 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,155.0291,67.6374,36.9618,5.2803 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,311.1067,67.4094,37.0868,5.2981 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,18.6574,70.2521,35.5861,5.0837 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,37.7664,69.4120,36.0168,5.1453 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,76.8818,68.1940,36.6601,5.2372 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,155.6472,67.3688,37.1092,5.3013 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,311.2255,67.3837,37.1010,5.3001 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,622.2886,67.4013,37.0913,5.2988 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.2845,35.9949,69.4543,4.6303 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.5659,36.1878,69.0841,4.6056 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,1.1282,36.3067,68.8579,4.5905 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,2.2700,36.0884,69.2744,4.6183 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,4.5076,36.3478,68.7800,4.5853 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,9.0420,36.2396,68.9854,4.5990 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.5647,36.2673,68.9326,4.5955 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,1.1283,36.3018,68.8672,4.5911 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,2.2682,36.1169,69.2197,4.6146 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,4.5107,36.3223,68.8283,4.5886 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,9.0316,36.2814,68.9058,4.5937 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,18.1464,36.1151,69.2232,4.6149 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,1.1343,36.1088,69.2352,4.6157 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,2.2682,36.1174,69.2187,4.6146 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,4.5095,36.3319,68.8100,4.5873 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,9.0313,36.2828,68.9031,4.5935 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,18.0596,36.2887,68.8921,4.5928 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,36.2157,36.1920,69.0760,4.6051 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,2.2771,35.9759,69.4911,4.6327 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,4.5199,36.2489,68.9676,4.5978 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,9.1423,35.8423,69.7501,4.6500 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,18.0634,36.2812,68.9063,4.5938 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,36.5631,35.8481,69.7386,4.6492 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,73.5555,35.6389,70.1480,4.6765 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,4.5115,36.3160,68.8402,4.5893 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,9.0323,36.2786,68.9111,4.5941 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,18.0756,36.2566,68.9529,4.5969 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,36.2052,36.2025,69.0559,4.6037 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,73.4933,35.6691,70.0887,4.6726 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,148.5317,35.2981,70.8254,4.7217 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.5665,36.1522,69.1521,4.6101 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,1.1390,35.9629,69.5161,4.6344 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,2.2692,36.1002,69.2516,4.6168 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,4.5118,36.3140,68.8439,4.5896 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,9.0309,36.2842,68.9004,4.5934 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,18.0565,36.2949,68.8802,4.5920 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,1.1283,36.3024,68.8660,4.5911 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,2.2735,36.0331,69.3807,4.6254 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,4.5120,36.3122,68.8474,4.5898 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,9.0231,36.3155,68.8411,4.5894 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,18.0499,36.3082,68.8550,4.5903 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,36.1667,36.2410,68.9826,4.5988 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,2.2698,36.0910,69.2694,4.6180 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,4.5133,36.3020,68.8668,4.5911 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,9.0286,36.2934,68.8830,4.5922 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,18.0824,36.2429,68.9789,4.5986 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,36.1922,36.2156,69.0311,4.6021 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,73.6442,35.5960,70.2325,4.6822 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,4.5166,36.2750,68.9179,4.5945 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,9.0241,36.3116,68.8485,4.5899 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,18.0582,36.2915,68.8867,4.5924 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,36.6601,35.7534,69.9235,4.6616 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,73.6473,35.5945,70.2356,4.6824 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,148.6287,35.2750,70.8717,4.7248 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,9.0336,36.2733,68.9212,4.5947 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,18.0749,36.2580,68.9503,4.5967 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,36.3902,36.0185,69.4088,4.6273 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,73.5268,35.6528,70.1206,4.6747 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,148.3429,35.3430,70.7354,4.7157 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,297.9615,35.1917,71.0396,4.7360 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,1.1309,36.2181,69.0264,4.6018 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,2.2770,35.9779,69.4871,4.6325 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,4.5217,36.2345,68.9949,4.5997 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,9.0326,36.2776,68.9131,4.5942 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,18.0961,36.2155,69.0313,4.6021 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,36.2045,36.2032,69.0547,4.6036 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,2.2714,36.0657,69.3179,4.6212 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,4.5179,36.2648,68.9374,4.5958 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,9.0243,36.3109,68.8498,4.5900 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,18.0528,36.3024,68.8660,4.5911 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,36.1828,36.2250,69.0131,4.6009 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,73.5654,35.6341,70.1574,4.6772 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,4.5168,36.2739,68.9201,4.5947 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,9.0385,36.2536,68.9586,4.5972 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,18.0888,36.2302,69.0032,4.6002 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,36.3237,36.0844,69.2819,4.6188 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,73.5941,35.6202,70.1848,4.6790 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,148.4666,35.3135,70.7944,4.7196 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,9.0241,36.3117,68.8482,4.5899 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,18.0509,36.3063,68.8585,4.5906 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,36.3694,36.0391,69.3692,4.6246 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,73.6294,35.6032,70.2185,4.6812 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,148.3355,35.3448,70.7319,4.7155 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,297.8748,35.2019,71.0189,4.7346 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,18.0701,36.2676,68.9320,4.5955 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,36.3114,36.0966,69.2585,4.6172 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,73.5786,35.6278,70.1700,4.6780 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,148.4242,35.3236,70.7742,4.7183 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,297.8513,35.2047,71.0133,4.7342 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,597.7505,35.0841,71.2574,4.7505 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,2.2755,36.0003,69.4438,4.6296 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,4.5120,36.3122,68.8474,4.5898 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,9.0302,36.2872,68.8948,4.5930 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,18.0486,36.3108,68.8499,4.5900 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,36.5587,35.8524,69.7302,4.6487 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,73.5152,35.6585,70.1096,4.6740 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,4.5142,36.2943,68.8814,4.5921 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,9.0295,36.2901,68.8893,4.5926 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,18.0602,36.2875,68.8943,4.5930 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,36.1865,36.2213,69.0202,4.6013 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,73.5540,35.6397,70.1466,4.6764 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,148.6246,35.2760,70.8697,4.7246 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,9.0264,36.3024,68.8660,4.5911 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,18.1538,36.1004,69.2513,4.6168 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,36.1831,36.2247,69.0138,4.6009 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,73.5389,35.6470,70.1321,4.6755 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,148.3446,35.3426,70.7362,4.7157 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,297.8388,35.2062,71.0103,4.7340 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,18.0716,36.2646,68.9377,4.5958 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,36.1953,36.2124,69.0371,4.6025 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,73.6102,35.6124,70.2002,4.6800 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,148.5063,35.3041,70.8133,4.7209 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,297.8050,35.2102,71.0022,4.7335 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,597.1303,35.1205,71.1835,4.7456 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,36.2228,36.1850,69.0895,4.6060 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,73.5889,35.6228,70.1798,4.6787 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,148.2803,35.3579,70.7056,4.7137 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,298.5905,35.1175,71.1895,4.7460 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,596.9741,35.1297,71.1649,4.7443 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,1198.2872,35.0025,71.4235,4.7616 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,4.5187,36.2584,68.9496,4.5966 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,9.0256,36.3056,68.8599,4.5907 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,18.0590,36.2898,68.8898,4.5927 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,36.1871,36.2207,69.0214,4.6014 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,73.5339,35.6494,70.1274,4.6752 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,148.3662,35.3374,70.7465,4.7164 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,9.1411,35.8467,69.7414,4.6494 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,18.2628,35.8849,69.6672,4.6445 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,36.2778,36.1301,69.1944,4.6130 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,73.8568,35.4935,70.4354,4.6957 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,148.6318,35.2743,70.8732,4.7249 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,297.9060,35.1982,71.0263,4.7351 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,18.0935,36.2208,69.0211,4.6014 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,36.2339,36.1739,69.1106,4.6074 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,73.5469,35.6431,70.1398,4.6760 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,148.6804,35.2628,70.8963,4.7264 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,298.4753,35.1311,71.1621,4.7441 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,596.9407,35.1317,71.1609,4.7441 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,36.1765,36.2312,69.0012,4.6001 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,73.5663,35.6337,70.1583,4.6772 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,148.5674,35.2896,70.8424,4.7228 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,297.8978,35.1992,71.0244,4.7350 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,597.0268,35.1266,71.1711,4.7447 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,1193.9364,35.1300,71.1642,4.7443 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,73.6033,35.6158,70.1935,4.6796 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,148.5687,35.2893,70.8431,4.7229 -200,1x1x1,8,8,0.6720,0.1920,0.2880,0.0023,70.5477,35.4370,5.0624 -200,1x1x2,8,16,1.3440,0.3840,0.5760,0.0045,70.3495,35.5368,5.0767 -200,1x2x1,8,16,1.3440,0.3840,0.5760,0.0046,70.0866,35.6701,5.0957 -200,1x2x2,8,32,2.6880,0.7680,1.1520,0.0092,69.8415,35.7953,5.1136 -200,2x1x1,8,16,1.3440,0.3840,0.5760,0.0046,70.0568,35.6853,5.0979 -200,2x1x2,8,32,2.6880,0.7680,1.1520,0.0091,70.4164,35.5031,5.0719 -200,2x2x1,8,32,2.6880,0.7680,1.1520,0.0092,69.8992,35.7658,5.1094 -200,2x2x2,8,64,5.3760,1.5360,2.3040,0.0181,70.8343,35.2936,5.0419 -200,1x1x1,16,16,1.8560,0.3840,1.0880,0.0089,36.0799,69.2906,4.6194 -200,1x1x2,16,32,3.7120,0.7680,2.1760,0.0178,36.0316,69.3836,4.6256 -200,1x2x1,16,32,3.7120,0.7680,2.1760,0.0178,36.0079,69.4292,4.6286 -200,1x2x2,16,64,7.4240,1.5360,4.3520,0.0355,36.0231,69.4000,4.6267 -200,2x1x1,16,32,3.7120,0.7680,2.1760,0.0178,36.0312,69.3843,4.6256 -200,2x1x2,16,64,7.4240,1.5360,4.3520,0.0357,35.9018,69.6344,4.6423 -200,2x2x1,16,64,7.4240,1.5360,4.3520,0.0355,36.0121,69.4211,4.6281 -200,2x2x2,16,128,14.8480,3.0720,8.7040,0.0712,35.9431,69.5544,4.6370 -200,1x1x1,32,32,5.7600,0.7680,4.2240,0.0347,18.4608,135.4223,4.3685 -200,1x1x2,32,64,11.5200,1.5360,8.4480,0.0693,18.4827,135.2617,4.3633 -200,1x2x1,32,64,11.5200,1.5360,8.4480,0.0692,18.4850,135.2449,4.3627 -200,1x2x2,32,128,23.0400,3.0720,16.8960,0.1385,18.4893,135.2135,4.3617 -200,2x1x1,32,64,11.5200,1.5360,8.4480,0.0693,18.4790,135.2890,4.3642 -200,2x1x2,32,128,23.0400,3.0720,16.8960,0.1390,18.4216,135.7101,4.3777 -200,2x2x1,32,128,23.0400,3.0720,16.8960,0.1385,18.4819,135.2674,4.3635 -200,2x2x2,32,256,46.0800,6.1440,33.7920,0.2774,18.4575,135.4459,4.3692 -200,1x1x1,64,64,19.7120,1.5360,16.6400,0.1343,9.5315,262.2869,4.1633 -200,1x1x2,64,128,39.4240,3.0720,33.2800,0.2685,9.5328,262.2517,4.1627 -200,1x2x1,64,128,39.4240,3.0720,33.2800,0.2680,9.5529,261.7008,4.1540 -200,1x2x2,64,256,78.8480,6.1440,66.5600,0.5369,9.5358,262.1698,4.1614 -200,2x1x1,64,128,39.4240,3.0720,33.2800,0.2680,9.5531,261.6939,4.1539 -200,2x1x2,64,256,78.8480,6.1440,66.5600,0.5369,9.5354,262.1801,4.1616 -200,2x2x1,64,256,78.8480,6.1440,66.5600,0.5358,9.5553,261.6343,4.1529 -200,2x2x2,64,512,157.6960,12.2880,133.1200,1.0721,9.5509,261.7547,4.1548 -200,1x1x1,128,128,72.1920,3.0720,66.0480,0.5453,4.6950,532.4769,4.1927 -200,1x1x2,128,256,144.3840,6.1440,132.0960,1.0901,4.6966,532.2970,4.1913 -200,1x2x1,128,256,144.3840,6.1440,132.0960,1.0882,4.7051,531.3436,4.1838 -200,1x2x2,128,512,288.7680,12.2880,264.1920,2.1802,4.6968,532.2760,4.1911 -200,2x1x1,128,256,144.3840,6.1440,132.0960,1.0883,4.7046,531.3984,4.1842 -200,2x1x2,128,512,288.7680,12.2880,264.1920,2.1759,4.7061,531.2260,4.1829 -200,2x2x1,128,512,288.7680,12.2880,264.1920,2.1761,4.7057,531.2684,4.1832 -200,2x2x2,128,1024,577.5360,24.5760,528.3840,4.3527,4.7051,531.3391,4.1838 -200,1x1x1,256,256,275.4560,6.1440,263.1680,2.1305,2.4032,1040.2863,4.0796 -200,1x1x2,256,512,550.9120,12.2880,526.3360,4.2607,2.4034,1040.2135,4.0793 -200,1x2x1,256,512,550.9120,12.2880,526.3360,4.2612,2.4031,1040.3325,4.0797 -200,1x2x2,256,1024,1101.8240,24.5760,1052.6720,8.5423,2.3975,1042.7643,4.0893 -200,2x1x1,256,512,550.9120,12.2880,526.3360,4.2616,2.4029,1040.4180,4.0801 -200,2x1x2,256,1024,1101.8240,24.5760,1052.6720,8.5271,2.4018,1040.9040,4.0820 -200,2x2x1,256,1024,1101.8240,24.5760,1052.6720,8.5308,2.4007,1041.3556,4.0837 -200,2x2x2,256,2048,2203.6480,49.1520,2105.3440,17.0679,2.3998,1041.7399,4.0853 -200,1x1x1,512,512,1075.2000,12.2880,1050.6240,8.4481,1.2121,2062.5241,4.0363 -200,1x1x2,512,1024,2150.4000,24.5760,2101.2480,16.8998,1.2118,2062.9650,4.0371 -200,1x2x1,512,1024,2150.4000,24.5760,2101.2480,16.9053,1.2115,2063.6406,4.0384 -200,1x2x2,512,2048,4300.8000,49.1520,4202.4960,33.8109,1.2114,2063.6513,4.0385 -200,2x1x1,512,1024,2150.4000,24.5760,2101.2480,16.8985,1.2119,2062.8109,4.0368 -200,2x1x2,512,2048,4300.8000,49.1520,4202.4960,33.7934,1.2121,2062.5859,4.0364 -200,2x2x1,512,2048,4300.8000,49.1520,4202.4960,33.7967,1.2120,2062.7883,4.0368 -200,2x2x2,512,4096,8601.6000,98.3040,8404.9920,67.6227,1.2114,2063.6823,4.0385 -200,1x1x1,1024,1024,4247.5520,24.5760,4198.4000,33.6446,0.6087,4107.0054,4.0147 -200,1x1x2,1024,2048,8495.1040,49.1520,8396.8000,67.3630,0.6080,4111.5120,4.0191 -200,1x2x1,1024,2048,8495.1040,49.1520,8396.8000,67.3655,0.6080,4111.6644,4.0192 -200,1x2x2,1024,4096,16990.2080,98.3040,16793.6000,134.7595,0.6079,4112.5325,4.0201 -200,2x1x1,1024,2048,8495.1040,49.1520,8396.8000,67.3755,0.6079,4112.2737,4.0198 -200,2x1x2,1024,4096,16990.2080,98.3040,16793.6000,134.6290,0.6085,4108.5514,4.0162 -200,2x2x1,1024,4096,16990.2080,98.3040,16793.6000,134.7230,0.6081,4111.4207,4.0190 -200,2x2x2,1024,8192,33980.4160,196.6080,33587.2000,269.4353,0.6081,4111.2566,4.0188 -200,1x1x1,2048,2048,16883.7120,49.1520,16785.4080,137.8137,0.2972,8411.4836,4.1092 -200,1x1x1,4096,4096,67321.8560,98.3040,67125.2480,546.8174,0.1498,16687.5438,4.0751 -200,1x1x1,8192,8192,268861.4400,196.6080,268468.2240,2211.8457,0.0741,33750.0866,4.1204 diff --git a/scripts/results_soa_casclakesp2_iln1000.txt b/scripts/results_soa_casclakesp2_iln1000.txt deleted file mode 100644 index 303232b..0000000 --- a/scripts/results_soa_casclakesp2_iln1000.txt +++ /dev/null @@ -1,142 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7405,69.1424,34.7110,4.9587 -200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4818,69.1066,34.7290,4.9613 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9627,69.1261,34.7191,4.9599 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9244,69.1378,34.7133,4.9590 -200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4813,69.1298,34.7173,4.9596 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9633,69.1126,34.7259,4.9608 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9254,69.1265,34.7189,4.9598 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8621,69.0600,34.7524,4.9646 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9705,68.9438,34.8110,4.9730 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9338,69.0288,34.7681,4.9669 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8492,69.1354,34.7145,4.9592 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.7239,69.0612,34.7518,4.9645 -200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4814,69.1239,34.7203,4.9600 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9622,69.1383,34.7130,4.9590 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9256,69.1234,34.7205,4.9601 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8548,69.1026,34.7310,4.9616 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,2.9625,69.1319,34.7162,4.9595 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9247,69.1339,34.7152,4.9593 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8484,69.1400,34.7122,4.9589 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,23.7201,69.0721,34.7463,4.9638 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9244,69.1376,34.7134,4.9591 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8496,69.1331,34.7156,4.9594 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.7200,69.0724,34.7461,4.9637 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.4404,-21.4620,-111.8254,-15.9751 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9624,69.1338,34.7153,4.9593 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,5.9251,69.1300,34.7172,4.9596 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,11.8495,69.1335,34.7155,4.9594 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.7169,69.0814,34.7416,4.9631 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9246,69.1360,34.7142,4.9592 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8498,69.1319,34.7163,4.9595 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,23.7234,69.0625,34.7511,4.9644 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.4499,-21.4578,-111.8477,-15.9782 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8552,69.1005,34.7320,4.9617 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.7215,69.0682,34.7483,4.9640 -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7406,69.1332,34.7156,4.9594 -200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4813,69.1306,34.7169,4.9596 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9622,69.1383,34.7130,4.9590 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9253,69.1267,34.7188,4.9598 -200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4813,69.1298,34.7173,4.9596 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9625,69.1308,34.7168,4.9595 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9247,69.1340,34.7152,4.9593 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8482,69.1412,34.7116,4.9588 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9625,69.1310,34.7167,4.9595 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9254,69.1263,34.7191,4.9599 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8488,69.1375,34.7134,4.9591 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.7265,69.0536,34.7556,4.9651 -200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4814,69.1244,34.7200,4.9600 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9622,69.1375,34.7134,4.9591 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9251,69.1301,34.7172,4.9596 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8497,69.1326,34.7159,4.9594 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,2.9623,69.1364,34.7140,4.9591 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9250,69.1311,34.7166,4.9595 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8488,69.1378,34.7133,4.9590 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,23.7217,69.0677,34.7485,4.9641 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9246,69.1355,34.7145,4.9592 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8491,69.1358,34.7143,4.9592 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.7200,69.0725,34.7461,4.9637 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.4484,-21.4584,-111.8442,-15.9777 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9624,69.1343,34.7151,4.9593 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,5.9239,69.1432,34.7106,4.9587 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,11.8490,69.1367,34.7138,4.9591 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.7192,69.0749,34.7449,4.9636 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9251,69.1301,34.7171,4.9596 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8496,69.1329,34.7157,4.9594 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,23.7224,69.0655,34.7496,4.9642 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.4415,-21.4615,-111.8280,-15.9754 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8502,69.1297,34.7173,4.9596 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.7177,69.0792,34.7428,4.9633 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,47.4485,-21.4584,-111.8445,-15.9778 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,94.8632,-21.4660,-111.8047,-15.9721 -200,4x4x2,16,512,59.3920,12.2880,34.8160,2.8749,35.6181,67.3814,4.4921 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,5.7553,35.5849,67.4444,4.4963 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,11.5277,35.5317,67.5452,4.5030 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,23.0679,35.5125,67.5818,4.5055 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,5.7516,35.6076,67.4014,4.4934 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,11.5048,35.6026,67.4108,4.4941 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,23.0343,35.5643,67.4834,4.4989 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,46.1992,35.4638,67.6746,4.5116 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,11.5339,35.5126,67.5817,4.5054 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,23.0366,35.5607,67.4902,4.4993 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,46.1666,35.4888,67.6269,4.5085 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,92.3461,-11.0256,-217.6759,-14.5117 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,5.7504,35.6148,67.3877,4.4925 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,11.5363,35.5054,67.5954,4.5064 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,23.0449,35.5480,67.5143,4.5010 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,46.2153,35.4515,67.6981,4.5132 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,11.5019,35.6114,67.3942,4.4929 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,23.0126,35.5980,67.4196,4.4946 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,46.1823,35.4768,67.6499,4.5100 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,92.3762,-11.0220,-217.7469,-14.5165 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,23.0367,35.5606,67.4904,4.4994 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,46.1673,35.4883,67.6279,4.5085 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,92.4053,-11.0185,-217.8156,-14.5210 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,184.6536,-11.0279,-217.6306,-14.5087 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,11.4984,35.6223,67.3736,4.4916 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,23.0553,35.5319,67.5449,4.5030 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,46.1639,35.4909,67.6229,4.5082 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,92.3485,-11.0253,-217.6818,-14.5121 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,23.0221,35.5832,67.4475,4.4965 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,46.1950,35.4671,67.6684,4.5112 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,92.3825,-11.0212,-217.7618,-14.5175 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,184.4897,-11.0377,-217.4373,-14.4958 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,46.1887,35.4719,67.6592,4.5106 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,92.4000,-11.0191,-217.8031,-14.5202 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,184.6561,-11.0277,-217.6335,-14.5089 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,369.2723,0.6020,3986.7795,265.7853 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,11.4223,17.9299,133.8547,4.3179 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,22.8232,17.9466,133.7300,4.3139 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,45.6452,17.9471,133.7263,4.3138 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,91.3233,17.9407,133.7744,4.3153 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,22.8306,17.9408,133.7732,4.3153 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,45.6485,17.9458,133.7357,4.3141 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,91.3158,17.9421,133.7634,4.3149 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,182.6220,-5.5753,-430.4722,-13.8862 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,45.6489,17.9457,133.7371,4.3141 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,91.2890,17.9474,133.7241,4.3137 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,182.6145,-5.5755,-430.4547,-13.8856 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,365.2677,-5.5749,-430.5002,-13.8871 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,22.8301,17.9412,133.7701,4.3152 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,45.6689,17.9378,133.7956,4.3160 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,91.3143,17.9424,133.7611,4.3149 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,182.6332,-5.5749,-430.4987,-13.8871 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,45.6519,17.9445,133.7457,4.3144 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,91.3215,17.9410,133.7717,4.3152 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,182.6451,-5.5746,-430.5267,-13.8880 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,365.1989,-5.5760,-430.4192,-13.8845 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,91.3015,17.9449,133.7425,4.3143 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,182.6251,-5.5752,-430.4795,-13.8864 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,365.2087,-5.5758,-430.4307,-13.8849 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,730.5781,0.3043,7887.5501,254.4371 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,45.6592,17.9416,133.7671,4.3151 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,91.3092,17.9434,133.7537,4.3146 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,182.6471,-5.5745,-430.5315,-13.8881 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,365.2706,-5.5749,-430.5036,-13.8872 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,91.3464,17.9361,133.8082,4.3164 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,182.6559,-5.5742,-430.5521,-13.8888 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,365.2269,-5.5755,-430.4521,-13.8856 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,730.5707,0.3043,7887.4697,254.4345 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,182.6406,-5.5747,-430.5160,-13.8876 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,365.2364,-5.5754,-430.4633,-13.8859 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,730.5352,0.3043,7887.0871,254.4222 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,1461.1927,0.3043,7887.7469,254.4434 diff --git a/scripts/results_soa_skylakesp2.txt b/scripts/results_soa_skylakesp2.txt deleted file mode 100644 index 98c4350..0000000 --- a/scripts/results_soa_skylakesp2.txt +++ /dev/null @@ -1,450 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.0016,31.1175,106.0818,15.1545 -200,4x4x4,8,512,43.0080,12.2880,18.4320,0.0035,29.3957,112.2953,16.0422 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,0.0070,29.1148,113.3787,16.1970 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,0.0143,28.6699,115.1380,16.4483 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,0.0279,29.3329,112.5357,16.0765 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,0.0589,27.8187,118.6611,16.9516 -200,4x8x2,8,512,43.0080,12.2880,18.4320,0.0034,30.1387,109.5268,15.6467 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.1126,113.3874,16.1982 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,0.0138,29.7694,110.8857,15.8408 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9748,113.9266,16.2752 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,0.0567,28.9172,114.1536,16.3077 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,0.1181,27.7523,118.9452,16.9922 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,0.0070,29.3553,112.4497,16.0642 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,0.0141,29.0617,113.5858,16.2265 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,0.0283,28.9315,114.0972,16.2996 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,0.0581,28.1803,117.1387,16.7341 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,0.1182,27.7240,119.0667,17.0095 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,0.2292,28.5891,115.4635,16.4948 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,0.0138,29.5889,111.5622,15.9375 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,0.0277,29.6082,111.4894,15.9271 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,0.0573,28.6036,115.4052,16.4865 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,0.1180,27.7805,118.8243,16.9749 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,0.2315,28.3076,116.6117,16.6588 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,0.5896,22.2305,148.4894,21.2128 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,0.0275,29.8382,110.6301,15.8043 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,0.0590,27.7490,118.9591,16.9942 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9699,118.0198,16.8600 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,0.2337,28.0471,117.6948,16.8135 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,0.5894,22.2368,148.4475,21.2068 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,1.4231,18.4202,179.2050,25.6007 -200,8x4x2,8,512,43.0080,12.2880,18.4320,0.0034,30.1707,109.4109,15.6301 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,0.0070,29.1336,113.3055,16.1865 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,0.0141,29.0357,113.6876,16.2411 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,0.0283,28.9620,113.9771,16.2824 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,0.0589,27.7938,118.7673,16.9668 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,0.1177,27.8454,118.5474,16.9353 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,0.0071,28.7228,114.9259,16.4180 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,0.0143,28.6016,115.4133,16.4876 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,0.0277,29.5796,111.5972,15.9425 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,0.0588,27.8794,118.4030,16.9147 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9865,117.9497,16.8500 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,0.2282,28.7237,114.9226,16.4175 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.7967,114.6314,16.3759 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,0.0283,28.9346,114.0847,16.2978 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,0.0570,28.7606,114.7752,16.3965 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,0.1179,27.7814,118.8205,16.9744 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,0.2265,28.9373,114.0741,16.2963 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,0.5811,22.5540,146.3601,20.9086 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,0.0286,28.6660,115.1539,16.4506 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,0.0586,27.9693,118.0222,16.8603 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,0.1156,28.3397,116.4796,16.6399 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8080,114.5864,16.3695 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,0.5878,22.2982,148.0390,21.1484 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,1.4210,18.4483,178.9322,25.5617 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,0.0587,27.9060,118.2900,16.8986 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,0.1172,27.9557,118.0798,16.8685 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,0.2330,28.1226,117.3790,16.7684 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,0.5877,22.3042,147.9991,21.1427 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,1.4194,18.4681,178.7404,25.5343 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,3.0295,17.3061,190.7417,27.2488 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,0.0072,28.5625,115.5712,16.5102 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,0.0139,29.4813,111.9692,15.9956 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,0.0281,29.1991,113.0515,16.1502 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,0.0571,28.7037,115.0028,16.4290 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,0.1143,28.6746,115.1193,16.4456 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,0.2279,28.7624,114.7679,16.3954 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,0.0142,28.8441,114.4430,16.3490 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,0.0284,28.8597,114.3809,16.3401 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,0.0571,28.6922,115.0488,16.4355 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,0.1139,28.7644,114.7598,16.3943 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,0.2279,28.7548,114.7984,16.3998 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,0.5880,22.2899,148.0941,21.1563 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,0.0285,28.7502,114.8167,16.4024 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,0.0571,28.7103,114.9760,16.4251 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,0.1174,27.9047,118.2953,16.8993 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,0.2328,28.1544,117.2462,16.7495 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,0.5841,22.4409,147.0975,21.0139 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,1.4255,18.3902,179.4976,25.6425 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,0.0588,27.8632,118.4715,16.9245 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,0.1147,28.5722,115.5317,16.5045 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,0.2358,27.7892,118.7872,16.9696 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,0.5700,22.9961,143.5462,20.5066 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,1.4499,18.0804,182.5737,26.0820 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,3.0517,17.1800,192.1420,27.4489 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9769,117.9904,16.8558 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,0.2327,28.1641,117.2060,16.7437 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,0.5765,22.7359,145.1890,20.7413 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,1.4113,18.5747,177.7145,25.3878 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,3.1046,16.8873,195.4718,27.9245 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,6.3321,16.5596,199.3400,28.4771 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,0.0140,29.3028,112.6513,16.0930 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,0.0279,29.4024,112.2697,16.0385 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,0.0571,28.7071,114.9890,16.4270 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,0.1176,27.8618,118.4778,16.9254 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,0.2354,27.8446,118.5509,16.9358 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,0.5903,22.2057,148.6558,21.2365 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,0.0275,29.7629,110.9100,15.8443 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,0.0588,27.8758,118.4181,16.9169 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,0.1173,27.9366,118.1605,16.8801 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,0.2267,28.9068,114.1947,16.3135 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,0.5834,22.4680,146.9204,20.9886 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,1.4399,18.2055,181.3185,25.9026 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,0.0594,27.5914,119.6387,17.0912 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,0.1171,27.9773,117.9887,16.8555 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,0.2352,27.8634,118.4709,16.9244 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,0.5805,22.5780,146.2041,20.8863 -200,32x16x32,8,131072,11010.0480,3145.7280,4718.5920,1.4311,18.3173,180.2122,25.7446 -200,32x16x64,8,262144,22020.0960,6291.4560,9437.1840,3.0673,17.0929,193.1212,27.5887 -200,32x32x2,8,16384,1376.2560,393.2160,589.8240,0.1147,28.5593,115.5841,16.5120 -200,32x32x4,8,32768,2752.5120,786.4320,1179.6480,0.2338,28.0300,117.7668,16.8238 -200,32x32x8,8,65536,5505.0240,1572.8640,2359.2960,0.5872,22.3231,147.8738,21.1248 -200,32x32x16,8,131072,11010.0480,3145.7280,4718.5920,1.4118,18.5683,177.7761,25.3966 -200,32x32x32,8,262144,22020.0960,6291.4560,9437.1840,3.0614,17.1258,192.7496,27.5357 -200,32x32x64,8,524288,44040.1920,12582.9120,18874.3680,6.3631,16.4789,200.3168,28.6167 -200,32x64x2,8,32768,2752.5120,786.4320,1179.6480,0.2330,28.1262,117.3640,16.7663 -200,32x64x4,8,65536,5505.0240,1572.8640,2359.2960,0.5818,22.5288,146.5236,20.9319 -200,32x64x8,8,131072,11010.0480,3145.7280,4718.5920,1.4092,18.6030,177.4448,25.3493 -200,32x64x16,8,262144,22020.0960,6291.4560,9437.1840,3.0520,17.1785,192.1593,27.4513 -200,32x64x32,8,524288,44040.1920,12582.9120,18874.3680,6.3449,16.5264,199.7414,28.5345 -200,32x64x64,8,1048576,88080.3840,25165.8240,37748.7360,12.8872,16.2732,202.8493,28.9785 -200,64x4x2,8,4096,344.0640,98.3040,147.4560,0.0278,29.4982,111.9052,15.9865 -200,64x4x4,8,8192,688.1280,196.6080,294.9120,0.0573,28.5718,115.5334,16.5048 -200,64x4x8,8,16384,1376.2560,393.2160,589.8240,0.1152,28.4428,116.0573,16.5796 -200,64x4x16,8,32768,2752.5120,786.4320,1179.6480,0.2336,28.0505,117.6807,16.8115 -200,64x4x32,8,65536,5505.0240,1572.8640,2359.2960,0.5798,22.6063,146.0209,20.8601 -200,64x4x64,8,131072,11010.0480,3145.7280,4718.5920,1.4209,18.4488,178.9273,25.5610 -200,64x8x2,8,8192,688.1280,196.6080,294.9120,0.0586,27.9668,118.0326,16.8618 -200,64x8x4,8,16384,1376.2560,393.2160,589.8240,0.1160,28.2470,116.8621,16.6946 -200,64x8x8,8,32768,2752.5120,786.4320,1179.6480,0.2294,28.5742,115.5238,16.5034 -200,64x8x16,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3285,147.8382,21.1197 -200,64x8x32,8,131072,11010.0480,3145.7280,4718.5920,1.4191,18.4732,178.6914,25.5273 -200,64x8x64,8,262144,22020.0960,6291.4560,9437.1840,3.0748,17.0510,193.5953,27.6565 -200,64x16x2,8,16384,1376.2560,393.2160,589.8240,0.1159,28.2836,116.7109,16.6730 -200,64x16x4,8,32768,2752.5120,786.4320,1179.6480,0.2332,28.0997,117.4745,16.7821 -200,64x16x8,8,65536,5505.0240,1572.8640,2359.2960,0.5861,22.3650,147.5965,21.0852 -200,64x16x16,8,131072,11010.0480,3145.7280,4718.5920,1.4183,18.4828,178.5985,25.5141 -200,64x16x32,8,262144,22020.0960,6291.4560,9437.1840,3.0343,17.2785,191.0463,27.2923 -200,64x16x64,8,524288,44040.1920,12582.9120,18874.3680,6.3269,16.5733,199.1752,28.4536 -200,64x32x2,8,32768,2752.5120,786.4320,1179.6480,0.2275,28.8109,114.5747,16.3678 -200,64x32x4,8,65536,5505.0240,1572.8640,2359.2960,0.5870,22.3278,147.8425,21.1204 -200,64x32x8,8,131072,11010.0480,3145.7280,4718.5920,1.4124,18.5597,177.8585,25.4084 -200,64x32x16,8,262144,22020.0960,6291.4560,9437.1840,3.0282,17.3134,190.6611,27.2373 -200,64x32x32,8,524288,44040.1920,12582.9120,18874.3680,6.3631,16.4791,200.3148,28.6164 -200,64x32x64,8,1048576,88080.3840,25165.8240,37748.7360,12.7459,16.4536,200.6248,28.6607 -200,64x64x2,8,65536,5505.0240,1572.8640,2359.2960,0.5816,22.5346,146.4856,20.9265 -200,64x64x4,8,131072,11010.0480,3145.7280,4718.5920,1.4185,18.4802,178.6234,25.5176 -200,64x64x8,8,262144,22020.0960,6291.4560,9437.1840,3.0653,17.1039,192.9967,27.5710 -200,64x64x16,8,524288,44040.1920,12582.9120,18874.3680,6.2591,16.7527,197.0425,28.1489 -200,64x64x32,8,1048576,88080.3840,25165.8240,37748.7360,12.7873,16.4002,201.2777,28.7540 -200,64x64x64,8,2097152,176160.7680,50331.6480,75497.4720,25.3414,16.5512,199.4419,-61.5561 -200,4x4x2,16,512,59.3920,12.2880,34.8160,0.0056,18.2960,180.4222,12.0281 -200,4x4x4,16,1024,118.7840,24.5760,69.6320,0.0113,18.0639,182.7398,12.1827 -200,4x4x8,16,2048,237.5680,49.1520,139.2640,0.0232,17.6695,186.8195,12.4546 -200,4x4x16,16,4096,475.1360,98.3040,278.5280,0.0451,18.1703,181.6698,12.1113 -200,4x4x32,16,8192,950.2720,196.6080,557.0560,0.0915,17.9014,184.3990,12.2933 -200,4x4x64,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8046,185.4010,12.3601 -200,4x8x2,16,1024,118.7840,24.5760,69.6320,0.0112,18.2238,181.1364,12.0758 -200,4x8x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2084,181.2901,12.0860 -200,4x8x8,16,4096,475.1360,98.3040,278.5280,0.0452,18.1204,182.1706,12.1447 -200,4x8x16,16,8192,950.2720,196.6080,557.0560,0.0908,18.0397,182.9853,12.1990 -200,4x8x32,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8319,185.1175,12.3412 -200,4x8x64,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0025,183.3630,12.2242 -200,4x16x2,16,2048,237.5680,49.1520,139.2640,0.0227,18.0239,183.1456,12.2097 -200,4x16x4,16,4096,475.1360,98.3040,278.5280,0.0451,18.1620,181.7526,12.1168 -200,4x16x8,16,8192,950.2720,196.6080,557.0560,0.0923,17.7419,186.0569,12.4038 -200,4x16x16,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0477,182.9043,12.1936 -200,4x16x32,16,32768,3801.0880,786.4320,2228.2240,0.3646,17.9729,183.6656,12.2444 -200,4x16x64,16,65536,7602.1760,1572.8640,4456.4480,0.8363,15.6732,210.6148,14.0410 -200,4x32x2,16,4096,475.1360,98.3040,278.5280,0.0449,18.2632,180.7461,12.0497 -200,4x32x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7950,185.5015,12.3668 -200,4x32x8,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8299,185.1388,12.3426 -200,4x32x16,16,32768,3801.0880,786.4320,2228.2240,0.3655,17.9329,184.0750,12.2717 -200,4x32x32,16,65536,7602.1760,1572.8640,4456.4480,0.8389,15.6246,211.2694,14.0846 -200,4x32x64,16,131072,15204.3520,3145.7280,8912.8960,1.7340,15.1178,218.3526,14.5568 -200,4x64x2,16,8192,950.2720,196.6080,557.0560,0.0907,18.0613,182.7666,12.1844 -200,4x64x4,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8213,185.2282,12.3485 -200,4x64x8,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7464,186.0092,12.4006 -200,4x64x16,16,65536,7602.1760,1572.8640,4456.4480,0.8366,15.6679,210.6855,14.0457 -200,4x64x32,16,131072,15204.3520,3145.7280,8912.8960,1.7225,15.2190,216.9000,14.4600 -200,4x64x64,16,262144,30408.7040,6291.4560,17825.7920,3.4820,15.0573,219.2297,14.6153 -200,8x4x2,16,1024,118.7840,24.5760,69.6320,0.0114,18.0138,183.2482,12.2165 -200,8x4x4,16,2048,237.5680,49.1520,139.2640,0.0225,18.2077,181.2973,12.0865 -200,8x4x8,16,4096,475.1360,98.3040,278.5280,0.0454,18.0407,182.9754,12.1984 -200,8x4x16,16,8192,950.2720,196.6080,557.0560,0.0918,17.8433,184.9994,12.3333 -200,8x4x32,16,16384,1900.5440,393.2160,1114.1120,0.1826,17.9495,183.9044,12.2603 -200,8x4x64,16,32768,3801.0880,786.4320,2228.2240,0.3641,18.0005,183.3834,12.2256 -200,8x8x2,16,2048,237.5680,49.1520,139.2640,0.0224,18.3071,180.3121,12.0208 -200,8x8x4,16,4096,475.1360,98.3040,278.5280,0.0453,18.0714,182.6647,12.1776 -200,8x8x8,16,8192,950.2720,196.6080,557.0560,0.0906,18.0807,182.5707,12.1714 -200,8x8x16,16,16384,1900.5440,393.2160,1114.1120,0.1838,17.8322,185.1142,12.3409 -200,8x8x32,16,32768,3801.0880,786.4320,2228.2240,0.3640,18.0066,183.3212,12.2214 -200,8x8x64,16,65536,7602.1760,1572.8640,4456.4480,0.8361,15.6765,210.5705,14.0380 -200,8x16x2,16,4096,475.1360,98.3040,278.5280,0.0445,18.4011,179.3913,11.9594 -200,8x16x4,16,8192,950.2720,196.6080,557.0560,0.0908,18.0523,182.8576,12.1905 -200,8x16x8,16,16384,1900.5440,393.2160,1114.1120,0.1840,17.8071,185.3758,12.3584 -200,8x16x16,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8222,185.2185,12.3479 -200,8x16x32,16,65536,7602.1760,1572.8640,4456.4480,0.8354,15.6894,210.3971,14.0265 -200,8x16x64,16,131072,15204.3520,3145.7280,8912.8960,1.7307,15.1470,217.9303,14.5287 -200,8x32x2,16,8192,950.2720,196.6080,557.0560,0.0915,17.8982,184.4316,12.2954 -200,8x32x4,16,16384,1900.5440,393.2160,1114.1120,0.1839,17.8177,185.2656,12.3510 -200,8x32x8,16,32768,3801.0880,786.4320,2228.2240,0.3630,18.0547,182.8336,12.1889 -200,8x32x16,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6691,210.6693,14.0446 -200,8x32x32,16,131072,15204.3520,3145.7280,8912.8960,1.7251,15.1956,217.2335,14.4822 -200,8x32x64,16,262144,30408.7040,6291.4560,17825.7920,3.4910,15.0184,219.7975,14.6532 -200,8x64x2,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.8028,185.4207,12.3614 -200,8x64x4,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8242,185.1975,12.3465 -200,8x64x8,16,65536,7602.1760,1572.8640,4456.4480,0.8365,15.6697,210.6616,14.0441 -200,8x64x16,16,131072,15204.3520,3145.7280,8912.8960,1.7215,15.2276,216.7771,14.4518 -200,8x64x32,16,262144,30408.7040,6291.4560,17825.7920,3.4890,15.0267,219.6760,14.6451 -200,8x64x64,16,524288,60817.4080,12582.9120,35651.5840,7.0182,14.9408,220.9380,14.7292 -200,16x4x2,16,2048,237.5680,49.1520,139.2640,0.0225,18.2315,181.0606,12.0707 -200,16x4x4,16,4096,475.1360,98.3040,278.5280,0.0454,18.0499,182.8815,12.1921 -200,16x4x8,16,8192,950.2720,196.6080,557.0560,0.0919,17.8201,185.2398,12.3493 -200,16x4x16,16,16384,1900.5440,393.2160,1114.1120,0.1826,17.9490,183.9098,12.2607 -200,16x4x32,16,32768,3801.0880,786.4320,2228.2240,0.3682,17.8013,185.4364,12.3624 -200,16x4x64,16,65536,7602.1760,1572.8640,4456.4480,0.8284,15.8219,208.6348,13.9090 -200,16x8x2,16,4096,475.1360,98.3040,278.5280,0.0453,18.0897,182.4799,12.1653 -200,16x8x4,16,8192,950.2720,196.6080,557.0560,0.0921,17.7910,185.5429,12.3695 -200,16x8x8,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.7950,185.5011,12.3667 -200,16x8x16,16,32768,3801.0880,786.4320,2228.2240,0.3644,17.9861,183.5306,12.2354 -200,16x8x32,16,65536,7602.1760,1572.8640,4456.4480,0.8360,15.6776,210.5549,14.0370 -200,16x8x64,16,131072,15204.3520,3145.7280,8912.8960,1.7218,15.2250,216.8139,14.4543 -200,16x16x2,16,8192,950.2720,196.6080,557.0560,0.0919,17.8267,185.1722,12.3448 -200,16x16x4,16,16384,1900.5440,393.2160,1114.1120,0.1816,18.0469,182.9119,12.1941 -200,16x16x8,16,32768,3801.0880,786.4320,2228.2240,0.3628,18.0620,182.7598,12.1840 -200,16x16x16,16,65536,7602.1760,1572.8640,4456.4480,0.8371,15.6579,210.8203,14.0547 -200,16x16x32,16,131072,15204.3520,3145.7280,8912.8960,1.7275,15.1749,217.5302,14.5020 -200,16x16x64,16,262144,30408.7040,6291.4560,17825.7920,3.4822,15.0561,219.2462,14.6164 -200,16x32x2,16,16384,1900.5440,393.2160,1114.1120,0.1814,18.0647,182.7321,12.1821 -200,16x32x4,16,32768,3801.0880,786.4320,2228.2240,0.3693,17.7452,186.0226,12.4015 -200,16x32x8,16,65536,7602.1760,1572.8640,4456.4480,0.8312,15.7692,209.3325,13.9555 -200,16x32x16,16,131072,15204.3520,3145.7280,8912.8960,1.7303,15.1499,217.8895,14.5260 -200,16x32x32,16,262144,30408.7040,6291.4560,17825.7920,3.4813,15.0603,219.1857,14.6124 -200,16x32x64,16,524288,60817.4080,12582.9120,35651.5840,7.0206,14.9358,221.0133,14.7342 -200,16x64x2,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8227,185.2129,12.3475 -200,16x64x4,16,65536,7602.1760,1572.8640,4456.4480,0.8286,15.8193,208.6690,13.9113 -200,16x64x8,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1243,218.2585,14.5506 -200,16x64x16,16,262144,30408.7040,6291.4560,17825.7920,3.4808,15.0624,219.1549,14.6103 -200,16x64x32,16,524288,60817.4080,12582.9120,35651.5840,7.0109,14.9565,220.7072,14.7138 -200,16x64x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0846,14.8897,221.6970,-40.4557 -200,32x4x2,16,4096,475.1360,98.3040,278.5280,0.0455,18.0158,183.2281,12.2152 -200,32x4x4,16,8192,950.2720,196.6080,557.0560,0.0910,18.0058,183.3293,12.2220 -200,32x4x8,16,16384,1900.5440,393.2160,1114.1120,0.1824,17.9626,183.7708,12.2514 -200,32x4x16,16,32768,3801.0880,786.4320,2228.2240,0.3649,17.9604,183.7931,12.2529 -200,32x4x32,16,65536,7602.1760,1572.8640,4456.4480,0.8305,15.7818,209.1647,13.9443 -200,32x4x64,16,131072,15204.3520,3145.7280,8912.8960,1.7326,15.1299,218.1779,14.5452 -200,32x8x2,16,8192,950.2720,196.6080,557.0560,0.0914,17.9206,184.2011,12.2801 -200,32x8x4,16,16384,1900.5440,393.2160,1114.1120,0.1817,18.0318,183.0659,12.2044 -200,32x8x8,16,32768,3801.0880,786.4320,2228.2240,0.3631,18.0476,182.9056,12.1937 -200,32x8x16,16,65536,7602.1760,1572.8640,4456.4480,0.8336,15.7244,209.9284,13.9952 -200,32x8x32,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1241,218.2616,14.5508 -200,32x8x64,16,262144,30408.7040,6291.4560,17825.7920,3.4862,15.0390,219.4955,14.6330 -200,32x16x2,16,16384,1900.5440,393.2160,1114.1120,0.1817,18.0327,183.0564,12.2038 -200,32x16x4,16,32768,3801.0880,786.4320,2228.2240,0.3708,17.6763,186.7474,12.4498 -200,32x16x8,16,65536,7602.1760,1572.8640,4456.4480,0.8334,15.7281,209.8790,13.9919 -200,32x16x16,16,131072,15204.3520,3145.7280,8912.8960,1.7301,15.1518,217.8613,14.5241 -200,32x16x32,16,262144,30408.7040,6291.4560,17825.7920,3.4846,15.0461,219.3931,14.6262 -200,32x16x64,16,524288,60817.4080,12582.9120,35651.5840,7.0117,14.9548,220.7325,14.7155 -200,32x32x2,16,32768,3801.0880,786.4320,2228.2240,0.3650,17.9532,183.8669,12.2578 -200,32x32x4,16,65536,7602.1760,1572.8640,4456.4480,0.8263,15.8627,208.0976,13.8732 -200,32x32x8,16,131072,15204.3520,3145.7280,8912.8960,1.7333,15.1243,218.2578,14.5505 -200,32x32x16,16,262144,30408.7040,6291.4560,17825.7920,3.4864,15.0382,219.5082,14.6339 -200,32x32x32,16,524288,60817.4080,12582.9120,35651.5840,7.0269,14.9223,221.2125,14.7475 -200,32x32x64,16,1048576,121634.8160,25165.8240,71303.1680,14.0684,14.9068,221.4424,-40.4092 -200,32x64x2,16,65536,7602.1760,1572.8640,4456.4480,0.8343,15.7113,210.1042,14.0069 -200,32x64x4,16,131072,15204.3520,3145.7280,8912.8960,1.7294,15.1578,217.7754,14.5184 -200,32x64x8,16,262144,30408.7040,6291.4560,17825.7920,3.4826,15.0546,219.2679,14.6179 -200,32x64x16,16,524288,60817.4080,12582.9120,35651.5840,7.0182,14.9408,220.9389,14.7293 -200,32x64x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0401,14.9369,220.9959,-40.3277 -200,32x64x64,16,2097152,243269.6320,50331.6480,142606.3360,28.4436,14.7460,223.8568,47.0287 -200,64x4x2,16,8192,950.2720,196.6080,557.0560,0.0907,18.0594,182.7859,12.1857 -200,64x4x4,16,16384,1900.5440,393.2160,1114.1120,0.1821,17.9935,183.4551,12.2303 -200,64x4x8,16,32768,3801.0880,786.4320,2228.2240,0.3673,17.8419,185.0140,12.3343 -200,64x4x16,16,65536,7602.1760,1572.8640,4456.4480,0.8270,15.8488,208.2813,13.8854 -200,64x4x32,16,131072,15204.3520,3145.7280,8912.8960,1.7268,15.1806,217.4484,14.4966 -200,64x4x64,16,262144,30408.7040,6291.4560,17825.7920,3.5042,14.9618,220.6282,14.7085 -200,64x8x2,16,16384,1900.5440,393.2160,1114.1120,0.1841,17.7998,185.4515,12.3634 -200,64x8x4,16,32768,3801.0880,786.4320,2228.2240,0.3677,17.8227,185.2128,12.3475 -200,64x8x8,16,65536,7602.1760,1572.8640,4456.4480,0.8403,15.5980,211.6294,14.1086 -200,64x8x16,16,131072,15204.3520,3145.7280,8912.8960,1.7286,15.1654,217.6671,14.5111 -200,64x8x32,16,262144,30408.7040,6291.4560,17825.7920,3.4831,15.0521,219.3045,14.6203 -200,64x8x64,16,524288,60817.4080,12582.9120,35651.5840,7.0128,14.9524,220.7673,14.7178 -200,64x16x2,16,32768,3801.0880,786.4320,2228.2240,0.3696,17.7295,186.1872,12.4125 -200,64x16x4,16,65536,7602.1760,1572.8640,4456.4480,0.8355,15.6870,210.4292,14.0286 -200,64x16x8,16,131072,15204.3520,3145.7280,8912.8960,1.7271,15.1781,217.4841,14.4989 -200,64x16x16,16,262144,30408.7040,6291.4560,17825.7920,3.4838,15.0493,219.3463,14.6231 -200,64x16x32,16,524288,60817.4080,12582.9120,35651.5840,6.9985,14.9828,220.3193,14.6880 -200,64x16x64,16,1048576,121634.8160,25165.8240,71303.1680,14.1217,14.8505,222.2818,-40.5624 -200,64x32x2,16,65536,7602.1760,1572.8640,4456.4480,0.8328,15.7387,209.7378,13.9825 -200,64x32x4,16,131072,15204.3520,3145.7280,8912.8960,1.7318,15.1367,218.0798,14.5387 -200,64x32x8,16,262144,30408.7040,6291.4560,17825.7920,3.4835,15.0505,219.3286,14.6219 -200,64x32x16,16,524288,60817.4080,12582.9120,35651.5840,7.0249,14.9267,221.1479,14.7432 -200,64x32x32,16,1048576,121634.8160,25165.8240,71303.1680,14.0693,14.9059,221.4558,-40.4116 -200,64x32x64,16,2097152,243269.6320,50331.6480,142606.3360,28.5260,14.7034,224.5056,47.1650 -200,64x64x2,16,131072,15204.3520,3145.7280,8912.8960,1.7298,15.1548,217.8186,14.5212 -200,64x64x4,16,262144,30408.7040,6291.4560,17825.7920,3.4835,15.0508,219.3240,14.6216 -200,64x64x8,16,524288,60817.4080,12582.9120,35651.5840,7.0038,14.9715,220.4853,14.6990 -200,64x64x16,16,1048576,121634.8160,25165.8240,71303.1680,14.0787,14.8960,221.6037,-40.4386 -200,64x64x32,16,2097152,243269.6320,50331.6480,142606.3360,28.2532,14.8454,222.3579,46.7138 -200,64x64x64,16,4194304,486539.2640,100663.2960,285212.6720,56.7032,14.7939,223.1326,-619.8127 -200,4x4x2,32,1024,184.3200,24.5760,135.1680,0.0184,11.1343,296.4700,9.5635 -200,4x4x4,32,2048,368.6400,49.1520,270.3360,0.0367,11.1623,295.7287,9.5396 -200,4x4x8,32,4096,737.2800,98.3040,540.6720,0.0742,11.0459,298.8427,9.6401 -200,4x4x16,32,8192,1474.5600,196.6080,1081.3440,0.1479,11.0768,298.0102,9.6132 -200,4x4x32,32,16384,2949.1200,393.2160,2162.6880,0.2940,11.1459,296.1616,9.5536 -200,4x4x64,32,32768,5898.2400,786.4320,4325.3760,0.5993,10.9363,301.8385,9.7367 -200,4x8x2,32,2048,368.6400,49.1520,270.3360,0.0363,11.2914,292.3454,9.4305 -200,4x8x4,32,4096,737.2800,98.3040,540.6720,0.0743,11.0324,299.2096,9.6519 -200,4x8x8,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0358,299.1171,9.6489 -200,4x8x16,32,16384,2949.1200,393.2160,2162.6880,0.2969,11.0373,299.0780,9.6477 -200,4x8x32,32,32768,5898.2400,786.4320,4325.3760,0.5939,11.0341,299.1637,9.6504 -200,4x8x64,32,65536,11796.4800,1572.8640,8650.7520,1.2794,10.2451,322.2030,10.3936 -200,4x16x2,32,4096,737.2800,98.3040,540.6720,0.0740,11.0639,298.3586,9.6245 -200,4x16x4,32,8192,1474.5600,196.6080,1081.3440,0.1462,11.2070,294.5475,9.5015 -200,4x16x8,32,16384,2949.1200,393.2160,2162.6880,0.2939,11.1506,296.0374,9.5496 -200,4x16x16,32,32768,5898.2400,786.4320,4325.3760,0.5989,10.9423,301.6720,9.7314 -200,4x16x32,32,65536,11796.4800,1572.8640,8650.7520,1.2748,10.2822,321.0414,10.3562 -200,4x16x64,32,131072,23592.9600,3145.7280,17301.5040,2.6346,9.9501,331.7548,10.7018 -200,4x32x2,32,8192,1474.5600,196.6080,1081.3440,0.1485,11.0330,299.1930,9.6514 -200,4x32x4,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0277,299.3378,9.6561 -200,4x32x8,32,32768,5898.2400,786.4320,4325.3760,0.5972,10.9748,300.7808,9.7026 -200,4x32x16,32,65536,11796.4800,1572.8640,8650.7520,1.2769,10.2653,321.5702,10.3732 -200,4x32x32,32,131072,23592.9600,3145.7280,17301.5040,2.6224,9.9963,330.2237,10.6524 -200,4x32x64,32,262144,47185.9200,6291.4560,34603.0080,5.3057,9.8816,334.0550,10.7760 -200,4x64x2,32,16384,2949.1200,393.2160,2162.6880,0.2971,11.0311,299.2447,9.6531 -200,4x64x4,32,32768,5898.2400,786.4320,4325.3760,0.6015,10.8958,302.9599,9.7729 -200,4x64x8,32,65536,11796.4800,1572.8640,8650.7520,1.2819,10.2248,322.8439,10.4143 -200,4x64x16,32,131072,23592.9600,3145.7280,17301.5040,2.6160,10.0209,329.4108,10.6262 -200,4x64x32,32,262144,47185.9200,6291.4560,34603.0080,5.2811,9.9276,332.5078,10.7261 -200,4x64x64,32,524288,94371.8400,12582.9120,69206.0160,10.6519,9.8441,335.3289,-33.6676 -200,8x4x2,32,2048,368.6400,49.1520,270.3360,0.0368,11.1330,296.5056,9.5647 -200,8x4x4,32,4096,737.2800,98.3040,540.6720,0.0740,11.0736,298.0970,9.6160 -200,8x4x8,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0501,298.7301,9.6365 -200,8x4x16,32,16384,2949.1200,393.2160,2162.6880,0.2933,11.1714,295.4874,9.5319 -200,8x4x32,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9567,301.2773,9.7186 -200,8x4x64,32,65536,11796.4800,1572.8640,8650.7520,1.2789,10.2488,322.0863,10.3899 -200,8x8x2,32,4096,737.2800,98.3040,540.6720,0.0739,11.0912,297.6237,9.6008 -200,8x8x4,32,8192,1474.5600,196.6080,1081.3440,0.1482,11.0545,298.6125,9.6327 -200,8x8x8,32,16384,2949.1200,393.2160,2162.6880,0.2974,11.0180,299.5995,9.6645 -200,8x8x16,32,32768,5898.2400,786.4320,4325.3760,0.5904,11.0999,297.3889,9.5932 -200,8x8x32,32,65536,11796.4800,1572.8640,8650.7520,1.2774,10.2611,321.6992,10.3774 -200,8x8x64,32,131072,23592.9600,3145.7280,17301.5040,2.6137,10.0297,329.1226,10.6169 -200,8x16x2,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0470,298.8150,9.6392 -200,8x16x4,32,16384,2949.1200,393.2160,2162.6880,0.2975,11.0131,299.7339,9.6688 -200,8x16x8,32,32768,5898.2400,786.4320,4325.3760,0.5982,10.9562,301.2905,9.7190 -200,8x16x16,32,65536,11796.4800,1572.8640,8650.7520,1.2760,10.2721,321.3560,10.3663 -200,8x16x32,32,131072,23592.9600,3145.7280,17301.5040,2.6146,10.0263,329.2351,10.6205 -200,8x16x64,32,262144,47185.9200,6291.4560,34603.0080,5.2848,9.9206,332.7404,10.7336 -200,8x32x2,32,16384,2949.1200,393.2160,2162.6880,0.2967,11.0446,298.8779,9.6412 -200,8x32x4,32,32768,5898.2400,786.4320,4325.3760,0.5983,10.9536,301.3623,9.7214 -200,8x32x8,32,65536,11796.4800,1572.8640,8650.7520,1.2785,10.2522,321.9806,10.3865 -200,8x32x16,32,131072,23592.9600,3145.7280,17301.5040,2.6162,10.0200,329.4416,10.6271 -200,8x32x32,32,262144,47185.9200,6291.4560,34603.0080,5.2818,9.9263,332.5517,10.7275 -200,8x32x64,32,524288,94371.8400,12582.9120,69206.0160,10.6656,9.8314,335.7605,-33.7109 -200,8x64x2,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9568,301.2731,9.7185 -200,8x64x4,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2726,321.3416,10.3659 -200,8x64x8,32,131072,23592.9600,3145.7280,17301.5040,2.6177,10.0143,329.6278,10.6332 -200,8x64x16,32,262144,47185.9200,6291.4560,34603.0080,5.2981,9.8957,333.5791,10.7606 -200,8x64x32,32,524288,94371.8400,12582.9120,69206.0160,10.6569,9.8394,335.4876,-33.6835 -200,8x64x64,32,1048576,188743.6800,25165.8240,138412.0320,22.0848,9.4959,347.6238,-34.9020 -200,16x4x2,32,4096,737.2800,98.3040,540.6720,0.0734,11.1599,295.7909,9.5416 -200,16x4x4,32,8192,1474.5600,196.6080,1081.3440,0.1483,11.0457,298.8502,9.6403 -200,16x4x8,32,16384,2949.1200,393.2160,2162.6880,0.2969,11.0351,299.1364,9.6496 -200,16x4x16,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9182,302.3381,9.7528 -200,16x4x32,32,65536,11796.4800,1572.8640,8650.7520,1.2791,10.2475,322.1284,10.3912 -200,16x4x64,32,131072,23592.9600,3145.7280,17301.5040,2.6199,10.0058,329.9076,10.6422 -200,16x8x2,32,8192,1474.5600,196.6080,1081.3440,0.1471,11.1387,296.3547,9.5598 -200,16x8x4,32,16384,2949.1200,393.2160,2162.6880,0.2965,11.0523,298.6703,9.6345 -200,16x8x8,32,32768,5898.2400,786.4320,4325.3760,0.6002,10.9183,302.3378,9.7528 -200,16x8x16,32,65536,11796.4800,1572.8640,8650.7520,1.2728,10.2978,320.5541,10.3405 -200,16x8x32,32,131072,23592.9600,3145.7280,17301.5040,2.6176,10.0146,329.6201,10.6329 -200,16x8x64,32,262144,47185.9200,6291.4560,34603.0080,5.3039,9.8849,333.9450,10.7724 -200,16x16x2,32,16384,2949.1200,393.2160,2162.6880,0.2931,11.1816,295.2182,9.5232 -200,16x16x4,32,32768,5898.2400,786.4320,4325.3760,0.5996,10.9300,302.0115,9.7423 -200,16x16x8,32,65536,11796.4800,1572.8640,8650.7520,1.2755,10.2760,321.2350,10.3624 -200,16x16x16,32,131072,23592.9600,3145.7280,17301.5040,2.6117,10.0374,328.8698,10.6087 -200,16x16x32,32,262144,47185.9200,6291.4560,34603.0080,5.2872,9.9162,332.8884,10.7383 -200,16x16x64,32,524288,94371.8400,12582.9120,69206.0160,10.6518,9.8441,335.3272,-33.6674 -200,16x32x2,32,32768,5898.2400,786.4320,4325.3760,0.5951,11.0130,299.7369,9.6689 -200,16x32x4,32,65536,11796.4800,1572.8640,8650.7520,1.2710,10.3123,320.1036,10.3259 -200,16x32x8,32,131072,23592.9600,3145.7280,17301.5040,2.6168,10.0177,329.5162,10.6296 -200,16x32x16,32,262144,47185.9200,6291.4560,34603.0080,5.2696,9.9493,331.7830,10.7027 -200,16x32x32,32,524288,94371.8400,12582.9120,69206.0160,10.6700,9.8274,335.8990,-33.7248 -200,16x32x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3463,9.8244,335.9986,-33.7348 -200,16x64x2,32,65536,11796.4800,1572.8640,8650.7520,1.2744,10.2853,320.9430,10.3530 -200,16x64x4,32,131072,23592.9600,3145.7280,17301.5040,2.6233,9.9930,330.3298,10.6558 -200,16x64x8,32,262144,47185.9200,6291.4560,34603.0080,5.2958,9.9000,333.4339,10.7559 -200,16x64x16,32,524288,94371.8400,12582.9120,69206.0160,10.6676,9.8295,335.8249,-33.7174 -200,16x64x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3328,9.8306,335.7866,-33.7135 -200,16x64x64,32,2097152,377487.3600,50331.6480,276824.0640,43.2515,9.6975,340.3977,1215.7060 -200,32x4x2,32,8192,1474.5600,196.6080,1081.3440,0.1467,11.1717,295.4785,9.5316 -200,32x4x4,32,16384,2949.1200,393.2160,2162.6880,0.2932,11.1753,295.3833,9.5285 -200,32x4x8,32,32768,5898.2400,786.4320,4325.3760,0.5962,10.9931,300.2802,9.6865 -200,32x4x16,32,65536,11796.4800,1572.8640,8650.7520,1.2727,10.2991,320.5145,10.3392 -200,32x4x32,32,131072,23592.9600,3145.7280,17301.5040,2.6218,9.9985,330.1501,10.6500 -200,32x4x64,32,262144,47185.9200,6291.4560,34603.0080,5.2997,9.8928,333.6772,10.7638 -200,32x8x2,32,16384,2949.1200,393.2160,2162.6880,0.2982,10.9877,300.4260,9.6912 -200,32x8x4,32,32768,5898.2400,786.4320,4325.3760,0.5999,10.9247,302.1584,9.7470 -200,32x8x8,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2905,320.7800,10.3477 -200,32x8x16,32,131072,23592.9600,3145.7280,17301.5040,2.6220,9.9977,330.1746,10.6508 -200,32x8x32,32,262144,47185.9200,6291.4560,34603.0080,5.2694,9.9497,331.7683,10.7022 -200,32x8x64,32,524288,94371.8400,12582.9120,69206.0160,10.6605,9.8361,335.6015,-33.6949 -200,32x16x2,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9581,301.2397,9.7174 -200,32x16x4,32,65536,11796.4800,1572.8640,8650.7520,1.2765,10.2682,321.4795,10.3703 -200,32x16x8,32,131072,23592.9600,3145.7280,17301.5040,2.6141,10.0280,329.1777,10.6186 -200,32x16x16,32,262144,47185.9200,6291.4560,34603.0080,5.2722,9.9444,331.9453,10.7079 -200,32x16x32,32,524288,94371.8400,12582.9120,69206.0160,10.6403,9.8548,334.9650,-33.6310 -200,32x16x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3337,9.8302,335.8002,-33.7149 -200,32x32x2,32,65536,11796.4800,1572.8640,8650.7520,1.2759,10.2729,321.3320,10.3655 -200,32x32x4,32,131072,23592.9600,3145.7280,17301.5040,2.6127,10.0333,329.0044,10.6130 -200,32x32x8,32,262144,47185.9200,6291.4560,34603.0080,5.2880,9.9147,332.9401,10.7400 -200,32x32x16,32,524288,94371.8400,12582.9120,69206.0160,10.6384,9.8565,334.9068,-33.6252 -200,32x32x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3562,9.8199,336.1558,-33.7506 -200,32x32x64,32,2097152,377487.3600,50331.6480,276824.0640,42.9627,9.7627,338.1252,1207.5901 -200,32x64x2,32,131072,23592.9600,3145.7280,17301.5040,2.6187,10.0106,329.7513,10.6371 -200,32x64x4,32,262144,47185.9200,6291.4560,34603.0080,5.2917,9.9078,333.1709,10.7474 -200,32x64x8,32,524288,94371.8400,12582.9120,69206.0160,10.6475,9.8481,335.1905,-33.6537 -200,32x64x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3369,9.8288,335.8512,-33.7200 -200,32x64x32,32,2097152,377487.3600,50331.6480,276824.0640,42.7122,9.8199,336.1533,1200.5474 -200,32x64x64,32,4194304,754974.7200,100663.2960,553648.1280,86.3545,9.7141,339.8136,1213.6201 -200,64x4x2,32,16384,2949.1200,393.2160,2162.6880,0.2938,11.1517,296.0095,9.5487 -200,64x4x4,32,32768,5898.2400,786.4320,4325.3760,0.5981,10.9565,301.2815,9.7188 -200,64x4x8,32,65536,11796.4800,1572.8640,8650.7520,1.2762,10.2702,321.4139,10.3682 -200,64x4x16,32,131072,23592.9600,3145.7280,17301.5040,2.6196,10.0069,329.8709,10.6410 -200,64x4x32,32,262144,47185.9200,6291.4560,34603.0080,5.3022,9.8882,333.8331,10.7688 -200,64x4x64,32,524288,94371.8400,12582.9120,69206.0160,10.6430,9.8523,335.0502,-33.6396 -200,64x8x2,32,32768,5898.2400,786.4320,4325.3760,0.5980,10.9588,301.2187,9.7167 -200,64x8x4,32,65536,11796.4800,1572.8640,8650.7520,1.2720,10.3042,320.3540,10.3340 -200,64x8x8,32,131072,23592.9600,3145.7280,17301.5040,2.6136,10.0298,329.1186,10.6167 -200,64x8x16,32,262144,47185.9200,6291.4560,34603.0080,5.2814,9.9272,332.5222,10.7265 -200,64x8x32,32,524288,94371.8400,12582.9120,69206.0160,10.6593,9.8372,335.5619,-33.6910 -200,64x8x64,32,1048576,188743.6800,25165.8240,138412.0320,21.3728,9.8123,336.4161,-33.7767 -200,64x16x2,32,65536,11796.4800,1572.8640,8650.7520,1.2737,10.2904,320.7839,10.3479 -200,64x16x4,32,131072,23592.9600,3145.7280,17301.5040,2.6248,9.9870,330.5291,10.6622 -200,64x16x8,32,262144,47185.9200,6291.4560,34603.0080,5.2807,9.9284,332.4815,10.7252 -200,64x16x16,32,524288,94371.8400,12582.9120,69206.0160,10.6290,9.8653,334.6079,-33.5952 -200,64x16x32,32,1048576,188743.6800,25165.8240,138412.0320,21.3837,9.8072,336.5883,-33.7940 -200,64x16x64,32,2097152,377487.3600,50331.6480,276824.0640,42.8648,9.7850,337.3547,1204.8384 -200,64x32x2,32,131072,23592.9600,3145.7280,17301.5040,2.6133,10.0311,329.0782,10.6154 -200,64x32x4,32,262144,47185.9200,6291.4560,34603.0080,5.2990,9.8941,333.6320,10.7623 -200,64x32x8,32,524288,94371.8400,12582.9120,69206.0160,10.6473,9.8483,335.1850,-33.6531 -200,64x32x16,32,1048576,188743.6800,25165.8240,138412.0320,21.3139,9.8394,335.4895,-33.6837 -200,64x32x32,32,2097152,377487.3600,50331.6480,276824.0640,42.7194,9.8183,336.2104,1200.7513 -200,64x32x64,32,4194304,754974.7200,100663.2960,553648.1280,86.0053,9.7536,338.4393,1208.7117 -200,64x64x2,32,262144,47185.9200,6291.4560,34603.0080,5.2792,9.9312,332.3876,10.7222 -200,64x64x4,32,524288,94371.8400,12582.9120,69206.0160,10.6422,9.8530,335.0261,-33.6372 -200,64x64x8,32,1048576,188743.6800,25165.8240,138412.0320,21.3188,9.8371,335.5660,-33.6914 -200,64x64x16,32,2097152,377487.3600,50331.6480,276824.0640,42.7500,9.8112,336.4510,1201.6108 -200,64x64x32,32,4194304,754974.7200,100663.2960,553648.1280,86.0358,9.7501,338.5595,1209.1409 -200,64x64x64,32,8388608,1509949.4400,201326.5920,1107296.2560,175.8321,9.5416,345.9584,1235.5657 diff --git a/scripts/results_soa_skylakesp2_iln1000.txt b/scripts/results_soa_skylakesp2_iln1000.txt deleted file mode 100644 index f496f97..0000000 --- a/scripts/results_soa_skylakesp2_iln1000.txt +++ /dev/null @@ -1,110 +0,0 @@ -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.8212,62.3493,38.5089,5.5013 -200,4x4x4,8,512,43.0080,12.2880,18.4320,1.6918,60.5255,39.6693,5.6670 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,3.3338,61.4308,39.0847,5.5835 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,6.7673,60.5267,39.6685,5.6669 -200,4x4x2,8,256,21.5040,6.1440,9.2160,0.7389,69.2906,34.6511,4.9502 -200,4x4x4,8,512,43.0080,12.2880,18.4320,1.4781,69.2763,34.6583,4.9512 -200,4x4x8,8,1024,86.0160,24.5760,36.8640,2.9563,69.2761,34.6584,4.9512 -200,4x4x16,8,2048,172.0320,49.1520,73.7280,5.9123,69.2798,34.6566,4.9509 -200,4x4x32,8,4096,344.0640,98.3040,147.4560,11.8247,69.2789,34.6570,4.9510 -200,4x4x64,8,8192,688.1280,196.6080,294.9120,23.6678,69.2247,34.6841,4.9549 -200,4x8x2,8,512,43.0080,12.2880,18.4320,1.4780,69.2831,34.6549,4.9507 -200,4x8x4,8,1024,86.0160,24.5760,36.8640,2.9563,69.2756,34.6587,4.9512 -200,4x8x8,8,2048,172.0320,49.1520,73.7280,5.9131,69.2697,34.6616,4.9517 -200,4x8x16,8,4096,344.0640,98.3040,147.4560,11.8363,69.2107,34.6912,4.9559 -200,4x8x32,8,8192,688.1280,196.6080,294.9120,23.6674,69.2260,34.6835,4.9548 -200,4x8x64,8,16384,1376.2560,393.2160,589.8240,47.3354,69.2252,34.6839,4.9548 -200,4x16x2,8,1024,86.0160,24.5760,36.8640,2.9563,69.2749,34.6590,4.9513 -200,4x16x4,8,2048,172.0320,49.1520,73.7280,5.9120,69.2832,34.6549,4.9507 -200,4x16x8,8,4096,344.0640,98.3040,147.4560,11.8249,69.2774,34.6578,4.9511 -200,4x16x16,8,8192,688.1280,196.6080,294.9120,23.6676,69.2255,34.6837,4.9548 -200,4x16x32,8,16384,1376.2560,393.2160,589.8240,47.3407,69.2174,34.6878,4.9554 -200,4x16x64,8,32768,2752.5120,786.4320,1179.6480,94.6451,69.2439,34.6745,4.9535 -200,4x32x2,8,2048,172.0320,49.1520,73.7280,5.9164,69.2315,34.6807,4.9544 -200,4x32x4,8,4096,344.0640,98.3040,147.4560,11.8253,69.2752,34.6589,4.9513 -200,4x32x8,8,8192,688.1280,196.6080,294.9120,23.6684,69.2231,34.6850,4.9550 -200,4x32x16,8,16384,1376.2560,393.2160,589.8240,47.3354,69.2252,34.6839,4.9548 -200,4x32x32,8,32768,2752.5120,786.4320,1179.6480,95.1617,68.8680,34.8638,4.9805 -200,4x32x64,8,65536,5505.0240,1572.8640,2359.2960,192.9801,67.9200,35.3504,5.0501 -200,4x64x2,8,4096,344.0640,98.3040,147.4560,11.8252,69.2760,34.6585,4.9512 -200,4x64x4,8,8192,688.1280,196.6080,294.9120,23.6676,69.2254,34.6838,4.9548 -200,4x64x8,8,16384,1376.2560,393.2160,589.8240,47.6913,68.7085,34.9447,4.9921 -200,4x64x16,8,32768,2752.5120,786.4320,1179.6480,94.6478,69.2420,34.6755,4.9536 -200,4x64x32,8,65536,5505.0240,1572.8640,2359.2960,193.7782,67.6402,35.4966,5.0709 -200,4x64x64,8,131072,11010.0480,3145.7280,4718.5920,384.4290,68.1905,35.2102,5.0300 -200,8x4x2,8,512,43.0080,12.2880,18.4320,1.4779,69.2853,34.6538,4.9505 -200,8x4x4,8,1024,86.0160,24.5760,36.8640,2.9567,69.2662,34.6634,4.9519 -200,8x4x8,8,2048,172.0320,49.1520,73.7280,5.9137,69.2624,34.6653,4.9522 -200,8x4x16,8,4096,344.0640,98.3040,147.4560,11.8243,69.2808,34.6561,4.9509 -200,8x4x32,8,8192,688.1280,196.6080,294.9120,23.6673,69.2263,34.6833,4.9548 -200,8x4x64,8,16384,1376.2560,393.2160,589.8240,48.1857,68.0036,35.3069,5.0438 -200,8x8x2,8,1024,86.0160,24.5760,36.8640,3.0384,67.4040,35.6211,5.0887 -200,8x8x4,8,2048,172.0320,49.1520,73.7280,5.9124,69.2776,34.6577,4.9511 -200,8x8x8,8,4096,344.0640,98.3040,147.4560,11.8272,69.2643,34.6643,4.9520 -200,8x8x16,8,8192,688.1280,196.6080,294.9120,24.0210,68.2070,35.2016,5.0288 -200,8x8x32,8,16384,1376.2560,393.2160,589.8240,48.3581,67.7612,35.4333,5.0619 -200,8x8x64,8,32768,2752.5120,786.4320,1179.6480,95.4919,68.6299,34.9847,4.9978 -200,8x16x2,8,2048,172.0320,49.1520,73.7280,5.9123,69.2792,34.6569,4.9510 -200,8x16x4,8,4096,344.0640,98.3040,147.4560,11.8242,69.2818,34.6556,4.9508 -200,8x16x8,8,8192,688.1280,196.6080,294.9120,23.6666,69.2284,34.6823,4.9546 -200,8x16x16,8,16384,1376.2560,393.2160,589.8240,47.3484,69.2062,34.6934,4.9562 -200,8x16x32,8,32768,2752.5120,786.4320,1179.6480,94.6531,69.2381,34.6775,4.9539 -200,8x16x64,8,65536,5505.0240,1572.8640,2359.2960,189.5620,69.1447,34.7243,4.9606 -200,8x32x2,8,4096,344.0640,98.3040,147.4560,11.8244,69.2807,34.6561,4.9509 -200,8x32x4,8,8192,688.1280,196.6080,294.9120,23.6701,69.2182,34.6874,4.9553 -200,8x32x8,8,16384,1376.2560,393.2160,589.8240,47.3417,69.2159,34.6886,4.9555 -200,8x32x16,8,32768,2752.5120,786.4320,1179.6480,94.6549,69.2368,34.6781,4.9540 -200,8x32x32,8,65536,5505.0240,1572.8640,2359.2960,193.0646,67.8902,35.3659,5.0523 -200,8x32x64,8,131072,11010.0480,3145.7280,4718.5920,385.1419,68.0643,35.2755,5.0394 -200,8x64x2,8,8192,688.1280,196.6080,294.9120,23.6709,69.2158,34.6886,4.9555 -200,8x64x4,8,16384,1376.2560,393.2160,589.8240,48.3610,67.7570,35.4354,5.0622 -200,8x64x8,8,32768,2752.5120,786.4320,1179.6480,94.6743,69.2226,34.6852,4.9550 -200,8x64x16,8,65536,5505.0240,1572.8640,2359.2960,190.5796,68.7754,34.9107,4.9872 -200,8x64x32,8,131072,11010.0480,3145.7280,4718.5920,385.7335,67.9599,35.3297,5.0471 -200,8x64x64,8,262144,22020.0960,6291.4560,9437.1840,771.4760,67.9591,35.3301,5.0472 -200,16x4x2,8,1024,86.0160,24.5760,36.8640,2.9560,69.2828,34.6550,4.9507 -200,16x4x4,8,2048,172.0320,49.1520,73.7280,6.6205,61.8689,38.8079,5.5440 -200,16x4x8,8,4096,344.0640,98.3040,147.4560,12.3473,66.3466,36.1888,5.1698 -200,16x4x16,8,8192,688.1280,196.6080,294.9120,23.6669,69.2274,34.6828,4.9547 -200,16x4x32,8,16384,1376.2560,393.2160,589.8240,47.3374,69.2223,34.6854,4.9551 -200,16x4x64,8,32768,2752.5120,786.4320,1179.6480,95.5037,68.6214,34.9891,4.9984 -200,16x8x2,8,2048,172.0320,49.1520,73.7280,5.9119,69.2840,34.6545,4.9506 -200,16x8x4,8,4096,344.0640,98.3040,147.4560,11.8263,69.2694,34.6618,4.9517 -200,16x8x8,8,8192,688.1280,196.6080,294.9120,24.5150,66.8326,35.9256,5.1322 -200,16x8x16,8,16384,1376.2560,393.2160,589.8240,47.3509,69.2025,34.6953,4.9565 -200,16x8x32,8,32768,2752.5120,786.4320,1179.6480,95.0141,68.9750,34.8097,4.9728 -200,16x8x64,8,65536,5505.0240,1572.8640,2359.2960,193.1030,67.8767,35.3730,5.0533 -200,16x16x2,8,4096,344.0640,98.3040,147.4560,11.8264,69.2689,34.6620,4.9517 -200,16x16x4,8,8192,688.1280,196.6080,294.9120,23.6685,69.2228,34.6851,4.9550 -200,16x16x8,8,16384,1376.2560,393.2160,589.8240,48.5268,67.5256,35.5569,5.0796 -200,16x16x16,8,32768,2752.5120,786.4320,1179.6480,95.7067,68.4759,35.0634,5.0091 -200,16x16x32,8,65536,5505.0240,1572.8640,2359.2960,192.0975,68.2320,35.1888,5.0270 -200,16x16x64,8,131072,11010.0480,3145.7280,4718.5920,383.9017,68.2841,35.1619,5.0231 -200,16x32x2,8,8192,688.1280,196.6080,294.9120,23.6651,69.2326,34.6802,4.9543 -200,16x32x4,8,16384,1376.2560,393.2160,589.8240,47.3449,69.2113,34.6909,4.9558 -200,16x32x8,8,32768,2752.5120,786.4320,1179.6480,98.2238,66.7211,35.9856,5.1408 -200,16x32x16,8,65536,5505.0240,1572.8640,2359.2960,193.6725,67.6771,35.4773,5.0682 -200,16x32x32,8,131072,11010.0480,3145.7280,4718.5920,381.8818,68.6453,34.9769,4.9967 -200,16x32x64,8,262144,22020.0960,6291.4560,9437.1840,767.4085,68.3193,35.1438,5.0205 -200,16x64x2,8,16384,1376.2560,393.2160,589.8240,47.6878,68.7136,34.9421,4.9917 -200,16x64x4,8,32768,2752.5120,786.4320,1179.6480,102.4829,63.9482,37.5460,5.3637 -200,16x64x8,8,65536,5505.0240,1572.8640,2359.2960,192.9239,67.9398,35.3401,5.0486 -200,16x64x16,8,131072,11010.0480,3145.7280,4718.5920,381.0739,68.7909,34.9029,4.9861 -200,16x64x32,8,262144,22020.0960,6291.4560,9437.1840,766.5159,68.3988,35.1029,5.0147 -200,16x64x64,8,524288,44040.1920,12582.9120,18874.3680,1541.4866,68.0237,35.2965,5.0424 -200,32x4x2,8,2048,172.0320,49.1520,73.7280,5.9127,69.2747,34.6591,4.9513 -200,32x4x4,8,4096,344.0640,98.3040,147.4560,11.8241,69.2825,34.6552,4.9507 -200,32x4x8,8,8192,688.1280,196.6080,294.9120,23.6679,69.2245,34.6842,4.9549 -200,32x4x16,8,16384,1376.2560,393.2160,589.8240,47.3350,69.2258,34.6836,4.9548 -200,32x4x32,8,32768,2752.5120,786.4320,1179.6480,95.6797,68.4952,35.0535,5.0076 -200,32x4x64,8,65536,5505.0240,1572.8640,2359.2960,189.5597,69.1455,34.7239,4.9606 -200,32x8x2,8,4096,344.0640,98.3040,147.4560,11.8242,69.2816,34.6557,4.9508 -200,32x8x4,8,8192,688.1280,196.6080,294.9120,23.6709,69.2159,34.6886,4.9555 -200,32x8x8,8,16384,1376.2560,393.2160,589.8240,47.3351,69.2256,34.6837,4.9548 -200,32x8x16,8,32768,2752.5120,786.4320,1179.6480,94.6586,69.2341,34.6794,4.9542 -200,32x8x32,8,65536,5505.0240,1572.8640,2359.2960,191.5835,68.4151,35.0946,5.0135 -200,32x8x64,8,131072,11010.0480,3145.7280,4718.5920,383.8995,68.2845,35.1617,5.0231 -200,32x16x2,8,8192,688.1280,196.6080,294.9120,24.3550,67.2715,35.6912,5.0987 -200,32x16x4,8,16384,1376.2560,393.2160,589.8240,48.0213,68.2364,35.1865,5.0266 -200,32x16x8,8,32768,2752.5120,786.4320,1179.6480,97.0362,67.5377,35.5505,5.0786 -200,32x16x16,8,65536,5505.0240,1572.8640,2359.2960,193.7625,67.6457,35.4938,5.0705 From b6d4753c2a2daa05757253389b3ff01b51d88808 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 11 Jun 2021 09:38:34 +0200 Subject: [PATCH 31/32] Add LIKWID Option. Allow to overwrite with asm variant. --- Makefile | 58 +++++++++++++++++++++++++++-------------------- asm/.gitkeep | 0 config.mk | 6 +++-- include_LIKWID.mk | 10 ++++++++ 4 files changed, 48 insertions(+), 26 deletions(-) create mode 100644 asm/.gitkeep create mode 100644 include_LIKWID.mk diff --git a/Makefile b/Makefile index 2378bba..28d203e 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,14 @@ TARGET = MDBench-$(TAG) BUILD_DIR = ./$(TAG) SRC_DIR = ./src +ASM_DIR = ./asm MAKE_DIR = ./ Q ?= @ #DO NOT EDIT BELOW include $(MAKE_DIR)/config.mk include $(MAKE_DIR)/include_$(TAG).mk +include $(MAKE_DIR)/include_LIKWID.mk INCLUDES += -I./src/includes ifeq ($(strip $(DATA_LAYOUT)),AOS) @@ -27,11 +29,15 @@ ifneq ($(EXPLICIT_TYPES),) DEFINES += -DEXPLICIT_TYPES endif -VPATH = $(SRC_DIR) +VPATH = $(SRC_DIR) $(ASM_DIR) ASM = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.s,$(wildcard $(SRC_DIR)/*.c)) -OBJ = $(filter-out $(BUILD_DIR)/main%,$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) +OVERWRITE:= $(patsubst $(ASM_DIR)/%-new.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*-new.s)) +OBJ = $(filter-out $(BUILD_DIR)/main% $(OVERWRITE),$(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o,$(wildcard $(SRC_DIR)/*.c))) +OBJ += $(patsubst $(ASM_DIR)/%.s, $(BUILD_DIR)/%.o,$(wildcard $(ASM_DIR)/*.s)) CPPFLAGS := $(CPPFLAGS) $(DEFINES) $(OPTIONS) $(INCLUDES) +# $(warning $(OBJ)) + ifneq ($(VARIANT),) .DEFAULT_GOAL := ${TARGET}-$(VARIANT) endif @@ -44,38 +50,42 @@ ${TARGET}-%: $(BUILD_DIR) $(OBJ) $(SRC_DIR)/main-%.c @echo "===> LINKING $(TARGET)-$* " $(Q)${LINKER} $(CPPFLAGS) ${LFLAGS} -o $(TARGET)-$* $(SRC_DIR)/main-$*.c $(OBJ) $(LIBS) -asm: $(BUILD_DIR) $(ASM) - -$(BUILD_DIR)/%.o: %.s -#$(BUILD_DIR)/%.o: %.c - @echo "===> COMPILE $@" +$(BUILD_DIR)/%.o: %.c + $(info ===> COMPILE $@) $(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ - $(Q)$(CC) $(CPPFLAGS) -MT $(@:.d=.o) -MM $< > $(BUILD_DIR)/$*.d + $(Q)$(CC) $(CPPFLAGS) -MT $@ -MM $< > $(BUILD_DIR)/$*.d $(BUILD_DIR)/%.s: %.c - @echo "===> GENERATE ASM $@" - $(Q)$(CC) -S $(ASFLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@ + $(info ===> GENERATE ASM $@) + $(Q)$(CC) -S $(CPPFLAGS) $(CFLAGS) $< -o $@ -tags: - @echo "===> GENERATE TAGS" - $(Q)ctags -R +$(BUILD_DIR)/%.o: %.s + $(info ===> ASSEMBLE $@) + $(Q)$(AS) $(ASFLAGS) $< -o $@ - -$(BUILD_DIR): - @mkdir $(BUILD_DIR) - -ifeq ($(findstring $(MAKECMDGOALS),clean),) --include $(OBJ:.o=.d) -endif - -.PHONY: clean distclean +.PHONY: clean distclean tags info asm clean: - @echo "===> CLEAN" + $(info ===> CLEAN) @rm -rf $(BUILD_DIR) @rm -f tags distclean: clean - @echo "===> DIST CLEAN" + $(info ===> DIST CLEAN) @rm -f $(TARGET)* @rm -f tags + +info: + $(info $(CFLAGS)) + $(Q)$(CC) $(VERSION) + +asm: $(BUILD_DIR) $(ASM) + +tags: + $(info ===> GENERATE TAGS) + $(Q)ctags -R + +$(BUILD_DIR): + @mkdir $(BUILD_DIR) + +-include $(OBJ:.o=.d) diff --git a/asm/.gitkeep b/asm/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config.mk b/config.mk index 0d02951..55045fe 100644 --- a/config.mk +++ b/config.mk @@ -1,9 +1,11 @@ # Supported: GCC, CLANG, ICC -TAG ?= ICC +TAG ?= CLANG +ENABLE_LIKWID ?= false # SP or DP DATA_TYPE ?= DP # AOS or SOA DATA_LAYOUT ?= AOS #Feature options -OPTIONS += -DALIGNMENT=64 -DLIKWID_PERFMON +OPTIONS = -DALIGNMENT=64 +#OPTIONS += More options diff --git a/include_LIKWID.mk b/include_LIKWID.mk new file mode 100644 index 0000000..4ca5456 --- /dev/null +++ b/include_LIKWID.mk @@ -0,0 +1,10 @@ +LIKWID_INC ?= -I/usr/local/include +LIKWID_DEFINES ?= -DLIKWID_PERFMON +LIKWID_LIB ?= -L/usr/local/lib + +ifeq ($(strip $(ENABLE_LIKWID)),true) +INCLUDES += ${LIKWID_INC} +DEFINES += ${LIKWID_DEFINES} +LIBS += -llikwid +LFLAGS += ${LIKWID_LIB} +endif From c6f3f9afa1926018908f335d58122823a6c4c684 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 11 Jun 2021 09:48:41 +0200 Subject: [PATCH 32/32] Set ICC as default --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index 55045fe..c6b8e36 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # Supported: GCC, CLANG, ICC -TAG ?= CLANG +TAG ?= ICC ENABLE_LIKWID ?= false # SP or DP DATA_TYPE ?= DP